cítl13capítulo 13 outros modelos de computaçãooutros...
TRANSCRIPT
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.