












Studia grazie alle numerose risorse presenti su Docsity
Guadagna punti aiutando altri studenti oppure acquistali con un piano Premium
Prepara i tuoi esami
Studia grazie alle numerose risorse presenti su Docsity
Prepara i tuoi esami con i documenti condivisi da studenti come te su Docsity
Trova i documenti specifici per gli esami della tua università
Preparati con lezioni e prove svolte basate sui programmi universitari!
Rispondi a reali domande d’esame e scopri la tua preparazione
Riassumi i tuoi documenti, fagli domande, convertili in quiz e mappe concettuali
Studia con prove svolte, tesine e consigli utili
Togliti ogni dubbio leggendo le risposte alle domande fatte da altri studenti come te
Esplora i documenti più scaricati per gli argomenti di studio più popolari
Ottieni i punti per scaricare
Guadagna punti aiutando altri studenti oppure acquistali con un piano Premium
Teoria di ricerca operativa dalla teoria della dualità alla PLI
Tipologia: Appunti
1 / 20
Questa pagina non è visibile nell’anteprima
Non perderti parti importanti!













La teoria della dualità fa riferimento alla fase di post-ottimalità ; infatti, una
volta risolto un problema di PL, è possibile valutare tali soluzioni appurando se
esse siano stabili o meno.
In questa fase ricaveremo la forma duale, la quale viene costruita perché
permette di interpretare il problema originario da un punto di vista
alternativo e più informativo : il duale misura, infatti, il valore “ombra” delle
risorse, fornisce limiti superiori o inferiori alla soluzione del primale e
consente di capire come varia la soluzione ottima al variare dei parametri.
Consideriamo il seguente problema in forma standard:
T
Soggetto ai vincoli:
Ax = b
n
La forma duale del seguente problema in forma standard (Ps) è la seguente:
T
Soggetto ai vincoli
A
T
W ≤ C
Si noti come in questo caso le variabili decisionali non siano più le X, ma sono
le W. Il vettore di riferimento sarà infatti il vettore W, vettore m dimensionale, il
quale viene detto “vettore delle variabili decisionali duali”.
In particolare, si parlerà di coppia primale-duale.
Se il primale aveva n variabili decisionali, il duale avrà m variabili decisionali.
(avrà m variabili decisionali per quanti m vincoli sono presenti nel primale).
Il primo problema considerato viene chiamato PRIMALE , il suo DUALE è il
problema riportato successivamente. Con Ps indichiamo il primale, con Ds
indichiamo il duale.
Le regole principali per passare da primale a duale vengono così sintetizzate:
Min Max
negativa
Vincoli ¿ Variabile
libera in
segno
positiva
Variabile non
negativa
Variabile
libera in
segno
Vincoli ¿
Variabile non
positiva
In particolare, analizzando caso per caso si avrà:
Consideriamo il seguente problema Primale:
T
Soggetto ai vincoli:
n
il problema non è in forma standard per via dei vincoli di maggiore uguale, per
questo sottraiamo una variabile di surplus:
T
Soggetto ai vincoli:
n
m
Poiché adesso le variabili sono diventate anche le S, le includiamo nella
funzione obiettivo, per questo il problema può essere anche scritto come:
m
Soggetto ai vincoli:
n
m
Possiamo scriverlo in forma matriciale come:
Min
[
C
T
m
T
]
[
X
s
]
Soggetto ai vincoli:
[
]
n
m
Otteniamo in duale del problema in forma standard:
T
Soggetto ai vincoli:
T
[
m
]
Possiamo scrivere anche (sviluppando i vincoli):
T
Soggetto ai vincoli:
T
T
w ≤ 0
m
T
Soggetto ai vincoli:
T
T
m
Cambio il segno della disequazione, perché ho cambiato di segno anche la
matrice! Sappiamo inoltre che la matrice identità (I) che moltiplica un vettore =
vettore, quindi ciò equivale a scrivere:
La matrice identità che moltiplica un vettore è uguale al vettore stesso, per
questo scriviamo:
m
Si avrà dunque:
T
Soggetto ai vincoli:
T
m
Si ricava che se nel primale ci sono vincoli di minore uguale, allora nel duale
appaiono vincoli di non positività per le variabili duali.
Consideriamo il seguente problema:
Min C
x
T
x + C
y
T
y
Soggetto ai vincoli:
x
y
n
capiamo bene come Y sia una variabile libera in segno, quindi immaginiamo
n
p
(insieme delle variabili libere in segno).
Sappiamo che le variabili libere in segno le trattiamo sostituendole con la
somma del loro reciproco (?)
+¿− y
−¿ ¿
¿
che in forma matriciale significherebbe scrivere:
[
1
P
]
x
T
y
T
+¿− y
−¿ )¿
¿
Soggetto ai vincoli:
A
x
x + A
y
( y
+¿− y
−¿ )= b ¿
¿
n
+¿ ; y
−¿ ≥ 0 P
¿
¿
si ha al seguente forma duale (in forma matriciale):
T
Soggetto ai vincoli:
[
x
y
y
]
T
[
]
Sviluppando i termini:
T
Soggetto ai vincoli:
x
T
A
y
T
w ≤ Cy
y
T
In questo ultimo vincolo cambio tutto di segno! Ottengo pertanto:
T
Soggetto ai vincoli:
A
x
T
w ≤ Cx
y
T
A
y
T
w ≥ Cy
Questi ultimi due vincoli sono in contraddizione tra di loro, ma essi sono
y
T
scrivere:
T
Soggetto ai vincoli:
A
x
T
w ≤ Cx
y
T
Ricaviamo quindi che quando nel primale sono presenti variabili libere in
segno, ad esse corrispondono vincoli di uguaglianza nella forma duale.
Consideriamo il seguente problema:
T
Soggetto ai vincoli:
Ax = b
n
non è in forma standard (per via della funzione di massimo), per questo
scriviamo:
T
Soggetto ai vincoli:
Ax = b
n
Forma duale:
T
Soggetto ai vincoli:
T
T
Soggetto ai vincoli:
T
Deduciamo quindi che se il primale è di massimo, il duale è di minimo.
ogni variabile del duale corrisponde a un vincolo del primale e che ogni termine
noto del duale corrisponde ai coefficienti di costo nel primale. I vincoli del duale
vengono composti considerando le colonne dei vincoli del primale. Il segno dei
vincoli e delle variabili decisionali si deciderà in base alle casistiche.
I teoremi di dualità sanciscono il legame tra forma primale e forma duale, in
modo tale che è possibile risolvere il duale attraverso i metodi che conosciamo
per il primale.
Nel problema primale di minimizzazione, qualsiasi soluzione ammissibile del
duale fornisce un limite inferiore al valore ottimo del primale, poiché per la
dualità debole vale sempre bTw ≤ CTxb^T w \le C^T xbTw≤CTx. Allo stesso
tempo, ogni soluzione ammissibile del primale costituisce un limite superiore
all’ottimo, in quanto il valore dell’obiettivo può soltanto diminuire durante il
processo di minimizzazione. Di conseguenza, il valore ottimo del primale è
sempre compreso tra questi due limiti, che coincidono solo in presenza di
soluzioni ottime per entrambi i problemi.
soluzione ottima X, allora il duale ammette come soluzione ottima W.
Pertanto, vale che:
T
T
Cioè i valori di funzione obiettivo del duale e del primale coincidono (quelli che
problema duale è privo di soluzioni ammissibili. È inammissibile.
Dimostrazione: Per ipotesi il primale è illimitato. Ciò significa che esiste una
successione di soluzioni ammissibili X1; X2; X3; tale che
lim
k → ∞
T
(il
valore di funzione obiettivo tende a meno infinito).
Se il duale ammettesse una soluzione ammissibile w, secondo il teorema di
dualità debole dovrebbe valere:
T
Ciò costituirebbe una elazione assurda, poiché nessun valore è minore di meno
infinito. Questo dimostra che se il problema primale è illimitato, il problema
duale è inammissibile.
potrebbe:
o Essere inammissibile
o Essere illimitato
consideriamo la coppia Ps-Ds
T
Soggetto ai vincoli
n
T
Soggetto ai vincoli:
T
m
scrivendo i due problemi specificando i vincoli si avrà:
T
T
i
i
w
T
A
j
≤ c
j
n
m
due soluzioni x e w ammissibili rispettivamente per Ps e Ds sono ottime se e
solo se valgono le relazioni di complementarietà :
( c
j
∗ w
T
A
j
) x
j
J=1;…;n
Dimostrazione:
dimostriamo prima la necessità (cioè che quando si è all’ottimo valgono queste
relazioni) e poi la sufficienza.
X e W sono ottime, per il teorema di dualità forte allora varrà:
T
T
T
T
T
T
T
T
T
T
Metto in evidenza x
T
− w
T
A ) x + w
T
( Ax − b )= 0
Quindi ho:
T
T
T
T
per avere 0 nell’uguaglianza è il seguente:
j
T
j
j
T
Faccio il trasposto ad entrambi i membri, quindi:
T
T
w
T
a − C
T
n
[
1
2
n
]
[
1
n
]
a
T
b = a
1
b
1
2
b
2
+...+ a
n
b
n
T
1
1
2
2
n
n
Si consideri la seguente coppia P-D (prima e duale)
T
T
Sv:
i
i
T
j
n
m
la disuguaglianza non è verificata. In prossimità di linee continue ci saranno i
valori entro cui k sarà compreso.
viene chiesto quanto vale all’ottimo w1. IS procede sempre attraverso la
j
T
j
j
In questo caso, sapendo che x1 è diverso da 0 si risolve solo l’equazione del
vincolo associato a x1 e riferito a w1.
Stesse considerazioni, però al contrario valgono per il caso opposto (cioè
quando prendo in riferimento il caso in cui, avendo le soluzioni del duale debba
trovare le soluzioni del primale)
Un qualunque problema di PL può essere ricondotto alla forma standard e da
questa si può ricondurre alla forma canonica.
Consideriamo il seguente problema di PL in forma standard:
T
Soggetto ai vincoli:
Ax = b
n
andiamo a scindere tra variabili di base e non di base:
T
B
T
N
Soggetto ai vincoli:
B
B
N
N
B
m
N
n − m
Arriviamo alla forma canonica (dopo diversi passaggi):
Min CB
T
A
B
− 1
N
T
B
T
A
B
− 1
A
N
N
Soggetto ai vincoli:
B
B
− 1
N
N
B
− 1
B
m
N
n − m
In cui:
T
A
B
− 1
N
T
B
T
B
− 1
N
N
T
B
− 1
A
N
N
B
− 1
Questa forma è canonica se
m
(quindi se le b sono positive) e a questa
forma canonica è associata la seguente soluzione di base:
[
B
N
]
[
B
− 1
n − m
]
[
n − m
]
B
T
B
− 1
Se CN è un vettore non negativo allora questa soluzione è ottima.
La forma canonica serve a costruire una soluzione di base mettendo le variabili
non di base a zero.
Da lì puoi vedere subito se la soluzione è ammissibile (tutte le bbb ≥ 0) e se è
ottima (tutti gli scarti ≥ 0).
In pratica, spiega matematicamente perché il simplesso funziona.
Il duale corrispondente si può scrivere come segue:
T
Soggetto ai vincoli:
T
Dato l’insieme B possiamo scrivere il duale come:
T
T
Soggetto ai vincoli: Soggetto ai vincoli:
[
B
N
]
[
B
N
]
B
T
B
A
N
T
w ≤ C
N
Cambiando il trasposto si avrà:
T
Soggetto ai vincoli
T
B
B
T
w
T
A
N
≤ C
N
T
T
B
T
B
− 1
in cui:
B
è un vettore riga con tanti coefficienti quante sono le variabili di
base
A
B
− 1
è una matrice m x m quindi:
B
T
B
− 1
Questa potrebbe essere una soluzione del duale e non del primale perché
consideriamo m numeri (righe) e non n (colonne).
Le dimensioni delle soluzioni complementari ci dicono che esse possono essere
una soluzione duale. Tuttavia, tale soluzione ammissibile per il duale se è
ottima per il primale.
Quando separi le colonne di base e non di base, puoi costruire dal primale un
vettore www che è una possibile soluzione del duale.
Questo w=CBTAB−1w = C_B^T A_B^{-1}w=CBTAB−1 ha la dimensione giusta
per il duale, ma rispetta i suoi vincoli solo se la base del primale è davvero
ottima.
Per questo si chiama soluzione complementare : primale e duale coincidono
solo all’ottimo.
Se X è ottima allora
N
n − m
N
T
N
T
B
T
B
− 1
n − m
T
Tecnicamente ciò vuol dire che:
C
N
T
≥ C
B
T
A
B
− 1
A
N
B
T
B
− 1
T
è la soluzione complementare
m + 1
k
n
m + 1
k
n
1
m + 1
k
n
h
m + 1
k
n
m
Per avere la forma canonica duale è necessario avere le C>=0 a prescindere
dalle b (che possono essere sia positive che negative). Si arriva all’ottimo
quando anche le b sono positive.
Il metodo del simplesso duale genere e parte da forme canoniche duali.
Schematizzando i vari passi avremo:
i
Se esiste
h
allora si sceglie h come riga di Pivot
Se in corrispondenza di
h
si ha
hj
inammissibile
Tra le colonne j con
hj
si sceglie la colonna k tale che:
k
hj
j
hj
hj
Si esegue il pivoting con pivot
a
hk
Essa permette di capire come cambia l’ottimo al variare dei parametri e dei
vincoli. Consideriamo solamente la variazione di b e l’aggiunta di un vincolo.
Essa è importante per comprendere il concetto di prezzi ombra, mentre
l’aggiunta di un vincolo serve per trattare i modelli di PLI.
VARIAZIONE DEL VETTORE b
i
, si vuole
comprendere cosa succede se varia soltanto un termine alla volta e non tutti i
termini insieme. Dopo la perturbazione, il nuovo vettore determini noti diventa
il seguente:
ei
esprimendolo in forma matriciale:
1
i
m
1
i
m
i
i
m
Riscrivendo il tableau per capire cosa varia si avrà:
m
T
C
N
T
N
T
B
T
A
B
− 1
A
N
− d =− C
B
T
A
B
− 1
b
N
B
− 1
N
B
− 1
La parte sinistra non cambia, mentre la parte destra dipende da B e suggerisce
A
B
− 1
b ' ≥ 0
m
B
− 1
ei
B
− 1
B
− 1
ei
b + A
B
− 1
( δ
ei
m
Quest’ultima è la formula per effettuare l’analisi di sensitività da usare negli
esercizi.
Per quanto riguarda gli esercizi. Può chiedere di effettuare l’analisi di sensitività
una volta che si è all’ottimo. Utilizza questa formula:
B
− 1
ei
m
Dove per:
si intende la matrice dei termini noti
B
− 1
si intende la matrice degli indici non di base (ad esempio, in una
matrice con 4 colonne, se 1 e 2 sono di base, allora 3 e 4 saranno quelli
non di base)
ei
si intende la matrice dei delta di variazione. In questo caso, se
nell’esercizio viene specificato di far variare b2, allora il delta nella
matrice lo metti in posizione della riga 2 e nelle altre righe metti 0).
m
matrice nulla, composta da soli 0.
In questo modo si potrà determinare l’intervallo entro cui la base ottima reta
ottima.
Una volta che si hanno gli esercizi infatti si mettono a sistema le due
disequazioni risultati, determinando i valori entro cui delta varierà.
Un’altra tipologia di esercizio potrebbe essere il continuo dell’analisi di
sensitività, ad esempio, ponendo b=6 chiede di calcolare la nuova soluzione
ottima e il suo valore di funzione obiettivo.
In questo caso, bisogna controllare prima se la variazione rientra nel range di
variazione prima individuato (facendo sostanzialmente la differenza tra il valore
di B dato adesso nell’esercizio e il valore di B nel Tab della precedente
soluzione ottima). In tal modo, vediamo se la variazione rientra nel range
ottimo.
Si va poi a considerare il Tableau:
m
T
C
N
T
N
T
B
T
A
B
− 1
A
N
− d =− C
B
T
A
B
− 1
b
N
B
− 1
N
B
− 1
In cui a sinistra prima riga si ha la formula della nuova funzione obiettivo (
B
T
A
B
− 1
b = C
B
T
∗( b + A
B
− 1
δ
ei
). In cui C
B
T
è il vettore dei coefficienti di costo,
tableau iniziale, insieme di indici ottimi.
Nel momento in cui non si è più nel range di variabilità; quindi, il delta è fuori
dal range (dall’intervallo), aspetto che qualche termine b diventi negativo. Nel
momento in cui abbiamo b negativo (andando a risolvere le b moltiplicando per
il delta richiesto) vado a risolvere con il metodo del simplesso duale.
Consideriamo di introdurre un nuovo vincolo come il seguente:
B
T
A
B
− 1
( b + δ
ei
B
T
A
B
− 1
b
B
T
B
− 1
B
T
B
− 1
ei
B
T
B
− 1
Semplifico perché sono uguali per l’ipotesi che ho fatto prima, cioè che la B
ottima non cambia, o meglio, che delta è tale da non modificare B).
B
T
B
− 1
(
ei
)
Dove C
B
T
A
B
− 1
è la soluzione complementare che all’ottimo è la soluzione del
T
ei
[
1
i
m
]
[
]
i
i
Poiché tutte le w vanno poi a moltiplicare 0.
Segue che:
i
i
All’ottimo rappresenta la variazione del valore di
funzione obiettivo quando un’unità in più di bi si rende disponibile (cioè bi+1 se
delta =1, allora si avrà che
i
Ciò vale a condizione che una tale variazione di bi non moltiplichi la base
ottima.
In un modello di produzione, se bi rappresenta la disponibilità di una risorsa
produttiva (i-esima) e la base resta immutata se un’unità in più di bi si rende
disponibile, allora wi rappresenta il valore marginale della risorsa produttiva,
il prezzo ombra.
Per quest’ultimo si intende il valore che una risorsa ha nel proprio sistema
produttivo , se un’unità in più viene immessa nel processo produttivo. In
particolare, esso è diverso dal valore di mercato.
La PLI comprende problemi con variabili intere di tipo generale , cioè
variabili che possono assumere un qualunque numero intero. Esistono problemi
di PLB, quelli di tipo binario in cui le variabili possono assumere solo valori
come 0 e 1. Dunque, i problemi di PLI possono anche avere delle variabili
binarie.
In generale, problemi con risposta si o no sono problemi che rientrano in questo
novero. In altri termini la PLbinaria è un sotto caso della programmazione
lineare intera.
Esiste un ulteriore gruppo cioè la programmazione lineare miste , cioè
quando il problema ha variabili intere e variabili reali-continue. Ad
esempio, consideriamo un modello di produzione con prodotti che si misurano
in kg e altri prodotti che si misurano in unità di prodotto (quindi non in kg).
I metodi che vedremo adesso risolvono problemi di:
I metodi sono:
Metodo del Branch & Bound
Metodo di Gomory
Ci concentreremo solo sulla risoluzione di PLI con variabili di tipo generale.
Il concetto fondamentale nell'ambito della PLI è quello di RILASSAMENTO.
Questo fa riferimento all'eliminazione di qualche vincolo (anche solo uno).
Nell'ambito della PLI si fa un cd RILASSAMENTO CONTINUO , cioè si
eliminano vincoli di interezza.
Si sta generando il cd rilassato continuo (lo stesso problema senza i vincoli di
interezza).
Si passa dunque da un problema di PLI (con vincoli di interezza) a un problema
senza vincoli di interezza P’ che costituisce il suo
rilassato continuo.
La regione ammissibile di un problema di PLI viene costruita considerando solo
le coordinate intere (vedi figura 1).
Nel caso della programmazione lineare intera, non è presente il teorema
fondamentale, dunque, si passa da un’idea di continuità ad un’idea quasi
meccanica nel trovare le soluzioni ottime, proprio in mancanza di un teorema
che suggerisce di cercare tra le soluzioni di base.
Indichiamo con Z il valore ottimo di P, problema di programmazione lineare
intera, il valore ottimo del suo rilassato continuo Zr sarà migliore, sempre per lo
stesso ragionamento fatto precedentemente: il rilassato continuo infatti è lo
stesso problema di programmazione lineare intera al netto dei vincoli di
interezza; dunque, non può che essere migliore il suo valore di funzione
obiettivo è anche di ottimo.
Si avrà dunque:
R
per i problemi di Max
R
per i problemi di Min
Z non è mai migliore di Zr.
In particolare:
è ammissibile anche per P (PLI) allora sarà
ottima anche per P.
inammissibile.
inammissibile.
Figura 1
Separare un problema significa generare dei sottoproblemi le cui regioni
formano delle sotto regioni del problema di partenza , le quali sono
disgiunte e se unite , insieme formano la regione di partenza , resta fuori
una parte che corrisponde ad una parte in cui non ci sono soluzioni.
Ciò nell'albero si traduce dicendo che PO ( nodo radice ) ha due discendenti :
P1 e P2.
Se sappiamo risolvere solo P1, partizioni solo P2 in due nodi foglia : P3 e P4.
P1,P3, P4 formano il problema di partenza , dunque quando si partiziona
non ci si sta perdendo alcuna soluzione contenuta nella regione ammissibile di
Pr.
Resta da capire se e come separare un problema.
non si separa un problema Ph (cioè questo problema si chiude) se:
inammissibile)
problema di PLI originario non si trova nella regione ammissibile
di Ph.
Quindi sappiamo che un problema si separa quando non lo riesco a risolvere,
l'ultima condizione ci fa capire di chiudere un problema perché li sicuramente
la soluzione ottima non c'è.
Se un problema lo devo separare, allora vuol dire che ci sono variabili
frazionarie.
Sia xj una variabile che assume valori frazionari. Tale variabile è sicuro di
base (quelle non di base valgono 0). Scriviamo:
j
j
j
Questa variabile è detta di branching (di ramificazione, è la variabile che
consente di separare il problema).
Il problema Ph da separare genera due figli P1 e P2, in cui:
j
j
Il problema figlio ha dunque un vincolo in più.
L’ottimo deve scomparire nel momento in cui si aggiunge il nuovo vincolo,
altrimenti continueremo a simularlo. , escludo l’ottimo che può assumere valori
reali e dunque non rientrare nella PLI. Spezzettando la regione con quelle dei
problemi figli riesco a trovare delle soluzioni ottime intere.
Può capitare che ci sia più di una soluzione frazionaria, per scegliere la variabile
di branchig, si sceglie una variabile che ci piace a patto che sia frazionarie (su
un numero intero, non si può fare branching).
Per convenzione, prendo la variabile più frazionaria di tutte, cioè quella più
lontana dal suo intero. Empiricamente, infatti, si è dimostrato come sia meglio
fare branding sulle variabili frazionarie per arrivare prima la soluzione ottima.
{
0
}
obiettivo.
0
0
è
inammissibile.
h
(useremo la regola FIFO per
convenzione)
h
(indicato con
h
a. Se
h
è inammissibile, torna al passo 1 (di fatto lo si sta
chiudendo, poiché se Pr è inammissibile anche P lo è)
b. Se
h
ha una soluzione a coordinare intere e il suo valore di
1; altrimenti torna al passo 1.
c. Se
h
ha una soluzione ottima non ammissibile per P0 e il suo
passo 1 (criterio del limite)
Se infatti P1 e P2 hanno tutto di P0, la funzione obiettivo peggiora quando si
scende ai figli, la Z di P0 è peggio di quella di P0’.
problemi a L, poni q=q+2 e torna al passo 1.
Un approccio alternativo al metodo del B&B sono gli algoritmi dei piani di
taglio. La differenza sostanziale sta nel non partizionare la regione ammissibile
ma nel tagliarla. Dunque, tutti gli algoritmi di taglio risolvono il rilassato
continuo dei problemi di PLI. Se li non si trova la soluzione, si taglia la regione
fino a quando non si arriva a un ottimo. Tagliando la regione il valore di
funzione obiettivo non potrà mai migliorare.
Gli algoritmi di taglio tendono alla copertura convessa. Essi tagliano la regione
ammissibile in modo tale da ottenere la copertura convessa e a volte si
fermano prima di avere quest’ultima. Quando sei arriva alla copertura
convessa, sicuramente si troverà risolvendo il rilassato continuo la soluzione
ottima. Una volta che si arriva la copertura convessa, quindi, una volta arrivati
alla soluzione coordinate intere, non si può tagliare ulteriormente (si è già
arrivati ad un ottimo intero).
Gli algoritmi di piani di taglio tendono ad ottenere la copertura convessa
introducendo piano di taglio che rimpiccioliscono la regione ammissibile del
rilassato continuo.
Dando una definizione:
nessuna delle soluzioni coordinate intere.
Vedi appunti seconda parte pag 64