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

Tamanho: px
Começar a partir da página:

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

Transcrição

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

2 ii

3 Agradecimentos Em primeiro lugar, à minha orientadora, a Doutora Leonor Moreira, por toda a ajuda prestada na elaboração deste trabalho, sem a qual não teria conseguido alcançar este objectivo. Aos meus Pais e Irmão por toda a paciência demonstrada para comigo e por todo o apoio que me deram sempre! Quero também pedir desculpa pela ausência psicológica durante este ano e meio. Quero agradecer todo o carinho que deram até hoje e pela força que me passaram ao longo dos anos. A eles devo tudo o que sou hoje! Muito obrigada aos três! Ao Miguel por todo o carinho dado ao longo deste tempo de amizade; pela compreensão em todos os momentos em que me pediu ajuda e eu não consegui prestá-la; pela ajuda a superar dificuldades da vida; e pelo apoio em tudo! iii

4 iv

5 Resumo Os problemas cuja resolução é tratada neste trabalho são modelos matemáticas de situações diárias como a distribuição de trabalhadores por tarefas numa empresa, a colocação de alunos em cursos universitários, ou a colocação de professores em escolas. A construção de algoritmos para a resolução destes problemas remonta a 1962 [12] como é referido na resenha histórica da introdução. Estes modelos utilizam a Teoria de Grafos e é essencial à sua compreensão a noção de matching em grafos bipartidos e, em particular, a de matching estável. Para além do estudo da resolução do problema clássico da existência e construção de matching estável num grafo bipartido ([12], [13]) recorreu-se essencialmente a [1] e [4] para perceber como tratar o mesmo tipo de problemas em condições mais gerais que obrigam a um maior cuidado na busca da melhor solução. Optou-se assim por começar por introduzir no primeiro capítulo conceitos e resultados básicos nesta área. Nos problemas tratados nos capítulos seguintes são sempre considerados dois conjuntos cujos elementos estabelecem uma lista de preferências sobre os elementos do conjunto oposto que consideram aceitáveis. São assim apresentados três tipos de problemas: o dos casamentos, em que os elementos de cada conjunto pretendem ser atribuídos a, no máximo, um elemento do conjunto oposto; o das universidades, em que os elementos de um dos conjuntos (das universidades) podem ser atribuídos a vários elementos do conjunto oposto, com um limite fixado (numerus clausus); o muitos-para-muitos, em que os elementos de ambos os conjuntos podem ser atribuídos a mais do que um elemento do conjunto v

6 oposto, com um limite fixado. Em cada um deles pretende-se obter uma boa de acordo com as preferências manifestadas, isto é, uma atribuição estável. atribuição Em cada um destes problemas, são apresentadas condições para que o problema tenha solução e, no caso desta existir, são apresentados algoritmos para a sua determinação. Será ainda visto que é possível comparar soluções do ponto de vista dos elementos de cada um dos dois conjuntos em jogo, e, globalmente, do ponto de vista dos próprios conjuntos. Estudam-se ainda as soluções dos problemas em causa relativamente a duas outras características: a monotonia e a estratégia. De certo modo, estas duas características permitem avaliar a justiça da solução encontrada em relação a cada um dos conjuntos. No caso mais geral, é abordada a questão da eficiência da solução. vi

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. So, it was decided to begin this work by introducing, in the first chapter, the basic concepts and results used in the thesis. Next chapters always consider the case of two sets whose elements establish a preference list over the acceptable elements of the opposite set. So, three types of problems are presented: the marriage problem, where the elements of each set wish to be matched with, at most, one element of the opposite set; the universities problem, where the elements of one of the sets wish to be matched with several elements of the oposite set, with a fixed bound (numerus clausus); the many-to-many problem, where the elements of both sets wish to be matched with several elements of the oposite set, with a fixed bound. In each of them a good assignment relative to the given preferences, that vii

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. It is also studied the behavior of the solutions whenever strategy and monotonicity are involved. In a way these characteristics can be used to evaluate the justice of a solution relatively to each of the sets. In the general case the solution efficiency is considered. viii

9 Conteúdo Agradecimentos iii Resumo v Abstract vii Introdução 5 Uma história do problema Desenvolvimento do trabalho Problema de atribuição de tarefas Conceitos e resultados básicos Algoritmo Húngaro Algoritmo de Kuhn-Munkres Conclusão Matchings estáveis A noção de estabilidade

10 2.2 Construção de uma solução Conflitos de interesse Voltando à noção de estabilidade Conclusão O problema das universidades Resultados iniciais Comparar atribuições estáveis Mecanismos de atribuição - universidades Conclusão O problema de atribuição muitos-para-muitos Resultados iniciais A estrutura das atribuições estáveis Comparar atribuições estáveis Mecanismos de atribuição - muitos-para-muitos Conclusão Observações Finais 151 Bibliografia 153 Índice 155 2

11 Lista de Figuras 1.1 Exemplo de um grafo G Exemplo de um grafo dirigido G d Exemplo de um grafo bipartido Exemplo de dois matchings de um grafo bipartido Exemplo de um grafo com várias componentes conexas Exemplo de dois matchings num grafo Matching bipartido Construção da árvore M-alternada de raíz x 1 - início Construção da árvore M-alternada com raíz em x Construção da árvore M-alternada com raíz em x 1 - árvore final Novo matching M Árvore M-alternada com raíz em x O grafo G l O grafo G l associado à nova etiquetagem conveniente dos vértices Exemplo de um problema de casamentos

12 2.2 Descrição do algoritmo Um problema de admissões e uma atribuição (vértices pretos) Duas atribuições: vértices pretos - estável, vértices quadrados - não estável Aplicação do algoritmo guloso para os candidatos Aplicação do algoritmo guloso para as universidades O grafo útil e as atribuições µ A (vértices quadrados) e µ U (vértices pretos) Posição relativa de duas atribuições estáveis O paradoxo melhor posição, pior atribuição usando µ U µ - quadrados; µ - círculos µ - quadrados; µ - círculos; β - quadrados pretos µ - quadrados; µ A - círculos; µ - vértices pretos Estratégia para obter uma atribuição melhor em µ U O jogo (Φ, p, q) e uma atribuição neste jogo O jogo (Φ, p, q) Os vértices pretos são de µ e os quadrados de µ O vértice cruzado já foi utilizado Duas atribuições estáveis: vértices pretos e vértices quadrados Conjuntos distintos atribuídos a um jogador-linha l L χ α 1 : vértices pretos (são eliminados em µ ); χ α : vértices quadrados χ α 1 : vértices pretos; χ α : vértices quadrados

13 Introdução Uma história do problema Na viragem do século XX, foi dado aos alunos de medicina dos E.U.A. a oportunidade de realizarem um internato, como forma de fazerem a sua pós-graduação. 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ência entre hospitais era muito grande, tentando cada um deles antecipar as suas propostas às dos restantes, com o objectivo de obter os melhores alunos. A antecipação 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ção sobre os alunos. Neste mesmo ano, foi decidido que qualquer proposta só deveria ser feita no máximo com um ano de antecedência e que os alunos teriam um tempo limite para a aceitar ou rejeitar. Apesar desta alteração, 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ção 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 é 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 5 o lugar nas suas preferências, por exemplo, mas foi colocado em lista de espera no hospital que ocupa 5

14 o 2 o lugar. Assim, o aluno teria tendência 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ência foi de encurtar o tempo que os alunos tinham para aceitar ou rejeitar uma proposta, alterando os procedimentos, mas os resultados continuavam a não ser satisfatórios e os custos eram demasiado altos. Assim, em 1950, foi decidido que seria melhor para ambas as partes centralizar o processo, isto é, cada aluno apresentava a sua lista de preferências de hospitais e cada hospital apresentava uma lista de preferências 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ções de acordo com as preferências apresentadas. A primeira versão deste algoritmo mostrou-se ainda não aceitável para os candidatos já que a solução dependia fortemente do modo como o aluno compunha a sua lista de preferências, de tal modo que um aluno que não apresentasse a sua verdadeira lista de preferências, mas antes uma convenientemente adaptada aos rankings dos hospitais poderia obter uma melhor colocação, o que obviamente podia ter más consequências quer para os internos, quer para os hospitais. Assim, foi introduzida uma alteração a este procedimento, que foi implementado pela primeira vez em 1951 e permanece em uso até 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 Só mais tarde, vieram a saber que um algoritmo semelhante ao que prova a conjectura de Gale já era usado desde 1951 para colocar os alunos para internato nos hospitais. Esta é, grosso modo, a história do problema aqui tratado, a qual pode ser consultada com detalhe em [5], [15] e [17]. A motivação mais directa para a realização deste trabalho 6

15 foi o artigo [17] de Ana Paula Tomás, escrito na sequência da polémica em torno do Concurso Nacional de Colocação de Educadores de Infância e Professores do Ensino Básico e Secundário, no qual houve um grande número de reclamações por parte de professores que se sentiam injustiçados ao verem colegas da mesma área de docência com classifição inferior serem colocados em alguma escola antes deles próprios o conseguirem. Este artigo despertou a minha atenção, não só pelo problema levantado no Concurso Nacional de Professores, como também pelo gosto pela área da Matemática em que se insere: a Matemática Discreta, em particular, a Teoria de Grafos. Desenvolvimento do trabalho O tema geral do trabalho é a resolução de problemas de atribuição que generalizam a noção básica de construção de matchings em grafos bipartidos. Como no conjunto dos vértices 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 é fazê-lo da melhor maneira possível, sabendo que cada elemento de qualquer um dos conjuntos tem uma lista de preferências sobre os elementos do outro que considera aceitáveis. O trabalho está dividido em quatro capítulos. No primeiro, são apresentados os resultados de Teoria de Grafos necessários à compreensão do restante trabalho, bem como a resolução de dois problemas que de certa forma introduzem os apresentados nos capítulos seguintes. O primeiro é o problema de atribuição de tarefas (ou seja, da determinação de um matching), em que o objetivo é distribuir um certo número de tarefas por um certo número de trabalhadores sabendo as tarefas que cada um deles pode executar, de forma a que cada um seja atribuído exactamente a uma tarefa. É então apresentado o Algoritmo Húngaro, com o qual se obtém a solução para este problema, bem como os resultados que 7

16 permitem chegar a esse procedimento. O segundo problema é um problema semelhante ao anterior onde se tem em conta a competência do trabalhador para as tarefas que sabe executar; o objectivo é fazer a distribuição de tarefas, de forma a que todos eles desempenhem uma tarefa e a soma das competências seja máxima. Para a resolução deste problema é apresentado o Algoritmo de Kuhn-Munkres, que se baseia no algoritmo Húngaro; são ainda apresentados os resultados que permitem chegar a este procedimento. No segundo capítulo é apresentado um problema semelhante ao de atribuição de tarefas tendo em conta a competência dos trabalhadores, em que é acrescentada uma nova informação: os trabalhadores também estabelecem uma ordem de preferências sobre as tarefas disponíveis. Este problema é 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 é encontrar um matching que compatibilize da melhor forma estas preferências, um matching estável. Tendo em conta que a maior parte dos resultados sobre este tema tem como condição inicial um problema de casamentos com listas de preferências completas, é apresentada uma forma de completar estas listas, uma vez que existem problemas de casamentos em que as listas de preferências são incompletas. De seguida, é apresentado um algoritmo para determinar um matching estável para qualquer problema de casamentos; o resultado do procedimento descrito é o melhor possível para os homens. Prova-hgse, assim, que qualquer problema de casamentos admite um matching estável. Prova-se ainda que, dados dois matchings M e M estáveis de um problema de casamentos, se M é melhor do que M para todos os homens, então M é 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, é apresentada uma definição equivalente de estabilidade em matchings ([9]) através da qual se mostra que todos os matchings estáveis têm o mesmo cardinal; mais, se um homem e uma mulher são emparelhados através de um matching estável, então, em qualquer outro matching estável, eles vão obter um companheiro. No terceiro capítulo é apresentado um problema que é uma generalização do apresentado 8

17 no capítulo anterior: o Problema das Universidades. Para este problema, são considerados dois conjuntos, um de universidades e outro de alunos, em que cada elemento de cada um dos conjuntos estabelece uma ordem de preferências sobre os elementos do conjunto oposto que considera aceitáveis. Além disso, tem-se que cada aluno só pode ser colocado numa universidade e cada universidade pode admitir mais do que um aluno tendo em conta um limite máximo fixado (quota da universidade). De novo, o objetivo é encontrar uma atribuição entre os dois conjuntos que respeite as quotas dadas e que compatibilize da melhor forma as preferências apresentadas: uma atribuição estável. É então apresentado um algoritmo, com duas versões diferentes, que permite obter uma atribuição estável para qualquer problema de universidades; são assim obtidas duas atribuições estáveis, uma optimal para os alunos e a outra optimal para as universidades. De seguida, serão apresentadas duas relações de ordem total que permitem relacionar quaisquer duas atribuições estáveis do ponto de vista de uma dada universidade ou de um dado aluno. Através destas relações de ordem total, são definidas duas relações de ordem parcial que pretendem comparar globalmente atribuições estáveis; para cada uma delas, o conjunto de todas as atribuições estáveis de um problema de universidades forma um reticulado distributivo. De seguida, vai-se ver qual das atribuições estáveis é mais justa tanto para as universidades como para os alunos, tendo em conta a relação de ordem parcial relativamente aos candidatos; este estudo será feito através dos chamados mecanismos de atribuição. Assim, uma atribuição estável será mais justa para os candidatos se, no caso de algum aluno melhorar o seu ranking para alguma universidade, ele é colocado numa universidade igual ou melhor à que obteria antes de subir no ranking. Tendo em conta a mesma relação de ordem, uma atribuição estável será mais justa para as universidades se for resistente à estratégia dos alunos; ou seja, mesmo que um aluno mude a sua lista de preferências de modo a tentar obter uma universidade preferível à que obteria se não o fizesse, através dessa atribuição não o conseguiria. No quarto capítulo é apresentado o caso mais geral: o problema de atribuição muitos- -para-muitos. São então considerados dois conjuntos, um de jogadores-linha e outro de 9

18 jogadores-coluna, em que cada elemento de cada conjunto estabelece uma ordem de preferência sobre os elementos do conjunto oposto que considera aceitáveis. 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áximo para o número deles que lhe são atribuídos. A abordagem feita neste capítulo é semelhante à que é feita no capítulo anterior. Da mesma forma, o objectivo é encontrar uma correspondência entre os dois conjuntos de jogadores que respeite as quotas de cada um dos seus elementos e compatibilize da melhor forma as preferências apresentadas, isto é, uma atribuição estável. É então provado que existe uma atribuição estável para qualquer problema de atribuição muitos-para-muitos. Tem-se também que duas quaisquer atribuições estáveis têm o mesmo número de elementos tanto para os jogadores-linha como para os jogadores-coluna. De seguida é estabelecida uma forma de se comparar duas quaisquer atribuições estáveis para os jogadores-linha e para os jogadores-coluna, concluindo-se que o conjunto de todas as atribuições estáveis formam um retitculado distributivo. Analogamente ao que foi feito no capítulo anterior, quer-se determinar a atribuição estável que é mais justa para ambas as partes; para isso, vão ser utilizados os mecanismos de atribuição. Em primeiro lugar, quer-se que, para esta atribuição estável µ, não exista uma outra atribuição (estável ou não) que seja preferível a µ por todos os jogadores-linha, uma vez que, se isto acontecer, existe uma atribuição estável preferível por todos os jogadores-linha a µ. Tem-se ainda que, tendo em conta a relação de ordem para os jogadores-linha, uma atribuição é justa para estes se, no caso de algum deles melhorar o seu ranking na lista de preferências de um jogador-coluna, ele é atribuído a um conjunto de jogadores-coluna igual ou melhor ao que obteria antes da subida. Uma atribuição estável é justa para os jogadores-coluna se, para qualquer grupo de jogadores-linha que altere as suas preferências e/ou quotas, nem todos os elementos deste grupo conseguem obter um conjunto de jogadores-coluna melhor do que o que obteriam se não fizessem qualquer alteração, ou seja, a atribuição é resistente à estratégia por parte dos jogadores-linha. É de salientar que a forma como foi estruturado este trabalho não é arbitrária. O mais 10

19 comum seria expor o problema mais geral e de seguida os casos particulares, não sendo necessário apresentar repetidamente resultados semelhantes. Neste trabalho, começa-se com um simples problema de atribuição de tarefas, passando a problemas mais gerais, mas que introduzem novas condições no modelo. Assim, o grau de dificuldade de tratamento dos problemas vai aumentando e optou-se pela ordem anteriormente referida para tornar mais compreensível o texto. Além disso, cada um dos problemas apresentados modela um caso real a que se aplica, pelo que a linguagem utilizada para cada um é adaptada a esse caso. 11

20 12

21 Capítulo 1 Problema de atribuição de tarefas No decorrer deste capítulo vão ser apresentados definições e resultados de Teoria de Grafos necessários à compreensão do que vai ser tratado neste trabalho. De seguida, serão apresentados dois problemas de atribuição de tarefas, que de certa forma introduzem os problemas tratados nos capítulos seguintes. Para cada um destes problemas, é apresentado um algoritmo de resolução bem como os resultados que permitem chegar a esse procedimento. Assim, o primeiro problema é o de atribuição de tarefas, para o qual é utilizado o Algoritmo Húngaro para encontrar a sua solução; o segundo problema é o de atribuição de tarefas tendo em conta as competências dos trabalhadores, para o qual é usado o Algoritmo de Kuhn-Munkres para a sua resolução. 1.1 Conceitos e resultados básicos Nesta secção, serão apresentados conceitos e resultados iniciais em Teoria de Grafos que serão necessários para a percepção deste trabalho; é de salientar que não serão necessários outros resultados para além dos apresentados. 13

22 Os resultados apresentados podem ser encontrados em [9] e em [10]. Definição Um grafo G é um par ordenado de conjuntos (V, A), em que V é um conjunto finito de pontos e A {{x, y} : x, y V e x y}. A cada elemento de V chama-se vértice e a cada elemento de A chama-se aresta. Dada uma aresta e 1 = {x, y} de G, com x, y V e x y, diz-se que e 1 é incidente em x e em y. Por notação, a aresta que une os vértices x e y é representada por {x, y}, como é de notar na definição anterior; por abuso de notação, por vezes escreve-se apenas xy para representar essa mesma aresta. Usualmente, em vez de se apresentar uma lista de vértices 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értice do grafo está associado a um ponto da figura e cada aresta, que une dois vértices quaisquer u e v do grafo, está associada a uma linha que une os pontos que representam os vértices u e v. Assim, na figura 1.1 é apresentado um exemplo de um grafo: Figura 1.1: Exemplo de um grafo G. O conjunto dos vértices de G é V = {v 1, v 2, v 3, v 4, v 5, v 6 } e o conjunto das arestas é A = {v 1 v 2, v 1 v 5, v 1 v 6, v 2 v 3, v 3 v 4, v 3 v 6, v 4 v 6, v 5 v 6 }. Definição Seja G = (V, A) um grafo e considere-se v V. Chama-se grau do vértice v ao número de arestas incidentes em v. 14

23 No grafo da figura 1.1, o vértice v 1 tem grau 3, o vértice v 2 tem grau 2 e v 6 tem grau 4. Definição Um grafo dirigido G d é um par ordenado (V, A d ), em que V é um conjunto finito de pontos, os vértices de G d, e A d {(x, y) : x, y V (G d ) e x y}, as arestas orientadas de G d. Da definição do conjunto das arestas de um grafo dirigido, conclui-se que as arestas (x, y) e (y, x) são distintas, para x, y V (G d ); além disso, se (x, y) A d, diz-se que x é a origem e y é a extremidade da aresta (x, y), ou que (x, y) é 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 G d. O conjunto dos vértices de G d é o mesmo de G da figura 1.1 e o conjunto das arestas é A d = {(v 1, v 2 ), (v 1, v 6 ), (v 2, v 3 ), (v 3, v 4 ), (v 4, v 6 ), (v 5, v 1 ), (v 5, v 6 ) (v 6, v 3 )}. Definição A vizinhança do vértice x V no grafo G = (V, A) é o conjunto N G (x) de vértices y V tais que xy A. No exemplo da figura 1.1, a vizinhança de v 1 é N G (v 1 ) = {v 2, v 5, v 6 }; a vizinhança de v 6 é N G (v 6 ) = {v 1, v 3, v 4, v 5 }. 15

24 Definição A vizinhança do conjunto S V no grafo G = (V, A) é o conjunto N G (S) de vértices y V tais que existe x S para o qual xy A. No exemplo da figura 1.1, a vizinhança do conjunto S = {v 1, v 6 } é N G (S) = V (G); a vizinhança de S = {v 2, v 6 } é N G (S) = {v 1, v 3, v 4, v 5 } Nota Quando for claro de contexto qual é o grafo G em questão, usar-se-à a notação N (x) para representar N G (x), a vizinhança de x V (G) em G, e N (S) para representar N G (S), a vizinhança de S V (G) em G. Definição Seja G = (V, A) um grafo. Um caminho em G é uma sequência de vértices e arestas, todos distintos, da forma v 1, e 1, v 2, e 2, v 3,..., v n 1, e n 1, v n, tal que v 1, v 2,..., v n V, tal que e i = v i v i+1 e e i A (G), para todo 1 i n 1. O comprimento de um caminho é igual ao número de arestas que o compõe; isto é, se o caminho é da forma v 1, e 1, v 2, e 2, v 3,..., v n 1, e n 1, v n, o seu comprimento é n 1. Usualmente, um caminho é representado apenas pelos vértices que o compõem; assim, o caminho v 1, e 1, v 2, e 2, v 3,..., v n 1, e n 1, v n é representado por v 1, v 2, v 3,...v n 1, v n. No exemplo da figura 1.1, v 1, v 2, v 3, v 4, v 6, v 5 é um caminho de comprimento 5 e v 5, v 1, v 6, v 3, v 4 é um caminho de comprimento 4. É de salientar que os vértices de um caminho têm todos grau 2, excepto v 1 e v n que têm grau 1. Definição Seja G = (V, A) um grafo. Um ciclo em G é uma sequência de vértices e arestas da forma v 1, e 1, v 2, e 2, v 3,..., v n 1, e n 1, v n, e n, e 1, tal que v i v j, com 1 i, j n e i j, e i = v i v i+1, com 1 i n 1, e n = v n v 1 e e i A (G), para todo 1 i n. O comprimento de um ciclo é igual ao número de arestas que o compõe; isto é, se o ciclo é da forma v 1, e 1, v 2, e 2, v 3,..., v n 1, e n 1, v n, e n, e 1, o seu comprimento é n. 16

25 Usualmente, um ciclo é representado apenas pelos vértices que o compõem; assim, o ciclo v 1, e 1, v 2, e 2, v 3,..., v n 1, e n 1, v n, e n, v 1 é representado por v 1, v 2, v 3,..., v n 1, v n, v 1. Na figura 1.1, v 1, v 2, v 3, v 4, v 6, v 5, v 1 é um ciclo de comprimento 6, enquanto que v 3, v 4, v 6, v 3 forma um ciclo de comprimento 3. É de notar que todos os vértices de um ciclo têm grau 2. Definição Seja G d = (V, A d ) um grafo dirigido. Um ciclo dirigido no grafo G d é uma sequência (v 1, e 1, v 2, e 2, v 3,..., v n 1, e n 1, v n, e n, v 1 ), cujos elementos são alternadamente vértices e arestas orientadas (v i V e e j A d, 1 i n e 1 j n 1), tal que v i v j, com 1 i, j n e i j, e, para cada 1 j n 1, e j é uma aresta orientada de v j para v j+1 e e n é orientada de v n para v 1. Por vezes, um ciclo orientado é apenas descrito pela sequência de vértices que o forma: (v 1, v 2, v 3,..., v n 1, v n, v 1 ), omitindo-se as arestas. No exemplo da figura 1.2, o grafo dirigido G d tem apenas um ciclo dirigido: (v 3, v 4, v 6, v 3 ) que tem comprimento 3. Definição Seja G = (V, A) um grafo; diz-se que G é bipartido se existem conjuntos V 1, V 2 V, com V = V 1 V 2, tais que, para todo xy A, x V 1 y V 2. Na figura 1.3 está um exemplo de um grafo bipartido. Figura 1.3: Exemplo de um grafo bipartido. Neste exemplo, V 1 = {v 1, v 2, v 3 } e V 2 = {v 4, v 5, v 6, v 7 }. 17

26 Definição Seja G = (V, A) um grafo; um matching é um conjunto M A tal que, para todos xy, x y M, xy x y =. Na figura 1.4 estão 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 representam as restantes arestas do grafo (que não foram usadas nos matchings). Definição Seja G = (V, A) um grafo. G diz-se conexo se e só se, dados quaisquer dois vértices u, v V (G), com u v, existe um caminho em G que une u a v. Caso contrário o grafo diz-se desconexo. Os grafos das figuras 1.1 e 1.3 são exemplos de grafos conexos; o grafo da figura 1.5 é um exemplo de um grafo desconexo. Definição Seja G = (V, A) um grafo. Uma componente conexa C de G é um grafo C = (V, A ), tal que V V, A A e: 1. A = {v 1 v 2 A : v 1, v 2 V }; 2. C é conexo; 3. para todo v V \V e para todo v V, a aresta vv / A. 18

27 Na figura 1.5 está representado um grafo com várias componentes conexas. Figura 1.5: Exemplo de um grafo com várias componentes conexas. Este grafo tem três componentes conexas; elas são: - C 1 = (V 1, A 1 ), com V 1 = {v 1, v 2, v 3 } e A 1 = {v 1 v 2, v 2 v 3, v 3 v 1 }; - C 2 = (V 2, A 2 ), com V 2 = {v 4, v 5 } e A 2 = {v 4 v 5 }; - C 3 = (V 3, A 3 ), com V 3 = {v 6 } e A 3 =. Lema Sejam M e M dois matchings de um grafo bipartido G. Então qualquer componente conexa C do grafo G = (V (G), M M ) é um caminho de comprimento maior ou igual a zero ou um ciclo de comprimento maior ou igual a quatro. Demonstração. Sejam M e M dois matchings de um grafo bipartido G = (V, A), com V = V 1 V 2. Seja G = (V (G), M M ); quer-se ver de que forma são as componentes conexas de G. Da definição de G, sabe-se que os vértices deste grafo têm grau 0, 1 ou 2, no caso de não 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. 1. Os vértices de grau 0 são por si só uma componente conexa de G, pois não têm arestas incidentes. Neste caso, tem-se um caminho de comprimento zero; 19

28 2. Se os vértices de uma componente conexa C têm todos grau 2, então C é um ciclo. É de notar que as arestas de C são alternadamente de M e de M, uma vez que cada vértice tem, no máximo, grau 1 em cada matching. Para além disso, o ciclo não tem comprimento ímpar, caso contrário existiria um vértice com duas arestas incidentes do mesmo matching. Este comprimento também não é dois, já que, se isto acontecesse, existiriam no grafo G duas arestas distintas a unir os mesmos dois vértices. Tem-se então que o comprimento de C é um número par igual ou superior a quatro; 3. Suponha-se agora que a componente conexa C tem algum vértice de grau 1; seja v 1 um tal vértice. Suponha-se ainda que V (C) = {v 1, v 2,..., v n }, com n > 1. Então, v 1 tem apenas uma aresta que lhe é incidente, seja e 1 = v 1 v 2, em que v 2 é a outra extremidade de e 1. Se v 2 tem grau 1, então a componente conexa C é constituida por apenas uma aresta, ou seja, é um caminho de comprimento um e n = 2. Suponha-se agora que v 2 tem grau 2; então existe uma aresta e 2 = v 2 v 3. Da definição de G, como v 2 tem grau 2, e 1 pertence apenas a um dos matchings M ou M ; suponha-se que e 1 M. Logo, e 2 M. Se o vértice v 3 tem grau 1, então a componente conexa C é um caminho de comprimento dois e n = 3. Se v 3 tem grau 2, o raciocínio é análogo ao que se fez para v 2. Continuando com este processo, conclui-se que C é um caminho, já que o vértice v n (diferente de v 1 ) tem grau 1; se isto não acontecesse, teria de haver uma aresta e n = v n v i, com 1 i n 1, uma vez que se supôs que C tem apenas n vértices. Mas isto não pode acontecer, pois, por suposição, v 1 tem grau 1 e os restantes vértices têm grau 2 e, pela definição de G, o grau de cada vértice não pode ser maior do que 2. Tem-se assim provado o que se pretendia. 20

29 Definição Seja G = (V, A) um grafo; um matching completo em G é um matching M tal que, para todo x V, existe y V que verifica xy M. Na figura 1.6, são apresentados dois exemplos de matchings para o grafo da figura 1.1, um não completo (em a)) e outro completo (em b)). Figura 1.6: Exemplo de dois matchings num grafo. Definição Seja G = (V, A) um grafo bipartido, com V = V 1 V 2 ; um matching completo de V 1 em V 2 em G é um matching M tal que, para todo x V 1, existe y V 2 que verifica xy M. Facilmente se vê que o matching apresentado na figura 1.4b) é um matching completo de V 1 em V 2 ; o matching da figura 1.4a) não é completo nem de V 1 em V 2 nem de V 2 em V 1. De facto, não existe qualquer matching completo de V 2 em V 1. O teorema seguinte é conhecido como o Teorema de Hall e estabelece um critério para que num grafo bipartido qualquer se consiga ter pelo menos um matching completo. Teorema Seja G = (V, A) um grafo bipartido, com V (G) = V 1 contém um matching completo de V 1 em V 2 se e só se V 2. Então G N (S) S, para todo S V 1. Demonstração. Seja G = (V 1 V 2, A) um grafo bipartido. Comece-se por provar que a condição é necessária. Se existe um matching completo M em G de V 1 em V 2, então, para 21

30 todo x V 1, N G (x) N M (x) = 1, pelo que N G (S) N M (S) = S, para todo S V 1, em que, por abuso de notação, M representa o grafo cujas arestas são as do matching M e os vértices as extremidades destas arestas em G. Vai-se provar agora que se N (S) S, para todo S V 1, então G tem um matching completo de V 1 em V 2. Esta prova irá ser feita por indução sobre V 1 = m. Para m = 1 é fácil ver que a afirmação é verdadeira: sabe-se que N (V 1 ) V 1 = 1, pelo que basta unir o (único) vértice de V 1 a um vértice de N (V 1 ) para se obter um matching completo. Vai-se tomar agora m 2 e considere-se verdadeira a afirmação para valores menores que m. Pode acontecer, então, uma de duas coisas: 1. Para qualquer conjunto não vazio S V 1, com S = k < m, N (S) k + 1. Vai-se, então, tomar como aresta do matching pretendido uma qualquer aresta do grafo, seja xy A, com x V 1 e y V 2. Tem-se agora que, para todo o S V 1 \ {x}, sendo N (S) = N (S) (V 2 \ {y}), N (S) N (S) 1 S. Logo, por hipótese de indução, existe um matching completo M de V 1 \ {x} em V 2 \ {y}. Assim, M {xy} é um matching completo de V 1 em V Existe algum conjunto não vazio S 0 V 1, com S 0 = k < m e N (S 0 ) = k. Por hipótese de indução, é possível estabelecer um matching completo M de S 0 em N (S 0 ). Basta então estabelecer, usando a hipótese de indução, um matching completo M de X = V 1 \S 0 ( X = l) em Y = V 2 \N (S 0 ); assim, há que provar que, para todo S X, N (S) S, com N (S) = N (S) Y. Suponha-se que esta condição é falsa, isto é, que, para algum S 1 X, N (S 1 ) < S 1 ; então, como N (S 0 ) = S 0, N (S 0 S 1 ) = N (S 0 ) N (S 1 ) = N (S 0 ) + N (S 1 ) < S 0 + S 1 = S 0 S 1 uma vez que S = S 0 S 1, o que contradiz a hipótese. Logo, para todo S X, N (S) S. Assim, por hipótese de indução, existe um matching completo M de 22

31 X em Y, pelo que M M é um matching completo de V 1 em V 2. Tem-se assim provado o resultado pretendido. O resultado anterior foi a primeira caracterização de matchings completos em grafos bipartidos, estabelecido por Hall em A prova aqui apresentada é atribuída a Halmos e Vaughan e é mais simples do que a apresentada pelo autor do teorema; note-se ainda que ambas as provas não são construtivas, isto é, não apresentam uma forma de determinar tais matchings. Nas duas próximas secções, vai-se apresentar uma forma de se encontrar, para qualquer grafo bipartido, matchings completos ou provar que estes não existem, em dois problemas diferentes. 1.2 Algoritmo Húngaro Suponha-se que se tem o seguinte problema: uma empresa tem n tarefas distintas x 1, x 2,..., x n para serem desempenhadas e tem disponíveis n trabalhadores distintos y 1, y 2,..., y n, em que cada um deles está qualificado para uma ou mais dessas tarefas. A pergunta é: será possível atribuir a todos os trabalhadores uma tarefa para a qual está qualificado? Se for possível, como fazê-lo? Este problema pode ser modelado por um grafo bipartido G = (V, A), tal que V = X Y, em que X é o conjunto das tarefas e Y é o conjunto dos trabalhadores; tem-se ainda que x i y j A, 1 i, j n, se e só se o trabalhador y j está qualificado para desempenhar a tarefa x i. Pretende-se, assim, encontrar um matching completo em G ou verificar que um tal matching não existe; de acordo com o teorema (o Teorema de Hall), ou existe um matching do tipo desejado ou existe um subconjuto S X tal que N (S) < S. Uma 23

32 forma de encontrar uma solução para este problema é utilizando o algoritmo Húngaro. Este algoritmo baseia-se num resultado de Berge de 1957 que caracteriza os matchings com um número máximo de arestas de um grafo G, ditos matchings maximais, usando a noção de caminho M-aumentativo. Definição Seja G = (V, A) um grafo e M um matching em G. 1. M diz-se maximal se não existe qualquer matching M em G tal que M > M. 2. Um vértice v V (G) diz-se M-saturado se alguma aresta de M é incidente em v; caso contrário, v diz-se M-insaturado. 3. Um caminho v 0 v 1... v n diz-se um caminho M-alternado se é um caminho cujas arestas são, alternadamente, de M e de A\M. 4. Um caminho v 0 v 1... v n diz-se um caminho M-aumentativo se é um caminho M- -alternado tal que v 0 e v n são vértices M-insaturados, em particular v 0 e v n não têm 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 Sejam G um grafo e M um matching em G. M é um matching maximal se e só se G não contém qualquer caminho M-aumentativo. Demonstração. Sejam G = (V, A) um grafo e M um matching em G. Comece-se por supor que M é um matching maximal e que G contém um caminho M-aumentativo P : v 0 v 1... v 2m v 2m+1. Defina-se M A da seguinte forma: M = (M\ (v 1 v 2, v 3 v 4,..., v 2m 1 v 2m )) (v 0 v 1, v 2 v 3,..., v 2m v 2m+1 ). Tem-se então que M é um matching em G, já que apenas se retiraram de M as arestas de P M e acrescentaram as arestas de P (A\M); tem-se ainda que M = M + 1, 24

33 o que contraria o facto de M ser um matching maximal. Logo, G não contém caminhos M-aumentativos. Suponha-se agora que existe um matching M em G tal que este grafo não contém qualquer caminho M-aumentativo e suponha-se que M não é um matching maximal. Seja M um matching maximal em G; sabe-se então que M > M. Seja agora H o grafo cujas arestas são (M\M ) (M \M) e os vértices são as extremidades destas arestas. Cada vértice deste grafo tem grau um ou dois, já que apenas é adjacente a uma aresta de M ou de M ou é adjacente a uma aresta de ambos os matchings, respectivamente. Então as componentes conexas de H são ciclos de comprimento par ou caminhos, ambos com arestas alternadamente em M e em M, pelo que foi visto no lema Como M > M em G, o mesmo acontece em H, pelo que uma das componentes deste grafo tem de ser um caminho v 0 v 1... v n tal que v 0 v 1, v n 1 v n M. Como v 0 e v n são M-insaturados em H, também o são em G, pelo que este caminho é M-aumentativo, o que contradiz o que se supôs. Tem-se assim provado o que se pretendia. Observação A implicação não trivial do teorema de Hall (se N (S) S, para todo S V 1, então G = (V 1 V 2, A) contém um matching completo de V 1 em V 2 ) decorre do teorema de Berge. Suponha-se então que G = (V 1 V 2, A) é um grafo bipartido que verifica N (S) S, para todo S V 1, mas G não contém qualquer matching completo de V 1 em V 2. Seja M um matching maximal em G; por suposição, existe pelo menos um vértice u V 1 que é M -insaturado. Seja Z o conjunto dos vértices de G para os quais existe um caminho M -alternado que os une a u; como M é maximal, pelo teorema anterior (de Berge) tem-se que u é o único vértice M -insaturado de Z. Seja S = Z V 1 e T = Z V 2. Pela observação anterior, 25

34 todos os vértices de S\ {u} são M -saturados, isto é, estão ligados por M a algum vértice de T. Tem-se então que T = S 1. Por outro lado, N (S) = T : - T N (S) porque existe uma aresta de M que une cada vértice de T a um vértice de S; - Quer-se ver agora que N (S) T. Seja v 2 N (S); quer-se ver que v 2 T, isto é, que existe um caminho M -alternado que une v 2 a u. Seja v 1 S um vértice para o qual v 1 v 2 A. Sabe-se que existe um caminho P M -alternado entre v 1 e u; como estes vértices estão ambos em S e G é um grafo bipartido, P tem um número par de arestas, pelo que a aresta de P incidente em v 1 pertence a M. Portanto, se v 1 v 2 M, então esta aresta pertence a P ; se v 1 v 2 / M, P {v 1 v 2 } é um caminho M -alternado. Em qualquer um dos casos existe um caminho M -alternado entre u e v 2, pelo que v 2 T. Conclui-se então que N (S) = T = S 1 < S, o que contraria o que foi suposto. Logo, M é um matching completo. O algoritmo húngaro começa com um matching qualquer M no grafo bipartido G = (X Y, A) e constrói um matching completo se ele existir ou apresenta um conjunto de vértices que não verifica o teorema de Hall. Assim, dado um matching M em G, o algoritmo começa por ver se todos os vértices são saturados por M e no caso de não o serem procura um caminho M-aumentativo com início num dos vértices M-insaturados. Se este caminho existir, constrói 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. A procura de caminhos M-aumentativos com origem num vértice M-insaturado v V (G) baseia-se num procedimento descrito por Edmonds em 1965 que constrói uma árvore 26

35 M-alternada H com raíz v. Uma árvore é um grafo acíclico (isto é, é um grafo sem cíclos) conexo; uma árvore M-alternada com raíz em v é uma árvore que é construída a partir de v e que verifica as seguintes propriedades: v é um dos vértices desta árvore e, qualquer que seja o vértice x da árvore, existe um único caminho que liga v a x e este é M-alternado. Vai-se agora descrever o procedimento de construção de uma árvore M-alternada H de raiz v. Inicialmente, esta árvore é constituída apenas pelo vértice v; a sua construção é tal que, a cada passo, se verifique uma das seguintes possibilidades: (1) todos os vértices de H excepto v são M-saturados e o seu vizinho por M está em H, (2) existe em H algum vértice, para além de v, que é M-insaturado. No caso de se verificar (1), sejam S = V (H) X e T = V (H) Y ; da definição de T, tem-se que T N (S). Daqui vem que: ou T = N (S): Tem-se que os vértices de S\ {v} estão ligados por M a um e um só vértice de T ; logo, T = S 1 < S, pelo que N (S) = T < S. Conclui-se então, pelo teorema de Hall, que o grafo G não admite qualquer matching completo de X em Y. ou T N (S): Sabe-se que existe um vértice y Y tal que y N (S) \T. Seja x S um vértice tal que xy A; tem-se que ou x = v, pelo que xy / M por definição de v, ou x v, donde xy / M, pois x é M-saturado em H e M é um matching. Portanto, em qualquer um dos casos, a aresta xy não está no matching M. Tem-se agora duas hipóteses a considerar: - y é M-saturado em G, pelo que existe z X tal que yz M; então acrescenta-se a H os vértices y e z e as arestas xy e yz e volta-se ao caso (1). 27

36 - y é M-insaturado em G, então acrescenta-se a H o vértice y e a aresta xy e vai-se para ao caso (2). No caso de se verificar (2), seja w o vértice distinto de v que é M-insaturado em G; tem-se que o caminho que une v a w é M-aumentativo, terminando a construção de H. Vai-se agora aplicar a construção da àrvore M-alternada a um grafo bipartido, no qual se define um matching M, que não será completo. Considere-se então o grafo bipartido da figura 1.7. Figura 1.7: Matching bipartido. Nesta grafo, estão representadas três arestas de forma diferente: são as arestas do matching inicial, M = {x 2 y 2, x 3 y 3, x 5 y 5 }. Como é de notar, M não é um matching completo pois x 1 e x 4 não têm tarefas atribuídas por M. A àrvore M-alternada é construída a partir de um vértice M-insaturado; vai-se então construir a àrvore com raíz em x 1 e seja H o grafo cujos vértices e arestas são os vértices e as arestas desta àrvore. Inicialmente, H é apenas constituída por x 1. Como a vizinhança deste vértice não é vazia, acrescenta-se a H os vértices que estão nesta vizinhança, y 2 e y 3, bem como as arestas que os unem a x 1. Obtem-se a àrvore da figura 1.8. Figura 1.8: Construção da árvore M-alternada de raíz x 1 - início. Se algum dos vértices acrescentados é M-insaturado, então a aresta que o une a x 1 28

37 pode ser acrescentada ao matching M, obtendo um novo matching com mais uma aresta. Contudo y 2 e y 3 são M-saturados, pelo que se acrescenta a H as arestas de M incidentes neste dois vértices, bem como os dois vértices na outra extremidade, x 2 e x 3. Obtem-se, assim, a àrvore H da figura 1.9. Figura 1.9: Construção da árvore M-alternada com raíz em x 1. Há que ver, agora, qual é a vizinhança dos vértices x 2 e x 3 ; se dela fizer parte vértices que ainda não estejam na árvore, estes são acrescentados assim como as arestas que os unem a algum daqueles vértices. Neste exemplo, apenas se vai acrescentar y 1, bem como a aresta x 2 y 1, obtendo-se a árvore da figura Figura 1.10: Construção da árvore M-alternada com raíz em x 1 - árvore final. Como y 1 é M-insaturado, termina a construção de H, pelo ponto (2). Note-se que apenas x 1 e y 1 são M-insaturados e que apenas existe um caminho em H que une estes dois vértices. Assim, este é um caminho M-aumentativo; logo, se as arestas de M deste 29

38 caminho passarem a ser arestas de A\M e vice-versa, acrescenta-se uma aresta ao matching inicial. Obtém-se portanto o matching M = {x 1 y 2, x 2 y 1, x 3 y 3, x 5 y 5 }. Tendo em conta o que foi visto anteriormente, vai-se apresentar agora a descrição do algoritmo Húngaro. Assim, dado um grafo bipartido G = (X Y, A), com X = {x 1, x 2,..., x n } e Y = {y 1, y 2,..., y n }, 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ão M é um matching completo. Termina o algoritmo. 3. Senão, existe em X pelo menos um vértice v ao qual M não faz corresponder qualquer elemento de Y. 4. Construa-se a árvore M-alternada com raíz em v, como foi descrito anteriormente. 5. Se não existe nesta árvore algum vértice M-insaturado, para além de v, então não é possível acrescentar mais arestas a M e não existe qualquer matching completo de X em Y. Termina o algoritmo. 6. Se existe um vértice M-insaturado u v naquela árvore, então o caminho que une v a u é M-aumentativo. Neste caminho, as arestas de M passam a ser de A\M e viceversa; substitui-se então 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á está representado um matching inicial M. A partir desde matching, já foi construída a árvore M-alternada com raíz em x 1, na qual existe um único caminho (M-aumentativo) que une x 1 a y 1. Neste caminho, faz-se o que é descrito no ponto 6 do algoritmo obtendo-se assim um novo matching M = {x 1 y 2, x 2 y 1, x 3 y 3, x 5 y 5 }, que é apresentado na figura

39 Figura 1.11: Novo matching M. Este matching ainda não é um matching completo, pois x 4 não tem uma tarefa atribuída por M. Como N (x 4 ), pode-se construir a árvore M-alternada com raíz em x 4, obtendo- -se a árvore da figura Figura 1.12: Árvore M-alternada com raíz em x 4. Neste caso, todos os vértices da árvore, excepto x 4, são M-saturados e, para S = {x 1, x 3, x 4 }, N (S) = {y 2, y 3 }. Conclui-se então que N (S) < S, logo, pelo teorema de Hall, G não contém qualquer matching completo, terminando o algoritmo. Encontrou- -se assim um matching maximal para o grafo da figura 1.7, M = {x 1 y 2, x 2 y 1, x 3 y 3, x 5 y 5 }, que tal como foi visto não é completo nem existe qualquer matching completo para o problema em causa. O que aconteceria se se mudassem as condições do problema inicial? Será possível obter novamente uma matching completo, sendo ele o melhor possível tendo em conta essas novas condições? 31

40 1.3 Algoritmo de Kuhn-Munkres No problema anterior, não há distinção, por parte da empresa, entre os trabalhadores qualificados para uma determinada tarefa. Mas existem casos em que a empresa necessita ter em conta a competência do trabalhador para desenvolver as tarefas para as quais está qualificado. Assim, considere-se que uma empresa tem n tarefas distintas x 1, x 2,..., x n para serem desempenhadas e tem disponíveis n trabalhadores distintos y 1, y 2,..., y n, em que cada um deles está qualificado para uma ou mais dessas tarefas e cada trabalhador tem um certo nível de competência para desempenhar cada tarefa para a qual está qualificado. O objectivo neste problema é obter uma correspondência trabalhador-tarefa, com n pares, tendo em conta as competências dos trabalhadores, de forma a que estas sejam as melhores possíveis, o que vai ser traduzido por maximixar a soma das competências dos trabalhadores atribuídos às 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 é o conjunto das tarefas e Y é o conjunto dos trabalhadores. Um grafo bipartido G = (V, A), com V = X Y, diz-se completo se, para todo o vértice x X e y Y a aresta xy está em A. Para este problema, há que acrescentar uma informação extra, à qual se chama peso nas arestas. Este peso é representado pela função f : A Z + 0, tal que f (x i y j ), com x i X, y j Y e x i y j A, é a competência que o trabalhador y j tem para realizar a tarefa x i ; tal como se conclui da definição da função f, a competência de um trabalhador para uma determinada tarefa é representada por um número inteiro não negativo podendo existir trabalhadores com a mesma competência para desempenhar uma determinada tarefa. No entanto, nenhum trabalhador tem a mesma competência para desempenhar tarefas diferentes. O objectivo do problema é encontrar em G um matching completo cuja soma dos pesos nas arestas é máximo, a que se chamará matching optimal. Uma solução para este problema é encontrada usando o algoritmo de Kuhn-Munkres; este 32

41 algoritmo baseia-se no facto de, usando uma etiquetagem conveniente dos vértices a partir do peso nas arestas, se poder assegurar que certos matchings são optimais. Para perceber o algoritmo, vai-se definir essa equiquetagem dos vértices 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és da função f : A Z + 0, uma etiquetagem conveniente dos vértices é uma função l : V (G) R, tal que, para todo x X e todo y Y, l (x) + l (y) f (xy), em que l (v) é a etiqueta do vértice v. Dada uma etiquetagem conveniente dos vértices l num grafo G, denota-se por A l o seguinte conjunto A l = {xy A : l (x) + l (y) = f (xy)}. Defina-se ainda G l como sendo o grafo cujo conjunto das arestas é A l e o conjunto dos vértices é V (G). Com o resultado seguinte, irá perceber-se de que forma o grafo G l ajuda na construção de um matching optimal em G. Teorema Seja l uma etiquetagem conveniente dos vértices do grafo bipartido completo G = (V, A) com peso nas arestas. Se G l contém um matching completo M, então M é um matching optimal de G. Demonstração. Sejam G = (V, A) um grafo bipartido completo com peso nas arestas e l uma etiquetagem conveniente dos vértices de G. Suponha-se que G l contém um matching completo M. Como V (G l ) = V (G), M também é um matching completo de G. Da definição de G l, sabe-se que l (x) + l (y) = f (xy), para todo xy M. Represente-se por f (A ) a soma de todos os pesos das arestas do subconjunto A A; tem-se então que f (M ) = f (e) = l (v) e M v V uma vez que M é um matching completo, isto é, todos os vértices de V (G) são M - -saturados, existindo apenas uma aresta de M que lhes é incidente e M A l. Considere-se 33

42 agora M um matching completo qualquer em G; então f (M) = e M f (e) v V l (v) uma vez que, para todo xy A, f (xy) l (x) + l (y). Tem-se então que f (M) f (M ), para qualquer outro matching completo M, pelo que M é um matching optimal. Assim sendo, basta encontrar um matching completo em G l, já que esse matching é optimal em G. Vai-se ver agora uma descrição do algoritmo de Kuhn-Munkres, para a obtenção de matchings optimais. Considere-se então um grafo G com peso nas arestas e defina-se a partir deste uma etiquetagem conveniente dos vértices l, que determina o grafo G l ; determina-se um matching M arbitrário neste grafo e aplica-se o algoritmo Húngaro para se determinar um matching completo. Se G l admitir um tal matching, então este é optimal em G, pelo teorema anterior. Caso contrário, o algoritmo Húngaro determina um matching M que não é completo, por existir em G l um conjunto S X tal que N Gl (S) < S. Ou seja, existe em G l uma árvore H, M -alternada, que não contém qualquer caminho M -aumentativo. Há então que alterar l para uma nova etiquetagem conveniente dos vértices ˆl de forma a que Gˆl contenha M e H e permita que esta árvore cresça de forma a admitir um caminho M -aumentativo em Gˆl. Seja T = N Gl (S); para obter ˆl, há que calcular α l determinado por α l = min {l (x) + l (y) f (xy)} ; x S y / T vai-se então substituir l pela etiquetagem conveniente dos vértices definida pela expressão seguinte l (v) α l, l (v) + α l, l (v), se v S se v T outros casos 34

43 Note-se que α l > 0, pois este valor é apenas calculado para arestas xy A (G) tais que x S e y / T, pelo que xy / G l, ou seja, l (x) + l (y) f (xy); conclui-se então que se obtém uma etiquetagem distinta da anterior. A obtenção de uma nova etiquetagem é repetida tantas vezes quantas as necessárias até que G l admita um matching completo. Vai-se agora aplicar este algoritmo ao exemplo seguinte, para que se perceba como funciona. O grafo bipartido em causa, G = (X Y, A), tem dez vértices (cinco em cada uma das partições X e Y ) e, tal como é exigido para este problema, é um grafo completo com peso nas arestas. Para que seja mais perceptível os valores que toma a função peso, vai-se tomar uma matriz P quadrada de dimensão 5 onde estes são apresentados: a linha i da matriz corresponde à tarefa x i X, a coluna j ao trabalhador y j Y e a entrada da matriz P que corresponde à intersecção da linha i com a coluna j é o peso da aresta x i y j (com 1 i, j 5). A matriz P para este exemplo é a seguinte: P = O primeiro passo é estabelecer uma etiquetagem conveniente dos vértices, l, e determinar G l. Vai-se escolher para l a seguinte função: max y Y f (vy), se v X l (v) = 0, se v Y Tendo em conta esta função l, a etiquetagem conveniente dos vértices para G está representada a seguir com a respectiva matriz P. Do lado direito da linha i está representado l (x i ) e por baixo de cada coluna j está representado l (y j ). 35

44 Daqui vem que G l é o grafo representado na figura Figura 1.13: O grafo G l. Pelo que foi feito no exemplo do problema anterior (de obtenção de matchings maximais num grafo bipartido), sabe-se que este grafo não contém qualquer matching completo, já que N Gl ({x 1, x 3, x 4 }) = {y 2, y 3 }; o matching final obtido foi M = {x 1 y 2, x 2 y 1, x 3 y 3, x 5 y 5 } e a árvore H sem caminhos M-aumentativos é a apresentada na figura Há então que mudar a etiquetagem conveniente dos vértices, consoante é explicado na descrição do algoritmo. Ou seja, para cada aresta xy de G, com x {x 1, x 3, x 4 } e y / {y 2, y 3 }, há que calcular o valor de l (x)+l (y) f (xy) e escolher o menor deles. Para o problema em causa estes valores são apresentados na matriz seguinte, em que cada linha i corresponde a uma tarefa x i e cada coluna j a um trabalhador y j

45 Tem-se então que α l = 1, obtendo-se, assim, a seguinte etiquetagem: sendo o grafo G l correspondente o representado na figura Figura 1.14: O grafo G l associado à nova etiquetagem conveniente dos vértices. Aplicando o algoritmo Húngaro a este grafo, obtém-se o seguinte matching completo para G l : M = {x 1 y 4, x 2 y 1, x 3 y 3, x 4 y 2, x 5 y 5 }; tem-se assim um matching maximal para G. É de notar que também se pode ter o seguinte matching completo de G l : M = {x 1 y 4, x 2 y 1, x 3 y 2, x 4 y 3, x 5 y 5 }. Este matching M é igualmente maximal em G. 1.4 Conclusão No decorrer deste capítulo, apresentou-se a primeira caracterização de matchings completos em grafos bipartidos, o teorema de Hall, bem como a respectiva prova; contudo, esta 37

46 não é construtiva. Assim, de seguida apresentou-se o algoritmo Húngaro, que é uma forma de se encontrar um matching completo num grafo bipartido, ou mostrar que um tal matching não 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 à resolução de um problema de atribuição 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á também associado à resolução de problemas de atribuição de tarefas tendo em conta a competência 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értices. É natural agora formular, no seguimento dos problemas anteriores, a questão que deu origem à noção de estabilidade em matchings tratada neste trabalho. Consideram-se de novo dois conjuntos distintos que podem ser interpretados como trabalhadores e empresas, estudantes e universidades, hospitais e internos, professores e escolas, homens e mulheres, etc. É natural admitir que cada elemento de cada conjunto estabelece uma ordem de preferências estrita para os elementos do outro conjunto que considera aceitáveis. Assim, o objectivo será caracterizar um bom matching entre os dois conjuntos, isto é, um matching que de algum modo compatibilize da melhor maneira as preferências dos elementos dos dois conjuntos. A noção que vai traduzir essa ideia é a de matching estável, que é tratada no capítulo seguinte. 38

47 Capítulo 2 Matchings estáveis Pretende-se com este capítulo estudar a noção de estabilidade em matchings de um dado grafo bipartido com peso nas arestas. Esta noção de estabilidade foi introduzida por Gale e Shapley em [12]; neste artigo é 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ão considerar dois conjuntos distintos de homens e mulheres e cada elemento de cada um deles ordena os elementos do outro segundo uma certa ordem de preferências, isto é, cada mulher estabelece uma ordem de preferências no conjuntos dos homens e vice- -versa. Deste modo, um conjunto de casamentos, isto é, um matching, será estável se não fôr possível para qualquer par não-casado conseguir melhorar a condição de ambos, do homem e da mulher, se passarem a estar casados. No decorrer deste capítulo, para além de se abordar a noção de estabilidade de um matching, irá ser estudada a existência de matchings estáveis num problema de casamentos, bem como uma forma de construir um desses matchings, isto é, um algoritmo. Será ainda abordada a comparação de matchings estáveis do ponto de vista de ambos os conjuntos, dos homens e das mulheres, definida a partir das preferências por eles estabelecida. É 39

48 ainda dada uma noção equivalente de estabilidade de um matching e alguns resultados decorrentes desta. 2.1 A noção de estabilidade. No início dos anos sessenta, Gale introduziu a noção de estabilidade e conjecturou que qualquer problema de casamentos admite uma solução estável. Shapley deu uma prova construtiva da existência de solução, isto é, um algoritmo que a permite obter. Vai-se então de seguida apresentar este resultado clássico, bem como algumas considerações e resultados posteriores, em particular, a comparação entre diferentes matchings estáveis. Assim, seja G = (V, A), com V = H F, um grafo bipartido com pesos nas arestas, para cada uma das suas extremidades. Nesta nova linguagem, vai-se chamar homens aos elementos de um dos conjuntos da partição de V, por exemplo H, e aos elementos do outro conjunto, F, mulheres. Uma vez introduzida esta nova linguagem, há que traduzir alguns conceitos associados a grafos. A condição xy A (G) traduz-se por x conhece y e y conhece x ; dado um matching M no grafo G, a condição xy M traduz-se por x casa com y ; os pesos nas arestas do grafo G serão traduzidas por duas listas de preferências: numa delas os homens expressam a sua ordem de preferências relativamente às mulheres, consoante o peso na aresta que une os vértices que os representam no lado do homem, e outra em que as mulheres expressam a sua ordem de preferências relativamente aos homens, novamente tendo em conta o peso na aresta que une os vértices que os representam no lado da mulher. Há que chamar a atenção que um homem (ou uma mulher) só estabelece a ordem de preferências para as mulheres (ou os homens) que conhece e que o (a) conhecem. Para que seja mais simples diferenciar entre homens e mulheres, eles serão representados de forma diferente: por letras maiúsculas e letras minúsculas, respectivamente. Tendo em conta esta representação, a lista de preferências de um homem, por exemplo A, será da 40

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 é a que ele menos gosta de todas as que conhece. Assim, um problema de casamentos é representado por um grafo bipartido com peso nas arestas para ambas as extremidades. Na figura 2.1 está representado um exemplo de um problema de casamentos, no qual quanto maior é o peso na aresta no lado do homem (da mulher), melhor é o rankimg da mulher (do homem) na extremidade oposta da aresta. Figura 2.1: Exemplo de um problema de casamentos. Como se vê nesta figura, existem três homens, A, B e C, e três mulheres, a, b e c; as listas de preferências para este problema são: 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ão fôr esta a sua noiva, A prefere ficar solteiro. Já 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 é a mulher b. De forma análoga se interpreta as restantes listas de preferências. Deste modo, um problema de casamentos pode ser representado apenas por dois conjuntos distintos, os homens e as mulheres, e duas listas de preferências: uma lista em que cada 41

50 homem estabelece as suas preferências sobre as mulheres que conhece e outra lista em que cada mulher estabelece as suas preferências sobre os homens que conhece. Se o conjunto dos homens e o conjunto das mulheres têm ambos n elementos, o problema de casamentos diz-se de ordem n. É de salientar que o conjunto dos homens e o cunjunto das mulheres não têm de ter o mesmo número de elementos, tal como é referido em [5] e em [12]. Neste capítulo, apenas serão apresentados resultados para problemas de casamentos em que o número de homens e de mulheres é o mesmo. Para simplificar a escrita, será usada a seguinte notação: dados dois homens A e B e duas mulheres a e b, a A a está na lista de preferências de A A a A está na lista de preferências 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 = {A 1, A 2,..., A n } é o conjunto dos homens e F = {a 1, a 2,..., a n } é o conjunto das mulheres, um matching M neste problema é um conjunto de pares da forma A i a j, tal que A i é um homem, a j é uma mulher, com 1 i, j n, e nenhum homem está casado com mais que uma mulher e vice-versa. É de salientar que um matching não necessita de ser completo, isto é, não é necessário que todos os homens e todas as mulheres considerados no problema tenham um par. No exemplo anterior, o único matching completo que existe é M = {Aa, Bb, Cc}. Mas será este um bom matching? Com a próxima definição, vão ser estabelecidas as condições para que se tenha um matching que compatibilize da melhor forma as preferências dos homens e das mulheres, isto é, as condições que tem de satisfazer um matching para que se diga estável. 42

51 Definição Sejam {A 1, A 2,..., A n } um conjunto de homens e {a 1, a 2,..., a n } um conjunto de mulheres, tal que cada A i tem uma lista de preferências para os a j e cada a j tem uma lista de preferências para os A i, com 1 i, j n. Então {A 1 a 1, A 2 a 2,..., A n a n } é um matching estável se e só se: (i) a k A k e A k a k para 1 k n; (ii) não existem k e l tais que A l a k A k e a k A l a l, com 1 k, l n. Usando esta definição, verifica-se que o matching M apresentado para o exemplo anterior não é estável, já que se tem BcC e cbb a ocorrer simultaneamente. Dado um problema de casamentos de ordem n, o objectivo é encontrar um matching estável em que se formem n casais ou o maior número de casais possível. Vamos ver que uma das formas de resolver o problema de encontrar um matching estável é recursiva; ou seja, num problema de casamentos de ordem n, fixado um casamento Aa, em que A é um homem e a é uma mulher, basta encontrar um matching estável num problema de casamentos sem A e a, de ordem n 1. Para isso, vai-se provar o seguinte resultado: Lema Num problema de ordem n, existe um matching estável que contém o casal A n a n se e só se a n A n, A n a n e existe um matching estável no problema B de ordem n 1 definido por: o homem A i do problema inicial corresponde ao homem B i no problema B; a mulher a j do problema inicial corresponde à mulher b j no problema B; b i B j a i A j e (A j a n A n e a n A j a i ) B i b j A i a j e (a j A n a n e A n a j A i ) b i B j b k a i A j a k ou b k / B j B i b j B k A i a j A k ou B k / b j 43

52 para 1 i, j, k n 1. Demonstração. Suponha-se que existe um matching estável M em A em que um dos casais é A n a n. Considere-se agora um problema de casamentos B igual a A, com a excepção do homem A n e da mulher a n que são eliminados do problema, assim como das listas de preferências em que aparecem; então M\ {A n a n } definido em B também é um matching estável, uma vez que não se alterou em nada os restantes casais de M e só se eliminam A n e a n das preferências das restantes mulheres e homens, respectivamente. Pelo que existe um matching estável em B e este problema verifica as condições do enunciado. Vai-se supor agora que a n A n, A n a n e que existe um matching estável M 1 em B, em que B é um problema de casamentos de ordem n 1 tal como foi definido no enunciado. Quer-se provar que existe um matching estável M 2 em A tal que um dos casamentos é A n a n. Tome-se em A o matching definido por: se B i b j M 1 então A i a j M 2, com 1 i, j n 1. Para além destes, apenas A n a n está em M 2. Para ver que este matching é estável, há que mostrar duas coisas: i) se A i a j M 2, então a i A j e A j a i, 1 i, j n Se 1 i, j n 1 e como A i a j M 2, tem-se que B i b j M 1, pelo que b j B i e B i b j. Por definição de B, vem que a j A i (e (A j a n A n e a n A j a i )) e ainda que A i a j (e (a j A n a n e A n a j A i )). Logo, a i A j e A j a i, para todo 1 i, j n (uma vez que se supôs que a n A n e que A n a n ). ii) para quaisquer A i1 a j1, A i2 a j2 M 2, não se tem simultaneamente A i2 a j1 A i1 e a j1 A i2 a j2, 1 i 1, i 2, j 1, j 2 n Suponha-se que isto não acontece. Então pode acontecer uma de duas coisas: ou (1) existem dois casais A i1 a j1 e A i2 a j2, com 1 i 1, i 2, j 1, j 2 n 1, para os quais A i2 a j1 A i1 e a j1 A i2 a j2, ou (2) existe um casal A i a j, com 1 i, j n 1, para o qual se tem A i a n A n e a n A i a j. 44

53 Se se verificar (1), por definição de M 2, tem-se que B i1 b j1, B i2 b j2 M 1 e que B i2 b j1 B i1 e b j1 B i2 b j2, donde M 1 não seria estável, contradizendo o que foi suposto. Se se verificar (2), da definição de B e do que foi visto em i), obtém-se uma contradição. Logo, para quaisquer A i1 a j1, A i2 a j2 M 2, não ocorrem simultaneamente A i2 a j1 A i1 e a j1 A i2 a j2, com 1 i 1, i 2, j 1, j 2 n. Assim, o matching M 2 em A é estável. Observação Do resultado anterior conclui-se que num dado problema A é sempre possível eliminar um dos casais de um matching estável M e obter de novo um matching estável no novo problema. A maior parte dos resultados existentes para matchings estáveis tomam como ponto de partida listas de preferências completas, isto é, todos os homens conhecem todas as mulheres e vice-versa. Contudo, isto pode não acontecer, isto é, podem existir homens e mulheres com a sua lista de preferências incompleta. Assim, torna-se necessário encontrar uma forma de completar estas listas, de modo a se poderem aplicar os resultados provados. Uma forma de o conseguir é adicionando um novo homem V, o viúvo, e uma nova mulher v, a viúva. As listas de um problema de casamentos de ordem n completam-se tendo em conta o seguinte procedimento: - O viúvo vai ser a última escolha da viúva e esta a que V menos gosta. - Cada mulher a k, com 1 k n, vai colocar V em último lugar na sua lista, que poderá ser incompleta; de seguida ela vai classificar abaixo de V todos os homens que não conhece na sua lista, por uma ordem arbitrária. - Cada homem A k, com 1 k n, irá colocar v no final da sua lista de preferências, que poderá estar incompleta; de seguida ele vai classificar abaixo de v todas as mulheres que não conhece na sua lista, por uma ordem arbitrária. 45

54 Note-se que o problema obtido é de ordem n + 1 em que os homens são A 1, A 2,..., A n e V e as mulheres são a 1, a 2,..., a n e v. É fácil ver que o problema apresentado no exemplo da página 41 tem as listas de preferências incompletas. Tendo em conta o procedimento anterior, um problema com as listas de preferências completas associado ao problema do exemplo referido é 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ão provar o seguinte teorema: Teorema Existe um matching estável no problema de casamentos com listas de preferências incompletas se e só se existe um matching estável M no problema de casamentos com listas de preferências completas obtidas do modo referido anteriormente tal que V v M. Nota Por abuso de linguagem, e para simplificar a leitura, para se referir um problema de casamentos com listas de preferências completas ir-se-á escrever somente problema completo e para referir um problema de casamentos com listas de preferências incompletas ir-se-á escrever problema incompleto. Demonstração. A prova deste teorema decorre directamente do lema anterior, bastando mostrar que os problemas respeitam as condições referidas. Usando a notação daquele resultado, denomina-se por B o problema incompleto e por A o problema completo, sendo V v o casamento pré-definido. Para que não haja confusão quando se está a considerar elementos de B ou de A, no primeiro problema os homens designam-se por B i e as mulheres por b j e, em A, o homem correspondente a B i representa-se por A i e a mulher correspondente a b j por a j, com 1 i, j n. Por definição de A, v V e V v; falta agora verificar as quatro condições que o problema B tem de respeitar. Assim, para 1 i, j, k n: 46

55 . b i B j a i A j e (A j vv e va j a i ) O sentido directo da implicação sai directamente da definição de B e A, uma vez que se b i B j a i A j e também se tem A j vv e a i A j v, logo (A j vv e va j a i ). Reciprocamente, se a i A j, como A j vv, para todo 1 j n, então tem-se a i A j v, pelo que b i B j.. B i b j A i a j e (a j V v e V a j A i ) O sentido directo da implicação sai directamente da definição de B e A, uma vez que se B i b j A i a j e também se tem a j V v e A i a j V, logo (a j V v e V a j A i ). Reciprocamente, se A i a j, como a j V v, para todo 1 j n, então é necessário que A i a j V, pelo que B i b j.. b i B j b k a i A j a k ou b k / B j No sentido indirecto da implicação, se se tiver a i A j a k e b k B j, então também se tem b i B j b k ; se b k / B j, é claro que B j prefere qualquer outra mulher a b k. Para provar o sentido directo da implicação basta ver que se a k A j a i e b k B j, então também se tem b k B j b i. Mas isto é sempre verdade pois b k B j e para estas mulheres as listas de preferências permanecem as mesmas.. B i b j B k A i a j A k ou B k / b j No sentido indirecto da implicação, se se tiver A i a j A k e B k b j, então também se tem B i b j B k ; se B k / b j, é claro que b j prefere qualquer outro homem a B k. Para provar o sentido directo da implicação basta ver que se A k a j A i e B k b j, então também se tem B k b j B i. Mas isto é sempre verdade pois B k b j e para estes homens as listas de preferências permanecem as mesmas. Tem-se assim provado o que se pretendia. 47

56 A prova do próximo teorema será feita mais à frente (ver página 65), no qual se estabelece que se existir um matching estável em que os viúvos fiquem juntos, então eles ficam juntos em todos os matchings estáveis do problema. Teorema Se existe um matching estável M tal que V v M para um problema completo, então V v pertence a qualquer matching estável neste problema. Com os resultados anteriores, dado um problema de casamentos, já se tem uma forma de completar as listas de preferências que lhe estão associadas, no caso de estarem incompletas, de modo a não alterar a existência de um matching estável. Vai-se agora provar que para qualquer problema de casamentos com listas de preferências completas existe pelo menos um matching estável. A prova da existência deste matching é construtiva e é baseada no algoritmo apresentado por Gale e Shapley em [12] em Este resultado e o algoritmo referido são apresentados na próxima secção. 2.2 Construção de uma solução No decorrer desta secção irá ser apresentado um algoritmo para a obtenção de um matching estável para um dado problema de casamentos. De seguida, serão apresentados alguns resultados em consequência deste algoritmo. Assim, o algoritmo é realizado com base em noivados sucessivos, de forma a manter o matching estável. Tem-se como ponto inicial dois conjuntos H = {A 1, A 2,..., A n } de n homens e F = {a 1, a 2,..., a n } de n mulheres todos solteiros e as listas de preferências de cada homem sobre o conjunto das mulheres e de cada mulher sobre o conjunto dos homens; é, ainda, introduzido (só para o decorrer do algoritmo) um homem fictício, Ω, que é o noivo inicial, bem como o último na lista de preferências para todas as mulheres. O algoritmo faz o seguinte: 48

57 1. Cada homem A i vai-se propor à sua mulher preferida a j, 1 i, j n; 2. Cada mulher a j aceita a proposta de noivado se ainda for noiva de Ω (o que equivalia a estar solteira) ou, estando noiva de outro homem, se preferir A i ao seu actual noivo. 3. Sempre que uma mulher rejeita um homem, ela é apagada da sua lista de preferências (assim ele não pode voltar a repetir a proposta) e esse homem é o próximo a escolher a sua mulher preferida na nova lista. 4. O valor de i é incrementado se e só se uma mulher rejeita Ω por outro homem; o algoritmo procegue com o homem A i+1, que ainda não fez a sua primeira proposta de noivado. 5. O algoritmo termina quando o ciclo começa por casar o homem A n e se casa uma mulher ainda solteira (casada com Ω). Desta descrição do algoritmo, pode-se concluir que no seu decorrer: (1) a mulher só tende a melhorar a sua situação, pois nunca escolhe um noivo pior do que aquele que já tem; (2) o homem tende a piorar a sua situação, uma vez que se for rejeitado por uma mulher tem de descer na sua lista de preferências. O objectivo é ver que este algoritmo produz sempre uma solução para o problema, ou seja, que produz um matching estável entre os conjuntos H e F tendo em conta as listas de preferências apresentadas. A partir daqui vai-se apresentar uma descrição mais pormenorizada do referido algoritmo, bem como a prova de que produz o resultado desejado. No algoritmo são usadas 3 variáveis, k, X e x, e duas constantes, n e Ω, que representam: n: número de casamentos a realizar k: número de casamentos já formados X: pretendente x: mulher a quem o pretendente se propõe Ω: homem fictício 49

58 Tendo isto, o algoritmo é o seguinte: k 0; todas as mulheres estão (temporariamente) noivas de Ω; while k < n do begin X (k + 1)-ésimo homem while X Ω do begin x a melhor escolha que resta na lista de X If x prefere X ao seu noivo then begin X é noivo de x X anterior noivo de x end If X Ω then apaga x da lista de X end k k + 1 end celebra-se n casamentos Na figura 2.2 apresenta-se um fluxograma que pretende explicar o processo do algoritmo apresentado. 50

59 Figura 2.2: Descrição do algoritmo. Com base neste algoritmo, vai-se determinar um matching estável para o exemplo de um problema de casamentos dado pelas listas de preferências apresentadas de seguida. A: c b d a a: A B D C Ω B: b a c d b: C A D B Ω C : b d a c c: C B D A Ω D: c a d b v: B A C D Ω É de notar que o homem fictício Ω foi acrescentado à lista de preferências de cada mulher, apenas para facilitar a visualização do funcionamento do algoritmo. Tem-se que n = 4 e tem-se A 1 = A, A 2 = B, A 3 = C e A 4 = D; tal como é imposto no início do algoritmo, k = 0 e todas as mulheres se encontram casadas com Ω. Em primeiro lugar há que verificar se k < 4 e em caso afirmativo tomar o homem X k+1. 51

60 Como k = 0, toma-se X = A (= A 1 ); tem-se que X Ω pelo que se segue para a instrução seguinte: x a melhor escolha que resta na lista de X e, neste caso, x c. Neste ponto do algoritmo, as três variáveis do mesmo tomam os seguintes valores: k = 0, X = A e x = c. Todas as mulheres preferem qualquer homem a Ω, logo c prefere A ao seu actual namorado, pelo que A e c formam o primeiro casal de namorados. De seguida, X passa a ser o anterior namorado de c, ou seja, X = Ω, pelo que não é executado o comando seguinte apaga x da lista de X. Pela mesma condição, aumenta-se 1 ao valor de k (k k + 1), tendo-se k = 1. Uma vez que k < 4, toma-se para X o homem B (= A 2 ). Tem-se que X Ω, pelo que se executa a instrução x a melhor escolha que resta na lista de X pelo que x b. Assim, neste ponto do algoritmo, as variáveis tomam os seguintes valores: k = 1, X = B e x = b. Como b prefere B a Ω, forma-se mais um casal de namorados, Bb. De seguida, X passa a ter o valor Ω pelo que não é executada a instrução apaga x da lista de X. Pelo mesmo motivo, k passa a tomar o valor 2. Tem-se que k < 4, logo o próximo preponente é X = C. Como X Ω, vai-se escolher a mulher preferida de C na sua lista, pelo que x b. As variáveis do algoritmo tomam os seguintes valores: 52

61 k = 2, X = C e x = b. b já namora com B, mas prefere C a B. Assim, forma-se o casal de namorados Cb e B passa a ser o valor de X. Uma vez que X Ω, apaga-se x da lista de X, ou seja, apaga-se b da lista de B, e B passa a ser o próximo preponente. A melhor escolha que resta na lista de B é a, pelo que x a. Tem-se então k = 2, X = B e x = a. Como a prefere B a Ω, forma-se um novo casal de namorados Ba. Deste modo, X passa a tomar o valor Ω, passando-se à instrução k k + 1, pelo que k = 3. Como k < 4, X toma o valor D, sendo este o próximo homem a propor-se. A mulher preferida de D é c, pelo que se tem k = 3, X = D e x = c. A mulher c ja namora com A e prefere D ao seu actual namorado, pelo que X passa a tomar o valor A. Como X Ω, apaga-se c da lista de A e A é o próximo preponente. A melhor escolha que resta a lista de A é b, tendo-se a seguinte situação k = 3, X = A e x = b. Como a mulher b já namora com C que prefere a A, não há trocas de parceiros. Tem então de se apagar b da lista de A e este faz uma nova proposta à melhor escolha que resta na sua lista, ou seja, a d. Tem-se então k = 3, X = A e x = d. 53

62 Uma vez que d ainda namora com Ω e prefere A ao seu actual namorado, forma-se o casal Ad. X toma agora o valor Ω e segue-se a instrução k k + 1. Deste modo, k toma o valor 4, pelo que k = n e termina o algoritmo. Pode-se assim celebrar 4 casamentos: Ad, Ba, Cb e Dc. É necessário agora verificar a correcção do algoritmo, ou seja, vai-se ver que o algoritmo termina e que produz um matching estável entre o conjunto dos homens e o das mulheres, tendo em conta as preferências iniciais estabelecidas. Para isso, tem que se provar os resultados seguintes e ver que estes são válidos no decorrer do algoritmo. Lema Duas mulheres não podem estar noivas do mesmo homem (com a exepção de Ω). Demonstração. Sejam 1 i, j 1, j 2 n e suponha-se que o homem A i está noivo de duas mulheres: a j1 e a j2. Como A i está noivo de a j1, então ou se tem a j1 A i a j2 ou a j2 rejeitou A i, o que não pode acontecer pois A i é seu noivo; logo, tem-se a j1 A i a j2. Por outro lado, como A i está noivo de a j2, então ou se tem a j2 A i a j1 ou a j1 rejeitou A i, que não pode acontecer porque A i é noivo de a j1 ; logo, tem-se a j2 A i a j1. Assim, acontece em simultâneo a j1 A i a j2 preferências é estrita. e a j2 A i a j1, o que é absurdo, pois a ordem de Com o resultado anterior, mostra-se que o resultado obtido do algoritmo é um matching, uma vez que uma mulher nunca pode ficar casada com dois homens e um homem só se propõe a uma mulher se estiver solteiro (ou seja, se estiver a realizar a primeira proposta de noivado) ou se for rejeitado por uma mulher, pelo que cada homem, no decorrer do algoritmo, ou está solteiro ou noivo de uma só mulher. Por outro lado, tem-se que, se o algoritmo terminar, o matching obtido é completo, já 54

63 que, na última vez que corre o algoritmo, k toma o valor n 1, isto é, estão formados n 1 casais, e o algoritmo só termina se casar uma mulher ainda solteira, pelo que o matching é completo. Lema Se A i prefere a j à sua noiva, significa que a j rejeirou A i por outro, no decorrer do algoritmo, para todo 1 i, j n. Demonstração. Suponha-se que A i prefere a j à sua noiva, com 1 i, j n. Sabe-se que as propostas dos homens são feitas por ordem decrescente, ou seja, ele propõe-se sempre à sua mulher preferida; se ela o rejeitar, ele pede à seguinte e assim sucessivamente. Logo, se A i prefere a mulher a j à sua noiva, a j já o rejeitou. Lema A situação de uma mulher nunca piora ao longo do algoritmo. Demonstração. No decorrer do algoritmo, uma mulher não fica com o seu actual noivo, se o rejeitar por outro homem que prefere, nunca por um homem pior. Logo, a sua situação só pode melhorar. Lema A lista de preferências de um homem nunca fica vazia. Demonstração. Suponha-se que isto não acontece para algum A i, 1 i n; então ele foi rejeitado por todas as mulheres, de acordo com o lema No entanto: i) nenhuma mulher se encontra noiva de Ω: caso contrário, Ω seria, para alguma mulher, preferível a qualquer outro homem, inclusivé A i, o que contradiz o facto de Ω ser o último na lista de preferências de qualquer mulher. ii) cada mulher tem exactamente um noivo: pelo lema 2.2.1, uma mulher não tem mais do que um noivo e, por i), cada mulher tem um noivo direrente de Ω. 55

64 Assim, como existem n mulheres, teriam de existir n homens de quem elas estão noivas, para além de A i, o que é absurdo. Logo, a lista de preferências de um homem nunca fica vazia. Conclui-se que o algoritmo pára, já que, para cada valor de k, há uma mulher que deixa de estar noiva de Ω, que faz com que o valor de k seja incrementado. Para o algoritmo não parar, teriam de existir n mulheres noivas de n 1 homens quando o valor de k é incrementado para n 1, o que não pode acontecer pelo lema Pelo que o algoritmo tem de parar. Lema O matching obtido através do algoritmo é estável. Demonstração. Sejam 1 i 1, i 2, j 1, j 2 n. Se A i1 a j1 M, em que M é o matching obtido pelo algoritmo, e a j2 A i1 a j1, quer dizer que, no decorrer do algoritmo, a j2 rejeitou A i1 (pelo lema 2.2.2) e que A i2 a j2 M com A i2 a j2 A i1 (pelo lema 2.2.3). Logo, M é um matching estável. Desta forma, tem-se que o algoritmo termina e produz um matching estável, como se pretendia. Assim, prova-se também o seguinte teorema apresentado por Gale e Shapley em [12], cuja prova é feita por eles com base num algoritmo semelhante a este. Teorema Todo o problema de casamentos admite pelo menos um matching estável. Para além destes resultados, através do algoritmo apresentado, sabe-se quais são os pares A i a j, com 1 i, j n, que nunca poderão pertencer a um matching estável. Com o resultado seguinte, vai-se provar que se, na execução do algoritmo, a instrução apaga x da lista de X for executada, nenhum matching estável pode conter o par Xx. 56

65 Lema Se a j1 é removido da lista de A i1, com 1 i 1, j 1 n, então nenhum matching estável pode conter A i1 a j1. Demonstração. Sejam 1 i 1, i 2, j 1, j 2 n. Suponha-se que, no decorrer do algoritmo, a j1 é removido da lista de A i1 ; isto ocorre quando: a) A i1 se propõe a a j1, mas esta prefere o seu actual noivo A i2 (ou seja, A i2 a j1 A i1 ) b) a j1 era noiva de A i1, mas deixou-o (A i2 propos-se a a j1 e A i2 a j1 A i1 ) Em ambos os casos se tem A i2 a j1 A i1 e a j1 A i2 a j2, em que a j2 é outra mulher que resta na lista de A i2. Assim, se algum matching contiver A i1 a j1, para que não seja instável, A i2 terá de estar casado com alguém que prefere a a j1. Vai-se provar por indução sobre l, número de passos do algoritmo, que se, no l-ésimo passo do algoritmo, a j1 rejeita A i1, então nenhum matching estável pode conter A i1 a j1. Seja l 0 o primeiro passo do algoritmo em que é possível que um homem seja rejeitado por uma mulher; assim, para 1 l < l 0, não faz sentido que tal aconteça, bem como para k = 1, uma vez que a primeira mulher a que A 1 se propõe ainda está noiva de Ω, que é o último na lista de preferências de qualquer mulher. Seja l = l 0 e suponha-se que a mulher a j1 rejeita o homem A i1 no passo l 0. Quer-se provar que nenhum matching estável contém A i1 a j1. Para que a j1 rejeite A i1, teve de acontecer uma de duas coisas: ou o ponto a) ou o ponto b) referidos anteriormente nesta prova. Como esta é a primeira rejeição do algoritmo, então A i2 está casado com a sua primeira escolha e A i1 está a fazer a primeira proposta, ou A i1 está casado com a sua primeira escolha e A i2 está a fazer a sua primeira proposta. Assim, como os homens se propõem sempre à sua mulher preferida, em qualquer um dos casos tem-se que as listas de A i1 e A i2 são da forma: 57

66 A i1 : a j A i2 : a j e a lista de a j1 é da forma: a j1 :... A i2... A i1... Se existisse um matching M que contivesse A i1 a j1, então teria de existir uma mulher a j2 tal que A i2 a j2 M. Pelo que já foi visto anteriormente, ter-se-ía a j1 A i2 a j2 e A i2 a j1 A i1, pelo que M não seria estável. Logo, se l = l 0, nenhum matching estável contém o casal A i1 a j1. Suponha-se que, para qualquer número de passos l < l 1, se no decorrer do algoritmo uma mulher a j rejeita um homem A i no passo l, para todo 1 i, j n, então não existe um matching estável que contenha A i a j. Quer-se provar que se, no decorrer do algoritmo, uma mulher a j1 rejeita um homem A i1 no passo l 1, então não existe um matching estável que contenha A i1 a j1. Suponha-se, por redução ao absurdo, que isto não acontece. Então existe um matching estável M tal que A i1 a j1 M e a j1 rejeitou A i1 no passo l 1 do algoritmo. Seja A i2 o marido de a j1 no matching M produzido pelo algoritmo (A i2 a j1 M ); sabe-se que A i2 a j1 A i1, pois as mulheres só melhoram na sua lista de preferências. Como M é estável, A i2 tem de estar casado com alguma mulher a j2 que prefere a a j1 (pois não se pode verificar simultaneamente A i2 a j1 A i1 e a j1 A i2 a j2 ). Neste caso, a lista de A i2 é da forma: A i2 :... a j2... a j1... Uma vez que, em M, A i2 está casado com a j1, então a mulher a j2 rejeitou A i2 num passo anterior a l 1. Logo, por hipótese de indução, o matching M não é estável, pelo que A i1 a j1 / M, para todo o matching estável M. Tem-se assim mostrado o pretendido. 58

67 Deste resultado conclui-se que, no decorrer do algoritmo, vai-se obtendo problemas de casamentos com listas de preferências mais pequenas, mas cujos matchings estáveis são os mesmos do problema de casamentos inicial. Dois problemas de casamentos que admitem os mesmos matchings estáveis dizem-se equivalentes. Sabe-se ainda que o resultado obtido do algoritmo é mais do que um matching estável. Na verdade, o que se obtém é o resultado óptimo para os homens, ou seja, é a solução estável em que cada homem tem o melhor casamento possível de acordo com as suas preferências. Assim, não existe nenhum matching estável que contenha um casamento melhor para um homem qualquer A i, com 1 i n, do que o matching M do algoritmo. Se existisse um matching estável M tal que A i a j M e a j A i a j1, com A i a j1 M (1 j, j 1 n), então a j rejeitou A i no decorrer do algoritmo. Isto contradiz a hipótese de M ser estável, pelo lema anterior. Por outro lado, o matching M obtido no algoritmo é o pior resultado para as mulheres, isto é, cada mulher obtém em qualquer outro matching estável um casamento melhor ou igual ao que obtém por M. Suponha-se, por redução ao absurdo, que para alguma mulher este matching não dá o pior casamento. Seja M M outro matching estável e suponha- -se que A i1 a j1 M e que A i2 a j1, A i1 a j2 M tal que A i1 a j1 A i2, com 1 i 1, i 2, j 1, j 2 n. Da estabilidade de M resulta que a j2 A i1 a j1, que contradiz o facto de M ser o melhor casamento possível para os homens. De seguida, vai-se provar que, com o algoritmo apresentado, apenas um dos homens pode obter a mulher que ele menos gosta. Antes de se provar que esta afirmação é verdadeira, vai-se apresentar um exemplo de um problema de casamentos em que um dos homens obtém a sua última escolha. Considerem-se, então, as seguintes listas de preferências: 59

68 A: b c d e a a: C A D B E B: c d e b a b: B C D E A C : d e b c a c: C D E B A D: e b c d a d: D E B C A E: b c d e a e: E B C D A É de notar que a lista de preferências da mulher a é irrelevante para o exemplo em questão. Assim, aplicando o algoritmo a estas listas de preferências tem-se que: - A propõe-se a b e forma-se o casal Ab; - B propõe-se a c e forma-se o casal Bc; - C propõe-se a d e forma-se o casal Cd; - D propõe-se a e e forma-se o casal De; - E propõe-se a b. Como b prefere E a A, forma-se o casal Eb e apaga-se b da lista de A; - A propõe-se a c. Como c prefere B a A, apaga-se c da lista de A; - A propõe-se a d. Como d prefere C a A, apaga-se d da lista de A; - A propõe-se a e. Como e prefere D a A, apaga-se e da lista de A; - A propõe-se a a e forma-se o casal Aa; - Termina o algoritmo. Portanto, para este exemplo, os casamentos celebrados são Aa, Bc, Cd, De e Eb e A obtém a sua última escolha. De seguida, vai-se então provar o que foi referido. 60

69 Lema Dado um problema de casamentos, no máximo um homem obtém a sua última escolha através do algoritmo. Demonstração. Considere-se um problema de casamentos; quer-se provar que o algoritmo não atribui a mais que um homem a sua última escolha. Suponha-se que isto não acontece; seja A i o primeiro homem ao qual o algoritmo atribui a última escolha e seja ela a j, com 1 i, j n. Como A i já se propôs a todas as mulheres anteriores a a j na sua lista de preferências e foi recusado n 1 vezes, por um lado nenhuma dessas mulheres se encontra casada com Ω e estão todas casadas com alguém melhor do que A i (na sua lista de preferências); por outro lado, o algoritmo está a correr com k = n 1, uma vez que no momento em que A i se propõe a a j têm-se formados n 1 casais da forma Xx, com X Ω. Assim: se a j ainda for noiva de Ω, o algoritmo pára; se a j não for noiva de Ω, como o algoritmo só pára quando casa alguma mulher que ainda estivesse com Ω, então o algoritmo nunca pára, contradizendo o lema 2.2.4, mostrado anteriormente. Logo, o algoritmo nunca atribui a mais que um homem a sua última escolha. Uma consequência imediata deste resultado é o seguinte: se, num dado problema de casamentos, existe um matching estável M em que dois ou mais homens obtêm a sua última escolha, então existem pelo menos dois matchings estáveis nesse problema, já que o matching obtido através do algoritmo atribui, no máximo, a um homem a sua última escolha; logo, existem, pelo menos, o matching obtido através do algoritmo e o matching M. Também se pode concluir que o número de propostas feitas ao longo do algoritmo não ultrapassa o número n 2 n + 1, sendo n o número de homens (mulheres), visto que, no pior dos casos, o algoritmo atribui a um dos homens, seja a 1, a sua última escolha e aos restantes n 1 a penúltima escolha. Neste caso, o número de propostas de casamento é 61

70 }{{} n + (n 1) (n 1) }{{} propostas de a 1 propostas dos restantes homens = n 2 n + 1. No artigo de Gale e Shapley [12], também há uma referência ao número máximo de vezes que o algoritmo tem de correr até terminar para um problema de casamentos com n homens e n mulheres. O procedimento apresentado em [12] é ligeiramente diferente do que foi apresentado nesta secção. Assim, dado um problema de casamentos, o algoritmo faz o seguinte: - Todos os homens fazem uma proposta de noivado à sua mulher preferida. - As mulheres que tiverem mais do que uma proposta de noivado, escolhem, de entre elas, a que é feita pelo homem que preferem; estes são colocados numa lista associada à mulher, a lista de espera. - Todos os homens rejeitados fazem uma nova proposta de noivado à sua segunda escolha e repete-se o processo do ponto anterior. - O algoritmo termina quando todas as mulheres tiverem recebido uma proposta. No caso deste algoritmo, é apresentado o número máximo de propostas efectuadas no decorrer do mesmo. Novamente, este processo atribui a, no máximo, um homem a sua última escolha; assim, no pior dos casos, um dos homens, seja a 1, obtém a mulher que menos gosta e os restantes obtêm a sua penúltima escolha. Do algoritmo conclui-se que todos os homens fazem a sua primeira proposta em conjunto, contando estas apenas como uma proposta. Cada uma das propostas seguintes pode ser feita por apenas um homem ou vários em simultâneo; vai-se supôr que ocorre a primeira hipótese. Neste caso, o número de propostas é }{{} 1 + n (n 2) }{{} + 1 }{{} 1 a proposta propostas de todos os homens até proposta de a 1 à sua à sua penúltima escolha última escolha 62

71 ou seja, o número máximo de propostas no decorrer do algoritmo é n 2 2n Conflitos de interesse Muitas vezes se ouve falar em guerra dos sexos, como se fosse apenas uma história que contribuí para rivalidade que existe entre homens e mulheres. Com os resultados seguintes, vai-se ver que ela existe deste ponto de vista, em que cada um dos lados (homens e mulheres) tenta obter o melhor para si. Assim, vai-se concluir que, dados dois matchings estáveis M e M, se os homens obtêm melhores companheiras em M, então as mulheres têm melhores companheiros em M do que em M. O resultado que se segue é também apresentado em [5] e em [6]. Teorema Se um matching estável contém A i1 a j1 e outro contém A i1 a j2 e A i2 a j1, com 1 i 1, i 2, j 1, j 2 n, então a j2 A i1 a j1 e A i1 a j1 A i2 ou a j1 A i1 a j2 e A i2 a j1 A i1. (ou seja, qualquer outro matching estável é melhor para um dos esposos e pior para o outro) Demonstração. Sejam M e M dois matchings estáveis tais que A i1 a j1 M e A i1 a j2, A i2 a j1 M, com 1 i 1, i 2, j 1, j 2 n. Pela estabilidade de M, a situação de A i1 e de a j1 não podem ambas piorar de M para M (a j1 A i1 a j2 e A i1 a j1 A i2 M instável). Há agora que mostrar que também não pode melhorar para ambos ao mesmo tempo. Seja A i1 = X 0, a j1 = x 0 e a j2 = x 1 e suponha-se que a j2 A i1 a j1, ou seja, x 1 X 0 x 0. Uma vez que M representa a pior escolha para X 0, então x 1 tem de obter uma escolha melhor, 63

72 por estabilidade de M. Seja X 1 o marido de x 1 em M; então X 1 x 1 X 0. Uma vez que, em M, x 1 tem a sua pior escolha, X 0, então X 1 tem de obter uma esposa melhor do que x 1. Seja x 2 a esposa de X 1 em M ; então x 2 X 1 x 1, e assim sucessivamente. Daqui obtêm-se as seguintes sequências: X 0 x 0 X 1 x 1 X 2 x 2... em M X 0 x 1 X 1 x 2 X 2 x 3... em M onde x k+1 X k x k e X k+1 x k+1 X k, para todo k 0. Uma vez que o número de pessoas é finito e não se impõe qualquer limite superior para k, existem inteiros não negativos j e m, j < m, tais que X j = X m. Seja j 0 o menor inteiro que verifica esta propriedade e, para j 0, seja m 0 o menor inteiro tal que X j0 = X m0 e m 0 > j 0. Tem-se então que x j0 = x m0, uma vez que X j0 x j0, X m0 x m0 M e X j0 = X m0. Por outro lado, tem-se j 0 = 0, caso contrário, em M, existiriam os casais X m0 1x m0 = X m0 1x j0 e X j0 1x j0, pelo que se teria X j0 1 = X m0 1, contradizendo a hipótese de j 0 ser o menor inteiro que verifica X j0 = X k, para algum k > j 0. Logo, X m0 1x 0 M. Como x 0 = a j1, tem-se que X m0 1 = A i2. Dado que X m0 x m0 X m0 1, X m0 = X 0 = A i1, x m0 = x 0 = a j1 e X m0 1 = A i2, vem que A i1 a j1 A i2. Se se tivesse suposto que a j1 A i1 a j2, ter-se-á concluído que A i2 a j1 A i1 através de um procedimento análogo ao anterior, concluindo assim a prova. Corolário Sejam M e M matchings estáveis. Se M é pelo menos tão bom, do ponto de vista dos homens, como M, então M é pelo menos tão bom, do ponto de vista das mulheres, como M. Demonstração. Sejam M e M matchings estáveis e suponha-se que a situação, do ponto de vista dos homens, melhorou de M para M ; então, pelo teorema anterior, a situação tem de piorar, do ponto de vista das mulheres, de M para M. Logo, M é pelo menos tão 64

73 bom como M do ponto de vista das mulheres. Ou seja, dado um matching estável M, é possível compará-lo com outro matching estável M, comparando a situação dos homens ou das mulheres de ambos: Homens: M M Mulheres: M M Conclui-se então que, através de um matching estável, não é possível deixar ambas as partes (homens e mulheres) satisfeitos com os companheiros obtidos. De seguida será apresentada uma reformulação do teorema da página 48 e a sua prova. Teorema Se existe um matching estável contendo A 1 a 1, em que a 1 é a última escolha de A 1 e A 1 é a última escolha de a 1, então todos os matchings estáveis contêm A 1 a 1. Demonstração. Um matching estável que contenha A 1 a 1 é a pior solução do ponto de vista da mulher a 1, mas também é a pior do ponto de vista do homem A 1. Logo, pelo corolário anterior, em qualquer outro matching estável, para que a 1 casasse com um homem que prefira a A 1, este teria que descer na sua lista de preferências, o que é impossível (o mesmo se prova se se trocar a posição do homem pela da mulher). Logo todos os matchings estáveis contêm A 1 a 1. 65

74 2.4 Voltando à noção de estabilidade Os resultados que são apresentados nesta secção podem ser encontrados em [9]. Na maioria dos textos sobre matchings estáveis e problemas de casamentos, é usual aparecer a definição de estabilidade apresentada a seguir. A definição de estabilidade apresentada por Gale e Shapley em [12] é semelhante a esta. Definição Sejam H = {A 1, A 2,..., A n } um conjunto de homens e F = {a 1, a 2,..., a n } um conjunto de mulheres, tal que cada A i, com 1 i n, tem uma lista de preferências em F e cada a j, com 1 j n, tem uma lista de preferências em H. Então um conjunto M de arestas independentes é um matching estável se e só se qualquer que seja A i1 a j2 / M, com A i1 H e a j2 F, então ou A i1 a j1 M, com a j1 F e a j1 A i1 a j2 (A i1 está casado com uma mulher que prefere a a j2 ), ou A i2 a j2 M, com A i2 H e A i2 a j2 A i1 (a j2 está casado com um homem que prefere a A i1 ), com 1 i 1, i 2, j 1, j 2 n. Note-se que, pela definição anterior, o matching M que a verifique não necessita de ser completo, isto é, não é necessário formar n casais. Decorre da definição anterior o seguinte resultado: Lema Seja G = (V, A) um grafo bipartido. Então todo o matching estável em G é maximal nas arestas. Demonstração. Seja M um matching estável em G e suponha-se, por redução ao absurdo, que existem A i, a j V (G), com 1 i, j n, tais que M = M {A i a j } também é um matching de G, com A i a j A (G) \M. Tem-se então que A i, a j / V (M), pois M é um matching. Assim, A i a j / M nem existem quaisquer vértices a j1, A i1 M, com 1 i 1, j 1 n, tais que ou A i a j1 ou A i1 a j pertencem a M, contradizendo a estabilidade de M. 66

75 Com este resultado, prova-se que não se podem acrescentar arestas a um matching estável, pois este deixaria de ser matching. Definição Sejam H = {A 1, A 2,..., A n } um conjunto de homens e F = {a 1, a 2,..., a n } um conjunto de mulheres, tal que cada A i tem uma lista de preferências para os a j e cada a j tem uma lista de preferências para os A i, com 1 i, j n. Diz-se que um ciclo é um ciclo orientado de preferências se se pode escrever da forma A i1 a j1 A i2 a j2...a im a jm, em que a j1 prefere A i2 a A i1, A i2 prefere a j2 a a j1,..., e a jm prefere A i1 a A im. Lema Sejam M e M dois matchings estáveis num grafo bipartido com uma certa lista de preferências e seja C uma componente conexa do grafo G = (V (G ), M M ), em que V (G ) = {v V (G) : vw M ou vw M, para algum w V (G)}. Se C tem pelo menos três vértices então é um ciclo orientado de preferências. Em particular, se A 1 a 1, A 2 a 2 M e A 1 a 2 M, então A 1 prefere a 1 a a 2 se e só se a 2 prefere A 1 a A 2. Observação Sejam M e M dois matchings estáveis do grafo G = (V, A). Sendo C uma componente conexa do grafo de G = (V (G ), M M ), em que V (G ) = {v V (G) : vw M ou vw M, para algum w V (G)}, pelo que foi visto no lema 1.1.1, na página 19, C só pode ser uma de duas coisas: um caminho de comprimento maior ou igual a dois ou um ciclo de comprimento maior ou igual a quatro. O grau dos vértices de C é no mínimo 1, pois têm de ser incidentes em alguma aresta de M ou M, pelo que não se tem caminhos de comprimento zero. Suponha-se agora que C pode ter caminhos de comprimento um; então C é constituido por apenas uma aresta A i a j pertencente a M, por exemplo. Neste caso, M {A 1 a j } seria um matching, o que contradiz a hipótese de M ser estável, logo maximal nas arestas. Como já se viu, as arestas de C são alternadamente de M e M, caso contrário poderia existir um vértice com grau dois 67

76 em algum dos matchings. Portanto, C é caminho de comprimento maior ou igual a dois ou um ciclo de comprimento maior ou igual a quatro. Demonstração. Nesta prova não se vai distinguir entre homens e mulheres: serão ambos denotados por x 1, x 2,.... Sejam M e M dois matchings estáveis num grafo bipartido com uma certa lista de preferências e C como foi definido no enunciado do lema. Sabe-se então que C é um caminho de comprimento maior ou igual a 2 ou é um ciclo de comprimento maior ou igual a 4, pela observação anterior. Suponhamos que C contém um caminho x 1 x 2 x 3 x 4, em que x 2 prefere x 3 a x 1. Se x 2 x 3 / M, então x 1 x 2 M, x 2 x 3 M e x 3 x 4 M. Como M é estável e x 2 prefere x 3 a x 1, então x 3 prefere x 4 a x 2. Pode-se então concluir que se C é um ciclo, ele é orientado de preferências. Isto porque se x 1 x 2 x 3...x k é um ciclo e x 2 prefere x 3 a x 1, olhando para o caminho x 1 x 2 x 3 x 4 vê-se que x 3 prefere x 4 a x 2, pelo que foi visto anteriormente; olhando para o caminho x 2 x 3 x 4 x 5 vê-se que x 4 prefere x 5 a x 3. Continuando desta forma, pode-se concluir que x k prefere x 1 a x k 1 e que x 1 prefere x 2 a x k. Vai-se agora ver que C não pode ser um caminho. Suponha-se, então, que C é um caminho da forma x 1 x 2...x l, com l 3 e x 1 x 2 / M; então x 1 x 2 M e x 2 x 3 M. Tem-se que, para todo y V (G), x 1 y / M, pois, se pertencesse, C não começaria em x 1 ; então x 2 prefere x 3 a x 1, pela definição de estabilidade apresentada nesta secção. Por outro lado, supondo que x l 1 x l / M, então x l 1 x l M e x l 2 x l 1 M. Tem-se ainda que x l não tem par em M; pelo argumento anterior, x l 1 prefere x l 2 a x l. No entanto, pelo que foi visto no início desta prova, tem-se que se x 2 prefere x 3 a x 1, então x 3 prefere x 4 a x 2, pelo que x 4 prefere x 5 a x 6, e assim sucessivamente; conclui-se então que x l 1 prefere x l a x l 2, contrariando o que foi visto anteriormente. Logo, C não pode ser um caminho, pelo que é um ciclo orientado de preferências. 68

77 Há agora que mostrar que se A 1 a 1, A 2 a 2 M e A 1 a 2 M, então A 1 prefere a 1 a a 2 se e só se a 2 prefere A 1 a A 2. Sabe-se que a componente conexa C do grafo cujas arestas são M M e que contém A 1, a 2, A 2 e a 2 é um ciclo orientado de preferências que contém o caminho A 2 a 2 A 1 a 1. Logo, se A 1 prefere a 1 a a 2, então a 2 prefere A 1 a A 2, e vice-versa. O resultado seguinte decorre do lema anterior e com ele vai-se poder concluir que todos os matchings estáveis têm o mesmo cardinal. Teorema Para qualquer lista de preferências num grafo bipartido G = (H F, A), existem subconjuntos H 1 H e F 1 F tais que todo o matching estável é um matching completo de H 1 em F 1. Em particular, todos os matchings estáveis têm o mesmo cardinal. Demonstração. Suponha-se que a afirmação é falsa. Sejam M e M matchings estáveis e sejam H 1 H e F 1 F tais que todo o matching estável, excepto M, são matchings completos de H 1 em F 1. Então existe uma aresta A i1 a j1 em M, com 1 i 1, j 1 n tal que A i1 não é adjacente a qualquer aresta de M. Como qualquer matching estável é maximal, existe A i2 H, com 1 i 2 n e A i2 A i1, tal que A i2 a j1 M ; caso contrário, M {A i1 a j1 } seria um matching pois ambos A i1 e a j1 estariam livres em M, contradizendo a maximalidade de M. Assim, a componente conexa do grafo cujas arestas são M M e cujos vértices são as extremidades destas, que contém o vértice A i1, contém ainda a j1 e A i2. Tem-se ainda que esta componente conexa não é um ciclo, pois não existe qualquer aresta de M incidente em A i1, o que contradiz o que foi provado no lema anterior. Logo, todos os matchings estáveis de G são completos de H 1 em F 1. Para ver que todos os matchings têm o mesmo cardinal, basta observar que os conjuntos H 1 e F 1 são conjuntos fixos para todos os matchings estáveis, pelo que não existe qualquer vértice A i H\H 1 ou a j F \F 1 que seja atribuído por qualquer matching estável de G, 69

78 com 1 i, j n. O resultado que se segue é equivalente ao teorema 2.3.1, apresentado na página 63, cuja prova é feita tendo em conta os resultados apresentados nesta secção. Corolário Sejam M e M dois matchings estáveis num grafo bipartido G = (V, A) com uma lista de preferências. Suponha-se que A i a j M e A i a j / M, com 1 i, j n. Então, em M, ambos A i e a j têm noivos e um deles (A i ou a j ) está melhor em M do que em M e o outro está pior. Demonstração. Pelo teorema anterior, o conjunto de homens e mulheres que se casam é o mesmo para todos os matchings estáveis; logo, se A i a j M e A i a j / M, então existem A i1, a j1 V (G), com 1 i 1, j 1 n, tais que A i a j1, A i1 a j M. Pelo lema 2.4.2, tem-se que a componente conexa C do grafo cujas arestas são M M, e cujos vértices são as extremidades destas, que contém A i e a j é um ciclo orientado de preferências, pelo que se tem C =...A j1 a j A i a i1... ou C =...a i1 A i a j A j1... Ou seja, ou A i está melhor em M e a j está pior ou A i está pior em M e a j está melhor, respectivamente. Tem-se assim provado o que se pretendia. Vai-se agora mostrar que as duas definições de estabilidade apresentadas são equivalentes. Há que salientar que esta prova irá ser feita apenas para matchings completos, uma vez que é apenas a esses que se aplica a definição apresentada na secção 2.1. Sejam, então, H = {A 1, A 2,..., A n } um conjunto de homens e F = {a 1, a 2,..., a n } um conjunto de mulheres, tal que cada A i tem uma lista de preferências para todos os a j e cada a j tem uma lista de preferências para os A i, com 1 i, j n. Quer-se provar que 70

79 M é um matching estável pela primeira definição se e só se M é um matching estável pela segunda definição. Comece-se por provar que a condição é necessária. Seja M = {A 1 a 1, A 2 a 2,..., A n a n } um matching estável pela primeira definição de estabilidade e seja A i a j / M, com 1 i, j n e i j. Tem-se então que não se verificam simultaneamente a j A i a i e A i a j A j, em que A i a i, A j a j M. Assim, existe uma mulher x (= a i ) tal que A i x M e existe, também um homem X (= A j ) tal que Xa j M. Por outro lado, se se verificar a j A i a i, então tem que se ter A j a j A i, ou seja, existe X H tal que Xa j M e Xa j A i ; se se verifica A i a j A j, então tem-se a i A i a j, ou seja, existe x F tal que A i x M e xa i a j. Logo, M é um matching estável pela segunda definição apresentada. Vai-se agora provar o sentido contrário da equivalência. Para isso basta provar que se M = {A 1 a 1, A 2 a 2,..., A n a n } não é um matching estável pela primeira definição de estabilidade, então também não é estável pela segunda. Como M não é estável pela primeira definição, então falha uma das seguintes condições: ou (i) a k A k e A k a k para 1 k n ou (ii) não existem j e k tais que A j a k A k e a k A j a j. Se falhasse a condição (i), M não seria um matching. Logo, terá de falhar a condição (ii), ou seja, exitem A k a k, A j a j M para os quais se verificam simultaneamente a j A k a k e A k a j A j, com 1 k, j n. Sabe-se que A k a j / M; para provar o que se pretende, basta ver que, para toda a mulher x F, A k x / M ou a j A k x e que, para todo o homem X H, Xa j / M ou A k a j X. Considerem-se x F e X H. - Se x a k e X A j, então A k x / M e Xa j / M, respectivamente; - Se x = a k e X = A j, A k x e Xa j pertencem a M; por outro lado, sabe-se que a j A k a k e A k a j A j, pelo que a j A k x e A k a j X. Logo, M não é estável pela segunda definição de estabilidade. Tem-se assim provado o que se pretendia. Desta forma, conclui-se que, quando se toma um matching completo, para verificar se é 71

80 estável ou não, pode-se utilizar qualquer uma das noções de estabilidade. 2.5 Conclusão Tendo em conta o que foi visto no decorrer deste capítulo, concluiu-se que para qualquer problema de casamentos existe um matching estável, sejam as listas de preferências completas ou não; um dos matchings estáveis de um problema deste género pode ser encontrado através da aplicação do algoritmo apresentado. No decorrer deste, alguns vértices do problema original são apagados, obtendo-se um novo problema equivalente ao original. Estes vértices são vértices inúteis do problema, já que não vão pertencer a qualquer matching estável do problema de casamentos original. Além disso, concluiu-se que o matching M obtido através do algoritmo apresentado é o melhor para os homens e o pior para as mulheres; isto é, dado qualquer outro matching estável do problema de casamentos em causa, qualquer homem vai ficar com a mesma mulher que obteve em M ou com uma mulher que ele gosta menos e qualquer mulher vai ficar com o homem que obteve em M ou com um homem que prefere a este. Dados dois matchings estáveis M e M de um problema de casamentos, concluiu-se que se um destes matchings (por exemplo, M) é preferível para os homens ao outro, então M é melhor do que M para as mulheres. Concluiu-se ainda que todos os matchings estáveis de um problema de casamentos atribuem companheiras ao mesmo conjunto de homens e atribuem companheiros ao mesmo conjunto de mulheres; concluiu-se ainda que, se um homem e uma mulher têm companheiros num certo matching estável, também o vão ter em qualquer outro matching estável. É de salientar a importância que tem neste problema o facto do grafo ser bipartido. Gale 72

81 e Shapley no seu artigo [12] fazem referência a um exemplo com o qual se mostra que esta condição é necessária; este exemplo é designado como o problema dos companheiros de quarto. Pretende-se distribuir um número par de rapazes por quartos duplos e cada um tem uma ordem de preferências sobre os restantes. A distribuição não é estável se dois rapazes que não estejam no mesmo quarto, preferirem ambos estar juntos a estar com os seus actuais companheiros. Com um exemplo de quatro rapazes, A, B, C e D, em que A coloca B em primeiro lugar das suas preferências, B coloca C em primeiro lugar, C coloca A em primeiro lugar e D é último nas listas de preferências de A, B e C, é provada a existência de uma lista de preferências para a qual não existe qualquer distribuição estável. Independentemente da lista de preferências de D, o rapaz que é colocado no seu quarto prefere estar no quarto de qualquer um dos outros dois e um destes preferia estar com o companheiro de D a estar com o seu. No próximo capítulo, vai-se generalizar a noção de estabilidade de forma a se poder aplicar a casos mais gerais. Assim, vão ser considerados dois conjuntos de agentes, em que os elementos de um deles vão poder aceitar um ou mais agentes do outro conjunto. De novo, vão existir duas listas de preferências estritas dos elementos de cada um dos conjuntos sobre os elementos do outro; o objectivo será encontrar uma forma de compatibilizar da melhor forma estas listas, tendo em conta o limite máximo estabelecido para cada agente. 73

82 74

83 Capítulo 3 O problema das universidades Tal como já foi dito, quando se tem um problema de casamentos, os intervenientes podem ser interpretados como trabalhadores e empresas, estudantes e universidades, professores e escolas, internos e hospitais ou homens e mulheres, para os quais se quer obter um matching estável. Apenas a linguagem de casamentos, de homens e mulheres, é natural no problema cuja solução foi apresentada no capítulo anterior. Quando se consideram empresas, universidades, escolas ou hospitais, é mais frequente que estes pretendam obter mais do que um interveniente do conjunto oposto. É neste sentido que surgem os resultados que vão ser apresentados no decorrer deste capítulo. Assim, são considerados dois conjuntos, por exemplo universidades e estudantes; cada universidade admite que lhe sejam atribuídos um certo número de estudantes igual ou superior a um com limite máximo fixado, o qual não pode ser excedido, e cada estudante pretende ser atribuído a no máximo uma universidade. Cada um dos conjuntos irá estabelecer uma certa ordem de preferências sobre os elementos do outro e o objectivo será encontrar um matching estável entre os dois conjuntos, ao qual se chamará atribuição estável. Com as alterações feitas em relação ao problema anterior, terá de ser feita uma adaptação 75

84 a este problema da noção de matching e da noção de estabilidade apresentadas no capítulo anterior. A noção de matching será substituída pela de atribuição, uma correspondência que atribui a cada universidade um certo número de alunos não superior à sua quota e coloca cada aluno em não mais do que uma universidade. Uma atribuição é estável se não existirem uma universidade u i e um estudante a j tais que u i prefere a j a algum dos estudantes que lhe foi atribuído e a j prefere u i à universidade em que foi colocado. No artigo de Gale e Shapley [12], é tido em conta este caso e é também apresentado um algoritmo para a obtenção de uma atribuição estável nestes problemas. De facto, o algoritmo é uma adaptação a este problema do algoritmo utilizado no caso dos casamentos. Na primeira secção deste capítulo serão apresentadas as noções iniciais necessárias, entre elas a nova noção de estabilidade já referida. Será ainda apresentado um algoritmo, semelhante ao algoritmo guloso, com duas versões diferentes para a obtenção de duas atribuições para um dado problema de universidades, que, como será visto, são as atribuições óptimas para as universidades e para os alunos. De seguida será apresentada uma forma de comparar atribuições, tanto em relação às universidades como em relação aos estudantes, bem como alguns resultados necessários para fazer tais comparações. Conclui-se ainda que o conjunto de todas as atribuições estáveis de um problema de universidades forma um reticulado distributivo, tendo em conta a relação de ordem definida para este conjunto. Por fim, vai-se falar de mecanismos de atribuição, através dos quais se irá caracterizar as atribuições estáveis em relação à monotonia e à estratégia, características estas que, como se irá ver, fazem com que a atribuição estável que as verifique seja mais justa para ambos os conjuntos. Os resultados aqui apresentados encontram-se em [4]. 76

85 3.1 Resultados iniciais Nesta secção vão ser apresentadas definições e resultados que irão ser necessários no decorrer deste capítulo. Para além destes resultados, vai-se apresentar uma forma de se obter uma atribuição estável para qualquer problema de admissões ou mostrar que ela não existe. Um problema de admissões (ou de recrutamento) é caracterizado por dois conjuntos finitos de agentes, duas listas de preferências de cada elemento de cada conjunto sobre os elementos do outro e uma quota, um número inteiro superior a zero, para cada elemento de um dos conjuntos. Assim, para este problema, vão-se considerar dois conjuntos finitos distintos de agentes, U = { } { } u 1, u 2,..., u U o conjunto das universidades e A = a1, a 2,..., a A o conjunto dos alunos. Cada aluno estabelece uma ordem de preferências estrita no conjunto das universidades a que se candidata e cada universidade estabelece uma ordem de preferências estrita no conjunto dos alunos que admite como candidatos. Tem-se ainda que cada universidade tem uma quota (numerus clausus) para preencher, isto é, as universidades admitem que lhes seja atribuído um número de candidatos maior ou igual a um. Para simplificar a visualização, o problema de admissões vai ser representado por (Γ, q), ) em que Γ é um grafo dirigido, o grafo de admissões, e q = (q u1, q u2,..., q u U é um vector de entradas inteiras positivas, tal que q ui é a quota da universidade u i U. Os vértices do grafo de admissões Γ são pares ordenados da forma (u, a), com u U e a A, em que u é aceitável para a e a para u. Estes vértices estão localizados numa grelha U A em que cada linha corresponde a uma universidade u U e cada coluna a um aluno (candidato) a A. As arestas dirigidas de Γ são pares ordenados de vértices e são de dois tipos: arestas horizontais da forma ((u k, a i ), (u k, a j )) que expressa a preferência da universidade u k pelo candidato a j em detrimento do candidato a i, sendo a aresta orientada de (u k, a i ) para (u k, a j ); arestas verticais da forma ((u i, a k ), (u j, a k )) que expressa a preferência do aluno a k pela universidade u j em detrimento da universidade u i, sendo a aresta orientada de 77

86 (u i, a k ) para (u j, a k ). Se a universidade u k U prefere o candidato a j ao candidato a i, com a i, a j A, esta preferência vai ser escrita, no decorrer deste trabalho, da forma a j > uk a i ; se o candidato a k A prefere a universidade u j à universidade u i, com u i, u j U, esta preferência vai ser escrita da forma u j > ak u i. A quota de cada universidade u U, q u, é colocada a direita da linha do grafo correspondente a u. Na figura 3.1 pode-se ver um exemplo de um problema de admissões. Para já, não se distingue os vértives brancos dos pretos. Figura 3.1: Um problema de admissões e uma atribuição (vértices pretos). Note-se que as arestas obtidas por transitividade são omitidas, isto é, se, por exemplo, o candidato a A tem a seguinte lista de preferências relativamente a três universidades: a:... u i u j u k... com u i, u j, u k U, tem-se que u i > a u k, mas no grafo apenas irão aparecer as arestas ((u j, a), (u i, a)) e ((u k, a), (u j, a)). No exemplo da figura anterior, tem-se que a universidade u 1 prefere o candidato a 1 ao candidato a 2, no entanto não se representou a aresta ((u 1, a 2 ), (u 1, a 1 )), já que esta é obtida por transitividade através das arestas ((u 1, a 2 ), (u 1, a 3 )) e ((u 1, a 3 ), (u 1, a 1 )). Com a ordem de preferências que é estabelecida tanto nas linhas como nas colunas de Γ, é possível falar-se de sucessores e antecessores de um vértice numa linha ou numa coluna, 78

87 sem qualquer ambiguidade. Assim, os sucessores na linha do vértice (u, a) são os vértices da forma (u, a j ) tais que a j > u a; os sucessores na coluna do vértice (u, a) são os vértices da forma (u i, a) tais que u i > a u. Os antecessores na linha e na coluna são definidos da mesma forma, mudando-se apenas o sentido da desigualdade. No exemplo da figura 3.1, tem-se que os sucessores na linha do vértice (u 3, a 7 ) são os vértices (u 3, a 6 ), (u 3, a 5 ) e (u 3, a 8 ) e os seus antecessores na linha são (u 3, a 1 ), (u 3, a 2 ), (u 3, a 4 ) e (u 3, a 3 ); o vértice (u 3, a 7 ) não tem sucessores na coluna e os seus antecessores na coluna são (u 1, a 7 ), (u 2, a 7 ) e (u 4, a 7 ). O melhor vértice de uma coluna é aquele que não tem sucessores nessa coluna; um conjunto R de vértices de uma linha u U tal que cada um dos seus elementos não tem qualquer sucessor que não esteja em R diz-se o melhor conjunto de vértices na linha u. Uma atribuição µ num problema de admissões (Γ, q) é um conjunto de vértices de Γ que tem no máximo um vértice em cada coluna e no máximo q u vértices na linha u, para cada u U. Para além disso, o facto de um vértice (u i, a j ) µ quer dizer que µ atribui a j à universidade u i. Na figura 3.1, os vértices pretos representam uma atribuição no problema de admissões apresentado; é de salientar que esta atribuição preenche todas as quotas, mas não atribui o candidato a 8 a qualquer universidade. Uma atribuição µ diz-se estável se, para todo o vértice (u, a) Γ, pelo menos uma das seguintes condições se verifica: 1. (u, a) µ; 2. (u, a) tem um sucessor na coluna que está em µ, ou seja, u i U: (u i, a) µ e u i > a u; 3. (u, a) tem q u sucessores na linha que estão em µ, ou seja, a j1, a j2,..., a jqu A: (u, a k ) µ e a k > u a, para todo 1 k q u ; 79

88 Ou seja, dados uma atribuição µ e um vértice (u, a) / µ, µ é estável se: Se existir em Γ algum vértice (u, a) que não verifique nenhumas destas três condições apresentadas, diz-se que (u, a) bloqueia µ. Ou seja, uma atribuição µ não é estável se e só se existe um vértices que a bloqueia. No exemplo apresentado na figura 3.1, a atribuição apresentada não é estável, já que o vértice (u 3, a 8 ) não pertence à atribuição e não é sucedido na linha nem na coluna por qualquer vértice dessa atribuição, isto é, o vértice (u 3, a 8 ) bloqueia a atribuição apresentada. Há que salientar que uma atribuição estável pode deixar algum candidato por atribuir ou uma universidade com a quota por preencher. O exemplo da figura 3.2 mostra como uma atribuição estável pode não preencher todas as quotas das universidades ou deixar algum candidato por atribuir. Figura 3.2: Duas atribuições: vértices pretos - estável, vértices quadrados - não estável. Nesta figura são apresentadas duas atribuições: uma das atribuições, representada por quadrados, preenche todas as quotas e atribui todos os candidatos, mas não é estável (o vértice (u 1, a 3 ) bloqueia a atribuição pois é antecedido tanto na linha como na coluna por um vértice da mesma); a outra atribuição, representada por vértices pretos, é a única atribuição estável do problema e apenas preenche a quota da universidade u 1, não atribuindo o candidato a 1. Dados dois problemas de admissões, (Γ, q) e (Γ, q), diz-se que eles são equivalentes 80

89 se qualquer atribuição estável do primeiro também é uma atribuição estável do segundo e vice-versa. Vai-se apresentar agora um algoritmo para a determinação de uma atribuição estável para um problema de admissões qualquer (Γ, q). É de salientar que o algoritmo que se vai apresentar é semelhante ao algoritmo guloso, uma vez que a cada execução se vai escolher a melhor universidade para os candidatos, podendo este conjunto de vértices formar ou não a atribuição estável procurada. Assim, dado um problema de admissões (Γ, q) e utilizando o algoritmo referido, escolhe- -se de cada coluna o melhor vértice; a este conjunto de vértices chama-se γ. Se γ for uma atribuição, isto é, se cada linha u tem no máximo q u elementos deste conjunto, então γ é estável, pois qualquer vértice do grafo ou está em γ ou é sucedido na coluna por um vértice de γ. Suponha-se agora que isto não acontece, ou seja, existe pelo menos uma linha u que contém mais do que q u vértices de γ. Vai-se escolher os q u melhores deles e chamar a este conjunto B u. Qualquer vértice (u, b) que anteceda os vértices de B u diz-se inútil para a universidade u. Vai-se provar que os problemas (Γ, q) e (Γ, q), em que Γ é obtido a partir de Γ apagando um vértice inútil (u, b), são equivalentes. Assim, pode-se obter um atribuição estável µ para o problema Γ construindo uma atribuição estável para o problema Γ que dele se obtém retirando todos os vértices inúteis. Considere-se uma atribuição qualquer µ; quer-se provar a seguinte equivalência: µ é estável para Γ µ é estável para Γ Suponha-se que µ é uma atribuição estável em Γ. Seja (u, b) Γ um antecessor qualquer dos vértices de B u. Vai-se provar que (u, b) / µ. Suponha-se que isto não acontece; então teria de existir um vértice (u, b 1 ) B u tal que (u, b 1 ) / µ. Esta situação está representada na figura seguinte, em que os vértices pretos representam os vértices da atribuição estável 81

90 µ na linha u: Como µ é estável, (u, b 1 ) tem de ter um sucessor na coluna ou q u sucessores na linha de µ. Mas, por definição de B u, (u, b 1 ) não tem sucessores na coluna; por outro lado, (u, b 1 ) é sucessor de (u, b) µ, pelo que tem menos de q u sucessores na linha de µ, contradizendo a estabilidade de µ. Logo, (u, b) / µ. Do facto de qualquer vértice (u, b), antecessor dos vértices de B u, não pertencer a µ, pode-se concluir que µ é uma atribuição para Γ. Além disso, µ também é estável para Γ, pois a ordem de preferências para os restantes vértices continua a mesma. Suponha-se agora que µ é uma atribuição estável em Γ. Então µ também é uma atribuição em Γ. Tem-se ainda que as condições de estabilidade se verificam em Γ para todos os vértices, com excepção, eventualmente, para (u, b). Podem assim acontecer duas coisas: 1. Todos os vértices de B u estão em µ, pelo que (u, b) é seguido por q u vértices de µ. 2. Algum vértice (u, a) de B u não está em µ. Como (u, a) não tem sucessores na coluna, então tem de ser seguido na linha por q u vértices de µ em Γ, pelo que também o é em Γ. Logo, como (u, a) sucede (u, b) em Γ, este também é seguido por q u vértices de µ. Logo, µ é estável em Γ. Vai-se provar que o procedimento seguinte determina uma atribuição estável num problema de admissões (Γ, q). Além disso, vai-se ver que a atribuição obtida é a melhor escolha para os candidatos, tendo em conta as preferências por eles manifestadas. Considere-se então o problema (Γ, q) e faça-se o seguinte: 82

MATEMÁTICA DISCRETA. Patrícia Ribeiro 2018/2019. Departamento de Matemática, ESTSetúbal 1 / 47

MATEMÁTICA DISCRETA. Patrícia Ribeiro 2018/2019. Departamento de Matemática, ESTSetúbal 1 / 47 1 / 47 MATEMÁTICA DISCRETA Patrícia Ribeiro Departamento de Matemática, ESTSetúbal 2018/2019 2 / 47 1 Combinatória 2 Aritmética Racional 3 3 / 47 Capítulo 3 4 / 47 não orientados Um grafo não orientado

Leia mais

Definição 1.1 : Uma árvore é um grafo simples conexo e sem ciclos.

Definição 1.1 : Uma árvore é um grafo simples conexo e sem ciclos. 1 Árvores Definição 1.1 : Uma árvore é um grafo simples conexo e sem ciclos. Um grafo simples sem ciclos mas não conexo (em que cada componente conexa é portanto uma árvore) chama-se uma floresta. Numa

Leia mais

O PRINCÍPIO DAS GAVETAS Paulo Cezar Pinto Carvalho - IMPA

O PRINCÍPIO DAS GAVETAS Paulo Cezar Pinto Carvalho - IMPA Nível Intermediário O PRINCÍPIO DAS GAVETAS Paulo Cezar Pinto Carvalho - IMPA Muitos problemas atraentes de matemática elementar exploram relações entre conjuntos finitos, expressas em linguagem coloquial.

Leia mais

Problemas de Fluxo em Redes

Problemas de Fluxo em Redes CAPÍTULO 7 1. Conceitos fundamentais de grafos Em muitos problemas que nos surgem, a forma mais simples de o descrever, é representá-lo em forma de grafo, uma vez que um grafo oferece uma representação

Leia mais

Grafo planar: Definição

Grafo planar: Definição Grafo planar Considere o problema de conectar três casas a cada uma de três infraestruturas (gás, água, energia) como mostrado na figura abaixo. É possível fazer essas ligações sem que elas se cruzem?

Leia mais

Parte B Teoria dos Grafos

Parte B Teoria dos Grafos 45 Parte B Teoria dos Grafos B. Grafos e Subgrafos Um grafo G é uma tripla ordenada (V(G), E(G), ), constituindo de um conjunto não vazio V(G) de vértices, um conjunto disjunto E(G) das arestas e uma função

Leia mais

As Pontes de Königsberg

As Pontes de Königsberg As Pontes de Königsberg Anderson Freitas Ferreira e Lívia Minami Borges 13 de junho de 2015 Resumo A teoria de grafos teve seu início em 1736, quando Euler utilizou uma estrutura para resolver o Problema

Leia mais

O Teorema da Amizade

O Teorema da Amizade O Teorema da Amizade Seminário Diagonal David Mesquita Faculdade de Ciências da Universidade do Porto 13 de Maio de 2009 Teorema da Amizade,TA Formulação Original Suponha-se que numa sociedade, cada par

Leia mais

umgrafo, em que V representa o conjunto dos vértices de G e E o conjunto das é um grafo bipartido;

umgrafo, em que V representa o conjunto dos vértices de G e E o conjunto das é um grafo bipartido; No nosso dia-a-dia existem muitas situações 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

Leia mais

Teoria dos Grafos. Valeriano A. de Oliveira, Socorro Rangel, Silvio A. de Araujo. Departamento de Matemática Aplicada

Teoria dos Grafos. Valeriano A. de Oliveira, Socorro Rangel, Silvio A. de Araujo. Departamento de Matemática Aplicada Teoria dos Grafos Valeriano A. de Oliveira, Socorro Rangel, Silvio A. de Araujo Departamento de Matemática Aplicada Capítulo 14: Conjuntos de Corte e Conectividade Preparado a partir do texto: Rangel,

Leia mais

Noções da Teoria dos Grafos. André Arbex Hallack

Noções da Teoria dos Grafos. André Arbex Hallack Noções da Teoria dos Grafos André Arbex Hallack Junho/2015 Índice 1 Introdução e definições básicas. Passeios eulerianos 1 1.1 Introdução histórica..................................... 1 1.2 Passeios

Leia mais

Cap. 2 Conceitos Básicos em Teoria dos Grafos

Cap. 2 Conceitos Básicos em Teoria dos Grafos Teoria dos Grafos e Aplicações 8 Cap. 2 Conceitos Básicos em Teoria dos Grafos 2.1 Grafo É uma noção simples, abstrata e intuitiva, usada para representar a idéia de alguma espécie de relação entre os

Leia mais

Estratégias vencedoras para o jogo Slither

Estratégias vencedoras para o jogo Slither Estratégias vencedoras para o jogo Slither Marcelo da Silva Reis 1 1 Instituto de Matemática e Estatística, Universidade de São Paulo. marcelo.reis@gmail.com 11 de agosto de 009 Este artigo apresenta estratégias

Leia mais

1 Emparelhamentos em Grafos

1 Emparelhamentos em Grafos 1 Emparelhamentos em Grafos Definição 1.1 Um emparelhamento num grafo G é um conjunto de arestas não adjacentes entre si, isto é, incidentes em pares de vértices disjuntos dois a dois. i) Um vértice incidente

Leia mais

x y Grafo Euleriano Figura 1

x y Grafo Euleriano Figura 1 Grafo Euleriano Um caminho simples ou um circuito simples é dito euleriano se ele contém todas as arestas de um grafo. Um grafo que contém um circuito euleriano é um grafo euleriano. Um grafo que não contém

Leia mais

2.1 Sucessões. Convergência de sucessões

2.1 Sucessões. Convergência de sucessões Capítulo 2 Sucessões reais Inicia-se o capítulo introduzindo os conceitos de sucessão limitada, sucessão monótona, sucessão convergente e relacionando estes conceitos entre si. A análise da convergência

Leia mais

Teoria dos Grafos AULA 3

Teoria dos Grafos AULA 3 Teoria dos Grafos Valeriano A. de Oliveira Socorro Rangel Departamento de Matemática Aplicada antunes@ibilce.unesp.br, socorro@ibilce.unesp.br AULA 3 Trajetos, Caminhos, Circuitos, Grafos Conexos Preparado

Leia mais

Noções da Teoria dos Grafos

Noções da Teoria dos Grafos Noções da Teoria dos Grafos André Arbex Hallack Índice 1 Introdução e definições básicas. Passeios eulerianos 1 2 Ciclos hamiltonianos 7 3 Árvores 11 4 Emparelhamento em grafos 15 5 Grafos planares: Colorindo

Leia mais

Capítulo 1 Conceitos e Resultados Básicos

Capítulo 1 Conceitos e Resultados Básicos Introdução à Teoria dos Grafos (MAC-5770) IME-USP Depto CC Profa. Yoshiko Capítulo 1 Conceitos e Resultados Básicos Um grafo é um par ordenado (V, A), onde V e A são conjuntos disjuntos, e cada elemento

Leia mais

Estrutura de Dados e Algoritmos e Programação e Computadores II. Aula 10: Introdução aos Grafos

Estrutura de Dados e Algoritmos e Programação e Computadores II. Aula 10: Introdução aos Grafos Estrutura de Dados e Algoritmos e Programação e Computadores II Aula 10: Introdução aos Grafos História O assunto que se constitui no marco inicial da teoria de grafos é na realidade um problema algorítmico.

Leia mais

Teoria dos Grafos. Valeriano A. de Oliveira, Socorro Rangel, Silvio A. de Araujo. Departamento de Matemática Aplicada

Teoria dos Grafos. Valeriano A. de Oliveira, Socorro Rangel, Silvio A. de Araujo. Departamento de Matemática Aplicada Teoria dos Grafos Valeriano A. de Oliveira, Socorro Rangel, Silvio A. de Araujo Departamento de Matemática Aplicada Capítulo 18: Coloração de Arestas Preparado a partir do texto: Rangel, Socorro. Teoria

Leia mais

CAP4. ELEMENTOS DA TEORIA DE GRAFOS. Grafo [graph]. Estrutura que consiste num par ordenado de conjuntos, G ( V, E) , sendo:

CAP4. ELEMENTOS DA TEORIA DE GRAFOS. Grafo [graph]. Estrutura que consiste num par ordenado de conjuntos, G ( V, E) , sendo: Matemática Discreta ESTiG\IPB Cap4. Elementos da Teoria de Grafos pg 1 CAP4. ELEMENTOS DA TEORIA DE GRAFOS Grafo [graph]. Estrutura que consiste num par ordenado de conjuntos, G ( V, E), sendo: Exemplos

Leia mais

Noções da Teoria dos Grafos. André Arbex Hallack

Noções da Teoria dos Grafos. André Arbex Hallack Noções da Teoria dos Grafos André Arbex Hallack Junho/2015 Índice 1 Introdução e definições básicas. Passeios eulerianos 1 2 Ciclos hamiltonianos 5 3 Árvores 7 4 Emparelhamento em grafos 11 5 Grafos planares:

Leia mais

Fábio Protti - UFF Loana T. Nogueira - UFF Sulamita Klein UFRJ

Fábio Protti - UFF Loana T. Nogueira - UFF Sulamita Klein UFRJ Fábio Protti - UFF Loana T. Nogueira - UFF Sulamita Klein UFRJ Suponha que temos um grupo de pessoas (funcionário de uma empresa) que serão submetidos a um treinamento. Queremos identificar os grupos de

Leia mais

Teoria dos Grafos. Valeriano A. de Oliveira, Socorro Rangel, Silvio A. de Araujo. Capítulo 11: Grafos Eulerianos. Departamento de Matemática Aplicada

Teoria dos Grafos. Valeriano A. de Oliveira, Socorro Rangel, Silvio A. de Araujo. Capítulo 11: Grafos Eulerianos. Departamento de Matemática Aplicada Teoria dos Grafos Valeriano A. de Oliveira, Socorro Rangel, Silvio A. de Araujo Departamento de Matemática Aplicada Capítulo 11: Grafos Eulerianos Preparado a partir do texto: Rangel, Socorro. Teoria do

Leia mais

Teoria dos Grafos. Valeriano A. de Oliveira, Socorro Rangel, Silvio A. de Araujo. Capítulo 16: Grafos Planares. Departamento de Matemática Aplicada

Teoria dos Grafos. Valeriano A. de Oliveira, Socorro Rangel, Silvio A. de Araujo. Capítulo 16: Grafos Planares. Departamento de Matemática Aplicada Teoria dos Grafos Valeriano A. de Oliveira, Socorro Rangel, Silvio A. de Araujo Departamento de Matemática Aplicada Capítulo 16: Grafos Planares Preparado a partir do texto: Rangel, Socorro. Teoria do

Leia mais

Doutorado em Ciência da Computação. Algoritmos e Grafos. Raimundo Macêdo LaSiD/DCC/UFBA

Doutorado em Ciência da Computação. Algoritmos e Grafos. Raimundo Macêdo LaSiD/DCC/UFBA Doutorado em Ciência da Computação Algoritmos e Grafos Raimundo Macêdo LaSiD/DCC/UFBA Grafo Completo Grafo simples cujos vértices são dois a dois adjacentes. Usa-se a notação K n para um grafo completo

Leia mais

Percursos em um grafo

Percursos em um grafo Percursos em um grafo Definição Um percurso ou cadeia é uma seqüência de arestas sucessivamente adjacentes, cada uma tendo uma extremidade adjacente à anterior e a outra a subsequente (à exceção da primeira

Leia mais

UNIVERSIDADE FEDERAL DO RIO DE JANEIRO DEPARTAMENTO DE CIÊNCIAS DA COMPUTAÇÃO. 5 a Lista de Exercícios

UNIVERSIDADE FEDERAL DO RIO DE JANEIRO DEPARTAMENTO DE CIÊNCIAS DA COMPUTAÇÃO. 5 a Lista de Exercícios UNIVERSIDADE FEDERAL DO RIO DE JANEIRO DEPARTAMENTO DE CIÊNCIAS DA COMPUTAÇÃO MATEMÁTICA COMBINATÓRIA 5 a Lista de Exercícios 1. O grafo de intersecção de uma coleção de conjuntos A 1,..., A n é o grafo

Leia mais

Teoria dos Grafos. Valeriano A. de Oliveira, Socorro Rangel, Silvio A. de Araujo. Capítulo 5: Grafos Conexos. Departamento de Matemática Aplicada

Teoria dos Grafos. Valeriano A. de Oliveira, Socorro Rangel, Silvio A. de Araujo. Capítulo 5: Grafos Conexos. Departamento de Matemática Aplicada Teoria dos Grafos Valeriano A. de Oliveira, Socorro Rangel, Silvio A. de Araujo Departamento de Matemática Aplicada Capítulo 5: Grafos Conexos Preparado a partir do texto: Rangel, Socorro. Teoria do Grafos,

Leia mais

CI065 CI755 Algoritmos e Teoria dos Grafos

CI065 CI755 Algoritmos e Teoria dos Grafos CI065 CI755 Algoritmos e Teoria dos Grafos Exercícios 11 de outubro de 2017 1 Fundamentos 1. Seja S = {S 1,..., S n } uma família de conjuntos. O grafo intercessão de S é o grafo G S cujo conjunto de vértices

Leia mais

Matemática I. 1 Propriedades dos números reais

Matemática I. 1 Propriedades dos números reais Matemática I 1 Propriedades dos números reais O conjunto R dos números reais satisfaz algumas propriedades fundamentais: dados quaisquer x, y R, estão definidos a soma x + y e produto xy e tem-se 1 x +

Leia mais

Teoria dos Grafos. Valeriano A. de Oliveira Socorro Rangel Departamento de Matemática Aplicada.

Teoria dos Grafos. Valeriano A. de Oliveira Socorro Rangel Departamento de Matemática Aplicada. Teoria dos Grafos Valeriano A. de Oliveira Socorro Rangel Departamento de Matemática Aplicada antunes@ibilce.unesp.br, socorro@ibilce.unesp.br Grafos Eulerianos Preparado a partir do texto: Rangel, Socorro.

Leia mais

) a sucessão definida por y n

) a sucessão definida por y n aula 05 Sucessões 5.1 Sucessões Uma sucessão de números reais é simplesmente uma função x N R. É conveniente visualizar uma sucessão como uma sequência infinita: (x(), x(), x(), ). Neste contexto é usual

Leia mais

Folha 3.1. Grafos (não dirigidos)

Folha 3.1. Grafos (não dirigidos) Matemática para Ciência dos Computadores Outubro, 2005 Docente: n : n Folha 3.1 Grafos (não dirigidos) 1. (*) Seja V = {a, b, c, d, e, f, g} um conjunto de localidades e seja E = { a, b, a, f, b, e, b,

Leia mais

Fabio Augusto Camargo

Fabio Augusto Camargo Universidade Federal de São Carlos Centro de Ciências Exatas e de Tecnologia Departamento de Matemática Introdução à Topologia Autor: Fabio Augusto Camargo Orientador: Prof. Dr. Márcio de Jesus Soares

Leia mais

A resposta para este problema envolve a partição do conjunto de arestas de tal forma que arestas adjacentes não pertençam a um mesmo conjunto.

A resposta para este problema envolve a partição do conjunto de arestas de tal forma que arestas adjacentes não pertençam a um mesmo conjunto. 7 - Coloração de Arestas e Emparelhamentos Considere o seguinte problema: Problema - Ao final do ano acadêmico, cada estudante deve fazer um exame oral com seus professores. Suponha que existam 4 estudantes

Leia mais

Cálculo Diferencial e Integral I

Cálculo Diferencial e Integral I Cálculo Diferencial e Integral I Texto de apoio às aulas. Amélia Bastos, António Bravo Dezembro 2010 Capítulo 1 Números reais As propriedades do conjunto dos números reais têm por base um conjunto restrito

Leia mais

Matemática Discreta. Aula 06: Teoria dos Grafos. Tópico 01: Grafos e suas Representações. Observação

Matemática Discreta. Aula 06: Teoria dos Grafos. Tópico 01: Grafos e suas Representações. Observação Aula 06: Teoria dos Grafos Tópico 01: Grafos e suas Representações Nesta aula nós passamos a estudar um outro assunto, mas que também tem muita aplicação na vida prática, a Teoria dos Grafos. Para esta

Leia mais

Teoria dos Grafos. Grafos Eulerianos

Teoria dos Grafos.  Grafos Eulerianos Teoria dos Grafos Valeriano A. de Oliveira Socorro Rangel Silvio A. de Araujo Departamento de Matemática Aplicada antunes@ibilce.unesp.br, socorro@ibilce.unesp.br, saraujo@ibilce.unesp.br Grafos Eulerianos

Leia mais

Teoria dos Grafos. Edson Prestes

Teoria dos Grafos. Edson Prestes Edson Prestes Árvores Algoritmo de Kruskal O algoritmo de Kruskal permite determinar a spanning tree de custo mínimo. Este custo corresponde à soma dos pesos (distância, tempo, qualidade,...) associados

Leia mais

Teoria dos Grafos. Edson Prestes

Teoria dos Grafos. Edson Prestes Edson Prestes Existem três companhias que devem abastecer com gás, eletricidade e água três prédios diferentes através de tubulações subterrâneas. Estas tubulações podem estar à mesma profundidade? Isto

Leia mais

apenas os caminhos que passam só por vértices em C, exceto, talvez, o próprio v A Figura 1 a seguir ilustra o significado do conjunto C edovalordist.

apenas os caminhos que passam só por vértices em C, exceto, talvez, o próprio v A Figura 1 a seguir ilustra o significado do conjunto C edovalordist. CAMINHO DE CUSTO MÍNIMO Dados dois pontos A e B, em muitos problemas práticos fazemos 2 perguntas: 1. existe um caminho de A para B? ou 2. se existe mais de um caminho de A para B, qual deles é o mais

Leia mais

01 Grafos: parte 1 SCC0503 Algoritmos e Estruturas de Dados II

01 Grafos: parte 1 SCC0503 Algoritmos e Estruturas de Dados II 01 Grafos: parte 1 SCC0503 Algoritmos e Estruturas de Dados II Prof. Moacir Ponti Jr. www.icmc.usp.br/~moacir Instituto de Ciências Matemáticas e de Computação USP 2011/1 Moacir Ponti Jr. (ICMCUSP) 01

Leia mais

Os números inteiros. Álgebra (Curso de CC) Ano lectivo 2005/ / 51

Os números inteiros. Álgebra (Curso de CC) Ano lectivo 2005/ / 51 Os números inteiros Abordaremos algumas propriedades dos números inteiros, sendo de destacar o Algoritmo da Divisão e o Teorema Fundamental da Aritmética. Falaremos de algumas aplicações como sejam a detecção

Leia mais

Introdução a Grafos Letícia Rodrigues Bueno

Introdução a Grafos Letícia Rodrigues Bueno Introdução a Grafos Letícia Rodrigues Bueno UFABC Teoria dos Grafos - Motivação Objetivo: aprender a resolver problemas; Como: usando grafos para modelar os problemas; Grafos: ferramenta fundamental de

Leia mais

GRAFOS: UMA INTRODUÇÃO

GRAFOS: UMA INTRODUÇÃO GRAFOS: UMA INTRODUÇÃO Vilmar Trevisan -Instituto de Matemática - UFRGS Junho de 2006 Grafos: uma introdução Informalmente, um grafo é um conjunto de pontos no plano ligados entre por flechas ou por segmentos

Leia mais

CONCEITOS BÁSICOS EM GRAFOS

CONCEITOS BÁSICOS EM GRAFOS Um grafo (simples) G é formado por um conjunto de vértices, denotado por V(G), e um conjunto de arestas, denotado por E(G). Cada aresta é um par (não ordenado) de vértices distintos. Se xy é uma aresta,

Leia mais

AGRADECIMENTOS. A todos os que não refiro mas que deram o seu contributo.

AGRADECIMENTOS. A todos os que não refiro mas que deram o seu contributo. AGRADECIMENTOS Quero agradecer à Doutora Maria Paula Mendes Martins, pela sua paciência, sabedoria, experiência, sentido de humor, energia e grande disponibilidade em todos os momentos, desde as aulas

Leia mais

Teoria dos Grafos. Edson Prestes

Teoria dos Grafos. Edson Prestes Edson Prestes Referências P. O. Boaventura Netto, Grafos: Teoria, Modelos e Algoritmos, São Paulo, E. Blucher 2001; R. J. Trudeau, Introduction to Graph Theory, New York, Dover Publications, 1993; Kaufmann,

Leia mais

Percursos em um grafo

Percursos em um grafo Percursos em um grafo Definição Um percurso ou cadeia é uma seqüência de arestas sucessivamente adjacentes, cada uma tendo uma extremidade adjacente à anterior e a outra a subsequente (à exceção da primeira

Leia mais

GRAFOS E ALGORITMOS TEORIA DE GRAFOS

GRAFOS E ALGORITMOS TEORIA DE GRAFOS GRAFOS E ALGORITMOS TEORIA DE GRAFOS 1a. PARTE Prof. Ronaldo R. Goldschmidt rribeiro@univercidade.br ronaldo_goldschmidt@yahoo.com.br ROTEIRO 1. INTRODUÇÃO E MOTIVAÇÃO 2. FUNDAMENTOS 3. CONECTIVIDADE 4.

Leia mais

Árvores Árvores Geradoras de Custo Mínimo 0/16

Árvores Árvores Geradoras de Custo Mínimo 0/16 Conteúdo 1 Árvores 2 Árvores Geradoras de Custo Mínimo Árvores Árvores Geradoras de Custo Mínimo 0/16 Árvores Definição (Grafo Acíclico) Um grafo acíclico é um grafo que não contém ciclos. Árvores Árvores

Leia mais

Teoria dos Grafos. Árvores

Teoria dos Grafos.  Árvores Teoria dos Grafos Valeriano A. de Oliveira Socorro Rangel Silvio A. de Araujo Departamento de Matemática Aplicada antunes@ibilce.unesp.br, socorro@ibilce.unesp.br, saraujo@ibilce.unesp.br Preparado a partir

Leia mais

Teoria dos Grafos Introdu c ao

Teoria dos Grafos Introdu c ao Teoria dos Grafos Introdução Referências P. O. Boaventura Netto, Grafos: Teoria, Modelos e Algoritmos, São Paulo, E. Blucher 001; R. J. Trudeau, Introduction to Graph Theory, New York, Dover Publications,

Leia mais

Planaridade AULA. ... META Introduzir o problema da planaridade de grafos. OBJETIVOS Ao final da aula o aluno deverá ser capaz de:

Planaridade AULA. ... META Introduzir o problema da planaridade de grafos. OBJETIVOS Ao final da aula o aluno deverá ser capaz de: Planaridade AULA META Introduzir o problema da planaridade de grafos. OBJETIVOS Ao final da aula o aluno deverá ser capaz de: Distinguir grafo planar e plano; Determinar o dual de um grafo; Caracterizar

Leia mais

GRAFOS. Prof. André Backes. Como representar um conjunto de objetos e as suas relações?

GRAFOS. Prof. André Backes. Como representar um conjunto de objetos e as suas relações? 8/0/06 GRAFOS Prof. André Backes Definição Como representar um conjunto de objetos e as suas relações? Diversos tipos de aplicações necessitam disso Um grafo é um modelo matemático que representa as relações

Leia mais

Teoria dos Grafos. Cobertura, Coloração de Arestas, Emparelhamento

Teoria dos Grafos. Cobertura, Coloração de Arestas, Emparelhamento Teoria dos Grafos Valeriano A. de Oliveira Socorro Rangel Silvio A. de Araujo Departamento de Matemática Aplicada antunes@ibilce.unesp.br, socorro@ibilce.unesp.br, saraujo@ibilce.unesp.br Cobertura, Coloração

Leia mais

Funções - Primeira Lista de Exercícios

Funções - Primeira Lista de Exercícios Funções - Primeira Lista de Exercícios Vers~ao de 0/03/00 Recomendações Não é necessário o uso de teoremas ou resultados complicados nas resoluções. Basta que você tente desenvolver suas idéias. Faltando

Leia mais

Axiomas de corpo ordenado

Axiomas de corpo ordenado Axiomas de corpo ordenado 2 a lista de exercícios Análise real A abordagem axiomática dos números reais previne erros que a intuição pode ocasionar e torna mais rigoroso o processo de demonstração matemática,

Leia mais

Aula 1: Introdução ao curso

Aula 1: Introdução ao curso Aula 1: Introdução ao curso MCTA027-17 - Teoria dos Grafos Profa. Carla Negri Lintzmayer carla.negri@ufabc.edu.br Centro de Matemática, Computação e Cognição Universidade Federal do ABC 1 Grafos Grafos

Leia mais

Grafos Eulerianos e o Problema do Carteiro Chinês

Grafos Eulerianos e o Problema do Carteiro Chinês Prof. Ademir A. Constantino DIN - UEM 1 Grafos Eulerianos e o Problema do Carteiro Chinês Prof. Ademir Constantino Departamento de Informática Universidade Estadual de Maringá Prof. Ademir A. Constantino

Leia mais

Jogos de Anti-Coordenação e Colorações Estáveis em Grafos. Renato Lui Geh NUSP:

Jogos de Anti-Coordenação e Colorações Estáveis em Grafos. Renato Lui Geh NUSP: Jogos de Anti-Coordenação e Colorações Estáveis em Grafos Renato Lui Geh NUSP:8536030 Introdução Jogos de coordenação: Classe de jogos em que jogadores jogam cooperativamente. Jogador i fazer a mesma ação

Leia mais

GRAFOS Aula 02 Formalização: definições Max Pereira

GRAFOS Aula 02 Formalização: definições Max Pereira Ciência da Computação GRAFOS Aula 02 : definições Max Pereira Um grafo G é um par ordenado G = (V, E) onde V é um conjunto finito e não vazio de elementos e E é um conjunto de subconjuntos de dois elementos

Leia mais

Optimização em Redes e Não Linear

Optimização em Redes e Não Linear Departamento de Matemática da Universidade de Aveiro Optimização em Redes e Não Linear Ano Lectivo 005/006, o semestre Folha - Optimização em Redes - Árvores de Suporte. Suponha que uma dada companhia

Leia mais

3 O Teorema de Ramsey

3 O Teorema de Ramsey 3 O Teorema de Ramsey Nesse capítulo enunciamos versões finitas e a versão infinita do Teorema de Ramsey, além das versões propostas por Paris, Harrington e Bovykin, que serão tratadas no capítulos subseqüentes.

Leia mais

Indução Matemática. George Darmiton da Cunha Cavalcanti CIn - UFPE

Indução Matemática. George Darmiton da Cunha Cavalcanti CIn - UFPE Indução Matemática George Darmiton da Cunha Cavalcanti CIn - UFPE Introdução Qual é a fórmula para a soma dos primeiros n inteiros ímpares positivos? Observando os resultados para um n pequeno, encontra-se

Leia mais

1 Trajeto Euleriano. > Trajeto Euleriano 0/20

1 Trajeto Euleriano. > Trajeto Euleriano 0/20 Conteúdo 1 Trajeto Euleriano > Trajeto Euleriano 0/20 Um trajeto Euleriano em um grafo G é um trajeto que utiliza todas as arestas do grafo. Definição Um grafo G é Euleriano se e somente se possui um trajeto

Leia mais

Teorema de Sarkovsky

Teorema de Sarkovsky Teorema de Sarkovsky Yuri Lima 8 de janeiro de 2008 Resumo Provaremos um teorema, provado pelo matemático ucraniano A. Sarkovsky em [4] que, em poucas palavras, afirma que Período 3 implica Caos, no seguinte

Leia mais

14 Coloração de vértices Considere cada um dos grafos abaixo:

14 Coloração de vértices Considere cada um dos grafos abaixo: 14 Coloração de vértices Considere cada um dos grafos abaixo: a) Quantas cores são necessárias para colorir os vértices de um grafo de maneira que dois vértices adjacentes não recebam a mesma cor? b) Qual

Leia mais

Notas sobre os anéis Z m

Notas sobre os anéis Z m Capítulo 1 Notas sobre os anéis Z m Estas notas complementam o texto principal, no que diz respeito ao estudo que aí se faz dos grupos e anéis Z m. Referem algumas propriedades mais específicas dos subanéis

Leia mais

INE5403 FUNDAMENTOS DE MATEMÁTICA DISCRETA

INE5403 FUNDAMENTOS DE MATEMÁTICA DISCRETA INE5403 FUNDAMENTOS DE MATEMÁTICA DISCRETA PARA A COMPUTAÇÃO PROF. DANIEL S. FREITAS UFSC - CTC - INE Prof. Daniel S. Freitas - UFSC/CTC/INE/2007 p.1/26 3 - INDUÇÃO E RECURSÃO 3.1) Indução Matemática 3.2)

Leia mais

Matemática Discreta Capítulo 3 Versão preliminar

Matemática Discreta Capítulo 3 Versão preliminar Matemática Discreta Capítulo 3 Versão preliminar Henri Anciaux e Derek Hacon October 25, 2007 1 Generalidades sobre grafos Um grafo G é simplesmente um par de dois conjuntos V e A, o segundo sendo constituído

Leia mais

OPRM a Fase Nível 3 01/09/18 Duração: 4 horas

OPRM a Fase Nível 3 01/09/18 Duração: 4 horas 1. Considere os números de Fibonacci: 1, 1, 2, 3, 5, 8, 13, 21,..., onde cada termo na sequência é a soma dos dois termos anteriores. O ano mais próximo de 2018 que é número de Fibonacci foi o ano de 1597.

Leia mais

Capítulo 2. Conjuntos Infinitos. 2.1 Existem diferentes tipos de infinito

Capítulo 2. Conjuntos Infinitos. 2.1 Existem diferentes tipos de infinito Capítulo 2 Conjuntos Infinitos Um exemplo de conjunto infinito é o conjunto dos números naturais: mesmo tomando-se um número natural n muito grande, sempre existe outro maior, por exemplo, seu sucessor

Leia mais

UMA PARTIÇÃO DO CONJUNTO DOS GRAFOS CONEXOS DE ORDEM n EM CLASSES DE GRAFOS (a, b)-lineares

UMA PARTIÇÃO DO CONJUNTO DOS GRAFOS CONEXOS DE ORDEM n EM CLASSES DE GRAFOS (a, b)-lineares UMA PARTIÇÃO DO CONJUNTO DOS GRAFOS CONEXOS DE ORDEM n EM CLASSES DE GRAFOS (a, b)-lineares Patricia Erthal de Moraes Colégio Pedro II Campo de São Cristóvão, 77 - São Cristóvão -Rio de Janeiro, CEP: 9-44

Leia mais

O grau de saída d + (v) de um vértice v é o número de arcos que tem

O grau de saída d + (v) de um vértice v é o número de arcos que tem Grafos Direcionados Definição (Grau de Entrada) O grau de entrada d (v) de um vértice v é o número de arcos que tem v como cabeça. Definição (Grau de Saída) O grau de saída d + (v) de um vértice v é o

Leia mais

GRAFOS ORIENTADOS. PSfrag replacements. Figura 1: Exemplo de um grafo orientado.

GRAFOS ORIENTADOS. PSfrag replacements. Figura 1: Exemplo de um grafo orientado. Introdução à Teoria dos Grafos Bacharelado em Ciência da Computação UFMS, 2005 GRAFOS ORIENTAOS Resumo Existem ocasiões onde grafos não são apropriados para descrever certas situações. Por exemplo, um

Leia mais

Departamento de Matemática da Universidade de Aveiro Matemática Discreta. A prova consta de 4 questões cada uma cotada com 5 valores.

Departamento de Matemática da Universidade de Aveiro Matemática Discreta. A prova consta de 4 questões cada uma cotada com 5 valores. Departamento de Matemática da Universidade de Aveiro Matemática Discreta Exame Final ( 2 a Chamada: 22/0/2007 Licenciatura em Matemática (8220 Mest. Int. Eng. Computadores e Telemática (8240 Informações

Leia mais

Doutorado em Ciência da Computação. Algoritmos e Grafos. Raimundo Macêdo

Doutorado em Ciência da Computação. Algoritmos e Grafos. Raimundo Macêdo Doutorado em Ciência da Computação Algoritmos e Grafos Raimundo Macêdo LaSiD/DCC/UFBA Grau de um Vértice O grau d G (v) do vértice v de G é o número de arestas incidentes a v, cada laço sendo contado duas

Leia mais

Matemática Discreta 10

Matemática Discreta 10 Universidade Federal do Vale do São Francisco Curso de Engenharia da Computação Matemática Discreta 10 Prof. Jorge Cavalcanti jorge.cavalcanti@univasf.edu.br - www.univasf.edu.br/~jorge.cavalcanti 1 Muitas

Leia mais

ESTRUTURA DE DADOS. Arvore Binária Jose. Arvore Ternaria Direção

ESTRUTURA DE DADOS. Arvore Binária Jose. Arvore Ternaria Direção ESTRUTURA DE DADOS 1. Árvores: Uma das mais importantes classes de estruturas de dados em computação são as árvores. Aproveitando-se de sua organização hierárquica, muitas aplicações são realizadas usando-se

Leia mais

Introdução à Teoria dos Grafos

Introdução à Teoria dos Grafos Capítulo 1 Introdução à Teoria dos Grafos 1.1 História O primeiro problema cuja solução envolveu conceitos do que viria a ser teoria dos grafos, denominado "problema das pontes de Königsberg", foi resolvido

Leia mais

Resumo das aulas dos dias 4 e 11 de abril e exercícios sugeridos

Resumo das aulas dos dias 4 e 11 de abril e exercícios sugeridos MAT 1351 Cálculo para funções uma variável real I Curso noturno de Licenciatura em Matemática 1 semestre de 2016 Docente: Prof. Dr. Pierluigi Benevieri Resumo das aulas dos dias 4 e 11 de abril e exercícios

Leia mais

Matemática discreta e Lógica Matemática

Matemática discreta e Lógica Matemática AULA - Prof. Dr. Hércules A. Oliveira UTFPR - Universidade Tecnológica Federal do Paraná, Ponta Grossa Departamento Acadêmico de Matemática Definição 1 Um Grafo G = (V, E) consiste em V, um conjunto não

Leia mais

O estudo utilizando apenas este material não é suficiente para o entendimento do conteúdo. Recomendamos a leitura das referências no final deste

O estudo utilizando apenas este material não é suficiente para o entendimento do conteúdo. Recomendamos a leitura das referências no final deste O estudo utilizando apenas este material não é suficiente para o entendimento do conteúdo. Recomendamos a leitura das referências no final deste material e a resolução (por parte do aluno) de todos os

Leia mais

BCC204 - Teoria dos Grafos

BCC204 - Teoria dos Grafos BCC204 - Teoria dos Grafos Marco Antonio M. Carvalho (baseado nas notas de aula do prof. Haroldo Gambini Santos) Departamento de Computação Instituto de Ciências Exatas e Biológicas Universidade Federal

Leia mais

Análise e Síntese de Algoritmos

Análise e Síntese de Algoritmos Análise e Síntese de Algoritmos Problemas NP-Completos CLRS, Cap. 34 Contexto Algoritmos em Grafos Estruturas de Dados para Conjuntos Disjuntos Programação Linear Programação Dinâmica Algoritmos Greedy

Leia mais

UMA PROVA DE CONSISTÊNCIA

UMA PROVA DE CONSISTÊNCIA UMA PROVA DE CONSISTÊNCIA Felipe Sobreira Abrahão Mestrando do HCTE/UFRJ felipesabrahao@gmail.com 1. INTRODUÇÃO Demonstradas por Kurt Gödel em 1931, a incompletude da (ou teoria formal dos números ou aritmética)

Leia mais

2 Relação entre soma dos graus e número de arestas

2 Relação entre soma dos graus e número de arestas Rio de Janeiro, 24 de Outubro de 2011. LISTA DE ESTRUTURAS DISCRETAS PROFESSOR: EDUARDO LABER OBSERVAÇÕES: Exercícios marcados com são mais complicados. 1 Isomorfismo 1. Seja G =(V,E) um grafo simples.

Leia mais

Teoria dos Grafos: Circuitos Eulerianos, Ciclos Hamiltonianos, Torneios Circuitos Eulerianos

Teoria dos Grafos: Circuitos Eulerianos, Ciclos Hamiltonianos, Torneios Circuitos Eulerianos Programa Olímpico de Treinamento Curso de Combinatória Nível 3 Prof. Carlos Shine Aula 14 Teoria dos Grafos: Circuitos Eulerianos, Ciclos Hamiltonianos, Torneios Circuitos Eulerianos Um grafo é dito euleriano

Leia mais

a = bq + r e 0 r < b.

a = bq + r e 0 r < b. 1 Aritmética dos Inteiros 1.1 Lema da Divisão e o Algoritmo de Euclides Recorde-se que a, o módulo ou valor absoluto de a, designa a se a N a = a se a / N Dados a, b, c Z denotamos por a b : a divide b

Leia mais

2 Definição do Problema

2 Definição do Problema Definição do Problema. Formulação Matemática O problema do Fluxo Máximo entre todos os pares de nós surge no contexto de redes, estas representadas por grafos, e deriva-se do problema singular de fluxo

Leia mais

MA11 - Unidade 4 Representação Decimal dos Reais Semana 11/04 a 17/04

MA11 - Unidade 4 Representação Decimal dos Reais Semana 11/04 a 17/04 MA11 - Unidade 4 Representação Decimal dos Reais Semana 11/04 a 17/04 Para efetuar cálculos, a forma mais eciente de representar os números reais é por meio de expressões decimais. Vamos falar um pouco

Leia mais

Teorema de Gerschgorin...

Teorema de Gerschgorin... Texto da palestra Teorema de Gerschgorin... ou será Ger sgorin? ou ainda Gerŝhgorin? Gersgorin? Geršgorin? Gershgorin? Gerŝgorin? Jaime Gaspar 2004/09/19 1 Introdução 1 Vamos falar um pouco sobre o Teorema

Leia mais

Coloração total distinta na vizinhança em grafos 4-partidos completos

Coloração total distinta na vizinhança em grafos 4-partidos completos https://eventos.utfpr.edu.br//sicite/sicite2017/index Coloração total distinta na vizinhança em grafos 4-partidos completos RESUMO Matheus Scaketti mts.scaketti@gmail.com Universidade Tecnológica Federal

Leia mais

PCC104 - Projeto e Análise de Algoritmos

PCC104 - Projeto e Análise de Algoritmos PCC104 - Projeto e Análise de Algoritmos Marco Antonio M. Carvalho Departamento de Computação Instituto de Ciências Exatas e Biológicas Universidade Federal de Ouro Preto 7 de outubro de 2016 Marco Antonio

Leia mais

4.1 Preliminares. No exemplo acima: Dom(R 1 ) = e Im(R 1 ) = Dom(R 2 ) = e Im(R 2 ) = Dom(R 3 ) = e Im(R 3 ) = Diagrama de Venn

4.1 Preliminares. No exemplo acima: Dom(R 1 ) = e Im(R 1 ) = Dom(R 2 ) = e Im(R 2 ) = Dom(R 3 ) = e Im(R 3 ) = Diagrama de Venn 4 Relações 4.1 Preliminares Definição 4.1. Sejam A e B conjuntos. Uma relação binária, R, de A em B é um subconjunto de A B. (R A B) Dizemos que a A está relacionado com b B sss (a, b) R. Notação: arb.

Leia mais