SlideShare ist ein Scribd-Unternehmen logo
1 von 22
Downloaden Sie, um offline zu lesen
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?

Weitere ähnliche Inhalte

Andere mochten auch

A Data Structure for Manupulating Priority Queues
A Data Structure for Manupulating Priority QueuesA Data Structure for Manupulating Priority Queues
A Data Structure for Manupulating Priority QueuesTiziana Spata
 
I 6 gradi di separazione della cultura. Da CLAPie al resto del mondo.
I 6 gradi di separazione della cultura. Da CLAPie al resto del mondo.I 6 gradi di separazione della cultura. Da CLAPie al resto del mondo.
I 6 gradi di separazione della cultura. Da CLAPie al resto del mondo.21Style
 
Facebook Open Graph: Tutto il web in un Grafo! - Daniele Ghidoli - Be-wizard ...
Facebook Open Graph: Tutto il web in un Grafo! - Daniele Ghidoli - Be-wizard ...Facebook Open Graph: Tutto il web in un Grafo! - Daniele Ghidoli - Be-wizard ...
Facebook Open Graph: Tutto il web in un Grafo! - Daniele Ghidoli - Be-wizard ...Daniele Ghidoli
 
Algoritmi e Calcolo Parallelo 2012/2013 - Grafi
Algoritmi e Calcolo Parallelo 2012/2013 - GrafiAlgoritmi e Calcolo Parallelo 2012/2013 - Grafi
Algoritmi e Calcolo Parallelo 2012/2013 - GrafiPier Luca Lanzi
 
Facebook e la teoria dei grafi
Facebook e la teoria dei grafiFacebook e la teoria dei grafi
Facebook e la teoria dei grafiMadd Maths
 
Guida all'estrazione di dati dai Social Network
Guida all'estrazione di dati dai Social NetworkGuida all'estrazione di dati dai Social Network
Guida all'estrazione di dati dai Social NetworkLeonardo Di Donato
 
Focus Junior - 14 Maggio 2016
Focus Junior - 14 Maggio 2016Focus Junior - 14 Maggio 2016
Focus Junior - 14 Maggio 2016Pier Luca Lanzi
 

Andere mochten auch (8)

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

Ähnlich wie An Optimal Algorithm for On-Line Bipartite Matching

Fondamenti di algebra lineare, parte 1: vettori e matrici
Fondamenti di algebra lineare, parte 1: vettori e matriciFondamenti di algebra lineare, parte 1: vettori e matrici
Fondamenti di algebra lineare, parte 1: vettori e matriciNicola Iantomasi
 
Metodi matematici per l’analisi di sistemi complessi
Metodi matematici per l’analisi di sistemi complessiMetodi matematici per l’analisi di sistemi complessi
Metodi matematici per l’analisi di sistemi complessiLino Possamai
 
Schema Risolutivo Delle Serie
Schema Risolutivo Delle SerieSchema Risolutivo Delle Serie
Schema Risolutivo Delle SerieDinoIT
 
Syntactical errors detection 1
Syntactical errors detection 1Syntactical errors detection 1
Syntactical errors detection 1LucaPostiglione2
 
Fondamenti di algebra lineare, parte 2: sistemi lineari, autovalori e autovet...
Fondamenti di algebra lineare, parte 2: sistemi lineari, autovalori e autovet...Fondamenti di algebra lineare, parte 2: sistemi lineari, autovalori e autovet...
Fondamenti di algebra lineare, parte 2: sistemi lineari, autovalori e autovet...Nicola Iantomasi
 
Elliptic Curve Method di Lenstra
Elliptic Curve Method di LenstraElliptic Curve Method di Lenstra
Elliptic Curve Method di Lenstrapeppespe
 
Appunti di Elaborazione automatica dei dati: matrici e matlab
Appunti di Elaborazione automatica dei dati: matrici e matlabAppunti di Elaborazione automatica dei dati: matrici e matlab
Appunti di Elaborazione automatica dei dati: matrici e matlabprofman
 
Successioni e laboratorio1617
Successioni e laboratorio1617Successioni e laboratorio1617
Successioni e laboratorio1617uffamate
 
Appunti di Elaborazione automatica dei dati: il simplesso
Appunti di Elaborazione automatica dei dati: il simplessoAppunti di Elaborazione automatica dei dati: il simplesso
Appunti di Elaborazione automatica dei dati: il simplessoprofman
 
Lezione 8 (12 marzo 2012)
Lezione 8 (12 marzo 2012)Lezione 8 (12 marzo 2012)
Lezione 8 (12 marzo 2012)STELITANO
 
Appendice 1.2.1 geoanalitica equaz. disequazioni lineari
Appendice 1.2.1 geoanalitica  equaz.  disequazioni lineariAppendice 1.2.1 geoanalitica  equaz.  disequazioni lineari
Appendice 1.2.1 geoanalitica equaz. disequazioni lineariFulvia Baccarani
 
Minimiemassimi
MinimiemassimiMinimiemassimi
Minimiemassimialecellini
 
Lezione 23 (9 maggio 2012)
Lezione 23 (9 maggio 2012)Lezione 23 (9 maggio 2012)
Lezione 23 (9 maggio 2012)STELITANO
 
Problemi np con esempio
Problemi np con esempioProblemi np con esempio
Problemi np con esempioRice Cipriani
 

Ähnlich wie An Optimal Algorithm for On-Line Bipartite Matching (18)

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

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?