A apresentação está carregando. Por favor, espere

A apresentação está carregando. Por favor, espere

NÃO DETERMINISMO Curso de Ciência da Computação da Universidade Federal de Pernambuco Disciplina de Algoritmos e Estruturas de Dados Recife, 10 de setembro.

Apresentações semelhantes


Apresentação em tema: "NÃO DETERMINISMO Curso de Ciência da Computação da Universidade Federal de Pernambuco Disciplina de Algoritmos e Estruturas de Dados Recife, 10 de setembro."— Transcrição da apresentação:

1 NÃO DETERMINISMO Curso de Ciência da Computação da Universidade Federal de Pernambuco Disciplina de Algoritmos e Estruturas de Dados Recife, 10 de setembro de 1998 Apresentação: Paulo Gustavo Fell Amado e Marcus Eduardo Cabral Seabra

2 VISÃO GERAL DA APRESENTAÇÃO n INTRODUÇÃO - expressões e convenções n ALGORITMOS DETERMINÍSTICOS E NÃO DETERMINÍSTICOS - Conceitos e comparações n ESCOLHA NÃO DETERMINÍSTICA - Conceito e aplicação n PROBLEMAS P E NP - Conceito e confrontamento n PROBLEMAS NP-DIFÍCEIS E NP-COMPLETOS n APRESENTAÇÃO DE UM PROBLEMA NP-COMLETO n APLICAÇÕES DE NÃO DETERMINISMO EM CIÊNCIA DA COMPUTAÇÃO n NÃO DETERMINISMO NA INTERNET n CONCLUSÃO

3 INTRODUÇÃO n Existem muitos problemas para os quais não se conhece solução eficiente e para muitos não sabemos nem ao menos dizer se existe esta solução. Estes problemas são bastante comuns. n Problemas Algorítmicos: –existe estrutura S que satisfaça propriedades P ? (Decisão) –encontre estrutura S que satisfaça propriedades P –encontre estrutura S que satisfaça os critérios de otimização

4 INTRODUÇÃO n Algoritmos que possuem resolução em tempo polinomial* são chamados de Algoritmos eficientes e dizemos que este é um problema tratável. n *Tempo de execução polinomial: –funciona para ns grandes; –no dia-a-dia nos deparamos na grande maioria das vezes com problemas com tempo de execução O(n), O(n²); –da mesma forma, por conveniência, assumimos que O(nlogn) é um tempo de execução polinomial.

5 ALGORITMOS DETERMINÍSTICOS × ALGORITMOS NÃO DETERMINÍSTICOS n Algoritmo Determinístico: –a qualquer momento da sua lista de operações, o algoritmo só tem um próximo passo predeterminado a ser tomado; –se aplicarmos um algoritmo determinístico duas vezes ao mesmo problema, teremos duas soluções idênticas; –são os algoritmos encontrados na vida prática.

6 ALGORITMOS DETERMINÍSTICOS × ALGORITMOS NÃO DETERMINÍSTICOS n Não determinismo: qualidade de uma computação que pode apresentar mais de um resultado. n Algoritmo Não Determinístico: –teremos mais de um próximo passo a ser tomado, o passo correto será apontado por uma ferramenta (não implementável), para cada escolha o algoritmo tomará rumos diferentes; –esta ferramenta é a escolha não determinística que vamos chamar de nd-choice.

7 ESCOLHA NÃO DETERMINÍSTICA n Quando se deparar com várias opções, o nd-choice munirá nosso algoritmo com o poder de fazer a escolha certa, de adivinhar o caminho que possui a solução se ela existir. n O algoritmo seguirá os passos determinísticos normais e intercalará um ou mais usos do nd-choice, de forma a achar pelo menos uma das entradas para as quais a resposta ao problema de decisão é SIM e rejeitar todas para as quais a resposta é NÃO.

8 PROBLEMAS P e PROBLEMAS NP n Classe P: –Dizemos que um problema pertence à Classe P se ele puder ser resolvido por um algoritmo determinístico em tempo polinomial; –É a classe de todos os problemas que podem ser resolvidos por um algoritmo eficiente. n Classe NP: –Quando, para resolver um problema, temos um algoritmo N ão determinístico (usa nd-choice) que roda em tempo P olinomial dizemos que o problema pertence à classe NP.

9 PROBLEMAS P e PROBLEMAS NP n Temos direto da definição que: P NP n É intuitivo também dizer que: se um problema de decisão é NP, então uma resposta SIM ou NÃO para o problema pode ser obtida no máximo em tempo exponencial. n Nunca foi provado que P=NP, para tanto teríamos que mostrar que todo problema em NP pode ser resolvido por um algoritmo determinístico em tempo polinomial. Para provar o contrário, ou seja, que P NP, teríamos que provar que dentre todos os algoritmos que resolvem um problema NP nenhum é eficiente. Esta questão continua uma grande incógnita para muitos pesquisadores e é chamada de Problema P=?NP.

10 REDUÇÃO POLINOMIAL n Seja L U o conjunto de todas as entradas de um problema de decisão cujas respostas são SIM. O problema de decisão é reconhecer se uma determinada entrada pertence a L. Sejam L1 e L2 dois problemas com entradas nos espaço U1 e U2, dizemos que L1 é polinomialmente redutível a L2 se existe um algoritmo em tempo polinomial que converte cada entrada u1 U1 em outra u2 U2, tal que u1 S1 se e somente se u2 S2. n Se L1 é redutível a L2 e existe um algoritmo em tempo polinomial para L2 então existe um algoritmo polinomial para L1. n Quando L1 é redutível a L2, temos que L2 é mais difícil que L1. n Se L1 é redutível a L2 e L2 é redutível a L3, então L1 é redutível a L3

11 NP-DIFÍCIL e NP-COMPLETO n NP-Difícil –Um problema X é chamado de NP-Difícil se todos os problemas da classe NP forem redutíveis a X. –Resolver um problema NP-Difícil em tempo polinomial tornaria possível resolver todos os problemas em NP em tempo polinomial. n NP-Completo –Um problema X é chamado de NP-Completo se (1) pertencer a NP e (2) for NP-Difícil. –Um problema X é NP-Completo se Y é redutível a X para algum problema Y que seja NP-Completo (transitividade).

12 TEOREMA DE COOK n Em 1971, Stephen A. Cook introduziu o conceito de NP-Completo, provando que o problema da satisfatibilidade (SAT) pertencia a esta classe. n Para contactar Cook, mande um mail para: n TEOREMA DE COOK: O problema SAT é NP-Completo.

13 Com o teorema de Cook, vários outros problemas foram provados pertencer à classe NP-Completo, esses problemas possuem uma extrema importância, por existirem em grande número e terem muitas aplicações práticas. No esquema são representados outros problemas NP-Completos ligados numa árvore diretamente ao problema ao qual são redutíveis. SAT CLIQUE COBERTURA DE VÉRTICES CICLO HAMILTONIANO CAIXEIRO VIAJANTE 3SAT 3COLORAÇÃO MATCHING TRIDIMENSIONAL PARTIÇÃO

14 Problemas NP n Para identificar um problema NP, usamos um algoritmo não determinístico n O custo do algoritmo torna-se polinomial

15 Algoritmos não-determinísticos n Comandos regulares das linguagens determinísticas n nd-choice -> oráculo

16 Reconhecimento Um algoritmo não- determinístico reconhece (aceita, diz sim) uma entrada x se existir, pelo menos, uma maneira do algoritmo chegar a uma resposta sim Um algoritmo não- determinístico reconhece (aceita, diz sim) uma entrada x se existir, pelo menos, uma maneira do algoritmo chegar a uma resposta sim.

17 O PROBLEMA CLIQUE Dado um grafo G(V,E) e um inteiro k <= |v|, existe um subgrafo completo de k vértices de G?

18 Algoritmo não-determinístico para Clique Para v:= 1 até n nd-choice { escolhido[v] := 1; escolhido[v] := 0; } cont := 0; para v:= 1 ate n cont := cont + escolhido[v]; se cont != k { imprima não existe exit } Para v:= 1 até n { se escolhido[v] := 1 cont:= 0; para cada vertice w adjacenta a v { cont := 0; se escolhido[w] = 1 cont := cont + 1; se cont != k - 1 imprima não existe exit }} imprima existe

19 Não determinismo em Ciências da Computação n Inteligência Artificial n Prolog - Lógica de 1ª ordem n Concorrência n Linguagens (semântica)

20 Não determinismo na Web Não determinismo na Web

21 CONCLUSÕES n Como lidar com os problemas não determinísticos –Trabalhar com o caso médio desenvolvendo algoritmos que solucionam a maioria dos casos –Tentar algoritmos exponenciais tão eficientes quanto possível for –Algoritmos de Aproximação n Projeto Quantum


Carregar ppt "NÃO DETERMINISMO Curso de Ciência da Computação da Universidade Federal de Pernambuco Disciplina de Algoritmos e Estruturas de Dados Recife, 10 de setembro."

Apresentações semelhantes


Anúncios Google