22
AN OPTIMAL ALGORITHM FOR ON-LINE BIPARTITE MATCHING Dall’articolo scritto da: Karp, Umesh e Vijay Vazirani

An Optimal Algorithm for On-Line Bipartite Matching

Embed Size (px)

Citation preview

Page 1: An Optimal Algorithm for On-Line Bipartite Matching

AN OPTIMAL ALGORITHM FOR ON-LINE BIPARTITE

MATCHING

Dall’articolo scritto da: Karp, Umesh e Vijay Vazirani

Page 2: An Optimal Algorithm for On-Line Bipartite Matching

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)}

Page 3: An Optimal Algorithm for On-Line Bipartite Matching

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

Page 4: An Optimal Algorithm for On-Line Bipartite Matching

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.

Page 5: An Optimal Algorithm for On-Line Bipartite Matching

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

Page 6: An Optimal Algorithm for On-Line Bipartite Matching

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.

Page 7: An Optimal Algorithm for On-Line Bipartite Matching

Algoritmi per il matching

Algoritmi on-line

Algoritmi off-line

Page 8: An Optimal Algorithm for On-Line Bipartite Matching

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!

Page 9: An Optimal Algorithm for On-Line Bipartite Matching

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.

Page 10: An Optimal Algorithm for On-Line Bipartite Matching

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)

Page 11: An Optimal Algorithm for On-Line Bipartite Matching

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)

Page 12: An Optimal Algorithm for On-Line Bipartite Matching

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.

Page 13: An Optimal Algorithm for On-Line Bipartite Matching

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.

Page 14: An Optimal Algorithm for On-Line Bipartite Matching

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|]

Page 15: An Optimal Algorithm for On-Line Bipartite Matching

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.

Page 16: An Optimal Algorithm for On-Line Bipartite Matching

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

Page 17: An Optimal Algorithm for On-Line Bipartite Matching

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)

Page 18: An Optimal Algorithm for On-Line Bipartite Matching

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)

Page 19: An Optimal Algorithm for On-Line Bipartite Matching

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.

Page 20: An Optimal Algorithm for On-Line Bipartite Matching

Algoritmi on-line per il matching bipartito

Allora Ranking è sicuramente l’algoritmoon-line di matching bipartito ad averele migliori performance.

Page 21: An Optimal Algorithm for On-Line Bipartite Matching

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.

Page 22: An Optimal Algorithm for On-Line Bipartite Matching

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?