algoritmos fpt para o problema da k cobertura por v rtices n.
Download
Skip this Video
Loading SlideShow in 5 Seconds..
Algoritmos FPT para o Problema da k-Cobertura por Vértices PowerPoint Presentation
Download Presentation
Algoritmos FPT para o Problema da k-Cobertura por Vértices

Loading in 2 Seconds...

play fullscreen
1 / 27

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


  • 104 Views
  • Uploaded on

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.

loader
I am the owner, or an agent authorized to act on behalf of the owner, of the copyrighted work described.
capcha
Download Presentation

PowerPoint Slideshow about 'Algoritmos FPT para o Problema da k-Cobertura por Vértices' - gizela


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.While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server.


- - - - - - - - - - - - - - - - - - - - - - - - - - E N D - - - - - - - - - - - - - - - - - - - - - - - - - -
Presentation Transcript
roteiro
Roteiro
  • Problema da k-Cobertura por Vértices
  • Problemas NP-completos
  • Complexidade Parametrizada
  • Problemas FPT
  • Algoritmo de Buss
  • Algoritmo de Balasubramanian et al
problema da k cobertura por v rtices 1

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?
problema da k cobertura por v rtices 2
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.
problemas np completos
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.
complexidade parametrizada 1
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.
complexidade parametrizada 2
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

complexidade parametrizada 3
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.
problemas fpt 1
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
problemas fpt 2
Problemas FPT (2)
  • Existem duas técnicas algorítmicas comuns em algoritmos FPT:
    • Redução ao núcleo do problema.
    • Árvore limitada de busca.
redu o ao n cleo do problema
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)).

rvore limitada de busca
Á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.
problemas fpt 5
Problemas FPT (5)
  • A k-Cobertura por Vértices foi um dos primeiros problemas que provou-se ser FPT. A seguir, alguns resultados:
algoritmo de buss 1
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.
algoritmo de buss 2
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.
algoritmo de buss 3

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

algoritmo de balasubramanian 1
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.
algoritmo de balasubramanian 2
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.
algoritmo de balasubramanian 3
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).
algoritmo de balasubramanian 4

Á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.
algoritmo de balasubramanian 5

Á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.
algoritmo de balasubramanian 6

Á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.
algoritmo de balasubramanian 7

Á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.
algoritmo de balasubramanian 8
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.
algoritmo de balasubramanian 9

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)
algoritmo de dehne et al 1
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.
algoritmo de dehne et al 2

<G’,k’>

log3 p

. . .

. . .

i

folhas

p-1

0

1

Algoritmo de Dehne et al (2)
  • Árvore limitada de busca paralelo: