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

Post on 21-Apr-2015

142 views 7 download

Transcript of 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