Algoritmos e complexidade Notas de aula - Arquivo Escolar

Algoritmos e complexidade Notas de aula - Arquivo Escolar Algoritmos e complexidade Notas de aula - Arquivo Escolar

arquivoescolar.org
from arquivoescolar.org More from this publisher
13.04.2013 Views

13. Teoria de NP-completude C-≤-difícil, se L ′ ≤ L para todos L ′ ∈ C. Um problema L que é C-≤-difícil é completo, se L ∈ C. • Motivo: Estudar a complexidade relativa de problemas; achar problemas “difíceis” para separar classes. • Do interesse particular: A separação de P e NP. Denotamos a classe de problemas NP -completos NPC. Características de ≤P Proposição 13.1 (Fecho para baixo) Se A ≤P B e B ∈ P então A ∈ P. Proposição 13.2 (Transitividade) ≤P é transitivo, i.e. se A ≤P B e B ≤P C então A ≤P C. Prova. (Fecho para baixo.) Uma instância w ∈ A pode ser reduzido em tempo polinomial para w ′ ∈ B. Depois podemos simular B com entrada w ′ em tempo polinomial. Como a composição de polinômios é um polinômio, A ∈ P. (Transitividade.) Com o mesmo argumento podemos reduzir w ∈ A primeiro para w ′ ∈ B e depois para w ′′ ∈ C, tudo em tempo polinomial. O problema de parada • O problema da parada não é decidível. • Qual o caso com HALT = {〈M, w〉 | MT M para com entrada w} Parada limitada (ingl. bounded halt) 262 Instância MT M, entrada w e um número n (em codificação unária). Questão M para em n passos?

Teorema 13.3 13.2. Reduções BHALT = {〈M, w, 1 n 〉 | MT M para com entrada w em n passos} é NP-completo. Prova. BHALT ∈ NP porque podemos verificar uma execução em n passos em tempo polinomial. Observe que a codificação de uma execução em limitada polinomialmente em termos da entrada 〈M, w, 1n 〉 pela codificação de n em unário. Logo é suficiente de mostrar que qualquer problema em NP pode ser reduzido para BHALT. Para alguma linguagem L ∈ NP, seja M uma MTND com L = L(M) que aceita L em tempo nk . Podemos reduzir uma entrada w ∈ L em tempo polinomial para w ′ = 〈M, w, 1nk〉, temos w ∈ L ⇔ w ′ ∈ BHALT. Logo L ≤P BHALT. Ladrilhar: Exemplo Ladrilhar: Solução 263

Teorema 13.3<br />

13.2. Reduções<br />

BHALT = {〈M, w, 1 n 〉 | MT M para com entrada w em n passos}<br />

é NP-completo.<br />

Prova. BHALT ∈ NP porque po<strong>de</strong>mos verificar uma execução em n passos em<br />

tempo polinomial. Observe que a codificação <strong>de</strong> uma execução em limitada<br />

polinomialmente em termos da entrada 〈M, w, 1n 〉 pela codificação <strong>de</strong> n em<br />

unário. Logo é suficiente <strong>de</strong> mostrar que qualquer problema em NP po<strong>de</strong> ser<br />

reduzido para BHALT.<br />

Para alguma linguagem L ∈ NP, seja M uma MTND com L = L(M) que<br />

aceita L em tempo nk . Po<strong>de</strong>mos reduzir uma entrada w ∈ L em tempo<br />

polinomial para w ′ = 〈M, w, 1nk〉, temos w ∈ L ⇔ w ′ ∈ BHALT. Logo<br />

L ≤P BHALT. <br />

Ladrilhar: Exemplo<br />

Ladrilhar: Solução<br />

263

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!