You are on page 1of 26

Matchings

1


lNTnoouAo





No nosso dia-a-dia existem muitas situaes que podem ser representadas por um
conjunto de pontos e linhas que ligam aos pares esses pontos. Por exemplo, os pontos poderiam
representar cidades e as linhas as estradas entre pares destas cidades; ou os pontos poderiam
representar pessoas e as linhas a ligao entre pares de pessoas que se conhecem. Ou ainda, outro
exemplo, suponhamos que existem n candidatos para preencher m vagas distintas numa empresa,
mas nem todos tm as competncias necessrias para desempenhar qualquer uma das vagas. Esta
situao pode ser representada por grafo bipartido, onde cada aresta liga um candidato a uma
vaga que poderia eventualmente ocupar. A questo agora a seguinte: possvel empregar cada
candidato de tal maneira que cada um ocupa uma das vagas disponveis, de acordo com as suas
capacidades? Em teoria de grafos isso um problema de emparelhamento de um subconjunto de
vrtices noutro subconjunto de vrtices. Em outras palavras, um emparelhamento um
subconjunto de arestas onde no existe duas arestas incidentes a um mesmo vrtice.

O primeiro estudo relacionado com emparelhamentos em grafos foi efectuado pelo
matemtico hngaro D. Konig que, em Abril de 1914, em Paris, no Congresso de Filosofia
Matemtica, apresentava uma comunicao onde referia que todo o grafo bipartido regular
admitiria um emparelhamento perfeito. Desde ento, tm-se desenvolvido inmeros resultados
com emparelhamentos em grafos (bipartidos ou no) com muita aplicao quer na prpria teoria
de grafos, quer noutras reas da Matemtica.
Dentre todos os problemas j tratados em teoria dos grafos sobre emparelhamentos, optei
por, neste trabalho, abordar a questo da procura de um emparelhamento mximo num grafo
bipartido. Por exemplo, suponhamos que os vrtices de um grafo representam as pessoas e as
arestas a possibilidade de duas pessoas se casarem, estamos interessados em responder perguntas
deste tipo: "De que forma podemos realizar o maior nmero de casamentos, de modo a que as
pessoas casem com uma das pessoas de que gostam?"
Tambm abordarei o problema da procura de um emparelhamento completo. Neste exemplo dos
casamentos significa emparelhar as raparigas com os rapazes que gostam, de tal modo que todas
se casem.

Matchings

2



PncLimiNAncs




l ll l- -- - lNoiccs oc NoTAocs c AancviATunAs lNoiccs oc NoTAocs c AancviATunAs lNoiccs oc NoTAocs c AancviATunAs lNoiccs oc NoTAocs c AancviATunAs



) , ( E V G = um grafo, em que V representa o conjunto dos vrtices de G e E o conjunto das
arestas de G;
) , ( E V G = em que
2 1
V V V = um grafo bipartido;
| X | denota o nmero de elementos em X (cardinalidade);
denota o ou exclusivo (tambm chamada de diferena simtrica) ente dois conjuntos, ou
seja, se X e Y so dois conjuntos, ento ( ) ( ) ( ) ( ) X Y Y X Y X Y X Y X \ \ \ = = ;
) (S denota a vizinhana de S, isto , o conjunto de vrtices adjacentes;
















Matchings

3

ll ll ll ll- -- - DcriNiocs c HcsuLTAoos UTiLizAoos DcriNiocs c HcsuLTAoos UTiLizAoos DcriNiocs c HcsuLTAoos UTiLizAoos DcriNiocs c HcsuLTAoos UTiLizAoos

LLllrlc ' LLllrlc ' LLllrlc ' LLllrlc '

Um grafo G bipartido se o conjunto de vrtices V est dividido em dois conjuntos V


1
e
V
2
, de modo que toda a aresta ( ) G E a possui um extremo em V
1
e outro em V
2
, ou seja, no h
arestas a ligar os vrtices do mesmo conjunto.

Dado um grafo ) , ( E V G = , um emparelhamento



(matching) um subconjunto de
arestas E M tal que, quaisquer duas arestas de M no so adjacentes. (*)


Seja M um emparelhamento de G.
Um vrtice v diz-se saturado em M (ou emparelhado) se alguma aresta de M incidente
nesse vrtice; caso contrrio, v diz-se livre.


Um emparelhamento M de G que sature todos os vrtices de G designa-se por
emparelhamento perfeito.



Um grafo bipartido, cuja decomposio dos vrtices
2 1
V V , diz-se completo se e s se
todo o vrtice de V
1
est emparelhado com um vrtice de V
2
, ou seja, todos os vrtices de V
1

esto saturados.

(*) Optei por escrever emparelhamento em vez de matching, durante todo o trabalho.
LLllrlc 2 LLllrlc 2 LLllrlc 2 LLllrlc 2
LLllrlc O LLllrlc O LLllrlc O LLllrlc O
LLllrlc 4 LLllrlc 4 LLllrlc 4 LLllrlc 4
LLllrlc U LLllrlc U LLllrlc U LLllrlc U
Matchings

4

LLllrlc C LLllrlc C LLllrlc C LLllrlc C

Um emparelhamento M mximo se no existe um emparelhamento M tal que
M M > .



LLllrlc 7 LLllrlc 7 LLllrlc 7 LLllrlc 7

Seja M um emparelhamento de G.
Um caminho alternante (alternating) em G um caminho cujas arestas esto
alternadamente em E\M e em M .
Um caminho aumentvel (augmenting) em G um caminho alternante, cujos extremos
so livres.

OBS: Quando estiver a considerar dois emparelhamentos diferentes M e M, para evitar confuses, vou
escrever, por exemplo, M-alternante ou M-alternante, para denotar caminho alternante em M ou em M,
respectivamente; o mesmo para caminhos aumentveis.


LLllrlc O LLllrlc O LLllrlc O LLllrlc O

Seja S um conjunto constitudo por vrtices de G.
A vizinhana de S , representada por ) (S , definida como sendo o conjunto de todos os
vrtices de G adjacentes aos vrtices de S.


LLllrlc O LLllrlc O LLllrlc O LLllrlc O


Seja M um emparelhamento do grafo bipartido G e x
0
um vrtice livre de V
1
.
Ento, o subgrafo H de G uma rvore alternante, com raiz no vrtice x
0
se:
i) H uma rvore;
ii) ( ) G V x
0
, isto , x
0
pertence ao conjunto de vrtices de H;
iii) para qualquer vrtice v da rvore H o nico caminho de H de x
0
para v um
caminho alternante.
Matchings

5



LLVA ' LLVA ' LLVA ' LLVA '

Seja ) , ( E V G = , M e M emparelhamentos de G.
Ento, as componentes conexas de ) , ( E V H = , em que E a diferena simtrica entre M
e M, so de um dos seguintes tipos:
i) ciclo de comprimento par cujas arestas pertencem alternadamente a M e a M;
ii) caminhos, com arestas pertencentes alternadamente a M e a M, e cujos
extremos so vrtices que, num dos emparelhamentos, so livres.


DcmoNsTnAAo: DcmoNsTnAAo: DcmoNsTnAAo: DcmoNsTnAAo:
O maior grau de um vrtice de H dois, pois, no existe mais do que uma aresta
de M, nem de M, incidentes a um vrtice de H. Isso implicaria que, num dos
emparelhamentos, existisse mais de uma aresta incidente no mesmo vrtice, o que
contradiz a definio de emparelhamento. Alm disso, se o grau de um vrtice de H for 2,
ento uma das arestas proveniente de M e a outra de M.
Sendo o grau dos vrtices menor ou igual a 2, cada componente conexa ou um
caminho ou um ciclo. Os ciclos tm comprimento par, porque seno haveria duas arestas
adjacentes provenientes do mesmo emparelhamento. Os caminhos podem ter
comprimento par ou mpar. Cada caminho tem dois vrtices de grau 1, que so os
extremos. Cada vrtice extremo tem uma aresta incidente pertencente a um dos
emparelhamentos. Este vrtice tem de ser necessariamente livre no outro emparelhamento,
porque seno o vrtice no seria extremo, e o caminho prosseguiria.









Matchings

6




T TT T T TT TL LL L L LL Lc cc c c cc cR RR R R RR RL LL L L LL LV VV V V VV VA AA A A AA A L LL L L LL LL LL L L LL L L LL L L LL LL LL L L LL LR RR R R RR Rc cc c c cc cL LL L L LL L

Este teorema de fundamental importncia para o desenvolvimento de um algoritmo para
o problema de emparelhamento em grafos bipartidos. Permite caracterizar se um dado
emparelhamento ou no mximo em funo da existncia de um caminho aumentvel entre
vrtices livres do grafo.

Vejamos ento, o Teorema de Berge que caracteriza um emparelhamento mximo.


T TE EO OH HE EM MA A { de Berge, 1957 }
Um emparelhamento M em G mximo se e s se no existir nenhum caminho
aumentvel entre dois quaisquer vrtices livres.


D DD D D DD Dc cc c c cc cm mm m m mm mo oo o o oo oN NN N N NN Ns ss s s ss sT TT T T TT Tn nn n n nn nA AA A A AA A A AA A A AA Ao oo o o oo o: :: : : :: :

( ) Vamos supor que existe um caminho aumentvel, e seja C o conjunto de arestas


desse caminho. possvel construir um emparelhamento M considerando, para alm das
arestas de M que no pertencem ao caminho aumentvel, todas as arestas de C que no
pertencem a M, isto , ( ) ( ) C M M C C M M = = \ \ . Este emparelhamento Mtem
cardinal maior que M, concretamente 1 + = M M , e, portanto, M no um
emparelhamento mximo.

( ) Suponhamos que M um emparelhamento em G, tal que no admite um caminho
aumentvel em G. Queremos mostrar que M um emparelhamento mximo.
Sejam M um emparelhamento mximo qualquer em G e H o subgrafo de G, tal que
( ) M M V H = , , isto , o conjunto das arestas de H esto em M ou em M, mas no em ambos.

Matchings

7

Pelo Lema 1, sabemos que as componentes conexas de H podem ser:
i) ciclos de comprimento par, cujas arestas esto alternadamente em M eM;
ou
ii) caminhos cujas arestas esto alternadamente em M e Me os vrtices extremos so
livres num dos emparelhamentos.

Se existir um caminho, definido em ii), cujo comprimento mpar, ento a origem e a
extremidade desse caminho so ambos livres em M ou ambos livres em M, ento tal caminho
ser M-aumentvel ou M-aumentvel. Mas, a primeira hiptese no no acontece dado o modo
como M foi definido inicialmente e o segundo tambm no, uma vez que M um
emparelhamento mximo e portanto, pela primeira parte da prova no tem caminho aumentvel.
Deste modo, as componentes do subgrafo H ou so caminhos de comprimento par ou ciclos de
comprimento par e portanto cada uma delas envolve o mesmo nmero de arestas de M, como de
M. Assim, M M M M = .
Como M M M M M + = e M M M M M + = , pela propriedade de
interseco de conjuntos, dado que M e M so subconjuntos do conjunto das arestas E(G). Tem-
se ento que, M M = e portanto M mximo.




A demonstrao deste teorema envolve uma tcnica que pode ser usada para encontrar um
emparelhamento mximo. Vou, sucintamente, referi-la:

Seja M um emparelhamento qualquer de G. Vou referir-me s arestas de M como as
arestas escuras e s outras arestas de G como as arestas claras (arestas de G/M). Seja C um
caminho alternante em G, logo as arestas de C so alternadamente escuras e claras. Suponhamos
que C um caminho aumentvel e como tal, o vrtice inicial e final so livres, portanto a
primeira e a ltima aresta de C so claras. A sequncias das arestas de C so da forma: clara,
escura, clara, ..., escura, clara , portanto o nmero de arestas de C mpar, digamos 2n+1, das
quais m so escuras e m+1 claras.
Qualquer aresta de M, que no esteja em C, no incidente com qualquer vrtice de C
porque o vrtice inicial e final de C so livres em M e os outros j esto saturados em M. Por
Matchings

8
conseguinte, considerando M como o conjunto formado por todas as arestas escuras que no
esto em C e por todas as arestas claras que esto em C, isto , M obtido substituindo em C, k
arestas escuras por k+1 arestas claras ( removemos k arestas de M e so substitudas por k+1
arestas que no esto em M). Portanto, M um novo emparelhamento, que contm mais uma
aresta que M.
Este procedimento, revela claramente que podemos estender um emparelhamento M se
existir um caminho aumentvel.




A AA A A AA AL LL L L LL LC CC C C CC CC CC C C CC CF FF F F FF Fl ll l l ll lT TT T T TT TM MM M M MM MC CC C C CC C

O Teorema de Berge fornece um algoritmo para obter um emparelhamento mximo. Tal
como foi referido na tcnica descrita a ideia procurar caminhos aumentveis, a partir de vrtices
livres.

O algoritmo de emparelhamento mximo para grafos bipartidos apresentado
seguidamente, de uma forma condensada. A operao de construo do novo emparelhamento
pode ser expresso como a diferena simtrica entre o emparelhamento anterior e o caminho
aumentvel C.


Algoritmo

Input: grafo bipartido ( ) E V V G ,
2 1
=
Output: emparelhamento mximo M

begin
emparelhamento vlido M
while existe caminho aumentvel C do
M:= C M
end;
Matchings

9


Em cada iterao feita uma busca, a partir dos vrtices livres de V
1
que esto em M,
procura de um caminho aumentvel. Se tal caminho C for encontrado, pelo Teorema de Berge
sabemos que M no o emparelhamento mximo. Nesse caso, substitui-se M por C M e
vamos procurar, se existir, um outro caminho a partir do novo emparelhamento. Quando
consideramos um novo emparelhamento, aumentamos o nmero de arestas do emparelhamento,
portanto, o nmero de vrtices livres de V
1
e V
2
diminui.
A busca pode terminar por dois motivos ou no existem vrtices livres em V
1
ou no
encontramos vrtices livres em V
2
. E em ambos os casos, no existem mais caminhos
aumentveis. Portanto, pelo Teorema de Berge, o ltimo emparelhamento obtido mximo.



Este algoritmo apresentado, descreve como determinar um emparelhamento mximo, mas
ainda fica uma questo por responder Como encontrar um caminho aumentvel (se existir) e
como determin-lo?, uma vez que para determinar um emparelhamento mximo necessrio
procurar caminhos aumentveis a partir de vrtices livres.
Responder a esta questo ser o prxima etapa neste trabalho.

O processo de determinao de um caminho aumentvel, corresponde construo de
uma rvore de pesquisa, ou seja, de uma rvore alternante cuja raiz um vrtice livre de V
1
, onde
so integrados sucessivamente vrtices, que so por sua vez analisados, at se encontrar um
vrtice livre de V
2
.



F FF F F FF FE EE E E EE EG GG G G GG GC CC C C CC CL LL L L LL Ll ll l l ll lG GG G G GG GA AA A A AA A L LL L L LL LE EE E E EE E C CC C C CC CA AA A A AA AM MM M M MM Ml ll l l ll lM MM M M MM M C CC C C CC CG GG G G GG G A AA A A AA AL LL L L LL LM MM M M MM ME EE E E EE EM MM M M MM MT TT T T TT TA AA A A AA AV VV V V VV VE EE E E EE El ll l l ll lG GG G G GG G

Neste algoritmo, os vrtices so rotulados como pares e mpares. Como se trata de um
grafo bipartido, consideramos que os vrtices de V
1
tm rtulo par e os vrtices V
2
tm rtulo
mpar. Atribui-se o nvel 0 ao vrtice livre, que constitui a raiz da rvore. Os vrtices de V
2

aparecem a um nvel de profundidade mpar e os vrtices de V
1
a um nvel de profundidade par.

Matchings

10

Inicia-se a pesquisa de caminhos aumentveis a partir de vrtices livres em V
1
,
procurando encontrar um vrtice livre de V
2
. Se tal acontecer detectada a existncia de um
caminho aumentvel.
Por outro lado, os vrtices de V
2
encontrados que no sejam livres, esto necessariamente
emparelhados com vrtices de V
1
. Assim, no processo de pesquisa, quando se encontra um
vrtice de V
2
que no seja livre, atribui-se um rtulo mpar a esse vrtice e, simultaneamente, um
rtulo par ao vrtice de V
1
que com ele est emparelhado.
O algoritmo mantm uma lista de vrtices pares j rotulados, mas ainda no examinados,
todos pertencentes a V
1
. Se esta lista ficar vazia sem ter sido encontrado nenhum vrtice livre,
ento no existe nenhum caminho aumentvel a partir do vrtice livre escolhido.
Se a repetio da mesma pesquisa para os restantes vrtices livres de V
1
no produzir
nenhum caminho aumentvel, ento o emparelhamento em questo mximo.



Seguidamente, vou apresentar um algoritmo de pesquisa para determinar se existe algum
caminho aumentvel.


Algoritmo

Input: Grafo bipartido ( ) E V V G ,
2 1
=
Emparelhamento M definido pelo vector par ( ) , isto ,

=
livre se , 0
com o emparelhad se ,
) ( ,
2
j
i j i
j par V j

Output: Existe ou no caminho aumentvel



Matchings

11
begin
apagar todos os rtulos;

0
v vrtice livre de V
1
;
( ) P v R , ) (
0
;
{ }
0
v X ( X o conjunto de vrtices rotulados e no examinados)
while X do
begin
seleccionar um vrtice X i ;
{} i X X \ ;
for all ) (i j no rotulados do
begin
( ) I i j R , ) ( ;
if j livre then
return caminho aumentvel
else
( ) ( ) P j j par R , ) ( ;
{ } ) ( j par X X ;
end;
end;
return no existe caminho aumentvel;
end.



ExcmLo


A figura ao lado apresenta um grafo bipartido, sendo
V
1
={ }
5 4 3 2 1
, , , , v v v v v e V
2
={ }
10 9 8 7 6
, , , , v v v v v . As arestas
sombreadas representam o emparelhamento definido. E
pretende-se encontrar, se existir, um caminho aumentvel.
(Examinar os vrtices da
vizinhana de i)
Matchings

12

A pesquisa de caminhos aumentveis, vai comear num vrtice livre de V
1
, por exemplo,
em
4
v . Este vrtice rotulado como ( ) P , , significando que no tem precedente e se trata de um
vrtice par.
A anlise de
4
v consiste em rotular os vrtices adjacentes a ele, que so
6
v e
7
v , como
( ) I v ,
4
, indicando que so vrtices mpares. Como ambos estes vrtices esto emparelhados, os
respectivos pares so rotulados. O vrtice
1
v rotulado como ( ) P v ,
6
e o vrtice
3
v rotulado
como ( ) P v ,
7
.
No fim desta fase, h na lista dois vrtices pares,
1
v e
3
v . De seguida procede-se anlise
de um destes vrtices, por exemplo, de
1
v . A anlise de
1
v permite detectar um vrtice livre em
V
2
, o
8
v e a existncia de um caminho aumentvel,
8 1 6 4
v v v v . A rvore de pesquisa resultante :




O novo emparelhamento (apresentado na figura seguinte), de cardinal 4, tem duas arestas
novas
6 4
v v e
8 1
v v . A aresta que no faz parte do caminho aumentvel,
7 3
v v , mantm-se no novo
emparelhamento.


Matchings

13

De seguida analisa-se o vrtice


5
v e detecta-se um caminho aumentvel at ao vrtice
10
v ,
obtendo-se, assim, um emparelhamento de cardinal 5, que um emparelhamento mximo.
Apresentado nas figuras seguintes:



















(emparelhamento
mximo)
Matchings

14
C
1
C
2
C
3
C
4
C
5
V
1
V
2
V
3
V
5
V
4



T TT T T TT TL LL L L LL Lc cc c c cc cR RR R R RR RL LL L L LL LV VV V V VV VA AA A A AA A L LL L L LL LL LL L L LL L A AA A A AA AL LL L L LL LL LL L L LL L


O problema descrito na introduo, dos n candidatos para preencher m vagas existentes
numa empresa, um exemplo de um problema de designao de tarefas. Neste tipo de problema
procuram-se condies para a existncia de um emparelhamento completo. Para o resolver,
surgiram alguns resultados que apresentavam condies suficientes, mas no necessrias ou
condies necessrias, mas no suficientes para determinar tal emparelhamento. (referidos a
seguir).

Dado um emparelhamento M de grafo bipartido G, cujo conjunto dos vrtices dado por
2 1
V V , uma condio para esse emparelhamento ser completo, que o nmero de vrtices de
V
2
seja igual ou maior ao nmero de vrtices de V
1
. Mas no suficiente. No exemplo da figura
1, apesar do nmero de candidatos ser igual ao nmero de vagas (5 candidatos e 5 vagas), no
possvel obter tal emparelhamento completo. O seguinte resultado d uma condio suficiente
mas, no necessria, para que um grafo tenha um emparelhamento completo: Seja G um
emparelhamento completo num grafo bipartido decomposto em dois subconjuntos V
1
e V
2

possvel identificar um emparelhamento completo nesse grafo se existe um valor inteiro k tal que
o grau de todo o vrtice de V
1
superior ou igual a k e o grau de todo o vrtice de V
2
inferior ou
igual a k. Mas, como j foi referido, este resultado no d uma condio necessria, e por isso, o
grafo da figura 2 no respeita a condio do resultado, apesar de permitir um emparelhamento
completo, como se verifica pela figura 3.



Figura 1 Figura 2 Figura 3
C
5
C
1
C
2
C
3
C
4
V
1
V
2
V
3
V
4
V
5
C
1
C
2
C
3
C
4
V
1
V
2
V
3
V
4
V
5 C
5
Matchings

15


Em 1935, Philip Hall apresenta um teorema (conhecido como o teorema de Hall ou dos
casamentos) onde estabelece uma condio necessria e suficiente para a existncia de um
emparelhamento completo.


T TE EO OH HE EM MA A ( ( de Hall}

Seja G um grafo bipartido, cuja decomposio do conjunto de vrtices
2 1
V V V = .
G tem um emparelhamento completo se e s se S S ) ( , para todo o subconjunto S de
1
V .


D DD D D DD Dc cc c c cc cm mm m m mm mo oo o o oo oN NN N N NN Ns ss s s ss sT TT T T TT Tn nn n n nn nA AA A A AA A A AA A A AA Ao oo o o oo o: :: : : :: :

Seja G um grafo bipartido, tal que


2 1
) ( V V G V = .
( ) Num emparelhamento que sature todos os vrtices de
1
V , ou seja, completo, todos
os vrtices de
1
V esto emparelhados com vrtices diferentes de
2
V . Qualquer que seja o
subconjunto S de
1
V seleccionado, a vizinhana desse conjunto tem cardinal maior ou igual a
S.


( ) (por reduo ao absurdo)
Suponhamos que a condio S S ) ( satisfeita, para todo o subconjunto S de
1
V .
Queremos mostrar que G contm um emparelhamento completo. Vamos ento, supor que G
no tem tal emparelhamento e obteremos uma contradio.
Seja M um emparelhamento mximo em G, este no satura todos os vrtices de
1
V ,
dado no existir emparelhamento completo. Portanto, existe, pelo menos, um vrtice de
1
V que
livre em M; seja
0
x , tal vrtice. Como M um emparelhamento mximo, pelo Teorema de
Berge, no admite um caminho aumentvel em G. Assim, se C um caminho alternante em G,
Matchings

16
que comea no vrtice
0
x e que termina num vrtice saturado qualquer de M, ento C possui uma
das seguintes forma:
n n n
x y x x y x y x
1 2 2 1 1 0
...

(1)
ou
n n
y x x y x y x
1 2 2 1 1 0
...

(2) , em que
n
x x x ,..., ,
1 0
so vrtices de
1
V e ,... , ,
3 2 1
y y y
vrtices de
2
V ; as arestas
1 1
x y ,
2 2
x y , ... esto em M e as outras arestas
1 0
y x ,
2 1
y x ,... no esto
em M; e em (2),
n
y um vrtice saturado de M. Alm disso, em (2) a aresta
n n
y x
1
no est
em M, mas como
n
y um vrtice saturado podemos estender o caminho. Neste caso, com a
adio da aresta
n n
x y , em que
n
x est emparelhado com
n
y em M, transformando-se o caminho
na forma (1).
Seja R o conjunto formado por todos os vrtices de
1
V , que podem ser estendidos a partir
de
0
x num caminho alternante em M (excluindo o vrtice inicial
0
x , isto , no consideremos os
caminhos de comprimento 0), ou seja, R representa todos os
n
x x ,...,
1
que podem ocorrer no
caminho C anteriormente referido. Seja T o conjunto formado por todos os vrtices de
2
V , que
podem ser estendidos a partir de
0
x num caminho alternante em M, isto , T consiste em todos
os ,... , ,
3 2 1
y y y que podem ocorrer no caminho C anteriormente referido. Tem-se que T R = ,
pois cada um dos possveis
n
x x x ,..., ,
1 0
est emparelhado com o correspondente
i
y .
Consideremos { }
0
x R S = . Se um vrtice y adjacente a um vrtice de S, pode
acontecer uma das duas situaes :
i) y adjacente a
0
x ou
ii) y adjacente a um dos vrtices
i
x de
1
V que ocorre em qualquer caminho
alternante que comea no vrtice
0
x .
Na situao i), T y , assim y o vrtice terminal do caminho alternante de comprimento 1.
Na situao ii), se C um caminho alternante do vrtice
0
x para o vrtice
i
x , ento y ou j um
vrtice pertencente ao caminho ou o caminho pode ser estendido adicionando a aresta y x
i
,
obtendo-se um caminho alternante maior. E neste caso, tambm T y . Isto prova que
T S ) ( . Alm do mais, do modo como T foi construdo, tem-se que ) (S T . Portanto,
T S = ) ( . Por outro lado, como { }
0
x R S = , vem 1 + = R S , mas como j vimos, T R = e,
Matchings

17
portanto, 1 ) ( 1 1 + = + = + = S T R S . Logo, S S < ) ( , o que constitui uma contradio.
Mostramos que G admite um emparelhamento completo.




A AL LG GO OH Hl lT TM MO O


O problema j referido, dos n candidatos e das m vagas, pode ser representado por um
grafo bipartido, cujo conjunto dos vrtices dado por Y X , em que { }
n
c c c X ,..., ,
2 1
= o
conjunto dos candidatos e { }
m
y y y Y ,..., ,
2 1
= o conjunto das vagas e as arestas ligam os
candidatos
i
c s vagas
i
y se e s se tm qualificao para as preencher. Pretendemos obter
resposta questo: possvel empregar cada candidato de tal maneira que cada um ocupa uma
das vagas disponveis, de acordo com as suas qualificaes?. Para obtermos uma resposta a esta
questo, temos de saber se existe um emparelhamento que sature cada vrtice de X, ou seja, um
emparelhamento completo.


De seguida, vou apresentar um mtodo que, para qualquer grafo bipartido G, ou encontra
um emparelhamento completo em G, ou se tal emparelhamento no existir , mostra que ele no
existe encontrando um subconjunto S de V
1
tal que S S < ) ( (porque se tal subconjunto existir,
ento pelo teorema de Hall, sabemos que no existe emparelhamento completo).

O Algoritmo que vou apresentar, tem por base esta ideia e o Teorema de Hall, e um
algoritmo de busca de um emparelhamento completo. Este algoritmo parte de um grafo
bipartido ) , ( E V G = , tal que
2 1
V V V = e segue essencialmente os trs passos seguintes:


Passo 1: Comear com qualquer emparelhamento M.


Matchings

18
No
No
Sim
Sim
Passo 2: Escolher um vrtice livre
0
x de V
1
, caso exista.
Se no existir, ento M um emparelhamento completo.
Se existir, determinamos um caminho aumentvel C com origem em
0
x .
Se tal caminho for encontrado, ento obtemos um emparelhamento M maior
do que M e como tal, satura mais vrtices de V
1
do que M. Ento, executa-se o
passo 3.
Se no for encontrado tal caminho ento pelo processo utilizado na
demonstrao de Teorema de Hall, obtm-se um subconjunto S de V
1
tal que
S S < ) ( e portanto, G no tem um emparelhamento que sature V
1
.

Passo 3: Se todos os vrtices de V
1
so saturados em M, par-se e portanto, M um
emparelhamento desejado.
Caso contrrio, repete-se o passo 2, substituindo M por M.




Algoritmo (representao esquemtica)

Input: um emparelhamento qualquer de um grafo bipartido
Output: emparelhamento completo


Existe v
0

livre em M?
Existe caminho aumentvel
em M?
Pra.
(M um emparelhamento
completo e mximo)
Obtm um emparelhamento
M tal que M M > .

No existe emparelhamento
completo.
Toma M=M.
Volta ao inicio.
Matchings

19

Segundo este algoritmo, dado um grafo qualquer bipartido conseguimos determinar se
existe ou no um emparelhamento completo em G. No passo 2, necessrio determinar um
caminho aumentvel, se tal existir. Embora, esta questo j tenha sida abordada anteriormente (T.
de Berge), vou agora apresentar um outro algoritmo, embora esteja de alguma forma relacionado
com o que j foi apresentado, distinguindo-se essencialmente na estrutura da construo, pois
este segue basicamente os passos da demonstrao do Teorema de Hall. Tal algoritmo pode ser
olhado como uma representao algortmica do Teorema de Hall.


Seja M um emparelhamento de um grafo bipartido G.
Para determinar um caminho aumentvel vamos recorrer a uma rvore alternante, cuja
raiz um vrtice livre deV
1
. O crescimento de uma rvore aumentvel H com raiz em
0
x tal
que, em qualquer etapa, acontece uma das duas situaes:
i) todos os vrtices de H excepto
0
x so saturados em M;
ii) H tem um vrtice livre diferente de
0
x .

No caso i) na primeira etapa, a rvore consiste apenas no vrtice livre
0
x . Consideremos
ento, R como o conjunto dos vrtices emparelhados na rvore H cuja distncia a
0
x par
e T como o conjunto dos vrtices de H cuja distncia a
0
x mpar. Tem-se ento que
T R = . A definio de R e de T similar que foi usada para estes conjuntos na
demonstrao do teorema de Hall. Consideremos agora, S = R { }
0
x . Ento T ( ) S .

Vamos agora separar i) em dois subcasos: (i
1
) ) (S T = e ( i
2
) ) (S T .
Se acontece (i
1
), segundo a demonstrao do Teorema de Hall, 1 ) ( = = = S R T S ,
logo ( ) S S < , concluindo-se que no existe emparelhamento
Se acontece (i
2
), ento existe um vrtice y em G que no est em T, mas que adjacente a
algum vrtice x, qualquer em S (ou seja, pertence a ( ) S ). Continuando a olhar para o
caso i) pode acontecer um dos dois casos, ou
0
x x = ou x est em R. E nos dois casos a
aresta xy no est em M. Mas, se y um vrtice saturado em M, ento a rvore cresce ,
Matchings

20
adicionando-se as aresta xy e yz e esta nova rvore continua a satisfazer o caso i). Se
pelo contrrio, y no um vrtice saturado de M, aumentmos H adicionando o vrtice y e
a aresta xy, produzindo uma nova rvore que satisfaz o caso ii).
Se em alguma etapa do crescimento obtivermos uma rvore que satisfaa o caso ii), ento
a rvore contm um caminho aumentvel de M, que comea num vrtice
0
x livre e
termina noutro vrtive livre. E assim, podemos substituir o emparelhamento M por outro
maior.



Vou, de seguida, apresentar um algoritmo que reflecte o mtodo que estive a descrever,
seguindo os seguintes quatro passos:


Passo 1: Comear com um emparelhamento M, arbitrrio.

Passo 2: Se M satura todos os vrtices de V
1
, pra e M o emparelhamento desejado.
Caso contrrio, seja
0
x um vrtice livre de M em V1 e seja { }
0
x S = e
= T .

Passo 3: Se , em G, T S = ) ( ento S S < ) ( , portanto 1 = S T . Neste caso, pra;
pois pelo Teorema de Hall sabemos que G no tem um emparelhamento
completo.
Caso contrrio, escolhe qualquer elemento y em ) (S , que no est em T.

Passo 4: Se y um vrtice saturado em M, considera M yz , isto , z um vrtice
emparelhado com y em M. Neste caso, substitui-se S por { } z S e T por
{ } z T e retorna ao passo 3.
Caso contrrio, y um vrtice livre em M, considera C como caminho
aumentvel de
0
x a y e substitui M por um emparelhamento maior que M.
E retorna ao passo 2.

Matchings

21

E EE E E EE EX XX X X XX XE EE E E EE EM MM M M MM MF FF F F FF FL LL L L LL Ll ll l l ll lF FF F F FF Fl ll l l ll lC CC C C CC CA AA A A AA A C CC C C CC C L LL L L LL LC CC C C CC C A AA A A AA AL LL L L LL LC CC C C CC CC CC C C CC CF FF F F FF Fl ll l l ll lT TT T T TT TM MM M M MM MC CC C C CC C


Para exemplificar este algoritmo, consideremos o grafo G, dado na figura 1 (pgina 15)
que representa 5 candidatos que pretendem preencher 5 vagas disponveis.




Passo 1: Comear com o emparelhamento M, representado pelas arestas sombreadas.
Passo 2: O vrtice c
4
livre em M. Seja { }
4
c S = e O T = .
Passo 3: ( ) { }
5 4 3
, , v v v S = , portanto T S ) ( . Escolhe-se v
3
que est em ) (S , mas no est
em T.
Passo 4: v
3
um vrtice livre em M. Seja C o caminho aumentvel de comprimento 1, v
4
v
3
.
Substitui-se M por um emparelhamento maior que M. Este novo emparelhamento est
representado na figura seguinte:


E retorna-se ao passo 2.

Passo 2: O vrtice c
5
livre em M. Seja { }
5
c S = e O T = .
Passo 3: ( ) { }
1
v S = , portanto T S ) ( .
C
1
C
2
C
3
C
4
V
1
V
2
V
3
V
4
V
5
C
5
C
1
C
2
C
3
C
4
V
1
V
2
V
3
V
4
V
5
C
5
Matchings

22
Passo 4: v
1
um vrtice saturado em M. Tem-se { }
1 5
, c c S = e { }
1
v T = .
Passo 3: ( ) { } T v v v S =
3 2 1
, , . Escolhe-se v
3
que est em ) (S , mas no est em T.
Passo 4: v
3
um vrtice saturado em M. Logo, { }
4 1 5
, , c c c S = e { }
3 1
, v v T = .
Passo 3: ( ) { } T v v v v v S =
5 4 3 2 1
, ; , , . Escolhe-se v
5
que est em ) (S , mas no est em T.
Passo 4: v
5
um vrtice livre em M. Seja C o caminho aumentvel de c
5
a v
5
. Substitui-se M por
um emparelhamento maior que M. Este novo emparelhamento est representado na figura
seguinte:



E retorna ao passo 2.

Passo 2: O emparelhamento M satura todos os vrtices de V
1
, o algoritmo pra. Logo, M um
emparelhamento completo e portanto, mximo.














C
1
C
2
C
3
C
4
V
1
V
2
V
3
V
4
V
5
C
5
Matchings

23

P Pn no oa aL Lc cm mA A " "M Mo oT Ti iv vA Ao oo on n


Um treinador tem 6 jogadores disponveis para formar uma equipa de hquei em patins.
Alm do guarda-redes (GR), necessrio preencher as posies de Defesa e de Ataque, tanto do
lado Direito (DD ou AD) como do lado Esquerdo (DE ou AE). Cada jogador tem aptides que
lhe permitem jogar, pelo menos, numa posio, de acordo com o grafo apresentado na figura
seguinte.







A questo a que se pretende responder : Ser possvel, com estes jogadores, preencher
todas as posies e formar uma equipa?

Neste caso, a resposta negativa, o que pode ser mostrado com o seguinte argumento: o
nico jogador capaz de jogar na direita o jogador 5, e ele no pode jogar simultaneamente
defesa e ao ataque.
Do ponto de vista da teoria de grafos, existe um conjunto { } AD DD S , = , de cardinal 2,
cujo vrtice adjacente o 5, isto , ( ) { } 5 = S , sendo ( ) 1 = S . Neste exemplo, ( ) S S > .
Logo, segundo o Teorema de Hall conclui-se de imediato que no existe um emparelhamento
perfeito.

Num dos treinos faltou um dos jogadores, o treinador decidiu modificar o esquema de
funcionamento implementado nos treinos anteriores, pedindo aos 5 jogadores para listarem no
mximo trs posies que gostariam de ocupar nesse jogo, podendo escolher posies quaisquer.
Na tabela seguinte esto listadas as escolhas feitas (o X significa que o jogador escolheu a
posio indicada). O treinador pretende atribuir as posies de modo atender s preferncias de
cada jogador.
1
2 3 4
5
GD DD DE AD AE
6
Matchings

24

Jogadores
Posio 1 2 3 4 5
GD X
DD X X X
DE X X X
AD X
AE X X


A tabela apresentada pode ser representada pelo grafo bipartido correspondente:




Comeamos por escolher um emparelhamento qualquer, de seguida verificamos se
existem caminhos aumentveis. Se existirem, substitumos o emparelhamento dado por outro que
maior que este. E assim sucessivamente, at que a cada jogador seja atribuda uma posio.






(S apresentei uma ideia muito sucinta da resoluo do problema, dado ser um exemplo
de aplicao simples dos teoremas apresentados.)
1
2 3 4
5
GD DD DE AD AE
1
2 3 4
5
GD DD DE AD AE
Matchings

25

lNoicc



lr:RcLLc lr:RcLLc lr:RcLLc lr:RcLLc,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, Z


FRLLlVlrARLe FRLLlVlrARLe FRLLlVlrARLe FRLLlVlrARLe
- ndices de notaes e abreviaturas ,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, 3
- Definies e resultados utilizados ,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, 4

TLcRLVA LL ELRcL TLcRLVA LL ELRcL TLcRLVA LL ELRcL TLcRLVA LL ELRcL
- Teorema e demonstrao do teorema ,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, 7
- Algoritmo de Emparelhamento Mximo ,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, 9
- Pesquisa de Caminhos Aumentveis ,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, 10

TLcRLVA LL ALLe TLcRLVA LL ALLe TLcRLVA LL ALLe TLcRLVA LL ALLe
- Teorema e demonstrao do teorema ,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, 1
- Algoritmo Emparelhamento Completo ,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, 1
- Verso algortmica do Teorema de Hall ,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, Z0
- Aplicao do teorema (exemplificao do algoritmo),,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, ZZ

FRcLLLVA Mc:lVALcR FRcLLLVA Mc:lVALcR FRcLLLVA Mc:lVALcR FRcLLLVA Mc:lVALcR" ,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,Z4
iaLiocnAriA ,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, Z





Matchings

26
iaLiocnAriA



John M. Harris, Jeffry L.Hirst e Michael J. Mossinghoff; Combinatorics and Graph
Theory; Springer.
John Clark e Derek Allan Holton; A First Look at Graph Theory; World Scientific.
R.Brualdi; Introductory Combinatorics; Prentice-Hall.
R. Diestel; Graph Theory; Springer
Bla Bollobs; Graph Theory
Pearls in Graph Theory- A computative Introduction
A primer of Discrete Mathematics
Alguns sites na internet sobre matchings.

You might also like