Docsity
Docsity

Prepara i tuoi esami
Prepara i tuoi esami

Studia grazie alle numerose risorse presenti su Docsity


Ottieni i punti per scaricare
Ottieni i punti per scaricare

Guadagna punti aiutando altri studenti oppure acquistali con un piano Premium


Guide e consigli
Guide e consigli


Ricerca operativa: programmazione lineare, Appunti di Ricerca Operativa

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

2023/2024

In vendita dal 03/01/2024

simone-belli-2
simone-belli-2 🇮🇹

5

(2)

3 documenti

1 / 51

Toggle sidebar

Questa pagina non è visibile nell’anteprima

Non perderti parti importanti!

bg1
Ricerca operativa
Simone Belli
1
pf3
pf4
pf5
pf8
pf9
pfa
pfd
pfe
pff
pf12
pf13
pf14
pf15
pf16
pf17
pf18
pf19
pf1a
pf1b
pf1c
pf1d
pf1e
pf1f
pf20
pf21
pf22
pf23
pf24
pf25
pf26
pf27
pf28
pf29
pf2a
pf2b
pf2c
pf2d
pf2e
pf2f
pf30
pf31
pf32
pf33

Anteprima parziale del testo

Scarica Ricerca operativa: programmazione lineare e più Appunti in PDF di Ricerca Operativa solo su Docsity!

Ricerca operativa

Simone Belli

Indice

1 Introduzione

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:

  • Rappresentazione attraverso un modello matematico.
    • Analisi del problema: si va a capire, tramite un’attenta analisi del problema stesso, come trovarne una soluzione che sia ottima.
    • Costruzione del modello: si procede verso la ricerca della soluzione ottima, costruendo il modello che rappresenta (da un punto di vista matematico) il problema che si ha di fronte.
    • Analisi del modello: occorre chiaramente capire in modo rigoroso se il modello costruito descrive correttamente il problema e se pu`o essere ulteriormente migliorato ai fini della ricerca della soluzione.
  • Risoluzione attraverso un metodo matematico.
    • Soluzione numerica: trattandosi di un problema risolto da un punto di vista matematico, esso deve ammettere una soluzione numerica.
    • Validazione del modello: questa fase, come facilmente intuibile, `e una conseguenza positiva alla costruzione ed all’analisi del modello costruito.

In base allo spazio delle variabili X e alla struttura dell’insieme S, si distin- guono le seguenti classi di problemi:

  • X = Rn^ problemi di ottimizzazione continua.
    • S = Rn^ problemi di ottimizzazione continua non vincolata.
    • S ⊂ Rn^ problemi di ottimizzazione continua vincolata.
  • X = Zn^ problemi di ottimizzazione discreta
    • S ⊆ Zn^ problemi di programmazione a numeri interi.
    • S ⊆ { 0 , 1 }n^ problemi di programmazione combinatoria.

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

  1. 5 x 1 + 0. 25 x 2 + 0. 25 x 3 + x 4 ≤ 50 xi > 0

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.

1.3 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.

  • Non ammissibile, se la regione ammissibile S = {x ∈ R | Ax ≤ b} `e vuota
  • Illimitato inferiormente, se ∀M ≥ 0 ∃ x ∈ S tale che cT^ x < −M Cadere in uno di questi due casi significa che il problema non ammette soluzione ottima (o non esiste oppure e illimitata). Ovviamente il problema puo avere soluzione ottima.
  • Ammette soluzione ottima se ∃ x* ∈ S tale che cT^ x* ≤ cT^ x ∀x ∈ S N.B. Se un problema di minimizzazione ha la regione ammissibile illimitata puo 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.

2.1 Poliedri

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

  • S≥^ = {x ∈ Rn^ | aT^ x ≥ b}
  • S≤^ = {x ∈ Rn^ | aT^ x ≤ b} Questi insiemi sono appunto detti semispazi, e sono insiemi chiusi (perch`e de- finiti dalle operazioni ≥ e ≤).

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:

  • x, y ∈ C e C convesso =⇒ [x, y] ⊆ C
  • x, y ∈ D e D convesso =⇒ [x, y] ⊆ 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.

2.2 Esempio: calcolo dei vertici

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:

  1. Attiviamo i vincoli 1, 2 e 3 (I 1 = { 1 , 2 , 3 }), cioe 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 − 1

Risolviamo 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).

2. I 2 = { 1 , 2 , 4 }, A 1 =

 (^) 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!

  1. con I 3 = { 1 , 2 , 5 } si ottiene x 3 = 0, x 1 = 1 e x 2 = − 1 =⇒ soluzione non ammissibile.
  2. con I 4 = { 2 , 3 , 4 } si ottiene x 3 = −1, x 1 = 0 e x 2 = 0 =⇒ soluzione non ammissibile.
  3. con I 5 = { 2 , 4 , 5 } si ottiene x 3 = 0, x 1 = 1 e x 2 = 0 che `e vertice del poliedro!
  4. con I 6 = { 2 , 3 , 5 } si ottiene x 1 = 0, x 3 = 0 e 0 = 0, da cui notiamo che le righe di A sono linearmente dipendenti =⇒ non possiamo avere vertice.

2.3 Ultime considerazioni

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:

  • Condizione necessaria e sufficiente affinche 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.

3 Teoria della dualit`a

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:

  1. x = (0, 92 , 152 , 0)T^ `e un vertice del poliedro, e ci conduce ad un valore della funzione obiettivo f (x) pari a - 92.
  2. x = (6, 0 , 0 , 3)T^ `e vertice del poliedro e questa volta f (x) = − 6 < − 92.
  3. x = (5, 2 , 0 , 0)T^ 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.

3.1 Teorema della dualit`a debole

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¯

3.4 Scrittura dei problemi duali

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

3.5 Condizioni di complementariet`a

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

  • legando z ∈ Rm^1 ad h (cioe ai vincoli di uguaglianza), e quindi z none vincolata in segno.
  • legando v ∈ Rm^2 a g (vincoli di disuguaglianza), con v ≥ 0 poiche 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)