SlideShare a Scribd company logo
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 coppia
ordinata 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.

b
a

d

c

e 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 una
partizione (V1, V2) 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 solo
se non contiene cicli dispari, cioè cicli
formati 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 V1 in V2
un insieme di archi senza estremi in comune,
aventi la caratteristica di collegare ciascun
elemento di V1 con un elemento di V2, allora
|V1|<=|V2|.
1

a

b

2
3
Matching in un Grafo
Bipartito
Si ha un matching perfetto, invece, nel caso
di un matching completo e |V1|=|V2|.
Si ha un matching massimale quando l’insieme
M degli archi partecipanti al matching è
massimo.
1
a

b

2

c

3
Algoritmi per il matching
Algoritmi
on-line

Algoritmi
off-line
Let’s start!
a

1

b

2

c

3

d

4

B 1 2 3 4

a
b
c
d

1

1

0 0

1

1

0 0

0 1
0 1

1
1

Ottenere un matching on-line
massimizzato!

1
1
Algoritmi deterministici
Un algoritmo Greedy, è quindi deterministico,
assegna sempre, se è possibile, una girl ad un
boy, scelto tra quelli idonei. Allora il
matching ottenuto sarà al minimo di n/2.
a

1
1

2
1

b 0 1
c 0 0
d 0 0

3
1

4
1

1

1

1

1

1

1

n/2
n/2

un avversario può
limitare qualsiasi
algoritmo
deterministico ad un
matching di n/2.
Randomized VS Adaptive
1 2 3 4
a
b
c
d

0
0
1
1

0
1
1
1

0
0
0
0

1
1
1
1

1 2 3 4
a
b
c
d

0
0
0
1

0
1
0
0

0
0
0
0

n/2 + O(logn)

1
0
0
0
Algoritmo Ranking
Inizializzazione: sceglie
una permutazione random
dei nodi boy e assegna ad
ognuno di essi una priorità
Matching: all’arrivo di ogni
nodo girl, esso viene
accoppiato con il boy idoneo
avente priorità più alta
(se ne esistono)
Algoritmo Ranking
Perché scegliere un algoritmo Ranking e non
Random?
Mentre Random ha praticamente le stesse
performance, scarse, di un algoritmo
deterministico greedy, Ranking ha prestazioni
migliori dato che contiene un meccanismo
implicito che tende a favorire quei nodi
attualmente idonei che non lo sono stati
spesso 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 è un
superset 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 tramite
Ranking è minimo nel caso di matrici
triangolari superiori complete si dimostra
anche che esso garantisce le migliori
performance.
|M|=(n+|D|)/2

E[|M|] = n/2+1/2 E[|D|]
Algoritmo Early
rmance
e perfo
zzare l
li
derare
di ana
e consi
è util
o scopo
All
anking
R
Early.
oritmo
iamata
dell’alg
nte ch
a varia
una su
Tale variante rifi
uta di accoppiare
la riga
i se arriva dopo
che la colonna i
è già
stata accoppiata
.
Algoritmo Early
Attraverso Early è possibile trovare un
lower–bound per E[|M|] calcolando un
lower-bound per E[|D|].
wit

= Pr[W(σ,i) = t]

Pr[la riga i e la colonna i
vengono entrambe
accoppiate] = ∑t/n wit

wt = ∑ wit
i

E[|D|] = ∑t/n wt
t

La dimensione minima del matching sarà
(2-√2)n
Algoritmo Early
L’analisi effettuata parte dall’assunzione
pessimistica 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 triangolare
superiore completa. Tuttavia per il Ranking
operare su T costituisce il caso pessimo.
Algoritmi on-line per il
matching bipartito
Allora Ranking è sicuramente l’algoritmo
on-line di matching bipartito ad avere
le migliori performance.
Algoritmi on-line per il
matching bipartito
Inoltre, dato che gli algoritmi Greedy
hanno le stesse performance dell’algoritmo
Random, essi sono sicuramente i migliori
algoritmi deterministici di matching
bipartito on-line.
Open Questions
Nell’ambito di questo studi rimangono
comunque 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?

More Related Content

PPTX
Disequazioni con il modulo
PDF
Linee algoritmo di Brensenham
ODP
Somma matrici
PPT
Parallel Sparse Matrix Vector Multiplication Using CSB
PPT
Le proprietà delle proporzioni
PPT
Calcolo proporzioni
PPT
Gli insiemi q e r
PPT
Rapporti e proporzioni 2013
Disequazioni con il modulo
Linee algoritmo di Brensenham
Somma matrici
Parallel Sparse Matrix Vector Multiplication Using CSB
Le proprietà delle proporzioni
Calcolo proporzioni
Gli insiemi q e r
Rapporti e proporzioni 2013

Viewers also liked (8)

PDF
A Data Structure for Manupulating Priority Queues
PDF
I 6 gradi di separazione della cultura. Da CLAPie al resto del mondo.
PPT
Networks Reti
PDF
Facebook Open Graph: Tutto il web in un Grafo! - Daniele Ghidoli - Be-wizard ...
PPTX
Algoritmi e Calcolo Parallelo 2012/2013 - Grafi
PPT
Facebook e la teoria dei grafi
PDF
Guida all'estrazione di dati dai Social Network
PDF
Focus Junior - 14 Maggio 2016
A Data Structure for Manupulating Priority Queues
I 6 gradi di separazione della cultura. Da CLAPie al resto del mondo.
Networks Reti
Facebook Open Graph: Tutto il web in un Grafo! - Daniele Ghidoli - Be-wizard ...
Algoritmi e Calcolo Parallelo 2012/2013 - Grafi
Facebook e la teoria dei grafi
Guida all'estrazione di dati dai Social Network
Focus Junior - 14 Maggio 2016
Ad

Similar to An Optimal Algorithm for On-Line Bipartite Matching (18)

PPTX
Fondamenti di algebra lineare, parte 1: vettori e matrici
PDF
Metodi matematici per l’analisi di sistemi complessi
PPT
Schema Risolutivo Delle Serie
PPTX
Syntactical errors detection 1
PPTX
Fondamenti di algebra lineare, parte 2: sistemi lineari, autovalori e autovet...
PDF
Invarianza di un politopo
ODP
Elliptic Curve Method di Lenstra
PDF
Appunti di Elaborazione automatica dei dati: matrici e matlab
PPTX
La rasterizzazione
PDF
Codici di Reed-Solomon
PPTX
Successioni e laboratorio1617
PPT
Gli insiemi n e z
PDF
Appunti di Elaborazione automatica dei dati: il simplesso
PDF
Lezione 8 (12 marzo 2012)
PPT
Appendice 1.2.1 geoanalitica equaz. disequazioni lineari
PPT
Minimiemassimi
PDF
Lezione 23 (9 maggio 2012)
PDF
Problemi np con esempio
Fondamenti di algebra lineare, parte 1: vettori e matrici
Metodi matematici per l’analisi di sistemi complessi
Schema Risolutivo Delle Serie
Syntactical errors detection 1
Fondamenti di algebra lineare, parte 2: sistemi lineari, autovalori e autovet...
Invarianza di un politopo
Elliptic Curve Method di Lenstra
Appunti di Elaborazione automatica dei dati: matrici e matlab
La rasterizzazione
Codici di Reed-Solomon
Successioni e laboratorio1617
Gli insiemi n e z
Appunti di Elaborazione automatica dei dati: il simplesso
Lezione 8 (12 marzo 2012)
Appendice 1.2.1 geoanalitica equaz. disequazioni lineari
Minimiemassimi
Lezione 23 (9 maggio 2012)
Problemi np con esempio
Ad

An Optimal Algorithm for On-Line Bipartite Matching

  • 1. AN OPTIMAL ALGORITHM FOR ON-LINE BIPARTITE MATCHING Dall’articolo scritto da: Karp, Umesh e Vijay Vazirani
  • 2. I Grafi Un grafo è un insieme di elementi detti nodi o vertici collegati fra loro da archi. Più formalmente, si dice grafo una coppia ordinata 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. b a d c e V = {a, b, c, d, e} E = {(a,b), (a,c), (b,c), (b,d), (d,e)}
  • 3. Grafi Bipartiti Un grafo si dice bipartito se esiste una partizione (V1, V2) 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
  • 4. Grafi Bipartiti Si dimostra che G è bipartito se e solo se non contiene cicli dispari, cioè cicli formati 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.
  • 5. Matching in un Grafo Bipartito Dato un grafo bipartito con sottoinsiemi V1 e V2, si dice matching completo di V1 in V2 un insieme di archi senza estremi in comune, aventi la caratteristica di collegare ciascun elemento di V1 con un elemento di V2, allora |V1|<=|V2|. 1 a b 2 3
  • 6. Matching in un Grafo Bipartito Si ha un matching perfetto, invece, nel caso di un matching completo e |V1|=|V2|. Si ha un matching massimale quando l’insieme M degli archi partecipanti al matching è massimo. 1 a b 2 c 3
  • 7. Algoritmi per il matching Algoritmi on-line Algoritmi off-line
  • 8. Let’s start! a 1 b 2 c 3 d 4 B 1 2 3 4 a b c d 1 1 0 0 1 1 0 0 0 1 0 1 1 1 Ottenere un matching on-line massimizzato! 1 1
  • 9. Algoritmi deterministici Un algoritmo Greedy, è quindi deterministico, assegna sempre, se è possibile, una girl ad un boy, scelto tra quelli idonei. Allora il matching ottenuto sarà al minimo di n/2. a 1 1 2 1 b 0 1 c 0 0 d 0 0 3 1 4 1 1 1 1 1 1 1 n/2 n/2 un avversario può limitare qualsiasi algoritmo deterministico ad un matching di n/2.
  • 10. Randomized VS Adaptive 1 2 3 4 a b c d 0 0 1 1 0 1 1 1 0 0 0 0 1 1 1 1 1 2 3 4 a b c d 0 0 0 1 0 1 0 0 0 0 0 0 n/2 + O(logn) 1 0 0 0
  • 11. Algoritmo Ranking Inizializzazione: sceglie una permutazione random dei nodi boy e assegna ad ognuno di essi una priorità Matching: all’arrivo di ogni nodo girl, esso viene accoppiato con il boy idoneo avente priorità più alta (se ne esistono)
  • 12. Algoritmo Ranking Perché scegliere un algoritmo Ranking e non Random? Mentre Random ha praticamente le stesse performance, scarse, di un algoritmo deterministico greedy, Ranking ha prestazioni migliori dato che contiene un meccanismo implicito che tende a favorire quei nodi attualmente idonei che non lo sono stati spesso in passato.
  • 13. 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 è un superset di qualsiasi altro algoritmo che prevede il rifiuto; •la dimensione del matching prodotto dal Ranking è minima per alcune matrici triangolari superiori.
  • 14. Caso Pessimo e Performance Dimostrando che il matching tramite Ranking è minimo nel caso di matrici triangolari superiori complete si dimostra anche che esso garantisce le migliori performance. |M|=(n+|D|)/2 E[|M|] = n/2+1/2 E[|D|]
  • 15. Algoritmo Early rmance e perfo zzare l li derare di ana e consi è util o scopo All anking R Early. oritmo iamata dell’alg nte ch a varia una su Tale variante rifi uta di accoppiare la riga i se arriva dopo che la colonna i è già stata accoppiata .
  • 16. Algoritmo Early Attraverso Early è possibile trovare un lower–bound per E[|M|] calcolando un lower-bound per E[|D|]. wit = Pr[W(σ,i) = t] Pr[la riga i e la colonna i vengono entrambe accoppiate] = ∑t/n wit wt = ∑ wit i E[|D|] = ∑t/n wt t La dimensione minima del matching sarà (2-√2)n
  • 17. Algoritmo Early L’analisi effettuata parte dall’assunzione pessimistica 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)
  • 18. 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)
  • 19. Algoritmi on-line per il matching bipartito L’algoritmo Random ha le stesse performance del Ranking su una matrice T triangolare superiore completa. Tuttavia per il Ranking operare su T costituisce il caso pessimo.
  • 20. Algoritmi on-line per il matching bipartito Allora Ranking è sicuramente l’algoritmo on-line di matching bipartito ad avere le migliori performance.
  • 21. Algoritmi on-line per il matching bipartito Inoltre, dato che gli algoritmi Greedy hanno le stesse performance dell’algoritmo Random, essi sono sicuramente i migliori algoritmi deterministici di matching bipartito on-line.
  • 22. Open Questions Nell’ambito di questo studi rimangono comunque 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?