Inteligência Artificial Unidade - 2. Teoria da Computabilidade, Máquina de Turing, Conteúdo.

39
Inteligência Artificial Unidade - 2

Transcript of Inteligência Artificial Unidade - 2. Teoria da Computabilidade, Máquina de Turing, Conteúdo.

Page 1: Inteligência Artificial Unidade - 2. Teoria da Computabilidade, Máquina de Turing, Conteúdo.

Inteligência ArtificialUnidade - 2

Page 2: Inteligência Artificial Unidade - 2. Teoria da Computabilidade, Máquina de Turing, Conteúdo.

• Teoria da Computabilidade,• Máquina de Turing,

Conteúdo

Page 3: Inteligência Artificial Unidade - 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

Page 4: Inteligência Artificial Unidade - 2. Teoria da Computabilidade, Máquina de Turing, Conteúdo.

Como qualquer outra ferramenta, computadores

tem capacidades e limitações que devem ser entendidas para seu bom

uso.

Page 5: Inteligência Artificial Unidade - 2. Teoria da Computabilidade, Máquina de Turing, Conteúdo.

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.

Page 6: Inteligência Artificial Unidade - 2. Teoria da Computabilidade, Máquina de Turing, Conteúdo.

• 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.

Page 7: Inteligência Artificial Unidade - 2. Teoria da Computabilidade, Máquina de Turing, Conteúdo.

• 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.

Page 8: Inteligência Artificial Unidade - 2. Teoria da Computabilidade, Máquina de Turing, Conteúdo.

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.

Page 9: Inteligência Artificial Unidade - 2. Teoria da Computabilidade, Máquina de Turing, Conteúdo.

• 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.

Page 10: Inteligência Artificial Unidade - 2. Teoria da Computabilidade, Máquina de Turing, Conteúdo.

Alan Turing

• Uniu matemática e lógica na forma de uma máquina.

Page 11: Inteligência Artificial Unidade - 2. Teoria da Computabilidade, Máquina de Turing, Conteúdo.

• 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.

Page 12: Inteligência Artificial Unidade - 2. Teoria da Computabilidade, Máquina de Turing, Conteúdo.

• 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.

Page 13: Inteligência Artificial Unidade - 2. Teoria da Computabilidade, Máquina de Turing, Conteúdo.

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.

Page 14: Inteligência Artificial Unidade - 2. Teoria da Computabilidade, Máquina de Turing, Conteúdo.

• 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

Page 15: Inteligência Artificial Unidade - 2. Teoria da Computabilidade, Máquina de Turing, Conteúdo.

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.

Page 16: Inteligência Artificial Unidade - 2. Teoria da Computabilidade, Máquina de Turing, Conteúdo.

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.

Page 17: Inteligência Artificial Unidade - 2. Teoria da Computabilidade, Máquina de Turing, Conteúdo.

–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.

Page 18: Inteligência Artificial Unidade - 2. Teoria da Computabilidade, Máquina de Turing, Conteúdo.

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

Page 19: Inteligência Artificial Unidade - 2. Teoria da Computabilidade, Máquina de Turing, Conteúdo.

• 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.

Page 20: Inteligência Artificial Unidade - 2. Teoria da Computabilidade, Máquina de Turing, Conteúdo.

Definição Formal de uma MT

1. Q – um conjunto finito de estados.

Page 21: Inteligência Artificial Unidade - 2. Teoria da Computabilidade, Máquina de Turing, Conteúdo.

Definição Formal de uma MT

2. - o alfabeto de entrada, um conjunto finito não contendo o símbolo branco.

Page 22: Inteligência Artificial Unidade - 2. Teoria da Computabilidade, Máquina de Turing, Conteúdo.

Definição Formal de uma MT

3. - o alfabeto da fita, em que e _.

Page 23: Inteligência Artificial Unidade - 2. Teoria da Computabilidade, Máquina de Turing, Conteúdo.

Definição Formal de uma MT

4. :QQ{L,R} – a função de transição.

q0

a

q0

Page 24: Inteligência Artificial Unidade - 2. Teoria da Computabilidade, Máquina de Turing, Conteúdo.

Definição Formal de uma MT

5. q0 – o estado inicial

Page 25: Inteligência Artificial Unidade - 2. Teoria da Computabilidade, Máquina de Turing, Conteúdo.

Definição Formal de uma MT

6. qacceptQ - estado de aceitação

Page 26: Inteligência Artificial Unidade - 2. Teoria da Computabilidade, Máquina de Turing, Conteúdo.

Definição Formal de uma MT

7. qrejectQ – estado de rejeição qrejectqaccept.

Page 27: Inteligência Artificial Unidade - 2. Teoria da Computabilidade, Máquina de Turing, Conteúdo.

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 .

Page 28: Inteligência Artificial Unidade - 2. Teoria da Computabilidade, Máquina de Turing, Conteúdo.

ComputaçõesA Configuração Inicial

q0cabeça: na

célula mais à esquerda

A entrada: começa a partir da esquerda

Estado inicial

Page 29: Inteligência Artificial Unidade - 2. Teoria da Computabilidade, Máquina de Turing, Conteúdo.

ComputaçõesExemplo

q0

(q0,a)=(q0,b,R)

q0

b

Nota: a cabeça não pode se mover para à esquerda desta célula!

Page 30: Inteligência Artificial Unidade - 2. Teoria da Computabilidade, Máquina de Turing, Conteúdo.

Computações Configuração de Aceitação

qaccept

Se a computação sempre entra no estado de aceitação, ela pára.

Page 31: Inteligência Artificial Unidade - 2. Teoria da Computabilidade, Máquina de Turing, Conteúdo.

Computações Configuração de Rejeição

qreject

Se a computação sempre entra no estado de

rejeição, ela também pára.

Page 32: Inteligência Artificial Unidade - 2. Teoria da Computabilidade, Máquina de Turing, Conteúdo.

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)

Page 33: Inteligência Artificial Unidade - 2. Teoria da Computabilidade, Máquina de Turing, Conteúdo.

Uma MT para uma Linguagem Simples

L = { anbncn | n0 }

aaabbbccc

aaabbbccc

Exemplos:

Pertence à L:Não Pertence à L:aaabbccc

caaabbccc

c

Page 34: Inteligência Artificial Unidade - 2. Teoria da Computabilidade, Máquina de Turing, Conteúdo.

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

Page 35: Inteligência Artificial Unidade - 2. Teoria da Computabilidade, Máquina de Turing, Conteúdo.

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

Page 36: Inteligência Artificial Unidade - 2. Teoria da Computabilidade, Máquina de Turing, Conteúdo.

• 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

Page 37: Inteligência Artificial Unidade - 2. Teoria da Computabilidade, Máquina de Turing, Conteúdo.

• 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

Page 38: Inteligência Artificial Unidade - 2. Teoria da Computabilidade, Máquina de Turing, Conteúdo.

• 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

Page 39: Inteligência Artificial Unidade - 2. Teoria da Computabilidade, Máquina de Turing, Conteúdo.

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