Escolar Documentos
Profissional Documentos
Cultura Documentos
LOIANE GRONER
NP - COMPLETUDE
VITÓRIA
2006
LOIANE GRONER
NP - COMPLETUDE
VITÓRIA
2006
VITÓRIA, 01 DE DEZEMBRO DE 2006
SUMÁRIO
1 INTRODUÇÃO .................................................................................................. 3
6.1 REDUTIBILIDADE.......................................................................................... 14
8 PROBLEMAS P E NP...................................................................................... 19
9 PROVAS ........................................................................................................... 28
9.1 TEOREMA DE COOK ................................................................................... 28
11 CONCLUSÃO ............................................................................................... 36
12 REFERÊNCIAS ............................................................................................. 37
ANEXOS .............................................................................................................. 39
1 INTRODUÇÃO
Este trabalho discute que alguns problemas são realmente difíceis. A prova consiste
em um conceito conhecido como NP - Completude. Este conceito permite mostrar
rigorosamente que achar um algoritmo eficiente para um certo problema é tão difícil
quanto achar algoritmos eficientes para todos os problemas que encontram-se na
classe chamada NP.
Muitos desses problemas são muito importantes, uma vez que estão relacionados a
problemas de otimização, que na prática podem gerar economia de dinheiro, tempo
e outros recursos. Um dos métodos mais efetivos é construir um algoritmo de
aproximação de tempo polinomial para problemas NP – Completos. Embora tais
algoritmos não produzam uma solução ótima, geralmente chegam perto da solução
ótima. Em fato, em alguns casos pode-se garantir a quão perto essa solução
aproximada será da solução ótima.
4
A maioria do algoritmos vistos neste curso até agora, são no máximo de tempo
polinomial. De acordo com Cormen, Leiserson, e Rivest, algoritmos de tempo
polinomial são considerados tratáveis pelas seguintes razões:
• Intratável: se ele for tão difícil que nenhum algoritmo polinomial pode
resolvê-lo.
7
Neste ponto é fácil observar que os três problemas guardam em geral relação muito
próxima, isto é, para obter um clique de tamanho mínimo, três problemas devem ser
resolvidos em seqüência:
a) Passo 0
Problema de Decisão:
Entrada: Grafo G e um inteiro k > 0
Questão: E um clique em G do tamanho k?
Se a resposta for sim, resolve-se o segundo problema.
b) Passo 1
Resolver o Passo 1 consiste basicamente em obter algum clique em G, ou
mostrar que não existe estrutura com esta propriedade. Portanto, foi resolvido o
seguinte problema:
Problema de Localização:
Entrada: Grafo G e um inteiro k > 0
Questão: Encontrar um clique em G de tamanho k.
9
c) Passo 2
Resolvidos os problemas da existência e localização de cliques em G, deve-se
obter dentre todos os cliques deste grafo aquele de tamanho mínimo. Ou seja, o
menor k para o qual a resposta ao Problema de Decisão seja sim.
Problema de Otimização
Entrada: Grafo G
Questão: Obter um clique de tamanho mínimo.
Conclui-se então que o Problema de Decisão apresenta dificuldade não maior que a
do Problema de Localização, e este, por sua vez, apresenta dificuldade não maior
que a do Problema de Otimização associado Em diversas situações, porém, os
Problemas de Localização e Otimização apresentarão grau de dificuldade não maior
que o Problema de Decisão associado. Sendo a obtenção de resposta para o
Problema de Decisão em geral mais fácil, utiliza-se este problema para obter alguma
indicação quanto à possível intratabilidade. Outra razão significativa para utilizarmos
Problemas de Decisão é que o tamanho de sua saída é constante (resposta sim ou
não), podendo ser ignorada na análise da complexidade de determinado algoritmo.
4 CLASSE DE PROBLEMAS P
Por outro lado, o método de Cramer, também utilizado para resolver sistemas
lineares, tem custo exponencial. Para um sistema linear n×n esse método executa
aproximadamente (n+1)!(e-1) multiplicações. Para se ter uma idéia desse custo, se
for usado um computador que realiza 100 milhões de multiplicações por segundo,
para resolver um sistema linear 20×20 seriam necessários mais de 32000 anos.
11
5 A CLASSE DE PROBLEMAS NP
No início dos anos sessenta foram encontrados muitos algoritmos que resistiam a
uma simplificação polinomial, isto é, algoritmos que não admitiam procedimentos
análogos na classe P. Nesta época Steve Cook observou um fato simples e ao
mesmo tempo surpreendente: se um problema pudesse ser resolvido em tempo
polinomial, poderia-se também verificar se uma dada possível solução é correta em
tempo polinomial (dize-se que o algoritmo pode ser certificado em tempo polinomial).
Uma máquina de Turing pode ser pensada como uma fita infinita de papel, dividida
em pequenas casas, e um lápis/borracha especial que pode seguir instruções. Essas
instruções são bastante simples: o lápis pode ler um símbolo na fita e, analisando-o,
pode apagá-lo e escrever por cima do símbolo lido e, mudando de estado, pode se
mover para a direita ou para a esquerda para analisar um novo símbolo, ou
simplesmente parar.
Existe uma afirmação heurística, conhecida como Tese de Church, que diz que tudo
o que pode ser programado algoritmicamente pode também ser realizado por uma
máquina de Turing.
Que ligação afinal existe entre máquinas de Turing e linguagens? Em termos breves,
se L é uma linguagem sobre um alfabeto S, isto é, se L é um subconjunto finito de
seqüências de letras de S, dizemos que uma máquina de Turing M aceita a
linguagem L se para toda palavra construída com as letras de S colocada como
entrada (input), após o processamento M entra em um estado de aceitação
(respondendo de algum modo sim) se a palavra pertencer à linguagem. A palavra é
recusada por M se, após o processamento M entra num estado de rejeição
(respondendo não de algum modo) ou se ela falhar em completar seu processo
computacional.
É verdade que toda linguagem aceita em tempo polinomial por uma máquina de
Turing não-determinística é também aceita, em tempo polinomial, por uma máquina
determinística?
6 CARÁTER NP-COMPLETO
Talvez a razão mais forte pela qual os cientistas da computação teoria acreditam
que P NP seja a existência da classe de problemas “NP - Completos”. Essa
classe tem a surpreendente propriedade de que, se qualquer problema NP -
Completo pode ser resolvido em tempo polinomial, então todo problema em NP tem
uma solução polinomial, isto é, P = NP. Entretanto, apesar de anos de estudo,
nenhum algoritmo de tempo polinomial jamais foi descoberto para qualquer
problema NP - Completo.
6.1 REDUTIBILIDADE
polinomial isto é, se , então L1 não é mais que um fato polinomial mais difícil
que L2, e esse é o motivo pelo qual a notação “menor que ou igual a” para redução é
mnemônica.
Prova: suponha que L P e também que L NPC. Para qualquer NP, temos
Desse modo, pelo Lema abaixo, também se tem que P, o que prova o primeiro
enunciado do teorema. A prova do segundo enunciado é contra positivo do primeiro
enunciado.
17
Não se sabe se P = NP, mas a maioria dos pesquisadores acredita que P e NP não
são a mesma classe. Intuitivamente, a classe P consiste em problemas que podem
ser resolvidos com rapidez a classe NP consiste em problemas para os quais uma
solução pode ser verificada rapidamente. Logicamente, é mais difícil resolver um
problema a partir do início que verificar uma solução apresentada com clareza, em
especial quando se trabalha sob restrições de tempo.
tais que NP. A questão de saber se NP é fechada sob o complemento pode ser
redefinida como se NP = co – NP. Tendo em vista que P é fechada sob o
Assim como a classe co – NP, outras classes surgiram ao redor de P e NP. Por
exemplo, as classes Dlog - Espaço e P-Espaço. Todos os problemas que podem ser
resolvidos em tempo polinomial utilizam requisitos polinomiais de espaço e memória.
A veracidade da recíproca, porém, é ainda uma questão em aberto, ou seja,
estabelecer a existência de problemas cuja solução pode ser obtida com requisito de
espaço polinomial.
A classe Dlog – Espaço é formada pelos problemas que, para sua solução,
adicionalmente ao espaço utilizado para os dados da instância, têm requisitos
limitados por uma função logarítmica nos dados de entrada, enquanto os problemas
da classe P – Espaço, têm requisitos de espaço polinomial. É trivial notar que Dlog –
Espaço P NP P – Espaço e conjectura - se que cada uma destas inclusões é
própria.
8 PROBLEMAS P E NP
Exemplos:
Exemplos:
Considere um grafo com peso nas arestas, dois vértices i, j e um inteiro k > 0, como
mostra a figura 9:
Figura 10:
• Fácil: Existe um caminho de i até j com peso k?
O problema é produzir uma coloração ótima, que é a que usa apenas X(G) cores.
21
• Fácil: k = 2
• Difícil: k > 2
Modelagem por grafo: os vértices representam variáveis e cada aresta liga duas
variáveis que possuem interseção nos tempos de vida. A coloração dos vértices
atribui cada variável a um agrupamento (ou classe). Duas variáveis com a mesma
cor não colidem, podendo assim ser atribuídas ao mesmo registrador.
Evidentemente, não existe conflito se cada vértice for colorido com uma cor distinta.
Porém, o objetivo é encontrar uma coloração usando o mínimo de cores, pois os
computadores têm um número limitado de registradores.
com alunos de cursos diferentes devem ter seus exames marcados em horários
diferentes. Dada uma lista de todos os cursos e outra lista de todas as disciplinas
cujos exames não podem ser marcados no mesmo horário, o problema em questão
pode ser modelado como um problema de coloração de grafos.
O ciclo de Hamilton é um ciclo simples, ou seja, passa por todos os vértices uma
única vez.
• Fácil: grafos com grau máximo = 2, ou seja, vértices com no máximo duas
arestas incidentes.
• Difícil: grafos com grau > 2.
Uma justificativa para a resposta SIM pode ser obtida exibindo-se um ciclo C de G e
reconhecendo-se que C é de fato hamiltoniano.
23
Uma justificativa para a resposta NÃO (mais difícil) pode ser apresentada listando-se
todos os ciclos simples de G e verificando-se que nenhum deles é hamiltoniano.
Figura 13:
Figura 14:
Considere um conjunto de variáveis booleanas x1, x2, ..., xn, que podem assumir
valores lógicos verdadeiro ou falso.
Neste caso, o mapeamento é direto, pois o circuito pode ser descrito por uma
expressão lógica na forma normal conjuntiva.
Exemplo: uma empresa de fabricação de peças por meio de injeção plástica que
fornece para diversas outras empresas montadoras. Para reduzir o custo relativo ao
tempo de preparação das máquinas injetoras, pode-se aumentar o tamanho dos
lotes produzidos para cada peça encomendada. Para isso, é preciso identificar os
clientes que adquirem os mesmos produtos, para negociar prazos de entrega
comuns e assim aumentar o tamanho dos lotes produzidos.
Solução: construir um grafo com cada vértice representando um cliente e ligar com
uma aresta os que adquirem os mesmos produtos. Um clique do grafo representa o
conjunto de cliente que adquirem os mesmo produtos.
Figura 18:
28
9 PROVAS
Existe algum problema em NP tal que se ele for mostrado estar em P, implicaria P =
NP?
passos:
Essa prova é possível porque Cook apresentou uma prova direta de que SAT é
Para ilustrar como um problema A pode ser provado ser NP - Completo, basta
considerar um problema já provado ser NP – Completo e apresentar uma redução
polinomial desse problema para A.
Aqui serão demonstradas algumas provas de alguns dos problemas mais famosos.
x1’ x1’
x1
x2’ x2
x2’
x3 x3’
Figura 19:
Note que cada clique de tamanho 3 no grafo ao lado corresponde a uma atribuição
de Verdadeiro às variáveis correspondentes em E de tal forma que E seja satisfeita.
b b
2
1 1
f 1 f O ciclo {a,b,c,d,e,f,a} em G’
a a 1c 2 tem peso total 6, e representa
2
2 1 1 um ciclo hamiltoniano em G,
c 2 2 1 2 um grafo de 6 vértices.
d e d 1 e
G G’
Figura 20:
Logo, como
- Decisão do Caixeiro Viajante é NP;
- Decisão do Ciclo Hamiltoniano ∝ Decisão do Caixeiro Viajante;
- Decisão do Ciclo Hamiltoniano é NP-Completo (não foi mostrado neste texto);
então Decisão do Caixeiro Viajante é NP-Completo.
10 PROBLEMAS EXPONENCIAIS
Procura-se algoritmos eficientes que não garantem obter a solução ótima, mas
sempre obtêm uma próxima da ótima. Tal solução, com uma valor próximo da ótima,
é chamada de solução aproximada.
Seja I uma instância de um problema π e seja S*(I) o valor da solução ótima para I.
Um algoritmo aproximado gera uma solução possível para I cujo valor S(I) é maior
(pior) do que o valor ótimo S*(I). Dependendo do problema, a solução a ser obtida
pode minimizar ou maximizar S(I). No caso do algoritmo aproximado obter a solução
ótima, então S(I) = S*(I).
11 CONLUSÃO
12 REFERÊNCIAS
ALOISE, Dário José. Problemas NP - Completos. Natal, 2002. Disponível em: <
http://muriu.dimap.ufrn.br/~dario/arquivos/Cap4_Grafos-2001.pdf> Acesso em: 16
nov. 2006.
FARIA, João Pascal. A classe de problemas NP. Porto - Portual, 2006. Disponível
em: < http://paginas.fe.up.pt/~jpf/teach/CES0506/NP.pdf> Acesso em: 16 nov. 2006.
http://www.ic.unicamp.br/~meidanis/courses/mo417/2003s1/aulas/2003-06-18.html >
Acesso em: 04 nov. 2006.
MALAGUTTI, Pedro Luiz Aparecido. P versus NP. São Carlos, 2002. Disponível em:
< http://www.dm.ufscar.br/hp/hp501/hp501001/hp501001.html> Acesso em: 04 nov.
2006.
ANEXOS
40
Exercício 01:
Marque V ou F:
Exercício 02:
Exercício 03
Exercício 04
Exercício 05
Exercício 06