Carregar apresentação
A apresentação está carregando. Por favor, espere
PublicouJoão Batista da Mota Osório Alterado mais de 8 anos atrás
1
MATCHINGS Grafos e Teoria da Complexidade Prof. Fabio Tirelo
2
Matchings Seja G = ( V, E ) um grafo não-dirigido Um matching em G é um conjunto M de arestas não adjacentes duas-a-duas Quando nenhuma aresta puder ser incluída em M, dizemos que M é maximal Vértices e arestas podem ser livres ou associados Um matching perfeito não possui vértices livres Exemplos: A F B E C D A F B E C D 2 5 1 6 7 3 4 5 1 2 5 1 6 7 3 4 5 1
3
Matchings... Um matching M é máximo se |M| for máximo em G Um caminho alternado intercala arestas livres e arestas associadas Um caminho de aumento é um caminho alternado que inicia e termina em vértices livres Se M for um matching e P for um caminho de aumento com relação a M, então M P é um matching de cardinalidade |M| + 1 Um matching é máximo se não possuir caminhos de aumento
4
Matchings... Seja G = ( X Y, E ) um grafo bipartido Um matching completo de X para Y é um matching em que nenhum vértice de X está livre Condição suficiente: Se existe k tal que d ( x ) k d ( y ), para todo x X, y Y, então G possui um matching completo Teorema de Hall: Existe um matching completo de X para Y se e somente se | ( S )| | S | para todo S X
5
Considere que cada aresta e de G receba um peso associado w e O peso de um matching é dado por Um matching M é um matching de peso máximo se wt ( M ) for máximo em G Um matching M é um matching de peso mínimo se wt ( M ) for mínimo em G Matchings...
6
Problema da Atribuição Linear Considere que há n funcionários (conjunto C ) que deverão ser escolhidos para executarem n tarefas (conjunto T ) w ij = capacidade do funcionário i executar a tarefa j Determinar quais funcionários deverão ser escalados para cada tarefa de modo a obtermos a maior soma das capacidades possível Grafo: Vértices = C T Arestas = ( c, t ), c C, t T, com peso w ct Solução: encontrar o matching de peso máximo
7
Algoritmo de Hopcroft-Karp Entrada:Grafo bipartido G = ( U W, E ) Matching M em G Saída: Um caminho de aumento com relação a M ou uma prova de que M é máximo Oriente cada aresta e = (u,w) para obter um grafo dirigido D da seguinte maneira: Se e M, então oriente e como (w,u) Se e M, então oriente e como (u,w) Seja A = {x V : x é um vértice associado com relação a M} Seja U’ = U A e W’ = W A Se houver um caminho em D de algum vértice de U’ para algum vértice de W’ Então caminho de aumento encontrado Senão M é um matching máximo
8
Matchings em Grafos Quaisquer Vértice par/ímpar em caminho alternado P Sejam u, v dois vértices pares em P ; se ( u, v ) E, então P {( u, v )} contém um circuito chamado blossom Gera-se um blossom comprimido quando um blossom B é reduzido a um único vértice b, e toda aresta ( x, y ) ( x B, y B ), é transformada em uma aresta ( b, y ) (Edmonds) Seja G B um grafo gerado pelo compressão de um blossom B de G ; G contém um caminho de aumento se e somente se G B contiver 123 4 5 612b6 B
9
Formação de Duplas Dado um conjunto de pessoas, definir pares que possuam um determinado conjunto de características em comum ou complementares Exemplos: mesma língua, mesmo curso, habilidades complementares, etc. Objetivo: formar o maior número possível de pares com as mesmas características Grafo: Vértices: pessoas Arestas: ( p, q ) se p e q possuírem as mesmas características Solução: encontrar um matching máximo no grafo
10
Carteiro Chinês Encontrar um caminho fechado que passe por todas as arestas de um grafo G = ( V, E ) W = { v V : d ( v ) é ímpar} Monte o grafo completo H = ( W, F ) associando à aresta ( u, v ) peso igual ao negativo do menor caminho de u para v em G Determine o matching (perfeito) M de peso máximo em H Para cada ( a, b ) M, duplique as arestas do menor caminho de a para b em G O grafo resultante é euleriano
Apresentações semelhantes
© 2024 SlidePlayer.com.br Inc.
All rights reserved.