1 / 20

Implementações do método de aproximação primal-dual

Implementações do método de aproximação primal-dual. Aplicado ao problema da floresta de Steiner. Aluno: Rafael Pereira Luna Orientadora: Cristina Gomes Fernandes. Sumário. 1. O problema da floresta de Steiner 2. Algoritmo de Goemans e Williamson 3. Implementação do algoritmo.

zalika
Download Presentation

Implementações do método de aproximação primal-dual

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Implementações do método de aproximação primal-dual Aplicado ao problema da floresta de Steiner Aluno: Rafael Pereira Luna Orientadora: Cristina Gomes Fernandes

  2. Sumário 1.O problema da floresta de Steiner 2. Algoritmo de Goemans e Williamson 3. Implementação do algoritmo

  3. O Problema da Floresta de Steiner Dados: um grafo G com custos nas arestas e uma família R de subconjuntos de V(G). Encontrar: uma R -floresta de custo mínimo. Uma R-floresta é uma floresta geradora na qual cada conjunto de R se encontra em uma única componente.

  4. Um exemplo:

  5. Terminologia • Conjunto de terminais: cada um dos conjuntos da coleção R . • Vértices de Steiner: vértices que não estão nos conjuntos de terminais.

  6. Voltando ao exemplo...

  7. Como resolver o problema? • Não se conhece algoritmo polinomial para resolver o problema de maneira exata. • Problema NP-difícil: quando |R | = 1, o problema se reduz ao problema de Steiner em grafos, o qual é NP-difícil [Garey & Johnson’ 79].

  8. Algoritmo de Goemans e Williamson • 2-aproximação para o problema da floresta de Steiner. • Algoritmo baseado no método de aproximação primal-dual.

  9. Primal: Dual: Conjunto ativo: subconjunto de V(G) que separa vértices de um mesmo conjunto de terminais.

  10. Algoritmo MinFs-GW(G , c ,R )

  11. Algumas alterações Definir:

  12. Algoritmo MinFs-GW2(G , c ,R )

  13. Implementação do algoritmo[O(n² log n)] Estruturas de dados: • Conjuntos de terminais: a cada conjunto de terminais T em R associamos • uma lista dos vértices de T ; • o número de vértices em T ;

  14. dois heaps de arestas: • .H0 (S):mantém as arestas que ligam Sa componentes inativas da floresta; • .H1 (S):mantém as arestas que ligam S a componentes ativas da floresta; (cada heap contém no máximo uma aresta para cada outra componente) • Componentes: a cada componente S da florestaassociamos • uma lista dos vértices que fazem parte deS ;

  15. Componentes (continuação): • um vetor que informa para cada conjunto de terminais R o número de vértices de R que se encontram na componente S ; • contador do número de conjuntos de terminais não conectados que intersectam S ; • Vértices: a cada vértice v associamos • o conjunto de terminais ao qual v pertence; • a componente da qual v faz parte; • o valor corrente de d(v) .

  16. Implementação do algoritmo Inicialização das estruturas (linhas 1 a 3) • Conjuntos de terminais: • Componentes: • Vértices: O( n ) . O( n2) . O( n ) .

  17. Implementação do algoritmo Fase iterativa (linhas 4 a 7) • escolha da aresta uv a ser incluída na floresta :são examinadas apenas duas arestas por componente ativa [O( n )]. • atualização do valor de d(w):é efetuada percorrendo-se a lista de componentes da floresta • união das componentes Su e Sv :é realizada em duas etapas(3a e 3b) [O( n )].

  18. Implementação do algoritmo Fase iterativa (continuação) • a. União das listas de vértices e definição do estado de Su U Sv [O( n log n ) no total]. • b. União dos heaps de arestas [O( n log n )].

  19. Implementação do algoritmo Segunda fase (linha 8) • determinação do ancestral comum mais próximo (acmp) de cada conjunto de terminais. • Seleção das arestas: para cada árvore T • seja l uma lista em pré-ordem dos acmp’s • percorre-se l, selecionando, para cada acmp v, as arestas no caminho entre cada vértice no(s) conjunto(s) de terminais correspondente(s) e v.

  20. Outras implementações • Cole, Hariharan, Lewenstein e Porat : O( (n+m ) log2 n ) . • Klein: O(n m1/2 log n) . • Gabow, Goemans e Williamson: O(n (n + m1/2 log log n ) ) .

More Related