ESERCIZIO 1:
PROVA DI OTTIMALITÀ:
Sia T l'albero ricoprente di cui voglio dimostrare
l'ottimalità.
Per ogni arco
fornisco
un taglio
tale che
Consideriamo ora una seconda via per certificare
l'ottimalità di un albero ricoprente T:
si dà una familia
di n-1 sottoinsiemi propri
di V(G) dove
ciascun Si è ottenuto da Si-1tramite l'aggiunta di un singolo nodo si.
In particolare S1 contiene precisamente
un nodo s1.
Gli archi in T sono pure n-1.
Si richiede che ad ogni arco
sia associato
un taglio Se di
con
e tale che
Osserviamo come la famiglia dei tagli proposti era di fatto ricavata dall'algoritmo di Prim.
L'algoritmo di Kruskal ordina dapprima gli archi per peso non decrescente. Gli archi vengono quindi esaminati uno alla volta seguendo tale ordine ed inclusi nella soluzione se e solo se la loro introduzione non porta alla formazione di circuiti.
Nel proseguio dell'algoritmo
abbiamo deciso di rimuovere dal grafo
quegli archi e la cui aggiunta porterebbe
a dei circuiti Ce con ce > cfper ogni .
Se invece Ce contiene un arco fcon c(f)=c(e) (il caso c(f)>c(e)non può mai verificarsi visto che gli archi
sono stati ordinati per peso non decrescente)
allora l'arco e non viene incluso nella
soluzione ottima ma resta tratteggiato;
l'arco f viene inoltre detto sostituibile (perchè?).
Ciò porta all'ultimo grafo in figura.
Gli archi rimossi non possono appartenere
ad alcuna soluzione ottima.
Per ciascun arco tratteggiato esiste una soluzione
ottima che lo contiene;
tale soluzione verrà
prodotta da Kruskal partendo da un differente
ordinamento non decrescente.
Le quattro soluzioni ottime
sono quindi evidenti nell'ultimo grafo in figura.
L'unico arco che risulta sostituibile è l'arco g.
Gli archi a,b,c e d sono pertanto inclusi
in ogni soluzione ottima.
PROVA DI OTTIMALITÀ:
Sia T l'albero ricoprente di cui voglio dimostrare
l'ottimalità.
Per ogni arco fornisco un circuito Ce tale che
Vorrei infine risolvere il problema ``A MODO MIO'' per arrivare più rapidamente e con maggior incisività a determinarne la soluzione. Incomincio con l'osservare che i due archi di peso 2 sono necessariamente contenuti in ogni soluzione ottimale come dimostrano i tagli indicati in figura. (Ad esempio a pesa strettamente meno degli altri archi incidenti nel suo estremo sinistro). Ogni soluzione ottimale sarà pertanto del tipo dove T'è un albero ricoprente minimo nel grafo ottenuto contraendo gli archi a e bcome suggerito in figura.
Ora è evidente che i due archi di peso 4non possono essere utilizzati in alcuna soluzione ottimale dacchè ad essi preferirò sicuramente gli archi di peso 3. Ed invero, che i due archi di peso 3 erano anch'essi contenuti in ogni soluzione ottimale avrei potuto stabilirlo fin dall'inizio osservando i due tagli indicati nella prossima figura. Contraggo pertanto anche gli archi di peso 3. Ovviamente poi posso togliere i loops: non saranno contenuti in alcuna soluzione ottimale.
È ora evidente che i due archi di peso
6 non possono essere inclusi da alcuna soluzione
ottimale.
Una soluzione ottimale sarà pertanto
del tipo
dove T', albero ottimo nell'ultimo grafo
rappresentato in figura,
sarà costituito da uno dei seguenti quattro
archi g,h,i,l.
Ho pertanto 4 soluzioni ottime.
ESERCIZIO 2:
Ci sono 4 accoppiamenti perfetti in tutto:
quello che contiene l'arco a, che pesa 14
quello che contiene l'arco b, che pesa 15
quello che contiene l'arco c, che pesa 15
quello che non contiene né a, né b, né c,
che pesa 22.
Pertanto ho un solo accoppiamento perfetto ottimo: quello che contiene l'arco a. Una prova alla Edmonds della sua ottimalità è data dalla soluzione duale indicata in figura cui corrispondono i costi ridotti lì riportati.
È poi facile verificare come negli
archi a costo ridotto nullo (terzo grafo in figura),
vivano solamente due accoppiamenti perfetti:
quello comprendente l'arco a
e quello che non contiene né a, né b, né c.
Di questi due,
solo il primo verifica la condizione di prendere
precisamente un arco dal taglio dispari a variabile
duale positiva ed indicato in figura dalla circonferenza
tratteggiata.
Pertanto solo l'accoppiamento comprendente l'arco a
è ottimo.
ESERCIZIO 3:
Per trovare l'alborescenza dei cammini minimi da sutilizzo l'algoritmo di Ford. Per ogni nodo devo registrare il costo del miglior cammino trovato ed il padre (nodo precedente) lungo tale cammino.
Ora che tutti gli archi sono conformi, tutti i costi ridotti saranno non negativi. Converrà pertanto cercare l'alborescenza dei cammini minimi da ted il cammino minimo da u a tnel grafo dei costi ridotti. Ecco pertanto la risposta alle ulteriori due domande.
ESERCIZIO 4:
Un accoppiamento di cardinalità massima è dato in figura assieme ad una prova di Tutte-Berge della sua ottimalità:
Quando i 3 nodi circolettati vengono rimossi, mi ritrovo con 5 componenti dispari. Pertanto ogni accoppiamento avrà nodi esposti in almeno due delle componenti dispari sopra individuate.
Per dimostrare che una copertura per nodi richiede almeno cinque nodi si consideri il seguente sottografo (a destra) del grafo proposto (a sinistra).
Una copertura per nodi dovrà prendere
almeno due nodi da ogni triangolo
ed almeno un estremo dell'arco isolato.
Una copertura di 5 nodi è inoltre indicata
in figura.
Il grafo proposto in questo esercizio
costringerà l'algoritmo di Edmonds
a contrarre almeno un ``blossom''
poichè altrimenti l'algoritmo terminerebbe
con una dimostrazione in termini di copertura
per nodi che noi abbiamo appena dimostrato non esistere.
Un esempio di grafo non bipartito dove peró la cardinalità massima di un accoppiamento pareggia la cardinalità minima di una copertura per nodi é il seguente:
22 Maggio 1998 |
© Dipartimento di Matematica - Università di Trento |