o computador universal. bibliografia base artigo “turing machine” por james moor em encyclopedia...
TRANSCRIPT
O Computador Universal
Bibliografia Base
• Artigo “Turing Machine” por James Moor em Encyclopedia of Computer Science (4a Edição). Bib. FCT/UNL: QA 76.15 ENC
• Páginas 147-166 do capítulo 7 do livro de Martin Davis "The universal computer". W.W.Norton 2000. Bib. FCT/UNL: QA 76.17 DAV.
Referências
• Outras:– Visual Turing:
http://www.cheran-software.com/vturing/
– Pagina Alan Turing:http://www.turing.org.uk/turing/
A Noção de Computação• Em 1930 um computador era uma pessoa cujo
trabalho era efectuar computações:– Efectuava marcas em folhas de papel.– Mudava constantemente a atenção de folha para folha.
• O matemático Inglês Alan Turing tentou modelar o essencial deste processo de computação por um modelo matemático!
• Criou o modelo que descreve o funcionamento básico de QUALQUER computador!
Um Exemplo
• Queremos converter a sequência de números:
1010010002101021010
• Em:0101101112101020101
• i.e. ou 1 passa a 0, ou vice-versa, ou mantêm-se
Como o fazer?• Máquina de Turing:
– Uma unidade de controlo, que pode estar em um de vários (número finito) estados possíveis.
– Uma fita, organizada em quadrados discretos, cada quadrado pode armazenar um único símbolo de um conjunto de símbolos.
– Uma cabeça de escrita/leitura, que se move na fita e que transmite informação de e para a fita de controlo.
• Artigos: Turing Machine
No exemplo, temos 2 estados...
ou 0 passa a 1 e 1 passa a 0:
10100100021010210100101101112101020101
0:1 ->
1:0 ->
ou os 0 e 1 mantêm-se:
0:1 ->
1:0 -> 1:1 ->
0:0 ->
10100100021010210100101101112101020101
E o 2 altera este comportamento...
0:1 ->
1:0 -> 1:1 ->
0:0 ->2:2 ->
2:2 ->
10100100021010210100101101112101020101
Funcionamento
• Para um dado estado R,– Se a máquina lê um símbolo a.– Então:
• Escreve o símbolo b (Blank).• Opcionalmente move a cabeça uma posição (para a
direita ou para a esquerda).• Muda para o estado S.
Vantagens• São modelos matemáticos:
– Não têm qualquer limitação física (comprimento de fita tão grande quanto o necessário).
• São simples:– Mas qualquer computador pode ser descrito por
uma máquina de Turing!– Qualquer computador pode simular uma
máquina de Turing, desde que tenha memória suficiente.
Podemos Formalizar a Máquina de Turing utilizando tabelas de quíntuplos:
• Mudar do estado R para S, lendo a e escrevendo b, com movimento para a direita:
R a : b -> S
Quintupulos: Formalização
• Mudar do estado R para S, lendo a e escrevendo b, com movimento para a direita:
R a : b -> Sa/b denotam qualquer símbolo válido. Não
está a/a pois podem não ser o mesmo símbolo!
Quintupulos: Formalização
• Mudar do estado R para S, lendo a e escrevendo b, com movimento para a esquerda:
R a : b <- S
Quintupulos: Formalização
• Mudar do estado R para S, lendo a e escrevendo b, sem movimento.
R a : b * S
Church/Turing Thesis
• Alan Turing demonstrou que:– A Máquina de Turing captura a noção de
COMPUTAÇÃO. – Exs: Máquinas para efectuar a representação
binária de e e ...• Criou uma máquina de Turing Universal:
Número de Código duma máquina M Input de M
A Máquina de Turing Universal
• Um número COD codifica uma máquina de Turing específica.
• Uma máquina de Turing Universal recebe esse número e o input DAT.
• Com base no número COD, a máquina de Turing Universal aplica as computações descritas em COD a DAT.
Número de Código duma máquina M Input de M
A Máquina de Turing Universal para compreender os Computadores
• Na máquina de Turing Universal:– COD é o programa– DAT são os dados tratados– A máquina de Turing é o Hardware
• Lições para entender um computador:– Um computador está SEMPRE num dado estado!– Nesse estado altera SEMPRE da mesma forma os dados que
recebe!– APENAS quando muda de estado altera os dados de outra forma
(a do novo estado)!– O computador ESCOLHE quais os dados a processar a seguir
com base nos dados actuais e estado em que está o seu processamento!
Máquina Par ou Impar (Davis pp. 152-154)
Q 0 : => EQ 1 : => OE 0 : => EE 1 : => OO 0 : => EO 1 : => OE : 0 * F
Q 2 : => EQ 3 : => OE 2 : => EE 3 : => OO 2 : => EO 3 : => OE : 1 * F
Q 4 : => EQ 5 : => OE 4 : => EE 5 : => OO 4 : => EO 5 : => O
Q 0 : => EQ 1 : => OE 0 : => EE 1 : => OO 0 : => EO 1 : => OE : 0 * F
Q 6 : => EQ 7 : => OE 6 : => EE 7 : => OO 6 : => EO 7 : => O
Q 8 : => EQ 9 : => OE 8 : => EE 9 : => OO 8 : => EO 9 : => O
Exercícios (1/2)• Para a máquina de Turing Par/Impar (Davis,
pp. 152-154), qual o próximo estado de?
a) Q \|/
__ __ __ 1 2 3 4 5 __ __b) Q
\|/
__ __ __ __ __ __ __ __ 5 __ __
Exercícios (2/2)
• Considere a seguinte máquina de Turing:Q 0 : 1 -> Q Q 1 : 0 -> QQ _ : _ * F
a) Qual o resultado de aplicar esta máquina à fita:
__ __ __ 1 0 0 1 1 __ __