mais-np (1)
Click here to load reader
-
Upload
valter-ferlete -
Category
Documents
-
view
40 -
download
0
Transcript of mais-np (1)
Análise de algoritmos
Mais problemasNP-completos
Analise de algoritmos – p. 1/19
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
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
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
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
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
Clique em grafos
S = (x+ y + z).(x + y + z).(y + z)
Analise de algoritmos – p. 3/19
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
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
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
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
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
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
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
Mais problemasNP-completos
Corolario: Os problemas do conjunto independentee cobertura por vértices são NP-completos.
Analise de algoritmos – p. 9/19
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
Circuito hamiltoniano
Circuito hamiltoniano: Um dado grafo G éhamiltoniano?
Analise de algoritmos – p. 11/19
Circuito hamiltoniano
Circuito hamiltoniano: Um dado grafo G éhamiltoniano?
Teorema: Circuito hamiltoniano é NP-completo.
Analise de algoritmos – p. 11/19
Circuito hamiltoniano
Circuito hamiltoniano: Um dado grafo G éhamiltoniano?
Teorema: Circuito hamiltoniano é NP-completo.
Circuito hamiltoniano " NP. (# )
Analise de algoritmos – p. 11/19
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
Circuito hamiltoniano
Considere os seguintes subgrafos:
A
u uu( u(
vv v(
v(
%
Analise de algoritmos – p. 12/19
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
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
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
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
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
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
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