teoria da computação

38
Teoria da Computação Autor: Alefe

Upload: alefe-variani

Post on 21-Jun-2015

227 views

Category:

Education


4 download

DESCRIPTION

Alguns dos vários temas existentes na Teoria da Computação (trabalho universitário)

TRANSCRIPT

Page 1: Teoria da Computação

Teoria da Computação

Autor: Alefe

Page 2: Teoria da Computação

Sumário

● Introdução a Teoria da Computação● Tese de Church● Decidibilidade● Computabilidade● Conclusão● Referencias

Page 3: Teoria da Computação

Introdução a Teoria da Computação

Page 4: Teoria da Computação

Introdução a Teoria da Computação

● Inúmeras categorias como:➢ Algoritmos➢ Autômatos ➢ Complexidade➢ Linguagens Formais

Page 5: Teoria da Computação

Introdução a Teoria da Computação

● Seu conceito teve início nos primeiros anos do século XX

● Busca determinar quais problemas podem ser computados em um dado modelo de computação

Page 6: Teoria da Computação

Introdução a Teoria da Computação

● Naquela época não existia um método simples de resolver um problema, então era necessário um método forma para a computação

Page 7: Teoria da Computação

Tese de Church

Page 8: Teoria da Computação

Tese de Church

Historia● A tese leva o nome dos matemáticos Alonzo Church e Alan Turing.● A tese teve inicio em 1936 depois de um artigo publicado por Alan

Turing, mostrando que o problema “Entscheidungsproblem” não havia solução, a partir dai Alonzo Church mostrou que existia uma solução usando noções de funções recursivas e definidas. Dando inicio a Tese de Church.

Page 9: Teoria da Computação

Tese de Church

Conceito● afirma que qualquer função efetivamente computável pode ser

computável por uma maquina de turing apropriadamente definida, está intimamente ligada á noção de “dedução em um sistema formal (simbólico)”

Page 10: Teoria da Computação

Tese de Church

● É uma hipótese sobre artefatos mecânicos de cálculo, como computadores, e sobre que tipo de algoritmos eles podem executar.Geralmente assume-se que um algoritmo deve satisfazer os seguintes requisitos:

● O algoritmo consiste de um conjunto finito de instruções simples e precisas, que são descritas com um número finito de símbolos.

Page 11: Teoria da Computação

Tese de Church

● O algoritmo sempre produz resultado em um número finito depassos.

● O algoritmo pode ser executado por um homem com apenas papel e lápis. A execução do algoritmo não requer inteligência do ser humano além do necessário para entender e executar as instruções.

● Um exemplo de tal método é o algoritmo de Euclides para a determinação do máximo divisor comum de dois números naturais.

Page 12: Teoria da Computação

Decidibilidade

Page 13: Teoria da Computação

Decidibilidade

● O termo decidibilidade refere-se ao estudo das linguagens formais, com vistas à determinação das classes a que estas pertencem.

Page 14: Teoria da Computação

Decidibilidade

● Um problema de decisão é um problema cuja formulação conduz a apenas duas respostas: SIM ou NÃO.

Page 15: Teoria da Computação

Decidibilidade

● Para qualquer conjunto X não recursivo, a pergunta "x Є X?" não admite solução através de um algoritmo que aceite x como entrada e responda SIM ou NÃO corretamente à pergunta.

Page 16: Teoria da Computação

Decidibilidade

Recursividade

● Uma das maneiras de dizer que uma linguagem L não é recursiva é dizer que o problema "x Є L ?" não é decidível.

Page 17: Teoria da Computação

Decidibilidade

Conjunto Enumerável e não Enumerável

● A diferença entre um conjunto não recursivamente enumerável, e um conjunto recursivamente enumerável que não é recursivo pode ser considerada pequena.

Page 18: Teoria da Computação

Conjunto Enumerável

Definição: Um conjunto é dito enumerável se um dos critérios abaixo for válido: (a)K é finito; (b) Existe uma bijeção. F: NK

Page 19: Teoria da Computação

Conjunto Não enumeravel

● O maior exemplo de conjunto não enumeráveis é o conjunto de números reais

Page 20: Teoria da Computação

Decidibilidade

Problema indecidível

● Um problema indecidível é um conjunto de questões que pode ser reduzido por codificação ao problema da pertinência em uma linguagem não recursiva, e, assim, não pode ser respondido por uma mT que sempre para; se um problema pode ser reduzido por codificação ao problema de pertinência em uma linguagem recursiva, dizemos que é decidível.

Page 21: Teoria da Computação

Decidibilidade

Problema indecidível

● Um ponto importante é que um problema indecidível sempre envolve uma família de questões, ou questões em que aparece um parâmetro. O problema P(i) - "Mi aceita xi?" pode ser indecidível, mas o problema P(23) - "M23 aceita x23?" é decidível.

Page 22: Teoria da Computação

Decidibilidade

Problema indecidível

● Certamente uma das duas maquinas resolve corretamente o problema. De fato, o que é indecidível em "Mi aceita xi ?" é exatamente qual das duas respostas corresponde a um valor de i arbitrário, ou seja, qual das duas máquinas consideradas deve ser usada em cada caso.

Page 23: Teoria da Computação

Decidibilidade

Redução

● Uma das técnicas mais comuns de estabelecer se um problema é decidível ou indecidível é através de redução desse problema a outro problema cuja resposta é conhecida.

Page 24: Teoria da Computação

Decidibilidade

Redução

● Dizemos que P1 se reduz a P2 se a resposta a qualquer consulta a P1 pode ser deduzida da resposta a uma consulta apropriada a P2.

● Se P1 se reduz a P2, podemos dizer que, de certa forma, P2 é mais geral que P1

Page 25: Teoria da Computação

Decidibilidade

Redução

● Exemplo: Supondo que P2 é indecidível, e que P2 se reduz a P1, podemos concluir que P1 também é indecidível; por outro lado, se P1 é decidível, e P2 se reduz a P1, podemos concluir que P2 também é decidível

Page 26: Teoria da Computação

Decidibilidade

Page 27: Teoria da Computação

Computabilidade

Page 28: Teoria da Computação

Computabilidade

Definição ● Computabilidade é uma propriedade fundamental das máquinas

ditas computáveis.● Computadores possuem capacidade de receber como entrada de

dados uma sentença escrito em uma linguagem artificial computável e executar tarefas bem definidas, baseadas na interpretação da sentença recebida. O ato de interpretação desta sentença corresponde à execução do programa.

Page 29: Teoria da Computação

Computabilidade

Execução

● Durante sua execução o programa recebe entradas de dados informadas pelo usuário e

produz saídas de dados que são captadas pelo usuário.● A entrada de dados efetuada pelo usuário do programa também é formada por sentenças

em uma linguagem, visto que o conjunto de símbolos que o usuário digita também é composto conforme um alfabeto e regras de formação bem definidas. Sendo assim, a entrada de dados do programa pertence à linguagem artificial definida pelo programador.

Page 30: Teoria da Computação

Computabilidade

Modelos Formais

● Um modelo da computação é uma descrição formal de um tipo particular de processo computacional. A descrição normalmente toma forma de uma máquina abstrata cujo objetivo é realizar uma dada tarefa. Modelos gerais da computação equivalentes à máquina de Turing incluem:

Page 31: Teoria da Computação

Computabilidade

Calculo Lambda

● Uma computação consiste de uma expressão lambda inicial (ou duas, se deseja-se separar a função e suas entradas) mais uma sequência finita de termos lambda, cada um deduzido de termo precedente por uma aplicação de redução Beta.

Page 32: Teoria da Computação

Computabilidade

Lógica Combinatória

● É um conceito que possui muitas similaridades com cálculo lambda, mas existem diferenças importantes. Lógica combinatória foi desenvolvida com grandes ambições: entender a natureza dos paradoxos, fazer as bases da matemática mais econômicas e eliminar a noção de variáveis.

Page 33: Teoria da Computação

Computabilidade

Funções μ-recursivas

● Uma computação consiste em funções μ-recursiva, i.e. a sequência que a define, quaisquer valores de entrada e uma sequência de funções recursivas aparecendo na sequência que a define com entradas e saídas.

Page 34: Teoria da Computação

Computabilidade

Autômato finito determinístico (AFD)● Também é chamada de máquina de estados finita. Todos os

instrumentos computacionais existentes nos dias de hoje podem ser modelados como uma máquina de estados finita, visto que todos os computadores reais operam com recursos finitos. Tal máquina tem um conjunto de estados, e um conjunto de transições de estados, que são afetados pela entrada. Alguns estados são definidos como "estados aceitáveis".

Page 35: Teoria da Computação

Computabilidade

Autômato finito não-determinístico (AFN)● É um outro modelo simples de computação, apesar de sua

sequência de processos não ser univocamente determinada. Pode ser interpretada como tomando várias soluções de computação ao mesmo tempo através de estados finitos. Apesar disso, é demonstrável que qualquer AFN pode ser reduzido a um AFD equivalente.

Page 36: Teoria da Computação

Computabilidade

Autômato com pilha● Similar ao AFD, exceto que há uma pilha de execução que pode ter

tamanho arbitrário indefinido. As transições de estado adicionalmente especificam se adiciona um símbolo à pilha ou removem-no. É muito mais poderoso que o AFD, visto que possui uma memória infinita em forma de pilha, apesar de apenas o elemento do topo ser acessível a qualquer momento.

Page 37: Teoria da Computação

Conclusão

● A releção é que computabilidade, tese de Church e Maquina de Turing estão ligadas umas as outras, pois a maquina de turing e tese de church são formulas, equações e teses que ajudam programadores a solucionar problemas encontrados que podem ser computáveis.

Page 38: Teoria da Computação

Referencias

● DIVERIO, Tiarajú A.; MENEZES, Paulo Blauth. Teoria da computação: máquinas universais e computabilidade.