• Nenhum resultado encontrado

A Matemática é abctracta, mas não há nada mais abstracto do que a Amizade.

N/A
N/A
Protected

Academic year: 2021

Share "A Matemática é abctracta, mas não há nada mais abstracto do que a Amizade."

Copied!
164
0
0

Texto

(1)
(2)
(3)

Agradecimentos

Em primeiro lugar, `a minha orientadora, a Doutora Leonor Moreira, por toda a ajuda prestada na elabora¸c˜ao deste trabalho, sem a qual n˜ao teria conseguido alcan¸car este objectivo.

Aos meus Pais e Irm˜ao por toda a paciˆencia demonstrada para comigo e por todo o apoio que me deram sempre! Quero tamb´em pedir desculpa pela ausˆencia “psicol´ogica” durante este ano e meio. Quero agradecer todo o carinho que deram at´e hoje e pela for¸ca que me passaram ao longo dos anos. A eles devo tudo o que sou hoje! Muito obrigada aos trˆes!

(4)
(5)

Resumo

Os problemas cuja resolu¸c˜ao ´e tratada neste trabalho s˜ao modelos matem´aticas de situa¸c˜oes di´arias como a distribui¸c˜ao de trabalhadores por tarefas numa empresa, a coloca¸c˜ao de alunos em cursos universit´arios, ou a coloca¸c˜ao de professores em escolas. A constru¸c˜ao de algoritmos para a resolu¸c˜ao destes problemas remonta a 1962 [12] como ´e referido na resenha hist´orica da introdu¸c˜ao. Estes modelos utilizam a Teoria de Grafos e ´e essencial `a sua compreens˜ao a no¸c˜ao de matching em grafos bipartidos e, em particular, a de matching est´avel.

Para al´em do estudo da resolu¸c˜ao do problema cl´assico da existˆencia e constru¸c˜ao de matching est´avel num grafo bipartido ([12], [13]) recorreu-se essencialmente a [1] e [4] para perceber como tratar o mesmo tipo de problemas em condi¸c˜oes mais gerais que obrigam a um maior cuidado na busca da melhor solu¸c˜ao.

(6)

oposto, com um limite fixado. Em cada um deles pretende-se obter uma boa atribui¸c˜ao de acordo com as preferˆencias manifestadas, isto ´e, uma atribui¸c˜ao est´avel.

Em cada um destes problemas, s˜ao apresentadas condi¸c˜oes para que o problema tenha solu¸c˜ao e, no caso desta existir, s˜ao apresentados algoritmos para a sua determina¸c˜ao. Ser´a ainda visto que ´e poss´ıvel comparar solu¸c˜oes do ponto de vista dos elementos de cada um dos dois conjuntos em jogo, e, globalmente, do ponto de vista dos pr´oprios conjuntos.

(7)

Abstract

This work deals with mathematical modelling and resolution of problems coming from several daily situations such as the assignment of workers to tasks in a company, the admission of students to universities or the schools’ recruitment of teachers. The design of algorithms to solve them comes from 1962 [12] as refered in the historical note in the introduction of this work. These mathematical models use Graph Theory, and the notions of matching in a bipartite graph and of stable matching are fundamental to understand them.

Besides the study of the classical problem of existence and construction of a stable matching on a bipartite graph ([12], [13]), [1] and [4] were essential to understand how to solve analagous problems under more general conditions that require a greater care in finding a good solution.

(8)

is, a stable assignment is needed.

In each of these problems, conditions are established that guarantee the existence of a solution and algorithms to find it are presented. It will be seen that is possible to compare solutions from the point of view of the elements of each set, and globally according to the point of view of both sets.

(9)

Conte´

udo

Agradecimentos iii

Resumo v

Abstract vii

Introdu¸c˜ao 5

Uma hist´oria do problema . . . 5

Desenvolvimento do trabalho . . . 7

1 Problema de atribui¸c˜ao de tarefas 13 1.1 Conceitos e resultados b´asicos . . . 13

1.2 Algoritmo H´ungaro . . . 23

1.3 Algoritmo de Kuhn-Munkres . . . 32

1.4 Conclus˜ao . . . 37

(10)

2.2 Constru¸c˜ao de uma solu¸c˜ao . . . 48

2.3 Conflitos de interesse . . . 63

2.4 Voltando `a no¸c˜ao de estabilidade . . . 66

2.5 Conclus˜ao . . . 72

3 O problema das universidades 75 3.1 Resultados iniciais . . . 77

3.2 Comparar atribui¸c˜oes est´aveis . . . 88

3.3 Mecanismos de atribui¸c˜ao - universidades . . . 100

3.4 Conclus˜ao . . . 113

4 O problema de atribui¸c˜ao “muitos-para-muitos” 117 4.1 Resultados iniciais . . . 118

4.2 A estrutura das atribui¸c˜oes est´aveis . . . 125

4.3 Comparar atribui¸c˜oes est´aveis . . . 128

4.4 Mecanismos de atribui¸c˜ao - muitos-para-muitos . . . 138

4.5 Conclus˜ao . . . 148

Observa¸c˜oes Finais 151

Bibliografia 153

(11)

Lista de Figuras

1.1 Exemplo de um grafo G. . . 14

1.2 Exemplo de um grafo dirigido Gd. . . 15

1.3 Exemplo de um grafo bipartido. . . 17

1.4 Exemplo de dois matchings de um grafo bipartido. . . 18

1.5 Exemplo de um grafo com v´arias componentes conexas. . . 19

1.6 Exemplo de dois matchings num grafo. . . 21

1.7 Matching bipartido. . . 28

1.8 Constru¸c˜ao da ´arvore M -alternada de ra´ız x1 - in´ıcio. . . 28

1.9 Constru¸c˜ao da ´arvore M -alternada com ra´ız em x1. . . 29

1.10 Constru¸c˜ao da ´arvore M -alternada com ra´ız em x1 - ´arvore final. . . 29

1.11 Novo matching M . . . 31

1.12 ´Arvore M -alternada com ra´ız em x4. . . 31

1.13 O grafo Gl. . . 36

1.14 O grafo Gl associado `a nova etiquetagem conveniente dos v´ertices. . . 37

(12)

2.2 Descri¸c˜ao do algoritmo. . . 51

3.1 Um problema de admiss˜oes e uma atribui¸c˜ao (v´ertices pretos). . . 78

3.2 Duas atribui¸c˜oes: v´ertices pretos - est´avel, v´ertices quadrados - n˜ao est´avel. 80 3.3 Aplica¸c˜ao do algoritmo guloso para os candidatos. . . 85

3.4 Aplica¸c˜ao do algoritmo guloso para as universidades. . . 86

3.5 O grafo ´util e as atribui¸c˜oes µA (v´ertices quadrados) e µU (v´ertices pretos). 87 3.6 Posi¸c˜ao relativa de duas atribui¸c˜oes est´aveis. . . 90

3.7 O paradoxo “melhor posi¸c˜ao, pior atribui¸c˜ao” usando µU. . . 102

3.8 µ - quadrados; µ0 - c´ırculos. . . 104

3.9 µ - quadrados; µ0 - c´ırculos; β - quadrados pretos. . . 104

3.10 µ∗ - quadrados; µA - c´ırculos; µ - v´ertices pretos. . . 108

3.11 Estrat´egia para obter uma atribui¸c˜ao melhor em µU. . . 111

4.1 O jogo (Φ, p, q) e uma atribui¸c˜ao neste jogo. . . 120

4.2 O jogo (Φ∗, p, q). . . 124

4.3 Os v´ertices pretos s˜ao de µ e os quadrados de µ0. . . 125

4.4 O v´ertice cruzado j´a foi utilizado. . . 126

4.5 Duas atribui¸c˜oes est´aveis: v´ertices pretos e v´ertices quadrados. . . 129

4.6 Conjuntos distintos atribu´ıdos a um jogador-linha l ∈ L. . . 133

(13)

Introdu¸

ao

Uma hist´

oria do problema

Na viragem do s´eculo XX, foi dado aos alunos de medicina dos E.U.A. a oportunidade de realizarem um internato, como forma de fazerem a sua p´os-gradua¸c˜ao. Inicialmente, as propostas eram feitas pelos hospitais aos alunos e estes escolhiam a oferta que mais lhes convinha. Devido ao excesso de vagas para o internato, a concorrˆencia entre hospitais era muito grande, tentando cada um deles antecipar as suas propostas `as dos restantes, com o objectivo de obter os melhores alunos. A antecipa¸c˜ao destas propostas foi crescendo ao ponto de, em 1944, os hospitais fixarem os seus candidatos dois anos antes do internato, o que levava a que os hospitais tivessem pouca informa¸c˜ao sobre os alunos. Neste mesmo ano, foi decidido que qualquer proposta s´o deveria ser feita no m´aximo com um ano de antecedˆencia e que os alunos teriam um tempo limite para a aceitar ou rejeitar.

Apesar desta altera¸c˜ao, surgiu um novo problema relacionado com o intervalo de tempo entre a oferta de um lugar aos candidatos para realizar o internato e a data de aceita¸c˜ao ou recusa da proposta. Cada hospital fazia as suas propostas aos alunos que mais lhe agradavam e deixava outros alunos em lista de espera. No caso de um aluno rejeitar uma proposta de internato, entra para o seu lugar um aluno que esteja em lista de espera e ao qual ´e feita essa mesma proposta. O problema surge nestas listas de espera: considere-se um aluno ao qual foi feita uma proposta de internato pelo hospital que ocupa o 5olugar nas

(14)

o 2o lugar. Assim, o aluno teria tendˆencia a esperar por uma oportunidade no hospital que preferia. De novo, o procedimento podia tornar-se “injusto” para ambas as partes.

Entre 1945 e 1950, a tendˆencia foi de encurtar o tempo que os alunos tinham para aceitar ou rejeitar uma proposta, alterando os procedimentos, mas os resultados continuavam a n˜ao ser satisfat´orios e os custos eram demasiado altos.

Assim, em 1950, foi decidido que seria melhor para ambas as partes centralizar o processo, isto ´e, cada aluno apresentava a sua lista de preferˆencias de hospitais e cada hospital apre-sentava uma lista de preferˆencias para os alunos que se candidatavam a esse hospital. Estas listas eram enviadas a um organismo central, que aplicava um procedimento para obter as coloca¸c˜oes de acordo com as preferˆencias apresentadas. A primeira vers˜ao deste algoritmo mostrou-se ainda n˜ao aceit´avel para os candidatos j´a que a solu¸c˜ao dependia fortemente do modo como o aluno compunha a sua lista de preferˆencias, de tal modo que um aluno que n˜ao apresentasse a sua verdadeira lista de preferˆencias, mas antes uma convenientemente adaptada aos rankings dos hospitais poderia obter uma melhor coloca¸c˜ao, o que obvia-mente podia ter m´as consequˆencias quer para os internos, quer para os hospitais. Assim, foi introduzida uma altera¸c˜ao a este procedimento, que foi implementado pela primeira vez em 1951 e permanece em uso at´e aos dias de hoje.

Alheio a este problema nas Universidades dos E.U.A., David Gale, no in´ıcio dos anos sessenta, formulou uma conjectura em torno de um problema semelhante ao anterior e para o “problema de casamentos”, mas sem encontrar uma prova. Depois de Gale divulgar o seu trabalho, Lloyd Shapley apresentou uma prova construtiva (um algoritmo) para a conjectura de Gale. A conjectura, bem como a sua prova e alguns resultados relacionados foram apresentados no artigo [12], de 1962. S´o mais tarde, vieram a saber que um algoritmo semelhante ao que prova a conjectura de Gale j´a era usado desde 1951 para colocar os alunos para internato nos hospitais.

(15)

foi o artigo [17] de Ana Paula Tom´as, escrito na sequˆencia da pol´emica em torno do Con-curso Nacional de Coloca¸c˜ao de Educadores de Infˆancia e Professores do Ensino B´asico e Secund´ario, no qual houve um grande n´umero de reclama¸c˜oes por parte de professores que se sentiam “injusti¸cados” ao verem colegas da mesma ´area de docˆencia com classifi¸c˜ao inferior serem colocados em alguma escola antes deles pr´oprios o conseguirem. Este artigo despertou a minha aten¸c˜ao, n˜ao s´o pelo problema levantado no Concurso Nacional de Pro-fessores, como tamb´em pelo gosto pela ´area da Matem´atica em que se insere: a Matem´atica Discreta, em particular, a Teoria de Grafos.

Desenvolvimento do trabalho

O tema geral do trabalho ´e a resolu¸c˜ao de problemas de atribui¸c˜ao que generalizam a no¸c˜ao b´asica de constru¸c˜ao de matchings em grafos bipartidos. Como no conjunto dos v´ertices dos grafos bipartidos, em todos os problemas surgem dois conjuntos distintos e, como nos matchings, pretende-se emparelhar elementos de um deles com elementos do outro. A ideia ´e fazˆe-lo da melhor maneira poss´ıvel, sabendo que cada elemento de qualquer um dos conjuntos tem uma lista de preferˆencias sobre os elementos do outro que considera aceit´aveis.

(16)

permitem chegar a esse procedimento. O segundo problema ´e um problema semelhante ao anterior onde se tem em conta a competˆencia do trabalhador para as tarefas que sabe exe-cutar; o objectivo ´e fazer a distribui¸c˜ao de tarefas, de forma a que todos eles desempenhem uma tarefa e a soma das competˆencias seja m´axima. Para a resolu¸c˜ao deste problema ´e apresentado o Algoritmo de Kuhn-Munkres, que se baseia no algoritmo H´ungaro; s˜ao ainda apresentados os resultados que permitem chegar a este procedimento.

No segundo cap´ıtulo ´e apresentado um problema semelhante ao de atribui¸c˜ao de tare-fas tendo em conta a competˆencia dos trabalhadores, em que ´e acrescentada uma nova informa¸c˜ao: os trabalhadores tamb´em estabelecem uma ordem de preferˆencias sobre as tarefas dispon´ıveis. Este problema ´e conhecido como Problema de Casamentos, em que existem dois conjuntos, um de homens e outro de mulheres, em que cada elemento de cada conjunto estabelece uma ordem estrita sobre os elementos do conjunto oposto. O objectivo neste caso ´e encontrar um matching que compatibilize da melhor forma estas preferˆencias, um matching est´avel. Tendo em conta que a maior parte dos resultados sobre este tema tem como condi¸c˜ao inicial um problema de casamentos com listas de preferˆencias comple-tas, ´e apresentada uma forma de completar estas listas, uma vez que existem problemas de casamentos em que as listas de preferˆencias s˜ao incompletas. De seguida, ´e apresentado um algoritmo para determinar um matching est´avel para qualquer problema de casamentos; o resultado do procedimento descrito ´e o melhor poss´ıvel para os homens. Prova-hgse, assim, que qualquer problema de casamentos admite um matching est´avel. Prova-se ainda que, dados dois matchings M e M0 est´aveis de um problema de casamentos, se M ´e melhor do que M0 para todos os homens, ent˜ao M0 ´e melhor para as mulheres do que M , pelo que vai existir sempre um conflito entre homens e mulheres para tentar obter o melhor para cada um deles. De seguida, ´e apresentada uma defini¸c˜ao equivalente de estabilidade em matchings ([9]) atrav´es da qual se mostra que todos os matchings est´aveis tˆem o mesmo cardinal; mais, se um homem e uma mulher s˜ao emparelhados atrav´es de um matching est´avel, ent˜ao, em qualquer outro matching est´avel, eles v˜ao obter um companheiro.

(17)

no cap´ıtulo anterior: o Problema das Universidades. Para este problema, s˜ao considerados dois conjuntos, um de “universidades” e outro de “alunos”, em que cada elemento de cada um dos conjuntos estabelece uma ordem de preferˆencias sobre os elementos do conjunto oposto que considera aceit´aveis. Al´em disso, tem-se que cada aluno s´o pode ser colocado numa universidade e cada universidade pode admitir mais do que um aluno tendo em conta um limite m´aximo fixado (quota da universidade). De novo, o objetivo ´e encontrar uma atribui¸c˜ao entre os dois conjuntos que respeite as quotas dadas e que compatibilize da melhor forma as preferˆencias apresentadas: uma atribui¸c˜ao est´avel. ´E ent˜ao apresentado um algoritmo, com duas vers˜oes diferentes, que permite obter uma atribui¸c˜ao est´avel para qualquer problema de universidades; s˜ao assim obtidas duas atribui¸c˜oes est´aveis, uma opti-mal para os alunos e a outra optiopti-mal para as universidades. De seguida, ser˜ao apresentadas duas rela¸c˜oes de ordem total que permitem relacionar quaisquer duas atribui¸c˜oes est´aveis do ponto de vista de uma dada universidade ou de um dado aluno. Atrav´es destas rela¸c˜oes de ordem total, s˜ao definidas duas rela¸c˜oes de ordem parcial que pretendem comparar globalmente atribui¸c˜oes est´aveis; para cada uma delas, o conjunto de todas as atribui¸c˜oes est´aveis de um problema de universidades forma um reticulado distributivo. De seguida, vai-se ver qual das atribui¸c˜oes est´aveis ´e mais “justa” tanto para as universidades como para os alunos, tendo em conta a rela¸c˜ao de ordem parcial relativamente aos candidatos; este estudo ser´a feito atrav´es dos chamados mecanismos de atribui¸c˜ao. Assim, uma atribui¸c˜ao est´avel ser´a mais justa para os candidatos se, no caso de algum aluno melhorar o seu ranking para alguma universidade, ele ´e colocado numa universidade igual ou melhor `a que obteria antes de subir no ranking. Tendo em conta a mesma rela¸c˜ao de ordem, uma atribui¸c˜ao est´avel ser´a mais justa para as universidades se for resistente `a estrat´egia dos alunos; ou seja, mesmo que um aluno mude a sua lista de preferˆencias de modo a tentar obter uma universidade prefer´ıvel `a que obteria se n˜ao o fizesse, atrav´es dessa atribui¸c˜ao n˜ao o conseguiria.

(18)

jogadores-coluna, em que cada elemento de cada conjunto estabelece uma ordem de pre-ferˆencia sobre os elementos do conjunto oposto que considera aceit´aveis. Tem-se ainda que cada elemento de cada um dos conjuntos admite que lhe sejam atribu´ıdos um ou mais elementos do conjunto oposto, havendo um limite m´aximo para o n´umero deles que lhe s˜ao atribu´ıdos. A abordagem feita neste cap´ıtulo ´e semelhante `a que ´e feita no cap´ıtulo anterior. Da mesma forma, o objectivo ´e encontrar uma correspondˆencia entre os dois conjuntos de jogadores que respeite as quotas de cada um dos seus elementos e compatibilize da melhor forma as preferˆencias apresentadas, isto ´e, uma atribui¸c˜ao est´avel. ´E ent˜ao provado que existe uma atribui¸c˜ao est´avel para qualquer problema de atribui¸c˜ao muitos-para-muitos. Tem-se tamb´em que duas quaisquer atribui¸c˜oes est´aveis tˆem o mesmo n´umero de elementos tanto para os jogadores-linha como para os jogadores-coluna. De seguida ´e estabelecida uma forma de se comparar duas quaisquer atribui¸c˜oes est´aveis para os jogadores-linha e para os jogadores-coluna, concluindo-se que o conjunto de todas as atribui¸c˜oes est´aveis formam um retitculado distributivo. Analogamente ao que foi feito no cap´ıtulo anterior, quer-se determinar a atribui¸c˜ao est´avel que ´e mais “justa” para ambas as partes; para isso, v˜ao ser utilizados os mecanismos de atribui¸c˜ao. Em primeiro lugar, quer-se que, para esta atribui¸c˜ao est´avel µ, n˜ao exista uma outra atribui¸c˜ao (est´avel ou n˜ao) que seja prefer´ıvel a µ por todos os jogadores-linha, uma vez que, se isto acontecer, existe uma atribui¸c˜ao est´avel prefer´ıvel por todos os jogadores-linha a µ. Tem-se ainda que, tendo em conta a rela¸c˜ao de ordem para os jogadores-linha, uma atribui¸c˜ao ´e “justa” para estes se, no caso de algum deles melhorar o seu ranking na lista de preferˆencias de um jogador-coluna, ele ´

e atribu´ıdo a um conjunto de jogadores-coluna igual ou melhor ao que obteria antes da subida. Uma atribui¸c˜ao est´avel ´e “justa” para os jogadores-coluna se, para qualquer grupo de jogadores-linha que altere as suas preferˆencias e/ou quotas, nem todos os elementos deste grupo conseguem obter um conjunto de jogadores-coluna melhor do que o que obte-riam se n˜ao fizessem qualquer altera¸c˜ao, ou seja, a atribui¸c˜ao ´e resistente `a estrat´egia por parte dos jogadores-linha.

´

(19)
(20)
(21)

Cap´ıtulo 1

Problema de atribui¸

ao de tarefas

No decorrer deste cap´ıtulo v˜ao ser apresentados defini¸c˜oes e resultados de Teoria de Grafos necess´arios `a compreens˜ao do que vai ser tratado neste trabalho.

De seguida, ser˜ao apresentados dois problemas de atribui¸c˜ao de tarefas, que de certa forma introduzem os problemas tratados nos cap´ıtulos seguintes. Para cada um destes problemas, ´e apresentado um algoritmo de resolu¸c˜ao bem como os resultados que permitem chegar a esse procedimento. Assim, o primeiro problema ´e o de atribui¸c˜ao de tarefas, para o qual ´e utilizado o Algoritmo H´ungaro para encontrar a sua solu¸c˜ao; o segundo problema ´

e o de atribui¸c˜ao de tarefas tendo em conta as competˆencias dos trabalhadores, para o qual ´

e usado o Algoritmo de Kuhn-Munkres para a sua resolu¸c˜ao.

1.1

Conceitos e resultados b´

asicos

(22)

Os resultados apresentados podem ser encontrados em [9] e em [10].

Defini¸c˜ao 1.1.1. Um grafo G ´e um par ordenado de conjuntos (V, A), em que V ´e um conjunto finito de pontos e A ⊆ {{x, y} : x, y ∈ V e x 6= y}.

A cada elemento de V chama-se v´ertice e a cada elemento de A chama-se aresta. Dada uma aresta e1 = {x, y} de G, com x, y ∈ V e x 6= y, diz-se que e1 ´e incidente em

x e em y.

Por nota¸c˜ao, a aresta que une os v´ertices x e y ´e representada por {x, y}, como ´e de notar na defini¸c˜ao anterior; por abuso de nota¸c˜ao, por vezes escreve-se apenas xy para representar essa mesma aresta.

Usualmente, em vez de se apresentar uma lista de v´ertices e uma lista de aresta para definir um grafo, exibe-se uma figura formada por pontos e por linhas que ligam esses pontos. Cada v´ertice do grafo est´a associado a um ponto da figura e cada aresta, que une dois v´ertices quaisquer u e v do grafo, est´a associada a uma linha que une os pontos que representam os v´ertices u e v. Assim, na figura 1.1 ´e apresentado um exemplo de um grafo:

Figura 1.1: Exemplo de um grafo G.

O conjunto dos v´ertices de G ´e V = {v1, v2, v3, v4, v5, v6} e o conjunto das arestas ´e

A = {v1v2, v1v5, v1v6, v2v3, v3v4, v3v6, v4v6, v5v6}.

(23)

No grafo da figura 1.1, o v´ertice v1 tem grau 3, o v´ertice v2 tem grau 2 e v6 tem grau 4.

Defini¸c˜ao 1.1.3. Um grafo dirigido Gd ´e um par ordenado (V, Ad), em que V ´e um

conjunto finito de pontos, os v´ertices de Gd, e Ad ⊆ {(x, y) : x, y ∈ V (Gd) e x 6= y}, as

arestas orientadas de Gd.

Da defini¸c˜ao do conjunto das arestas de um grafo dirigido, conclui-se que as arestas (x, y) e (y, x) s˜ao distintas, para x, y ∈ V (Gd); al´em disso, se (x, y) ∈ Ad, diz-se que x ´e

a origem e y ´e a extremidade da aresta (x, y), ou que (x, y) ´e orientada de x para y, e a aresta representa-se por um arco orientado.

No exemplo da figura 1.2 tem-se um grafo dirigido que se pode obter do grafo da figura 1.1.

Figura 1.2: Exemplo de um grafo dirigido Gd.

O conjunto dos v´ertices de Gd ´e o mesmo de G da figura 1.1 e o conjunto das arestas ´e

Ad= {(v1, v2) , (v1, v6) , (v2, v3) , (v3, v4) , (v4, v6) , (v5, v1) , (v5, v6) (v6, v3)} .

Defini¸c˜ao 1.1.4. A vizinhan¸ca do v´ertice x ∈ V no grafo G = (V, A) ´e o conjunto NG(x) de v´ertices y ∈ V tais que xy ∈ A.

No exemplo da figura 1.1, a vizinhan¸ca de v1 ´e NG(v1) = {v2, v5, v6}; a vizinhan¸ca de v6

´

(24)

Defini¸c˜ao 1.1.5. A vizinhan¸ca do conjunto S ⊂ V no grafo G = (V, A) ´e o conjunto NG(S) de v´ertices y ∈ V tais que existe x ∈ S para o qual xy ∈ A.

No exemplo da figura 1.1, a vizinhan¸ca do conjunto S = {v1, v6} ´e NG(S) = V (G); a

vizinhan¸ca de S = {v2, v6} ´e NG(S) = {v1, v3, v4, v5}

Nota 1.1.1. Quando for claro de contexto qual ´e o grafo G em quest˜ao, usar-se-`a a nota¸c˜ao N (x) para representar NG(x), a vizinhan¸ca de x ∈ V (G) em G, e N (S) para representar

NG(S), a vizinhan¸ca de S ⊂ V (G) em G.

Defini¸c˜ao 1.1.6. Seja G = (V, A) um grafo. Um caminho em G ´e uma sequˆencia de v´ertices e arestas, todos distintos, da forma v1, e1, v2, e2, v3, ..., vn−1, en−1, vn, tal que

v1, v2, ..., vn∈ V , tal que ei = vivi+1 e ei ∈ A (G), para todo 1 ≤ i ≤ n − 1.

O comprimento de um caminho ´e igual ao n´umero de arestas que o comp˜oe; isto ´e, se o caminho ´e da forma v1, e1, v2, e2, v3, ..., vn−1, en−1, vn, o seu comprimento ´e n − 1.

Usualmente, um caminho ´e representado apenas pelos v´ertices que o comp˜oem; assim, o caminho v1, e1, v2, e2, v3, ..., vn−1, en−1, vn ´e representado por v1, v2, v3, ...vn−1, vn. No

exem-plo da figura 1.1, v1, v2, v3, v4, v6, v5 ´e um caminho de comprimento 5 e v5, v1, v6, v3, v4 ´e um

caminho de comprimento 4. ´E de salientar que os v´ertices de um caminho tˆem todos grau 2, excepto v1 e vn que tˆem grau 1.

Defini¸c˜ao 1.1.7. Seja G = (V, A) um grafo. Um ciclo em G ´e uma sequˆencia de v´ertices e arestas da forma v1, e1, v2, e2, v3, ..., vn−1, en−1,vn, en, e1, tal que vi 6= vj, com 1 ≤ i, j ≤ n

e i 6= j, ei = vivi+1, com 1 ≤ i ≤ n − 1, en= vnv1 e ei ∈ A (G), para todo 1 ≤ i ≤ n.

(25)

Usualmente, um ciclo ´e representado apenas pelos v´ertices que o comp˜oem; assim, o ciclo v1, e1, v2, e2, v3, ..., vn−1, en−1, vn, en, v1 ´e representado por v1, v2, v3, ..., vn−1, vn, v1. Na

figura 1.1, v1, v2, v3, v4, v6, v5, v1 ´e um ciclo de comprimento 6, enquanto que v3, v4, v6, v3

forma um ciclo de comprimento 3. ´E de notar que todos os v´ertices de um ciclo tˆem grau 2.

Defini¸c˜ao 1.1.8. Seja Gd = (V, Ad) um grafo dirigido. Um ciclo dirigido no grafo Gd

´

e uma sequˆencia (v1, e1, v2, e2, v3, . . . , vn−1, en−1, vn, en, v1), cujos elementos s˜ao

alternada-mente v´ertices e arestas orientadas (vi ∈ V e ej ∈ Ad, 1 ≤ i ≤ n e 1 ≤ j ≤ n − 1), tal que

vi 6= vj, com 1 ≤ i, j ≤ n e i 6= j, e, para cada 1 ≤ j ≤ n − 1, ej ´e uma aresta orientada

de vj para vj+1 e en ´e orientada de vn para v1.

Por vezes, um ciclo orientado ´e apenas descrito pela sequˆencia de v´ertices que o forma: (v1, v2, v3, . . . , vn−1, vn, v1), omitindo-se as arestas.

No exemplo da figura 1.2, o grafo dirigido Gdtem apenas um ciclo dirigido: (v3, v4, v6, v3)

que tem comprimento 3.

Defini¸c˜ao 1.1.9. Seja G = (V, A) um grafo; diz-se que G ´e bipartido se existem conjuntos V1, V2 ⊂ V , com V = V1 ∪ V˙ 2, tais que, para todo xy ∈ A, x ∈ V1 ⇔ y ∈ V2.

Na figura 1.3 est´a um exemplo de um grafo bipartido.

(26)

Defini¸c˜ao 1.1.10. Seja G = (V, A) um grafo; um matching ´e um conjunto M ⊂ A tal que, para todos xy, x0y0 ∈ M , xy ∩ x0y0 = ∅.

Na figura 1.4 est˜ao apresentados dois exemplos de matchings do grafo da figura 1.3.

Figura 1.4: Exemplo de dois matchings de um grafo bipartido.

As arestas a cheio representam as arestas dos matchings e as arestas a tracejado repre-sentam as restantes arestas do grafo (que n˜ao foram usadas nos matchings).

Defini¸c˜ao 1.1.11. Seja G = (V, A) um grafo. G diz-se conexo se e s´o se, dados quaisquer dois v´ertices u, v ∈ V (G), com u 6= v, existe um caminho em G que une u a v. Caso contr´ario o grafo diz-se desconexo.

Os grafos das figuras 1.1 e 1.3 s˜ao exemplos de grafos conexos; o grafo da figura 1.5 ´e um exemplo de um grafo desconexo.

Defini¸c˜ao 1.1.12. Seja G = (V, A) um grafo. Uma componente conexa C de G ´e um grafo C = (V0, A0), tal que V0 ⊂ V , A0 ⊂ A e:

1. A0 = {v1v2 ∈ A : v1, v2 ∈ V0};

2. C ´e conexo;

(27)

Na figura 1.5 est´a representado um grafo com v´arias componentes conexas.

Figura 1.5: Exemplo de um grafo com v´arias componentes conexas.

Este grafo tem trˆes componentes conexas; elas s˜ao:

- C1 = (V1, A1), com V1 = {v1, v2, v3} e A1 = {v1v2, v2v3, v3v1};

- C2 = (V2, A2), com V2 = {v4, v5} e A2 = {v4v5};

- C3 = (V3, A3), com V3 = {v6} e A3 = ∅.

Lema 1.1.1. Sejam M e M0 dois matchings de um grafo bipartido G. Ent˜ao qualquer componente conexa C do grafo G0 = (V (G) , M ∪ M0) ´e um caminho de comprimento maior ou igual a zero ou um ciclo de comprimento maior ou igual a quatro.

Demonstra¸c˜ao. Sejam M e M0 dois matchings de um grafo bipartido G = (V, A), com V = V1 ∪ V˙ 2. Seja G0 = (V (G) , M ∪ M0); quer-se ver de que forma s˜ao as componentes

conexas de G0. Da defini¸c˜ao de G0, sabe-se que os v´ertices deste grafo tˆem grau 0, 1 ou 2, no caso de n˜ao serem extremidade de qualquer aresta dos dois matchings, serem extremidade de uma aresta de um dos matchings ou serem extremidade de uma aresta de cada matching, respectivamente.

(28)

2. Se os v´ertices de uma componente conexa C tˆem todos grau 2, ent˜ao C ´e um ciclo. ´

E de notar que as arestas de C s˜ao alternadamente de M e de M0, uma vez que cada v´ertice tem, no m´aximo, grau 1 em cada matching. Para al´em disso, o ciclo n˜ao tem comprimento ´ımpar, caso contr´ario existiria um v´ertice com duas arestas incidentes do mesmo matching. Este comprimento tamb´em n˜ao ´e dois, j´a que, se isto acontecesse, existiriam no grafo G duas arestas distintas a unir os mesmos dois v´ertices. Tem-se ent˜ao que o comprimento de C ´e um n´umero par igual ou superior a quatro;

3. Suponha-se agora que a componente conexa C tem algum v´ertice de grau 1; seja v1um tal v´ertice. Suponha-se ainda que V (C) = {v1, v2, ..., vn}, com n > 1. Ent˜ao,

v1 tem apenas uma aresta que lhe ´e incidente, seja e1 = v1v2, em que v2 ´e a outra

extremidade de e1. Se v2 tem grau 1, ent˜ao a componente conexa C ´e constituida

por apenas uma aresta, ou seja, ´e um caminho de comprimento um e n = 2.

Suponha-se agora que v2 tem grau 2; ent˜ao existe uma aresta e2 = v2v3. Da defini¸c˜ao

de G0, como v2 tem grau 2, e1 pertence apenas a um dos matchings M ou M0;

suponha-se que e1 ∈ M . Logo, e2 ∈ M0. Se o v´ertice v3 tem grau 1, ent˜ao a

componente conexa C ´e um caminho de comprimento dois e n = 3.

Se v3 tem grau 2, o racioc´ınio ´e an´alogo ao que se fez para v2. Continuando com este

processo, conclui-se que C ´e um caminho, j´a que o v´ertice vn (diferente de v1) tem

grau 1; se isto n˜ao acontecesse, teria de haver uma aresta en= vnvi, com 1 ≤ i ≤ n−1,

uma vez que se supˆos que C tem apenas n v´ertices. Mas isto n˜ao pode acontecer, pois, por suposi¸c˜ao, v1 tem grau 1 e os restantes v´ertices tˆem grau 2 e, pela defini¸c˜ao

de G0, o grau de cada v´ertice n˜ao pode ser maior do que 2.

(29)

Defini¸c˜ao 1.1.13. Seja G = (V, A) um grafo; um matching completo em G ´e um matching M tal que, para todo x ∈ V , existe y ∈ V que verifica xy ∈ M .

Na figura 1.6, s˜ao apresentados dois exemplos de matchings para o grafo da figura 1.1, um n˜ao completo (em a)) e outro completo (em b)).

Figura 1.6: Exemplo de dois matchings num grafo.

Defini¸c˜ao 1.1.14. Seja G = (V, A) um grafo bipartido, com V = V1 ∪ V˙ 2; um matching

completo de V1 em V2 em G ´e um matching M tal que, para todo x ∈ V1, existe y ∈ V2

que verifica xy ∈ M .

Facilmente se vˆe que o matching apresentado na figura 1.4b) ´e um matching completo de V1 em V2; o matching da figura 1.4a) n˜ao ´e completo nem de V1 em V2 nem de V2 em

V1. De facto, n˜ao existe qualquer matching completo de V2 em V1.

O teorema seguinte ´e conhecido como o Teorema de Hall e estabelece um crit´erio para que num grafo bipartido qualquer se consiga ter pelo menos um matching completo. Teorema 1.1.1. Seja G = (V, A) um grafo bipartido, com V (G) = V1 ∪ V˙ 2. Ent˜ao G

cont´em um matching completo de V1 em V2 se e s´o se

|N (S)| ≥ |S| , para todo S ⊆ V1.

Demonstra¸c˜ao. Seja G = (V1 ∪ V˙ 2, A) um grafo bipartido. Comece-se por provar que a

(30)

todo x ∈ V1, |NG(x)| ≥ |NM(x)| = 1, pelo que |NG(S)| ≥ |NM(S)| = |S| , para todo S ⊆

V1, em que, por abuso de nota¸c˜ao, M representa o grafo cujas arestas s˜ao as do matching

M e os v´ertices as extremidades destas arestas em G.

Vai-se provar agora que se |N (S)| ≥ |S|, para todo S ⊆ V1, ent˜ao G tem um matching

completo de V1 em V2. Esta prova ir´a ser feita por indu¸c˜ao sobre |V1| = m.

Para m = 1 ´e f´acil ver que a afirma¸c˜ao ´e verdadeira: sabe-se que |N (V1)| ≥ |V1| = 1, pelo

que basta unir o (´unico) v´ertice de V1 a um v´ertice de N (V1) para se obter um matching

completo.

Vai-se tomar agora m ≥ 2 e considere-se verdadeira a afirma¸c˜ao para valores menores que m. Pode acontecer, ent˜ao, uma de duas coisas:

1. Para qualquer conjunto n˜ao vazio S ⊆ V1, com |S| = k < m, |N (S)| ≥ k + 1. Vai-se,

ent˜ao, tomar como aresta do matching pretendido uma qualquer aresta do grafo, seja xy ∈ A, com x ∈ V1 e y ∈ V2. Tem-se agora que, para todo o S ⊆ V1\ {x}, sendo

N0(S) = N (S) ∩ (V2\ {y}), |N0(S)| ≥ |N (S)| − 1 ≥ |S|. Logo, por hip´otese de

indu¸c˜ao, existe um matching completo M0 de V1\ {x} em V2\ {y}. Assim, M0∪ {xy}

´e um matching completo de V1 em V2.

2. Existe algum conjunto n˜ao vazio S0 ⊆ V1, com |S0| = k < m e |N (S0)| = k.

Por hip´otese de indu¸c˜ao, ´e poss´ıvel estabelecer um matching completo M0 de S0

em N (S0). Basta ent˜ao estabelecer, usando a hip´otese de indu¸c˜ao, um matching

completo M00 de X = V1\S0 (|X| = l) em Y = V2\N (S0); assim, h´a que provar

que, para todo S ⊆ X, |N0(S)| ≥ |S|, com N0(S) = N (S) ∩ Y . Suponha-se que esta condi¸c˜ao ´e falsa, isto ´e, que, para algum S1 ⊆ X, |N0(S1)| < |S1|; ent˜ao, como

|N (S0)| = |S0|,

|N (S0∪ S1)| = |N (S0) ∪ N (S1)| = |N (S0)| + |N0(S1)| < |S0| + |S1| = |S0∪ S1|

uma vez que S = S0∪S˙ 1, o que contradiz a hip´otese. Logo, para todo S ⊆ X,

(31)

X em Y , pelo que M0∪ M00 ´e um matching completo de V

1 em V2.

Tem-se assim provado o resultado pretendido.

O resultado anterior foi a primeira caracteriza¸c˜ao de matchings completos em grafos bipartidos, estabelecido por Hall em 1935. A prova aqui apresentada ´e atribu´ıda a Halmos e Vaughan e ´e mais simples do que a apresentada pelo autor do teorema; note-se ainda que ambas as provas n˜ao s˜ao construtivas, isto ´e, n˜ao apresentam uma forma de determinar tais matchings. Nas duas pr´oximas sec¸c˜oes, vai-se apresentar uma forma de se encontrar, para qualquer grafo bipartido, matchings completos ou provar que estes n˜ao existem, em dois problemas diferentes.

1.2

Algoritmo H´

ungaro

Suponha-se que se tem o seguinte problema: uma empresa tem n tarefas distintas x1, x2,

..., xn para serem desempenhadas e tem dispon´ıveis n trabalhadores distintos y1, y2, ...,

yn, em que cada um deles est´a qualificado para uma ou mais dessas tarefas. A pergunta

´

e: ser´a poss´ıvel atribuir a todos os trabalhadores uma tarefa para a qual est´a qualificado? Se for poss´ıvel, como fazˆe-lo?

Este problema pode ser modelado por um grafo bipartido G = (V, A), tal que V = X ˙∪ Y , em que X ´e o conjunto das tarefas e Y ´e o conjunto dos trabalhadores; tem-se ainda que xiyj ∈ A, 1 ≤ i, j ≤ n, se e s´o se o trabalhador yj est´a qualificado para desempenhar a

tarefa xi. Pretende-se, assim, encontrar um matching completo em G ou verificar que um

(32)

forma de encontrar uma solu¸c˜ao para este problema ´e utilizando o algoritmo H´ungaro. Este algoritmo baseia-se num resultado de Berge de 1957 que caracteriza os matchings com um n´umero m´aximo de arestas de um grafo G, ditos matchings maximais, usando a no¸c˜ao de caminho “M -aumentativo”.

Defini¸c˜ao 1.2.1. Seja G = (V, A) um grafo e M um matching em G.

1. M diz-se maximal se n˜ao existe qualquer matching M0 em G tal que |M0| > |M |. 2. Um v´ertice v ∈ V (G) diz-se M -saturado se alguma aresta de M ´e incidente em v;

caso contr´ario, v diz-se M -insaturado.

3. Um caminho v0v1. . . vn diz-se um caminho M -alternado se ´e um caminho cujas

arestas s˜ao, alternadamente, de M e de A\M .

4. Um caminho v0v1. . . vn diz-se um caminho M -aumentativo se ´e um caminho M

--alternado tal que v0 e vn s˜ao v´ertices M -insaturados, em particular v0 e vn n˜ao tˆem

companheiros por M .

Com isto, pode-se enunciar o teorema de Berge referido anteriormente. A prova que se vai apresentar encontra-se em [10]; a prova do mesmo feita pelo autor, encontra-se em [8]. Teorema 1.2.1. Sejam G um grafo e M um matching em G. M ´e um matching maximal se e s´o se G n˜ao cont´em qualquer caminho M -aumentativo.

Demonstra¸c˜ao. Sejam G = (V, A) um grafo e M um matching em G. Comece-se por supor que M ´e um matching maximal e que G cont´em um caminho M -aumentativo P : v0v1. . . v2mv2m+1. Defina-se M0 ⊆ A da seguinte forma:

M0 = (M \ (v1v2, v3v4, . . . , v2m−1v2m)) ∪ (v0v1, v2v3, . . . , v2mv2m+1) .

(33)

o que contraria o facto de M ser um matching maximal. Logo, G n˜ao cont´em caminhos M -aumentativos.

Suponha-se agora que existe um matching M em G tal que este grafo n˜ao cont´em qualquer caminho M -aumentativo e suponha-se que M n˜ao ´e um matching maximal. Seja M0 um matching maximal em G; sabe-se ent˜ao que |M0| > |M |. Seja agora H o grafo cujas arestas s˜ao (M \M0) ∪ (M0\M ) e os v´ertices s˜ao as extremidades destas arestas. Cada v´ertice deste grafo tem grau um ou dois, j´a que apenas ´e adjacente a uma aresta de M ou de M0 ou ´e adjacente a uma aresta de ambos os matchings, respectivamente. Ent˜ao as componentes conexas de H s˜ao ciclos de comprimento par ou caminhos, ambos com arestas alternadamente em M e em M0, pelo que foi visto no lema 1.1.1. Como |M0| > |M | em G, o mesmo acontece em H, pelo que uma das componentes deste grafo tem de ser um caminho v0v1. . . vn tal que v0v1, vn−1vn∈ M0. Como v0 e vn s˜ao M -insaturados em H,

tamb´em o s˜ao em G, pelo que este caminho ´e M -aumentativo, o que contradiz o que se supˆos.

Tem-se assim provado o que se pretendia.

Observa¸c˜ao 1.2.1. A implica¸c˜ao n˜ao trivial do teorema de Hall (se |N (S)| ≥ |S|, para todo S ⊆ V1, ent˜ao G = (V1 ∪ V˙ 2, A) cont´em um matching completo de V1 em V2) decorre

do teorema de Berge.

Suponha-se ent˜ao que G = (V1 ∪ V˙ 2, A) ´e um grafo bipartido que verifica |N (S)| ≥

|S| , para todo S ⊆ V1, mas G n˜ao cont´em qualquer matching completo de V1 em V2. Seja

M0 um matching maximal em G; por suposi¸c˜ao, existe pelo menos um v´ertice u ∈ V1 que

´

e M0-insaturado.

(34)

todos os v´ertices de S\ {u} s˜ao M0-saturados, isto ´e, est˜ao ligados por M0 a algum v´ertice de T . Tem-se ent˜ao que |T | = |S| − 1.

Por outro lado, N (S) = T :

- T ⊆ N (S) porque existe uma aresta de M0 que une cada v´ertice de T a um v´ertice de S;

- Quer-se ver agora que N (S) ⊆ T . Seja v2 ∈ N (S); quer-se ver que v2 ∈ T , isto

´e, que existe um caminho M0-alternado que une v2 a u. Seja v1 ∈ S um v´ertice

para o qual v1v2 ∈ A. Sabe-se que existe um caminho P M0-alternado entre v1 e u;

como estes v´ertices est˜ao ambos em S e G ´e um grafo bipartido, P tem um n´umero par de arestas, pelo que a aresta de P incidente em v1 pertence a M0. Portanto, se

v1v2 ∈ M0, ent˜ao esta aresta pertence a P ; se v1v2 ∈ M/ 0, P ∪ {v1v2} ´e um caminho

M0-alternado. Em qualquer um dos casos existe um caminho M0-alternado entre u e v2, pelo que v2 ∈ T .

Conclui-se ent˜ao que |N (S)| = |T | = |S| − 1 < |S|, o que contraria o que foi suposto. Logo, M0 ´e um matching completo.

O algoritmo h´ungaro come¸ca com um matching qualquer M no grafo bipartido G = (X ˙∪ Y, A) e constr´oi um matching completo se ele existir ou apresenta um conjunto de v´ertices que n˜ao verifica o teorema de Hall. Assim, dado um matching M em G, o algoritmo come¸ca por ver se todos os v´ertices s˜ao saturados por M e no caso de n˜ao o serem procura um caminho M -aumentativo com in´ıcio num dos v´ertices M -insaturados. Se este caminho existir, constr´oi um novo matching de maior cardinal usando essas arestas de acordo com o teorema de Berge: basta fazer com que, neste caminho, as arestas de M passem a ser de A\M e vice-versa.

(35)

M -alternada H com ra´ız v. Uma ´arvore ´e um grafo ac´ıclico (isto ´e, ´e um grafo sem c´ıclos) conexo; uma ´arvore M -alternada com ra´ız em v ´e uma ´arvore que ´e constru´ıda a partir de v e que verifica as seguintes propriedades: v ´e um dos v´ertices desta ´arvore e, qualquer que seja o v´ertice x da ´arvore, existe um ´unico caminho que liga v a x e este ´e M -alternado.

Vai-se agora descrever o procedimento de constru¸c˜ao de uma ´arvore M -alternada H de raiz v. Inicialmente, esta ´arvore ´e constitu´ıda apenas pelo v´ertice v; a sua constru¸c˜ao ´e tal que, a cada passo, se verifique uma das seguintes possibilidades:

(1) todos os v´ertices de H excepto v s˜ao M -saturados e o seu vizinho por M est´a em H, (2) existe em H algum v´ertice, para al´em de v, que ´e M -insaturado.

No caso de se verificar (1), sejam S = V (H) ∩ X e T = V (H) ∩ Y ; da defini¸c˜ao de T , tem-se que T ⊆ N (S). Daqui vem que:

• ou T = N (S):

Tem-se que os v´ertices de S\ {v} est˜ao ligados por M a um e um s´o v´ertice de T ; logo, |T | = |S| − 1 < |S|, pelo que |N (S)| = |T | < |S|. Conclui-se ent˜ao, pelo teorema de Hall, que o grafo G n˜ao admite qualquer matching completo de X em Y . • ou T $ N (S):

Sabe-se que existe um v´ertice y ∈ Y tal que y ∈ N (S) \T . Seja x ∈ S um v´ertice tal que xy ∈ A; tem-se que ou x = v, pelo que xy /∈ M por defini¸c˜ao de v, ou x 6= v, donde xy /∈ M , pois x ´e M -saturado em H e M ´e um matching. Portanto, em qualquer um dos casos, a aresta xy n˜ao est´a no matching M . Tem-se agora duas hip´oteses a considerar:

(36)

- y ´e M -insaturado em G, ent˜ao acrescenta-se a H o v´ertice y e a aresta xy e vai-se para ao caso (2).

No caso de se verificar (2), seja w o v´ertice distinto de v que ´e M -insaturado em G; tem-se que o caminho que une v a w ´e M -aumentativo, terminando a constru¸c˜ao de H.

Vai-se agora aplicar a constru¸c˜ao da `arvore M -alternada a um grafo bipartido, no qual se define um matching M , que n˜ao ser´a completo. Considere-se ent˜ao o grafo bipartido da figura 1.7.

Figura 1.7: Matching bipartido.

Nesta grafo, est˜ao representadas trˆes arestas de forma diferente: s˜ao as arestas do match-ing inicial, M = {x2y2, x3y3, x5y5}. Como ´e de notar, M n˜ao ´e um matching completo pois

x1 e x4 n˜ao tˆem tarefas atribu´ıdas por M . A `arvore M -alternada ´e constru´ıda a partir

de um v´ertice M -insaturado; vai-se ent˜ao construir a `arvore com ra´ız em x1 e seja H o

grafo cujos v´ertices e arestas s˜ao os v´ertices e as arestas desta `arvore. Inicialmente, H ´e apenas constitu´ıda por x1. Como a vizinhan¸ca deste v´ertice n˜ao ´e vazia, acrescenta-se a

H os v´ertices que est˜ao nesta vizinhan¸ca, y2 e y3, bem como as arestas que os unem a x1.

Obtem-se a `arvore da figura 1.8.

Figura 1.8: Constru¸c˜ao da ´arvore M -alternada de ra´ız x1 - in´ıcio.

(37)

pode ser acrescentada ao matching M , obtendo um novo matching com mais uma aresta. Contudo y2 e y3 s˜ao M -saturados, pelo que se acrescenta a H as arestas de M incidentes

neste dois v´ertices, bem como os dois v´ertices na outra extremidade, x2 e x3. Obtem-se,

assim, a `arvore H da figura 1.9.

Figura 1.9: Constru¸c˜ao da ´arvore M -alternada com ra´ız em x1.

H´a que ver, agora, qual ´e a vizinhan¸ca dos v´ertices x2 e x3; se dela fizer parte v´ertices

que ainda n˜ao estejam na ´arvore, estes s˜ao acrescentados assim como as arestas que os unem a algum daqueles v´ertices. Neste exemplo, apenas se vai acrescentar y1, bem como

a aresta x2y1, obtendo-se a ´arvore da figura 1.10.

Figura 1.10: Constru¸c˜ao da ´arvore M -alternada com ra´ız em x1 - ´arvore final.

Como y1 ´e M -insaturado, termina a constru¸c˜ao de H, pelo ponto (2). Note-se que

apenas x1 e y1 s˜ao M -insaturados e que apenas existe um caminho em H que une estes

(38)

caminho passarem a ser arestas de A\M e vice-versa, acrescenta-se uma aresta ao matching inicial. Obt´em-se portanto o matching M0 = {x1y2, x2y1, x3y3, x5y5}.

Tendo em conta o que foi visto anteriormente, vai-se apresentar agora a descri¸c˜ao do algo-ritmo H´ungaro. Assim, dado um grafo bipartido G = (X ˙∪ Y, A), com X = {x1, x2, ..., xn}

e Y = {y1, y2, ..., yn}, este algoritmo pode ser descrito da seguinte forma:

1. Considere-se M um matching qualquer em G.

2. Se M faz corresponder a todos os elementos de X um elemento de Y , ent˜ao M ´e um matching completo. Termina o algoritmo.

3. Sen˜ao, existe em X pelo menos um v´ertice v ao qual M n˜ao faz corresponder qualquer elemento de Y .

4. Construa-se a ´arvore M -alternada com ra´ız em v, como foi descrito anteriormente. 5. Se n˜ao existe nesta ´arvore algum v´ertice M -insaturado, para al´em de v, ent˜ao n˜ao ´e

poss´ıvel acrescentar mais arestas a M e n˜ao existe qualquer matching completo de X em Y . Termina o algoritmo.

6. Se existe um v´ertice M -insaturado u 6= v naquela ´arvore, ent˜ao o caminho que une v a u ´e M -aumentativo. Neste caminho, as arestas de M passam a ser de A\M e vice-versa; substitui-se ent˜ao M por este novo matching com mais uma aresta. Retoma-se o ponto 2.

Vai-se agora aplicar este algoritmo a um grafo bipartido, para que se perceba como funciona. Considere-se o exemplo do grafo bipartido apresentado na figura 1.7, no qual j´a est´a representado um matching inicial M . A partir desde matching, j´a foi constru´ıda a ´

arvore M -alternada com ra´ız em x1, na qual existe um ´unico caminho (M -aumentativo)

que une x1 a y1. Neste caminho, faz-se o que ´e descrito no ponto 6 do algoritmo obtendo-se

(39)

Figura 1.11: Novo matching M .

Este matching ainda n˜ao ´e um matching completo, pois x4 n˜ao tem uma tarefa atribu´ıda

por M . Como N (x4) 6= ∅, pode-se construir a ´arvore M -alternada com ra´ız em x4,

obtendo--se a ´arvore da figura 1.12.

Figura 1.12: ´Arvore M -alternada com ra´ız em x4.

Neste caso, todos os v´ertices da ´arvore, excepto x4, s˜ao M -saturados e, para S =

{x1, x3, x4}, N (S) = {y2, y3}. Conclui-se ent˜ao que |N (S)| < |S|, logo, pelo teorema

de Hall, G n˜ao cont´em qualquer matching completo, terminando o algoritmo. Encontrou--se assim um matching maximal para o grafo da figura 1.7, M = {x1y2, x2y1, x3y3, x5y5},

que tal como foi visto n˜ao ´e completo nem existe qualquer matching completo para o problema em causa.

(40)

1.3

Algoritmo de Kuhn-Munkres

No problema anterior, n˜ao h´a distin¸c˜ao, por parte da empresa, entre os trabalhadores qua-lificados para uma determinada tarefa. Mas existem casos em que a empresa necessita ter em conta a competˆencia do trabalhador para desenvolver as tarefas para as quais est´a qualificado. Assim, considere-se que uma empresa tem n tarefas distintas x1, x2, ..., xn

para serem desempenhadas e tem dispon´ıveis n trabalhadores distintos y1, y2, ..., yn, em

que cada um deles est´a qualificado para uma ou mais dessas tarefas e cada trabalhador tem um certo n´ıvel de competˆencia para desempenhar cada tarefa para a qual est´a qualifi-cado. O objectivo neste problema ´e obter uma correspondˆencia trabalhador-tarefa, com n pares, tendo em conta as competˆencias dos trabalhadores, de forma a que estas sejam as melhores poss´ıveis, o que vai ser traduzido por maximixar a “soma” das competˆencias dos trabalhadores atribu´ıdos `as tarefas dispon´ıveis.

O problema apresentado pode ser modelado por um grafo bipartido completo G = (V, A), tal que V = X ˙∪ Y , em que X ´e o conjunto das tarefas e Y ´e o conjunto dos trabalhadores. Um grafo bipartido G = (V, A), com V = X ˙∪Y , diz-se completo se, para todo o v´ertice x ∈ X e y ∈ Y a aresta xy est´a em A. Para este problema, h´a que acrescentar uma informa¸c˜ao extra, `a qual se chama peso nas arestas. Este peso ´e representado pela fun¸c˜ao f : A → Z+0, tal que f (xiyj), com xi ∈ X, yj ∈ Y e xiyj ∈ A, ´e a competˆencia que o

trabalhador yj tem para realizar a tarefa xi; tal como se conclui da defini¸c˜ao da fun¸c˜ao

f , a competˆencia de um trabalhador para uma determinada tarefa ´e representada por um n´umero inteiro n˜ao negativo podendo existir trabalhadores com a mesma competˆencia para desempenhar uma determinada tarefa. No entanto, nenhum trabalhador tem a mesma competˆencia para desempenhar tarefas diferentes. O objectivo do problema ´e encontrar em G um matching completo cuja soma dos pesos nas arestas ´e m´aximo, a que se chamar´a matching optimal .

(41)

algoritmo baseia-se no facto de, usando uma etiquetagem conveniente dos v´ertices a partir do peso nas arestas, se poder assegurar que certos matchings s˜ao optimais. Para perceber o algoritmo, vai-se definir essa equiquetagem dos v´ertices e os matchings definem-se a partir dela.

Dado um grafo bipartido G = (V, A), com V = X ˙∪ Y , com pesos nas arestas definidos atrav´es da fun¸c˜ao f : A → Z+0, uma etiquetagem conveniente dos v´ertices ´e uma fun¸c˜ao l : V (G) → R, tal que, para todo x ∈ X e todo y ∈ Y , l (x) + l (y) ≥ f (xy), em que l (v) ´e a etiqueta do v´ertice v. Dada uma etiquetagem conveniente dos v´ertices l num grafo G, denota-se por Al o seguinte conjunto

Al= {xy ∈ A : l (x) + l (y) = f (xy)} .

Defina-se ainda Gl como sendo o grafo cujo conjunto das arestas ´e Al e o conjunto dos

v´ertices ´e V (G). Com o resultado seguinte, ir´a perceber-se de que forma o grafo Gl ajuda

na constru¸c˜ao de um matching optimal em G.

Teorema 1.3.1. Seja l uma etiquetagem conveniente dos v´ertices do grafo bipartido com-pleto G = (V, A) com peso nas arestas. Se Gl cont´em um matching completo M0, ent˜ao

M0 ´e um matching optimal de G.

Demonstra¸c˜ao. Sejam G = (V, A) um grafo bipartido completo com peso nas arestas e l uma etiquetagem conveniente dos v´ertices de G. Suponha-se que Gl cont´em um matching

completo M0. Como V (Gl) = V (G), M0 tamb´em ´e um matching completo de G. Da

defini¸c˜ao de Gl, sabe-se que l (x) + l (y) = f (xy), para todo xy ∈ M0. Represente-se por

f (A0) a soma de todos os pesos das arestas do subconjunto A0 ⊆ A; tem-se ent˜ao que f (M0) = X

e∈M0

f (e) =X

v∈V

l (v)

(42)

agora M um matching completo qualquer em G; ent˜ao f (M ) = X e∈M f (e) ≤X v∈V l (v)

uma vez que, para todo xy ∈ A, f (xy) ≤ l (x) + l (y). Tem-se ent˜ao que f (M ) ≤ f (M0), para qualquer outro matching completo M , pelo que M0 ´e um matching optimal.

Assim sendo, basta encontrar um matching completo em Gl, j´a que esse matching ´e

optimal em G. Vai-se ver agora uma descri¸c˜ao do algoritmo de Kuhn-Munkres, para a obten¸c˜ao de matchings optimais. Considere-se ent˜ao um grafo G com peso nas arestas e defina-se a partir deste uma etiquetagem conveniente dos v´ertices l, que determina o grafo Gl; determina-se um matching M arbitr´ario neste grafo e aplica-se o algoritmo H´ungaro

para se determinar um matching completo. Se Gl admitir um tal matching, ent˜ao este

´

e optimal em G, pelo teorema anterior. Caso contr´ario, o algoritmo H´ungaro determina um matching M0 que n˜ao ´e completo, por existir em Gl um conjunto S ⊆ X tal que

|NGl(S)| < |S|. Ou seja, existe em Gl uma ´arvore H, M

0-alternada, que n˜ao cont´em

qualquer caminho M0-aumentativo. H´a ent˜ao que alterar l para uma nova etiquetagem conveniente dos v´ertices ˆl de forma a que Gˆl contenha M0 e H e permita que esta ´arvore

“cres¸ca” de forma a admitir um caminho M0-aumentativo em Gˆl. Seja T = NGl(S); para

obter ˆl, h´a que calcular αl determinado por

αl= min x∈S y /∈T

{l (x) + l (y) − f (xy)} ;

(43)

Note-se que αl > 0, pois este valor ´e apenas calculado para arestas xy ∈ A (G) tais que

x ∈ S e y /∈ T , pelo que xy /∈ Gl, ou seja, l (x) + l (y) 6= f (xy); conclui-se ent˜ao que

se obt´em uma etiquetagem distinta da anterior. A obten¸c˜ao de uma nova etiquetagem ´e repetida tantas vezes quantas as necess´arias at´e que Gl admita um matching completo.

Vai-se agora aplicar este algoritmo ao exemplo seguinte, para que se perceba como fun-ciona. O grafo bipartido em causa, G = (X ˙∪ Y, A), tem dez v´ertices (cinco em cada uma das parti¸c˜oes X e Y ) e, tal como ´e exigido para este problema, ´e um grafo completo com peso nas arestas. Para que seja mais percept´ıvel os valores que toma a fun¸c˜ao peso, vai-se tomar uma matriz P quadrada de dimens˜ao 5 onde estes s˜ao apresentados: a linha i da matriz corresponde `a tarefa xi ∈ X, a coluna j ao trabalhador yj ∈ Y e a entrada da

matriz P que corresponde `a intersec¸c˜ao da linha i com a coluna j ´e o peso da aresta xiyj

(com 1 ≤ i, j ≤ 5). A matriz P para este exemplo ´e a seguinte:

P =            3 5 5 4 1 2 2 0 2 2 2 4 4 1 0 0 1 1 0 0 1 2 1 3 3           

O primeiro passo ´e estabelecer uma etiquetagem conveniente dos v´ertices, l, e determinar Gl. Vai-se escolher para l a seguinte fun¸c˜ao:

l (v) =   

maxy∈Y f (vy) , se v ∈ X

0, se v ∈ Y

(44)

           3 5 5 4 1 2 2 0 2 2 2 4 4 1 0 0 1 1 0 0 1 2 1 3 3            5 2 4 1 3 0 0 0 0 0

Daqui vem que Gl ´e o grafo representado na figura 1.13.

Figura 1.13: O grafo Gl.

Pelo que foi feito no exemplo do problema anterior (de obten¸c˜ao de matchings maximais num grafo bipartido), sabe-se que este grafo n˜ao cont´em qualquer matching completo, j´a que NGl({x1, x3, x4}) = {y2, y3}; o matching final obtido foi M = {x1y2, x2y1, x3y3, x5y5}

e a ´arvore H sem caminhos M -aumentativos ´e a apresentada na figura 1.12. H´a ent˜ao que mudar a etiquetagem conveniente dos v´ertices, consoante ´e explicado na descri¸c˜ao do algoritmo. Ou seja, para cada aresta xy de G, com x ∈ {x1, x3, x4} e y /∈ {y2, y3}, h´a que

calcular o valor de l (x) + l (y) − f (xy) e escolher o menor deles. Para o problema em causa estes valores s˜ao apresentados na matriz seguinte, em que cada linha i corresponde a uma tarefa xi e cada coluna j a um trabalhador yj.

(45)

Tem-se ent˜ao que αl = 1, obtendo-se, assim, a seguinte etiquetagem:            3 5 5 4 1 2 2 0 2 2 2 4 4 1 0 0 1 1 0 0 1 2 1 3 3            4 2 3 0 3 0 1 1 0 0

sendo o grafo Gl correspondente o representado na figura 1.14.

Figura 1.14: O grafo Gl associado `a nova etiquetagem conveniente dos v´ertices.

Aplicando o algoritmo H´ungaro a este grafo, obt´em-se o seguinte matching completo para Gl: M = {x1y4, x2y1, x3y3, x4y2, x5y5}; tem-se assim um matching maximal para G.

´

E de notar que tamb´em se pode ter o seguinte matching completo de Gl:

M0 = {x1y4, x2y1, x3y2, x4y3, x5y5} .

Este matching M0 ´e igualmente maximal em G.

1.4

Conclus˜

ao

(46)

n˜ao ´e construtiva. Assim, de seguida apresentou-se o algoritmo H´ungaro, que ´e uma forma de se encontrar um matching completo num grafo bipartido, ou mostrar que um tal matching n˜ao existe. Este algoritmo tem por base um resultado que caracteriza os matchings maximais de um grafo bipartido, o teorema de Berge. No seguimento deste algoritmo (associado `a resolu¸c˜ao de um problema de atribui¸c˜ao de tarefas), foi apresentado o algoritmo de Kuhn-Munkres, o qual tem como objetivo encontrar matchings optimais num grafo bipartido completo com peso nas arestas; este algoritmo est´a tamb´em associado `

a resolu¸c˜ao de problemas de atribui¸c˜ao de tarefas tendo em conta a competˆencia dos trabalhadores, que tem por base um resultado que caracteriza os matchings optimais de um grafo bipartido com peso nas arestas a partir de um matching completo num grafo a ele associado com uma etiquetagem conveniente dos v´ertices.

´

E natural agora formular, no seguimento dos problemas anteriores, a quest˜ao que deu origem `a no¸c˜ao de estabilidade em matchings tratada neste trabalho.

(47)

Cap´ıtulo 2

Matchings est´

aveis

Pretende-se com este cap´ıtulo estudar a no¸c˜ao de estabilidade em matchings de um dado grafo bipartido com peso nas arestas. Esta no¸c˜ao de estabilidade foi introduzida por Gale e Shapley em [12]; neste artigo ´e utilizada a linguagem de casamentos e vai ser essa a que se vai utilizar ao longo deste cap´ıtulo. Os resultados apresentados neste cap´ıtulo podem ser encontrados em [12] e em [13].

Vai-se ent˜ao considerar dois conjuntos distintos de “homens” e “mulheres” e cada elemen-to de cada um deles ordena os elemenelemen-tos do outro segundo uma certa ordem de preferˆencias, isto ´e, cada mulher estabelece uma ordem de preferˆencias no conjuntos dos homens e vice--versa. Deste modo, um conjunto de casamentos, isto ´e, um matching, ser´a est´avel se n˜ao fˆor poss´ıvel para qualquer par n˜ao-casado conseguir melhorar a condi¸c˜ao de ambos, do homem e da mulher, se passarem a estar casados.

(48)

ainda dada uma no¸c˜ao equivalente de estabilidade de um matching e alguns resultados decorrentes desta.

2.1

A no¸

ao de estabilidade.

No in´ıcio dos anos sessenta, Gale introduziu a no¸c˜ao de estabilidade e conjecturou que qualquer “problema de casamentos” admite uma solu¸c˜ao est´avel. Shapley deu uma prova construtiva da existˆencia de solu¸c˜ao, isto ´e, um algoritmo que a permite obter. Vai-se ent˜ao de seguida apresentar este resultado cl´assico, bem como algumas considera¸c˜oes e resultados posteriores, em particular, a compara¸c˜ao entre diferentes matchings est´aveis.

(49)

forma:

A: a b c ... z

Com esta lista fica-se a saber que o homem A prefere a mulher a a qualquer outra, prefere ficar com b a ficar com c, ..., e a mulher z ´e a que ele menos gosta de todas as que conhece. Assim, um problema de casamentos ´e representado por um grafo bipartido com peso nas arestas para ambas as extremidades. Na figura 2.1 est´a representado um exemplo de um problema de casamentos, no qual quanto maior ´e o peso na aresta no lado do homem (da mulher), melhor ´e o rankimg da mulher (do homem) na extremidade oposta da aresta.

Figura 2.1: Exemplo de um problema de casamentos.

Como se vˆe nesta figura, existem trˆes homens, A, B e C, e trˆes mulheres, a, b e c; as listas de preferˆencias para este problema s˜ao:

A: a a: C A B

B : c a b b: B

C : c a c: B C

Neste exemplo tem-se que A apenas conhece a mulher a; se n˜ao fˆor esta a sua noiva, A prefere ficar solteiro. J´a o homem B tem a mulher c no primeiro lugar da sua lista, de seguida tem a mulher a e a que ele menos gosta ´e a mulher b. De forma an´aloga se interpreta as restantes listas de preferˆencias.

(50)

homem estabelece as suas preferˆencias sobre as mulheres que conhece e outra lista em que cada mulher estabelece as suas preferˆencias sobre os homens que conhece. Se o conjunto dos homens e o conjunto das mulheres tˆem ambos n elementos, o problema de casamentos diz-se de ordem n.

´

E de salientar que o conjunto dos homens e o cunjunto das mulheres n˜ao tˆem de ter o mesmo n´umero de elementos, tal como ´e referido em [5] e em [12]. Neste cap´ıtulo, apenas ser˜ao apresentados resultados para problemas de casamentos em que o n´umero de homens e de mulheres ´e o mesmo.

Para simplificar a escrita, ser´a usada a seguinte nota¸c˜ao: dados dois homens A e B e duas mulheres a e b,

a ∈ A ⇔ a est´a na lista de preferˆencias de A A ∈ a ⇔ A est´a na lista de preferˆencias de a

aAb ⇔ A prefere a a b ou a ∈ A e b /∈ A AaB ⇔ a prefere A a B ou A ∈ a e B /∈ a

Dado um problema de casamentos de ordem n, em que H = {A1, A2, ..., An} ´e o conjunto

dos homens e F = {a1, a2, ..., an} ´e o conjunto das mulheres, um matching M neste

problema ´e um conjunto de pares da forma Aiaj, tal que Ai ´e um homem, aj´e uma mulher,

com 1 ≤ i, j ≤ n, e nenhum homem est´a casado com mais que uma mulher e vice-versa. ´

(51)

Defini¸c˜ao 2.1.1. Sejam {A1, A2, ..., An} um conjunto de homens e {a1, a2, ..., an} um

con-junto de mulheres, tal que cada Ai tem uma lista de preferˆencias para os aj e cada aj tem

uma lista de preferˆencias para os Ai, com 1 ≤ i, j ≤ n. Ent˜ao {A1a1, A2a2, ..., Anan} ´e um

matching est´avel se e s´o se:

(i) ak ∈ Ak e Ak ∈ ak para 1 ≤ k ≤ n;

(ii) n˜ao existem k e l tais que AlakAk e akAlal, com 1 ≤ k, l ≤ n.

Usando esta defini¸c˜ao, verifica-se que o matching M apresentado para o exemplo anterior n˜ao ´e est´avel, j´a que se tem BcC e cBb a ocorrer simultaneamente.

Dado um problema de casamentos de ordem n, o objectivo ´e encontrar um matching est´avel em que se formem n casais ou o maior n´umero de casais poss´ıvel. Vamos ver que uma das formas de resolver o problema de encontrar um matching est´avel ´e recursiva; ou seja, num problema de casamentos de ordem n, fixado um casamento Aa, em que A ´e um homem e a ´e uma mulher, basta encontrar um matching est´avel num problema de casamentos sem A e a, de ordem n − 1. Para isso, vai-se provar o seguinte resultado: Lema 2.1.1. Num problema de ordem n, existe um matching est´avel que cont´em o casal Anan se e s´o se an ∈ An, An ∈ an e existe um matching est´avel no problema B de ordem

n − 1 definido por:

• o homem Ai do problema inicial corresponde ao homem Bi no problema B;

• a mulher aj do problema inicial corresponde `a mulher bj no problema B;

• bi ∈ Bj ⇔ ai ∈ Aj e ∼ (AjanAn e anAjai)

• Bi ∈ bj ⇔ Ai ∈ aj e ∼ (ajAnan e AnajAi)

• biBjbk⇔ aiAjak ou bk ∈ B/ j

(52)

para 1 ≤ i, j, k ≤ n − 1.

Demonstra¸c˜ao. Suponha-se que existe um matching est´avel M em A em que um dos “ca-sais” ´e Anan. Considere-se agora um problema de casamentos B igual a A, com a excep¸c˜ao

do homem An e da mulher an que s˜ao eliminados do problema, assim como das listas de

preferˆencias em que aparecem; ent˜ao M \ {Anan} definido em B tamb´em ´e um matching

est´avel, uma vez que n˜ao se alterou em nada os restantes “casais” de M e s´o se eliminam Ane andas preferˆencias das restantes mulheres e homens, respectivamente. Pelo que existe

um matching est´avel em B e este problema verifica as condi¸c˜oes do enunciado.

Vai-se supor agora que an∈ An, An∈ an e que existe um matching est´avel M1 em B, em

que B ´e um problema de casamentos de ordem n − 1 tal como foi definido no enunciado. Quer-se provar que existe um matching est´avel M2 em A tal que um dos “casamentos”

´

e Anan. Tome-se em A o matching definido por: se Bibj ∈ M1 ent˜ao Aiaj ∈ M2, com

1 ≤ i, j ≤ n − 1. Para al´em destes, apenas Anan est´a em M2. Para ver que este matching

´

e est´avel, h´a que mostrar duas coisas:

i) se Aiaj ∈ M2, ent˜ao ai ∈ Aj e Aj ∈ ai, 1 ≤ i, j ≤ n

Se 1 ≤ i, j ≤ n − 1 e como Aiaj ∈ M2, tem-se que Bibj ∈ M1, pelo que bj ∈ Bi e

Bi ∈ bj. Por defini¸c˜ao de B, vem que aj ∈ Ai (e ∼ (AjanAn e anAjai)) e ainda que

Ai ∈ aj (e ∼ (ajAnan e AnajAi)). Logo, ai ∈ Aj e Aj ∈ ai, para todo 1 ≤ i, j ≤ n

(uma vez que se supˆos que an ∈ An e que An ∈ an).

ii) para quaisquer Ai1aj1, Ai2aj2 ∈ M2, n˜ao se tem simultaneamente Ai2aj1Ai1 e aj1Ai2aj2,

1 ≤ i1, i2, j1, j2 ≤ n

Suponha-se que isto n˜ao acontece. Ent˜ao pode acontecer uma de duas coisas: ou (1) existem dois casais Ai1aj1 e Ai2aj2, com 1 ≤ i1, i2, j1, j2 ≤ n − 1, para os quais

Ai2aj1Ai1 e aj1Ai2aj2, ou (2) existe um casal Aiaj, com 1 ≤ i, j ≤ n − 1, para o

(53)

Se se verificar (1), por defini¸c˜ao de M2, tem-se que Bi1bj1, Bi2bj2 ∈ M1 e que

Bi2bj1Bi1 e bj1Bi2bj2, donde M1 n˜ao seria est´avel, contradizendo o que foi suposto. Se

se verificar (2), da defini¸c˜ao de B e do que foi visto em i), obt´em-se uma contradi¸c˜ao. Logo, para quaisquer Ai1aj1, Ai2aj2 ∈ M2, n˜ao ocorrem simultaneamente Ai2aj1Ai1

e aj1Ai2aj2, com 1 ≤ i1, i2, j1, j2 ≤ n.

Assim, o matching M2 em A ´e est´avel.

Observa¸c˜ao 2.1.1. Do resultado anterior conclui-se que num dado problema A ´e sempre poss´ıvel “eliminar” um dos casais de um matching est´avel M e obter de novo um matching est´avel no novo problema.

A maior parte dos resultados existentes para matchings est´aveis tomam como ponto de partida listas de preferˆencias completas, isto ´e, todos os homens conhecem todas as mulheres e vice-versa. Contudo, isto pode n˜ao acontecer, isto ´e, podem existir homens e mulheres com a sua lista de preferˆencias incompleta. Assim, torna-se necess´ario encontrar uma forma de completar estas listas, de modo a se poderem aplicar os resultados provados. Uma forma de o conseguir ´e adicionando um novo homem V , o vi´uvo, e uma nova mulher v, a vi´uva. As listas de um problema de casamentos de ordem n completam-se tendo em conta o seguinte procedimento:

- O vi´uvo vai ser a ´ultima escolha da vi´uva e esta a que V menos gosta.

- Cada mulher ak, com 1 ≤ k ≤ n, vai colocar V em ´ultimo lugar na sua lista, que

poder´a ser incompleta; de seguida ela vai classificar abaixo de V todos os homens que n˜ao conhece na sua lista, por uma ordem arbitr´aria.

- Cada homem Ak, com 1 ≤ k ≤ n, ir´a colocar v no final da sua lista de preferˆencias,

(54)

Note-se que o problema obtido ´e de ordem n + 1 em que os homens s˜ao A1, A2, ..., An

e V e as mulheres s˜ao a1, a2, ..., an e v.

´

E f´acil ver que o problema apresentado no exemplo da p´agina 41 tem as listas de pre-ferˆencias incompletas. Tendo em conta o procedimento anterior, um problema com as listas de preferˆencias completas associado ao problema do exemplo referido ´e o seguinte:

A: a v c b a: C A B V

B : c a b v b: B V A C

C : c a v b c: B C V A

V : a b c v v : A B C V

Pode-se ent˜ao provar o seguinte teorema:

Teorema 2.1.1. Existe um matching est´avel no problema de casamentos com listas de preferˆencias incompletas se e s´o se existe um matching est´avel M no problema de casa-mentos com listas de preferˆencias completas obtidas do modo referido anteriormente tal que V v ∈ M .

Nota 2.1.1. Por abuso de linguagem, e para simplificar a leitura, para se referir um proble-ma de casamentos com listas de preferˆencias completas ir-se-´a escrever somente problema completo e para referir um problema de casamentos com listas de preferˆencias incompletas ir-se-´a escrever problema incompleto.

Demonstra¸c˜ao. A prova deste teorema decorre directamente do lema anterior, bastando mostrar que os problemas respeitam as condi¸c˜oes referidas. Usando a nota¸c˜ao daquele re-sultado, denomina-se por B o problema incompleto e por A o problema completo, sendo V v o casamento pr´e-definido. Para que n˜ao haja confus˜ao quando se est´a a considerar elemen-tos de B ou de A, no primeiro problema os homens designam-se por Bi e as mulheres por

bj e, em A, o homem correspondente a Bi representa-se por Ai e a mulher correspondente

a bj por aj, com 1 ≤ i, j ≤ n. Por defini¸c˜ao de A, v ∈ V e V ∈ v; falta agora verificar as

(55)

. bi ∈ Bj ⇔ ai ∈ Aj e ∼ (AjvV e vAjai)

O sentido directo da implica¸c˜ao sai directamente da defini¸c˜ao de B e A, uma vez que se bi ∈ Bj ⇒ ai ∈ Aj e tamb´em se tem AjvV e aiAjv, logo ∼ (AjvV e vAjai).

Reciprocamente, se ai ∈ Aj, como AjvV , para todo 1 ≤ j ≤ n, ent˜ao tem-se

aiAjv, pelo que bi ∈ Bj.

. Bi ∈ bj ⇔ Ai ∈ aj e ∼ (ajV v e V ajAi)

O sentido directo da implica¸c˜ao sai directamente da defini¸c˜ao de B e A, uma vez que se Bi ∈ bj ⇒ Ai ∈ aj e tamb´em se tem ajV v e AiajV , logo ∼ (ajV v e V ajAi).

Reciprocamente, se Ai ∈ aj, como ajV v, para todo 1 ≤ j ≤ n, ent˜ao ´e necess´ario

que AiajV , pelo que Bi ∈ bj.

. biBjbk⇔ aiAjak ou bk∈ B/ j

No sentido indirecto da implica¸c˜ao, se se tiver aiAjak e bk ∈ Bj, ent˜ao tamb´em

se tem biBjbk; se bk ∈ B/ j, ´e claro que Bj prefere qualquer outra mulher a bk.

Para provar o sentido directo da implica¸c˜ao basta ver que se akAjai e bk ∈ Bj,

ent˜ao tamb´em se tem bkBjbi. Mas isto ´e sempre verdade pois bk ∈ Bj e para estas

mulheres as listas de preferˆencias permanecem as mesmas. . BibjBk⇔ AiajAk ou Bk ∈ b/ j

No sentido indirecto da implica¸c˜ao, se se tiver AiajAk e Bk ∈ bj, ent˜ao tamb´em

se tem BibjBk; se Bk∈ b/ j, ´e claro que bj prefere qualquer outro homem a Bk.

Para provar o sentido directo da implica¸c˜ao basta ver que se AkajAi e Bk ∈ bj,

ent˜ao tamb´em se tem BkbjBi. Mas isto ´e sempre verdade pois Bk ∈ bj e para estes

homens as listas de preferˆencias permanecem as mesmas.

(56)

A prova do pr´oximo teorema ser´a feita mais `a frente (ver p´agina 65), no qual se estabelece que se existir um matching est´avel em que os vi´uvos fiquem juntos, ent˜ao eles ficam juntos em todos os matchings est´aveis do problema.

Teorema 2.1.2. Se existe um matching est´avel M tal que V v ∈ M para um problema completo, ent˜ao V v pertence a qualquer matching est´avel neste problema.

Com os resultados anteriores, dado um problema de casamentos, j´a se tem uma forma de completar as listas de preferˆencias que lhe est˜ao associadas, no caso de estarem incompletas, de modo a n˜ao alterar a existˆencia de um matching est´avel.

Vai-se agora provar que para qualquer problema de casamentos com listas de preferˆencias completas existe pelo menos um matching est´avel. A prova da existˆencia deste matching ´

e construtiva e ´e baseada no algoritmo apresentado por Gale e Shapley em [12] em 1962. Este resultado e o algoritmo referido s˜ao apresentados na pr´oxima sec¸c˜ao.

2.2

Constru¸

ao de uma solu¸

ao

No decorrer desta sec¸c˜ao ir´a ser apresentado um algoritmo para a obten¸c˜ao de um matching est´avel para um dado problema de casamentos. De seguida, ser˜ao apresentados alguns resultados em consequˆencia deste algoritmo.

Assim, o algoritmo ´e realizado com base em “noivados” sucessivos, de forma a manter o matching est´avel. Tem-se como ponto inicial dois conjuntos H = {A1, A2, ..., An} de n

homens e F = {a1, a2, ..., an} de n mulheres todos “solteiros” e as listas de preferˆencias de

cada homem sobre o conjunto das mulheres e de cada mulher sobre o conjunto dos homens; ´

Referências

Documentos relacionados

O Tribunal de Justiça do Estado de São Paulo deferiu liminar a pedido do SINTTARESP, a fim de determi- nar que o Núcleo de Planejamento, Seleção e Movimentação do Insti- tuto

É importante destacar também que nesse processo de desenvolvimento, é preciso que o professor entenda as fases evolutivas de leitura e escrita da criança, para que possa

De acordo com estes resultados, e dada a reduzida explicitação, e exploração, das relações que se estabelecem entre a ciência, a tecnologia, a sociedade e o ambiente, conclui-se

Deste modo, o adequado zoneamento e sua observância são fundamentais para a conciliação da preservação ou conservação de espécies, hábitats e paisagens dentre outras e

• Quando o navegador não tem suporte ao Javascript, para que conteúdo não seja exibido na forma textual, o script deve vir entre as tags de comentário do HTML. &lt;script Language

O produto a ser ofertado pela MultiFit Gourmet será um tipo de alimentação voltada para pessoas que fazem musculação, que precisam se alimentar de maneira

Corporate Control and Policies Page 12 UNIVERSIDAD DE PIURA UNIVERSIDAD DEL PACÍFICO UNIVERSIDAD ESAN UNIVERSIDAD NACIONAL AGRARIA LA MOLINA UNIVERSIDAD NACIONAL

Seguindo a mesma tendência, os clientes heavy users de mobile também mais que dobraram em 2020, e os clientes heavy users do internet banking também cresceram significativamente.