Cítl13Capítulo 13 Outros modelos de computaçãoOutros modelos...

33
C ít l 13 Capítulo 13 Outros modelos de computação Outros modelos de computação 13 1 Funções recursivas 13.1. Funções recursivas 13.2. Sistemas de Post 13.3. Sistemas de rescrita 13.4. Cálculo Lambda © ADC/TC/Cap.13/2009-10/LEI/DEIFCTUC 497

Transcript of Cítl13Capítulo 13 Outros modelos de computaçãoOutros modelos...

C ít l 13Capítulo 13

Outros modelos de computaçãoOutros modelos de computação13 1 Funções recursivas13.1. Funções recursivas

13.2. Sistemas de Post

13.3. Sistemas de rescrita

13.4. Cálculo Lambda

© ADC/TC/Cap.13/2009-10/LEI/DEIFCTUC 497

Máquinas de Turing (1936): os modelos de computação mais gerais

Outros modelos de computação desenvolvidos entre 1930 e 40

f õ i ( funções recursivas (Kurt Gödel, 1929, http://www-groups.dcs.st-and.ac.uk/~history/Mathematicians/Godel.html, Skolem, http://www-groups.dcs.st-and.ac.uk/~history/Mathematicians/Skolem.html, Herbrand http://www-groups.dcs.st-and.ac.uk/~history/Mathematicians/Herbrand.html

sistemas de Post (Emil Post, http://www-groups.dcs.st-

and.ac.uk/~history/Mathematicians/Post.html)

sistemas de rescrita (Emil Post)

ál l (Al Ch h 1930

Grande objectivo: saber se é possível encontrar máquinas capazes

cálculo- (Alonzo Church, 1930, http://www-gap.dcs.st-

and.ac.uk/~history/Mathematicians/Church.html)

Grande objectivo: saber se é possível encontrar máquinas capazes de provar proposições matemáticas, a partir de um conjunto de axiomas, num número finito de passos, através de sucessivas

© ADC/TC/Cap.13/2009-10/LEI/DEIFCTUC 498

pinferências e deduções- um sistema formal de prova.

l i f l d iUm tal sistema formal deveria ser:

consistente: uma proposição não pode ser considerada verdadeira por uma dada sequência de passos e falsa por outra sequência de passos,

completo: toda a proposição que se possa exprimir no completo: toda a proposição que se possa exprimir no sistema pode-se demonstrar ser verdadeira ou falsa.

© ADC/TC/Cap.13/2009-10/LEI/DEIFCTUC 499

K G d l T d I l d (1931)K. Gödel – Teorema da Incompletude (1931):

Qualquer sistema consistente tem que ser incompleto deve conter algumasincompleto, deve conter algumas

proposições que não se podem provar.

© ADC/TC/Cap.13/2009-10/LEI/DEIFCTUC 500

Podem distinguir-se as proposições d t á i d ã d t á i d t ldemonstráveis das não demonstráveis, de tal

forma que as demonstráveis o possam ser com rigor por meios mecânicos ?

Foi esta questão que motivou Turing, Church, Kleen, Post, etc., ao desenvolvimento de

modelos de computação.modelos de computação.

© ADC/TC/Cap.13/2009-10/LEI/DEIFCTUC 501

Tese de Ch rchTese de Church

Todos os modelos de computação, desde que sejam suficientemente gerais sãosejam suficientemente gerais, são

equivalentes.

Têm todos as mesmas limitações mantendoTêm todos as mesmas limitações, mantendo-se em todos zonas de não computabilidade.

© ADC/TC/Cap.13/2009-10/LEI/DEIFCTUC 502

Tese de Church-Turing

combinação da

Tese de Church Turing

combinação da tese de Church (equivalência dos modelos de

computação)computação) com a

d T i ( d é á l dtese de Turing (tudo o que é computável pode sê-lo por uma MT).

.. não demonstrável

... define um princípio geral para a computação algorítmica

© ADC/TC/Cap.13/2009-10/LEI/DEIFCTUC 503

13 1 Funções recursivas (Gödel)13.1. Funções recursivas (Gödel)Usualmente uma função denota-se na forma de receita para a sua computação:

f (n) n3 + nf (n) = n3 + n

exprime o facto de que a computação da função segue a receita:exprime o facto de que a computação da função segue a receita: multiplicar n por si próprio três vezes e depois adicionar n .

Qualquer função (computável) pode-se especificar de um Alternativa: Q q ç ( p ) p p

modo recursivo.

© ADC/TC/Cap.13/2009-10/LEI/DEIFCTUC 504

13.1.1. Funções recursivas primitivas

I II

I II

I

Funções básicas ou iniciaisI = Inteiros não negativos

1. função zero : z (x) = 0, para todo o x I

2. função sucessora : s (x) = x+1, o inteiro que segue x

3 função projecção: p (x x ) = x3. função projecção: p1(x1 , x2) = x1

p2(x1 , x2) = x2

© ADC/TC/Cap.13/2009-10/LEI/DEIFCTUC 505

definição de funções mais complexas a partir das básicas:

1. Composição : f (x, y) = h ( g1(x,y), g2(x,y))

a partir de funções g1, g2, h definidas.

2. Recursão primitiva, uma função pode ser recursivamente definida através de

f (x,0) = g1 (x)f (x, y+1) = h ( g2(x,y), f (x,y))

a partir de funções g1, g2, h definidas.

© ADC/TC/Cap.13/2009-10/LEI/DEIFCTUC 506

Exemplo 1: adição de números inteiros

pode ser definida pela função add (x, y) definida por

p

pode se de d pe u ç o add (x, y) de d po

add (x,0) = x( )

add (x, y+1) = add(x,y) + 1

add (4,3) = add (4,2) + 1 = (add (4, 1) +1) + 1(add (4, 1) 1) 1 = ((add (4, 0) +1) + 1) +1 = ((4+1)+1)+1= (5+1)+1= 6+1 = 7

© ADC/TC/Cap.13/2009-10/LEI/DEIFCTUC 507

= 7

13.2. Sistemas de Post

Um sistema de Post, , é definido pelo quartetoDefinição 13.3

, , p q

= ( C, V, A, P )em que

C é um conjunto finito de constantes composto por dois C é um conjunto finito de constantes, composto por dois conjuntos distintos

- CN , as constantes não terminais, CN , as co sta tes ão te a s,- CT, as constantes terminais

V é um conjunto finito de variáveis A é um conjunto finito de C*, chamado axioma, o

símbolo inicial P é um conjunto finito de produções

© ADC/TC/Cap.13/2009-10/LEI/DEIFCTUC 508

P é um conjunto finito de produções.

As produções num sistema de Post devem verificar algumas t i õ ( i dif d áti ã t i id )restrições (aqui difere de uma gramática não restringida):

são da forma são da forma

x1 V1 x2 V2 ... xnVn xn+1 y1 W1 y2 W2 ... ym Wm ym+1

em que xi, yi C* (axiomas)Vi, Wi V (variáveis)

qualquer variável pode aparecer na esquerda no máximo uma vez, e por isso Vi Vj para i juma vez, e por isso Vi Vj para i j

toda a variável que aparece na direita deve aparecer na

1 1

m n

i ji j

W V toda a variável que aparece na direita deve aparecer na

esquerda, e por isso

© ADC/TC/Cap.13/2009-10/LEI/DEIFCTUC 509

1 1i j

Exemplo

Seja um sistema de Post com

C {1 + } t t t i iCT = {1, +, =}, constantes terminais

CN =

V = {V1, V2 , V3 }, variáveis

A = {1+1=11} axioma

e as produções

A = {1+1=11}, axioma

p

V1+V2 = V3 V11 + V2 = V31,

V1+V2 = V3 V1 + V21 = V31.

© ADC/TC/Cap.13/2009-10/LEI/DEIFCTUC 510

Comparando com a produção padrão, temos para a 1ª produção

x1 , V1 V1, x2 “+”, V2 V2, x3 ”=”, V3 V3, x4

W V “1+” W V ” ” W V ”1”y1 , W1 V1, y2 “1+”, W2 V2, y3 ”=”, W3 V3, y4 ”1”

e para a segundae para a segunda

x1 , V1 V1, x2 “+”, V2 V2, x3 ”=”, V3 V3, x4 ,

y1 , W1 V1, y2 “+”, W2 V2, y3 ”1=”, W3 V3, y4 ”1”

© ADC/TC/Cap.13/2009-10/LEI/DEIFCTUC 511

Pode-se obter a seguinte derivação:

1+1=11 11+1=111 11+11=1111 111+11=11111

Se as cadeias forem interpretadas como a representação unária dos números inteiros não-negativos, teremosg ,

1+1=2 2+1=3 2+2=4 3+2=5

A linguagem gerada por este sistema de Post é o conjunto de todas as identidades de adições de inteirostodas as identidades de adições de inteiros.

A intenção original de Post era encontrar um mecanismo de prova i d fi i i d j drigorosa de afirmações matemáticas, a partir de um conjunto de

axiomas. Mas é de utilização complicada. É no entanto um modelo geral de computação

© ADC/TC/Cap.13/2009-10/LEI/DEIFCTUC 512

modelo geral de computação.

13.3. Sistemas de rescrita (rewriting systems)13.3. Sistemas de rescrita (rewriting systems)Um sistema de rescrita é composto por

um alfabeto e um conjunto de regras ou produções através das quais se um conjunto de regras ou produções através das quais se

produz uma cadeia a partir de outra, isto é se rescreve a partir de outra. p

Todas as gramáticas que estudámos são sistemas de rescrita

O di ti i t d it d t é t

Todas as gramáticas que estudámos são sistemas de rescrita

O que distingue um sistema de rescrita de um outro é a natureza do alfabeto e as restrições aplicadas às produções.

© ADC/TC/Cap.13/2009-10/LEI/DEIFCTUC 513

13 3 1 Gramáticas matriciais13.3.1. Gramáticas matriciais

Gramáticas de estrutura de frase (phrase-structure grammars) :

Aplica-se uma produção de cada vez, por qualquer ordem e em cada produção substitui se uma variável apenas uma vezem cada produção substitui-se uma variável apenas uma vez.

Nas gramáticas matriciais

há uma certa ordem obrigatória na aplicação das produções e podem se aplicar várias em cada derivaçãoproduções e podem-se aplicar várias em cada derivação

© ADC/TC/Cap.13/2009-10/LEI/DEIFCTUC 514

Nas gramáticas matriciais o conjunto P das produções consiste em subconjuntos P1, P2, ..., Pn cada um dos quais é uma sequência ordenada

x y x y x yx1 y1, x2 y2, x3 y3, ...

Sempre que se aplica a primeira produção de um dado Pi, de seguida deve aplicar-se a segunda produção à cadeia acabada deseguida deve aplicar se a segunda produção à cadeia acabada de criar, depois a terceira produção à cadeia resultante, e assim sucessivamente. Só se pode aplicar a primeira produção de Pi se todas as outras (de Pi ) puderem ser aplicadas.

© ADC/TC/Cap.13/2009-10/LEI/DEIFCTUC 515

Exemplo:

P1 : S S1 S2P2 : S1 aS1 , S2 bS2cP S S

1 2 S S

P3 : S1 , S2 ,

Uma derivação

1 2

aS bS c

Uma derivação

S S1 S2 aS1 bS2c aaS1bbS2cc aaaS1bbbS2ccc

1 2 1 2 1 2 1 2aaabbbccc

A d ã P i d i bA produção P2 introduz sucessivamente um a, um b e um c.

A linguagem gerada é por isso L = { anbncn n 0}A linguagem gerada é por isso L = { a b c , n 0}

Vantagem: as GM’s são por vezes uma solução mais simples.

© ADC/TC/Cap.13/2009-10/LEI/DEIFCTUC 516

g p ç p

13.3.2. Algoritmos de Markov

é um sistema de rescrita cujas produções x y se consideram ordenadasconsideram ordenadas,

numa derivação deve usar-se a primeira produção aplicável,

a derivação faz-se pela (extrema) esquerda,

algumas das produções podem ser assinaladas como terminais x yterminais, x .y.

começa-se uma derivação com uma cadeia w *continuando até que ou se aplica uma produção terminal ou não há mais produções aplicáveis.

© ADC/TC/Cap.13/2009-10/LEI/DEIFCTUC 517

Para aceitação de linguagens identifica se um conjunto T Para aceitação de linguagens, identifica-se um conjunto T . Começando com uma cadeia terminal, aplicam-se produções até se obter a cadeia vazia.

Definição 13 5Definição 13.5.

Seja M um Algoritmo de Markov com alfabeto e terminais T. O conjunto

*

O conjunto

L(M) = {wT* : w }*

é a linguagem aceite por M.

© ADC/TC/Cap.13/2009-10/LEI/DEIFCTUC 518

Exemplo:

Seja o algoritmo de Markov com =T = {a b} e as produções

Exemplo:

Seja o algoritmo de Markov com =T = {a, b} e as produções

ab ba

E d d d i ã bEm cada passo de uma derivação apaga-se um a e um b.

b b bbb b bbb bbb bb b

li it é t d i ú

ababaabbba abaabbba aabbba abba ba

a linguagem aceite é composta por cadeias com um número de a’s igual ao de b’s.

© ADC/TC/Cap.13/2009-10/LEI/DEIFCTUC 519

Exemplo:

Encontrar uma algoritmo de Markov para

L = { anbn, n 0}

Uma solução ab S S ab

aSb S

S

S aSb

S

CFG

Até t t l it d M k ã áti d

S .. S

Até certo ponto os algoritmos de Markov são gramáticas de estrutura em frase revertidas, trabalhando para trás (não considerando a última produção).

© ADC/TC/Cap.13/2009-10/LEI/DEIFCTUC 520

considerando a última produção).

Uma linguagem é recursivamente enumerável se e só se existir um algoritmo de Markov para ela

(teorema 13.7 Linz).( )

© ADC/TC/Cap.13/2009-10/LEI/DEIFCTUC 521

13.3.3. Sistemas-L (Sistemas de rescrita paralelos) estendidos

Os sistemas – L (de Aristid Lindenmayer) foram desenvolvidos Os s s e s (de s d de ye ) o dese vo v dospara modelizar o crescimento de organismos vivos.

i l i d i l l dSão essencialmente sistemas de rescrita paralelos: em cada passo de uma derivação tem que se rescrever todo e qualquer símbolo, como na reprodução de um organismo vivo (células plantas )como na reprodução de um organismo vivo (células, plantas, …).

As produções são da forma

a u

em que a e u *.

© ADC/TC/Cap.13/2009-10/LEI/DEIFCTUC 522

ExemploSeja = {a} e um sistema-L definido por

a aa

Uma sua produção iniciando se com a seráUma sua produção , iniciando-se com a, será

a aa aaaa aaaaaaaa aaaaaaaaaaaaaaaaa aa aaaa aaaaaaaa aaaaaaaaaaaaaaaa

2n 2 , 0n

L a n

muito mais difícil de obter por uma gramática de estrutura em frase.

© ADC/TC/Cap.13/2009-10/LEI/DEIFCTUC 523

Prusinkiewicz P. and A. InícioInício

Lindenmayer - The Algorithmic Beauty of Plants, Springer Verlag, 1990.

Semente w0 : F-F-F-FS 0

Prod: F F-F+F+FF-F-F+F

F: seguir em frente distância d

+ rodar à esquerda 90º

- rodar à direita 90 º

Dividir d por 4 em cada etapa n

Imagens produzidas por uma sistema - L

© ADC/TC/Cap.13/2009-10/LEI/DEIFCTUC 524

Lem

a -L

Prusinkiewicz P. and

ma

sist A. Lindenmayer- The

Algorithmic Beauty of Plants, Springer Verlag 1990

as p

or u

m Verlag, 1990.

oduz

ida

Pro

© ADC/TC/Cap.13/2009-10/LEI/DEIFCTUC 525

os sistemas-L estendidos podem ter produções da formap p

(x, a, y) u(x, a, y) u

a , x, y, u *

só se pode substituir a por u quando a ocorrer como parte de uma cadeia xay, isto é, contextualizada.

Os sistemas-L contextualizados são modelos gerais de Os sistemas-L contextualizados são modelos gerais de computação.

© ADC/TC/Cap.13/2009-10/LEI/DEIFCTUC 526

13.4. Cálculo - ( - calculus)13.4. Cálculo ( calculus)

Criado por Alonzo Church, cerca de 1930, como a primeira C do po o o C u c , ce c de 930, co o p eexpressão de “computabilidade”, um conceito puramente matemático na época.

É uma linguagem de programação abstracta que deu lugar à programação funcional (LISP, Scheme, ML-

É

lugar à programação funcional (LISP, Scheme, MLMetaLanguage, etc.).

É um sistema matemático para definir funções computáveis, i.e, é um modelo de computação.

Tem o poder de exprimir qualquer computação em termos de funções

© ADC/TC/Cap.13/2009-10/LEI/DEIFCTUC 527

funções

Mais em

Cursos on-line sobre cálculo-

http://www.maths.cam.ac.uk/CASM/courses/descriptions/node27.html

http://www.cs.unc.edu/~stotts/COMP20/Lambda/overview.html

http://www.cs.rpi.edu/~robbic3/proglang/project3/introduction.html

http://www.dcs.gla.ac.uk/~pat/ml/lambdap g p

http://depinfo.unice.fr/~roy/LINFO/cours5.pdf

© ADC/TC/Cap.13/2009-10/LEI/DEIFCTUC 528

BibliografiagAn Introduction to Formal Languages and Automata, Peter Linz, 3rd Ed., Jones

and Bartelett Computer Science, 2001.p ,

Models of Computation and Formal Languages, R. Gregory Taylor, Oxford University Press, 1998.

Introduction to Automata Theory, Languages and Computation, 2nd Ed., John Hopcroft, Rajeev Motwani, Jeffrey Ullman, Addison Wesley, 2001.

Elements for the Theory of Computation Harry Lewis and Christos Papadimitriou 2ndElements for the Theory of Computation, Harry Lewis and Christos Papadimitriou, 2nd Ed., Prentice Hall, 1998.

Introduction th the Theory of Computation, Michael Sipser, PWS Publishing Co, 1997.

Barendregt, H., The Lambda Calculus: its Syntax and Semantics, 2nd ed., Nolrth-Holland, 1984.

Hi dl J R d J P S ldi I t d ti t C bi t d l l LMSHindley, J.R. and J.P. Seldin, Introduction to Combinators and -calculus, LMS Student Texts, Cambridge Universty Press, 1986.

Prusinkiewicz P. and A. Lindenmayer- The Algorithmic Beauty of Plants, Springer

© ADC/TC/Cap.13/2009-10/LEI/DEIFCTUC 529

Verlag, 1990.