A apresentação está carregando. Por favor, espere

A apresentação está carregando. Por favor, espere

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.

Apresentações semelhantes


Apresentação em tema: "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."— Transcrição da apresentação:

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 1. Emparelhamento 1. Definições e motivação 2. Estrutura poliedral (Cunningham & Marsh, 1978) 2. Emparelhamento de Cardinalidade Máxima 1. Em grafos bipartidos 2. Em grafos não bipartidos (Edmonds, 1965a) 3. Emparelhamento de Peso Máximo 1. Em grafos bipartidos (Kuhn,1955)

3 Emparelhamento (definição) Seja G=(V,E) um grafo não orientado Seja G=(V,E) um grafo não orientado V=vértices, E=arestas, com pesos c e, e E. V=vértices, E=arestas, com pesos c e, e E. Um emparelhamento de G é um subconjunto das arestas sem extremidades em comum. Um emparelhamento de G é um subconjunto das arestas sem extremidades em comum. Peso de um emparelhamento é a soma dos pesos das arestas do emparelhamento. Peso de um emparelhamento é a soma dos pesos das arestas do emparelhamento. Um emparelhamento diz-se perfeito se cobre todos os vértices. Um emparelhamento diz-se perfeito se cobre todos os vértices.

4 Emparelhamento (exemplos) abcd efg h In Korte&Vygen (2000) In Nemhauser&Wolsey (1988)

5 Emparelhamento (exemplos) abcd efg h In Korte&Vygen (2000) In Nemhauser&Wolsey (1988)...de máxima cardinalidade?

6 Emparelhamento (motivação) Afectar individuos a tarefas (... perfeito de peso máximo em G bipartido Afectaçã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) 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) Heurística para TSP Simétrico e Euclidiano (... perfeito de peso máximo) Problema do Carteiro Chinês (... 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) 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: 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: 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. 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=M M é 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(!). DEM: Por absurdo. Trivial. Por absurdo, existe |M|>|M|. Então, F=M M é 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. 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 Encontrar emparelhamento de máxima cardinalidade num grafo bipartido

11 Emparelhamento Encontrar emparelhamento de máxima cardinalidade num grafo bipartido: Encontrar emparelhamento de máxima cardinalidade num grafo bipartido: *Vértice exposto

12 Emparelhamento Encontrar emparelhamento de máxima cardinalidade num grafo bipartido: Encontrar emparelhamento de máxima cardinalidade num grafo bipartido: * 1 7

13 Emparelhamento Encontrar emparelhamento de máxima cardinalidade num grafo bipartido: Encontrar emparelhamento de máxima cardinalidade num grafo bipartido: *

14 Emparelhamento Encontrar emparelhamento de máxima cardinalidade num grafo bipartido: Encontrar emparelhamento de máxima cardinalidade num grafo bipartido: * Caminho aumentado: 1, 7, 2, 8, 3, 6

15 Emparelhamento Encontrar emparelhamento de máxima cardinalidade num grafo bipartido: Encontrar emparelhamento de máxima cardinalidade num grafo bipartido: * Rótulas permitem identificar Novo emparelhamento

16 Emparelhamento Encontrar emparelhamento de máxima cardinalidade num grafo bipartido: Encontrar emparelhamento de máxima cardinalidade num grafo bipartido: *Vértice exposto

17 Emparelhamento Encontrar emparelhamento de máxima cardinalidade num grafo bipartido: Encontrar emparelhamento de máxima cardinalidade num grafo bipartido: *5 5 5

18 Emparelhamento Encontrar emparelhamento de máxima cardinalidade num grafo bipartido: Encontrar emparelhamento de máxima cardinalidade num grafo bipartido: * Não existe caminho aumentado a partir de 5! Existe a partir de 9?

19 Emparelhamento Encontrar emparelhamento de máxima cardinalidade num grafo bipartido: Encontrar emparelhamento de máxima cardinalidade num grafo bipartido: * Não existe caminho aumentado a partir de 5! Existe a partir de 9? V2+V2+ V1+V1+ V1-V1- V2-V2-

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. 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(n 2 ) operações. 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(n 2 ) operações. Em conclusão, a determinação de um emparelhamento de máxima cardinalidade num grafo bipartido pode ser efectuada em O(n 3 ) operações. Em conclusão, a determinação de um emparelhamento de máxima cardinalidade num grafo bipartido pode ser efectuada em O(n 3 ) operações. No final, R= No final, R=V 1 - V 2 + é uma cobertura por vértices de G tal que |R|=|M|. V2+V2+ V1+V1+ V1-V1- V2-V2-

21 Emparelhamento (em grafos não bipartidos) Vejamos se a mesma ideia funciona com grafos não bipartidos Vejamos se a mesma ideia funciona com grafos não bipartidos abcd efg h *Vértice exposto

22 Emparelhamento (em grafos não bipartidos) Vejamos se a mesma ideia funciona com grafos não bipartidos Vejamos se a mesma ideia funciona com grafos não bipartidos abcd efg h * a b

23 Emparelhamento (em grafos não bipartidos) Vejamos se a mesma ideia funciona com grafos não bipartidos Vejamos se a mesma ideia funciona com grafos não bipartidos abcd efg h * a b e e

24 Emparelhamento (em grafos não bipartidos) Vejamos se a mesma ideia funciona com grafos não bipartidos Vejamos se a mesma ideia funciona com grafos não bipartidos abcd efg h * a b e ef c

25 Emparelhamento (em grafos não bipartidos) Vejamos se a mesma ideia funciona com grafos não bipartidos Vejamos se a mesma ideia funciona com grafos não bipartidos abcd efg h * a b e ef c Vértice d pode receber rótulo ou. Foi encontrado circuito ímpar! Como enumerar caminhos alternados de modo eficiente?

26 Emparelhamento (em grafos não bipartidos) Para Berge (1957) isso não seria problema - enfim, há um número finito de caminhos alternados. 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. 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. 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: 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,... Ilustramos esta ideia com o exemplo anterior,...

27 Emparelhamento Encontrar emparelhamento de máxima cardinalidade num grafo não bipartido: Encontrar emparelhamento de máxima cardinalidade num grafo não bipartido: abcd efg * a b e ef c ab a h h U b

28 Emparelhamento abcd efg * a b e ef c ab a U b h h U, f 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: Encontrar emparelhamento de máxima cardinalidade num grafo não bipartido: abcd efg h * a b e ef c

30 Emparelhamento (em grafos não bipartidos) Encontrar emparelhamento de máxima cardinalidade num grafo não bipartido: Encontrar emparelhamento de máxima cardinalidade num grafo não bipartido: abcd efg h * a b e ef c

31 Emparelhamento (em grafos não bipartidos) Encontrar emparelhamento de máxima cardinalidade num grafo não bipartido: Encontrar emparelhamento de máxima cardinalidade num grafo não bipartido: abcd efg h

32 Emparelhamento (em grafos não bipartidos) Notação introduzida por Edmonds, 1965a: Notação introduzida por Edmonds, 1965a: uva bc dx y

33 Emparelhamento (em grafos não bipartidos) Notação introduzida por Edmonds, 1965a: Notação introduzida por Edmonds, 1965a: uva bc dx y Encontrado vértice que pode ser rotulado de dois modos diferentes

34 Emparelhamento (em grafos não bipartidos) Notação introduzida por Edmonds, 1965a: Notação introduzida por Edmonds, 1965a: uva bc dx y Flower: a união dos dois caminhos alternados encontrados

35 Emparelhamento (em grafos não bipartidos) Notação introduzida por Edmonds, 1965a: Notação introduzida por Edmonds, 1965a: uva bc dx y Flower: a união dos dois caminhos alternados encontrados Stem: o caminho comum àqueles dois caminhos alternados

36 Emparelhamento (em grafos não bipartidos) Notação introduzida por Edmonds, 1965a: Notação introduzida por Edmonds, 1965a: uva bc dx y Flower: a união dos dois caminhos alternados encontrados 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. 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. 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. 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. 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. 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(n 3 ) operações – implementação mais delicada do que no caso bipartido. Como a rotulação de vértices é sempre definitiva, o algoritmo pode ser implementado em O(n 3 ) 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) 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! Sem perda de generalidade, suponhamos que G é completo (arestas inexistentes têm peso - ). Afectação! Uma formulação é Uma formulação é Nota: Matriz das restrições é TU. Por isso, restrições de integralidade podem ser ignoradas.

39 Teorema (Kuhn, 1955): Um ponto X é óptimo para o problema da Afectação se e só se existirem vectores u,v satisfazendo c ij – u i – v j 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): c ij – u i – v j =0 }. Teorema (Kuhn, 1955): Um ponto X é óptimo para o problema da Afectação se e só se existirem vectores u,v satisfazendo c ij – u i – v j 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): c ij – u i – v j =0 }. DEM: Dualidade Forte da P.L. DEM: Dualidade Forte da P.L. Ideia: Construir G[u,v] para u,v satisfazendo c ij – u i – v j 0. 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 c ij – u i – v j 0. Ideia: Construir G[u,v] para u,v satisfazendo c ij – u i – v j 0. 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 c ij – u i – v j 0. Emparelhamento (de peso máximo num grafo bipartido)

40 Consideremos o seguinte problema de Afectação: Consideremos o seguinte problema de Afectação: Emparelhamento (de peso máximo num grafo bipartido)

41 Como valores iniciais, considerem-se u=(0,-2,0,0), v=(27,19,12,8) Como valores iniciais, considerem-se u=(0,-2,0,0), v=(27,19,12,8) Emparelhamento (de peso máximo num grafo bipartido) G[u,v]

42 Como valores iniciais, considerem-se u=(0,-2,0,0), v=(27,19,12,8) Como valores iniciais, considerem-se u=(0,-2,0,0), v=(27,19,12,8) Emparelhamento (de peso máximo num grafo bipartido) G[u,v]

43 Como valores iniciais, considerem-se u=(0,-2,0,0), v=(27,19,12,8) Como valores iniciais, considerem-se u=(0,-2,0,0), v=(27,19,12,8) Emparelhamento (de peso máximo num grafo bipartido) * G[u,v]

44 Como valores iniciais, considerem-se u=(0,-2,0,0), v=(27,19,12,8) Como valores iniciais, considerem-se u=(0,-2,0,0), v=(27,19,12,8) Emparelhamento (de peso máximo num grafo bipartido) * 2 3 G[u,v]

45 Como valores iniciais, considerem-se u=(0,-2,0,0), v=(27,19,12,8) Como valores iniciais, considerem-se u=(0,-2,0,0), v=(27,19,12,8) Emparelhamento (de peso máximo num grafo bipartido) * 2 3 V 1 + ={2,4}, V 2 - ={1,2,4}, G[u,v]

46 Como valores iniciais, considerem-se u=(0,-2,0,0), v=(27,19,12,8) Como valores iniciais, considerem-se u=(0,-2,0,0), v=(27,19,12,8) Emparelhamento (de peso máximo num grafo bipartido) * 2 3 V 1 + ={2,4}, V 2 - ={1,2,4}, G[u,v]

47 Após adequada modificação: u=(0,-4,0,-2), v=(27,19,14,8) Após adequada modificação: u=(0,-4,0,-2), v=(27,19,14,8) Emparelhamento (de peso máximo num grafo bipartido) * 2 3 G[u,v] Nota importante: os rótulos anteriores permanecem válidos

48 Após adequada modificação: u =(0,-4,0,-2), v=(27,19,14,8) Após adequada modificação: u =(0,-4,0,-2), v=(27,19,14,8) Emparelhamento (de peso máximo num grafo bipartido) * 2 3 G[u,v] 4 Caminho aumentado encontrado!

49 Após adequada modificação: u =(0,-4,0,-2), v=(27,19,14,8) Após adequada modificação: u =(0,-4,0,-2), v=(27,19,14,8) Emparelhamento (de peso máximo num grafo bipartido) * 2 3 G[u,v] 4 Caminho aumentado encontrado!

50 Após adequada modificação: u =(0,-4,0,-2), v=(27,19,14,8) Após adequada modificação: u =(0,-4,0,-2), v=(27,19,14,8) Emparelhamento (de peso máximo num grafo bipartido) G[u,v] Portanto, pelo Teorema de Kuhn, encontrámos solução optima x 11 = x 21 = x 32 = x 44 = 1, de valor ( )+( )=62.

51 No final de cada iteração (após modificacao de u e de v): No final de cada iteração (após modificacao de u e de v): Os custos reduzidos permanecem não positivos. Os custos reduzidos permanecem não positivos. Os rótulos permanecem válidos. Os rótulos permanecem válidos. O emparelhamento de máxima cardinalidade permanece emparelhamento no novo G[u,v]. O emparelhamento de máxima cardinalidade permanece emparelhamento no novo G[u,v]. É criada pelo menos uma aresta (i,j) com i V 1 + e j V 2 - É criada pelo menos uma aresta (i,j) com i V 1 + e j V 2 - Por isso, no final de cada iteração, um dos seguintes acontece: Por isso, no final de cada iteração, um dos seguintes acontece: É encontrado um emparelhamento com mais uma aresta, ou É encontrado um emparelhamento com mais uma aresta, ou O conjunto V 2 + fica com mais um vértice. O conjunto V 2 + fica com mais um vértice. Por isso, o esforço computacional envolvido em aumentar uma unidade ao emparelhamento é O(n 2 ). Por isso, o esforço computacional envolvido em aumentar uma unidade ao emparelhamento é O(n 2 ). O método Húngaro termina após O(n 3 ) operações. O método Húngaro termina após O(n 3 ) operações. Emparelhamento (de peso máximo num grafo bipartido)

52 Conclusão 1. Recordámos os métodos clássicos para a determinação de um emparelhamento de cardinalidade máxima. 2. Procurámos justificar o desempenho desses métodos (detalhes no documento em papel) recorrendo a imagens e exemplos. 3. 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.


Carregar ppt "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."

Apresentações semelhantes


Anúncios Google