Ábaco - Universidade Federal Fluminensecbraga/cantodosalunos/abaco.pdf · Abaco (1).pptx Author:...

22
Ábaco Wagner Luiz Oliveira dos Santos William Batista Teixeira Christiano Braga

Transcript of Ábaco - Universidade Federal Fluminensecbraga/cantodosalunos/abaco.pdf · Abaco (1).pptx Author:...

Page 1: Ábaco - Universidade Federal Fluminensecbraga/cantodosalunos/abaco.pdf · Abaco (1).pptx Author: Christiano Braga Created Date: 6/27/2017 3:45:20 PM ...

Ábaco Wagner Luiz Oliveira dos Santos

William Batista Teixeira

Instituto de Computação – UFF Disciplina – Teoria da Computação Prof. – Christiano Braga

1

Page 2: Ábaco - Universidade Federal Fluminensecbraga/cantodosalunos/abaco.pdf · Abaco (1).pptx Author: Christiano Braga Created Date: 6/27/2017 3:45:20 PM ...

Sumário •  Definição

•  Representação por fluxograma

•  Operações com números naturais

•  Simulação de ábaco por MT

•  Simulação de FRP por ábaco

•  Conclusão

2

Page 3: Ábaco - Universidade Federal Fluminensecbraga/cantodosalunos/abaco.pdf · Abaco (1).pptx Author: Christiano Braga Created Date: 6/27/2017 3:45:20 PM ...

Definições •  1936 - Tese de Church: Uma função é computável se e somente

se for computável por uma MT. •  Todas as Funções Recursivas Parciais são computáveis por MTs. •  Limitação da MT: impossibilidade de acesso aleatório aos dados. •  Máquina de Lambek, ou Ábaco:

•  Possui um número ilimitado de registradores (R0, R1, R2,...). •  Cada registrador pode acomodar números (dados) de tamanho

arbitrário. •  É possível acessar diretamente qualquer registrador.

3

Page 4: Ábaco - Universidade Federal Fluminensecbraga/cantodosalunos/abaco.pdf · Abaco (1).pptx Author: Christiano Braga Created Date: 6/27/2017 3:45:20 PM ...

Fluxograma

n+ n- e

Acrescentar um elemento ao

registrador n e sair

Se o registrador n estiver vazio, sair por “e”. Caso contrário,

remover um elemento de n e sair

pelo outro lado

Operações elementares

n- e

Fluxograma

Exemplo: esvaziar um registrador n

0 n

Diagrama de blocos

4

Page 5: Ábaco - Universidade Federal Fluminensecbraga/cantodosalunos/abaco.pdf · Abaco (1).pptx Author: Christiano Braga Created Date: 6/27/2017 3:45:20 PM ...

2 1 0 0 1 2

Adição

m-

n+

p+

p-

m+

e e [m]+[n]->n

Se [p]=0 de início

Fluxograma Diagrama de blocos

Resumo

[m]+[n]->[n] [m]+[p]->[m] 0->p

1

m n p

2 3

5

Page 6: Ábaco - Universidade Federal Fluminensecbraga/cantodosalunos/abaco.pdf · Abaco (1).pptx Author: Christiano Braga Created Date: 6/27/2017 3:45:20 PM ...

Multiplicação

m1-

[m2] + [n] n

e

Fluxograma simplificado

m1- e

m2-

n+

p+

p-

m2+

ee

Fluxograma completo

[m1] . [m2] n

0 m1

se [n] = [p] = 0, de início

Diagrama de blocos

6

Page 7: Ábaco - Universidade Federal Fluminensecbraga/cantodosalunos/abaco.pdf · Abaco (1).pptx Author: Christiano Braga Created Date: 6/27/2017 3:45:20 PM ...

Exponenciação

n+

m1-

Multiplicação cumulativa [m2].[n]->n

[m2]^[m1]->n

5

0

0

e

m2

m1

n

5

2

0

m2

m1

n

7

Page 8: Ábaco - Universidade Federal Fluminensecbraga/cantodosalunos/abaco.pdf · Abaco (1).pptx Author: Christiano Braga Created Date: 6/27/2017 3:45:20 PM ...

Ábaco para MT Convenções: (a) Os argumentos são os números de elementos

existentes nas primeiras “R” caixas e as outras estão vazias.

(b) O valor da função é o número de elementos em uma caixa “n” previamente especificada.

(c) Se a computação nunca para a função é indefinida.

8

Page 9: Ábaco - Universidade Federal Fluminensecbraga/cantodosalunos/abaco.pdf · Abaco (1).pptx Author: Christiano Braga Created Date: 6/27/2017 3:45:20 PM ...

Correspondência

1 1 1 1 1 1 1

n+ n- e

Leitura Escrita Esquerda Direita

Operações elementares

R1 R2 R3 R4

9

Page 10: Ábaco - Universidade Federal Fluminensecbraga/cantodosalunos/abaco.pdf · Abaco (1).pptx Author: Christiano Braga Created Date: 6/27/2017 3:45:20 PM ...

Primeiro passo n+

1a 1b 2a 2b

B:1 1:R B:1 1:R

1:R 1:R B:R B:R

1:R

sb sa x

B:1 1:R

B:1 1:R

B:1

B:R

1:B

1:R B:L

1:L

B:L B:R B:R

1:L

Encontre o branco à direita do s-ésimo bloco de 1s

Escreva 1, mova quaisquer blocos adicionais um quadrado à direita e volte

10

Page 11: Ábaco - Universidade Federal Fluminensecbraga/cantodosalunos/abaco.pdf · Abaco (1).pptx Author: Christiano Braga Created Date: 6/27/2017 3:45:20 PM ...

1 1 1 1 1 1 1

1b 1a x

B:1 1:R

B:1 1:R

B:1

B:R

1:B

1:R B:L

1:L

B:L B:R B:R

1:L

1:R

Caso especial onde: s=1

11

Page 12: Ábaco - Universidade Federal Fluminensecbraga/cantodosalunos/abaco.pdf · Abaco (1).pptx Author: Christiano Braga Created Date: 6/27/2017 3:45:20 PM ...

Segundo passo

n- e

Encontre e apague o 1 mais à direita do bloco. Escreva 1 antes de quaisquer 1s que possa haver no primeiro bloco à direita. Há algum?

Retorne à posição padrão

É [S] = 0?

Vá ao primeiro 1 no s-ésimo bloco substituindo Bs de registradores vazios por 1s, enquanto procede

Retorne à posição padrão

1 a

1 : R

1 : R (Não) B : L (Sim)

B : R B : R

B : L (Não) 1 : R (Sim)

1 : B

1 : R (Sim)

1 : R

1 : R

B : R

B : L

B : 1

B : L (Não)

12

Page 13: Ábaco - Universidade Federal Fluminensecbraga/cantodosalunos/abaco.pdf · Abaco (1).pptx Author: Christiano Braga Created Date: 6/27/2017 3:45:20 PM ...

Terceiro passo(limpeza do registrador)

B : L

1 : L B : L B : R

1 : R

B : R

B : R 1 : B 1 : R 1 : R B : R

1 : L

1 : B

B : R

1 : B B : R

B : L

1 : B

B : L

1 : R

B : 1

B : L

1 : R

B : R

1 : B 1 : R

1 : L

B : R

1 : L

1 : L

n-1 desses

Apague tudo entre o 1 mais à esquerda e

o n-ésimo bloco

Pule o n-ésimo bloco

Apague todos os 1s à direita do n-

ésimo bloco

Encontre o 1 mais à esquerda do n-ésimo bloco

Há um 1 à direita?

Sim

Não

Apague o 1 mais à esquerda no n-ésimo bloco e escreva um 1 à direita do 1 mais à direita do bloco

Apague o último 1 no n-ésimo bloco, encontre o 1 mais à esquerda e então pare, examinando este 1

. . .

13

Page 14: Ábaco - Universidade Federal Fluminensecbraga/cantodosalunos/abaco.pdf · Abaco (1).pptx Author: Christiano Braga Created Date: 6/27/2017 3:45:20 PM ...

FRP para Ábaco

•  Funções básicas (zero, sucessor e projeção) •  Composição/ Substituição •  Recursão •  Minimização

14

Page 15: Ábaco - Universidade Federal Fluminensecbraga/cantodosalunos/abaco.pdf · Abaco (1).pptx Author: Christiano Braga Created Date: 6/27/2017 3:45:20 PM ...

Funções básicas Zero Sucessor Projeção

[1] [2] [3] [4]

2+

[1] + [2] -> 2 [m] + [n+1] -> n+1

z([1])->[2]

15

Page 16: Ábaco - Universidade Federal Fluminensecbraga/cantodosalunos/abaco.pdf · Abaco (1).pptx Author: Christiano Braga Created Date: 6/27/2017 3:45:20 PM ...

Composição h(x1,x2,x3)=f(g1(x1,x2,x3),g2(x1,x2,x3))

f([1],[2])-> 3 g1([1],[2],[3]) -> 4 g2([1],[2],[3]) -> 4

h([1],[2],[3]) -> 4

Queremos encontrar uma função h que seja computável

Suponha que tenhamos f , g1 e g2 e que todas sejam computáveis por ábaco.

16

Page 17: Ábaco - Universidade Federal Fluminensecbraga/cantodosalunos/abaco.pdf · Abaco (1).pptx Author: Christiano Braga Created Date: 6/27/2017 3:45:20 PM ...

Composição h(x1,x2,x3)=f(g1(x1,x2,x3),g2(x1,x2,x3))

g1([1],[2],[3]) -> 4

Esvaziar [4] no P1

g2([1],[2],[3]) -> 4

Esvaziar [4] no P2

Esvaziar [1] no Q1

Esvaziar [2] no Q2

Esvaziar [3] no Q3

Esvaziar P1 no [1]

Esvaziar P2 no [2]

F([1],[2])-> 3

Esvaziar [3] no [4]

1-

2-

Esvaziar Q1 no [1]

Esvaziar Q2 no [2]

Esvaziar Q3 no [3]

17

Page 18: Ábaco - Universidade Federal Fluminensecbraga/cantodosalunos/abaco.pdf · Abaco (1).pptx Author: Christiano Braga Created Date: 6/27/2017 3:45:20 PM ...

Recursão h(x,0)=f(x) h(x,n+1)=g(x,n,h(x,n))

h(x,0)=f(x) h(x,1)=g(x,0,h(x,0)) h(x,2)=g(x,1,h(x,1)) ....

f([1])-> 2

Queremos encontrar uma função h que seja computável

g1([1],[2],[3]) -> 4

h([1],[2]) -> 3

Suponha que tenhamos f e g1 e que ambas sejam computáveis por ábaco.

18

Page 19: Ábaco - Universidade Federal Fluminensecbraga/cantodosalunos/abaco.pdf · Abaco (1).pptx Author: Christiano Braga Created Date: 6/27/2017 3:45:20 PM ...

Recursão Esvaziar [2] no P

F([1])->2

Esvaziar [2] no [3]

p-

2+

G([1],[2],[3])->4

3-

Esvaziar [4] no [3]

e

e

h(x,[2]) agora está na caixa 4

Esvaziar a caixa 3

h(x,0) agora está na caixa 2

h(x,0)=f(x)=x h(x,y+1)=g(x,y,h(x,y))=h(x,y)+2

h(2,1)=???

h(2,0) h(2,1)=g(2,0,h(2,0))

19

Page 20: Ábaco - Universidade Federal Fluminensecbraga/cantodosalunos/abaco.pdf · Abaco (1).pptx Author: Christiano Braga Created Date: 6/27/2017 3:45:20 PM ...

Minimização

3-

3-

2+

e

e

Se f(x,0)..f(x,i-1) <> 0 e f(x,i)=0 então h(x)=i

x 0 0 [1] [2] [3]

f 1 1 0

f([1],[2])->3

1 2 0 0

20

Page 21: Ábaco - Universidade Federal Fluminensecbraga/cantodosalunos/abaco.pdf · Abaco (1).pptx Author: Christiano Braga Created Date: 6/27/2017 3:45:20 PM ...

Conclusão

•  Como é possível implementar qualquer ábaco utilizando MTs e implementar qualquer Função Recursiva Parcial em um ábaco, podemos dizer que MTs e ábacos são equivalentes.

21

Page 22: Ábaco - Universidade Federal Fluminensecbraga/cantodosalunos/abaco.pdf · Abaco (1).pptx Author: Christiano Braga Created Date: 6/27/2017 3:45:20 PM ...

22

Obrigado!