computação - sob uma perspectiva teórica - uaf ufcgromulo/seminarios/elloa.pdf · pergunta...

30
Computação Sob uma perspectiva teórica Elloá B. Guedes IQuanta 22 de setembro de 2008 Elloá B. Guedes (IQuanta) Computação 22 de setembro de 2008 1 / 30

Upload: truonghanh

Post on 25-Sep-2018

224 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Computação - Sob uma perspectiva teórica - UAF UFCGromulo/seminarios/elloa.pdf · Pergunta Inicial: O que é Computação? Computação: Resolução de um problema através de

ComputaçãoSob uma perspectiva teórica

Elloá B. Guedes

IQuanta

22 de setembro de 2008

Elloá B. Guedes (IQuanta) Computação 22 de setembro de 2008 1 / 30

Page 2: Computação - Sob uma perspectiva teórica - UAF UFCGromulo/seminarios/elloa.pdf · Pergunta Inicial: O que é Computação? Computação: Resolução de um problema através de

Outline

1 Motivação

2 Contextualização Histórica

3 Máquina de Turing

4 Computação

5 P = NP?

6 Problema da Parada

7 Computação Quântica

8 Considerações Finais

9 Dúvidas

Elloá B. Guedes (IQuanta) Computação 22 de setembro de 2008 2 / 30

Page 3: Computação - Sob uma perspectiva teórica - UAF UFCGromulo/seminarios/elloa.pdf · Pergunta Inicial: O que é Computação? Computação: Resolução de um problema através de

Motivação

Qual o objetivo desta apresentação?

Apresentar o conceito de Computação:Independente da existência de computadores;Além da tecnologia atual;

Apresentar “pontos de contato” entre a Ciência da Computação ea Física;

Elloá B. Guedes (IQuanta) Computação 22 de setembro de 2008 3 / 30

Page 4: Computação - Sob uma perspectiva teórica - UAF UFCGromulo/seminarios/elloa.pdf · Pergunta Inicial: O que é Computação? Computação: Resolução de um problema através de

Motivação

Por que uma perspectiva teórica?

Edsger H. Dijkstra

“Ciência da Computação está tão relacionada aos computadoresquanto a Astronomia aos telescópios, Biologia aos microscópios, ouQuímica aos tubos de ensaio. A Ciência não estuda ferramentas.Ela estuda como nós as utilizamos, e o que descobrimos com elas.”

Analogia: Música Clássica

Propaganda: Orquestra de Câmara de Zurique [8]

Elloá B. Guedes (IQuanta) Computação 22 de setembro de 2008 4 / 30

Page 5: Computação - Sob uma perspectiva teórica - UAF UFCGromulo/seminarios/elloa.pdf · Pergunta Inicial: O que é Computação? Computação: Resolução de um problema através de

Contextualização Histórica

“Problemas do Século”

1900: David Hilbert propõe 23 problemas matemáticos, os quaisconsidera “os problemas do século”.

Os problemas propostos abordavam vários assuntos, comdestaque para problemas matemáticos.

Ainda hoje, 8 deles estão sem resposta.

Elloá B. Guedes (IQuanta) Computação 22 de setembro de 2008 5 / 30

Page 6: Computação - Sob uma perspectiva teórica - UAF UFCGromulo/seminarios/elloa.pdf · Pergunta Inicial: O que é Computação? Computação: Resolução de um problema através de

Contextualização Histórica

10o Problema de Hilbert

Determinar a solubilidade das equações diofantinas

Dada uma equação diofantina com qualquer números de coeficientesinteiros, determinar um processo de acordo com o qual possa ser de-terminado um conjunto finito de operações que mostre que a equaçãoé solucionável com raízes inteiras.

Elloá B. Guedes (IQuanta) Computação 22 de setembro de 2008 6 / 30

Page 7: Computação - Sob uma perspectiva teórica - UAF UFCGromulo/seminarios/elloa.pdf · Pergunta Inicial: O que é Computação? Computação: Resolução de um problema através de

Contextualização Histórica

10o Problema de Hilbert

Remete a uma pergunta anterior:

“Como se caracteriza este método sistemático?”

Ou seja, como não existia uma definição completa o bastantepara entender este “método sistemático”, a resolução doproblema só poderia aparecer depois que este conceito essencialfosse fundamentado [5].

Resolvido em 1970 por Yuri Matiyasevich: Este métodosistemático não existe [3].

Elloá B. Guedes (IQuanta) Computação 22 de setembro de 2008 7 / 30

Page 8: Computação - Sob uma perspectiva teórica - UAF UFCGromulo/seminarios/elloa.pdf · Pergunta Inicial: O que é Computação? Computação: Resolução de um problema através de

Máquina de Turing

Caracterizando o “Método Sistemático”

1936: Alan Turing, matemático inglês propõe uma caracterizaçãopara este método sistemático [7].Segundo Turing, o método sistemático pode ser descrito daseguinte forma:

Pode, na prática ou em princípio, ser executado por uma pessoacom lápis e papel;Pode ser dado à uma pessoa na forma de um número finito deinstruções;Não demanda insights ou ingenuidade da parte de quem o estáexecutando;Vai funcionar se for executado sem erros;Produz a saída deseja em um número finito de passos.

Definição bastante abstrata – Sujeita à diversas interpretações;

Elloá B. Guedes (IQuanta) Computação 22 de setembro de 2008 8 / 30

Page 9: Computação - Sob uma perspectiva teórica - UAF UFCGromulo/seminarios/elloa.pdf · Pergunta Inicial: O que é Computação? Computação: Resolução de um problema através de

Máquina de Turing

“Método Sistemático” através de uma “Máquina”

Elementos desta Máquina:Uma fita que é dividida em células adjacentes;Um alfabeto de caracteres que serão escritos/lidos da fita;Um cabeçote que pode ler, escrever na fita e se movimentar, umacélula por vez, tanto para a esquerda quanto para a direita;Uma tabela denominada função de transição que, dado o estadoatual e o símbolo que é lido pelo cabeçote permitem que amáquina faça:

1 Escreva ou apague um símbolo2 Mova o cabeçote em uma célula (’L’ para esquerda e ’R’ para direita)3 Assuma um novo estado

Um registrador do estado atual, que armazena o estado damáquina que foi descrito pela função de transição

A Máquina descrita é denominada “Máquina de Turing”.

Elloá B. Guedes (IQuanta) Computação 22 de setembro de 2008 9 / 30

Page 10: Computação - Sob uma perspectiva teórica - UAF UFCGromulo/seminarios/elloa.pdf · Pergunta Inicial: O que é Computação? Computação: Resolução de um problema através de

Máquina de Turing

Máquina de Turing

Aceitação

RejeiçãoQa

1 1 ...... 0 0

Figura: Representação de uma Máquina de Turing a partir da sua descriçãoinformal.

Elloá B. Guedes (IQuanta) Computação 22 de setembro de 2008 10 / 30

Page 11: Computação - Sob uma perspectiva teórica - UAF UFCGromulo/seminarios/elloa.pdf · Pergunta Inicial: O que é Computação? Computação: Resolução de um problema através de

Máquina de Turing

Definição Formal

A Máquina de Turing (MT) possui uma definição formal:

Uma Máquina de Turing é uma 7-tupla〈Q,Σ,Γ, δ,q0,qaceita,qrejeita〉, onde Q, Σ e Γ sãoconjuntos finitos e:

1 Q é o conjunto de estados2 Σ é alfabeto da entrada, não contendo o caractere

branco �3 Γ é o alfabeto da fita, onde � ∈ Γ e Σ ⊆ Γ4 δ : Q × Γ → Q × Γ × {L, R} é a função de transição5 q0 ∈ Q é o estado inicial6 qaceita ∈ Q é o estado de aceitação7 qrejeita ∈ Q é o estado de rejeição, onde qrejeita �= qaceita

Alonzo Church fez uma definição equivalente através doCálculo-λ.

Elloá B. Guedes (IQuanta) Computação 22 de setembro de 2008 11 / 30

Page 12: Computação - Sob uma perspectiva teórica - UAF UFCGromulo/seminarios/elloa.pdf · Pergunta Inicial: O que é Computação? Computação: Resolução de um problema através de

Computação

Pergunta Inicial: O que é Computação?

Computação: Resolução de um problema através de umaMáquina de Turing;

“Método sistemático” equivale a um Algoritmo

Em linhas gerais:

Algoritmo é a especificação de uma seqüência ordenadade passos que deve ser seguida para a solução de umproblema ou para a realização de uma tarefa, garantindoa sua repetibilidade.

Equivalência entre Máquina de Turing e Algoritmo.

Elloá B. Guedes (IQuanta) Computação 22 de setembro de 2008 12 / 30

Page 13: Computação - Sob uma perspectiva teórica - UAF UFCGromulo/seminarios/elloa.pdf · Pergunta Inicial: O que é Computação? Computação: Resolução de um problema através de

Computação

Ainda sobre Máquina de Turing

São dispositivos extremamente básicos que manipulam símbolos;

Apesar desta aparente simplicidade, podem ser adaptadas parasimular a lógica de qualquer computador que já tenha sidoconstruído [2].

Elloá B. Guedes (IQuanta) Computação 22 de setembro de 2008 13 / 30

Page 14: Computação - Sob uma perspectiva teórica - UAF UFCGromulo/seminarios/elloa.pdf · Pergunta Inicial: O que é Computação? Computação: Resolução de um problema através de

Computação

Figura: Colossus: Primeiro computador baseado em uma Máquina de Turing.

Vídeo

Novo Comercial do iPod Touch

Elloá B. Guedes (IQuanta) Computação 22 de setembro de 2008 14 / 30

Page 15: Computação - Sob uma perspectiva teórica - UAF UFCGromulo/seminarios/elloa.pdf · Pergunta Inicial: O que é Computação? Computação: Resolução de um problema através de

P = NP?

Objetos de Estudo

O modelo de Computação já está definido: Máquina de Turing;

Os problemas passam a ser objetos de estudo!Um problema possui:

Uma descrição genérica de todos os seus parâmetros;Especificação das propriedades que a resposta ou solução devesatisfazer [6].

Três tipos de problema:Otimização;Localização;Decisão.

Elloá B. Guedes (IQuanta) Computação 22 de setembro de 2008 15 / 30

Page 16: Computação - Sob uma perspectiva teórica - UAF UFCGromulo/seminarios/elloa.pdf · Pergunta Inicial: O que é Computação? Computação: Resolução de um problema através de

P = NP?

Problemas de Decisão

São os problemas de interesse;

Problemas de Decisão possuem como saída valores binários, porexemplo, “Yes” ou “No”;

Problemas de Otimização e Localização podem ser escritos comoproblemas de Decisao;

A teoria torna-se mais simples e elegante, facilitando a suageneralização para situações mais complexas;

Historicamente, o estudo da complexidade computacional surgiudo estudo de problemas de decisão.

Elloá B. Guedes (IQuanta) Computação 22 de setembro de 2008 16 / 30

Page 17: Computação - Sob uma perspectiva teórica - UAF UFCGromulo/seminarios/elloa.pdf · Pergunta Inicial: O que é Computação? Computação: Resolução de um problema através de

P = NP?

Classes de Complexidade

Agrupar problemas em classes, de acordo com a “quantidade” derecursos que eles consomem em uma computação;Recursos: Tempo ou Espaço

Tempo: Quantidade de passos em uma Máquina de Turing;Espaço: O quanto de memória necessita (células na fita).

A métrica de tempo é a mais utilizada [4].

Elloá B. Guedes (IQuanta) Computação 22 de setembro de 2008 17 / 30

Page 18: Computação - Sob uma perspectiva teórica - UAF UFCGromulo/seminarios/elloa.pdf · Pergunta Inicial: O que é Computação? Computação: Resolução de um problema através de

P = NP?

Classe P

Existem problemas que possuem tempo polinomial: Significa queexiste uma Máquina de Turing que resolve o problema em umaquantidade polinomial de passos em relação ao tamanho daentrada;

Exemplo: Determinar a soma de um conjunto de números.

[2,3,5,6,9,10,11,12,200,999,−3] = 1254

Custo: n, em que n é o tamanho da entrada. Por exemplo, parauma lista com 200 números e considerando a duração de cadapasso computacional de 1s, a computação duraria 200s;

Problemas que pertencem à Classe P são denominados“tratáveis”.

Elloá B. Guedes (IQuanta) Computação 22 de setembro de 2008 18 / 30

Page 19: Computação - Sob uma perspectiva teórica - UAF UFCGromulo/seminarios/elloa.pdf · Pergunta Inicial: O que é Computação? Computação: Resolução de um problema através de

P = NP?

Classe NP

Existe problemas que não se conhece uma solução de tempopolinomial;Exemplo: Problema do Caixeiro Viajante

Dada uma quantidade de cidades e o custo de viajar entre duascidades, qual é o menor custo de visitar todas as cidadesexatamente uma vez e retornar ao ponto de partida?

Figura: Uma Instância do Problema do Caixeiro Viajante

Custo exponencial: 2n: No caso de 200 cidades, por exemplo, acomputação duraria2200s ∼= 1,6069380442589902755419620923412 · 1060s.

Elloá B. Guedes (IQuanta) Computação 22 de setembro de 2008 19 / 30

Page 20: Computação - Sob uma perspectiva teórica - UAF UFCGromulo/seminarios/elloa.pdf · Pergunta Inicial: O que é Computação? Computação: Resolução de um problema através de

P = NP?

Qual a relação das classes P e NP?

Existe um algoritmo de tempo polinomial para problemasNP-Completos?

. . . ou é impossível resolver um problema NP-Completo em tempopolinomial?

Limitação Computacional ou Física?

Esta resposta vale 1 milhão de dólares! (Claymath Institute)

Elloá B. Guedes (IQuanta) Computação 22 de setembro de 2008 20 / 30

Page 21: Computação - Sob uma perspectiva teórica - UAF UFCGromulo/seminarios/elloa.pdf · Pergunta Inicial: O que é Computação? Computação: Resolução de um problema através de

P = NP?

Suposições

Figura: Possíveis relacionamentos entre as classes P e NP [1]

Elloá B. Guedes (IQuanta) Computação 22 de setembro de 2008 21 / 30

Page 22: Computação - Sob uma perspectiva teórica - UAF UFCGromulo/seminarios/elloa.pdf · Pergunta Inicial: O que é Computação? Computação: Resolução de um problema através de

P = NP?

Vale saber que...

NP-Completo são os problemas “mais difíceis” da classe NP;

Caso se resolva um problema NP-Completo em tempo polinomial,todos os problemas em NP poderão ser resolvidos em tempopolinomial;

Todo “mal” traz um “bem”: Toda a criptografia atual se sustentadevido à dificuldade em fatorar números primos muito grandes.

Elloá B. Guedes (IQuanta) Computação 22 de setembro de 2008 22 / 30

Page 23: Computação - Sob uma perspectiva teórica - UAF UFCGromulo/seminarios/elloa.pdf · Pergunta Inicial: O que é Computação? Computação: Resolução de um problema através de

Problema da Parada

Máquina de Turing Universal

É uma Máquina de Turing capaz de simular outra Máquina deTuring;Seja o seguinte cenário:

A Máquina de Turing Universal U1 irá simular uma Máquina deTuring T1;A Máquina de Turing Universal U2 irá simular uma Máquina deTuring T2;Após o término da simulação, ambas deverão imprimir “Okay” nafita.T1: while (true) { }T2: write(“Hello world!”)

Elloá B. Guedes (IQuanta) Computação 22 de setembro de 2008 23 / 30

Page 24: Computação - Sob uma perspectiva teórica - UAF UFCGromulo/seminarios/elloa.pdf · Pergunta Inicial: O que é Computação? Computação: Resolução de um problema através de

Problema da Parada

Problema indecidível

A Máquina U2 irá imprimir a mensagem “Okay”;

Mas a máquina U1 irá esperar infinitamente e nunca imprimirá amensagem de término;

Pergunta: Utilizando uma Máquina de Turing Universal, comosaber se a Máquina que esta simula pára ou não?

Turing responde: É um problema indecidível – Não existeMáquina de Turing que resolva este problema [7].

Rumores: Humanos poderiam resolver este problema (?!).

Mais uma pergunta: Será que a Máquina de Turing é um modelorealístico de Computação?

Elloá B. Guedes (IQuanta) Computação 22 de setembro de 2008 24 / 30

Page 25: Computação - Sob uma perspectiva teórica - UAF UFCGromulo/seminarios/elloa.pdf · Pergunta Inicial: O que é Computação? Computação: Resolução de um problema através de

Computação Quântica

Máquina de Turing Quântica

1982: Feynman provou que nenhuma MT clássica poderia simularum certo fenômeno quântico sem descartar a possibilidade dehaver um decaimento exponencial no número de estados, masque um “simulador quântico universal” poderia fazê-lo sem sofrertais conseqûências;1985: David Deutsch propõe um novo modelo de Máquina deTuring: a Máquina de Turing Quântica.

Similar à Máquina de Turing original;Novas características na Computação: Superposição, Paralelismo,Emaranhamento, etc.

Além da Máquina de Turing Quântica existem outras variantes daMáquina de Turing: Não determinística, Probabilística, etc.

Elloá B. Guedes (IQuanta) Computação 22 de setembro de 2008 25 / 30

Page 26: Computação - Sob uma perspectiva teórica - UAF UFCGromulo/seminarios/elloa.pdf · Pergunta Inicial: O que é Computação? Computação: Resolução de um problema através de

Computação Quântica

Conseqüências

Ainda não se sabe se a Máquina proposta por Deutsch é maiseficiente que a Máquina de Turing, mas...+ Alguns algoritmos quânticos são mais eficientes que seusequivalentes clássicos:

Fatoração (Algoritmo de Shor);Busca (Algoritmo de Grover);Transformada Quântica de Fourier, etc.

- Problemas persistem: Problema da Parada;

Será que a Máquina de Turing Quântica é, de fato, um modelorealístico de Computação?

Elloá B. Guedes (IQuanta) Computação 22 de setembro de 2008 26 / 30

Page 27: Computação - Sob uma perspectiva teórica - UAF UFCGromulo/seminarios/elloa.pdf · Pergunta Inicial: O que é Computação? Computação: Resolução de um problema através de

Considerações Finais

Mais perguntas que respostas!

Visão bastante superficial: Os assuntos de computabilidade ecomplexidade são bastante extensos!

Espero ter acrescentado um novo conhecimento a todos vocês!

Problemas em aberto: é necessário esforço!

Será que são questões apenas computacionais?

Professor Suassuna: Deu pra entender o que é um algoritmo?

Elloá B. Guedes (IQuanta) Computação 22 de setembro de 2008 27 / 30

Page 28: Computação - Sob uma perspectiva teórica - UAF UFCGromulo/seminarios/elloa.pdf · Pergunta Inicial: O que é Computação? Computação: Resolução de um problema através de

Dúvidas

Obrigada!

Elloá B. [email protected]

http://elloaguedes.googlepages.com

Elloá B. Guedes (IQuanta) Computação 22 de setembro de 2008 28 / 30

Page 29: Computação - Sob uma perspectiva teórica - UAF UFCGromulo/seminarios/elloa.pdf · Pergunta Inicial: O que é Computação? Computação: Resolução de um problema através de

Dúvidas

Thomas H. Cormen, Charles E. Leiserson, Ronald L. Rivest, andClifford Stein.Algoritmos - Teoria e Prática.Elsevier, 2002.

John E. Hopcroft, Rajeev Motwani, and Jeffrey D. Ullman.Introduction to Automata Theory, Languages, and Computation.Pearson Education, 2001.

Yuri Matiyasevich.Hilbert’s 10th Problem.MIT Press, Cambridge, Massachusetts, 1993.

Christos H. Papadimitriou.Computational Complexity.Addison Wesley Publishing Company, 1994.

Elloá B. Guedes (IQuanta) Computação 22 de setembro de 2008 29 / 30

Page 30: Computação - Sob uma perspectiva teórica - UAF UFCGromulo/seminarios/elloa.pdf · Pergunta Inicial: O que é Computação? Computação: Resolução de um problema através de

Dúvidas

Michael Sipser.Introduction to the Theory of Computation.PWS Publishing Company, 1996.

Laira Vieira Toscani and Paulo A. S. Veloso.Complexidade de Algoritmos.Sagra-Luzzato, 2001.

Alan Turing.On computable numbers, with an application to theentscheidungsproblem.Proceedings of the London Mathematical Society, Series 2,42:230–265, 1936.

Zurich Chamber Orchestra.Comercial televisivo, 2008.Disponível em http://www.zko.ch.

Elloá B. Guedes (IQuanta) Computação 22 de setembro de 2008 30 / 30