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