Aula 7: Autômatos com Pilha

Documentos relacionados
Aula 9: Máquinas de Turing

Autômato com Pilha. Autômato com Pilha. Autômato com Pilha

Aula 3: Autômatos Finitos

Aula 3: Autômatos Finitos

Autómatos de Pilha. Cada transição é caracterizada pelo estado, símbolo que está ser lido e o elemento no topo da pilha. dados de entrada.

Autômatos de Pilha (AP)

Autômatos com Pilha. Douglas O. Cardoso docardoso.github.io

Linguagens Livres de Contexto

Autómatos de Pilha e Linguagens Livres de Contexto

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

Fundamentos da Teoria da Computação

Universidade de São Paulo Instituto de Ciências Matemáticas e de Computação Departamento de Ciências de Computação

SCC 205 Teoria da Computação e Linguagens Formais

Autômato com pilha. IBM1088 Linguagens Formais e Teoria da Computação. Evandro Eduardo Seron Ruiz

Teoria da Computação. Capítulo 1. Máquina de Turing. Prof. Wanderley de Souza Alencar, MSc.

Universidade Federal do Rio de Janeiro Departamento de Ciência da Computação

INE5317 Linguagens Formais e Compiladores AULA 5: Autômatos Finitos

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

Linguagens Formais e Autômatos 02/2016. LFA Aula 04 16/11/2016. Celso Olivete Júnior.

Marcos Castilho. DInf/UFPR. 5 de abril de 2018

Aula 10: Decidibilidade

Aula 8: Gramáticas Livres de Contexto

COMPILADORES. Revisão Linguagens formais Parte 01. Geovane Griesang

Teoria da Computação. Máquinas Universais Máquina com Pilhas

Linguagens Regulares. Prof. Daniel Oliveira

LFA Aula 05. AFND: com e sem movimentos 05/12/2016. Linguagens Formais e Autômatos. Celso Olivete Júnior.

Linguagens livres de contexto e autômatos de pilha

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

Teoria da Computação. Unidade 3 Máquinas Universais. Referência Teoria da Computação (Divério, 2000)

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

Modelos de Computação Folha de trabalho n. 8

Fundamentos da Teoria da Computação

Apostila 05 Assunto: Linguagens dos tipos 0 e 1

Autômatos a pilha. UFRN/DIMAp/DIM0330 Linguagens formais. David Déharbe. david/enseignement/2003.

Linguagens Formais e Autômatos 02/2015. LFA Aula 02. introdução 28/09/2015. Celso Olivete Júnior.

Aula 10: Decidibilidade

Autómatos de pilha e GIC

Linguagens Formais e Autômatos

IV Gramáticas Livres de Contexto

Lista de exercícios 1

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.

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

SCC-ICMC-USP. Trabalho em Grupo 1 SCC-0205

a n Autômatos com Pilha: Definição Informal e Definição Formal Linguagem Aceita por um ACP ACPDet X ACPND Notação gráfica para ACP

Linguagens Formais - Preliminares

Autômatos Finitos Não Determinís5cos (AFN)

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

Máquinas de Turing (MT)

Linguagens Formais e Autômatos. Autômatos Finitos Determinísticos (AFD)

Universidade Federal de Alfenas

Autômatos Finitos Determinís3cos (AFD)

Autômatos finitos não-determinísticos

Autómatos Finitos Determinísticos (AFD)

Curso: Ciência da Computação Turma: 6ª Série. Teoria da Computação. Aula 4. Autômatos Finitos

INE5317 Linguagens Formais e Compiladores AULA 6: Autômatos Finitos Com S aída

Universidade de São Paulo Instituto de Ciências Matemáticas e de Computação Curso de Ciências de Computação

Capítulo 9: Linguagens sensíveis ao contexto e autômatos linearmente limitados.

Linguagens Livres do Contexto. Adaptado de H. Brandão

Variações de Máquinas de Turing

Apostila 03 - Linguagens Livres de Contexto Exercícios

Sistemas de Estados Finitos AF Determinísticos. (H&U, 1979) e (H;M;U, 2001)

Modelos de Computação

Teoria da Computação

Teoria de Linguagens 2 o semestre de 2017 Professor: Newton José Vieira Primeira Lista de Exercícios Data de entrega: 19/9/2017 Valor: 10 pontos

Gramáticas Livres de Contexto Parte 1

Apostila 02. Objetivos: Estudar os autômatos finitos Estudar as expressões regulares Estudar as gramáticas regulares Estudar as linguagens regulares

A. (Autómatos finitos determinísticos e não determinísticos AFD e AFND)

Linguagem (formal) de alfabeto Σ

Teoria de Linguagens 2 o semestre de 2015 Professor: Newton José Vieira Primeira Lista de Exercícios Entrega: até 16:40h de 15/9.

Curso: Ciência da Computação Turma: 6ª Série. Teoria da Computação. Aula 3. Autômatos Finitos

a n Sistemas de Estados Finitos AF Determinísticos

Máquina de Turing e máquina de Turing universal

Teoria da Computação. Expressões Regulares e Autômatos Finitos. Thiago Alves

Apostila 04. Objetivo: Estudar a Máquina de Turing

Gramática regular. IBM1088 Linguagens Formais e Teoria da Computação. Evandro Eduardo Seron Ruiz Universidade de São Paulo

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

Autômatos com Pilha: Reconhecedores de LLCs

Máquinas de Turing: uma introdução

Linguagens Livres de Contexto

LINGUAGENS FORMAIS E AUTÔMATOS

Alfabeto, Cadeias, Operações e Linguagens

Capítulo 8: O problema da parada. Decidibilidade e computabilidade. José Lucas Rangel Introdução.

Resolução Exe 2.12 Monolítico Recursivo

Expressões Regulares e Gramáticas Regulares

A. (Autómatos finitos determinísticos e não determinísticos AFD e AFND)

Linguagens e Autômatos

Transformação de AP para GLC

Faculdade de Computação

Linguagens Formais e Autômatos P. Blauth Menezes

Linguagens Formais e Problemas de Decisão

Transcrição:

Teoria da Computação Segundo Semestre, 2014 Aula 7: Autômatos com Pilha DAINF-UTFPR Prof. Ricardo Dutra da Silva Vamos adicionar um memória do tipo pilha ao nossos autômatos para que seja possível aceitar linguagens como L = {a i b i i 0}. Como nos autômatos anteriores, teremos uma fita infinita e um cabeçote de leitura que armazena o estado atual da máquina. A pilha, como mostra a Figura 7.1, é uma memória infinita. Símbolos são colocados no topo da pilha e retirados do topo da pilha. Sempre que um elemento é colocado no topo ele empurra para baixo elementos já existentes na pilha. Quando um elemento é retirado do topo, os elementos abaixo dele são deslocados para cima, de forma que o elemento que estava imediatamente abaixo do topo passa a ocupar a posição do topo. fita cabeçote pilha 0 0 1 0... p A A. Figura 7.1: Representação de um autômato com pilha. Definição 7.1. Um autômato com pilha (PDA) é uma sêxtupla M = (Q, Σ, Γ, δ, q 0, F ), onde Q é um conjunto finito de estados; Σ é o alfabeto de entrada; Γ é o alfabeto da pilha; q 0 Q é o estado inicial; F é o subconjunto de estados finais de Q; δ é uma função δ : Q (Σ {λ}) (Γ {λ}) P(Q (Γ {λ})), chamada de função de transição. 1

2 Aula 7: Autômatos com Pilha O alfabeto da pilha será representado por letras maiúsculas e uma pilha vazia será denotada pela string vazia λ. No início da computação, o PDA começa no estado inicial, com a string de entrada na fita e com a pilha vazia. A função de transição será representada da seguinte maneira: δ(, a, A) = {(, B), (q k, C)}. A transição (, B) δ(, a, A), por exemplo, pode ser interpretada usando a ideia de uma máquina com pilha dada pela Figura 7.1. A transição faz com que a máquina: mude o estado de para ; processe o símbolo a; remova o símbolo A do topo da pilha; coloque o símbolo B no topo da pilha. O diagrama de estados do PDA terá como rótulos das arestas o símbolo de entrada a ser processado e as operações da pilha (qual elemento sai do topo/qual elemento entra no topo). A transição δ(, a, A) = {(, B)}, por exemplo, é representada como mostrado abaixo. a A/B O PDA muda do estado para o estado processando o símbolo a Σ. Ainda, o símbolo A Γ é removido do topo da pilha enquanto o símbolo B Γ, em seguida, é colocado no topo. Na função de transição, podemos ter λ como símbolo de entrada e como símbolo da pilha. Uma transição como (, B) δ(, a, λ) entra o estado e adiciona B no topo da pilha. a λ/b A transição (, λ) δ(, a, A) entra o estado e remove A do topo da pilha. a A/λ Outras transições possíveis são: (, B) δ(, λ, A) (entra estado, remove A da pilha e adiciona B na pilha) λ A/B

Aula 7: Autômatos com Pilha 3 (, λ) δ(, λ, A) (entra estado, remove A da pilha) λ A/λ (, λ) δ(, λ, A) (entra estado, adiciona A na pilha) λ λ/a (, λ) δ(, λ, λ) (entra estado ) λ λ/λ (, λ) δ(, λ, A) (tira A da pilha) λ A/λ (, A) δ(, λ, λ) (coloca A na pilha) λ λ/a (, λ) δ(, a, λ) (muda do estado para o estado processando o símbolo a Σ; equivalente à transição de um autômato finito) a λ/λ Exemplo 7.1 Podemos construir uma PDA M que aceita a linguagem {a i b i i 0}. A computação começa com a string de entrada w na fita e a pilha vazia. Quando um a é processado, o símbolo A é colocado na pilha. Quando um b é processado, o símbolo no topo da pilha é removido.

4 Aula 7: Autômatos com Pilha Definimos o PDA M = ({q 0, q 1 }, {a, b}, {A}, δ, q 0, {q 0, q 1 }), δ(q 0, a, λ) = {(q 0, A)} δ(q 0, b, A) = {(q 1, λ)} δ(q 1, b, A) = {(q 1, λ)} com diagrama de estados a λ/a q 0 q 1 Ainda precisamos definir como é a computação em um PDA, as strings aceitas e a linguagem reconhecida. Vamos iniciar introduzindo o conceito de configuração instantânea e como ela é usada para demonstrar uma computação num PDA. Definição 7.2. A configuração instantânea de um PDA M é dada por uma tripla [, w, α], onde é o estado atual, w a substring ainda não processada e α é a string na pilha. A notação [, w, α] [, v, β] indica que a configuração [, v, β] pode ser obtida de [, w, α] por uma única transição do PDA M. A notação [, w, α] [, v, β] indica que a configuração [, v, β] pode ser obtida de [, w, α] por zero ou mais transições do PDA M. Exemplo 7.2 A computação da string aabb no PDA do Exemplo 7.1 pode ser descrita usando configurações instantâneas. O PDA começa o processamento no estado inicial, com a string de entrada na fita e com a pilha vazia. Essa configuração é dada pela tripla [q 0, aabb, λ]. No estado q 0 e lendo um a, existe uma única transição possível: δ(q 0, a, λ) = {(q 0, A)}. A computação é descrita abaixo. O símbolo a foi processado e o símbolo A foi colocado no topo da pilha. O processamento seguinte é idêntico e um novo A é empilhado.

Aula 7: Autômatos com Pilha 5 [q 0, bb, AA] O próximo processamento segue a a transição δ(q 0, b, A) = {(q 1, λ)}, que muda o estado de q 0 para q 1, processa um b e desempilha um A. [q 0, bb, AA] [q 1, b, A] Por fim, a transição δ(q 1, b, A) = {(q 1, λ)} é seguida. O processamento termina com toda a string de entrada processada e com a pilha vazia. [q 0, bb, AA] [q 1, b, A] [q 1, λ, λ] Definição 7.3. Seja M = (Q, Σ, Γ, δ, q 0, F ) um PDA. Uma string w Σ é aceita por M se existe uma computação [q 0, w, λ] [, λ, λ], tal que F. A linguagem de M, denotada por L(M), é o conjunto de strings aceitas por M. Exemplo 7.3 A linguagem {wcw R w {a, b} } é reconhecida pelo PDA M = ({q 0, q 1 }, {a, b, c}, {A, B}, δ, q 0, {q 1 }), onde δ(q 0, a, λ) = {(q 0, A)} δ(q 0, b, λ) = {(q 0, B)} δ(q 0, c, λ) = {(q 1, λ)} δ(q 1, a, A) = {(q 1, λ)} δ(q 1, b, B) = {(q 1, λ)}

6 Aula 7: Autômatos com Pilha A pilha é usada para gravar a string w a medida que ela é processada. diagrama de estados do PDA. Verifique no a λ/a b λ/b a A/λ b B/λ c λ/λ q 0 q 1 Exemplo 7.4 Um diagrama de estados para o PDA M que reconhece a linguagem L = {a i 0} {a i b i i 0} sobre o alfabeto Σ = {a, b}. i a λ/a q 0 q 1 λ λ/λ q 2 λ A/λ Exercício 7.1. Projete PDA s que reconheçam as linguagens abaixo. a) L = {a i b j c k i, j, k 0 e i = j ou i = k}. b) L aceita strings com número par de 0 s. c) L aceita strings com o mesmo número de 0 s e 1 s. d) L aceita strings cujo número de 0 s é duas vezes o número de 1 s. e) L aceita strings cujo número de 0 s é maior do que o número de 1 s.

Aula 7: Autômatos com Pilha 7 Exercício 7.2. Seja o PDA M = ({q 0, q 1, q 2 }, {a, b}, {A}, δ, q 1, q 2 ) com função de transição δ(q 0, a, λ) = {(q 0, A)} δ(q 0, λ, λ) = {(q 1, λ)} δ(q 0, b, A) = {(q 2, λ)} δ(q 1, λ, A) = {(q 1, λ)} δ(q 1, b, A) = {(q 2, λ)} δ(q 2, λ, A) = {(q 2, λ)} a) Descreva a linguagem reconhecida por M. b) Desenhe o diagrama de estados de M. c) Mostre todas as computações de aab, abb, aba em M. d) Mostre que aabb, aaab pertencem a L(M).