Introduzione alla Programmazione Lineare Intera Andrea Scozzari a.a. 2013-2014 April 8, 2014 Andrea Scozzari (a.a. 2013-2014) Introduzione alla Programmazione Lineare Intera April 8, 2014 1 / 23 Programmazione Lineare Intera Un problema di Programmazione Lineare Intera `e scritto nel modo seguente: zPLI = max c T x Ax ≤ b x ≥0 (1) intero dove zPLI rappresenta il valore ottimo della funzione obiettivo. Il problema non `e pi` u di programmazione lineare in quanto il vincolo di interezza pu`o essere riscritto come: sin(πxj ) = 0 Andrea Scozzari (a.a. 2013-2014) j = 1, . . . , n Introduzione alla Programmazione Lineare Intera April 8, 2014 2 / 23 Programmazione Lineare Intera L’insieme delle soluzioni ammissibili `e rappresentabile in R2 nel seguente modo I vertici del poliedro (tramme quello in corrispondenza dell’origine degli assi) non sono a coordinate intere. Andrea Scozzari (a.a. 2013-2014) Introduzione alla Programmazione Lineare Intera April 8, 2014 3 / 23 Programmazione Lineare Intera Indichiamo con P = {x ∈ Rn |Ax ≤ b, x ≥ 0} il poliedro descritto dalle disequazioni del sistema del problema di PLI e con Z n l’nsieme dei numeri interi, la regione ammissibile (discreta) del problema `e indicata con: X = P ∩ Zn Ipotizziamo che P sia limitato e non vuoto. Andrea Scozzari (a.a. 2013-2014) Introduzione alla Programmazione Lineare Intera April 8, 2014 4 / 23 Programmazione Lineare Intera ` possibile eliminare il vincolo di interezza rilassando il problema E zPL = max c T x Ax ≤ b (2) x ≥0 Rilassamento Continuo del problema originale eliminando il vincolo di interezza Andrea Scozzari (a.a. 2013-2014) Introduzione alla Programmazione Lineare Intera April 8, 2014 5 / 23 Programmazione Lineare Intera ` dunque possibile risolvere il problema rilassato con l’algoritmo del E simplesso. Dall’ipotesi su P, si possono avere due casi: 1. la soluzione ottima di (2) `e a componenti intere, pertanto la soluzione ottima zPL = zPLI 2. la soluzione ottima di (2) ha qualche componente frazionaria, pertanto: zPL = max{c T x : x ∈ P} ≥ max{c T x : x ∈ X } zPL `e una limitazione superiore (upper bound) per il valore ottimo del problema (1). Andrea Scozzari (a.a. 2013-2014) Introduzione alla Programmazione Lineare Intera April 8, 2014 6 / 23 Programmazione Lineare Intera L’idea di arrotondare opportunamente la soluzione ottima del problema rilasciato non `e sempre buona! Pu` o capitare che arrotondando la soluzione ottima del rilassamento continuo si ottenga una soluzione intera lontana da quella ottima (addirittura non ammissibile, vedi Figura per un problema di massimo). Andrea Scozzari (a.a. 2013-2014) Introduzione alla Programmazione Lineare Intera April 8, 2014 7 / 23 Programmazione Lineare Intera Con riferimento ai problemi di PLI, il rilassamento continuo non garantisce di ottenere soluzioni intere. Questo dipende dall’inclinazione della funzione obiettivo e della direzione del gradiente. ` possibile ottenere una formulazione dove tutti i vertici siano interi? E Assumiamo esista un poliedro ˆ = {x ∈ Rn |Ax ˆ ≤ b, ˆ x ≥ 0} P Tale che il suo rilassamento abbia tutti i vertici interi Andrea Scozzari (a.a. 2013-2014) Introduzione alla Programmazione Lineare Intera April 8, 2014 8 / 23 Programmazione Lineare Intera ˆ = {x ∈ Rn |Ax ˆ ≤ b, ˆ x ≥ 0} `e migliore della La formulazione P formulazione P perch´e risulta pi` u stringente. Andrea Scozzari (a.a. 2013-2014) Introduzione alla Programmazione Lineare Intera April 8, 2014 9 / 23 Programmazione Lineare Intera ˆ = {x ∈ Rn |Ax ˆ ≤ b, ˆ x ≥ 0} `e una formulazione ideale La formulazione P se il suo rilassamento ha tutti vertici interi. Definizione Dato un insieme S ∈ Rn , si chiama involucro convesso (convex hull) di S il pi` u piccolo insieme convesso che contiene S e si indica con conv (S) Andrea Scozzari (a.a. 2013-2014) Introduzione alla Programmazione Lineare Intera April 8, 2014 10 / 23 Programmazione Lineare Intera ˆ chiuso e limitato L’involucro convesso di X `e dunque un poliedro P (politopo) tale che ˆ = {x ∈ Rn |Ax ˆ ≤ b, ˆ x ≥ 0} = conv (X ) P e per il quale si ha ˆ max{c T x : x ∈ X } = max{c T x : x ∈ P} ˆ e bˆ sono molto difficili per qualsiasi vettore dei costi c. Le componenti A da determinare e ci sono poche classi di problemi per cui la loro formulazione lineare coincide con la formulazione ideale. Andrea Scozzari (a.a. 2013-2014) Introduzione alla Programmazione Lineare Intera April 8, 2014 11 / 23 Programmazione Lineare Intera: Metodo dei Piani di Taglio Il metodo consiste nel generare una serie di vincoli aggiuntivi detti Tagli che abbiano la caratteristica di restringere la regione ammissibile senza escludere soluzioni ammissibili intere. Definizione Dato un insieme di m vettori in Rn , v1 , . . . , vm , un vettore v `e combinazione lineare dell’insieme dei vettori {v1 , . . . , vm }, se esistono m coefficienti reali λ1 , . . . , λm tali che v = λ1 v1 + . . . + λm vm Una combinazione lineare con coefficienti λi ≥ 0, i = 1, . . . , m, si dice combinazione conica. Una combinazione lineare con coefficienti λi , i = 1, . . . , m, tali che m P λi = 1 si dice i=1 combinazione affine. Una combinazione lineare con coefficienti λi ≥ 0, i = 1, . . . , m, e tali che m P λi = 1, si i=1 dice combinazione covessa. Andrea Scozzari (a.a. 2013-2014) Introduzione alla Programmazione Lineare Intera April 8, 2014 12 / 23 Programmazione Lineare Intera: Metodo dei Piani di Taglio Sia dato un poliedro P = {x ∈ Rn |Ax ≤ b} ed una disequazione aT x ≤ α Definizione Una disequazione aT x ≤ α `e valida per P se e solo se P ⊆ {x ∈ Rn |aT x ≤ α} ossia se e solo se la disequazione `e soddisfatta da tutti i punti di P (i.e., da tutte le soluzioni ammissibili del problema). Si dice anche che la disequazione aT x ≤ α `e implicata dal sistema Ax ≤ b. Andrea Scozzari (a.a. 2013-2014) Introduzione alla Programmazione Lineare Intera April 8, 2014 13 / 23 Programmazione Lineare Intera: Metodo dei Piani di Taglio Definizione Una disequazione aT x ≤ α valida per P definisce una faccia F di P se F = P ∩ {x ∈ Rn |aT x = α} L’insieme {x ∈ Rn |aT x = α} `e detto iperpiano di supporto di F Ogni faccia F di un poliedro P `e essa stessa un poliedro Andrea Scozzari (a.a. 2013-2014) Introduzione alla Programmazione Lineare Intera April 8, 2014 14 / 23 Programmazione Lineare Intera: Metodo dei Piani di Taglio Definizione La dimensione dim(P) di un poliedro P `e data dal massimo numero di vettori affinemente indipendenti appartenenti a P meno uno. Definizione Una faccia F tale che dim(F ) = dim(P) − 1 `e detta faccia massimale o faccetta di P. Se dim(F ) = 0 allora la faccia F `e un vertice di P. Andrea Scozzari (a.a. 2013-2014) Introduzione alla Programmazione Lineare Intera April 8, 2014 15 / 23 Programmazione Lineare Intera: Metodo dei Piani di Taglio Definizione Date due disequazioni aT x ≤ α e q T x ≤ γ la prima disequazione domina la seconda disequazione se esiste λ > 0 tale che a = λq e α = λγ Per cui {x ∈ Rn |aT x ≤ α} ⊆ {x ∈ Rn |q T x ≤ γ} Ossia l’insieme delle soluzioni della prima disequazione `e contenuto nell’insieme delle soluzioni della seconda disequazione. Se vale l’uguaglianza, allora i due insiemi sono equivalenti. Andrea Scozzari (a.a. 2013-2014) Introduzione alla Programmazione Lineare Intera April 8, 2014 16 / 23 Programmazione Lineare Intera: Metodo dei Piani di Taglio Dato un poliedro P = {x ∈ Rn |Ax ≤ b} una disequazione valida aT x ≤ α pu` o essere ottenuta come combinazione conica delle disequazioni del sistema Ax ≤ b, ovvero: u T Ax ≤ u T b u≥0 Tale disequazione se aggiunta al sistema Ax ≤ b non modifica l’insieme delle soluzioni ammissibili del problema. Definizione Una rapprsentazione del poliedro P attraverso un sistema di disequazioni Ax ≤ b `e minimale se la rimozione di una qualsiasi disequazione del ¯ ≤ b¯ tale che sistema produce un nuovo sistema Ax ˆ ≤ b} ˆ P ⊂ {x ∈ Rn |Ax Andrea Scozzari (a.a. 2013-2014) Introduzione alla Programmazione Lineare Intera April 8, 2014 17 / 23 Programmazione Lineare Intera: Metodo dei Piani di Taglio Le definizioni precedenti evidenziano il fatto che la rappresentazione di un poliedro P con disequazioni Ax ≤ b non `e univocamente determinata. Tuttavia, nessuna disequazione di una rappresentazione minimale di P pu`o essere dominata da una combinazione conica delle altre. Teorema Una rappresentazione del poliedro P ⊆ Rn con disequazioni Ax ≤ b di dimensione n `e minimale se e solo se ciascuna disequazione del sistema definisce una faccia massimale (faccetta) di P. Inoltre, ogni faccia massimale F di P `e definita da una disequazione del sistema Ax ≤ b. Andrea Scozzari (a.a. 2013-2014) Introduzione alla Programmazione Lineare Intera April 8, 2014 18 / 23 Esercizio Bisogna gestire 3 fattorie la cui produzione `e limitata sia dalla superficie utilizzabile che dalla quantit`a di litri di acqua per la irrigazione Fattoria 1 2 3 Terreno utilizzabile in acri 400 600 300 Andrea Scozzari (a.a. 2013-2014) Acqua disponibile per acro 1500 2000 900 Introduzione alla Programmazione Lineare Intera April 8, 2014 19 / 23 Esercizio Si vogliono piantare 3 raccolti A, B, C per i quali si hanno le seguenti informazioni Raccolto A B C Acri da utilizzare 700 800 300 Acqua per acro 5 4 3 Profitto atteso per acro 400 300 100 Si vuole inoltre che la percentuale della superficie utilizzabile in ogni fattoria sia la stessa (carico di lavoro uniforme) Problema: Quanto di ciascun raccolto deve essere piantato per massimizzare il profitto Andrea Scozzari (a.a. 2013-2014) Introduzione alla Programmazione Lineare Intera April 8, 2014 20 / 23 Modello xij = numero di acri da coltivare della fattoria i riservati al raccolto j Profitto totale z = 400(x1A + x2A + x3A ) + 300(x1B + x2B + x3B ) + 100(x1C + x2C + x3C ) Limitazioni sulla disponibilit`a della superficie di ogni fattoria x1A + x1B + x1C ≤ 400 x2A + x2B + x2C ≤ 600 x3A + x3B + x3C ≤ 300 Andrea Scozzari (a.a. 2013-2014) Introduzione alla Programmazione Lineare Intera April 8, 2014 21 / 23 Modello Limitazioni sull’uso dell’acqua per ogni fattoria 5x1A + 4x1B + 3x1C ≤ 1500 5x2A + 4x2B + 3x2C ≤ 2000 5x3A + 4x3B + 3x3C ≤ 900 Limitazioni sull’utilizzo della superficie coltivabile per ciascun raccolto x1A + x2A + x3A ≤ 700 x1B + x2B + x3B ≤ 800 x1C + x2C + x3C ≤ 300 Andrea Scozzari (a.a. 2013-2014) Introduzione alla Programmazione Lineare Intera April 8, 2014 22 / 23 Modello Vincoli sul carico di lavoro x1A +x1B +x1C 400 = x2A +x2B +x2C 600 x2A +x2B +x2C 600 = x3A +x3B +x3C 300 x1A +x1B +x1C 400 = x3A +x3B +x3C 300 Dato che le prime due equazioni implicano la terza, questa si pu`o eliminare dato che diventa ridondante. Vincoli di non negativit`a xij ≥ 0 Andrea Scozzari (a.a. 2013-2014) i = A, B, C j = 1, 2, 3 Introduzione alla Programmazione Lineare Intera April 8, 2014 23 / 23
© Copyright 2024 ExpyDoc