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

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

NÃO DETERMINISMO Marcus Eduardo Cabral Seabra

Apresentações semelhantes


Apresentação em tema: "NÃO DETERMINISMO Marcus Eduardo Cabral Seabra"— Transcrição da apresentação:

1 NÃO DETERMINISMO Marcus Eduardo Cabral Seabra (mecs@di.ufpe.br)
Apresentação: Paulo Gustavo Fell Amado e Marcus Eduardo Cabral Seabra 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

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

3 INTRODUÇÃO 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. 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 Algoritmos que possuem resolução em tempo polinomial* são chamados de Algoritmos eficientes e dizemos que este é um problema tratável. *Tempo de execução polinomial: funciona para n’s 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
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ão determinismo: qualidade de uma computação que pode apresentar mais de um resultado. 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
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. 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
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. Classe NP: Quando, para resolver um problema, temos um algoritmo Não determinístico (usa nd-choice) que roda em tempo Polinomial dizemos que o problema pertence à classe NP.

9 PROBLEMAS P e PROBLEMAS NP
Temos direto da definição que: P  NP É 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. 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 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. Se L1 é redutível a L2 e existe um algoritmo em tempo polinomial para L2 então existe um algoritmo polinomial para L1. Quando L1 é redutível a L2, temos que L2 é mais difícil que L1. 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
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. 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 Em 1971, Stephen A. Cook introduziu o conceito de NP-Completo, provando que o problema da satisfatibilidade (SAT) pertencia a esta classe. Para contactar Cook, mande um mail para: 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 3SAT CLIQUE COBERTURA DE VÉRTICES 3COLORAÇÃO MATCHING TRIDIMENSIONAL CICLO HAMILTONIANO PARTIÇÃO CAIXEIRO VIAJANTE

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

15 Algoritmos não-determinísticos
Comandos regulares das linguagens determinísticas 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.

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
Inteligência Artificial Prolog - Lógica de 1ª ordem Concorrência Linguagens (semântica)

20 Não determinismo na Web

21 CONCLUSÕES 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 Projeto Quantum


Carregar ppt "NÃO DETERMINISMO Marcus Eduardo Cabral Seabra"

Apresentações semelhantes


Anúncios Google