Una prova intuitiva / informale per LP Duality?


19

Quale sarebbe una buona prova informale / intuitiva per "colpire il punto a casa" sulla dualità LP? Il modo migliore per dimostrare che la funzione dell'obiettivo minimizzata è davvero il minimo con un modo intuitivo di comprendere il limite?

Il modo in cui mi è stato insegnato La dualità ha portato solo a una comprensione che sono sicuro sia condivisa da MOLTE persone che conosco: per ogni corrispondente problema di minimizzazione esiste un problema di massimizzazione equivalente che può essere derivato invertendo i vincoli di disuguaglianza. Periodo. Questa "conclusione" della dualità è ciò che sembra rimanere, ma non "perché è così" (cioè come / perché c'è un limite alla soluzione ottimale).

C'è un modo di giocare con le disuguaglianze solo per "mostrare" il limite inferiore / superiore all'ottimale che potrebbe essere una motivazione per la prova?

Ho passato in rassegna il libro di Chvatal e alcuni altri, ma non ho trovato nulla che potesse essere compreso da noobs assoluti a LP. Il più vicino che ho ottenuto è stato dal libro sugli algoritmi di Vazirani, in cui parla di "moltiplicare le disuguaglianze con alcuni numeri magici che mostrano il limite" - non sono sicuro di come riprodurre l'effetto per un LP arbitrario.


5
In questa risposta math.SE, passo attraverso un esempio passo passo di come viene il doppio - e perché - per un problema che ha la maggior parte delle diverse possibilità che possono sorgere con un LP. Forse questo può aiutare?
Mike Spivey,

2
Non sono sicuro del motivo per cui pensi che l'argomento di Vazirani non funzioni per un LP generale. Personalmente, questa spiegazione mi piace di più.
Suresh Venkat,

1
Stai chiedendo della dualità debole o della dualità forte?
Tsuyoshi Ito,

7
Puoi ottenere l'intuizione geometrica visualizzando (in 2d, diciamo) cosa significa prendere una combinazione lineare di vincoli. Ad esempio, disegna i vincoli e nel piano. Le combinazioni lineari di questi vincoli ti danno per qualsiasi . Disegna questo per vederlo. Generalmente, la combinazione lineare di vincoli fornisce i semispazi di supporto dei poliedri. Ora chiedi, perché uno di questi semispazi di supporto è sempre abbastanza, da solo, per dare un limite al costo? Se lo vedi, questa è una forte dualità. y 1 a x + b y a + b a , b 0x1y1ax+bya+ba,b0
Neal Young,

@MikeSpivey - Vorrei che il tuo commento fosse una risposta :)
Dottorato di ricerca

Risposte:


19

Per desiderio di OP, ecco la risposta math.SE a cui rimando nel mio commento sopra.


Forse vale la pena parlare da dove viene il doppio su un problema di esempio. Ci vorrà un po ', ma speriamo che il doppio non sembrerà così misterioso quando avremo finito.

Supponiamo che abbia un problema primario come segue.

Primal={max    5x16x2   s.t.    2x1x2=1              x1+3x29    x10}

Supponiamo ora di voler usare i vincoli del primitivo come un modo per trovare un limite superiore sul valore ottimale del primale. Se moltiplichiamo il primo vincolo per , il secondo vincolo per e li sommiamo, otteniamo per il lato sinistro e per il lato destro. Poiché il primo vincolo è un'uguaglianza e il secondo è una disuguaglianza, ciò implica Ma dal , è anche vero che , e quindi Pertanto, è un limite superiore sul valore ottimale del problema primario.919(2x1x2)+1(x1+3x2)9(1)+1(9)
19x16x218.
x105x119x1
5x16x219x16x218.
18

Sicuramente possiamo fare di meglio, però. Invece di indovinare solo e come moltiplicatori, facciamo in modo che siano variabili. Quindi stiamo cercando moltiplicatori e per forzare91y1y2

5x16x2y1(2x1x2)+y2(x1+3x2)y1(1)+y2(9).

Ora, affinché questa coppia di disuguaglianze sia valida, cosa deve essere vero su e ? Prendiamo le due disuguaglianze una alla volta.y1y2


La prima disuguaglianza :5x16x2y1(2x1x2)+y2(x1+3x2)

Dobbiamo tenere traccia dei coefficienti delle variabili e separatamente. Innanzitutto, è necessario che il coefficiente totale sul lato destro sia almeno . Ottenere esattamente sarebbe fantastico, ma dato che , qualsiasi cosa più grande di soddisferebbe anche la disuguaglianza per . In termini matematici, ciò significa che abbiamo bisogno di .x1x2x155x105x12y1+y25

D'altra parte, per garantire la disuguaglianza per la variabile abbiamo bisogno che il coefficiente totale sul lato destro sia esattamente . Poiché potrebbe essere positivo, non possiamo andare al di sotto di e poiché potrebbe essere negativo, non possiamo andare al di sopra di (poiché il valore negativo per capovolgerebbe la direzione della disuguaglianza). Quindi, affinché la prima disuguaglianza funzioni per la variabile , dobbiamo avere .x2x26x26x26x2x2y1+3y2=6


La seconda disuguaglianza :y1(2x1x2)+y2(x1+3x2)y1(1)+y2(9)

Qui dobbiamo tenere traccia delle variabili e separatamente. Le variabili provengono dal primo vincolo, che è un vincolo di uguaglianza. Non importa se è positivo o negativo, il vincolo di uguaglianza rimane valido. Pertanto non ha restrizioni nel segno. Tuttavia, la variabile deriva dal secondo vincolo, che è un vincolo minore o uguale a. Se dovessimo moltiplicare il secondo vincolo per un numero negativo che cambierebbe la sua direzione e lo cambierebbe in un vincolo maggiore o uguale. Per mantenere il nostro obiettivo di limitare l'obiettivo primario, non possiamo permettere che ciò accada. Quindiy1y2y1y1y1y2y2la variabile non può essere negativa. Quindi dobbiamo avere .y20

Infine, vogliamo rendere il lato destro della seconda disuguaglianza il più piccolo possibile, poiché vogliamo il limite superiore più stretto possibile sull'obiettivo primario. Quindi vogliamo ridurre al minimo .y1+9y2


Mettendo insieme tutte queste restrizioni su e troviamo che il problema di usare i vincoli del primal per trovare il miglior limite superiore sull'obiettivo primario ottimale comporta la risoluzione del seguente programma lineare:y1y2

Minimize y1+9y2subject to 2y1+y25y1+3y2=6y20.

E questo è il doppio.


Vale probabilmente la pena di riassumere le implicazioni di questo argomento per tutte le possibili forme del primordiale e del doppio. La seguente tabella è tratta da p. 214 di Introduzione alla ricerca operativa , ottava edizione, di Hillier e Lieberman. Si riferiscono a questo come al metodo SOB, dove SOB sta per Sensible, Odd o Bizarre, a seconda della probabilità che si possa trovare quel particolare vincolo o restrizione variabile in un problema di massimizzazione o minimizzazione.

             Primal Problem                           Dual Problem
             (or Dual Problem)                        (or Primal Problem)

             Maximization                             Minimization

Sensible     <= constraint            paired with     nonnegative variable
Odd          =  constraint            paired with     unconstrained variable
Bizarre      >= constraint            paired with     nonpositive variable

Sensible     nonnegative variable     paired with     >= constraint
Odd          unconstrained variable   paired with     = constraint
Bizarre      nonpositive variable     paired with     <= constraint

7

Elaborando la risposta di Mike e il commento di Vazirani, ottieni il doppio considerando la forma generale di una prova di ottimalità per la soluzione del problema originale. Supponiamo di avere un problema di massimizzazione date alcune disuguaglianze lineari e, senza perdita di generalità, supponiamo che stai cercando di massimizzare la variabile . Data una soluzione in cui , come facciamo a sapere che è ottimale? Un modo è cercare di ottenere un limite su prendendo combinazioni lineari delle disuguaglianze lineari. Alcune combinazioni lineari ti danno un limite della forma e stai cercando di ottenere la migliore (minima) possibile. La debole dualità afferma chexx=BxxCCBminC, che è ovvio per definizione. Forti stati dualità che quando è finito, allora . Ciò significa che se il massimo è esiste una "ragione" che non si può superare , che funge anche da prova di ottimalità.BB=minCBB

Questo punto di vista è effettivamente utile a volte. Sia una funzione set ( prende un set e genera un numero reale) e sono due set. Supponiamo che tu stia cercando di derivare una disuguaglianza da una serie di disuguaglianze riguardanti la funzione (che è un esempio di vita reale). Scrivi un programma lineare in cui i valori di sono le variabili, è un vincolo e l'obiettivo è minimizzare . La soluzione a questo programma è (supponiamo che sia la migliore possibile), e la soluzione al doppio ti dà una prova dif S , O f ( S ) ( 1 - 1 / e ) f ( O ) f f f ( O ) = 1 f ( S ) min f ( S ) = 1 - 1 / e 1 - 1 / e f ( S ) 1 - 1 / effS,Of(S)(11/e)f(O)fff(O)=1f(S)minf(S)=11/e11/ef(S)11/e .

Ciò lascia aperta la questione del perché la forte dualità sia effettivamente valida. Ci sono due prove di questo fatto per la programmazione lineare, una che coinvolge l'algoritmo simplex, l'altra il lemma di Farkas. Il lemma di Farkas è probabilmente il modo "corretto" di comprendere la situazione, riducendo tutto a un fatto geometrico intuitivo. Tuttavia, confesso che questa intuizione mi passa per la testa.

In situazioni più generali (diciamo programmazione semidefinita), è necessario utilizzare le condizioni più generali di Karush-Kuhn-Tucker (una forma di moltiplicatori di Lagrange) per ottenere il doppio e le condizioni per una forte dualità. Questo viene trattato nei testi sull'ottimizzazione non lineare o convessa.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.