Sistemi di Indipendenza - Dipartimento di Informatica e Sistemistica

Ottimizzazione Combinatoria
Sistemi di Indipendenza
Prof. Antonio Sassano
Dipartimento di Informatica e Sistemistica
Università di Roma “La Sapienza”
A.A. 2010
Sistemi di Indipendenza
• Insieme base Γ = {1,2,…,n} (elementi)
• Insieme delle soluzioni ammissibili
( Fi ⊆ Γ )
S = { F1 , F2 , … , Fm }
• S Sistema di Indipendenza (Independence System)
⇔ T ⊆ Fi
⇒ T∈ S
• B è una Base di S ⇔ B∈S ∧ T⊃ B ⇒ T ∉ S
• C è un Circuito di S ⇔ C∉S ∧ T⊂ C ⇒ T∈S
7
6
1
2
7
6
1
2
4
5
3
6
1
4
3
5
7
2
4
5
3
S
Basi
Circuiti
Sistemi di Indipendenza
T∈S ⇒ T è un indipendente di S
T∉S ⇒ T è un dipendente di S
Le basi definiscono il sistema di indipendenza
T∈S ⇔ { T ⊆ B : B Base di S }
Indipendenti = sottoinsiemi di Γ contenuti in qualche base
.. anche i circuiti definiscono il sistema di indipendenza
T∈S ⇔ { C ⊄ T : C Circuito di S }
Indipendenti = sottoinsiemi di Γ che non contengono
un circuito (ogni dipendente contiene un circuito)
Sistemi di Indipendenza (esempio 1)
S = {insiemi stabili di un grafo G(V,E)}
Insiemi di nodi a coppie non adiacenti
v1
v3
v2
v6
v4
v7
v9
v5
G(N,A)
Elementi = nodi
S = {∅ , { v1 }, {v1 , v2 }, … }
v8
Circuiti = vi vh∈E
T non stabile ⇔
contiene gli estremi di un arco
Basi = stabili massimali
T massimale ⇔
non contenuto propriamente in uno stabile
Sistemi di Indipendenza (esempio 2)
S = {“matching” di un grafo G(V,E)}
Insiemi di archi a coppie non incidenti nello stesso nodo
v1
v6
v3
v2
v4
v7
v9
v5
Elementi = archi
S = {∅ , { v1v2 }, {v3v8},
{ v1v2 ,v3v8}, … }
v8
Circuiti = {ei ,eh} con ei , eh incidenti nello stesso nodo
T non è un “matching” ⇔
(almeno) due archi incidenti
Basi = “matching” massimali
( che non sono contenuti propriamente in un “matching” )
Sistemi di Indipendenza (esempio 3)
S = {insiemi di foreste di un grafo G(V,E)}
Elementi = archi
w
b
a
G(V,E) foresta ∧ F ⊆ E
⇒ H(V,F) foresta
g
d
y
e
Notazione: G(V,F) foresta
⇔ F foresta
Circuito = ciclo
F non è una foresta ⇔ F contiene un ciclo
Base = albero ricoprente
Sistemi di Indipendenza (esempio 4)
S = {insiemi di vettori linearmente indipendenti }
Γ = { v 1 , v 2 ,..., v t } ⊆ R n
Q∈S ⇔
∑λ v
j
j
Elementi = vettori
= 0n ⇒ λ j = 0
j∈Q
∀j
linearmente indipendenti
Circuito =
insieme minimale di vettori linearmente dipendenti
Base =
insieme massimale di vettori linearmente indipendenti
v1 v2 v3 v4
1 -1 -1 0
B = {v 1 ,v 3 ,v 4 }
Base
0
2 1 0 -1 -1
3 0 1 1 0
4 0 0 0 1
v1 v2 v3 v4
v5
0
0
-1
1
1 -1 -1 0
C = {v 1 ,v 2 ,v 3 }
Circuito
2 1
0 -1
3 0 1 1
4 0 0 0
0
-1
0
1
v5
0
0
-1
1
Sistemi di Indipendenza (esempio 5)
S = { insiemi di progetti “compatibili” con un “budget”}
3x1+2x2+x3+2x4 ≤ 5
“risorse” per il progetto
Elementi = progetti
“budget”
S = {∅ , { 1 }, { 2 }, {1 , 2 }, {2, 3, 4 } … }
Indipendenti = soluzioni di “knapsack” a coefficienti positivi
Circuito = un insieme di progetti non “compatibile”
{1 , 2 , 3}
ma tale che ogni sottoinsieme è “compatibile”
Base = insieme di progetti “compatibile” massimale
{1 , 4 }
Sistemi di Indipendenza (esempio 5)
S = { sotto-sistemi di disequazioni ammissibili }
(a)
(b)
(c)
(d)
(e)
(f)
x1-x2
x2-x3
x3-x1
x1-x4
x4-x5
x5-x1
≤
≤
≤
≤
≤
≤
1
-3
1
-2
1
0
Elementi = disequazioni
non ammissibile
Circuito = un insieme di disequazioni non ammissibile
{a,b,c} ma tale che ogni sottoinsieme è ammissibile
Base = insieme di disequazioni ammissibile massimale
{a,b,e,f}
Sistemi di Indipendenza (esempio 6)
Grafo connesso G(N,A)
S = { insiemi di archi la cui rimozione non
disconnette il grafo G(N,A) }
v3
v8
v2
v6
v9
v1
v5
Elementi = archi
v4
G(N,A)
S = {∅ , {v1v8 }, {v1v8 ,v2v3},… }
v7
T∈S ⇔ H ( N ,T ) connesso
Circuiti = Tagli minimali
( non contengono propriamente un taglio)
Base = Complemento di un albero ricoprente
Sistemi di Indipendenza - Rango
r(X) rango di un sottoinsieme X ⊆ Γ
= max { | T |: T ⊆ X , T è un indipendente di S }
• r(∅ ) = 0 e per X,Y ⊆ Γ
• r(X ) ≤ r(Y) se X ⊆ Y [non-decrescente]
• r(X) = IXI se e solo se X∈S
• r(X )= IXI -1 ∧ r(X -{e} ) = IXI -1 ∀ e∈X
se e solo se X è un circuito
S
r(A)=2
B
A
r(B)=0
Sistemi di Indipendenza – Rango (esempi)
v3
v1
v2
Insiemi stabili
v6
• r(X) = α(X)
v4
v7
v9
v5
G(N,A)
H
v8
K
v3
v1
v6
v4
v2
v7
v9
H
v5
v8
K
numero di stabilità
• r(H) = 2 (ciclo)
• r(K) = 1 (“clique”)
“matching”
• r(X) = ν(X)
“matching number”
• r(H) = 2
• r(K) = 1
Sistemi di Indipendenza – Rango (esempi)
w
Foreste
b
a
T’
g
T°
d
y
e
• r(T’) = 4
• r(T°) = 6 (“spanning tree”)
Pianificazione degli Investimenti o “knapsack”
3x1+2x2+x3+2x4 ≤ 5
H = { 1, 2 , 3 }
K = { 1, 2 }
• r(H) = 2
• r(K) = 2
Sistemi di Indipendenza – Rango (esempi)
Sotto-sistemi di disequazioni ammissibili
x1-x2 ≤ 1
non ammissibile
x2-x3 ≤ -3
x3-x1 ≤ 1
ammissibile
x1-x4 ≤ -2
(a) x1-x2 ≤ 1
x4-x5 ≤ 1
(b) x2-x3 ≤ -3
x5-x1 ≤ 0
(d) x1-x4 ≤ -2
r({a,b,c}) = 2 (circuito) (e) x4-x5 ≤ 1
r({d,e,f}) = 2 (circuito)
r({a,b,d,e}) = 4 (base)
r({a,b,c,d,e}) = 4
(a)
(b)
(c)
(d)
(e)
(f)
Massimo Sottoinsieme Indipendente
max { c(F): F è un indipendente di S }
Problema di Ottimizzazione Combinatoria con funzione obiettivo lineare
F* ottimo ⇒ c(F*) ≥ c(F) F∈S
h∈F* ⇒ Ch ≥ 0 [ se Ch < 0 ⇒ c(F*- {h})> c(F*) CONT. ]
⇒ possiamo eliminare gli elementi con peso negativo
Esempi:
• Insieme stabile (o “matching”) di massimo peso
• Albero ricoprente di massimo peso
• Insieme di archi di costo massimo che non sconnette il grafo
• Insieme di archi di costo minimo di un sottografo connesso
(complemento del precedente)
• Soluzioni di “knapsack” a coefficienti positivi
insieme di progetti a vantaggio massimo
Il Rango caratterizza S
TEOREMA I1:
F∈S ⇔ | F∩ X | ≤ r(X) ∀ X ⊆ Γ
DIMOSTRAZIONE:
Se F∈S ⇒ (F∩ X )∈ S ∀ X ⊆ Γ ⇒
⇒ | F∩ X | = r(F∩ X ) ≤ r(X) ∀ X ⊆ Γ
rango non decrescente
Per il viceversa dobbiamo dimostrare che:
F∉S ⇒ ∃ X ⊆ Γ : | F∩ X | > r(X)
e infatti, se F∉S ⇒ |F| > r(F)
⇒
⇒
per X = F abbiamo | F∩ X |=|F| >r(F)= r(X)
∃ X ⊆ Γ : | F∩ X | > r(X)
Formulazione Rango
(MIS) max { c(F): F è un indipendente di S }
Problema di Ottimizzazione Combinatoria con funzione obiettivo lineare
S = { x: vettore di incidenza di F∈S }
Abbiamo dimostrato che:
F∈S ⇔ | F∩ A | ≤ r(A) ∀ A ⊆ Γ
| F∩ A |= prodotto interno dei vettori di incidenza di F ed A
1 
0 
xF =  
1 
 
1 
1 
1 
xA =  
0 
 
1 
x∈S ⇔
| F∩ A | =
(xF)T(xA)
F A
F
x
x
x
=
= ∑ e e ∑ e
e∈Γ
∑x
e∈A
e
≤ r( A)
∀ A⊆Γ
e∈A
Formulazione Rango
(MIS) max { c(F): F è un indipendente di S }
Problema di Ottimizzazione Combinatoria con funzione obiettivo lineare
S = { x: vettore di incidenza di F∈S }
FORMULAZIONE:
 ∑ x e ≤ r ( A ), ∀A ⊆ Γ
e∈A
PR = 
 x e ≥ 0 , e ∈ Γ
(MIS)
max cT x
x ∈ PR ∩ {0 ,1}
|Γ |
PR rilassamento
formulazione ottima
Formulazione Circuiti
F∈S ⇔ { C ⊄ F : C Circuito di S }
C Circuito di S ⇒ r(C)=|C|-1
 ∑ xe ≤ | C | −1, C circuito
e∈C
PC = 
 ∑ xe ≤ r ( A ), ∀A ⊆ Γ
e∈A
P
⊃
P
=

 xe ≥ 0 , e ∈ Γ
C
R
x ≥ 0, e ∈ Γ

TEOREMA I2:
F∈S ⇔ xF∈PC
DIMOSTRAZIONE:
(PC
e
≥
∈Γ
è una FORMULAZIONE)
F∈S ⇒ xF∈PR ⇒ xF∈PC
Se viceversa F∉S ⇒ esiste un circuito C⊆ F ⇒
F
F
⇒ xe = 1 ∀e ∈ C ⇒ ∑ xe =| C | ⇒ xF∉ PC
e∈C
PC rilassamento formulazione ottima
Formulazione Circuiti (Insieme stabile)
S = {insiemi stabili di un grafo G(V,E)}
Insiemi di nodi a coppie non adiacenti
v1
v3
v2
v6
v4
v7
v9
v5
G(N,A)
v8
Elementi = nodi
S = {∅ , { v1 }, {v1 , v2 }, … }
Circuiti = vi vh∈E
 x u + x v ≤ 1 , uv ∈ E
PC = 
u ∈V
 xu ≥ 0 ,
Formulazione circuiti (“matching”)
S = {“matching” di un grafo G(V,E)}
Insiemi di archi a coppie non incidenti nello stesso nodo
v1
v6
v3
v2
v4
v7
v9
v5
v8
Elementi = archi
S = {∅ , { v1v2 }, {v3v8},
{ v1v2 ,v3v8}, … }
Circuiti = {e ,f} con e, f incidenti nello stesso nodo
 x e + x f ≤ 1, e , f ∈ δ ( v ) v ∈ V
PC = 
 x f ≥ 0, f ∈ E
Formulazione ottima se e solo se il grafo è bipartito
Formulazione Circuiti (Foreste)
S = {insiemi di foreste di un grafo G(V,E)}
Elementi = archi
Circuito = ciclo
w
b
a
S
g
d
y
e
∑ x e ≤ | C | −1, C ciclo
e∈C
PC = 
 x e ≥ 0 , e ∈ E
Formulazione ottima!
Formulazione “Cover” (“Knapsack”)
S = { insiemi di progetti “compatibili” con un “budget”}
3x1+2x2+x3+2x4 ≤ 5
“risorse” per il progetto
Elementi = progetti
“budget”
S = {∅ , { 1 }, { 2 }, {1 , 2 }, {2, 3, 4 } … }
Indipendenti = soluzioni di “knapsack” a coefficienti positivi
Circuito (“Cover”) = un insieme di progetti non
“compatibile” ma tale che ogni sottoinsieme è “compatibile”
∑ x e ≤ | C | −1, C " cover"
e∈C
PC = 
 x e ≥ 0 , e ∈ Γ
Formulazione tagli (“grafo co-connesso”)
Grafo connesso G(N,A)
S = { insiemi di archi la cui rimozione non
disconnette il grafo G(N,A) }
v3
v8
v2
v6
v4
v9
v1
v5
G(N,A)
v7
Elementi = archi
S = {∅ , { sv1 }, {sv1 ,v2v3}, … }
T∈S ⇔ H ( N ,T ) connesso
Circuiti = Tagli minimali
 ∑ x e ≤ | K | −1, K taglio
e∈K
PC = 
 x e ≥ 0 , e ∈ E
Formulazione Circuiti: “grafo senza cicli negativi”
Grafo connesso G(N,A)
ce costo di un arco e∈A
S = { insiemi di archi che non contengono cicli
a costo totale negativo
A
B
(324,2500)
(-186,7600)
 x AB + x BA ≤ 1

 x BA + x AC + xCB ≤ 2
.....

e
<0
Elementi = archi
(424,3600)
(-326,5600)
∑c
e∈C
(-126,3600)
(44,1600)
}
C
Circuito = ciclo (orientato)
a costo totale negativo
 ∑ xe ≤ | C | −1, C ciclo negativo
e∈C
PC = 
 xe ≥ 0 ,
e ∈ E Formulazione circuiti
Nel grafo dell’esempio
Formulazione circuiti - complessità
Quanti vincoli nelle formulazioni circuiti?
 x u + x v ≤ 1 , uv ∈ E
PC = 
u ∈V
 xu ≥ 0 ,
Insieme stabile: | V |2
 x e + x f ≤ 1, e , f ∈ δ ( v ) v ∈ V
PC = 
 x f ≥ 0, f ∈ E
“matching”: | E |2
∑ x e ≤ | C | −1, C ciclo

PC = e∈C
 x e ≥ 0 , e ∈ E
Cicli, “Cover” e Tagli
possono essere in numero esponenziale!
∑ x e ≤ | C | −1, C " cover"

PC = e∈C
 x e ≥ 0 , e ∈ Γ
 ∑ x e ≤ | K | −1, K taglio

PC = e∈K
 x e ≥ 0 , e ∈ E
Non possiamo neanche “scrivere” il
rilassamento lineare!
Un grafo planare con n nodi può
contenere 2.27n cicli n=100 ⇒ 1034 cicli!!
Abbiamo bisogno di potenziare il
Metodo del Simplesso (per la PL)
Metodo del Simplesso Dinamico