13.2. Sistemas de Post Sistemas de rescrita Cálculo Lambda. ADC/TC/Cap.13/ /LEI/DEIFCTUC 497

Documentos relacionados
formais e autómatos Linguagens g recursivas e recursivamente enumeráveis Gramáticas não-restringidas

Capítulo Métodos para transformar gramáticas ái Duas formas Normais (Chomsky e Greibach) ADC/TC/Cap.6/ /LEI/DEIFCTUC 268

Capítulo A máquina de Turing (TM) padrão Combinações de máquinas de Turing A Tese de Turing. ADC/TC/Cap.9/ /LEI/DEIFCTUC 375

7.1. Autómatos de pilha não-determinísticos (NPDA) 7.3. Autómatos de pilha determinísticos e linguagens livres de contexto determinísticas.

Prof. Dr. Marcos Castilho. Departamento de Informática/UFPR. 22 de Fevereiro de 2018

SCC-5832 Teoria da Computação

Teoria da Computação Prof. Lucília Figueiredo Prova 03 - ENTREGA DIA 24/06/2015. (a) Descreva o programa da MT usando um pseudocódigo.

SCC Introdução à Teoria da Computação

Computação efectiva. Que linguagens podem ser reconhecidas por algum tipo de autómato?

SCC Teoria da Computação e Linguagens Formais

Modelos de Computação

1 INTRODUÇÃO E CONCEITOS BÁSICOS

Os limites da computação algorítmica

Teoria da Computação Aula 02 Introdução

Outras Máquinas de Turing

Gramáticas Regulares

PLANO DE ENSINO. CURSO: Bacharelado em Sistemas de Informação MODALIDADE: PRESENCIAL ( X ) OBRIGATÓRIA ( ) OPTATIVA DEPARTAMENTO: DEINFO

SCC Capítulo 3 Linguagens Sensíveis ao Contexto e Autômatos Limitados Linearmente

I.2 Introdução a Teoria da Computação

2. DISCIPLINA REQUISITO (RECOMENDAÇÃO) 3. INDICAÇÃO DE CONJUNTO (BCC) Obrigatória TEORIA: 60 LABORATÓRIO: 30

Alfabeto, Cadeias, Operações e Linguagens

Linguagem (formal) de alfabeto Σ

UNIVERSIDADE ESTADUAL DO SUDOESTE DA BAHIA - UESB DEPARTAMENTO DE CIÊNCIAS EXATAS - DCE PLANO DE CURSO DISCIPLINA

Turma A - Segundas e Quartas das 8h30min - 10h10min Turma B - Segundas e Quartas das 10h30min - 12h10min

Linguagens Formais e Autômatos

Teoria da Computação (BBC244)

Linguagens Formais e Autômatos. Tiago Alves de Oliveira

Revisões de Conjuntos

INE5317 Linguagens Formais e Compiladores AULA 3: Introdução a Teoria da Computação

Regulares (RL) 4.1. Propriedades d de fecho das RL ADC/TC/CAP.4/ /LEI/DEIFCTUC 192

SCC Capítulo 1 Linguagens Regulares e Autômatos Finitos

Linguaguens recursivamente enumeráveis

1 introdução. capítulo. O que é uma solução computável? Quais são os limites do que pode ser computado? Existem problemas sem solução computacional?

Linguagens recursivamente enumeráveis

Autómatos de pilha e GIC

SCC Capítulo 2 Linguagens Livres de Contexto e Autômatos de Pilha (versão 2)

Linguagens, Reconhecedores e Gramáticas

Autómatos de pilha e Gramáticas independentes de contexto

Linguaguens recursivamente enumeráveis e recursivas

Formas normais. Forma normal de Greibach (FNG) todas as produções são da forma

Gramáticas ( [HMU00], Cap. 5.1)

Linguagens Formais e Autômatos (BBC242) Professor: Anderson Almeida Ferreira DECOM-UFOP

Máquinas Universais. Departamento de Ciência de Computadores da FCUP MC Aula 23 1

MT como calculadoras de funções parciais

Teoria da Computação Aula 01 Revisão de Conjuntos

ECO026 TEORIA DA COMPUTAÇÃO. Prof: Rafael Santos Site:

As linguagens regulares são I.C Proposição Qualquer linguagem regular é independente de contexto.

PCS3616. Programação de Sistemas (Sistemas de Programação) Visão Geral

Linguagens Formais e Autômatos Apresentação da Disciplina

CT-200 Fundamentos de Linguagens Formais e Automata - Aula 01 - In...

Linguagens Formais e Autômatos P. Blauth Menezes

Máquina de Turing Linguagens Sensíveis ao Contexto e Enumeráveis Recursivamente

Apostila 05 Assunto: Linguagens dos tipos 0 e 1

Noção de Computabilidade

SCC Capítulo 4 Linguagens Recursivamente Enumeráveis e Máquinas de Turing

Juliana Kaizer Vizzotto. Universidade Federal de Santa Maria. Disciplina de Teoria da Computação

UNIVERSIDADE FEDERAL RURAL DO SEMI-ÁRIDO CURSO: CIÊNCIA DA COMPUTAÇÃO. Prof.ª Danielle Casillo

CAPÍTULO 6 SIMPLIFICAÇÃO DE GRAMÁTICAS LIVRES DE CONTEXTO E FORMAS NORMAIS

Teoria da Computação Gramáticas, Linguagens Algébricas e Autómatos de Pilha

SCC Capítulo 4 Linguagens Recursivamente Enumeráveis e Máquinas de Turing

GBC015: INTRODUÇÃO À CIÊNCIA DA COMPUTAÇÃO Teoria de Algoritmos: Computabilidade e Máquina de Turing

1 Postulado de Church-Turing 1

Árvores (ordenadas) Departamento de Ciência de Computadores da FCUP MC Aula 11 1

Conceitos básicos de Teoria da Computação

Matemática Discreta para Ciência da Computação

CAPÍTULO 7 AUTÓMATOS DE PILHA

Gramáticas Sensíveis ao Contexto (GSC) Linguagens Sensíveis ao Contexto (LSC) Autômatos Linearmente Limitados (ALL)

Autómatos determísticos de k-pilhas

UNIVERSIDADE FEDERAL DO RIO GRANDE DO SUL Instituto de Informática Departamento de Informática Teórica

Teresa Galvão LEIC - Teoria da Computação I 3.1

Capítulo 5. Linguagens livres de contexto

Procedimentos e Algorítmos Programas e Linguagens de Programação Tese de Church-Turing Formas de Representação de Linguagens

CAPÍTULO 8 PROPRIEDADES DAS LINGUAGENS LIVRES DE CONTEXTO

Teoria da Computação. Aula 01

Alfabeto e palavras. Alfabeto conjunto finito de símbolos (Σ).

Teoria da Computação (cod.11562)

INE5317 Linguagens Formais e Compiladores. Ricardo Azambuja Silveira INE-CTC-UFSC URL:

Capítulo 2: Procedimentos e algoritmos

Linguagens Formais e Problemas de Decisão

Máquinas de Turing: uma introdução

ACH2043 INTRODUÇÃO À TEORIA DA COMPUTAÇÃO

SCC Capítulo 4 Máquinas de Turing e a Teoria da Computabilidade

Linguagens Formais. Aula 01 - Conceitos Básicos. Prof. Othon Batista Mestre em Informática

Teoria da Computação

Outras abordagens à computabilidade. Nota

Máquinas Universais. Máquina de Turing. Celso Olivete Júnior.

Os Limites da Computabilidade. Dois Conceitos Distintos. Tese de Church Turing. O Que É Computável? O Que É Possível De Ser Computado?

Computação. Sob uma perspectiva teórica. Elloá B. Guedes. IQuanta. 22 de setembro de 2008

sumário 1 introdução e conceitos básicos 1 2 noções de lógica e técnicas de demonstração introdução à matemática discreta...

Teoria da Computação Aula - Linguagens e Gramáticas Formais

Linguagens Formais e Autômatos P. Blauth Menezes

PCS3616. Programação de Sistemas (Sistemas de Programação) Máquinas de Turing

UFCG IQuanta DSC. Cheyenne R. G. Isidro Bernardo Lula Júnior

Curso de Engenharia de Computação - UTFPR Teoria da Computação - Prof. Celso Kaestner Lista de exercícios

Exercicios. 7.2 Quais das seguintes afirmações são verdadeiras? Justifica. (d) abcd L((a(cd) b) )

Conceitos Básicos. LEIC 2 o Semestre, Ano Lectivo 2012/13. c Inês Lynce

UNIVERSIDADE LUSÍADA DE LISBOA. Programa da Unidade Curricular TEORIA DA COMPUTAÇÃO Ano Lectivo 2017/2018

Sistemas-L: Implementação em Java

Teoria da Computação

Transcrição:

Capítulo 13 Outros modelos de computação 13.1. 1 Funções recursivas 13.2. Sistemas de Post 13.3. Sistemas de rescrita 13.4. Cálculo Lambda 497

Máquinas de Turing (1936): os modelos de computação mais gerais Outros modelos de computação desenvolvidos entre 1930 e 40 funções recursivas (Kurt( Gödel, 1929, http://www-groups.dcs.stand.ac.uk/~history/mathematicians/godel.html, Skolem, http://www-groups.dcs.stand.ac.uk/~history/mathematicians/skolem.html, Herbrand http://www-groups.dcs.stand.ac.uk/~history/mathematicians/herbrand.html sistemas de Post (Emil Post, http://www-groups.dcs.stand.ac.uk/~history/mathematicians/post.html) sistemas de rescrita (Emil Post) cálculo- l (Alonzo Church, h 1930, http://www-gap.dcs.stand.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 inferências e deduções- um sistema formal de prova. 498

Um 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 sistema pode-se demonstrar ser verdadeira ou falsa. 499

K. Gödel Teorema da Incompletude (1931): Qualquer sistema consistente tem que ser incompleto, deve conter algumas proposições que não se podem provar. 500

Podem distinguir-se as proposições demonstrá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. 501

Tese de Church Todos os modelos de computação, desde que sejam suficientemente gerais, são equivalentes. Têm todos as mesmas limitações, mantendose em todos zonas de não computabilidade. 502

Tese de Church-Turing combinação da tese de Church (equivalência dos modelos de computação) com a tese 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 503

13.1. 1 Funções recursivas (Gödel) Usualmente uma função denota-se na forma de receita para a sua computação: f (n) = n 3 + n 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. Alternativa: Qualquer função (computável) )pode-se especificar de um modo recursivo. 504

13.1.1. Funções recursivas primitivas I I I I I Funções básicas ou iniciais I = 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 1 (x 1, x 2 )=x x 1 p 2 (x 1, x 2 ) = x 2 505

definição de funções mais complexas a partir das básicas: 1. Composição : f (x, y) = h ( g 1 (x,y), g 2 (x,y)) a partir de funções g 1, g 2, h definidas. 2. Recursão primitiva, uma função pode ser recursivamente definida através de f (x,0) = g 1 (x) f (x, y+1) = h ( g 2 (x,y), f (x,y)) a partir de funções g 1, g 2, h definidas. 506

Exemplo 1: adição de números inteiros pode ser definida d pela função add (x, y) definida d por 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, 0) +1) + 1) +1 = ((4+1)+1)+1 = (5+1)+1 = 6+1 = 7 507

13.2. Sistemas de Post Definição 13.3 Um sistema de Post,,, é definido pelo quarteto em que = ( C, V, A, P ) C é um conjunto finito de constantes, composto por dois conjuntos distintos - C N,asco constantes tes não terminais, - C T, 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. 508

As produções num sistema de Post devem verificar algumas restrições (aqui difere de uma gramática não restringida): id são da forma x 1 V 1 x 2 V 2... x n V n x n+1 y 1 W 1 y 2 W 2... y m W m y m+1 em que x i, y i C* (axiomas) V i, W i V (variáveis) qualquer variável pode aparecer na esquerda no máximo uma vez, e por isso V i V j para i j toda a variável que aparece na direita deve aparecer na m n esquerda, e por isso W i i 1 j 1 V j 509

Exemplo Seja um sistema de Post com C T = {1, +, =}, constantes t terminais i C N = V = {V 1, V 2, V 3 }, variáveis A = {1+1=11}, axioma e as produções V 1 +V 2 = V 3 V 1 1 + V 2 = V 3 1, V 1 +V 2 = V 3 V 1 + V 2 1 = V 3 1. 510

Comparando com a produção padrão, temos para a 1ª produção x 1, V 1 V 1, x 2 +, V 2 V 2, x 3 =, V 3 V 3, x 4 y 1, W 1 V 1, y 2 1+, W 2 V 2, y 3 =, W 3 V 3, y 4 1 e para a segunda x 1, V 1 V 1, x 2 +, V 2 V 2, x 3 =, V 3 V 3, x 4, y 1, W 1 V 1, y 2 +, W 2 V 2, y 3 1=, W 3 V 3, y 4 1 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, teremos 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 inteiros. A intenção original de Post era encontrar um mecanismo de prova rigorosa 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. 512

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 produz uma cadeia a partir de outra, isto é se rescreve a partir de outra. 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. 513

13.3.1. 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 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ção 514

Nas gramáticas matriciais o conjunto P das produções consiste em subconjuntos P 1, P 2,..., P n cada um dos quais é uma sequência ordenada x 1 y 1, x 2 y 2, x 3 y 3,... Sempre que se aplica a primeira produção de um dado P i, de seguida 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 P i se todas as outras (de P i ) puderem ser aplicadas. 515

Exemplo: P 1 : S S 1 S 2 P 2 : S 1 as 1, S 2 bs 2 c P 3 : S 1, S 2, Uma derivação SS 1 2 as1 bs2c S S 1 S 2 as 1 bs 2c aas 1bbS 2cc aaas 1bbbS 2ccc aaabbbccc A produção P 2 introduz sucessivamente um a, um b e um c. A linguagem gerada é por isso L ={a a n b n c n, n 0} Vantagem: as GM s são por vezes uma solução mais simples. 516

13.3.2. Algoritmos de Markov é um sistema de rescrita cujas produções x y se consideram 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.y. 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. 517

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.5. Seja M um Algoritmo de Markov com alfabeto e terminais T. O conjunto L(M) = {w T * : w } * é a linguagem aceite por M. 518

Exemplo: Seja o algoritmo de Markov com =T ={ab} {a, e as produções ab ba Em cada passo de uma derivação apaga-se um a e um b. ababaabbba b bbb abaabbba bbb aabbba abba ba a linguagem aceite é composta por cadeias com um número de a s igual ao de b s. 519

Exemplo: Encontrar uma algoritmo de Markov para L = { a n b n, n 0} Uma solução ab S S ab asb S S.. CFG S asb 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). 520

Uma linguagem é recursivamente enumerável se e só se existir um algoritmo de Markov para ela (teorema 13.7 Linz). 521

13.3.3. Sistemas-L (Sistemas de rescrita paralelos) estendidos Ossse sistemas s L (de Aristid Lindenmayer) foram desenvolvidos v dos para modelizar o crescimento de organismos vivos. São essencialmente il sistemas de rescrita paralelos: ll 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, ). As produções são da forma a u em que a e u *. 522

Exemplo Seja = {a} e um sistema-l definido por a aa Uma sua produção, iniciando-se com a, será a aa aaaa aaaaaaaa aaaaaaaaaaaaaaaa 2 n L a 2, n 0 muito mais difícil de obter por uma gramática de estrutura em frase. 523

Prusinkiewicz P. and A. Lindenmayer - The Algorithmic Beauty of Plants, Springer Verlag, 1990. Início Início Semente w 0 : F-F-F-F 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 524

ema - L Pro oduzida as por um ma sist Prusinkiewicz P. and A. Lindenmayer- The Algorithmic Beauty of Plants, Springer Verlag, 1990. 525

os sistemas-l estendidos podem ter produções da forma (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 computação. 526

13.4. Cálculo - ( - calculus) Criado por Alonzo o Church, cerca c de 1930, como o a primeira expressã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- MetaLanguage, 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 527

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/lambda p http://depinfo.unice.fr/~roy/linfo/cours5.pdf 528

Bibliografia An Introduction to Formal Languages and Automata, Peter Linz, 3rd Ed., Jones and Bartelett Computer Science, 2001. 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, 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. Hindley, J.R. and J.P. Seldin, Introduction ti to Combinators and -calculus, l l LMS Student Texts, Cambridge Universty Press, 1986. Prusinkiewicz P. and A. Lindenmayer- The Algorithmic Beauty of Plants, Springer Verlag, 1990. 529