Carregar apresentação
A apresentação está carregando. Por favor, espere
1
Digressão por ‘caminhos, árvores e flores’
João Soares Departamento de Matemática Universidade de Coimbra Hotel Quinta das Lágrimas (Coimbra), 15 de Outubro de 2003 Homenagem ao Professor Doutor Mário Silva Rosa
2
Índice Emparelhamento Emparelhamento de Cardinalidade Máxima
Definições e motivação Estrutura poliedral (Cunningham & Marsh, 1978) Emparelhamento de Cardinalidade Máxima Em grafos bipartidos Em grafos não bipartidos (Edmonds, 1965a) Emparelhamento de Peso Máximo Em grafos bipartidos (Kuhn,1955)
3
Emparelhamento (definição)
Seja G=(V,E) um grafo não orientado V=vértices, E=arestas, com ‘pesos’ ce, e E. Um emparelhamento de G é um subconjunto das arestas sem extremidades em comum. Peso de um emparelhamento é a soma dos pesos das arestas do emparelhamento. Um emparelhamento diz-se perfeito se “cobre” todos os vértices.
4
Emparelhamento (exemplos)
1 6 2 7 e f g 3 8 4 9 a b c d 5 10 In Korte&Vygen (2000) In Nemhauser&Wolsey (1988)
5
Emparelhamento (exemplos)
...de máxima cardinalidade? h 1 6 2 7 e f g 3 8 4 9 a b c d 5 10 In Korte&Vygen (2000) In Nemhauser&Wolsey (1988)
6
Emparelhamento (motivação)
Afectar individuos a tarefas (... perfeito de peso máximo em G bipartido ≡ Afectação) Emparelhar colegas de quarto em dormitório (... perfeito de peso máximo) Heurística para TSP Simétrico e Euclidiano (... perfeito de peso máximo) Problema do Carteiro Chinês (... perfeito de peso máximo) Afectar alunos a Universidades (... perfeito tal que não haja nenhum par que fique melhor trocado)
7
Emparelhamento (algebra)
Problema de Programação Inteira: ou com A matriz de incidência vértice-aresta de G
8
Emparelhamento (estrutura poliedral)
Cunningham e Marsh, 1978: O seguinte sistema de desigualdades é TDI: Corolário: Emparelhamento de peso máximo é um Problema Linear, embora com um número exponencial de restrições (Edmonds, 1965b). Dificuldade: Como lidar com um tão elevado número de restrições em tempo polinomial? Vantagem: Possível explicitar uma caracterização algébrica do invólucro convexo para qualquer problema de emparelhamento de peso máximo.
9
Emparelhamento (Berge, 1957)
Caminho aumentado relativamente a um emparelhamento M: Berge, 1957: Um emparelhamento M é de máxima cardinalidade se e só se não existe caminho aumentado relativamente a M. DEM: “” Por absurdo. Trivial. “” Por absurdo, existe |M’|>|M|. Então, F=MM’ é um conjunto de circuitos e caminhos simples. Circuitos têm número par de arestas. Como |M’|>|M|, existe um dos caminho simples que é aumentado(!). Ideia para obter emparelhamento de máxima cardinalidade: Identificar sucessivos caminhos aumentados. M M M M M M M
10
Emparelhamento Encontrar emparelhamento de máxima cardinalidade num grafo bipartido 1 6 2 7 3 8 4 9 5 10
11
Emparelhamento Encontrar emparelhamento de máxima cardinalidade num grafo bipartido: Vértice exposto * 1 6 2 7 3 8 4 9 5 10
12
Emparelhamento Encontrar emparelhamento de máxima cardinalidade num grafo bipartido: * 1 6 7 2 7 1 3 8 4 9 5 10
13
Emparelhamento Encontrar emparelhamento de máxima cardinalidade num grafo bipartido: * 1 6 7 2 7 1 2 8 3 8 4 9 5 10
14
Emparelhamento Encontrar emparelhamento de máxima cardinalidade num grafo bipartido: * 1 6 Caminho aumentado: 1, 7, 2, 8, 3, 6 3 7 2 7 1 8 3 8 2 4 9 3 5 10 3
15
Emparelhamento Encontrar emparelhamento de máxima cardinalidade num grafo bipartido: * 1 6 3 Rótulas permitem identificar Novo emparelhamento 7 2 7 1 8 3 8 2 4 9 3 5 10 3
16
Emparelhamento Encontrar emparelhamento de máxima cardinalidade num grafo bipartido: 1 6 2 7 3 8 4 9 Vértice exposto * 5 10
17
Emparelhamento Encontrar emparelhamento de máxima cardinalidade num grafo bipartido: 1 6 2 7 5 3 8 5 4 9 * 5 10 5
18
Emparelhamento Encontrar emparelhamento de máxima cardinalidade num grafo bipartido: 7 1 6 2 7 5 8 3 8 5 4 9 10 * 5 10 5 Não existe caminho aumentado a partir de 5! Existe a partir de 9?
19
Emparelhamento V2+ V1+ V2- V1-
Encontrar emparelhamento de máxima cardinalidade num grafo bipartido: 7 1 6 V2+ V1+ 2 7 5 8 3 8 5 4 9 10 V2- V1- * 5 10 5 Não existe caminho aumentado a partir de 5! Existe a partir de 9?
20
Emparelhamento (em grafos bipartidos)
Quando um vértice adquire uma posição relativa num caminho alternado ( ou ) essa posição relativa é igual em qualquer caminho aumentado. Por isso, qualquer rotulação de um vértice é definitiva o que facilmente implica que averiguação de um caminho alternado pode ser implementado em O(n2) operações. Em conclusão, a determinação de um emparelhamento de máxima cardinalidade num grafo bipartido pode ser efectuada em O(n3) operações. No final, R=V1- V2+ é uma cobertura por vértices de G tal que |R|=|M|. V1+ V2+ V1- V2-
21
Emparelhamento (em grafos não bipartidos)
Vejamos se a mesma ideia funciona com grafos não bipartidos h e f g Vértice exposto * a b c d
22
Emparelhamento (em grafos não bipartidos)
Vejamos se a mesma ideia funciona com grafos não bipartidos h b e f g * a b c d a
23
Emparelhamento (em grafos não bipartidos)
Vejamos se a mesma ideia funciona com grafos não bipartidos h b e e f g * a b c d a e
24
Emparelhamento (em grafos não bipartidos)
Vejamos se a mesma ideia funciona com grafos não bipartidos h b e f e f g * a b c d a e c
25
Emparelhamento (em grafos não bipartidos)
Vejamos se a mesma ideia funciona com grafos não bipartidos Vértice d pode receber rótulo ou Foi encontrado circuito ímpar! Como enumerar caminhos alternados de modo eficiente? h b e f e f g * a b c d a e c
26
Emparelhamento (em grafos não bipartidos)
Para Berge (1957) isso não seria problema - enfim, há um número finito de caminhos alternados. Pois, só com Edmonds (1965a) veio a primeira proposta de enumeração eficiente de caminhos alternados no célebre Paths, trees and flowers. Edmonds (1965a) usou a palavra good para se referir a funcionar em tempo polinomial – só mais tarde com Karp e Cook (anos 70) veio o rigor e o formalismo da classificação de problemas. A ideia: Sempre que for encontrado um vértice que pode ser do tipo ou então substituir todos esses vértices do circuito ímpar encontrado por um novo vértice e retomar a procura de um caminho aumentado. Ilustramos esta ideia com o exemplo anterior, ...
27
Emparelhamento Encontrar emparelhamento de máxima cardinalidade num grafo não bipartido: h h b e f e f g b U * a b c d a b a e c a
28
Emparelhamento Encontrar emparelhamento de máxima cardinalidade num grafo não bipartido: U, f h h b e f e f g b U * a b c d a b a e c a Caminho aumentado encontrado: a, b, U, h Mais precisamente: a, b, e, c, d, g, f, h
29
Emparelhamento (em grafos não bipartidos)
Encontrar emparelhamento de máxima cardinalidade num grafo não bipartido: h b e f e f g * a b c d a e c
30
Emparelhamento (em grafos não bipartidos)
Encontrar emparelhamento de máxima cardinalidade num grafo não bipartido: h b e f e f g * a b c d a e c
31
Emparelhamento (em grafos não bipartidos)
Encontrar emparelhamento de máxima cardinalidade num grafo não bipartido: h e f g a b c d
32
Emparelhamento (em grafos não bipartidos)
Notação introduzida por Edmonds, 1965a: y x d u v a b c
33
Emparelhamento (em grafos não bipartidos)
Notação introduzida por Edmonds, 1965a: y x d u v a b c Encontrado vértice que pode ser rotulado de dois modos diferentes
34
Emparelhamento (em grafos não bipartidos)
Notação introduzida por Edmonds, 1965a: Flower: a união dos dois caminhos alternados encontrados y x d u v a b c
35
Emparelhamento (em grafos não bipartidos)
Notação introduzida por Edmonds, 1965a: Flower: a união dos dois caminhos alternados encontrados y x d u v a b c Stem: o caminho comum àqueles dois caminhos alternados
36
Emparelhamento (em grafos não bipartidos)
Notação introduzida por Edmonds, 1965a: Flower: a união dos dois caminhos alternados encontrados y x d u v a b c Stem: o caminho coumum àqueles dois caminhos Blossom: o circuito ímpar encontrado (que vai ser substituído por um novo vértice – shrinked).
37
Emparelhamento (em grafos não bipartidos)
Cada um dos vértices do Blossom pode ser rotulado com ou para uma escolha adequado da ordem pela qual o circuito ímpar é percorrido alternadamente. Apenas uma aresta do emparelhamento é incidente no Blossom. Essa aresta é a última do stem. Por isso, podemos interpretar o Blossom como um grande vértice rotulado com As suas arestas incidentes são as arestas incidentes de todos os vértices do Blossom. Contraccão! Sucede-se a procura de um caminho aumentado como normalmente. Quando um caminho aumentado for encontrado, recuperam-se as arestas desse caminho usando os rótulos e escolhendo as orientações adequadas sempre um vértice associado a um Blossom é encontrado. Se um caminho aumentado não for encontrado deve tentar-se um outro vértice exposto. Podem manter-se todas as contracções entretanto efectuadas. Como a rotulação de vértices é sempre definitiva, o algoritmo pode ser implementado em O(n3) operações – implementação mais delicada do que no caso bipartido.
38
Emparelhamento (de peso máximo num grafo bipartido)
Encontrar emparelhamento perfeito de peso máximo num grafo bipartido G (Kuhn, 1955) Sem perda de generalidade, suponhamos que G é completo (arestas inexistentes têm peso -). Afectação! Uma formulação é Nota: Matriz das restrições é TU. Por isso, restrições de integralidade podem ser ignoradas.
39
Emparelhamento (de peso máximo num grafo bipartido)
Teorema (Kuhn, 1955): Um ponto X é óptimo para o problema da Afectação se e só se existirem vectores u,v satisfazendo cij – ui – vj 0 tal que X é vector característico de um emparelhamento perfeito no grafo G[u,v]=(V,E[u,v]), com E[u,v] = {(i,j): cij – ui – vj =0 }. DEM: Dualidade Forte da P.L. Ideia: Construir G[u,v] para u,v satisfazendo cij – ui – vj Obter M emparelhamento de máxima cardinalidade em G[u,v]. Se |M|=n então parar, senão modificar u,v de modo a obter mais uma aresta em M sem violar cij – ui – vj 0.
40
Emparelhamento (de peso máximo num grafo bipartido)
Consideremos o seguinte problema de Afectação: 1 1’ 2 2’ 3 3’ 4 4’
41
Emparelhamento (de peso máximo num grafo bipartido)
Como valores iniciais, considerem-se u=(0,-2,0,0), v=(27,19,12,8) G[u,v] 1 1’ 2 2’ 3 3’ 4 4’
42
Emparelhamento (de peso máximo num grafo bipartido)
Como valores iniciais, considerem-se u=(0,-2,0,0), v=(27,19,12,8) G[u,v] 1 1’ 2 2’ 3 3’ 4 4’
43
Emparelhamento (de peso máximo num grafo bipartido)
Como valores iniciais, considerem-se u=(0,-2,0,0), v=(27,19,12,8) G[u,v] 1 1’ 2 2’ * 3 3’ 4 4’
44
Emparelhamento (de peso máximo num grafo bipartido)
Como valores iniciais, considerem-se u=(0,-2,0,0), v=(27,19,12,8) G[u,v] 1 1’ 2 2’ * 3 3’ 2 3’ 4 4’
45
Emparelhamento (de peso máximo num grafo bipartido)
Como valores iniciais, considerem-se u=(0,-2,0,0), v=(27,19,12,8) G[u,v] 1 1’ 2 2’ * 3 3’ 2 3’ 4 4’ V1+={2,4}, V2-={1’,2’,4’},
46
Emparelhamento (de peso máximo num grafo bipartido)
Como valores iniciais, considerem-se u=(0,-2,0,0), v=(27,19,12,8) G[u,v] 1 1’ 2 2’ * 3 3’ 2 3’ 4 4’ V1+={2,4}, V2-={1’,2’,4’},
47
Emparelhamento (de peso máximo num grafo bipartido)
Após adequada modificação: u=(0,-4,0,-2), v=(27,19,14,8) G[u,v] 1 1’ 2 2’ * 3 3’ 2 3’ 4 4’ Nota importante: os rótulos anteriores permanecem válidos
48
Emparelhamento (de peso máximo num grafo bipartido)
Após adequada modificação: u =(0,-4,0,-2), v=(27,19,14,8) G[u,v] 1 1’ 2 2’ * 3 3’ 2 3’ 4 4’ 4 Caminho aumentado encontrado!
49
Emparelhamento (de peso máximo num grafo bipartido)
Após adequada modificação: u =(0,-4,0,-2), v=(27,19,14,8) G[u,v] 1 1’ 2 2’ * 3 3’ 2 3’ 4 4’ 4 Caminho aumentado encontrado!
50
Emparelhamento (de peso máximo num grafo bipartido)
Após adequada modificação: u =(0,-4,0,-2), v=(27,19,14,8) G[u,v] Portanto, pelo Teorema de Kuhn, encontrámos solução ‘optima x11 = x21 = x32 = x44 = 1, de valor ( )+( )=62. 1 1’ 2 2’ 3 3’ 4 4’
51
Emparelhamento (de peso máximo num grafo bipartido)
No final de cada iteração (após modificacao de u e de v): Os custos reduzidos permanecem não positivos. Os rótulos permanecem válidos. O emparelhamento de máxima cardinalidade permanece emparelhamento no novo G[u,v]. É criada pelo menos uma aresta (i,j) com i V1+ e j V2- Por isso, no final de cada iteração, um dos seguintes acontece: É encontrado um emparelhamento com mais uma aresta, ou O conjunto V2+ fica com mais um vértice. Por isso, o esforço computacional envolvido em aumentar uma unidade ao emparelhamento é O(n2). O método Húngaro termina após O(n3) operações.
52
Conclusão Recordámos os métodos clássicos para a determinação de um emparelhamento de cardinalidade máxima. Procurámos justificar o desempenho desses métodos (detalhes no documento em papel) recorrendo a imagens e exemplos. Recordámos o método Húngaro usando uma notação que o torna uma extensão do método anterior para o caso bipartido.
Apresentações semelhantes
© 2024 SlidePlayer.com.br Inc.
All rights reserved.