Download - Inteligência Artificial Unidade - 2. Teoria da Computabilidade, Máquina de Turing, Conteúdo
Inteligência ArtificialUnidade - 2
• Teoria da Computabilidade,• Máquina de Turing,
Conteúdo
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.
Teoria da Computabilidade
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.
a b b c a ß ß ...
c o n tro l e
f i ta
c a b e ç ad a f i ta u n i d a d e d e
c o n tro l e
ma rc a d o r d ei n íc i o d e f i ta b ra n c oe n tra d a
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
Fita infinita
mov: esq/dir
Existe um b aqui!
a
• 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 conjunto finito não contendo o símbolo branco.
Definição Formal de uma MT
3. - o alfabeto da fita, em que e _.
Definição Formal de uma MT
4. :QQ{L,R} – a função de transição.
q0
a
q0
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
q0cabeça: na
célula mais à esquerda
A entrada: começa a partir da esquerda
Estado inicial
ComputaçõesExemplo
q0
(q0,a)=(q0,b,R)
q0
b
Nota: a cabeça não pode se mover para à esquerda desta célula!
Computações Configuração de Aceitação
qaccept
Se a computação sempre entra no estado de aceitação, ela pára.
Computações Configuração de Rejeição
qreject
Se a computação sempre entra no estado de
rejeição, ela também pára.
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).
Aceita(M)
Rejeita(M)Loop(M)
Partições do conjunto de palavras sobre *
w L(M)
w L(M)w L(M)
Uma MT para uma Linguagem Simples
L = { anbncn | n0 }
aaabbbccc
aaabbbccc
Exemplos:
Pertence à L:Não Pertence à L:aaabbccc
caaabbccc
c
A Função de Transição
q0
q3
q2
q1
q4
qa
c
aa, R
cZ,L
bY,R
bb, R
ZZ, L
XX, R
YY, R ZZ, R
__, R
__, R
YY, R
transições não
especificadasaqui levam
ao qreject
aX,R
YY, RZZ, R
bb, L aa, LYY, L
q0
q3
q2
q1
q4
qac
aa, R
cZ,L
bY,R
bb, R
ZZ, L
XX, R
YY, R ZZ, R
__, R
YY, R
aX,R
YY, RZZ, R
bb, L aa, LYY, L
Demonstração
q0
q3
q2
q1
q4
qa
c
aX,R
aa, R YY, R
cZ,L
bY,R
bb, R ZZ, R
ZZ, L bb, L YY, L aa, L
XX, R
YY, R ZZ, R
__, R
__, RYY, R
a b c _ . . .
q0
q3
q0
q1
X
q2
q1
Y Z
q2
q3
q0q0
q4
_
q4
qa
c
• 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.
Exemplo