Você está na página 1de 2

Lista de exercícios #14 – Soluções

Prof. Jorge C. Lucero


20 de outubro de 2021

7.7 As soluções dadas para a união e concatenação de linguagens em P, no exercício 7.6, também servem para
o caso de linguagens em NP, substituindo as MTs determinísticas M1 e M2 por MTs não determinísticas.

7.11 A seguinte MT não-determinística decide ISO.

M = “Sobre a entrada hG, Hi, onde G e H são grafos não-direcionados:


1. Se G e H não têm a mesma quantidade de nós, rejeite.
2. Nomeie os nós de G e H na forma 1, 2, . . . , m.
3. Não-deterministicamente, selecione uma permutação π do conjunto {1, 2, . . . , m}.
4. Para cada par de nós a, b de G, faça:
5. Se (a, b) é uma aresta de G mas (π(a), π(b)) não é uma aresta de H, ou
se (a, b) não é uma aresta de G mas (π(a), π(b)) sim é uma aresta de H, rejeite.
6. Aceite.”

Todos os passos de M rodam em tempo polinomial. Em particular, o passo 5 roda em tempo O(n), onde
n = |hG, Hi|, e é repetido uma quantidade O(n2 ) de vezes.

7.17 Se A ∈ P, então A ∈ NP. Se A 6= Σ∗ e A 6= ∅, então existem cadeias u ∈ A e v ∈ / A. Seja B uma


linguagem qualquer em NP. Se P = NP, então existe uma MT M determinística de tempo polinomial que
decide B. Assim, podemos construir a seguinte MT que computa uma redução B ≤p A:

F = “Sobre a cadeia de entrada w:


1. Rode M sobre w. Se aceita, dê como saída u e pare; se rejeita, dê como saída v e pare.”

Assim, concluímos que A é NP-completa.

7.19 i. Sabemos que CAM ∈ P, portanto, CAM ∈ NP. Se CAM fosse NP-completa, então todo problema
em NP poderia ser reduzido a CAM em tempo polinomial e, portanto, teríamos P = NP.
ii. Queremos provar que, se CAM não é NP-completa então P 6= NP. Para isso, consideramos a
contrapositiva: se P = NP, então CAM é NP-completa.
Se P = NP, então SAT ∈ P e existe uma MT M determinística de tempo polinomial que decide
SAT. Assim, podemos construir a seguinte MT que computa uma redução SAT ≤p CAM:
F = “Sobre a entrada hφi, onde φ é uma fórmula booleana:
1. Rode M sobre hφi. Se aceita, faça G = ({s, t}, {(s, t)}). Se rejeita, faça G = ({s, t}, ∅).
2. Dê como saída hG, s, ti e pare.”
Se hφi ∈ SAT, então G possui uma aresta (s, t) e, portanto, hG, s, ti ∈ CAM. Se hφi ∈
/ SAT, então G
/ CAM.
não possui nenhuma aresta e, portanto, hG, s, ti ∈
Assim, concluímos que CAM é NP-completa.

7.20 a. A seguinte MT decide CAMMÁX em tempo polinomial.


M = “Sobre a entrada hG, a, b, ki, onde G é um grafo não-direcionado com nós a e b, e k é um
inteiro não-negativo:
1. Coloque uma marca com o rótulo 0 sobre o nó a.
2. Para i = 0, 1, . . . , m − 1, onde m é a quantidade de nós de G:
3. Faça uma varredura sobre todas as arestas de G. Se existe uma aresta
ligando um nó marcado com o rôtulo i a um nó não marcado, marque este
nó com o rótulo i + 1.
4. Se b foi marcado com um rótulo menor ou igual a k, aceite; se não, rejeite.”
Todos os passos de M rodam em tempo polinomial. Em particular, o passo 3 roda em tempo O(n2 ),
onde n = |hG, a, b, ki|, e é repetido uma quantidade O(n) de vezes.
b. A seguinte MT não-determinística decide CAMMIN em tempo polinomial.
M = “Sobre a entrada hG, a, b, ki, onde G é um grafo não-direcionado com nós a e b, e k é um
inteiro não-negativo:
1. Não-deterministicamente, selecione uma sequência de pelo menos k nós de G. Se essa sequên-
cia define um caminho de a a b, aceite; se não, rejeite.”
Por tanto, CAMMIN ∈ NP. Ainda, a seguinte MT que computa uma redução CAMHAMN ≤p
CAMMIN:
F = “Sobre a entrada hG, a, bi, onde G é um grafo não-direcionado com nós a e b:
1. Dê como saída hG, a, b, ki, onde k é a quantidade de nós de G, e pare.”
Se hG, a, bi ∈ CAMHAMN, então G possui um caminho hamiltoniano de a a b. Por ser hamiltoniano,
esse caminho tem comprimento k e , portanto hG, a, b, ki ∈ CAMMIN. Se hG, a, b, ki ∈ CAMMIN,
então G possui um caminho simples de a a b de comprimento k. A quantidade de nós de G é k.
Portanto, esse caminho é hamiltoniano e então hG, a, bi ∈ CAMHAMN.
Assim, concluímos que CAMMIN é NP-completa.
7.21 A seguinte MT não-determinística decide DUPLO-SAT em tempo polinomial.

M = “Sobre a entrada hφi, onde φ é uma fórmula booleana:


1. Não-deterministicamente, selecione duas atribuições de valores para as variáveis de φ. Se ambas
atribuiççoes satisfazem φ, aceite; se não, rejeite.”

Por tanto, DUPLO-SAT ∈ NP. Ainda, a seguinte MT que computa uma redução SAT ≤p DUPLO-SAT:

F = “Sobre a entrada hφi, onde φ é uma fórmula booleana:


1. Faça θ = φ ∧ (x ∨ x), onde x é uma variável nova.
2. Dê como saída hθi e pare.”

Se hφi ∈ SAT, então θ possui duas atribuições que a satisfazem as quais mantêm a mesma atribuição
de variáveis que satisfazem φ adicionadas de x = 0 ou x = 1. Portanto, hθi ∈ DUPLO-SAT. Se
hθi ∈ DUPLO-SAT, então φ pode ser satisfeita com qualquer uma das atribuições que satisfazem θ,
desconsiderando o valor de x. Portanto, hφi ∈ SAT.
Assim, concluímos que DUPLO-SAT é NP-completa.

Você também pode gostar