390 likes | 487 Views
Inteligência Artificial Unidade - 2. Conteúdo. Teoria da Computabilidade , Máquina de Turing,. Teoria da Computabilidade. Introdução a conceitos fundamentais da computação, estudo de funções computáveis e estabelecimento da existência das funções não computáveis.
E N D
Inteligência Artificial Unidade - 2
Conteúdo • Teoria da Computabilidade, • Máquina de Turing,
Teoria da Computabilidade Introdução a conceitos fundamentais da computação, estudo de funções computáveis e estabelecimento da existência das funções não computáveis.
Como qualquer outra ferramenta, computadores tem capacidades e limitações que devem ser entendidas para seu bom uso.
Teoria da Computação • Existem diferentes computadores, com diferentes arquiteturas, e existem diversos tipos de linguagens de programação. • Programas e máquinas são tratados como entidades distintas, mas complementares e necessárias para a definição de computação.
O conceito de programa • Um programa pode ser descrito como um conjunto estruturado de instruções que capacitam uma máquina aplicar sucessivamente certas operações básicas em uma parte determinada dos dados iniciais fornecidos, até que esses dados tenham se transformado numa forma desejável.
O conceito de máquina • Interpreta os programas de acordo com os dados fornecidos. • O objetivo de uma máquina é suprir todas as informações necessárias para que a computação de um programa possa ser descrita.
Sistemas formais • Sistema abstrato apresentado em modelo matemático. • Um sistema formal pode ser visto como uma espécie de "jogo" rigorosamente definido, que especifica regras para manipulação de símbolos.
três aspectos desse 'jogo' devem ser estabelecidos • a natureza dos símbolos, • a descrição da situação inicial do "jogo”, • uma lista de quais movimentos são permitidos a uma dada posição.
Alan Turing • Uniu matemática e lógica na forma de uma máquina.
Máquina de Turing • Proposta em 1936 por Alan Turing. • Modelo mais utilizado como formalização de algoritmo. • É um mecanismo simples que formaliza a idéia de uma pessoa que realiza cálculos usando um instrumento de escrita e um apagador.
Máquina de Turing • Modelo formal é baseado em: • uma fita (usada para entrada, saída e rascunho), • uma unidade de controle, • um programa. • Na realidade, se trata de um programa para uma máquina universal.
Noção intuitiva: • Uma pessoa, equipada com um instrumento de escrita e um apagador, realiza cálculos em uma folha de papel organizada em quadrados. • Inicialmente, a folha de papel contém somente os dados iniciais do problema.
Noção como máquina: • Fita: • Usada simultaneamente como dispositivo de entrada, de saída e de memória de trabalho. • É finita à esquerda e infinita (tão grande quanto necessário) à direita, sendo dividida em células, cada uma das quais armazenando um símbolo.
Noção intuitiva: • O trabalho da pessoa pode ser resumido em seqüências de operações simples como segue: • ler um símbolo de um quadrado; • alterar um símbolo em um quadrado; • mover os olhos para outro quadrado; • quando é encontrada alguma representação satisfatória para a resposta desejada, a pessoa termina seus cálculos. • Comportamento da pessoa a cada momento é determinado pelo seu estado presente e pelo símbolo para o qual sua atenção está voltada.
Unidade de Controle: • Possui uma unidade de leitura e gravação (cabeça da fita), a qual acessa uma célula da fita de cada vez. • A cabeça da fita lê o símbolo de uma célula de cada vez e grava um novo símbolo. Após a leitura/gravação (a gravação é realizada na mesma célula de leitura), a cabeça move-se uma célula para a direita ou esquerda.
Programa: • O programa comanda as leituras e gravações, o sentido de movimento da cabeça e define o estado da máquina. • Programa é uma função que, dependendo do estado corrente da máquina e do símbolo lido, determina o símbolo a ser gravado, o sentido do movimento da cabeça e o novo estado.
Notação Esquemática de uma Máquina de Turing (MT) Cabeça de leitura-escrita Existe um b aqui! mov: esq/dir a Fita infinita
A máquina continua sua computação até decidir produzir uma saída. • As saídas aceita e rejeita são obtidas quando ela entra nos estados de aceitação e rejeição, respectivamente. • Se ela não entra nestes dois estados roda para sempre.
Definição Formal de uma MT 1. Q – um conjunto finito de estados.
Definição Formal de uma MT 2. - o alfabeto de entrada, um conjuntofinito não contendo o símbolo branco. b a c d
Definição Formal de uma MT 3. - o alfabeto da fita, em que e _. B A b a C c d
Definição Formal de uma MT 4. :QQ{L,R} – a função de transição. q0 q0 a
Definição Formal de uma MT 5. q0 – o estado inicial
Definição Formal de uma MT 6. qacceptQ - estado de aceitação
Definição Formal de uma MT 7. qrejectQ – estado de rejeição qrejectqaccept.
Definição Formal de uma MT Sumário 1. Q - conjunto finito de estados. 2. - o alfabeto de entrada. 3. - o alfabeto da fita 4. :QQ{L,R} - a função de transição. 5. q0 - o estado inicial. 6. qacceptQ - estado de aceitação. 7. qrejectQ - estado de rejeição .
ComputaçõesA Configuração Inicial Estado inicial cabeça: na célula mais à esquerda q0 A entrada: começa a partir da esquerda
ComputaçõesExemplo (q0,a)=(q0,b,R) q0 q0 b Nota: a cabeça não pode se mover para à esquerda desta célula!
Computações Configuração de Aceitação Se a computação sempre entra no estado de aceitação, ela pára. qaccept
Computações Configuração de Rejeição Se a computação sempre entra no estado de rejeição, ela também pára. qreject
A Linguagem que uma MT Aceita • Uma máquina de Turing aceita sua entrada, se ela alcança uma configuração de aceitação. • O conjunto de entradas que ela aceita é chamado sua linguagem L(M). Partições do conjunto de palavras sobre * w L(M) Aceita(M) Loop(M) Rejeita(M) w L(M) w L(M)
Exemplos: Pertence à L: aaabbbccc Não Pertence à L: aaabbcccc Uma MT para uma Linguagem Simples L = { anbncn | n0 }
aa, R bb, R YY, R ZZ, R q1 bY,R aX,R q2 q0 cZ,L XX, R q3 bb, L aa, LYY, L YY, R qac q4 ZZ, L __, R YY, R ZZ, R A Função de Transição aa, R bb, R YY, R ZZ, R q1 transições não especificadasaqui levam ao qreject bY,R q2 aX,R q0 cZ,L XX, R __, R q3 bb, L aa, LYY, L YY, R qac q4 ZZ, L __, R YY, R ZZ, R
aa, R YY, R Demonstração bb, R ZZ, R q1 q1 q1 bY,R aX,R q2 q2 q2 q0 q0 q0 q0 q0 cZ,L XX, R __, R ZZ, L bb, L YY, L aa, L q3 q3 q3 YY, R qac qac __, R q4 q4 q4 YY, R ZZ, R . . . X a Y b Z c _ _
Exemplo • 1 I 2 - Estado 1: se há um I no quadrado ativo, substitua-o por - e vá para estado 2; • 2 - 3 > Estado 2: se há um - no quadrado ativo, vá para estado 3 e ande um quadrado a direita; • 3 I 3 > Estado 3: se há um I no quadrado ativo, vá para estado 3 e ande um quadrado a direita; • 3 - 4 > Estado 3: se há um - no quadrado ativo, vá para estado 4 e ande um quadrado a direita; • 4 I 4 > Estado 4: se há um I no quadrado ativo, vá para estado 4 e ande um quadrado a direita;
Exemplo • 4 - 5 I Estado 4: se há um - no quadrado ativo, substitua-o por I vá para estado 5; • 5 I 5 > Estado 5: se há um I no quadrado ativo, vá para estado 5 e ande um quadrado a direita; • 5 - 6 I Estado 5: se há um - no quadrado ativo, substitua-o por I vá para estado 6; • 6 I 6 < Estado 6: se há um I no quadrado ativo, vá para estado 6 e ande um quadrado a esquerda; • 6 - 7 < Estado 6: se há um - no quadrado ativo, vá para estado 7 e ande um quadrado a esquerda;
Exemplo • 7 I 8 < Estado 7: se há um I no quadrado ativo, vá para estado 8 e ande um quadrado a esquerda; • 8 I 8 < Estado 8: se há um I no quadrado ativo, vá para estado 8 e ande um quadrado a esquerda; • 8 - 1 > Estado 8: se há um - no quadrado ativo, vá para estado 1 e ande um quadrado a direita;
Exemplo O jogo neste caso é duplicar uma seqüência de Is que estejam na fita. Se a fita contiver I I I I, no final conterá I I I I I I I I. Note que se houver um branco no quadrado ativo quando os estados forem 1 ou 7, ou se há um I no quadrado ativo quando o estado da máquina é 2, ela pára, pois não saberia o que fazer.