mais-np (1)

28

Click here to load reader

Transcript of mais-np (1)

Page 1: mais-np (1)

Análise de algoritmos

Mais problemasNP-completos

Analise de algoritmos – p. 1/19

Page 2: mais-np (1)

Clique em grafos

Clique: Dado um grafo G e um inteiro K, G tem umsubgrafo completo (clique) de tamanho ! K?

Analise de algoritmos – p. 2/19

Page 3: mais-np (1)

Clique em grafos

Clique: Dado um grafo G e um inteiro K, G tem umsubgrafo completo (clique) de tamanho ! K?

Teorema: Clique é NP-completo.

Analise de algoritmos – p. 2/19

Page 4: mais-np (1)

Clique em grafos

Clique: Dado um grafo G e um inteiro K, G tem umsubgrafo completo (clique) de tamanho ! K?

Teorema: Clique é NP-completo.

Clique " NP (# )

Analise de algoritmos – p. 2/19

Page 5: mais-np (1)

Clique em grafos

Clique: Dado um grafo G e um inteiro K, G tem umsubgrafo completo (clique) de tamanho ! K?

Teorema: Clique é NP-completo.

Clique " NP (# )

SAT $ clique

Analise de algoritmos – p. 2/19

Page 6: mais-np (1)

Clique em grafos

Clique: Dado um grafo G e um inteiro K, G tem umsubgrafo completo (clique) de tamanho ! K?

Teorema: Clique é NP-completo.

Clique " NP (# )

SAT $ clique

Dado uma instância S do SAT com K cláusulas,vamos construir um grafo G tal que G tem umaclique de tamanho K % S é satisfatível.

Analise de algoritmos – p. 2/19

Page 7: mais-np (1)

Clique em grafos

S = (x+ y + z).(x + y + z).(y + z)

Analise de algoritmos – p. 3/19

Page 8: mais-np (1)

Clique em grafos

S = (x+ y + z).(x + y + z).(y + z)

x

y

z

x

y

z

y

z

Analise de algoritmos – p. 3/19

Page 9: mais-np (1)

Exercícios

1. Construa um grafo G tal que G tem uma cliquede tamanho 4 se e somente se a fórmula

S = (x1+x2+x3).(x1+x2+x3).(x1+x2+x3).(x1+x2+x3)

é satisfatível.

Analise de algoritmos – p. 4/19

Page 10: mais-np (1)

Exercícios

2. Considere o seguinte algoritmo para resolver oproblema clique:para cada S & V com k vértices, verifique seS é uma clique.

O algoritmo acima tem complexidade O(nk).Logo, ele é polinomial. O que está errado?

Analise de algoritmos – p. 5/19

Page 11: mais-np (1)

Exercícios

3. Mostre que Isomorfismo de Subgrafos (Dadosdois grafos G1 e G2, G1 é subgrafo de G2?) éNP-completo. (Sugestão: Use o clique).

Analise de algoritmos – p. 6/19

Page 12: mais-np (1)

Mais problemasNP-completos

Conjunto independente: Dado um grafo G e uminteiro k, existe um subconjunto I com k vérticestal que nenhuma aresta liga dois vértices de I?

Analise de algoritmos – p. 7/19

Page 13: mais-np (1)

Mais problemasNP-completos

Conjunto independente: Dado um grafo G e uminteiro k, existe um subconjunto I com k vérticestal que nenhuma aresta liga dois vértices de I?

Cobertura por vertices: Dado um grafo G e um inteirok, existe um subconjunto C com k vértices tal quecada aresta de G é incidente a algum vértice de C?

Analise de algoritmos – p. 7/19

Page 14: mais-np (1)

Mais problemasNP-completos

Teorema: Dado um grafo G = (V,E) e umsubconjunto S & V , as seguintes afirmações sãoequivalentes:

S é uma clique de G

S é um conjunto independente de G

V ' S é uma cobertura por vértices de G

OBS: G é o grafo complementar de G.

Analise de algoritmos – p. 8/19

Page 15: mais-np (1)

Mais problemasNP-completos

Corolario: Os problemas do conjunto independentee cobertura por vértices são NP-completos.

Analise de algoritmos – p. 9/19

Page 16: mais-np (1)

Exercícios

1. Mostre que o problema da cobertura porvértices permanece NP-completo mesmo setodos os vértices do grafo tiverem grau par.(Sugestão : use o problema original).

2. O que acontece com o problema da coberturapor vértices se o grafo for uma árvore?

Analise de algoritmos – p. 10/19

Page 17: mais-np (1)

Circuito hamiltoniano

Circuito hamiltoniano: Um dado grafo G éhamiltoniano?

Analise de algoritmos – p. 11/19

Page 18: mais-np (1)

Circuito hamiltoniano

Circuito hamiltoniano: Um dado grafo G éhamiltoniano?

Teorema: Circuito hamiltoniano é NP-completo.

Analise de algoritmos – p. 11/19

Page 19: mais-np (1)

Circuito hamiltoniano

Circuito hamiltoniano: Um dado grafo G éhamiltoniano?

Teorema: Circuito hamiltoniano é NP-completo.

Circuito hamiltoniano " NP. (# )

Analise de algoritmos – p. 11/19

Page 20: mais-np (1)

Circuito hamiltoniano

Circuito hamiltoniano: Um dado grafo G éhamiltoniano?

Teorema: Circuito hamiltoniano é NP-completo.

Circuito hamiltoniano " NP. (# )

3-SAT $ circuito hamiltoniano.

Analise de algoritmos – p. 11/19

Page 21: mais-np (1)

Circuito hamiltoniano

Considere os seguintes subgrafos:

A

u uu( u(

vv v(

v(

%

Analise de algoritmos – p. 12/19

Page 22: mais-np (1)

Circuito hamiltoniano

B

u1

u2

u3

u4

%

Nenhum circuito hamiltoniano de G contém as trêsarestas u1u2, u2u3 e u3u4, mas pode conterqualquer subconjunto próprio delas.

Analise de algoritmos – p. 13/19

Page 23: mais-np (1)

Circuito hamiltoniano

S = (x1 + x2 + x3).(x1 + x2 + x3).(x1 + x2 + x3)

B

B

B

A

A

A

A

A

A

A

A

A

x1

x2

x3

S é satis-fatível % G éhamiltoniano.

Analise de algoritmos – p. 14/19

Page 24: mais-np (1)

Exercícios1. Um caminho hamiltoniano é um caminho que contém

todos os vértices de um grafo. Mostre que o problemade decidir se um dado grafo contém um caminhohamiltoniano é NP-completo.(Sugestão: use o circuito hamiltoniano.)

2. Mostre que os seguintes problemas sãoNP-completos: Dado um grafo G = (V,E), um conjuntoL & V , e um inteiro k, existe uma árvore geradora T deG tal que(a) O conjunto das folhas de T é L?(b) T tem k folhas?(c) Os vértices de T têm grau máximo k?(Sugestão: Use o problema do caminho hamiltoniano.)

Analise de algoritmos – p. 15/19

Page 25: mais-np (1)

ExercíciosConsidere o seguinte problema:Partição: dado um conjunto S de inteiros, os elementos deS podem ser particionados em dois subconjuntos A eA = S ' A tal que

!x!A x =

!x!A x?

3. Sabendo que o problema da partição é NP-completo,mostre que o problema abaixo também éNP-completo:

Dados m máquinas idênticas, n tarefas com duraçãot1, t2, . . . , tn (onde cada ti é um inteiro positivo) paraserem executadas pelas máquinas, e um inteiropositivo T . Existe uma distribuição das tarefas pelasmáquinas tal que o tempo total de execução émenor ou igual a T?

Analise de algoritmos – p. 16/19

Page 26: mais-np (1)

Exercícios4. Sabendo que o problema da partição é NP-completo,

mostre que o problema abaixo também éNP-completo:

Mochila 0-1: Dado um conjunto U = {u1, u2, . . . , un},valores inteiros positivos wi e ci (respectivamente, opeso e o custo) associados a cada elemento ui deU , e dois inteiros positivos W e C. Deseja-se saberse existe um subconjunto S de U tal que!

ui!S wi ) W e!

ui!S ci ! C?

Analise de algoritmos – p. 17/19

Page 27: mais-np (1)

Exercícios5. Considere a seguinte versão do problema do caminho

mínimo: dado um grafo G, possivelmente com arestasde peso negativo, vértices s e t e um inteiro k, decidirse existe um caminho de s a t de peso menor ou igual ak. Mostre que este problema é NP-completo.(Sugestão: use o circuito hamiltoniano.)

Analise de algoritmos – p. 18/19

Page 28: mais-np (1)

Exercícios6. Mostre que o problema abaixo é NP-completo:

(Hitting set): dados um conjunto universo T e:uma coleção {S1, S2, . . . , Sn}, onde cada Si & T e;um inteiro positivo k ) |T |.

O problema é determinar se existe um subconjuntoH de T tal que |H| ) k e *i " {1, 2, ..., n},(H + Si) ,= -.

7. Um grafo é chamado de caterpillar se ele possui umcaminho C tal que todas as suas folhas distam 1 de C.Mostre que o problema de decidir se um dado grafo écaterpillar é NP-completo.

Analise de algoritmos – p. 19/19