











































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
Una introduzione alla ricerca operativa e alla programmazione lineare. Vengono descritti i problemi di ottimizzazione, i problemi di programmazione lineare, la teoria della dualità e il metodo del simplesso. Vengono inoltre presentati alcuni modelli di programmazione lineare, come quelli di allocazione ottima di risorse, di miscelazione, di pianificazione dei trasporti e di programmazione lineare intera. utile per gli studenti di corsi di ricerca operativa e di programmazione lineare.
Tipologia: Appunti
1 / 51
Questa pagina non è visibile nell’anteprima
Non perderti parti importanti!












































Cosa e la ricerca operativa? Il termine Ricerca Operativa deriva dal termine inglese “Operational Research”, ede una disciplina che tratta dello sviluppo e dell’applicazione di metodi scientifici per la risoluzione di problemi di tipo decisionale. In un problema decisionale si e di fronte a vari possibili scenari, e ovviamente quel che si vuol faree scegliere in modo ottimale. La ricerca operativa si fonda sul cosiddetto approccio modellistico, che for- nisce una base scientifica per l’analisi di problemi decisionali. L’approccio modellistico si fonda su due fasi:
In base allo spazio delle variabili X e alla struttura dell’insieme S, si distin- guono le seguenti classi di problemi:
I modelli che analizzeremo in questo corso sono modelli di programmazione li- neare. In tali modelli `e esplicitamente definito un obiettivo, espresso attraverso una funzione lineare, da minimizzare o massimizzare e le variabili sono vincolate ad appartenere ad un insieme prefissato, descritto anch’esso da funzioni lineari.
La mia funzione obiettivo (da massimizzare) sar`a:
250 F 1 + 230F 2 + 110F 3 + 350F 4
ed essa rappresenta il profitto complessivo che vogliamo sia il pi`u alto possibile.
Avendo 4 variabili (n = 4) il problema vive in R^4. Prendiamo come variabili xi le tonnellate di fertilizzante Fi prodotto. Ecco che possiamo quindi scrivere il problema in modo pi`u matematico in cui scriviamo la funzione obiettivo ed i vincoli nel seguente modo:
max 250x 1 + 230x 2 + 110x 3 + 350x 4
2 x 1 + 1. 5 x 2 + 0. 5 x 3 + 2. 5 x 4 ≤ 100
L’ultimo vincolo, ovvero xi > 0 ci dice che le 4 variabili che abbiamo devono essere tutte positive, e questo e ovvio se si pensa che le xi le abbiamo definite come le tonnellate di fertilizzante Fi prodotto (che per ovvie ragioni non puo essere ne negativo, ne nullo). Questo tipo di vincolo prende il nome di vincolo di non negativit`a.
Il problema appena visto vive in R^4. Se vogliamo scriverlo in modo pi`u compatto, abbiamo bisogno del prodotto scalare.
Vediamo il prodotto scalare in Rn, definito come:
π : Rn^ x Rn^7 −→ R
(x, y) 7 −→ xT^ y =
x 1 x 2... xn
y 1 y 2 .. . yn
X^ n
i=
xiyi
Torniamo all’esempio: se x ∈ R^4 , e cio`e x =
x 1 x 2
... xn
ci chiediamo chi `e^ c^ tale
per cui cT^ x sia la funzione obiettivo del nostro modello. La risposta `e data dai coefficienti!
c =
c 1 c 2 c 3 c 4
∈ R^4
Utilizzando a 1 =
e^ b^1 = 100 il primo vincolo posso scriverlo in forma
compatta come aT 1 x ≤ b 1
Utilizzando invece a 1 =
e^ b^2 = 50 il secondo vincolo lo scrivo in forma
compatta come aT 2 x ≤ b 2
Posso quindi introdurre una matrice A ∈ R^2 x^4 A =
aT 1 aT 2
e il vettore b =
b 1 b 2
e scrivere l’insieme ammissibile del modello come
S = {x ∈ R^4 | Ax ≤ b, x ≥ 0 }
Ricordiamo che il problema dei fertilizzanti poco fa illustrato consisteva nel massimizzare il profitto (max cT^ x). Ebbene, risolvendo il problema con un software di ottimizzazione si giunge alla soluzione ottima x∗^ = (0, 0 , 200 , 0), il che ci dice che per ottenere il profitto piu alto possibile dalla vendita dei fertilizzanti bisogna produrre 200 tonnellate del solo fertilizzante 3. Questo puo sembrare sorprendente se si nota che F3 `e il fertilizzante che costa meno di tutti.
e illimitata). Ovviamente il problema puo avere soluzione ottima.o essere che il problema sia illimitato inferiormente (e quindi condizione ne- cessaria e non sufficiente). Se invece il problema di PL e illimitato inferiormente allora la regione ammissi- bilee illimitata. La stessa cosa ovviamente vale per problemi di massimizzazione, in cui la regione ammissibile invece sar`a illimitata superiormente.Un insieme definito da disugualianze lineari mi va a definire un poliedro. Prima di definirlo per`o, introduciamo altre nozioni fondamentali.
Definizione. Sia a ∈ Rn, b ∈ R. L’insieme H dei punti
H = {x ∈ R | aT^ x = b}
e detto iperpiano ede definito da aT^ x = b. In R^2 un iperpiano e chiaramente una retta, mentre in R^3e un piano e cosi via.
A partire da un iperpiano possiamo distinguere due semispazi. Infatti, dato l’iperpiano aT^ x = b si definiscono gli insiemi
Definizione. Un poliedro P ⊆ Rn^ e un insieme definito come intersezione finita (cioe di un numero finito) di semispazi chiusi e di iperpiani. Algebricamente pu`o essere rappresentato come: P = {x ∈ Rn^ | Ax ≤ b} con A ∈ Rmxn^ e b ∈ Rm.
N.B. Un iperpiano si pu`o vedere come intersezione di due semispazi:
{x ∈ Rn^ | aT^ x = b} = {x ∈ Rn^ | aT^ x ≤ b, aT^ x ≥ b} = {x ∈ Rn^ | aT^ x ≤ b, −aT^ x ≤ −b}
Definizione. Dati x, y ∈ Rn, l’insieme dei punti definiti come:
{z ∈ Rn^ | z = αx + (1 − α)y, α ∈ [0, 1]}
e detto segmento chiuso di estremi x, y e si puo indicare con [x, y].
Definizione. Un insieme C ⊆ Rn^ e convesso se ∀ x, y ∈ C si ha [x, y] ⊆ C, ovvero se αx + (1 − α)y ∈ C ∀ α ∈ [0, 1] La convessita dunque vuole che comunque presi due punti x e y in un insieme C, il segmento che unisce i due estremi x e y deve essere tutto contenuto in C.
Proposizione. Dati C, D ⊆ Rn^ convessi, la loro intersezione `e un insieme convesso. Dimostrazione. Siano x, y ∈ C ∩ D, vogliamo dimostrare che [x, y] ⊆ C ∩ D:
Di conseguenza, poiche [x, y] ⊆ C, D esso appartiene anche alla loro intersezione (chee anche essa convessa), e quindi [x, y] ⊆ C ∩ D
Proposizione. Un semispazio chiuso {x ∈ Rn^ | aT^ x ≤ b} `e un insieme convesso.
Corollario. Anche un iperpiano e un insieme convesso perche intersezione di due insiemi convessi.
Di conseguenza, da queste ultime due affermazioni possiamo chiaramente con- cludere che anche un poliedro e un insieme convesso dato che, come abbiamo gia detto quando abbiamo definito un poliedro, esso non e altro che l’intersezione di un numero finito di semispazi (chiusi) e iperpiani. Quindi, essendo questi ultimi degli insiemi convessi, anche un poliedroe un insieme convesso.
Definizione. Una disuguaglianza del tipo mT^ x ≤ δ, con m ∈ Rn^ e δ ∈ R, si dice valida per un insieme P ⊆ Rn^ se `e soddisfatta da ogni punto x ∈ P.
Definizione. Una faccia di un poliedro P ⊆ Rn^ `e l’insieme definito F come
F = {x ∈ Rn^ | mT^ x = δ} ∩ P
N.B. Se F ̸= ∅, l’iperpiano mT^ x = δ `e detto iperpiano di supporto di P.
Notiamo che l’intersezione tra un iperpiano ed un poliedro (e quindi, per defi- nizione, una faccia del poliedro) puo essere vuota oppure puo rappresentare un solo vertice o ancora una faccia vera e propria del poliedro.
Se invece i /∈ I(¯x) (cioe none attivo), aTi x < b¯ i per definizione, e quindi posso pensare ad un ε sufficientemente piccolo in modo che aTi y = aTi ¯x + εaTi d ≤ bi e aTi z = aTi x¯ − εaTi d ≤ bi Ma dalla (1) e dalla (2) possiamo scrivere, mediante combinazione lineare delle due equazioni, che
x¯ =
y +
z = αy + (1 − α)z (con α =
e questo e un assurdo perche abbiamo detto che ¯x `e punto estremo di P.
N.B. Prendiamo un poliedro P = {x ∈ Rn^ | Ax ≤ b} con A ∈ Rmxn^ e B ∈ Rm. Affinch`e esistano vertici deve essere che m ≥ n. Di conseguenza, se m < n il poliedro P non ha vertici.
Inoltre,
m n
e il numero massimo di vertici che P puo avere.
Calcolare tutti i vertici del seguente poliedro:
P = {x ∈ R^3 | 2 x 1 − x 2 + x 3 ≤ 4 , x 1 − x 3 = 1, xi ≥ 0 }
Intuiamo subito che n = 3 e m = 5, tra cui un vincolo di uguaglianza che devo sempre considerare nei possibili sistemi. Quindi, per la presenza del vincolo di
uguaglianza, il numero massimo di vertici che P puo averee dato da
(anzich`e
= 10). Andiamo quindi a vedere tutti i 6 sistemi:
e fissiamo all’uguaglianza i primi 3 vincoli. La matrice A di partenza di questo esercizioe data da: 2 − 1 1 1 0 − 1 − 1 0 0 0 − 1 0 0 0 − 1Risolviamo A 1 x = b 1 , con A 1 =
(^) e b =
da cui si ottiene x 1 = 0, x 3 = −1 e x 2 = −5, soluzione non ammissi- bile perche noon soddisfa tutti i vincoli del poliedro (x 2 e x 3 infatti ci sono uscite negative quando in realta devono essere positive dagli ultimi due vincoli).
(^) e b =
, da cui si ottiene
x 2 = 0, x 1 = 53 e x 3 = 23 , il quale e un vertice di P poiche soddisfa all’ugua- glianza n = 3 vincoli linearmente indipendenti (verificato implicitamente) e soddisfa tutti i vincoli del poliedro!
Ora torniamo ai poliedri ed affrontiamo le ultime nozioni che ci servono per affrontare il teorema fondamentale della programmazione lineare.
Proposizione. Diciamo che un poliedro P = {x ∈ Rn^ | Ax ≤ b} contiene una retta se ∃ x¯ ∈ P ed una direzione d ∈ Rn^ tale che ¯x + λd ∈ P ∀λ ∈ R.
Proposizione. Sia P ̸= ∅ un poliedro, P possiede almeno un vertice se e solo se P non contiene rette. E quindi:
e un poliedro possieda verticie che non contenga rette.Esempio. Una poliedro contenente la retta in nero nel seguente disegno `e quello determinata dai due iperpiani paralleli in verde. Come facile intuire questo poliedro effettivamente non contiene vertici.
Partiamo con un esempio per far capire di cosa si tratta.
min − x 1 − x 2 2 x 1 + x 2 + x 3 = 12 x 1 + 2x 2 + x 4 = 9 xi ≥ 0 (i = 1, 2 , 3 , 4) Possiamo osservare alcune cose:
e vertice e f (x) = − 7 < −6 e quest’ultimae la soluzione ottima del problema proposto.Siamo quindi riusciti a migliorare il valore della funzione obiettivo andando a minimizzarlo ogni volta. Inoltre, se x ∈ R (con R regione ammissibile data dai 6 vincoli dell’esempio) possiamo dire che:
−x 1 − x 2 ≥ −x 1 − x 2 − x 1 − x 3 = − 2 x 1 − x 2 − x 3 = − 12
Il 1° vincolo del problemi mi fornisce un lower bound (sotto -12 non possiamo andare), e quindi possiamo affermare che il problema non `e illimitato inferio- remnte. Se andiamo a vedere il 2° vincolo ci accorgiamo che:
−x 1 − x 2 ≥ −x 1 − x 2 − x 2 − x 4 = −x 1 − 2 x 2 − x 4 = − 9
Siamo quindi riusciti (con il 2° vincolo) a migliorare il nostro lower bound.
N.B. Le due maggiorazioni fatte poc’anzi abbiamo potuto farle tranquillamente poiche abbiamo il vincolo xi ≥ 0, altrimenti dovevamo stare attenti nel farlo. Tornando a noi, abbiamo quindi capito che il valore minimo non puo scende- re sotto il valore -9. In realta, con un procedimento a noi ancora sconosciuto, possiamo arrivare a dire (come accennato poco fa) che la soluzione ottima del problemae -7, e a cio ci si puo arrivare cercando una combinazione lineare dei vincoli fatta cosi:
λ 1 (2x 1 + x 2 + x 3 ) + λ 2 (x 1 + x 2 + x 4 ) = 12λ 1 + 9λ 2 = = (2λ 1 + λ 2 )x 1 + (λ 1 + 2λ 2 )x 2 + λ 1 x 3 + λ 2 x 4 ≤ −x 1 − x 2
Quindi, abbiamo cercato un combinazione lineare dei vincoli (quella appna scrit- ta) per ottenere un lower bound sulla funzione obiettivo nei punti ammissibili. Voglio dunque
2 λ 1 + λ 2 ≤ − 1 λ 1 + 2λ 2 ≤ − 1 λ 1 ≤ 0 λ 2 ≤ 0
per poter minimizzare la funzione obiettivo (−x 1 − x 2 ). Di conseguenza voglio massimizzare 12λ 1 + 9 2 , e posso vedere il mio problema prendere una forma diversa. In particolare, esso pu`o essere riscritto in questa forma:
max 12λ 1 + 9λ 2 2 λ 1 + λ 2 ≤ − 1 λ 1 + 2λ 2 ≤ − 1 λ 1 ≤ 0 λ 2 ≤ 0
Cosi facendo vado a creare un altro problema, questa volta di massimizzazione. Si noti che il precedente problema aveva ben 4 variabili, mentre quello attuale ne ha 2 ed `e quindi risolvibile graficamente (ma non sempre il numero di variabili scende a 2).
Mi si e quindi creato un problema duale, che potrebbe (come in questo ca- so) risultare piu semplice del problema primale, cio`e del problema di partenza.
Andiamo ora a formalizzare meglio il tutto: sia dato il problema di program- mazione lineare P min cT^ x (con Ax ≥ b, c ∈ Rn, A ∈ Rmxn, b ∈ Rm). Il problema duale associato a P (che chiameremo (D)) `e dato da max bT^ λ, con AT^ λ = c e λ ≥ 0.
Sia ¯x ∈ Rn^ ammissibile per il problema primale (P) (cioe Ax ≥ b). Sia λ¯ ∈ Rm^ ammissibile per il problema duale (D) (cioe AT^ λ¯ = c, λ ≥ 0). Allora cT^ λ¯ ≥ bT^ ¯λ
Dimostrazione. A¯x ≥ b e λ¯ ≥ 0 per ammissibilit`a.
(Ax¯ − b)T^ λ¯ ≥ 0
0 ≤ (Ax¯ − b)T^ ¯λ ⇐⇒
X^ n
i=
(A¯x − b)i ¯λi ≥ 0
0 ≤ (A¯x)T^ λ¯ − bT^ ¯λ = ¯xT^ AT^ ¯λ − bT^ λ¯ = ¯xT^ c − bT^ λ¯
e cio`e bT^ λ¯ ≤ cT^ x¯
Indicando con A una matrice, con aTi una sua generica riga e con Ai la generica colonna: min cT^ x −→ max bT^ λ aTi x ≥ bi −→ λi ≥ 0 aTi x ≤ bi −→ λi ≤ 0 aTi x = bi −→ λi ∈ R xi ≥ 0 −→ λT^ Ai ≤ ci xi ≤ 0 −→ λT^ Ai ≥ ci xi ∈ R −→ λT^ Ai = ci
Ripartiamo dai problemi primale (P) scritto nella forma min cT^ x (con c ∈ Rn), Ax ≥ b e duale (D) scritto nella forma max bT^ λ, AT^ λ = c (e λ ≥ 0).
Dal teorema della dualita forte, se x∗^e ammissibile per (P) (cioe Ax ≥ b), se λ∗^e soluzione ottima per (D) (e cio`e AT^ λ∗^ = c, λ∗^ ≥ 0) e bT^ λ∗^ = cT^ x∗ allora x∗^ e λ∗^ sono soluzioni ottime per (P) e (D) rispettivamente. Ora, da quanto detto possimo fare i seguenti passaggi:
cT^ x∗^ − bT^ λ∗^ = 0 = (AT^ λ∗)T^ x∗^ − bT^ λ∗^ = λ∗T^ Ax∗^ − bT^ λ∗^ =
= (Ax∗^ − b)T^ λ∗^ = 0
Quest’ultima relazione scritta mi va a definire le cosiddette condizioni di complementarieta, le quali mi dicono che un elemento deve essere complemen- tare all’altro, cioe almeno uno dei due deve essere nullo (e infatti il prodotto tra λ∗^ e (Ax∗^ − b)T^ , essendo entrambe quantita maggiori o uguali di 0 per ipotesi, si annulla quando almeno uno dei due terminie nullo). Importante. Condizione necessaria e sufficiente per avere ottimalita dei pro- blemi primale e dualee che le condizioni di complementarieta vengano rispettate. In altre parole, se riesco a determinare x∗^ e λ∗^ che mi soddisfano le condizioni di complementarieta ho una coppia primale-duale ottima.
3.5.1 Caso generale
Consideriamo la coppia primale-duale pi`u generale possibile:
(P ) min cT^ x + dT^ y
con x ∈ Rn^1 (cio`e n 1 variabili) vincolate in segno, c ∈ Rn^1 , y ∈ Rn^2 non vincolate in segno e d ∈ Rn^2
Cx + Dy = h
con C ∈ Rm^1 xn^1 , D ∈ Rm^1 xn^2 , h ∈ Rm^1 e m 1 che rappresenta il numero di vincoli di uguaglianza presenti nel problema.
Ex + F y ≥ g
con E ∈ Rm^2 xn^1 , F ∈ Rm^2 xn^2 , g ∈ Rm^2 e m 2 che rappresenta il numero di vincoli di disuguaglianza presenti nel problema. Consideriamo inoltre tutte le x ≥ 0. A partire da questo problema primale, il suo duale (D) sar`a: (D) max hT^ z + gT^ v
in cui stiamo
e ai vincoli di uguaglianza), e quindi z none vincolata in segno.e ge vincolata in segno.CT^ z + ET^ v ≤ c DT^ z + F T^ v = d
Da queste scritture possiamo enunciare il seguente teorema: Teorema. Sia (¯x, y¯) ammissibile per (P) e (¯z, ¯u) ammissibile per (D). Allora (¯x, ¯y) e (¯z, v¯) sono soluzioni ottime per (P) e (D) se e solo se
vT^ (E x¯ + F ¯y − g) = 0 (3)