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

Slides:



Advertisements
Apresentações semelhantes
Algoritmos de Caminho Mínimo em Grafos
Advertisements

Cortes (cut-sets)‏ 1.
Algoritmo de Caminho Mínimo
Árvores 2010/1 Teoria dos Grafos (INF 5037/INF2781)
Árvores CC/EC/Mestrado Teoria dos Grafos ‏ 1.
Grafo k-conexo Seja k um inteiro positivo. Diz-se que um grafo G é k-conexo em vértices quando não existe corte de vértices de tamanho menor que k Analogamente,
Algoritmos em Grafos (Parte 2)
Prof. M.Sc. Fábio Francisco da Costa Fontes Maio
Gustavo Sant´Anna Ferreira Rodrigo Ribeiro de Souza
Teoria dos Grafos – Aula 2
Celso C. Ribeiro Caroline T. Rocha
Fluxo em Redes Prof. Ricardo R. Santos.
Análise de Decisão Aplicada a Gerência Empresarial – UVA Grafos - V
Exercícios PAA- Grafos
Exercícios PAA- Grafos
Cortes (cut-sets)‏ 2010/2 Teoria dos Grafos (INF 5037/INF2781)‏ 1.
UFES CC/EC/Mestrado Teoria dos Grafos Árvores. UFES CC/EC/Mestrado Teoria dos Grafos Árvores Grafo Acíclico: não possui ciclos.
CC/EC/PPGI/UFES CC/EC/MestradoTeoria dos Grafos Algoritmo de Caminho Mínimo.
Conectividade e Separabilidade
Grafo k-conexo Seja k um inteiro positivo. Diz-se que um grafo G é k-conexo em vértices quando não existe corte de vértices de tamanho menor que k.
Algoritmo polinomial para geração de uma Árvore Geradora Mínima
Métodos para representação de estruturas hierárquicas
Prof. M.Sc. Fábio Francisco da Costa Fontes Abril
Teoria dos Grafos – Aula 3 Árvores
Árvores.
Geometria Computacional Interseção de Segmentos
Dárlinton B. Feres Carvalho
HeapSort Filas de Prioridade – Heap
Árvore Geradora de Peso Mínimo
Pesquisa Operacional - Profa Úrsula L. F. Ribeiro
Árvore Geradora Mínima
Baseado em: The Algorithm Design Manual Steven S. Skiena
Algoritmos em Grafos.
Grafos Árvores Geradoras.
Informática Teórica Engenharia da Computação
Algoritmos em Grafos Árvores Geradoras Prof. André Renato
Alunos: Bruno Tourinho Tomas Jonathan Augusto da Silva.
Exercícios PAA- Grafos
Algorítmos e estrutura de dados III
Operações com grafos União Exemplo
Análise e Síntese de Algoritmos
O problema do emparelhamento máximo
Pernambuco Paraíba Alagoas Sergipe São Paulo Rio de Janeiro.
Algoritmos Gulosos em Grafos
Problema do menor Caminho
ÁRVORES Def.: Um grafo é acíclico se não possui ciclos.
Universidade Federal de Mato Grosso do Sul Departamento de Computação e Estatística Circuitos de Euler em Paralelo Universidade Federal de Mato Grosso.
Algoritmo de PRIM para MST
Busca Combinatorial e Métodos de Heurística
Análise de Complexidade do Algoritmo de Dijkstra
Seleção de atributos Mariana Pinheiro Bento IA368Q.
Conexidade 1.
Disciplina Análise de Algoritmos Bacharelado em CC
Msc. Daniele Carvalho Oliveira
Algoritmos para Obtenção de Árvore Geradora Mínima
Conjuntos Algoritmos e Estruturas de Dados - IF672
Aula de Monitoria – Miniprova
© Copyright 2003 Algoritmos e Estruturas de Dados - Todos os direitos reservados Grafos IF672 - Algoritmos e Estruturas de Dados CIn - UFPE Adriana Libório.
Introdução a Algoritmos em Grafos.
Algoritmos de aproximação

Algoritmos FPT para o Problema da k-Cobertura por Vértices
Mestrado em Informática
Exercícios de Fluxo em Redes
Celso C. Ribeiro Caroline T. Rocha
Algoritmos em Grafos Celso C. Ribeiro Caroline T. Rocha.
Marcos Corrêa Neves Gilberto Câmara Renato M. Assunção
Algoritmo de Dijkstra.
© Copyright 2003 Algoritmos e Estruturas de Dados - Todos os direitos reservados Busca Gulosa em Grafos IF672 - Algoritmos e Estruturas de Dados CIn -
Transcrição da apresentação:

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

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.

Um exemplo:

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.

Voltando ao exemplo...

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].

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.

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

Algoritmo MinFs-GW(G , c , R )

Algumas alterações Definir:

Algoritmo MinFs-GW2(G , c , R )

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 ;

Componentes: a cada componente S da floresta associamos dois heaps de arestas: . H0 (S): mantém as arestas que ligam S a 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) uma lista dos vértices que fazem parte de S ;

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) .

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

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 )] .

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 )] .

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.

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 ) ) .