Il linguaggio di modellizzazione algebrica AMPL

Documenti analoghi
Corso di laurea in Ingegneria dell Informazione (ord. 2013) sede di Latina. 3 ANNO - II Semestre a.a. 2016/2017. Esercizi svolti di.

Esercizi di riepilogo sui Capitoli 1 4

Si riporta di seguito la soluzione ottenuta utilizzando il solutore CPLEX:

La Programmazione Lineare

di INGEGNERIA Anno Accademico ESERCIZI SVOLTI di RICERCA OPERATIVA per i Corsi di Laurea in: Ingegneria Gestionale

La dualità nella Programmazione Lineare

PROGRAMMAZIONE LINEARE E DUALITA'

Programmazione Lineare

3.3 FORMULAZIONE DEL MODELLO E CONDIZIONI DI

Geometria della programmazione lineare

Esercizi di ottimizzazione vincolata

Ricerca Operativa. Ricerca Operativa p. 1/6

Il modello duale. Capitolo settimo. Introduzione

Metodi e Modelli per l Ottimizzazione Combinatoria Ripasso sulla Programmazione Lineare e il metodo del Simplesso (parte I)

Esercizi svolti di Programmazione Lineare. a cura di Laura Scrimali Dipartimento di Matematica e Informatica Università di Catania

Soluzione grafica di problemi PM in 2 variabili

Prerequisiti didattici

RETTE E PIANI NELLO SPAZIO

RICERCA OPERATIVA GRUPPO A prova scritta del 22 marzo 2007

Teoria della Programmazione Lineare. Teoria della Programmazione Lineare p. 1/8

Introduzione al Metodo del Simplesso. 1 Soluzioni di base e problemi in forma standard

Esercizi sulla Programmazione Lineare. min. cx Ax b x 0

1 Il metodo dei tagli di Gomory

Ricerca Operativa. G. Liuzzi. Lunedí 20 Aprile 2015

( ) le colonne della matrice dei coefficienti, con. , risulta A 3 = A 1 + 4A 2 + 4A 5, A 4 = A 1 + A 2,

Massimi e minimi vincolati

LEZIONE N. 6 - PARTE 1 - Introduzione

Il metodo del simplesso

FONDAMENTI DI ALGEBRA LINEARE E GEOMETRIA

La Retta Ogni funzione di primo grado rappresenta, graficamente, una retta. L equazione della retta può essere scritta in due modi

EQUAZIONE DELLA RETTA

ESERCIZI SVOLTI DI PROGRAMMAZIONE LINEARE TOMO G PAG 421 E SEGUENTI

Geometria Analitica Domande e Risposte

LE EQUAZIONI DIFFERENZIALI. che, insieme alle loro derivate, soddisfano un equazione differenziale.

FUNZIONI LINEARI (Retta, punto di pareggio e relazioni lineari generalizzate)

Appendice A: un esempio di scelta del mix ottimo di produzione in presenza di vincoli 19

x 1 x 2 x 3 x 5 La base iniziale è B 0 = I e risulta x B 0 = , x N 0 = Iterazione 0. Calcolo dei costi ridotti. γ 0 = c N 0 (N 0 ) T c B 0 =

Figura 1: 1) Si scriva la formulazione del problema come problema di PLI (con un numero minimo di vincoli) e la matrice dei vincoli.

1 Ampliamento del piano e coordinate omogenee

Appunti su Indipendenza Lineare di Vettori

5.4.5 Struttura dell algoritmo ed esempi

Equazioni lineari con due o più incognite

4 Autovettori e autovalori

Esercizi del 9 ottobre 2014

Ore annue: 132 MODULO 1

Matematica per Analisi dei Dati,

4.5 Metodo del simplesso

Metodi e modelli per le decisioni

UNITÀ DIDATTICA 5 LA RETTA

LA RETTA. La retta è un insieme illimitato di punti che non ha inizio, né fine.

Geometria analitica di base. Equazioni di primo grado nel piano cartesiano Funzioni quadratiche Funzioni a tratti Funzioni di proporzionalità inversa

Studio generale di una conica

LOGARITMI. Corso di laurea: BIOLOGIA Tutor: Floris Marta; Max Artizzu PRECORSI DI MATEMATICA. L uguaglianza: a x = b

1 IL LINGUAGGIO MATEMATICO

UNITÀ DIDATTICA 2 LE FUNZIONI

2. ALGORITMO DEL SIMPLESSO

Matematica per le Applicazioni Economiche I (M-P)

Condizione di allineamento di tre punti

Sistemi di 1 grado in due incognite

Sistemi lineari. Lorenzo Pareschi. Dipartimento di Matematica & Facoltá di Architettura Universitá di Ferrara

Soluzione dei Problemi di Programmazione Lineare

Teoria della Programmazione Lineare

Programmazione Non Lineare

Frazioni algebriche. Osserviamo che un espressione di questo tipo si ottiene talvolta quando ci si propone di ottenere il quoziente di due monomi.

RICERCA OPERATIVA GRUPPO B prova scritta del 22 settembre 2004 FOGLIO 1. Cognome: Nome: Matricola:

Esercizio 10.1 Pagina 1 di 2 ESERCIZIO 10.1

Possibile applicazione

ALGORITMI DI OTTIMIZZAZIONE M Esercizi Parte I

Ricerca Operativa A.A. 2007/ Analisi di sensitività

ESERCIZI SVOLTI DI PROGRAMMAZIONE LINEARE TOMO G PAG 417 E SEGUENTI. Esercizio n. 1 pag 417. vincoli

04 - Numeri Complessi

Geometria analitica di base (seconda parte)

Esercitazione 6 - Soluzione

Insiemi di numeri reali

Registro Lezioni di Algebra lineare del 15 e 16 novembre 2016.

Funzioni implicite - Esercizi svolti

Modelli di programmazione lineare. Il metodo grafico è basato su linearità della funzione obiettivo linearità dei vincoli

Ellisse. Come fa un giardiniere a creare un aiuola di forma ellittica?

STUDIO DELLE RADICI DI UNA EQUAZIONE ALGEBRICA DI TERZO GRADO A COEFFICIENTI REALI

Soluzione. Il dominio E consiste nella parte di spazio contenuta nella sfera ma esterna al cono rappresentata in Figura 1. Infatti

Problemi di Flusso: Il modello del Trasporto

3.6 Metodi basati sui piani di taglio

TEORIA della DUALITÀ. Una piccola introduzione. Ricerca Operativa. Prof. R. Tadei. Politecnico di Torino. Teoria della Dualità / 1.

I. Foglio di esercizi su vettori linearmente dipendenti e linearmente indipendenti. , v 2 = α v 1 + β v 2 + γ v 3. α v 1 + β v 2 + γ v 3 = 0. + γ.

Alcuni esercizi sulla diagonalizzazione di matrici. campo dei reali. Se lo è calcolare una base spettrale e la relativa forma diagonale di A.

Chi non risolve esercizi non impara la matematica.

ESERCIZI DI METODI QUANTITATIVI PER L ECONOMIA DIP. DI ECONOMIA E MANAGEMENT DI FERRARA A.A. 2016/2017. Esercizi di Programmazione Lineare in Aula

Teoria della Programmazione Lineare Intera

Il teorema di Rouché-Capelli

2.6 Calcolo degli equilibri di Nash

Y = ax 2 + bx + c LA PARABOLA

COMPITO DI RICERCA OPERATIVA. (5 punti) Sia dato il seguente problema di PL: min x 1 + x 2 x 1 + x 2 3 x 1 + x 2 2 2x 1 + x 2 3.

Esercizi di Geometria Affine

Ricerca Operativa. Facoltà di Ingegneria dell Informazione, Informatica e Statistica. Esercizi svolti di. Giovanni Fasano. fasano@unive.

3. (Da Medicina 2003) Moltiplicando i due membri di un'equazione per il numero -1, le soluzioni dell'equazione che si ottiene:

Flusso a Costo Minimo

3. Massimo, minimo, maggioranti e minoranti. Insiemi limitati. Estremi superiori ed inferiori.

Geometria e Topologia I (U1-4) 2006-mag-10 61

RENDITE. Ricerca del tasso di una rendita

Esercizi di Programmazione Lineare - Dualità

Transcript:

Il linguaggio di modellizzazione algebrica AMPL In questo capitolo sono riportate le implementazioni in AMPL di alcuni esercizi dei quali è già stata fornita la formulazione algebrica nel capitolo precedente. 4.1 ESERCIZI DI FORMULAZIONI MEDIANTE IL LINGUAGGIO AMPL Esercizio 4.1.1 Si traduca in AMPL (producendo un file.mod e uno.dat) il modello di Programmazione Lineare definito nell Esercizio 3.1.1. Soluzione. set PROD; set MACCH; industria.mod param Profitto{PROD}; param Tempo_macch{PROD,MACCH}; param Tempo_oper; param Numero_macch{MACCH}; param Numero_oper; param Ore_max_macch; param Ore_max_oper; var Quantita{PROD} >= 0; maximize profitto_tot: sum{p in PROD} Profitto[p]*Quantita[p];

2 IL LINGUAGGIO DI MODELLIZZAZIONE ALGEBRICA AMPL subject to limite_macchine {m in MACCH}: sum{p in PROD} Tempo_macch[p,m]*Quantita[p] <= Numero_macch[m]*Ore_max_macch; subject to limite_oper: Tempo_oper*sum{p in PROD} Quantita[p] <= Numero_oper*Ore_max_oper; set PROD := P1 P2 P3 P4 P5; set MACCH := M1 M2; param: Profitto := P1 250 P2 300 P3 500 P4 450 P5 180; industria.dat param Tempo_macch: M1 M2 := P1 10 9 P2 15 13 P3 7 0 P4 18 0 P5 0 20; param Tempo_oper := 18; param: Numero_macch := M1 4 M2 3; param Numero_oper := 10; param Ore_max_macch := 80; # giorni*turni*ore param Ore_max_oper := 40; # giorni*turni*ore

E E E E AMPL 27 Esercizio 4.1.2 Si traduca in AMPL (producendo un file.mod e uno.dat) il modello di Programmazione Lineare definito nell Esercizio 3.1.2. Soluzione. set ELET; set REP; elettrodomestici.mod param NumOper{REP}; param OreOper; param OreProd{ELET,REP}; param Prezzo{ELET}; param Domanda{ELET}; var Qta{ELET,REP} >= 0, integer; maximize profitto: sum{e in ELET, r in REP} Prezzo[e]*Qta[e,r]; subject to produzione {r in REP}: sum{e in ELET} OreProd[e,r]*Qta[e,r] <= NumOper[r]*OreOper; subject to domanda_min {e in ELET}: sum{r in REP} Qta[e,r] >= Domanda[e]; set ELET := E1 E2 E3 E4; set REP := R1 R2 R3; param: NumOper := R1 40 R2 35 R3 25; param OreOper := 40; elettrodomestici.dat param OreProd: R1 R2 R3 := E1 1 1.2 0.8 E2 1.5 1.3 1.7 E3 0.5 0.6 0.7

2 IL LINGUAGGIO DI MODELLIZZAZIONE ALGEBRICA AMPL E4 1.6 1 1.3; param: Prezzo Domanda := E1 800 1000 E2 1200 600 E3 950 300 E4 1100 200; Esercizio 4.1.3 Si traduca in AMPL (producendo un file.mod e uno.dat) il modello di Programmazione Lineare definito nell Esercizio 3.2.1. Soluzione. set BENZ; set CARB; raffineria.mod param Ottani{BENZ}; param Ettol_disp{BENZ}; param Costo{BENZ}; param Prezzo_benz{BENZ}; param Min_ottani{CARB}; param Prezzo_carb{CARB}; param Dom_min{CARB}; param Dom_max{CARB}; var Qta{BENZ,CARB} >= 0; var Qta_grez{BENZ} >= 0; maximize ricavo: (sum{b in BENZ, c in CARB} (Prezzo_carb[c]-Costo[b])*Qta[b,c]) + (sum{b in BENZ} (Prezzo_benz[b]-Costo[b])*Qta_grez[b]); subject to qualita {c in CARB}: sum{b in BENZ} (Ottani[b]-Min_ottani[c])*Qta[b,c] >= 0; subject to disponibilita {b in BENZ}: sum{c in CARB} Qta[b,c] + Qta_grez[b] <= Ettol_disp[b]; subject to domanda {c in CARB}:

E E E E AMPL 29 Dom_min[c] <= sum{b in BENZ} Qta[b,c] <= Dom_max[c]; set BENZ := B1 B2 B3 B4; set CARB := C1 C2; raffineria.dat param: Ottani Ettol_disp Costo Prezzo_benz := B1 90 3500 260 280 B2 73 6000 210 250 B3 79 4500 190 250 B4 86 5200 220 280; param: Min_ottani Prezzo_carb Dom_min Dom_max := C1 80 350 0 25000 C2 85 520 10000 Infinity; Esercizio 4.1.4 Si traduca in AMPL (producendo un file.mod e uno.dat) il modello di Programmazione Lineare definito nell Esercizio 3.3.2. Soluzione. set IMP; set MAG; set DIS; distribuzione.mod param Offerta{IMP}; param Costo_trasp1{IMP,MAG}; param Domanda_mag{MAG}; param Prezzo_mag{MAG}; param Costo_trasp2{MAG,DIS}; param Domanda_dis{DIS}; param Prezzo_dis{DIS}; var x{imp,mag} >= 0; var y{mag,dis} >= 0; var z{m in MAG} >= Domanda_mag[m];

3 IL LINGUAGGIO DI MODELLIZZAZIONE ALGEBRICA AMPL maximize profitto: sum{m in MAG} (Prezzo_mag[m]*z[m] + sum{d in DIS} Prezzo_dis[d]*y[m,d]) - sum{i in IMP,m in MAG} Costo_trasp1[i,m]*x[i,m] - sum{m in MAG,d in DIS} Costo_trasp2[m,d]*y[m,d]; subject to offerta_imp {i in IMP}: sum{m in MAG} x[i,m] <= Offerta[i]; subject to transito {m in MAG}: sum{i in IMP} x[i,m] = sum{d in DIS} y[m,d] + z[m]; subject to domanda_dis {d in DIS}: sum{m in MAG} y[m,d] >= Domanda_dis[d]; set IMP := I1 I2; set MAG := M1 M2; set DIS := D1 D2 D3 D4; param: Offerta := I1 3000 I2 2000; distribuzione.dat param Costo_trasp1: M1 M2 := I1 21 25 I2 27 22; param: Domanda_mag Prezzo_mag := M1 500 150 M2 500 170; param Costo_trasp2: D1 D2 D3 D4 := M1 33 31 36 30 M2 27 30 28 31; param: Domanda_dis Prezzo_dis := D1 150 350 D2 190 280 D3 220 200 D4 170 270;

La Programmazione Lineare 5.1 INTERPRETAZIONE GEOMETRICA DI UN PROBLEMA DI PROGRAMMAZIONE LINEARE Esercizio 5.1.1 Fornire una rappresentazione geometrica e risolvere graficamente i seguenti problemi di Programmazione Lineare: 1. minx 1 +9x 2 2x 1 +x 2 100 x 1 +x 2 80 x 1 40 x 1 0,x 2 0. 2. 3. min 5x 1 7x 2 3x 1 +2x 2 30 2x 1 +x 2 12 x 1 0,x 2 0. min3x 1 +x 2 x 1 x 2 1 3x 1 +2x 2 12 2x 1 +3x 2 3 2x 1 +3x 2 9 x 1 0,x 2 0.

32 LA PROGRAMMAZIONE LINEARE 4. minx 1 2x 2 x 1 2x 2 4 x 1 +x 2 8 x 1 0,x 2 0. 1. Il problema ammette soluzione ottima nell origine degli assi. 2. Il problema è illimitato. 3. Dalla rappresentazione dell insieme ammissibile si deduce immediatamente che il problema è inammissibile. 4. Il problema ammette infinite soluzioni ottime.

E I E E E E I E I NE LINEARE 33 Esercizi di riepilogo sui Capitoli 1 5 1. Dare la definizione di funzione lineare. R: Una funzione lineare di n variabili è una funzione del tipo dove c 1,c 2,...,c n sono numeri reali. c 1 x 1 +c 2 x 2 + +c n x n, 2. Dire quali delle seguenti funzioni è lineare. (a) 2x 1 +x 1 x 2 x 3 (b) (log5)x 1 x 25 (c) sinx 1 x 25 (d) x 1 x 3 +5x 4 (e) x 1 x 3 +5x 4 +1 (f) x 1 +2x 2 4x 3 x 1 +2,5x 2 +x 3 (g) x 1 +x 2 +x 3 3 R: (b) e (d). Attenzione (e) è la somma di una funzione lineare e di una costante; questo tipo di funzioni è chiamato affine. Geometricamente le funzioni lineari rappresentano iperpiani (rette nel caso di due solo variabili) passanti per l origine mentre le funzioni affini rappresentano iperpiani(rette nel caso di due solo variabili) che non necessariamente passano per l origine. Ovviamente ogni funzione lineare è anche affine (una funzione lineare può esserepensatacomelasommadisestessaedellacostante 0), mailviceversa non è vero. Spesso nell ambito della Programmazione Lineare si usa il termini lineare anche quando, a rigore, si dovrebbe usare la parola affine; vedi per esempio l esercizio numero 7. 3. Se il valore di una funzione lineare nel punto (2,1, 1) è 4, qual è il valore della stessa funzione nel punto (4,2, 2) = 2(2,1, 1)? Sai dire qual è il nome della proprietà che hai utilizzato per dare la risposta? R: Il valore è 8 = 2 4. La funzione lineare in questione ha ovviamente tre variabili. Ora, pur senza sapere qual è il valore dei coefficienti c 1, c 2 e c 3 (vedi l esercizio 1), sappiamo che c 1 2+c 2 1+c 3 ( 1) = 4. Quindi Possiamo concludere che c 1 (2 2)+c 2 (2 1)+c 3 (2 ( 1)) = 2(c 1 2+c 2 1+c 3 ( 1)) = 2 4 = 8. Questa osservazione può essere generalizzata. Data una funzione lineare essa può essere scritta come c T x. E quindi, se λ è una costante reale, ragionando come appena fatto, abbiamo che c T (λx) = λ(c T x).

3 LA PROGRAMMAZIONE LINEARE In parole, se una funzione lineare ha un certo valore in un dato punto x, il valore della funzione in un punto ottenuto moltiplicando tutte le componenti di x per una data costante λ è uguale al valore della funzione in x moltiplicato per la stessa costante λ. Questa proprietà è chiamata proporzionalità o, in termini più matematici, omogeneità. 4. Se il valore di unafunzione lineare nel punto (2,1, 1) è 4 e quello nel punto (2,0,1) è 7, qual è il valore della stessa funzione in (4,1,0) = (2,1, 1) + (2,0,1)? Sai dire qual è il nome della proprietà che hai utilizzato per dare la risposta? R: Il valore è 11 = 4+7. La funzione lineare in questione ha ovviamente tre variabili. Ora, pur senza sapere qual è il valore dei coefficienti c 1, c 2 e c 3 (vedi l esercizio 1), sappiamo che c 1 2+c 2 1+c 3 ( 1) = 4 e c 1 2+c 2 0+c 3 1 = 7. Quindi possiamo concludere che c 1 (2+2)+c 2 (1+0)+c 3 ( 1+1) = [c 1 2+c 2 1+c 3 ( 1)]+[c 1 2+c 2 0+c 3 1] = 4+7 = 11. Questa osservazione può essere generalizzata. Data una funzione lineare e due punti x e y, ragionando come appena fatto, abbiamo che c T (x+y) = c T x+c T y. In parole, il valore di una funzione lineare in un punto z che è la somma di due punti x e y (cioè z = x + y) è uguale alla somma dei valori della funzione calcolata in x e in y. Questa proprietà è chiamata sovrapposizione degli effetti o, in termini più matematici, addittività. 5. Cos è un poliedro? R: Un poliedro è l insieme di soluzioni di un sistema di equazioni o disequazioni lineari. Un equazione lineare è un espressione del tipo: a T x = b, dove b è un numero (detto termine noto ) e a è un vettore di coefficienti numerici. Una disequazione lineare è un espressione del tipo a T x b o a T x b. Nella nostra definizione di poliedro, non consideriamo valide disequazioni con disuguagianze strette (cioè a T x < b o a T x > b). 6. Tra gl insiemi riportati in figura, quali sono i poliedri e quali i poliedri illimitati?

E I E E E E I E I NE LINEARE 35 3 1 01 01 01 01 01 3 01 00 11 1 4 (a) (b) (c) 3 00 11 00 11 00 11 01 000000 111111 000000 111111 000000 111111 000000 111111 00000 11111 01 (d) (e) (f) R (b), (c), (e), (f). (b) è il poliedro più facilmente riconoscibile, non di meno anche gli altri sono soluzioni di sistemi lineari. In particolare in (c) è rappresntato un singolo punto, che può essere visto come la soluzione del sistema x 1 = 3 x 2 = 3. Altri esempi di poliedri strani sono l insieme vuoto (che è l insieme di soluzioni di un sistema incompatibile) e tutto lo spazio (che è l insieme di soluzioni di un sistema vuoto, cioè di un sistema che non contiene nessun vincolo). I poliedri illimitati sono (e) e (f). Questo è abbastanza intuitivo. Volendo precisare la nozione di poliedro limitato o illimitato, possiamo dire che un poliedro è limitato se esiste una costante positiva M, tale che, se x appartiene al poliedro, allora per ogni sua componente abbiamo x i M. Un poliedro che non è limitato è illimitato. Per il poliedro (b) possiamo prendere M = 4, per il poliedro (c) possiamo prendere invece M = 3. Quindi (b) e (c) sono poliedri limitati. 7. Definisci un problema di Programmazione Lineare (PL nel seguito). R: Un problema di PL è un problema di minimizzazione o massimizzazione di una funzione lineare soggetta a vincoli lineari. In altre parole un problema di PL è un problema di minimizzazione o massimizzazione di una funzione lineare su un poliedro. Sono problemi di PL anche quelli in cui la funzione obiettivo è affine, quindi, con più precisione, dovremmo dire, che un problema di PL consiste nella minimizzazione o massimizzazione di una funzione affine soggetta a vincoli lineari. L uso del termine lineare per descrivere la funzione obiettivo è motivato sia dall uso sia dall oservazione che minimizzare una funzione affine c T x + costante su un poliedro P è

3 LA PROGRAMMAZIONE LINEARE equivalente a minimizzare la funzione lineare c T x su P. Qui, la parola equivalente va intesa nel senso che le soluzioni ottime dei due problemi coincidono. 8. Dire quali dei seguenti problemi è un problema di PL. (a) (b) min 2x 1 x 2 +x 3 x 1 x 2 +7x 3 x 4 2 3x 1 6x 2 3x 3 = 0 x 1 0,x 3 0. max 2x 1 x 2 +x 3 x 1 x 2 +7x 3 x 2 4 3 3x 3 1 6x 2 3x 3 = 0 x 1 0,x 3 0. (c) min 2x 1 x 2 +x 3 +4 x 1 x 2 +7x 3 x 4 2 3x 1 6x 2 3x 3 0 x 1 0,x 4 = 0. (d) (e) (f) max 3x 1 2x 2 +2x 3 +x 4 x P, dove P è un poliedro. min 2x 1 x 2 x 2 +x 3 +e x 4 x 1 x 2 +7x 3 x 4 2 3x 1 6x 2 3x 3 0. max c T x Ax = b, x 0,

E I E E E E I E I NE LINEARE 37 dove il vettore delle variabili x ha n componenti, c è un vettore di numeri a n componenti, A è una matrice di numeri m n, e b è un vettore di numeri a m componenti. R: (a), (c), (d), (f). 9. Risolvere graficamente i seguenti problemi di PL (a) (b) (c) max x 1 +3x 2 x 1 +x 2 3 x 1 +x 2 1 x 1 +2x 2 4 x 1,x 2 0. max x 1 +3x 2 x 1 +x 2 3 x 1 +x 2 1 x 1 +2x 2 2 x 1,x 2 0. min x 1 +4x 2 x 1 +x 2 3 x 1 +x 2 x 1,x 2 0. R: Indichiamo con x la soluzione ottima. (a) x = (2,1) (b) Il problema è illimitato (superiormente) (c) x = (3,0) 1 10. Considera il problema (a) nell esercizio precedente: (a) Proponi una nuova funzione obiettivo (sempre da massimizzare) in modo tale che il punto (4, 0) diventi soluzione ottima. (b) Spiegaperchèipunti(4,1)e(3,0.25) nonpotrannomaiesseresoluzioni ottime del problema, qualunque sia la funzione lineare che si sceglie come funzione obiettivo (attenzione: le ragioni sono diverse per i due punti).

3 LA PROGRAMMAZIONE LINEARE R: (a) La scelta più semplice è probabilmente di scegliere come funzione obiettivo x 2, ma ovviamente esistono infinite scelte possibili (prova a caratterizzarle tutte!) (b) Il punto (4,1) non è ammissibile, e quindi per definizione, non potrà mai essere una soluzione ottima. Il punto(3, 0.25) è interno al poliedro e quindi non potrà mai essere soluzione ottima. Infatti, spostandosi lungo la semiretta di origine (3,0.25) e direzione (1,3) (la direzione è quella definita dai coefficienti della funzione obiettivo), sappiamo che la funzione obiettivo aumenta. Siccome (3, 0.25) è un punto interno al poliedro, ci si può sicuramente spostare lungo questa semiretta di una quantità positiva (eventualmente anche molto piccola) e rimanere nel poliedro, cosìgenerando un punto ammissibile con un valore della funzione obiettivo maggiore di quella in (3, 0.25). 11. Determinare tutti i vertici dei seguenti poliedri: (a) (b) (c) x 1 x 2 +2x 3 1 0.5x 1 +x 3 5 x 1,x 2,x 3 0. x 1 +x 2 x 3 5 6x 1 +7x 2 9x 3 4 x 1 +x 2 +4x 3 = 10 x 1 0. x 1 +2x 2 +x 3 4 x 1 x 2 +x 3 = 2 x 0. R: (a) v 1 = (0,11,5) T e v 2 = (10,11,0) T. (b) v 1 = (25,13, 7) T, v 2 = (0, 2,3) T e v 3 = (0,106/37,66/37). (c) v 1 = (0,2/3,8/3) T, v 2 = (8/3,2/3,0) T, v 3 = (0,0,2) T, v 4 = (2,0,0) T.

E I E E E E I E I NE LINEARE 39 12. Sia dato il poliedro P(τ) definito da x 1 2x 2 τ 2 x 3 = 1 2x 1 +4x 2 x 3 = 4 x 1,x 2 0. Determinare per quali valori non negativi di τ, il poliedro P(τ) ammette più di un vertice. R: Il poliedro può ammettere al più due vertici (due è il numero di tutti i sottositemi di tre vincoli, contenenti però i due vincoli di uguaglianza, che si possono estrarre dai vincoli che definiscono il poliedro). Si tratta allora di ricavare in funzione di τ l espressione dei punti candidati a essere vertici e calcolare per quali valori comuni e non negativi di τ i due punti sono effettivamente vertici distinti. Risulta che per τ > 1 il poliedro ha due vertici. (Attenzione, perché c è un solo vertice per τ = 1/2?) 13. Un ospedale deve organizzare il servizio di trasporto del sangue, proveniente dalle donazioni spontaneee. Le sacche di sangue sono disponibili in 4 centri di raccolta diversi e vanno tutte trasportate in 3 centri di trasformazione situati in altrettanti ospedali. Nella tabella di seguito sono riassunti la distanza (Km) tra i centri di raccolta e gli ospedali, nonchè il costo di trasporto di una sacca, per ogni kilometro (il costo di trasporto di una

LA PROGRAMMAZIONE LINEARE sacca è quindi dato dal prodotto del costo al kilometro per la distanza), da ciascun centro: ospedale 1 ospedale 2 ospedale 3 costo centro 1 14 19 54 0.2 centro 2 12 31 45 0.26 centro 3 16 45 60 0.19 centro 4 21 44 46 0.29 A ciascun ospedale è necessario portare il seguente quantitativo minimo di sacche di sangue, per uso interno: ospedale 1 ospedale 2 ospedale 3 n o sacche 28 58 25 mentre in ogni centro di raccolta è disponibile il seguente quantitativo di sacche: centro 1 centro 2 centro 3 centro 4 n o sacche 34 38 35 22 Si costruisca un modello di PL che permetta di minimizzare i costi di trasporto R: Variabili. Le variabili sono x ij (con i = 1,2,3,4 e j = 1,2,3) e rappresentano le sacche di sangue trasportate dal deposito i-esimo all ospedale j-esimo. Funzione obiettivo. Indichiamo con d ij la distanza dal deposito i-esimo all ospedale j-esimo e con c i il costo di trasporto per un kilometro relativa al deposito i-esimo. La funzione obiettivo è data dal costo complessivo di trasporto ed è quindi 4 3 c i d ij x ij i=1 j=1 Vincoli. Poiché sono prescritti i fabbisogni minimi di ogni ospedale avremo: 4i=1 x i1 28 4i=1 x i2 58 4i=1 x i3 25

E I E E E E I E I NE LINEARE 41 Inoltre i vincoli sul numero massimo di sacche disponibili nei centri di raccolta si esprimono come 3j=1 x 1j 34 3j=1 x 2j 38 3j=1 x 3j 35 3j=1 x 3j 22. Le variabili sono inoltre non negative: x 0. A rigore le variabili x ij sono anche intere, in quanto le sacche non sono divisibili. Per formulare questo problema come problema di PL trascuriamo però questo vincolo. 14. Un investitore deve scegliere come far fruttare il proprio capitale che ammonta a 10000 Euro. Egli deve scegliere come suddividere l investimento tra 5 tipologie distinte: Conto corrente bancario, Titoli di stato, Obbligazioni, Azioni e Future. Ciascuno dei 5 investimenti proposti offre un tasso di rendimento annuo e presenta una percentuale di rischio, inoltre per diversificare il portafoglio, il budget (in Euro) destinato ad ogni investimento deve essere compreso tra un valore minimo ed un valore massimo, ovvero tasso di rendimento perc. rischio min. invest. (Euro) max. invest. (Euro) C/C bancario 2.5 % 5 % 0 1500 Titoli di Stato 6.5 % 8.5 % 1000 5000 Obbligazioni 8.7 % 12.4 % 1000 5000 Azioni 18.7 % 20 % 500 4000 Future 11.7 % 14 % 0 4000 L investimento nel C/C bancario e nei titoli di stato deve essere complessivamente almeno 1/3 dell investimento nelle azioni. La percentuale di rischio totale (si consideri che le grandezze varino linearmente 1 ) non deve superare l 11.5. 1 Ovvero se si investono 1000 Euro nel C/C bancario, 2000 in Titoli di stato, 1500 in Obbligazioni, 2000 Euro in Azioni e 3500 Euro in Future, la percentuale di rischio totale è data da rischio totale = 5 1000 +8.5 2000 +12.4 1500+20 2000+14 3500. 10000

2 LA PROGRAMMAZIONE LINEARE Si costruisca un modello di PL che permetta di determinare l investimento che massimizza il tasso di rendimento annuo (si consideri che le grandezze variano linearmente 2 ). R: Variabili. Le variabili sono x 1,x 2,x 3,x 4 x 5 e rappresentano la quantità di denaro investita in ogni tipo di investimento. Funzione obiettivo. Si vuole massimizzare il tasso di rendimento. La funzione obiettivo, da massimizzare è quindi data da 2.5x 1 +6.5x 2 +8.7x 3 +18.7x 4 +11.7x 5. Si noti che il tasso di rendimento è stato, in effetti, moltiplicato per 10000, ma è evidente che questo non altera il problema. Vincoli. Le variabili sono tutte non negative, ma, in particolare devono soddisfare le limitazioni minime e massime riportate in tabella 0 x 1 1500, 1000 x 2 5000, 1000 x 3 5000, 500 x 4 4000, 0 x 5 4000, e inoltre la somma totale investita è pari a 10000 x 1 +x 2 +x 3 +x 4 +x 5 = 10000 (Sarebbe stato lecito porre invece x 1 +x 2 +x 3 +x 4 +x 5 10000? Qual è il significato di questo vincolo? Le soluzioni ottime ottenute considerando il vincolo con uguaglianza e quello con la disuguaglianza differiscono?) L investimento nel C/C bancario e nei titoli di stato deve essere complessivamente almeno 1/3 dell investimento nelle azioni: x 1 +x 2 1 3 x 4. La percentuale di rischio totale non deve superare l 11.5, cioé 5x 1 +8.5x 2 +12.4x 3 +20x 4 +14x 5 11.5 10000. 2 Ovvero se si investono 1000 Euro nel C/C bancario, 2000 in Titoli di stato, 1500 in Obbligazioni, 2000 Euro in Azioni e 3500 Euro in Future, il tasso di rendimento annuo è dato da tasso di rendimento annuo totale = 2.5 1000 +6.5 2000+8.7 1500 +18.7 2000 +11.7 3500. 10000

Teoria della Programmazione Lineare 6.1 VERTICI DI UN POLIEDRO Esercizio 6.1.1 Dato il poliedro decritto dal seguente sistema 3x 1 2x 2 +5x 3 1 2x 1 +3x 2 +x 3 1 x 1 0 x 2 0 x 3 0 verificare se il punto (1,1,0) T è un vertice del poliedro. Riscriviamo innanzitutto il poliedro nella forma 3x 1 +2x 2 5x 3 1 2x 1 +3x 2 +x 3 1 x 1 0 x 2 0 x 3 0; Nel punto (1,1,0) T, che appartiene al poliedro, sono attivi il primo, il secondo e il quintovincolo. Inoltreivettori ( 3,2, 5) T, ( 2,3,1) T e(0,0,1) T corrispondenti a questi tre vincoli sono linearmente indipendenti e quindi il punto (1,1,0) T è un vertice del poliedro.

TEORIA DELLA PROGRAMMAZIONE LINEARE Esercizio 6.1.2 Dato il poliedro decritto dal seguente sistema 3x 1 +2x 2 x 3 3 3x 1 +x 2 x 3 2 2x 1 +x 2 +x 3 3 4x 1 +x 2 +2x 3 4 verificare se il punto (1,1,0) T è un vertice del poliedro. Il punto (1,1,0) T non appartiene al poliedro in quanto il quarto vincolo è violato. Esercizio 6.1.3 Dato il poliedro decritto dal seguente sistema τx 1 +x 2 x 3 1 4x 1 +x 2 +2x 3 2 x 1 0 x 2 0 x 3 0 determinare per quali valori di τ sono vertici del polidero i punti a) P(1/2,0,0) T b) Q(1,0,1) T. Riscriviamo innanzitutto il sistema nella forma τx 1 x 2 +x 3 1 4x 1 +x 2 +2x 3 2 x 1 0 x 2 0 x 3 0 a) Sostituendo il punto P nel primo vincolo, si verifica che per τ 2 il punto soddisfa il primo vincolo; inoltre il punto soddisfa anche gli altri vincoli e quindi per τ 2 il punto P appartiene al poliedro. Inoltre il secondo il quarto e il quinto vincolo sono attivi nel punto P e i vettori ( 4 1 2) T, (0,1,0) T e (0,0,1) T corrispondenti a questi tre vincoli sono linearmente indipendenti e quindi il punto P per τ 2 è un vertice del polidero. b) Sostituendo le coordinate di Q nel sistema si ottiene che per τ 2 il punto appartiene al poliedro. Inoltre nel punto Q sono attivi il secondo e il quarto vincolo, mentre non sono attivi il terzo e il quinto vincolo. Pertanto affinché si abbiano tre vincoli attivi nel punto Q si dovrà scegliere τ in modo che risulti attivo in Q il primo vincolo e cioè τ = 2. Con questa scelta di τ si hannotre vincoli attivi, maivettori corrispondenti ( 2, 1,1) T, ( 4,1,2) T e (0,1,0) T non sono linearmente indipendenti e quindi il punto Q non può essere un vertice del poliedro.