Ottimizzazione Combinatoria A. A. 2006-2007
Docente
Fabrizio Rossi Orario di ricevimento
mercoledi 17-19 oppure su appuntamento
Telefono 0862433139 e-mail rossi@di.univaq.it Sito web
http://www.di.univaq.it/~oil Orario delle lezioni
martedi ore 17.00 – 19.00 Aula 1.7 mercoledi ore 17.00 – 19.00 Aula 1.6 giovedi ore 11.30 – 13.30 Aula 2.4 Testi di riferimento
Base
A. Sassano, Modelli e Algoritmi della Ricerca Operativa, Franco Angeli Avanzati
L. A. Wolsey, Integer Programming, John Wiley & Sons, Inc.
W. J. Cook, W. H. Cunningham, W. R. Pulleyblank, A. Schrijver, Combinatorial Optimization, Wiley
Materiale didattico sul sito http://www.di.univaq.it/~oil
Applicazioni
• Progetto di servizi logistici
• Progetto di una rete di trasmissione radiotelevisiva
• Gestione del servizio di trasporto urbano per handicappati
• Pianificazione della produzione
• Gestione delle partenze e degli arrivi in un
aeroporto
Progetto di servizi logistici
L’azienda di spedizioni Ex-press, proprietaria di alcuni treni merci, intende realizzare un servizio di
spedizioni tra L’Aquila e Pescara via ferrovia Pertanto:
1. Chiede gli orari disponibili alla società che gestisce la rete ferroviaria ( Rete Ferroviaria Italiana ) e i costi relativi
2. Configura il servizio che massimizza il guadagno Il gestore della rete
1. Studia la fattibilità delle richieste della società 2. Pianifica alcuni orari alternativi
3. Definisce i prezzi di ogni alternativa
Ex-press ha un problema di ottimizzazione
• Ex-press
Dati
Un insieme di orari O, ognuno con il proprio costo Un insieme di treni T, ognuno con il proprio
“profitto”
Problema
Assegnare un sottoinsieme T’ T di treni a un sottoinsieme di orari O’ O in modo da
massimizzare il guadagno (somma dei profitti –
somma dei costi) e rispettando i vincoli “fisici”
RFI ha un problema di ottimizzazione
• RFI
Dati
L’orario di nuovo treno
L’intervallo di tempo necessario a percorrere ogni tratta della linea
L’intervallo di tempo minimo e massimo di sosta in ogni stazione
Standard di sicurezza (due treni che viaggiano sulla stessa linea devono essere separati da almeno k metri, ecc.)
L’orario esistente Problema
Trovare (se esiste !) un orario che contenga il nuovo
treno e che rispetti gli standard di sicurezza
Problema di Ottimizzazione
E insieme ambiente (insieme di soluzioni, decisioni o alternative)
F E insieme ammissibile
F è definito tramite un insieme di relazioni dette vincoli
f : E funzione obiettivo
Direzione di ottimizzazione: minimo o massimo Problema di ottimizzazione (min)
Trovare un elemento x F tale che f(x) f(y)
y F.
v = f(x) valore ottimo
x soluzione ottima
Problema di Ottimizzazione Combinatoria
Dati
N insieme finito N = {1, 2, …, n}
c vettore di pesi c j per ogni j N Insieme ambiente
U = {tutti i possibili 2 |N| sottoinsiemi di N}
Insieme ammissibile
famiglia di sottoinsiemi F di U Si definisce
Problema di Ottimizzazione Combinatoria min S
N { j S c j : S }
La definizione è analoga se si vuole massimizzare la
f.o.
Il problema dell’assegnamento
3 Artigiani 3 Lavori da realizzare
Tabella dei costi
Problema
Assegnare esattamente un lavoro ad ogni artigiano in modo da minimizzare i costi
10 15 12 2
14 7 10
1
3 2 1 A L
9
18
20
3
10 15 12 2
14 7 10
1
3 2 1 A L
9 18 20 3
Il problema dell’assegnamento
Insiemi ammissibili
1. {a
1– l
1, a
2– l
2, a
3– l
3} di costo 34
3. {a
1– l
3, a
2– l
1, a
3– l
2} di costo 37 4. {a
1– l
3, a
2– l
2, a
3– l
1} di costo 49 5. {a
1– l
2, a
2– l
1, a
3– l
3} di costo 28 6. {a
1– l
1, a
2– l
3, a
3– l
2} di costo 38 La soluzione ottima ha valore 28
I possibili assegnamenti sono n!, pertanto il numero di insiemi ammissibili è n!
2. {a
1– l
2, a
2– l
3, a
3– l
1} di costo 44
Il problema della bisaccia
Avete a disposizione un budget b per gli investimenti dell’anno 2002
Ad ogni progetto è associato - un costo a j (> 0)
- un guadagno atteso c j (>0) Problema
Scegliere l’insieme di progetti in modo che sia
massimizzato il guadagno atteso senza eccedere il
budget b
Il problema della bisaccia
4 1 8
12 4
14 3
10 2
c a
Insiemi ammissibili
, {1}, {2}, {3}, {4}, {1, 2}, {1, 4}, {2, 4}, {3,4}
Soluzione ottima {1, 2} di valore 24
Quanti sono gli insiemi ammissibili?
Il numero di possibili sottoinsiemi di un insieme di n oggetti è 2
n. Se b =
j=1,…,na
j/ 2 gli insiemi ammissibili sono almeno 2
n-11 2 3
Dimensione della bisaccia
b = 5
2
5 3
8 7
4 6 1
Il problema del commesso viaggiatore
n punti nel piano
Per ogni coppia di punti (i, j) si definisce un costo c
ij> 0 Problema
Trovare il “tour” di costo minimo
Il problema del commesso viaggiatore
2
8 5 7
4 6 1
3
Insiemi ammissibili: gli (n-1)!/2 possibili tour
Differenze e similarità
Proprietà fondamentali dei problemi di OC:
1. tutti i problemi di OC sono definiti su insiemi ammissibili finiti e numerabili
2. la funzione obiettivo è calcolabile in corrispondenza ad ogni insieme ammissibile
Quindi
esiste un algoritmo “universale” per i problemi di OC che si chiama ENUMERAZIONE TOTALE
Conclusione:
È inutile seguire questo corso
È vera questa affermazione?
4.0210
25671.07 10
3011000000 31.62
9.97 1000
9.3310
1571.27 10
3010000 10.00
6.64 100
3.610
61.0210
3100 3.16
3.32 10
n!
2
nn
2n
0.5log n
n
Le operazioni eseguite da un moderno calcolatore (1 Ghz) in un anno sono pari a 3.15 10
16Pertanto, per risolvere un problema di TSP con 20 città attraverso
l’enumerazione totale si impiegano circa 2 anni
1. Algoritmi ammissibili a complessità polinomiale [Assegnamento]
2. Algoritmi ammissibili a complessità pseudo polinomiali [Knapsack]
3. Algoritmi ammissibili a complessità non polinomiale [TSP]
4. Algoritmi approssimati a complessità polinomiale [Knapsack]
5. Algoritmi euristici [Knapsack, TSP]
Obiettivo del corso
Studiare tecniche matematiche che consentono di
progettare algoritmi “efficienti” per i problemi di OC
Che cosa si intende per algoritmo efficiente?
Obiettivo del corso
Modellare problemi decisionali derivanti da applicazioni del mondo industriale come
problemi di ottimizzazione
Parte I:
Insiemi indipendenti e coperture
(I Teoremi di Berge, König e Gallai)
Sommario
• Formulazioni ed esempi
• Insiemi indipendenti in un grafo
Insieme stabile
Abbinamento
• Coperture in un grafo
Insieme trasversale
Edge-cover
• Disuguaglianze duali deboli
• Il Teorema di König
• Il Teorema di Berge
• Il Teorema di Gallai
• Algoritmo per il matching
Il ballo
Problema 1. Il ballo (Berge)
• In una festa sono presenti n ragazzi e n ragazze.
• Ogni ragazzo scopre che sono presenti k sue fidanzate, ogni ragazza scopre che sono presenti k suoi fidanzati (k < n, k > 1)
Domanda
E’ possibile far ballare ciascun ragazzo con una delle sue
fidanzate e ciascuna ragazza con uno dei suoi fidanzati?
Formulazione
Alberto
Bruno
Claudio
Davide
Anna
Bice
Carla
Daniela
Il ballo. 4 ragazzi/e con 3 fidanzati/e
Le torri
Problema 2. Le torri
• Consideriamo una scacchiera n n .
• Due torri si “danno scacco” se giacciono sulla stessa riga (colonna) della scacchiera.
Domanda
Qual è il massimo numero di torri che è possibile
disporre sulla scacchiera senza esse si diano scacco
reciproco?
A B C D 1
2 3 4
Formulazione
Due torri si danno scacco se si trovano sulla medesima riga o colonna:
A
B
C
D
1
2
3
Grafo intersezione 4
righe-colonne
La battaglia d’Inghilterra (1941)
Problema 3. La battaglia d’Inghilterra (Berge)
• Nel 1941 le squadriglie inglesi erano composte da aerei biposto, ma certi piloti non potevano formare una coppia per problemi di lingua o di abitudini.
Domanda
Dati i vincoli di incompatibilità tra coppie di piloti, qual è
il massimo numero di aerei che è possibile far volare
simultaneamente?
Alì
Bob
Charlie
David
Evgenij
Fëdor
Formulazione
Disegniamo il grafo di compatibilità dei piloti.
Alì Charlie
Bob
Evgenij
Abbinamento
In ognuno dei casi esaminati, la soluzione può rappresentarsi come un insieme A di spigoli di un grafo G = ( V , E ) a due a due non adiacenti
Tale insieme è detto abbinamento (matching)
Alberto Bruno Claudio
Davide
Anna Bice Carla Daniela
A B C D
1 2 3 4
Alì
Bob
David
Fëdor
Alì Charlie
Bob
Evgenij
Tipi di abbinamento
• Se | A | > | B | per ogni abbinamento B di G , allora A si dice massimo. La sua cardinalità si indica con μ( G)
Alberto Bruno Claudio
Davide
Anna Bice Carla Daniela
A B C D
1 2 3 4
Alì
Bob
David
Fëdor
Alì Charlie
Bob
Evgenij
• Se G è bipartito, anche A si dice bipartito
• Se | A | = | V |/2, allora A si dice perfetto
Insieme indipendente
Definizione:
Dato un grafo simmetrico G = ( V , E ), si dice indipendente un
qualunque sottoinsieme S di vertici ( A di spigoli) costituito da elementi a due a due non adiacenti.
• L’insieme S è detto stabile (stable set).
• L’insieme A è detto abbinamento (matching).
Definizione:
Un insieme indipendente X si dice massimale se ogni elemento di
V – X (di E – X ) risulta adiacente ad almeno un elemento di X .
Un insieme indipendente X* si dice massimo se | X* | > | X | per ogni
insieme indipendente di G .
Esempi
Osservazione: Ø è indipendente
stabile massimale
Esempi
stabile massimale, ma non massimo
abbinamento massimale
Esempi
stabile massimale, ma non massimo
abbinamento massimale, ma non massimo
Copertura
Definizione:
Dato un grafo simmetrico G = ( V , E ), diremo copertura un qualunque sottoinsieme T di vertici ( F di spigoli) tale che ogni spigolo di E (vertice di V ) incide su almeno un elemento di T (di F ).
• L’insieme T è detto trasversale (vertex-cover).
• L’insieme F è detto edge-cover.
Definizione:
Una copertura X si dice minimale se X – { x } non è una copertura, per ogni x X .
Una copertura X* si dice minima se | X* | < | X | per ogni copertura di
G .
Esempi
Osservazione: V e E sono rispettivamente trasversale e edge-cover
trasversale minimale
Esempi
trasversale minimale, ma non minimo
edge-cover minimale
Esempi
trasversale minimale, ma non minimo
edge-cover minimale, ma non minimo
Disuguaglianze duali deboli
D’ora in avanti indicheremo la cardinalità di:
• un insieme stabile massimo di G con il simbolo ( G )
• un abbinamento massimo di G con il simbolo μ( G )
• uno edge-cover minimo di G con il simbolo ( G )
• un insieme trasversale minimo di G con il simbolo ( G ).
Teorema Per ogni grafo G valgono le seguenti diseguaglianze:
( G ) < ( G ) μ( G ) < ( G )
(diseguaglianze duali deboli).
Disuguaglianze duali deboli
Dimostrazione
Siano rispettivamente X V , Y E un insieme indipendente e una copertura di G .
Poiché Y copre V , ogni elemento x di X incide su almeno un elemento y di Y .
D’altronde nessun y Y copre contemporaneamente due elementi di X , altrimenti questi sarebbero adiacenti, e dunque X non sarebbe
indipendente.
Quindi esiste un distinto y Y per ogni x X , e di conseguenza | X | < | Y |
Riscrivendo questa relazione per X* e Y* si ottiene
( G ) < ( G )
Scambiando poi il ruolo di V ed E si ottiene
μ( G ) < ( G )
Disuguaglianze duali deboli
Esempio
trasversale e
abbinamento
Disuguaglianze duali deboli
Esempio
Forse valgono sempre con il segno “=“ ?
stabile ed
edge-cover
Disuguaglianze duali deboli
Esempio
Forse valgono sempre con il segno “=“ ?
NO!!!
Teorema (Gallai 1959).
Per ogni grafo G con n nodi si ha:
(G) + (G) = n (1) Se inoltre G non ha nodi isolati
μ(G) + (G) = n (2)
Teorema di Gallai
Esempio (1)
Teorema di Gallai
Esempio (2)
Teorema (Gallai 1959).
Per ogni grafo G con n nodi si ha:
(G) + (G) = n (1) Se inoltre G non ha nodi isolati
μ(G) + (G) = n (2)
Dimostrazione (I)
Dimostrazione:
(1) Sia S stabile in G . Allora V – S è un trasversale di G
S
Se |S*| = (G), allora (G) < |V – S*| = n – (G) .
Viceversa, se T è un trasversale, V – T è stabile in G
Posto quindi (G) = |T*| , si ha
(G) > |V – T*| = n – (G)
che insieme a
(G) < |V – S*| = n – (G)
dimostra
(G) = n – (G)
T
non coperto da T
Dimostrazione (II)
(2) G privo di nodi isolati, A abbinamento di G , V A insieme dei nodi saturi rispetto ad A
V A
H insieme minimale di archi di G tale che ogni nodo in V – V A è estremo di qualche arco in H.
|H| = |V – V A | = n – 2 |A|
Osservazione:
C = A H è un edge-cover
Dimostrazione (III)
Quindi
1. Scelgo un abbinamento A di cardinalità pari a μ(G)
2. Costruisco l’insieme C = A H
Dimostrazione (IV)
Poiché C è un edge-cover, si ha |C| > (G)
Pertanto
(G) < |C| = |A| + |H| = n – μ(G)
Dimostrazione (V)
Sia C un edge-cover di G , con |C| = (G)
Sia H = (V, C) il sottografo indotto da C
Valgono le seguenti proprietà:
1) H è un grafo aciclico
Difatti, se H contenesse cicli allora C non sarebbe un edge-
cover minimo (l’arco rosso di figura può essere rimosso)
Dimostrazione (VI)
2) Ogni cammino in H ha al più 2 spigoli
Difatti, se esiste un cammino con 3 spigoli, posso rimuovere
sempre un arco in modo da avere un edge-cover, contraddicendo il fatto che C è minimo
Osservazione
Dalle proprietà 1) e 2) deduco che H è un grafo costituito da n
vertici, (G) spigoli, decomponibile in N componenti componenti
connesse aventi la forma di “stella”
Dimostrazione (VII)
Consideriamo la componente i -esima di H
In generale, essa avrà ha s i nodi e s i – 1 archi Quindi
1<i<N s i = n
1<i<N (s i – 1) = 1<i<N s i – N = (G).
Allora N = n – (G) .
Sia A un abbinamento con uno spigolo per ogni componente di H.
Si ha
μ(G) > |A| = n – (G)
che con (G) < n – μ(G) fornisce la tesi.
Formulazioni di PLI: Massimo Stabile
n i
x
E j
i x
x
x
S i
x
i
j i
n
i
i i
,..., 1
}, 1 , 0 {
) ,
(
1 st
max
altrimenti
0
vertice il
se 1
1
=
+
=Dati
G ( V, E ) , | V |= n, | E |= m
Variabili decisionali
Formulazione
Rilassamento Lineare
n i
x
E j
i x
x
x
i
j i
n
i
i
,..., 1
, 0
) ,
(
1 st
max
1
=
+
=
Osservazione:
La limitazione x
i< 1 può essere omessa
Indichiamo con
RL( G ) il valore della soluzione ottima del rilassamento lineare
STAB
RLFormulazioni di PLI: Minimo edge-cover
m e
y
V i
y
y
C e
y
e
e i
e
E e
e e
,..., 1
}, 1 , 0 {
1
st
min
altrimenti
0
arco l'
se 1
) (
=
Variabili decisionali
Formulazione
Rilassamento lineare
m e
y
V i
y
y
e
e i
e
E e
e
,..., 1
, 0
1
st
min
) (
=
Osservazione:
La limitazione y
e< 1 può essere omessa
Indichiamo con
RL( G ) il valore della soluzione ottima del rilassamento lineare
EDGE-C
RLDualità
Osservazione:
STAB
RLe EDGE-C
RLcostituiscono una coppia primale-duale
Inoltre:
( G ) <
RL( G )
RL( G ) < ( G )
Allora:
( G ) < RL ( G ) = RL ( G ) < ( G )
Formulazioni di PLI: Massimo Matching
m e
y
n i
y
y
A e
y
e i e
e E e
e e
,..., 1
}, 1 , 0 {
,..., 1
1
st
max
altrimenti
0
arco l'
se 1
) (
=
=
Variabili decisionali
Formulazione
Rilassamento Lineare
max y
ee E
st
y
ee ( i)