Você está na página 1de 28

Integrantes: Andr Vieira Pedro Leandro Rafael Weslley

NP - Completo

Algoritmos No-Deterministas
Denio: A complexidade de um algoritmo nao-determinstico executado sobre uma instncia qualquer o numero mnimo de passos necessrios para que ele retorne a aceitar caso exista uma sequncia de Escolhas que leve a essa concluso. Se o algoritmo retornar Rejeitar o seu tempo de execucao O(1).

Funo escolhe(C)
Algoritmos no-deterministas utilizam uma funo escolhe(C), que escolhe um dos elementos do conjunto C de forma arbitrria, se um conjunto de possibilidades levam a uma resposta, este conjunto escolhido sempre e o algoritmo terminar com sucesso.

Comandos sucesso e insucesso


Algoritmos no-deterministas utilizam tambm dois comandos, a saber: insucesso: indica trmino sem sucesso. sucesso: indica trmino com sucesso. Esses so usados para definir uma execuo do Algoritmo, esses comandos so equivalentes a um comando de parada de um algoritmo determinista.

Mquina No-Determinista
Uma mquina no-determinista capaz de produzir cpias de si mesma quando diante de duas ou mais alternativas, e continuar a computao independentemente para cada Alternativa.

Mquina No-Determinista
Essa maquina no-determinista que acabamos de definir no existe na prtica, mas ainda assim fornece fortes evidncias de que certos problemas no podem ser resolvidos por algoritmos deterministas em tempo Polinomial.

Pesquisa No-Determinista
Pesquisar o elemento x em um conjunto de elementos A[1 : n], n 1.

void pesquisaND (x , A, 1 , n) { j escolhe (A, 1 , n) ; i f (A[ j ] == x) sucesso; else insucesso; }

Ordenao No-Determinista
Ordenar um conjunto A[1 : n] contendo n inteiros positivos, n 1. void ordenaND (A, 1 , n) { for ( int i = 1; i <= n; i ++) B[ i ] = 0; for ( int i = 1; i <= n; i ++) { j escolhe (A, 1 , n) ; i f (B[ j ] == 0) B[ j ] = A[ i ] ; else insucesso; } }

P igual ou diferente de NP?


Um dos problemas mais famosos do ramo da Cincia da Computao A Clay Mathematics Institute oferece um prmio de Um milho de dlares para a resoluo deste problema.

Conjunto Independente de Vrtices de um Grafo

Clique de um grafo
Clique em um grafo um subgrafo que tambm um grafo completo.

Transformao Polinomial
Se existe um algoritmo que resolve o conjunto independente em tempo polinomial, ele pode ser utilizado para resolver clique tambm em tempo polinomial.

Problemas NP-Completo e NP-Difcil


Um problema NP-Dificil se e somente se Satisfabilidade redutvel a X. Problemas de otimizao podem ser NP-Dificil . Um problema NP-Completo quando PI pertence a NP e quando se trata de um problema de deciso.

Exemplo: Ciclo de Hamilton


O ciclo de Hamilton um ciclo que passa por todos os vrtices uma nica vez .

Exemplo: Problema da Parada


um exemplo de problema NP-Dificil. Se a entrada de dados E for satisfatvel o algoritmo para, seno entra em loop. Muito til para compiladores

NP-Completo
Problemas intratveis ou difceis so comuns na natureza e nas reas do conhecimento. Problemas fceis: resolvidos por algoritmos polinomiais. Problemas difceis: somente possuem algoritmos exponenciais para resolv-los.

NP-Completo
Problemas que no parecem ser solveis pelas tcnicas que ns tratamos at agora. No existem solues eficientes para tais problemas.
Definio (algoritmo eficiente): o tempo de execuo do algoritmo limitado por algum polinmio no tamanho da entrada. Definio (problema tratvel): problema solvel por um algoritmo eficiente.

Classe NP - Problemas Sim/No


P classe dos problemas tratveis.
Como tratar com problemas que no sabemos se pertencem a P ??

Intitulados: Problemas NP-completos ou intratveis. Podemos agrupar estes problemas em uma nica classe porque eles so equivalentes em um forte sentido: Existe um algoritmo eficiente para algum problema NPcompleto se e somente se exsite-se algoritmos eficientes para todos os Problemas NP-completos.

NP-Completo

1- Definir a classe de problemas NP-completos e Mostrar como um problema pertence a esta classe 2- apresentar tcnicas para lidar com problemas intratveis.

NP-Completo
Ao nal da fase de vericacao, os algoritmos nao-determinsticos sempre retornarao o resultado Aceitar ou Rejeitar, dependendo se a soluo proposta resolve ou nao o problema. A proposta de soluo gerada ao nal da fase de construo Do algoritmo nao determinstico chamada de um certicado.

As Classes P e NP
Denio: P o conjunto de problemas que podem ser resolvidos por um algoritmo determinstico polinomial.

Denio: N P o conjunto de todos os problemas que podem ser resolvidos por um algoritmo no-determinstico polinomial.
Como todo algoritmo determinstico um caso particular de um algoritmo nao-determinstico, segue que P est contido em N P. Assim, todos os problemas que possuem algoritmos polinomiais esto em N P.

Heurstica

Denomina-se 'heurstica' capacidade de um sistema fazer inovaes e desenvolver tcnicas de forma imediata e positivas para um determinado fim.

Heurstica para pcv

Caminho timo para esta instncia: 0 1 2 5 3 4 0 (comprimento 58). Para a heurstica do vizinho mais prximo, se iniciarmos pelo vrtice 0, o vrtice mais prximo o 1 com distncia 3. A partir do 1, o mais prximo o 2, a partir do 2 o mais prximo o 4, a partir do 4 o mais prximo o 3, a partir do 3 restam o 5 e o 0. O comprimento do caminho 0 1 2 4 3 5 0 60.

Embora o algoritmo do vizinho mais prximo no


encontre a soluo tima, a obtida est bem prxima do timo. Entretanto, possvel encontrar instncias em que a soluo obtida pode ser muito ruim. Pode mesmo ser arbitrariamente ruim, umavez que a aresta final pode ser muito longa possvel achar um algoritmo que garanta encontrar uma soluo que seja razoavelmente boa no pior caso, desde que a classe de instncias consideradas seja restrita.

Algoritmos Aproximados para Problemas NP-Completo


E tentar resolver um problema que no tenha a soluo tima, mas algo prximo disso.

Algoritmos Aproximados para O PCV


PCV Assimtrica: A cidade de 1 ate 2 e igual da 2 ate 1. Desigualdade Triangular: A distancia de 1 ate 2 somada com a 2 ate 3 deve ser maior que a da 1 ate 3.

Arvore Geradora Mnima(AGM)

Desigualdade Triangular

Você também pode gostar