Ricerca Operativa - IASI-CNR

Generazione di Vincoli
Generazione di Variabili
Algoritmo Dinamico di Soluzione
Formulazioni di PLI
Totale Unimodularit`
a
Ricerca Operativa
G. Liuzzi1
Luned´ı 5 Maggio 2014
logo.pdf
1
Istituto di Analisi dei Sistemi ed Informatica IASI - CNR
Ricerca Operativa
G. Liuzzi
Generazione di Vincoli
Generazione di Variabili
Algoritmo Dinamico di Soluzione
Formulazioni di PLI
Totale Unimodularit`
a
Introduzione
Dato un problema di PL min{c > x : x ∈ P},
di quali informazioni sul poliedro P abbiamo DAVVERO
bisogno per risolvere il problema?
logo.pdf
Ricerca Operativa
G. Liuzzi
Generazione di Vincoli
Generazione di Variabili
Algoritmo Dinamico di Soluzione
Formulazioni di PLI
Totale Unimodularit`
a
Introduzione
Dato un problema di PL min{c > x : x ∈ P},
di quali informazioni sul poliedro P abbiamo DAVVERO
bisogno per risolvere il problema?
Se disponessimo di una “rappresentazione esterna” di P, ovvero:
P = {x ∈ Rn : Ax ≥ b},
`e ben noto che potremmo, in linea di principio, risolvere il
problema usando il Metodo del Simplesso.
logo.pdf
Ricerca Operativa
G. Liuzzi
Generazione di Vincoli
Generazione di Variabili
Algoritmo Dinamico di Soluzione
Formulazioni di PLI
Totale Unimodularit`
a
Introduzione
Dato un problema di PL min{c > x : x ∈ P},
di quali informazioni sul poliedro P abbiamo DAVVERO
bisogno per risolvere il problema?
Se disponessimo di una “rappresentazione esterna” di P, ovvero:
P = {x ∈ Rn : Ax ≥ b},
`e ben noto che potremmo, in linea di principio, risolvere il
problema usando il Metodo del Simplesso.
In altri termini, la conoscenza di una rappresentazione esterna di P
`e una condizione sufficiente per l’applicazione del metodo del
simplesso.
logo.pdf
Ricerca Operativa
G. Liuzzi
Generazione di Vincoli
Generazione di Variabili
Algoritmo Dinamico di Soluzione
Formulazioni di PLI
Totale Unimodularit`
a
Introduzione
Dato un problema di PL min{c > x : x ∈ P},
di quali informazioni sul poliedro P abbiamo DAVVERO
bisogno per risolvere il problema?
Se disponessimo di una “rappresentazione esterna” di P, ovvero:
P = {x ∈ Rn : Ax ≥ b},
`e ben noto che potremmo, in linea di principio, risolvere il
problema usando il Metodo del Simplesso.
In altri termini, la conoscenza di una rappresentazione esterna di P
`e una condizione sufficiente per l’applicazione del metodo del
simplesso.
` anche una condizione necessaria?
E
Ricerca Operativa
logo.pdf
G. Liuzzi
Generazione di Vincoli
Generazione di Variabili
Algoritmo Dinamico di Soluzione
Formulazioni di PLI
Totale Unimodularit`
a
Introduzione
Dato un problema di PL min{c > x : x ∈ P},
di quali informazioni sul poliedro P abbiamo DAVVERO
bisogno per risolvere il problema?
Se disponessimo di una “rappresentazione esterna” di P, ovvero:
P = {x ∈ Rn : Ax ≥ b},
`e ben noto che potremmo, in linea di principio, risolvere il
problema usando il Metodo del Simplesso.
In altri termini, la conoscenza di una rappresentazione esterna di P
`e una condizione sufficiente per l’applicazione del metodo del
simplesso.
` anche una condizione necessaria? No
E
Ricerca Operativa
logo.pdf
G. Liuzzi
Generazione di Vincoli
Generazione di Variabili
Algoritmo Dinamico di Soluzione
Formulazioni di PLI
Totale Unimodularit`
a
Oracolo di Separazione
Abbiamo visto mediante alcuni esempi che per risolvere il problema
`e possibile acquisire informazioni sulla struttura di P non mediante
la sua rappresentazione esterna,
logo.pdf
Ricerca Operativa
G. Liuzzi
Generazione di Vincoli
Generazione di Variabili
Algoritmo Dinamico di Soluzione
Formulazioni di PLI
Totale Unimodularit`
a
Oracolo di Separazione
Abbiamo visto mediante alcuni esempi che per risolvere il problema
`e possibile acquisire informazioni sulla struttura di P non mediante
la sua rappresentazione esterna,
bens´ı da una sua “rapprsentazione implicita” realizzata per mezzo
di un cosiddetto Oracolo di Separazione o generazione di righe.
logo.pdf
Ricerca Operativa
G. Liuzzi
Generazione di Vincoli
Generazione di Variabili
Algoritmo Dinamico di Soluzione
Formulazioni di PLI
Totale Unimodularit`
a
Oracolo di Separazione
Abbiamo visto mediante alcuni esempi che per risolvere il problema
`e possibile acquisire informazioni sulla struttura di P non mediante
la sua rappresentazione esterna,
bens´ı da una sua “rapprsentazione implicita” realizzata per mezzo
di un cosiddetto Oracolo di Separazione o generazione di righe.
Un Oracolo di Separazione `e una procedura che, dato un vettore
x¯ ∈ Rn ,
logo.pdf
Ricerca Operativa
G. Liuzzi
Generazione di Vincoli
Generazione di Variabili
Algoritmo Dinamico di Soluzione
Formulazioni di PLI
Totale Unimodularit`
a
Oracolo di Separazione
Abbiamo visto mediante alcuni esempi che per risolvere il problema
`e possibile acquisire informazioni sulla struttura di P non mediante
la sua rappresentazione esterna,
bens´ı da una sua “rapprsentazione implicita” realizzata per mezzo
di un cosiddetto Oracolo di Separazione o generazione di righe.
Un Oracolo di Separazione `e una procedura che, dato un vettore
x¯ ∈ Rn ,
fornisce una disequazione a> x ≥ a0 appertenente al sistema
Ax ≥ b e tale che a> x¯ < a0 (vincolo violato)
logo.pdf
Ricerca Operativa
G. Liuzzi
Generazione di Vincoli
Generazione di Variabili
Algoritmo Dinamico di Soluzione
Formulazioni di PLI
Totale Unimodularit`
a
Oracolo di Separazione
Abbiamo visto mediante alcuni esempi che per risolvere il problema
`e possibile acquisire informazioni sulla struttura di P non mediante
la sua rappresentazione esterna,
bens´ı da una sua “rapprsentazione implicita” realizzata per mezzo
di un cosiddetto Oracolo di Separazione o generazione di righe.
Un Oracolo di Separazione `e una procedura che, dato un vettore
x¯ ∈ Rn ,
fornisce una disequazione a> x ≥ a0 appertenente al sistema
Ax ≥ b e tale che a> x¯ < a0 (vincolo violato)
oppure conclude che tutte le disequazioni di Ax ≥ b sono
soddisfatte da x¯
logo.pdf
Ricerca Operativa
G. Liuzzi
Generazione di Vincoli
Generazione di Variabili
Algoritmo Dinamico di Soluzione
Formulazioni di PLI
Totale Unimodularit`
a
Algoritmo di Soluzione Dinamico (primale)
Supponiamo che il poliedro P sia limitato
logo.pdf
Ricerca Operativa
G. Liuzzi
Generazione di Vincoli
Generazione di Variabili
Algoritmo Dinamico di Soluzione
Formulazioni di PLI
Totale Unimodularit`
a
Algoritmo di Soluzione Dinamico (primale)
Supponiamo che il poliedro P sia limitato
Algoritmo con generazione di righe
(a) Definire un sottoproblema min{c > x : Dx ≥ d} (problema
corrente) con D sottomatrice di A con q m righe ed n
colonne.
logo.pdf
Ricerca Operativa
G. Liuzzi
Generazione di Vincoli
Generazione di Variabili
Algoritmo Dinamico di Soluzione
Formulazioni di PLI
Totale Unimodularit`
a
Algoritmo di Soluzione Dinamico (primale)
Supponiamo che il poliedro P sia limitato
Algoritmo con generazione di righe
(a) Definire un sottoproblema min{c > x : Dx ≥ d} (problema
corrente) con D sottomatrice di A con q m righe ed n
colonne.
(b) Risolvere il problema corrente (p.es. utilizzando il metodo del
simplesso). Se il problema corrente `e inammissibile allora lo `e
anche il problema completo. In caso contrario sia x¯ ∈ Rn la
soluzione ottima del problema corrente.
logo.pdf
Ricerca Operativa
G. Liuzzi
Generazione di Vincoli
Generazione di Variabili
Algoritmo Dinamico di Soluzione
Formulazioni di PLI
Totale Unimodularit`
a
Algoritmo di Soluzione Dinamico (primale)
Supponiamo che il poliedro P sia limitato
Algoritmo con generazione di righe
(a) Definire un sottoproblema min{c > x : Dx ≥ d} (problema
corrente) con D sottomatrice di A con q m righe ed n
colonne.
(b) Risolvere il problema corrente (p.es. utilizzando il metodo del
simplesso). Se il problema corrente `e inammissibile allora lo `e
anche il problema completo. In caso contrario sia x¯ ∈ Rn la
soluzione ottima del problema corrente.
(c) Invocare l’oracolo di separazione sul punto x¯. Se viene
generato un vincolo violato da x¯, aggiungerlo al problema
corrente e tornare al passo (b).
logo.pdf
Ricerca Operativa
G. Liuzzi
Generazione di Vincoli
Generazione di Variabili
Algoritmo Dinamico di Soluzione
Formulazioni di PLI
Totale Unimodularit`
a
Algoritmo di Soluzione Dinamico (primale)
Supponiamo che il poliedro P sia limitato
Algoritmo con generazione di righe
(a) Definire un sottoproblema min{c > x : Dx ≥ d} (problema
corrente) con D sottomatrice di A con q m righe ed n
colonne.
(b) Risolvere il problema corrente (p.es. utilizzando il metodo del
simplesso). Se il problema corrente `e inammissibile allora lo `e
anche il problema completo. In caso contrario sia x¯ ∈ Rn la
soluzione ottima del problema corrente.
(c) Invocare l’oracolo di separazione sul punto x¯. Se viene
generato un vincolo violato da x¯, aggiungerlo al problema
corrente e tornare al passo (b).
(d) Se, invece, l’oracolo di separazione conclude che tutti i vincoli
del problema completo sono soddisfatti da x¯, allora x¯ `e la
logo.pdf
soluzione ottima del problema completo.
Ricerca Operativa
G. Liuzzi
Generazione di Vincoli
Generazione di Variabili
Algoritmo Dinamico di Soluzione
Formulazioni di PLI
Totale Unimodularit`
a
Introduzione
Cos`ı come esistono problemi lineari con un numero elevatissimo di
vincoli, esistono altrettanti problemi lineari (p.es. quelli che si
ottengono per dualit`a) con un numero elevatissimo di variabili.
logo.pdf
Ricerca Operativa
G. Liuzzi
Generazione di Vincoli
Generazione di Variabili
Algoritmo Dinamico di Soluzione
Formulazioni di PLI
Totale Unimodularit`
a
Introduzione
Cos`ı come esistono problemi lineari con un numero elevatissimo di
vincoli, esistono altrettanti problemi lineari (p.es. quelli che si
ottengono per dualit`a) con un numero elevatissimo di variabili.
Anche in questo caso `e possibile definire un algoritmo di soluzione
dinamico che tratta in modo implicito le (numerosissime) variabili
del problema
min{c > x : Ax ≥ b, x ≥ 0n }
logo.pdf
Ricerca Operativa
G. Liuzzi
Generazione di Vincoli
Generazione di Variabili
Algoritmo Dinamico di Soluzione
Formulazioni di PLI
Totale Unimodularit`
a
Introduzione
Cos`ı come esistono problemi lineari con un numero elevatissimo di
vincoli, esistono altrettanti problemi lineari (p.es. quelli che si
ottengono per dualit`a) con un numero elevatissimo di variabili.
Anche in questo caso `e possibile definire un algoritmo di soluzione
dinamico che tratta in modo implicito le (numerosissime) variabili
del problema
min{c > x : Ax ≥ b, x ≥ 0n }
Tale metodo risolve (che chiameremo duale) una sequenza di
problemi parziali min{cD> z : Dz ≥ b, z ≥ 0q } con D sottomatrice
di A con m righe e q n colonne, e cD sottovettore di c associato
logo.pdf
alle colonne di D.
Ricerca Operativa
G. Liuzzi
Generazione di Vincoli
Generazione di Variabili
Algoritmo Dinamico di Soluzione
Formulazioni di PLI
Totale Unimodularit`
a
Oracolo di Generazione di Colonne (o variabili)
Supponiamo, per semplicit`a, che il problema parziale si ammissibile
e limitato
logo.pdf
Ricerca Operativa
G. Liuzzi
Generazione di Vincoli
Generazione di Variabili
Algoritmo Dinamico di Soluzione
Formulazioni di PLI
Totale Unimodularit`
a
Oracolo di Generazione di Colonne (o variabili)
Supponiamo, per semplicit`a, che il problema parziale si ammissibile
e limitato
¯ ∈ Rm la coppia primale-duale di soluzioni ottime
Siano z¯ ∈ Rq e λ
del problema parziale.
logo.pdf
Ricerca Operativa
G. Liuzzi
Generazione di Vincoli
Generazione di Variabili
Algoritmo Dinamico di Soluzione
Formulazioni di PLI
Totale Unimodularit`
a
Oracolo di Generazione di Colonne (o variabili)
Supponiamo, per semplicit`a, che il problema parziale si ammissibile
e limitato
¯ ∈ Rm la coppia primale-duale di soluzioni ottime
Siano z¯ ∈ Rq e λ
del problema parziale.
Notiamo che la soluzione x¯ = (¯
z , 0n−q ) `e una soluzione
ammissibile per il problema primale completo. Inoltre abbiamo che
¯
cD> z¯ = c > x¯ = b > λ.
logo.pdf
Ricerca Operativa
G. Liuzzi
Generazione di Vincoli
Generazione di Variabili
Algoritmo Dinamico di Soluzione
Formulazioni di PLI
Totale Unimodularit`
a
Oracolo di Generazione di Colonne (o variabili)
Supponiamo, per semplicit`a, che il problema parziale si ammissibile
e limitato
¯ ∈ Rm la coppia primale-duale di soluzioni ottime
Siano z¯ ∈ Rq e λ
del problema parziale.
Notiamo che la soluzione x¯ = (¯
z , 0n−q ) `e una soluzione
ammissibile per il problema primale completo. Inoltre abbiamo che
¯
cD> z¯ = c > x¯ = b > λ.
¯ `e ammissibile per il problema duale completo (ovvero se
Se λ
>
¯
A λ ≤ c), allora per il teorema della dualit`a forte le soluzioni x¯ e
¯ sono una coppia di soluzioni ottime per i problemi primale e
λ
duale completi.
logo.pdf
Ricerca Operativa
G. Liuzzi
Generazione di Vincoli
Generazione di Variabili
Algoritmo Dinamico di Soluzione
Formulazioni di PLI
Totale Unimodularit`
a
Oracolo di Generazione di Colonne (o variabili)
¯ non sia ammissibile per il duale
Supponiamo, al contrario, che λ
completo.
logo.pdf
Ricerca Operativa
G. Liuzzi
Generazione di Vincoli
Generazione di Variabili
Algoritmo Dinamico di Soluzione
Formulazioni di PLI
Totale Unimodularit`
a
Oracolo di Generazione di Colonne (o variabili)
¯ non sia ammissibile per il duale
Supponiamo, al contrario, che λ
completo.
¯
Ci´o vuol dire che esiste un vincolo duale aj> λ ≤ cj violato da λ
>
¯ > cj .
ovvero tale che aj λ
logo.pdf
Ricerca Operativa
G. Liuzzi
Generazione di Vincoli
Generazione di Variabili
Algoritmo Dinamico di Soluzione
Formulazioni di PLI
Totale Unimodularit`
a
Oracolo di Generazione di Colonne (o variabili)
¯ non sia ammissibile per il duale
Supponiamo, al contrario, che λ
completo.
¯
Ci´o vuol dire che esiste un vincolo duale aj> λ ≤ cj violato da λ
>
¯ > cj .
ovvero tale che aj λ
Notiamo che il vincolo duale aj> λ ≤ cj non appartiene al duale
¯ che `e ottima per il
parziale in quanto violato dalla soluzione λ
duale parziale.
logo.pdf
Ricerca Operativa
G. Liuzzi
Generazione di Vincoli
Generazione di Variabili
Algoritmo Dinamico di Soluzione
Formulazioni di PLI
Totale Unimodularit`
a
Oracolo di Generazione di Colonne (o variabili)
¯ non sia ammissibile per il duale
Supponiamo, al contrario, che λ
completo.
¯
Ci´o vuol dire che esiste un vincolo duale aj> λ ≤ cj violato da λ
>
¯ > cj .
ovvero tale che aj λ
Notiamo che il vincolo duale aj> λ ≤ cj non appartiene al duale
¯ che `e ottima per il
parziale in quanto violato dalla soluzione λ
duale parziale.
A questo punto, modifichiamo il problema duale parziale
aggiungendo il vincolo aj> λ ≤ cj . Tale modifica del duale parziale
corrisponde all’aggiunta della variabile xj al primale parziale e, di
conseguenza, all’aggiornamento della matrice D mediante
l’aggiunta della colonna j-esima
Ricerca Operativa
logo.pdf
G. Liuzzi
Generazione di Vincoli
Generazione di Variabili
Algoritmo Dinamico di Soluzione
Formulazioni di PLI
Totale Unimodularit`
a
Algoritmo di Soluzione Dinamico (duale)
Supponiamo che il poliedro P sia limitato e non vuoto
logo.pdf
Ricerca Operativa
G. Liuzzi
Generazione di Vincoli
Generazione di Variabili
Algoritmo Dinamico di Soluzione
Formulazioni di PLI
Totale Unimodularit`
a
Algoritmo di Soluzione Dinamico (duale)
Supponiamo che il poliedro P sia limitato e non vuoto
Algoritmo con generazione di colonne
(a) Definire un sottoproblema parziale iniziale
min{cD> z : Dz ≥ b, z ≥ 0q } (problema corrente) non vuoto
con D = D0 sottomatrice di A con m righe e q n colonne.
logo.pdf
Ricerca Operativa
G. Liuzzi
Generazione di Vincoli
Generazione di Variabili
Algoritmo Dinamico di Soluzione
Formulazioni di PLI
Totale Unimodularit`
a
Algoritmo di Soluzione Dinamico (duale)
Supponiamo che il poliedro P sia limitato e non vuoto
Algoritmo con generazione di colonne
(a) Definire un sottoproblema parziale iniziale
min{cD> z : Dz ≥ b, z ≥ 0q } (problema corrente) non vuoto
con D = D0 sottomatrice di A con m righe e q n colonne.
(b) Risolvere il problema corrente (p.es. utilizzando il metodo del
¯ le soluzioni ottime della coppia
simplesso). Siano z¯ e λ
primale-duale corrente.
logo.pdf
Ricerca Operativa
G. Liuzzi
Generazione di Vincoli
Generazione di Variabili
Algoritmo Dinamico di Soluzione
Formulazioni di PLI
Totale Unimodularit`
a
Algoritmo di Soluzione Dinamico (duale)
Supponiamo che il poliedro P sia limitato e non vuoto
Algoritmo con generazione di colonne
(a) Definire un sottoproblema parziale iniziale
min{cD> z : Dz ≥ b, z ≥ 0q } (problema corrente) non vuoto
con D = D0 sottomatrice di A con m righe e q n colonne.
(b) Risolvere il problema corrente (p.es. utilizzando il metodo del
¯ le soluzioni ottime della coppia
simplesso). Siano z¯ e λ
primale-duale corrente.
(c) Applicare l’Algoritmo di Generazione di Colonne per generare
un vincolo violato duale e corrsipondente colonna primale. Se
tale colonna viene generata, aggiungerla al problema corrente
e tornare al passo (b).
logo.pdf
Ricerca Operativa
G. Liuzzi
Generazione di Vincoli
Generazione di Variabili
Algoritmo Dinamico di Soluzione
Formulazioni di PLI
Totale Unimodularit`
a
Algoritmo di Soluzione Dinamico (duale)
Supponiamo che il poliedro P sia limitato e non vuoto
Algoritmo con generazione di colonne
(a) Definire un sottoproblema parziale iniziale
min{cD> z : Dz ≥ b, z ≥ 0q } (problema corrente) non vuoto
con D = D0 sottomatrice di A con m righe e q n colonne.
(b) Risolvere il problema corrente (p.es. utilizzando il metodo del
¯ le soluzioni ottime della coppia
simplesso). Siano z¯ e λ
primale-duale corrente.
(c) Applicare l’Algoritmo di Generazione di Colonne per generare
un vincolo violato duale e corrsipondente colonna primale. Se
tale colonna viene generata, aggiungerla al problema corrente
e tornare al passo (b).
(d) Se, invece, nessuna colonna viene generata, allora il vettore logo.pdf
x¯ = (¯
z , 0n−q ) `e una soluzione ottima del problema originario.
Ricerca Operativa
G. Liuzzi
Generazione di Vincoli
Generazione di Variabili
Algoritmo Dinamico di Soluzione
Formulazioni di PLI
Totale Unimodularit`
a
Algoritmo di Soluzione Dinamico (primale-duale)
Supponiamo che il poliedro P sia limitato e non vuoto
(a) Definire un sottoproblema parziale iniziale min{cD> z : Dz ≥ b, z ≥ 0q }
(problema corrente) con D sottomatrice di A con p m righe e q n
colonne.
logo.pdf
Ricerca Operativa
G. Liuzzi
Generazione di Vincoli
Generazione di Variabili
Algoritmo Dinamico di Soluzione
Formulazioni di PLI
Totale Unimodularit`
a
Algoritmo di Soluzione Dinamico (primale-duale)
Supponiamo che il poliedro P sia limitato e non vuoto
(a) Definire un sottoproblema parziale iniziale min{cD> z : Dz ≥ b, z ≥ 0q }
(problema corrente) con D sottomatrice di A con p m righe e q n
colonne.
(b) Risolvere il problema parziale (p.es. utilizzando il metodo del simplesso).
¯ ∈ Rp le soluzioni ottime della coppia primale-duale
Siano z¯ ∈ Rq e λ
corrente.
logo.pdf
Ricerca Operativa
G. Liuzzi
Generazione di Vincoli
Generazione di Variabili
Algoritmo Dinamico di Soluzione
Formulazioni di PLI
Totale Unimodularit`
a
Algoritmo di Soluzione Dinamico (primale-duale)
Supponiamo che il poliedro P sia limitato e non vuoto
(a) Definire un sottoproblema parziale iniziale min{cD> z : Dz ≥ b, z ≥ 0q }
(problema corrente) con D sottomatrice di A con p m righe e q n
colonne.
(b) Risolvere il problema parziale (p.es. utilizzando il metodo del simplesso).
¯ ∈ Rp le soluzioni ottime della coppia primale-duale
Siano z¯ ∈ Rq e λ
corrente.
(c) Invocare l’oracolo di separazione sul punto x¯ = (¯
z , 0n−q ). Se viene
generato un vincolo violato da x¯, aggiungerlo al problema corrente (agg.
solo i coefficienti delle colonne attaulmente presenti nel problema
corrente) e tornare al passo (b).
logo.pdf
Ricerca Operativa
G. Liuzzi
Generazione di Vincoli
Generazione di Variabili
Algoritmo Dinamico di Soluzione
Formulazioni di PLI
Totale Unimodularit`
a
Algoritmo di Soluzione Dinamico (primale-duale)
Supponiamo che il poliedro P sia limitato e non vuoto
(a) Definire un sottoproblema parziale iniziale min{cD> z : Dz ≥ b, z ≥ 0q }
(problema corrente) con D sottomatrice di A con p m righe e q n
colonne.
(b) Risolvere il problema parziale (p.es. utilizzando il metodo del simplesso).
¯ ∈ Rp le soluzioni ottime della coppia primale-duale
Siano z¯ ∈ Rq e λ
corrente.
(c) Invocare l’oracolo di separazione sul punto x¯ = (¯
z , 0n−q ). Se viene
generato un vincolo violato da x¯, aggiungerlo al problema corrente (agg.
solo i coefficienti delle colonne attaulmente presenti nel problema
corrente) e tornare al passo (b).
(d) Se nessun vincolo `e stato generato al passo (c), applicare l’Algoritmo di
Generazione di Colonne per generare una colonna del problema originale.
Se tale colonna viene generata, aggiungerla al problema corrente e tornare
al passo (b).
logo.pdf
Ricerca Operativa
G. Liuzzi
Generazione di Vincoli
Generazione di Variabili
Algoritmo Dinamico di Soluzione
Formulazioni di PLI
Totale Unimodularit`
a
Algoritmo di Soluzione Dinamico (primale-duale)
Supponiamo che il poliedro P sia limitato e non vuoto
(a) Definire un sottoproblema parziale iniziale min{cD> z : Dz ≥ b, z ≥ 0q }
(problema corrente) con D sottomatrice di A con p m righe e q n
colonne.
(b) Risolvere il problema parziale (p.es. utilizzando il metodo del simplesso).
¯ ∈ Rp le soluzioni ottime della coppia primale-duale
Siano z¯ ∈ Rq e λ
corrente.
(c) Invocare l’oracolo di separazione sul punto x¯ = (¯
z , 0n−q ). Se viene
generato un vincolo violato da x¯, aggiungerlo al problema corrente (agg.
solo i coefficienti delle colonne attaulmente presenti nel problema
corrente) e tornare al passo (b).
(d) Se nessun vincolo `e stato generato al passo (c), applicare l’Algoritmo di
Generazione di Colonne per generare una colonna del problema originale.
Se tale colonna viene generata, aggiungerla al problema corrente e tornare
al passo (b).
(e) Se, invece, nessuna colonna viene generata, allora il vettore x¯ = (¯
z , 0n−q )
¯ la soluzione ottima
logo.pdf
`e una soluzione ottima del problema originario e λ
duale corrispondente.
Ricerca Operativa
G. Liuzzi
Generazione di Vincoli
Generazione di Variabili
Algoritmo Dinamico di Soluzione
Formulazioni di PLI
Totale Unimodularit`
a
Introduzione
Consideriamo il seguente problema:
min{c > x : x ∈ S ⊂ {0, 1}2 }
con S = {(0, 0), (1, 0), (1, 1)}.
` evidente che il problema `e completamente caratterizzato
E
specificando il vettore dei costi c e l’insieme S delle soluzioni
ammissibili, ovvero la coppia (c, S).
logo.pdf
Ricerca Operativa
G. Liuzzi
Generazione di Vincoli
Generazione di Variabili
Algoritmo Dinamico di Soluzione
Formulazioni di PLI
Totale Unimodularit`
a
Introduzione
Consideriamo il seguente problema:
min{c > x : x ∈ S ⊂ {0, 1}2 }
con S = {(0, 0), (1, 0), (1, 1)}.
` evidente che il problema `e completamente caratterizzato
E
specificando il vettore dei costi c e l’insieme S delle soluzioni
ammissibili, ovvero la coppia (c, S).
Definizione (Formulazione Lineare). Un poliedro
P = {x ∈ Rn : Ax ≥ b} `e una formulazione lineare del problema
(c, S) se e solo se
S = P ∩ Zn
Ricerca Operativa
logo.pdf
G. Liuzzi
Generazione di Vincoli
Generazione di Variabili
Algoritmo Dinamico di Soluzione
Formulazioni di PLI
Totale Unimodularit`
a
Rilassamento Lineare
Se P `e una formulazione di (c, S), possiamo riscrivere il problema
(c, S) nel seguente modo:
min{c > x : x ∈ P, x ∈ Z n }.
logo.pdf
Ricerca Operativa
G. Liuzzi
Generazione di Vincoli
Generazione di Variabili
Algoritmo Dinamico di Soluzione
Formulazioni di PLI
Totale Unimodularit`
a
Rilassamento Lineare
Se P `e una formulazione di (c, S), possiamo riscrivere il problema
(c, S) nel seguente modo:
min{c > x : x ∈ P, x ∈ Z n }.
Il problema di PL
min{c > x : x ∈ P}
ottenuto eliminando i vincoli di interezza sulla componenti del
vettore x, viene detto rilassamento lineare di (c, S).
logo.pdf
Ricerca Operativa
G. Liuzzi
Generazione di Vincoli
Generazione di Variabili
Algoritmo Dinamico di Soluzione
Formulazioni di PLI
Totale Unimodularit`
a
Rilassamento Lineare
Se P `e una formulazione di (c, S), possiamo riscrivere il problema
(c, S) nel seguente modo:
min{c > x : x ∈ P, x ∈ Z n }.
Il problema di PL
min{c > x : x ∈ P}
ottenuto eliminando i vincoli di interezza sulla componenti del
vettore x, viene detto rilassamento lineare di (c, S).
Sia xˆ la soluzione ottima del rilassamento lineare di (c, S), vale
ovviamente la seguente relazione
c > xˆ ≤ min{c > x : x ∈ S}.
Ricerca Operativa
logo.pdf
G. Liuzzi
Generazione di Vincoli
Generazione di Variabili
Algoritmo Dinamico di Soluzione
Formulazioni di PLI
Totale Unimodularit`
a
Rilassamento Lineare
Se xˆ ∈ S, allora xˆ `e ottima per (c, S).
logo.pdf
Ricerca Operativa
G. Liuzzi
Generazione di Vincoli
Generazione di Variabili
Algoritmo Dinamico di Soluzione
Formulazioni di PLI
Totale Unimodularit`
a
Rilassamento Lineare
Se xˆ ∈ S, allora xˆ `e ottima per (c, S).
Se, invece, xˆ 6∈ S ma esiste una soluzione x¯ ∈ S tale che
c > xˆ = c > x¯,
allora si pu`o concludere che la soluzione x¯ `e ottima per (c, S)
logo.pdf
Ricerca Operativa
G. Liuzzi
Generazione di Vincoli
Generazione di Variabili
Algoritmo Dinamico di Soluzione
Formulazioni di PLI
Totale Unimodularit`
a
Ordinamento delle Formulazioni
Definizione. Date due formulazioni lineari P1 e P2 di un
problema (c, S), diremo che
P1 `e migliore di P2
se e solo se P1 ⊂ P2 .
logo.pdf
Ricerca Operativa
G. Liuzzi
Generazione di Vincoli
Generazione di Variabili
Algoritmo Dinamico di Soluzione
Formulazioni di PLI
Totale Unimodularit`
a
Ordinamento delle Formulazioni
Definizione. Date due formulazioni lineari P1 e P2 di un
problema (c, S), diremo che
P1 `e migliore di P2
se e solo se P1 ⊂ P2 .
Quindi possiamo introdurre anche il concetto di formulazione
ottima di (c, S).
Definizione (Formulazione ottima). La formulazione ottima di
un problema (c, S) `e costituita dal poliedro contenuto in tutti i
poliedri contenenti S. Indicheremo tale formulazione con PS .
logo.pdf
Ricerca Operativa
G. Liuzzi
Generazione di Vincoli
Generazione di Variabili
Algoritmo Dinamico di Soluzione
Formulazioni di PLI
Totale Unimodularit`
a
Introduzione
Dato un problema (c, S) e definita una formulazione lineare P per esso,
sotto quali condizioni `e possibile assicurare che la soluzione del problema
rilassato min{c > x : x ∈ P} avr`a componenti intere?
Allo scopo di definire queste condizioni, introduciamo le seguenti due
fondamentali definizioni.
logo.pdf
Ricerca Operativa
G. Liuzzi
Generazione di Vincoli
Generazione di Variabili
Algoritmo Dinamico di Soluzione
Formulazioni di PLI
Totale Unimodularit`
a
Introduzione
Dato un problema (c, S) e definita una formulazione lineare P per esso,
sotto quali condizioni `e possibile assicurare che la soluzione del problema
rilassato min{c > x : x ∈ P} avr`a componenti intere?
Allo scopo di definire queste condizioni, introduciamo le seguenti due
fondamentali definizioni.
Definizione. Una matrice (m × n) A di rango m `e detta
unimodulare se e solo se, per ogni sottomatrice quadrata non
singolare B (m × m) di A, si ha det(B) = {1, −1}.
logo.pdf
Ricerca Operativa
G. Liuzzi
Generazione di Vincoli
Generazione di Variabili
Algoritmo Dinamico di Soluzione
Formulazioni di PLI
Totale Unimodularit`
a
Introduzione
Dato un problema (c, S) e definita una formulazione lineare P per esso,
sotto quali condizioni `e possibile assicurare che la soluzione del problema
rilassato min{c > x : x ∈ P} avr`a componenti intere?
Allo scopo di definire queste condizioni, introduciamo le seguenti due
fondamentali definizioni.
Definizione. Una matrice (m × n) A di rango m `e detta
unimodulare se e solo se, per ogni sottomatrice quadrata non
singolare B (m × m) di A, si ha det(B) = {1, −1}.
Definizione. Una matrice (m × n) A `e detta totalmente
unimodulare se e solo se, per ogni sottomatrice quadrata non
singolare B di A, si ha det(B) = {1, −1}.
logo.pdf
Ricerca Operativa
G. Liuzzi
Generazione di Vincoli
Generazione di Variabili
Algoritmo Dinamico di Soluzione
Formulazioni di PLI
Totale Unimodularit`
a
Condizione Necessaria e Sufficiente
Teorema Sia A una matrice (m × n) a componenti intere.
logo.pdf
Ricerca Operativa
G. Liuzzi
Generazione di Vincoli
Generazione di Variabili
Algoritmo Dinamico di Soluzione
Formulazioni di PLI
Totale Unimodularit`
a
Condizione Necessaria e Sufficiente
Teorema Sia A una matrice (m × n) a componenti intere. Allora
il poliedro P = {x ∈ Rn : Ax ≥ b, x ≥ 0n } `e intero (cio`e ha tutti i
vertici a componenti intere) per ogni b ∈ Zm
logo.pdf
Ricerca Operativa
G. Liuzzi
Generazione di Vincoli
Generazione di Variabili
Algoritmo Dinamico di Soluzione
Formulazioni di PLI
Totale Unimodularit`
a
Condizione Necessaria e Sufficiente
Teorema Sia A una matrice (m × n) a componenti intere. Allora
il poliedro P = {x ∈ Rn : Ax ≥ b, x ≥ 0n } `e intero (cio`e ha tutti i
vertici a componenti intere) per ogni b ∈ Zm se e solo se la
matrice A `e totalmente unimodulare.
logo.pdf
Ricerca Operativa
G. Liuzzi