1 / 27

Algoritmos FPT para o Problema da k-Cobertura por Vértices

Algoritmos FPT para o Problema da k-Cobertura por Vértices. Roteiro. Problema da k -Cobertura por Vértices Problemas NP-completos Complexidade Parametrizada Problemas FPT Algoritmo de Buss Algoritmo de Balasubramanian et al. v2. v4. v4. v1. v2. v2. v3. v4. k = 4. k = 4. v5.

gizela
Download Presentation

Algoritmos FPT para o Problema da k-Cobertura por Vértices

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. Algoritmos FPT para o Problema da k-Cobertura por Vértices

  2. Roteiro • Problema da k-Cobertura por Vértices • Problemas NP-completos • Complexidade Parametrizada • Problemas FPT • Algoritmo de Buss • Algoritmo de Balasubramanian et al

  3. v2 v4 v4 v1 v2 v2 v3 v4 k = 4 k = 4 v5 v7 A cobertura por vértices não é necessariamente única. v5 v5 v6 v6 v7 v7 v8 v9 v10 Problema da k-Cobertura por Vértices (1) • Dado um grafo G e um inteiro positivo k. • Existe um subconjunto de vértices V’, |V’|<=k, tal que cada aresta do grafo incide em pelo menos um vértice desse subconjunto?

  4. Problema da k-Cobertura por Vértices (2) • Uma aplicação prática: alinhamento múltiplo de seqüências (Biologia Computacional). • Melhor algoritmo conhecido: algoritmo trivial da força bruta. • Tempo: O(nk). • O problema é NP-completo.

  5. Problemas NP-completos • Na prática, precisamos encontrar formas de resolver as instâncias que temos em mãos. • Lidar com a intratabilidade dos problemas é um grande desafio da Ciência da Computação. • Vários métodos já foram desenvolvidos com este objetivo.

  6. Complexidade Parametrizada (1) • Vem obtendo sucesso na solução de instâncias que antes eram consideradas muito grandes para serem resolvidas. • Entrada do problema: parte principal e parâmetro. • Problemas da Teoria dos Grafos (como ak-Cobertura por Vértices): - parte principal: grafo; - parâmetro: número inteiro.

  7. Complexidade Parametrizada (2) COMPLEXIDADE CLÁSSICA COMPLEXIDADE PARAMETRIZADA • Isolar a explosão combinatorial apenas em termos do parâmetro. parâmetro ENTRADA Parte principal da entradacontribui polinomialmente

  8. Complexidade Parametrizada (3) • Algoritmo que gaste tempo exponencial em relação ao parâmetro (k), mas tempo polinomial em relação à parte principal da entrada (x). • A assunção fundamental é k << |x|. • Principais áreas de atuação: aquelas onde parâmetros em pequenos intervalos são úteis em aplicações práticas.

  9. Problemas FPT (1) • Um problema é tratável por parâmetro fixo (FPT) se e somente se possui um algoritmo que o resolve em tempo O(nc f(k)), onde: • n é o tamanho da parte principal da entrada • k é o parâmetro • c é uma constante independente de k • f é uma função arbitrária

  10. Problemas FPT (2) • Existem duas técnicas algorítmicas comuns em algoritmos FPT: • Redução ao núcleo do problema. • Árvore limitada de busca.

  11. Redução ao núcleo do problema • Reduzimos a instância original, em tempo polinomial, em uma outra instância equivalente, cujo tamanho é limitado por k. • Se houver uma solução para essa instância reduzida, podemos transformá-la em uma solução para a instância original. • O uso desta técnica resulta em: O(nc + f(k)).

  12. Árvore Limitada de Busca • Consiste em analisar exaustivamente uma árvore criada a partir da instância reduzida do método de redução ao núcleo do problema, em busca de uma solução. • O tamanho da árvore deve ser limitado em função do parâmetro k.

  13. Problemas FPT (5) • A k-Cobertura por Vértices foi um dos primeiros problemas que provou-se ser FPT. A seguir, alguns resultados:

  14. Algoritmo de Buss (1) • Resolve o problema da k-Cobertura por Vértices em tempo O(kn + (2k2)k k2). • Baseado no método de redução ao núcleo do problema. • Todos os vértices de grau maior que k do grafo devem pertencer a qualquer cobertura por vértices de tamanho menor ou igual a k.

  15. Algoritmo de Buss (2) • Passo 1: Seja H o conjunto de todos os vértices de G com grau maior que k. Se |H| > k, não há cobertura. Senão, k’ = k - |H|. • Passo 2: Criamos G’, resultado da remoção dos vértices de G que estão em H, bem como das arestas neles incidentes e de vértices isolados. Se G’ tiver mais do que k.k’ arestas, não há cobertura. • Passo 3: Encontre, por força bruta, uma cobertura por vértices de tamanho menor ou igual a k’ para G’. Se encontrar, esses vértices mais H formam uma cobertura por vértices desejada para G.

  16. grafo G’ grafo G grafo G grafo G’ v1 v1 v1 v2 v2 v2 v1 v2 k’ = k - |H| = 2 v3 v3 v3 v4 v4 v4 v5 v5 v3 v4 Cobertura por vértices para G’ {v2,v3} + {v5} formam uma cobertura por vértices de tamanho menor ou igual a 3 para o grafo G v6 v6 alg. força bruta: até encontrar {v2,v3}. v5 será removido porque tem grau maior que 3. v6 será removido porque é um vértice isolado Como G’ tem menos do que k.k’ arestas, continua... v6 grafo G’ v1 v2 v3 v4 Algoritmo de Buss (3) k = 3 H = {v5} Como |H| < k, continua...

  17. Algoritmo de Balasubramanian (1) • Algoritmo referente ao Teorema 1 de Balasubramanian et al. • Resolve o problema da k-Cobertura por Vértices em tempo O(kn + 1.732051kk2). • Algoritmo executa o método da redução ao núcleo do problema e depois, o método da árvore limitada de busca.

  18. Algoritmo de Balasubramanian (2) • Primeiro, execute os dois primeiros passos do algoritmo de Buss. • Crie uma árvore de busca, que será percorrida em profundidade. • Cada nó armazena uma instância reduzida do grafo (<G’’=(V’’,E’’)>, k’’) e uma cobertura por vértices parcial (PVC). • A raiz da árvore armazena: <G’,k’> e H.

  19. Algoritmo de Balasubramanian (3) • Em cada nó da árvore, execute os passos a seguir, até encontrar a cobertura por vértices desejada ou até que seja determinado que esta não existe. • Escolha um vértice v qualquer de V’’. • A partir de v, faça uma busca em profundidade que passe por no máximo três arestas. • Baseado nos possíveis caminhos gerados, crie filhos para o nó (Casos 1 e 2) ou reduza o grafo dentro do nó (Casos 3 e 4).

  20. Árvore de Busca Árvore de Busca Árvore de Busca Árvore de Busca v Caminho gerado em G’’ Caminho gerado em G’’ Caminho gerado em G’’ Caminho gerado em G’’ <G’’=(V’’,E’’),k’’>PVC <G’’=(V’’,E’’),k’’>PVC <G’’=(V’’,E’’),k’’>PVC <G’’=(V’’,E’’),k’’>PVC v v v1 v v1 v1 v2 v1 v2 v2 <G’’’= (V’’ - {v1,v2}, E’’’), k’’’ = k’’ - 2> PVC = PVC  {v1,v2} <G’’’= (V’’ - {v1,v3}, E’’’), k’’’ = k’’ - 2> PVC = PVC  {v1,v3} v3 v2 <G’’’= (V’’ - {v,v2}, E’’’), k’’’ = k’’ - 2> PVC = PVC  {v,v2} <G’’’,k’’’>PVC <G’’’,k’’’>PVC <G’’’,k’’’>PVC <G’’’,k’’’>PVC <G’’’,k’’’>PVC <G’’’,k’’’>PVC <G’’’,k’’’>PVC <G’’’,k’’’>PVC <G’’’,k’’’>PVC v3 v3 v3 Algoritmo de Balasubramanian (4) • Caso 1: caminho simples v, v1, v2, v3.

  21. Árvore de Busca Caminho gerado em G’’ Árvore de Busca Árvore de Busca Árvore de Busca Caminho gerado em G’’ Caminho gerado em G’’ Caminho gerado em G’’ <G’’=(V’’,E’’),k’’>PVC <G’’=(V’’,E’’),k’’>PVC <G’’=(V’’,E’’),k’’>PVC <G’’=(V’’,E’’),k’’>PVC v v v v v1 v2 v1 v1 v1 v2 v2 v2 <G’’’,k’’’>PVC <G’’’= (V’’ - {v,v2}, E’’’), k’’’ = k’’ - 2> PVC = PVC  {v,v2} <G’’’,k’’’>PVC <G’’’,k’’’>PVC <G’’’,k’’’>PVC <G’’’,k’’’>PVC <G’’’= (V’’ - {v,v1}, E’’’), k’’’ = k’’ - 2> PVC = PVC  {v,v1} <G’’’= (V’’ - {v1,v2}, E’’’), k’’’ = k’’ - 2> PVC = PVC  {v1,v2} <G’’’,k’’’>PVC <G’’’,k’’’>PVC <G’’’,k’’’>PVC <G’’’,k’’’>PVC Algoritmo de Balasubramanian (5) • Caso 2: ciclo v, v1, v2, v.

  22. Árvore de Busca Árvore de Busca Caminho gerado em G’’ Caminho gerado em G’’ <G’’’= (V’’ - {v1}, E’’’), k’’’ = k’’ - 1> PVC = PVC  {v1} <G’’=(V’’,E’’),k’’>PVC <G’’=(V’’,E’’),k’’>PVC v v v1 v1 v2 v2 Algoritmo de Balasubramanian (6) • Caso 3: caminho simples v, v1, v2.

  23. Árvore de Busca Árvore de Busca Caminho gerado em G’’ Caminho gerado em G’’ <G’’’= (V’’ - {v}, E’’’), k’’’ = k’’ - 1> PVC = PVC  {v} <G’’=(V’’,E’’),k’’>PVC <G’’=(V’’,E’’),k’’>PVC v v v1 v1 Algoritmo de Balasubramanian (7) • Caso 4: caminho simples v, v1.

  24. Algoritmo de Balasubramanian (8) • Árvore ternária. • Interrompemos o crescimento da árvore quando |PVC| = k. • Um grafo resultante vazio significa que PVC é uma cobertura por vértices de tamanho menor ou igual a k para G. • Se percorremos todos os nós da árvore, podemos concluir que não existe a cobertura por vértices desejada.

  25. grafo G grafo G árvore de busca árvore de busca árvore de busca árvore de busca árvore de busca árvore de busca árvore de busca árvore de busca árvore de busca árvore de busca árvore de busca grafo G’’ grafo G’’ grafo G’ grafo G’ grafo G’’ grafo G’’ grafo G’ grafo G’’ grafo G’’ grafo G’ grafo G’ k = 4 v1 v1 <G’, 3>{v8} <G’, 3>{v8} <G’,k’>{v8} <G’, 3>{v8} <G’, 3>{v8} <G’, 3>{v8} <G’, 3>{v8} <G’, 3>{v8} <G’, 3>{v8} <G’, 3>{v8} <G’, 3>{v8} v10 v10 v9 v9 H = {v8} v1 v1 v1 v1 v1 v1 v1 v1 v1 v1 k' = 3 v2 v2 v8 v8 v11 v11 v2 v2 v2 v2 v2 v2 v2 v2 v2 v2 <G’’,k’’>PVC <G’’,k’’>PVC <G’’,k’’>PVC <G’’,k’’>PVC <G’’,k’’>PVC <G’’,k’’>PVC <G’’,k’’>PVC <G’’,k’’>PVC <G’’,k’’>PVC <G’’,k’’>PVC <G’’,k’’>PVC <G’’,k’’>PVC <G’’,k’’>PVC <G’’,k’’>PVC <G’’,k’’>PVC <G’’,k’’>PVC <G’’,k’’>PVC <G’’,k’’>PVC <G’’,k’’>PVC <G’’,k’’>PVC <G’’,k’’>PVC <G’’, 1>{v8, v4, v6} <G’’, 1>{v8, v4, v6} <G’’, 0>{v8, v4, v6, v2} <G’’, 1>{v8, v4, v6} <G’’, 1>{v8, v5, v6} <G’’, 1>{v8, v5, v7} v3 v3 v5 v5 v6 v6 v3 v3 v3 v3 v3 v3 v3 v3 v3 v3 v12 v12 v5 v5 v5 v5 v5 v5 v5 v5 v6 v6 v6 v6 v6 v6 v4 v4 v7 v7 v4 v4 v4 v4 v4 v4 v4 v7 v7 v7 v7 v7 {v2, v4, v6, v8} é uma cobertura por vértices de tamanho menor ou igual a 4 para o grafo G. Algoritmo de Balasubramanian (9)

  26. Algoritmo de Dehne et al (1) • Paraleliza o Teorema 1 de Balasubramanian et al, seguindo o modelo CGM. • Paraleliza as duas fases do algoritmo FPT. • Resolve instâncias ainda maiores do que aquelas resolvidas pelo seqüencial. • Redução ao núcleo do problema paralelo: • p processadores ordenam as arestas pelo identificador do vértice em tempo O(1) para descobrir o grau dos vértices.

  27. <G’,k’> log3 p . . . . . . i folhas p-1 0 1 Algoritmo de Dehne et al (2) • Árvore limitada de busca paralelo:

More Related