Soluzione dei problemi di Programmazione Lineare Intera

Documenti analoghi
Algoritmi generali per PLI

5.3 Metodo dei piani di taglio

3.4 Metodo di Branch and Bound

Programmazione Lineare Intera (PLI)

Algoritmo di Branch & Bound

Il Branch & Bound. Definizione 1. Sia S R n. La famiglia S = {S 1, S 2,..., S k S} tale che S 1 S 2 S k = S viene detta suddivisione di S.

Il metodo dei Piani di Taglio (Cutting Planes Method)

Parte III: Algoritmo di Branch-and-Bound

METODI DELLA RICERCA OPERATIVA

Metodi e Modelli per l Ottimizzazione Combinatoria Cover inequalities

Programmazione Lineare

Esercizi soluzione grafica e Branch and Bound. Daniele Vigo

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

Esame di Ricerca Operativa del 07/09/2016

Geometria della programmazione lineare

Esercizi sulla Programmazione Lineare Intera

Programmazione Lineare Intera. Programmazione Lineare Intera p. 1/4

3.6 Metodi basati sui piani di taglio

COMPITO DI RICERCA OPERATIVA. max 5 2x 1 + 3x 2 x 3 = 2 + x 1 5x 2 x 4 = 5 + x 2. x 5 = 1 + x 1 x 2

Esame di Ricerca Operativa del 15/01/2015

Esame di Ricerca Operativa del 15/01/2015

Domande d esame. Ricerca Operativa. G. Liuzzi. Giovedí 14 Maggio Istituto di Analisi dei Sistemi ed Informatica IASI - CNR

5.5 Metodi generali per la soluzione di problemi

Il Metodo Branch and Bound

Rilassamento Lagrangiano

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.

Introduzione alla programmazione lineare

Rilassamento Lagrangiano

Gestione della produzione e della supply chain Logistica distributiva

Parte V: Rilassamento Lagrangiano

5.5 Metodi dei piani di taglio

Esame di Ricerca Operativa del 11/07/2016

Esame di Ricerca Operativa del 03/09/2015

Esame di Ricerca Operativa del 08/01/13. Esercizio 1. Completare la seguente tabella considerando il problema di programmazione lineare:

Esame di Ricerca Operativa del 09/02/2016

COMPITO DI RICERCA OPERATIVA APPELLO DEL 08/01/04

Ricerca Operativa Branch-and-Bound per problemi di Programmazione Lineare Intera

Esame di Ricerca Operativa del 16/06/2015

Prerequisiti didattici

PROGRAMMAZIONE LINEARE E DUALITA'

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

Soluzione dei Problemi di Programmazione Lineare

Programmazione Non Lineare

RICERCA OPERATIVA. Tema d esame del 04/03/2008 (Simulazione)

4.5 Metodo del simplesso

Problemi di Flusso: Il modello del Trasporto

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

Sistemi compatibili (Il metodo di Fourier-Motzkin) Claudio Arbib Università degli Studi di L Aquila

Problemi di localizzazione di servizi (Facility Location Problems)

Algoritmi di Ricerca

Problemi, istanze, soluzioni

2.2 Alberi di supporto di costo ottimo

Ottimizzazione e Controllo 2015/2016 ESERCITAZIONE

Contenuto e scopo presentazione. Modelli Lineari Interi/Misti. Piani di taglio. Piani di taglio. Piani di taglio Versione 31/08/

Soluzione di problemi di Programmazione Lineare Intera

Appunti del corso di Informatica 1 (IN110 Fondamenti) 7 Grafi e alberi: introduzione

1 Il metodo dei tagli di Gomory

4.1 Localizzazione e pianificazione delle base station per le reti UMTS

Convergenza del Simplesso e regole anti-ciclaggio

Algoritmo basato su cancellazione di cicli

Teoria della Dualità: I Introduzione

OTTIMIZZAZIONE LINEARE MULTICRITERIO

Macchine parallele M 1 M 2 M 3 J 1 J 2 LAVORI J 3 J 4

Esercizi di Ricerca Operativa I

RICERCA OPERATIVA (a.a. 2015/16) Nome: Cognome: Matricola:

ALGORITMI DI OTTIMIZZAZIONE M Esercizi Parte I

Il problema del commesso viaggiatore

Ottimizzazione Multi Obiettivo

Esercizi Capitolo 6 - Alberi binari di ricerca

Alberi n-ari: specifiche sintattiche e semantiche. Realizzazioni. Visita di alberi n-ari.

Intelligenza Artificiale. Ricerca euristica Algoritmo A*

4. METODI DUALI DEL SIMPLESSO

Branch-and-bound per KNAPSACK

Branch-and-bound per TSP

Transcript:

Fondamenti di Ricerca Operativa T-A a.a. 2015-2016 Soluzione dei problemi di Programmazione Lineare Intera Andrea Lodi, Enrico Malaguti, Paolo Tubertini, Daniele Vigo rev. 2. ottobre 2016

Fondamenti di Ricerca Operativa T-A a.a. 2015-2016 Programmazione Lineare Intera Complessità e Rilassamento Continuo

Programmazione Lineare Intera (P) z P = min c T x A x d x 0, intere vincoli di interezza: non lineari x intera sin π x = 0 x binaria x (x 1) = x 2 x = 0 PLI NLP in realtà la non linearità del problema è concentrata nella prescrizione di interezza 3

Problemi e algoritmi Algoritmo esatto: determina la soluzione ottima Se il problema è difficile il tempo di calcolo necessario ad un algoritmo esatto cresce molto rapidamente (= esponenzialmente) con la dimensione del problema I problemi di Programmazione Lineare Intera appartengono alla classe dei problemi difficili Rilassando il vincolo di interezza delle variabili si ottiene un problema di Programmazione Lineare I problemi di Programmazione Lineare appartengono alla classe dei problemi facili per i quali il tempo di calcolo cresce meno rapidamente (= polinomialmente) Gli algoritmi per PLI risolvono sequenze di problemi PL. 4

Geometria della PL Definizione 1 Gli insiemi {x 2 R n : T x apple 0 } e {x 2 R n : T x = 0 } si dicono, rispettivamente, semispazio a ne e iperpiano indotti da (, 0 ). Definizione 2 Si dice poliedro (convesso) l intersezione di un numero finito di semispazi a ni e iperpiani. Definizione 3 Si dice politopo un poliedro P limitato (esiste cioè M>0 tale che x apple M per ogni x 2 P ). Definizione 4 Un punto x di un poliedro P si dice punto di estremo o vertice di P se non può essere espresso come combinazione convessa stretta di altri due punti del poliedro, cioè se non esistono y, z 2 P, y 6= z, e 2 (0, 1) tali che x = y +(1 )z. 5

Geometria della PL (2) Teorema 1 (Minkowsky-Weil) Ogni punto di un politopo si può ottenere come combinazione convessa dei suoi vertici. Teorema 2 Se l insieme P delle soluzioni ammissibili del problema di Programmazione Lineare min{c T x : x 2 P } è limitato, allora esiste almeno un vertice ottimo. Dimostrazione Siano x 1,...,x k i vertici di P e z =min{c T x i : i =1,...,k}. Datoun qualunque y 2 P, occorre dimostrare che c T y z. Infatti y 2 P implica l esistenza di moltiplicatori 1,..., k 0, P k i=1 i =1,talichey = P k i=1 ix i.sihaallora c T y = c T kx i=1 ix i = kx i=1 i(c T x i ) kx i=1 iz = z. 6

Algoritmo del simplesso per PL 1. La regione ammissibile è un poliedro (intersezione di semispazi); 2. Le soluzioni ottime possono essere cercate sui vertici del poliedro. 3. Se un vertice è migliore dei suoi adiacenti, è ottimo (convessità della regione ammissibile). Algoritmo: parto da un vertice del poliedro ed iterativamente mi sposto su un vertice adiacente migliore. Quando non posso migliorare rispetto al vertice corrente, questo è ottimo. (L algoritmo si muove sul confine della regione ammissibile.) 7

Rilassamento continuo di PLI rimuovendo il vincolo di interezza: rilassamento continuo C(P) associato a P z C(P) z P Dim.: si cerca il minimo in un insieme più ampio x P x C(P) - x C(P) 8

Rilassamento continuo di PLI Th.: se la soluzione del rilassamento continuo è ammissibile per P (= è intera), Dim.: allora è ottima per P 1) z C(P) z P 2) x C(P) è ammissibile per P z C(P) = c T x C(P) z P z C(P) = z P 9

Algoritmo (euristico) per PLI begin determina con simplesso la soluzione x di C(P) if C(P) impossibile then STOP (P impossibile) else if C(P) illimitato then STOP (P illimitato, salvo casi particolari) else if x intero then STOP (x sol. ottima di P) else arrotonda ogni x j frazionaria all intero più vicino end Che soluzioni produce questo algoritmo? 10

CASO 1: soluzioni utili Problemi per cui i valori delle variabili della soluzione ottima sono molto elevati Es. pezzi da produrre (elevata quantità) C(P) C(P) arrotondato x 1 = 2449.51 2450 x 2 = 14301.1 14301 x 3 = 7800.92 7801 max x 1 +x 2 +x 3 24551.53 24552 3x 1 +x 2 21650 21649.63 21651 11

CASO 2: soluzioni inutili Problemi in cui i valori delle variabili decisionali all ottimo sono molto piccoli: Numero di edifici da realizzare Numero di veicoli da assegnare ad un servizio Opportunità di una scelta uso o meno di un tratto di strada in un percorso (sì/no) La parte frazionaria non è trascurabile e l arrotondamento può produrre facilmente soluzioni non ammissibili 12

CASO 2: soluzioni inutili (2) Soluzione intera e continua possono essere molto lontane x 1 x C(P) : Ottimo C(P) x P : Ottimo intero 13 x 2

CASO 3: soluzioni non ammissibili x 1 x C(P) : Ottimo C(P) x P : Ottimo intero x 2 Nessuno dei quattro punti interi attorno a x C(P) è ammissibile per P Enrico Malaguti - UNIVERSITÀ DI BOLOGNA Fondamenti di Ricerca Operativa T-A, a.a. 2015-2016 14

Algoritmi generali per PLI Metodi esatti tradizionali (anni 60-oggi): Metodo dei piani di taglio (cutting planes) Branch-and-Bound Programmazione Dinamica Metodi esatti più avanzati (anni 90-oggi): Branch-and-Bound + Cutting planes = Branch-and-Cut Branch-and-Price/Column generation 15

Programmazione Lineare Intera Algoritmo Branch and Bound

Algoritmi generali per PLI Metodi esatti tradizionali (anni 60-oggi): Metodo dei piani di taglio (cutting planes) Branch-and-Bound Programmazione Dinamica Metodi esatti più avanzati (anni 90-oggi): Branch-and-Bound + Cutting planes = Branch-and-Cut Branch-and-Price/Column generation 17

Branch and Bound Tecnica generale per la risoluzione di problemi di ottimizzazione combinatoria (F finito) Si basa sulla scomposizione del problema in sottoproblemi ( Divide and Conquer ) Problema da risolvere: P 0 = (z( ), F(P 0 )) Funzione obiettivo: z( ) per semplicità consideriamo un problema di massimo Regione ammissibile: F(P 0 ) Soluzione ottima: z * = z(p 0 ) = max{z(x) : x F(P 0 )} Miglior soluzione ammissibile nota: z Best (alla fine z * = z Best ) 18

Branch and Bound (2) Suddivisione di P 0 in K sottoproblemi: P 1, P 2,, P K la cui totalità rappresenti P 0 Ad esempio si ottiene suddividendo F(P 0 ) in sottoinsiemi F(P 1 ), F(P 2 ),,F(P K ) tali che K k= 1 F ( k ) ( 0 P = F P ) preferibilmente la regione ammissibile va partizionata: F(P i ) F(P j ) = P i, P j : i j 19

Rappresentazione Il processo di suddivisione (ramificazione, Branching) si può rappresentare mediante un albero decisionale (Branch Decision Tree) Nodi: problemi, Archi: relazione di discendenza La suddivisione può essere ripetuta ricorsivamente P 0 P 1 P 2 P K P 21 P 22 P 2K 20

Branch and Bound (3) La soluzione ottima del sottoproblema P k è: z k = z(p k ) = max{z(x) : x F(P k )} risolvere P 0 equivale a risolvere tutti i P k generati: z * = z(p 0 ) = max{z(p 1 ), z(p 2 ),, z(p K ), } Un sottoproblema P k è risolto se: 1. Si determina la soluzione ottima di P k (Es. PLI: P k è C(P k ) con soluzione x Ck intera); 2. Si dimostra che F(P k ) = (P k impossibile); 3. Si dimostra che z(p k ) z Best (Es. PLI : se z Ck z Best allora anche z k z Best ) I sottoproblemi non risolti vanno suddivisi 21

Branch and Bound per PLI (P 0 ) max z 0 = c T x Ax = d x 0, intero Notazione: x k soluzione ottima di P k (intera), di valore z k (z 0 z * ) x Ck soluzione ottima di C(P k ), di valore z Ck Si noti che: z Ck =c T x Ck z Ck z k = c T x k Se x C0 è intera x * = x 0 = x C0 (soluzione ottima); Altrimenti 22

Branching (2) Scelta una componente x C0 j frazionaria, imponiamo due condizioni mutuamente esclusive ed esaustive, valide per ogni soluzione intera di P 0 : x j x C0 j or x j xc0 j + 1 (P 1 ) max z 1 = c T x Ax =d x 0,intero x j x C0 j (P 2 ) max z 2 = c T x Ax = d x 0,intero x j x C0 j + 1 z 0 = max ( z 1, z 2 ) 23

Branching (3) Normalmente x C1 e /o x C2 non sono interi si continua a ramificare, cioè : Da ogni problema P i si creano due nuovi problemi P l e P k a meno che : x Ci sia intero, oppure il rilassamento continuo di P i sia impossibile Quale variabile si sceglie per il Branching? la prima frazionaria quella con parte frazionaria maggiore 24

Strategia di esplorazione Se esiste più di un sottoproblema in sospeso, qual è il prossimo da esaminare? Diverse strategie possibili: Depth first (seguendo una direzione predefinita) Best bound first (esplorando il ramo con bound del nodo più promettente) Nel corso utilizzeremo la Depth first secondo una direzione di esplorazione predefinita. Numeriamo i nodi del Branch-and-Bound secondo l ordine di esplorazione. 25

Branch and-bound per PLI (2) Esempio di problema PLI: max z x 1 + x 2 s.t. 5x 1 +3x 2 15 5x 1 3x 2 0 x 2 1/2 x 1, x 2 0 intere x 2 x C0 x C0 = (3/2,5/2) x 1 z C0 = 4 upper bound sul valore di z* 26

Prima ramificazione x C0 1 = 3/2 x 1 1 or x 1 2 : x 2 x 2 x C1 x 1 x 1 x C1 =(2, 5/3) 27

Seconda ramificazione (branching su x j x C0 j + 1) da P 1 : x C1 2 = 5/3 (P 3 ) P 1 + x 2 1 (P 2 ) P 1 + x 2 2 x 2 x 2 x C3 x 1 x C3 =(12/5, 1) x 1 impossibile 28

Terza ramificazione da P 3 : x C3 1 = 12/5 (P 5 ) P 3 + x 1 2 (P 4 ) P 3 + x 1 3 x 2 x 2 x C5 x 1 x C5 =(2, 1) INTERA! aggiorno z Best = 3 x 1 impossibile 29

Prima ramificazione torno a P 0 ed esploro il problema P 6 in sospeso: x C0 1 = 3/2 x 1 1 : x 2 x 2 x C6 x 1 x C6 =(1, 5/3) z C6 = 8/3 = 2 z Best = 3 x 1 (P 1 già risolto) 30

Albero decisionale x C0 = (3/2,5/2) P 0 U 0 = z C0 = 4 x 1 1 x 1 2 x C6 = (1, 5/3) U 6 = z C6 = 8/3 = 2 P 6 P 1 x C1 = (2, 5/3) U 1 = z C1 = 11/3 = 3 P 6 ucciso : STOP (z*=z 5 ) x C5 = (2, 1) z 5 = 3 INTERA! P 5 x 1 2 P 3 x 2 1 x C3 = (12/5, 1) U 3 = 17/5 = 3 x 1 3 P 4 x 2 2 P 2 31

Terminologia 0 (o P 0 ) nodo radice 4, 5, nodi foglia 1 padre di 2 e 3 2 e 3 figli di 1 1 progenitore di 2, 3, 4 e 5 2, 3, 4, 5 discendenti di 0 e 1 ramo nodo P 0 Si continua il branching finché esistono nodi attivi Soluzione di P 0 = sol. della foglia di costo minimo 32

Esempio min x 1 +2x 2 x 1 + x 2 4 x 1 +4x 2 6 8x 1 8x 2 3 x 1, x 2, 0 interi min x 1 +2x 2 x 1 + x 2 +x 3 = 4 x 1 +4x 2 x 4 = 6 8x 1 8x 2 x 5 = 3 x 1, x 2, x 3, x 4, x 5 0 interi 33

Esempio (7) x 2 P 0 x C0 = (3/2,9/8) L 0 = z C0 =!" 3, 75#$ = 4 fare branching sulla variabile fraz. di indice minimo; esplorare prima nodi >= x 1 34

Esempio (7) x 2 x 1 1 x 1 2 x 1 1 P 0 x C0 = (3/2,9/8) L 0 = z C0 =!" 3, 75#$ = 4 x 1 2 x C1 = (2,1) z 1 = 4 stop non esploro P 2 P 1 z = 4 x 1 35