Mip
Transcript
Mip
1 Mixed Integer Programming • • • • In alcuni modelli alcune o tutte le variabili decisionali hanno senso solo se assumono valori interi: ad esempio quando rappresentano persone od oggetti indivisibili Risolvendo un problema di questo tipo con la LP e poi arrotondando in tutti i modi possibili la soluzione ottenuta in modo da ottenere soluzioni intere non è detto che si possa raggiungere la miglior soluzione intera e in alcuni casi non si riesce nemmeno a trovare una soluzione ammissibile E' opportuno notare che, soprattutto nel caso in cui i valori delle variabili sono nell’ordine delle centinaia o ancora più grandi, la differenza fra il valore di una soluzione che si può ottenere arrotondando in qualche modo la soluzione del problema di LP e la migliore soluzione intera è tipicamente molto piccola rispetto alle grandezze in gioco (l’errore relativo è piccolo). Per la risoluzione di problemi di LP con vincoli di interezza sono stati sviluppati metodi specifici che però sono in generale notevolmente più complessi dal punto di vista computazionale del simplesso Una classificazione Salvo indicazioni esplicite contrarie, è sempre vero che Tipo di problema Esempio Linear Programming (LP) Integer Programming (IP) Boolean o Binary Programming Mixed Integer Programming (MIP) min c1x + c2 y + c3z s.t. x A y ≤ b z x≥0 y ∈p z ∈ {0,1} q mx n + p + q ) A∈ ( Nel seguito si parlerà sempre di MIP, ma si intenderà includere anche la IP e la Boolean Programming. 2 Metodi risolutivi I problemi MIP hanno 4 metodi principali di soluzione: 1. 2. 3. 4. Rilassamento lineare Piani di taglio Branch and bound: utilizzato da pacchetti quali il Solver di Excel, etc. Metodi poliedrali Il rilassamento lineare • • • MIP Dato un problema MIP, il suo rilassamento lineare è lo stesso problema cui sono stati rimossi i vincoli di interezza E' vero che RAMIP ⊆ RArilassamento . Questo fa sì che sia vero che minimoMIP≥minimoLP. Viene qui fornito un problema MIP con il suo rilassamento lineare rilassamento LP RA La regione ammissibile di un problema IP • • • Il reticolo di punti nel piano rappresenta i valori a coordinate intere Ax ≥ b Il politopo più esterno rappresenta i punti x ≥ 0 Il politopo più interno rappresenta la “convex hull” dei punti realmente ammissibili (quelli a coordinate intere che fanno parte della convex hull) 3 Come risolvere un problema MIP • min cx s.t. Ax ≥ b Un tentativo per risolvere, ad esempio, è di risolvere il suo rilassamento x 0 ≥ x ∈ n min cx lineare s.t. Ax ≥ b . x≥0 • Se la soluzione venisse intera, allora sarebbe ottima anche per il problema originale a causa del fatto che RAIP ⊆ RArilassamento . • L’ideale sarebbe riuscire a trovare un rilassamento lineare che coincida con la convex hull intera: i vertici del politopo sarebbero “naturalmente” interi e si potrebbe utilizzare il simplesso Totale unimodularità • Esistono situazioni in cui la formulazione naturale di un problema MIP coincide con la formulazione ideale. • Si supponga che la matrice dei coefficienti dei vincoli A e il vettore dei termini noti b abbiano valori interi. Una generica soluzione base ammissibile x* ad un problema di LP ha la struttura: B −1b x* = 0 • Quindi x* ha componenti frazionarie solo se B-1 non è intera. Ma B-1 può essere calcolata come: α11 ... α1m 1 −1 B = ... ... ... det( B) α m1 ... α mm dove α ij = T ( −1)i + j det ( M ij ) e Mij è la sottomatrice ottenuta da B eliminandone la riga i e la colonna j. Ma Mij è intera - poichè B è intera (sottomatrice di A); quindi una condizione sufficiente (non necessaria) perchè B-1 sia intera è che det ( B ) = ±1 . Definizione: Una matrice A è detta unimodulare se: a) è intera A∈ mxn con m ≤ n b) c) per ogni sua sottomatrice B m x m vale det ( B ) ∈ {−1, 0,1} P Teorema Sia A unimodulare e b intero, allora il poliedro= x {x : A= b, x ≥ 0} ha solo vertici interi. 4 ( ) Sia x* un vertice di P, allora esiste una base B di A tale che x* = B −1b, 0 . Poichè det ( B ) ∈ {−1, 0,1} , sarà det ( B ) = 1 , il chè implica l’interezza dell’inversa di B e di B −1b per ogni b 1 intero. { } Si consideri ora un problema MIP in forma canonica del tipo min cT x : Ax ≥ b, x ≥ 0 ; tramite l’aggiunta di variabili slack si può convertirlo in forma standard ottenendo: { } min cT x : Ax − Is = b, x ≥ 0, s ≥ 0 A′ La matrice dei vincoli sarà ora = [ A, − I ] . La matrice B, che deve essere m x m , avrà m-k colonne scelte da –I e k scelte da A ( 0 ≤ k ≤ m ). A meno di permutazioni di righe e colonne (che comunque non alterano il modulo del determinante) l’aspetto di B sarà: −I ' F B= 0 Q dove la parte che include –I’ indica le colonne estratte da I e rappresenta l’identità di ordine m-k; si ha quindi che det ( B ) = ± det ( Q ) . Definizione: Una matrice A è detta totalmente unimodulare se: a) è intera A∈ mxn con m ≤ n b) c) per ogni sua sottomatrice B di qualsiasi ordine vale det ( B ) ∈ {−1, 0,1} Teorema: Sia A totalmente unimodulare e b intero, allora il poliedro P =≥ {x 0 : Ax ≥ b} ha solo vertici interi. Esistono condizioni sufficienti per la totale unimodularità. Ad esempio è totalmente unimodulare il cosiddetto problema dei trasporti: s min t ∑∑ cij xij =i 1 =j 1 t s.t. ∑ xij ≤ di 1,.., s i= j =1 s ∑ xij ≥ rj 1,.., t j= i =1 0 ≤ xij ≤ qij = ; j 1,.., t i 1,.., s= 1 Poichè esiste B −1 * - dalla forma di x - non può essere det ( B ) = 0 , altrimenti non esisterebbe l’inversa. 5 I piani di taglio in un esempio (Gomory) Il metodo dei "tagli" di Gomory può essere considerato l'antesignano dei metodi poliedrali Esso opera alla seguente maniera: 1. Dato un problema MIP, si risolve il rilassamento LP 2. Si spera che la soluzione venga intera 3. Se così non è, si aggiunge un vincolo (determinato secondo una tecnica particolare) e si ripete dal punto 1 4. Gomory ha dimostrato che è garantito che si giunga alla soluzione intera, anche se, in pratica, ciò avviene dopo "millenni" Come funzionano • Si parte da una riga da 1 a m del tableau finale • La riga può essere scritta come: • • xi + ∑ aij x j = bi (1) j∈R con R insieme degli indici delle variabili non base e xi in base e con vincoli di interezza su tutte le variabili coinvolte • Che senso ha l'espressione?: xi + ∑ aij x j ≤ bi (2) j∈R • • • Poichè la (1) è vera, lo sarà anche la (2), che è la (1) trasformata in disuguaglianza a causa del fatto di aver diminuito un po' i coefficienti della matrice dei vincoli (le quadre senza trattini in alto indicano il più grande intero ≤ del numero compreso) Il LHS della (2) è (deve essere) formato da somme e prodotti di interi; se la (2) è vera, deve esserlo anche la (3) Sottraendo la (3) dalla (1), si ottiene (attenzione, è equivalente a dire (1) + -(3); il segno -, provoca l'inversione della disequazione) che può essere riscritta come: dove fij indica la parte frazionaria dei coefficienti vincolari e fi0 quella del termine noto. 6 • Il vincolo (4) viene aggiunto al problema e il problema viene nuovamente risolto Esempio • Dato il vincolo: si ottiene • L'effetto geometrico di un piano di taglio è mostrato in figura dalla linea rossa; essa rimuove dalla RA la zona verde, che non contiene punti interi 7 Branch and bound • Per illustrare la tecnica, si può fare riferimento al problema: • Il primo vincolo ha l'effetto in figura; i punti azzurri sono quelli a coordinate intere (che rispettano i vincoli di non negatività) • In figura sono rappresentati i primi 2 vincoli; i punti azzurri soddisfanno l'interezza e la non negatività • Il rilassamento lineare (LP) del problema è dato qui a fianco insieme con la sua RA (zona gialla) Si notino i punti azzurri (a coordinate intere) • 8 • • • • • I punti azzurri costituiscono la RA La zona arancio è il poliedro intero (poliedro più grande ⊆ nel rilassamento LP con vertici interi) del problema Il valore ottimo del rilassamento LP è 7, corrispondente a x=(2.5,4.5), che è soluzione non intera (si ricordi che l'interezza riguarda le variabili, non il valore della fo). Si osservi come l'ottimo intero sia x=(3,3) Trattandosi di un problema di massimo, 7 costituisce un limite superiore al valore della fo ottima L'idea di base del Branch and Bound (b&b) è di suddividere un problema MIP in 2 (o più) sottoproblemi, da risolvere separatamente Operativamente nel caso ad esempio • Viene risolto il problema nel rilassamento LP (RA = unione fra zona gialla e arancio) • Dalla soluzione ottima (x=(2.5,4.5)) viene presa una delle 2 variabili; ad esempio x1, e vengono formulati i 2 problemi P1 e P2 • Supponendo che entrambi i problemi P1 e P2 abbiano ottimo intero, è chiaro che l'ottimo di P0 sarà dato da quel problema fra P1 e P2 che avrà la soluzione ottima più alta • La figura più in basso sulla destra dà un'idea del processo logico; è gergo dire che la variabile x1 è la variabile di branch; il processo logico si ramifica sulla base del valore della variabile • Dalla soluzione di P1 e/o P2 si può ottenere ancora che una o più delle variabili risulti frazionaria e il problema si ramifichi ulteriormente Più in astratto • Nella figura accanto è illustrato un procedimento di b&b; tutti i problemi indicati sono rilassamenti LP di un problema di massimo • Viene risolto P0 e viene ottenuto un ottimo di 100; qualche variabile (1 o più) che dovrebbe essere intera non lo è • Viene scelta una variabile frazionaria e vengono generati i 2 problemi P1 e P2; P1 dà soluzione intera con fo=85; P2 dà soluzione frazionaria ma la fo=98 • P1 è quanto di meglio si sia ottenuto finora • Vale la pena investigare P2; aggiungendo altri vincoli la RA si restringerà e l'ottimo potrà solo calare (il problema è di massimo), ma, partendo da 98, si può 9 • • • • • sperare di fermarsi sopra 85, il meglio finora P21 dà una fo di 95, ma è frazionario; P22 dà una fo di 91 ed è intero; diventa il nuovo "meglio finora". Sviluppando P21 si ottengono P211 e P212; sono entrambi frazionari Non ha senso sviluppare ulteriormente P211; avendo una fo=87, l'aggiunta di ulteriori vincoli, con il conseguente restringimento della RA, avrà l'effetto di peggiorare (in realtà di non far crescere) la fo; questa fase è detta di bounding (da "bound"=limite), poichè si è in possesso di un limite fra il valore di una soluzione nota (P1 nel caso) e il meglio che si può ottenere continuando a sviluppare l'albero di branching dal nodo in cui ci si trova. Ha senso sviluppare P212, nella speranza ditrovare una soluzione intera con fo pari a 93 o 92; ciò che si ottiene però è P2121 con RA vuota (provocata dalla aggiunta di vincoli) e P2122 per il quale vale lo stesso discorso che per P211. In sintesi, la soluzione ottima è quella fornita da P22. 10 Metodi poliedrali • A fronte di un vincolo del tipo , essi generano vincoli del tipo La proprietà del nuovo sistema vincolare dovrebbe essere quella di contenere tutti i punti a coordinate intere del poliedro precedente • Il nuovo poliedro dovrebbe avere come vertici punti a coordinate intere • La conseguenza di ciò è che l'utilizzo di un'algoritmica LP (simplesso, Karmarkar) dovrebbe consentire la soluzione di problemi MIP Restringimento della RA • Esiste anche un altro approccio, che prevede di sostituire al sistema vincolare originale , un altro sistema vincolare , con la proprietà indicata in figura; riassumendo, a fronte di un problema MIP, esistono essenzialmente 3 possibili varianti del sistema vincolare: • Problema MIP originale: Pro Contro • • Descrive al meglio l'economia del problema E' istintiva la comprensione del problema • • MIP poliedrale: • • MIP intermedio: • • La RA contiene gli stessi punti interi che il MIP originale Si possono usare strumenti LP per la soluzione di un problema MIP La RA contiene gli stessi punti interi che il MIP originale Poichè RApoliedrale ⊆ RAintermedio ⊆ RAoriginale , in un problema di minimo, sarà vero che: fopoliedrale ≥ foLP intermedio ≥ foLP originale • Il rilassamento LP è più vicino all'ottimo MIP di quanto non lo sia per il rilassamento del problema originale • • Difficile da risolvere nella versione con variabili intere Il rilassamento LP può essere lontano dall'ottimo MIP Incomprensibile "a occhio" Difficile da risolvere nella versione con variabili intere 11 • • Un esempio dell'approccio è illustrato in figura L'illustrazione corrisponde ai sistemi vincolari: • La RA di • La RA di è formata dalla zona verde La RA di è l'unione delle zone verde e gialla Come nota generale, faccio notare come sia possibile x1 ≤ a x ≤ a 2 dimostrare che il poliedro ... è sempre contenuto x ≤ a n xi ∈ {0,1} ∀i x1 + x2 + ... + xn ≤ na nel poliedro ∀i xi ∈ {0,1} • • è formata dai 4 punti gialli