teoria da computação
DESCRIPTION
Alguns dos vários temas existentes na Teoria da Computação (trabalho universitário)TRANSCRIPT
Teoria da Computação
Autor: Alefe
Sumário
● Introdução a Teoria da Computação● Tese de Church● Decidibilidade● Computabilidade● Conclusão● Referencias
Introdução a Teoria da Computação
Introdução a Teoria da Computação
● Inúmeras categorias como:➢ Algoritmos➢ Autômatos ➢ Complexidade➢ Linguagens Formais
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
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
Tese de Church
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.
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)”
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.
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.
Decidibilidade
Decidibilidade
● O termo decidibilidade refere-se ao estudo das linguagens formais, com vistas à determinação das classes a que estas pertencem.
Decidibilidade
● Um problema de decisão é um problema cuja formulação conduz a apenas duas respostas: SIM ou NÃ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.
Decidibilidade
Recursividade
● Uma das maneiras de dizer que uma linguagem L não é recursiva é dizer que o problema "x Є L ?" não é decidível.
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.
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
Conjunto Não enumeravel
● O maior exemplo de conjunto não enumeráveis é o conjunto de números reais
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.
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.
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.
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.
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
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
Decidibilidade
Computabilidade
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.
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.
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:
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.
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.
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.
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".
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.
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.
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.
Referencias
● DIVERIO, Tiarajú A.; MENEZES, Paulo Blauth. Teoria da computação: máquinas universais e computabilidade.