AN OPTIMAL ALGORITHM FOR ON-LINE BIPARTITE
MATCHING
Dall’articolo scritto da: Karp, Umesh e Vijay Vazirani
I Grafi
Un grafo è un insieme di elementi detti nodi o vertici collegati fra loro da archi.Più formalmente, si dice grafo una coppiaordinata G =(V,E) di insiemi, con V insieme dei nodi ed E insieme degli archi, tali che gli elementi di E siano coppie di elementi di V.
a
b
c
de V = {a, b, c, d, e}
E = {(a,b), (a,c), (b,c), (b,d), (d,e)}
Grafi Bipartiti
Un grafo si dice bipartito se esiste unapartizione (V
1, V
2) di V tale che ogni
arco [i, j] ϵ E collega un vertice i ϵ V1
ad un vertice j ϵ V2.
a
b
c
1
2
3
Grafi Bipartiti
Si dimostra che G è bipartito se e solose non contiene cicli dispari, cioè cicliformati da un numero dispari di lati.In generale sono grafi bipartiti:• i grafi non orientati aciclici, quindi anche gli alberi;
• i grafi ciclici con un numero pari di vertici.
Matching in un Grafo Bipartito
Dato un grafo bipartito con sottoinsiemi V1
e V2, si dice matching completo di V
1 in V
2
un insieme di archi senza estremi in comune,aventi la caratteristica di collegare ciascun elemento di V
1con un elemento di V
2, allora
|V1|<=|V
2|.
a
b
1
2
3
Matching in un Grafo Bipartito
Si ha un matching perfetto, invece, nel casodi un matching completo e |V
1|=|V
2|.
a
b
c
1
2
3
Si ha un matching massimale quando l’insieme M degli archi partecipanti al matching èmassimo.
Algoritmi per il matching
Algoritmi on-line
Algoritmi off-line
Let’s start!
1
2
3
4
a
b
c
d
B
abcd
1 2 3 4
1 1 0 0
1 1 0 0
0 1 1 1
0 1 1 1
Ottenere un matching on-line massimizzato!
Algoritmi deterministici
Un algoritmo Greedy, è quindi deterministico,assegna sempre, se è possibile, una girl ad unboy, scelto tra quelli idonei. Allora ilmatching ottenuto sarà al minimo di n/2.
a
b
c
d
1 2 3 4
1 1 1 1
0 1 1 1
0 0 1 1
0 0 1 1
n/2n/2un avversario può limitare qualsiasi algoritmo deterministico ad un matching di n/2.
Randomized VS Adaptive
a
b
c
d
1 2 3 4
0 0 0 1
0 1 0 1
1 1 0 1
1 1 0 1
1 2 3 4
a
b
c
d
0 0 0 1
0 1 0 0
0 0 0 0
1 0 0 0
n/2 + O(logn)
Algoritmo Ranking
Inizializzazione: sceglieuna permutazione randomdei nodi boy e assegna adognuno di essi una priorità
Matching: all’arrivo di ogninodo girl, esso viene accoppiato con il boy idoneoavente priorità più alta(se ne esistono)
Algoritmo Ranking
Perché scegliere un algoritmo Ranking e nonRandom?
Mentre Random ha praticamente le stesseperformance, scarse, di un algoritmodeterministico greedy, Ranking ha prestazionimigliori dato che contiene un meccanismo implicito che tende a favorire quei nodiattualmente idonei che non lo sono statispesso in passato.
Considerazioni...
Supponiamo che le colonne siano ordinate in ordine crescente di priorità e che le righe arrivino in ordine random e vengano accoppiate alla colonna idonea con priorità più alta.
Allora:•l’insieme di girls accoppiate dal Ranking è unsuperset di qualsiasi altro algoritmo che prevede il rifiuto;
•la dimensione del matching prodotto dal Rankingè minima per alcune matrici triangolari superiori.
Caso Pessimo e Performance
Dimostrando che il matching tramiteRanking è minimo nel caso di matrici triangolari superiori complete si dimostraanche che esso garantisce le migliori performance.
|M|=(n+|D|)/2 E[|M|] = n/2+1/2 E[|D|]
Algoritmo Early
Allo scopo di an
alizzare le perfo
rmance
dell’algoritmo R anki
ng è utile considerar
e
una sua variant
e chiamata Ear
ly.
Tale variante rifiuta di accoppiare la rigai se arriva dopo che la colonna i è giàstata accoppiata.
Algoritmo Early
Attraverso Early è possibile trovare un lower–bound per E[|M|] calcolando unlower-bound per E[|D|].
wit
= Pr[W(σ,i) = t]
Pr[la riga i e la colonna i vengono entrambe
accoppiate] = ∑t/n wit
E[|D|] = ∑t/n wt
t
wt= ∑ wi
ti
La dimensione minima del matching sarà
(2-√2)n
Algoritmo Early
L’analisi effettuata parte dall’assunzionepessimistica che le prime an righe ad arrivare saranno tutte accoppiate.
Tuttavia nella realtà è improbabile che ciò avvenga.
Eseguendo, allora, un’analisi più precisa si ottiene tale risultato: n(1-1/e)+O(n)
Algoritmo Early e Ranking
Dato che l’algoritmo Early è un algoritmo che prevede il rifiuto rispetto al Ranking, possiamo dire che il matching prodotto da quest’ultimo, su una matrice B nxn per il quale il matching massimo è m<=n, sarà al minimo pari ad m(1-1/e)+O(m)
Algoritmi on-line per il matching bipartito
L’algoritmo Random ha le stesse performance del Ranking su una matrice T triangolaresuperiore completa. Tuttavia per il Rankingoperare su T costituisce il caso pessimo.
Algoritmi on-line per il matching bipartito
Allora Ranking è sicuramente l’algoritmoon-line di matching bipartito ad averele migliori performance.
Algoritmi on-line per il matching bipartito
Inoltre, dato che gli algoritmi Greedy hanno le stesse performance dell’algoritmoRandom, essi sono sicuramente i migliorialgoritmi deterministici di matchingbipartito on-line.
Open Questions
Nell’ambito di questo studi rimangonocomunque delle domande aperte a cui dover dare ancora una risposta:• dare in input una matrice triangolare superiore completa è il caso peggiore per il Ranking?
• il Ranking è un algoritmo on-line ottimo anche per il matching in grafi non bipartiti?