Autômato com pilha IBM1088 Linguagens Formais e Teoria da Computação Evandro Eduardo Seron Ruiz evandro@usp.br Departmento de Computação e Matemática FFCLRP Universidade de São Paulo E.E.S Ruiz (DCM USP) LFA 1 / 27
Homenagem do dia Stephen Hawking People won t have time for you if you are always angry or complaining. SH: Físico, Inglês, 1942. E.E.S Ruiz (DCM USP) LFA 2 / 27
Conteúdo 1 Introdução 2 Definição formal e exemplos 3 Descrição instantânea 4 Determinismo e não-determinismo E.E.S Ruiz (DCM USP) LFA 3 / 27
Introdução Autômatos antes Autômatos finitos Linguagens Regulares AF têm memória limitada ao estado atual Baixo poder de processamento (se comparado com outras máquinas ) Insuficientes para atender GLC E.E.S Ruiz (DCM USP) LFA 4 / 27
Introdução Resolvendo GLC Autômatos com pilha: geram e reconhecem as LLC Autômatos com memória adicional: a pilha Neste autômato a pilha pode ser lida e escrita E.E.S Ruiz (DCM USP) LFA 5 / 27
Introdução Resolvendo GLC Autômatos com pilha: geram e reconhecem as LLC Autômatos com memória adicional: a pilha Neste autômato a pilha pode ser lida e escrita Pilha: operações push() e pop() sempre e só no topo da pilha A pilha não tem limitação de memória Pilha: estrutura de dados com capacidade ilimitada LIFO (last-in, first-out) Os autômatos com pilha (AP) são o segundo tipo, na escala de complexidade, dos reconhecedores sintáticos E.E.S Ruiz (DCM USP) LFA 5 / 27
Introdução Pilhas: duas formas de operação Stack push() + pop() no topo além de consulta direta nos demais elementos Pushdown push() + pop(), só. AP consideram o modo de operação pushdown. E.E.S Ruiz (DCM USP) LFA 6 / 27
Introdução Representação de um autômato com pilha Também representa a função de transição: δ : Q Σ Γ QΓ E.E.S Ruiz (DCM USP) LFA 7 / 27
Definição formal e exemplos 1 Introdução 2 Definição formal e exemplos 3 Descrição instantânea 4 Determinismo e não-determinismo E.E.S Ruiz (DCM USP) LFA 8 / 27
Definição formal e exemplos Definição Um autômato com pilha é uma 6-tupla (Q, Σ, Γ, δ, q 0, F ) em que: 1 Q é o conjunto de estados; 2 Σ é o alfabeto de entrada; 3 Γ (gama) é o alfabeto da pilha; 4 δ : Q Σ ɛ Γ ɛ P(Q Γ ɛ ) é a função de transição; 5 q 0 Q é o estado inicial; e 6 F Q é o conjunto de estados de aceitação. Lembrando que Σ ɛ = Σ {ɛ} e, analogamente, Γ ɛ = Γ {ɛ}. Pelo quarto item, entendemos que o estado atual, o símbolo lido e o símbolo do topo da pilha determinam a transição, ou seja, o novo estado e o topo da pilha. E.E.S Ruiz (DCM USP) LFA 9 / 27
Definição formal e exemplos AP: configuração Configuração de um AP Algebricamente, a configuração de um AP é representada por (q, α, γ) Q Σ Γ Configuração inicial de um AP: (q 0, w, $) Ou seja, o símbolo $ significa pilha vazia. E.E.S Ruiz (DCM USP) LFA 10 / 27
Definição formal e exemplos Modelos de aceitação Existem dois modelos distintos de aceitação ou reconhecimento de uma palavra para o AP: 1 Modelo baseado em estados finais 2 Modelo baseado em pilha vazia Os dois modelos são equipotentes. E.E.S Ruiz (DCM USP) LFA 11 / 27
Definição formal e exemplos Critério de aceitação Critério de estado final A linguagem denotada por L aceita pelo AP M com base no critério de estado final é definido como L(M) = {w Σ (q 0, w, $) (q, ɛ, γ), q F, γ Γ } E.E.S Ruiz (DCM USP) LFA 12 / 27
Definição formal e exemplos Critério de aceitação Critério de estado final A linguagem denotada por L aceita pelo AP M com base no critério de estado final é definido como L(M) = {w Σ (q 0, w, $) (q, ɛ, γ), q F, γ Γ } Critério de pilha vazia A linguagem denotada por V aceita pelo AP M com base no critério de pilha vazia é definido como V (M) = {w Σ (q 0, w, $) (q, ɛ, ɛ), q Q} E.E.S Ruiz (DCM USP) LFA 12 / 27
Definição formal e exemplos Estado da pilha Símbolos na pilha Considerando Γ = {γ 1, γ 2, γ 3, γ 4 }, o vocabulário da pilha, a cadeia γ 2, γ 1, γ 3, γ 3 é representada na pilha como γ 2 no topo da pilha e os demais símbolos seguem a baixo do topo. Pilha γ 2 γ 1 γ 3 γ 3 $ E.E.S Ruiz (DCM USP) LFA 13 / 27
Definição formal e exemplos Exemplo: L 1 = {a n b n n 0} Veja este exemplo usando o critério de estado final. a, ɛ X b, X ɛ ɛ, ɛ $ b, X ɛ ɛ, $ ɛ start q 1 q 2 q 3 q 4 Leia as regras de produção da seguinte forma: a, b c como: quando a máquina lê um símbolo a, ela substitui o símbolo b no topo da pilha pelo símbolo c; A pilha está vazia no seu início. O símbolo $ que representa esta situação. E.E.S Ruiz (DCM USP) LFA 14 / 27
Definição formal e exemplos Explicações A partir do estado q 1, sem que nenhum símbolo seja lido, ocorre a transição para q 2 e o símbolo $ é inserido na pilha (push()) A partir de q 2, a cada a lido, acrescenta-se o símbolo X na pilha. Perceba que a pilha atua como uma memória A partir do estágio em que b s começam a ser lidos, substituímos os X s da pilha (pop()) por ɛ Quando só restar o $, substitua-o por ɛ, restaurando a pilha ao seu estado original. E.E.S Ruiz (DCM USP) LFA 15 / 27
Definição formal e exemplos Vejamos outro exemplo: L(M 2 ) = {a 2i bc i i > 0} Exemplo de palavras: aabc, aaaabcc. ɛ, ɛ $ a, ɛ X start q 0 q 1 q 2 a, ɛ X a, ɛ ɛ q 3 b, X X q 5 ɛ, $ ɛ q 4 c, X ɛ Usamos aqui o critério de esvaziamento de pilha. E.E.S Ruiz (DCM USP) LFA 16 / 27
Definição formal e exemplos Mais um exemplo L 3 = {a i b j c k i = j ou i = k} Amáquina acumula todos os a s e depois tenta analisar a quantidade deles com a quantidade de b ou c Reparem que entra em cena o não-determinismo do problema. E.E.S Ruiz (DCM USP) LFA 17 / 27
Definição formal e exemplos Implementando L 3 = {a i b j c k i = j ou i = k} b, X ɛ c, ɛ ɛ a, ɛ X ɛ, ɛ $ start q 1 q 2 ɛ, ɛ ɛ ɛ, $ ɛ q 3 q 4 b, ɛ ɛ c, X ɛ ɛ, ɛ ɛ ɛ, $ ɛ q 5 q 6 q 7 ɛ, ɛ ɛ E.E.S Ruiz (DCM USP) LFA 18 / 27
Definição formal e exemplos Autômato 3: L 4 = {ww r w pertence a {a, b} } a, ɛ A b, ɛ B a, A ɛ b, B ɛ ɛ, ɛ $ ɛ, ɛ ɛ ɛ, $ ɛ start q 1 q 2 q 3 q 4 E.E.S Ruiz (DCM USP) LFA 19 / 27
Descrição instantânea 1 Introdução 2 Definição formal e exemplos 3 Descrição instantânea 4 Determinismo e não-determinismo E.E.S Ruiz (DCM USP) LFA 20 / 27
Descrição instantânea Recordando a função de transição para AP Função de transição para AP δ : Q Σ Γ Q Γ E.E.S Ruiz (DCM USP) LFA 21 / 27
Descrição instantânea Descrição instantânea Um AP tem a seguinte configuração a qualquer instante (q, w, y): q o estado atual w a cadeia (ou o restante da) de entrada y o conteúdo do topo da pilha Atentos! Se δ(q, a, X ) = {(p, A)} for uma transição, então os seguintes casos são verdadeiros: (q, a, X ) (p, ɛ, A) (q, aw, X B) (p, w, AB) Para representando um movimento e uma seqüência de movimentos. E.E.S Ruiz (DCM USP) LFA 22 / 27
Descrição instantânea Princípios derivados da descrição instantânea Teorema 1 Dado um AP, se (q, x, A) (p, y, B), então para qualquer cadeia w Σ e γ Γ, é correto afirmar que: (q, xw, Aγ) (p, yw, Bγ) E.E.S Ruiz (DCM USP) LFA 23 / 27
Descrição instantânea Princípios derivados da descrição instantânea Teorema 1 Dado um AP, se (q, x, A) (p, y, B), então para qualquer cadeia w Σ e γ Γ, é correto afirmar que: (q, xw, Aγ) (p, yw, Bγ) Teorema 2 Dado um AP, se (q, xw, A) (p, yw, B), então também é correto afirmar que: (q, x, A) (p, y, B) E.E.S Ruiz (DCM USP) LFA 23 / 27
Determinismo e não-determinismo 1 Introdução 2 Definição formal e exemplos 3 Descrição instantânea 4 Determinismo e não-determinismo E.E.S Ruiz (DCM USP) LFA 24 / 27
Determinismo e não-determinismo Determinísmo e não determinismo Um autômato com pilha é equivalente a uma LLC relativamente ao seu poder de expressão de linguagem E.E.S Ruiz (DCM USP) LFA 25 / 27
Determinismo e não-determinismo Determinísmo e não determinismo Um autômato com pilha é equivalente a uma LLC relativamente ao seu poder de expressão de linguagem Somente os autômatos com pilha não determinísticos podem definir todas as LLC E.E.S Ruiz (DCM USP) LFA 25 / 27
Determinismo e não-determinismo Determinísmo e não determinismo Um autômato com pilha é equivalente a uma LLC relativamente ao seu poder de expressão de linguagem Somente os autômatos com pilha não determinísticos podem definir todas as LLC Os analisadores sintáticos (parsers) são versões determinísticas de autômatos com pilha A maioria das LP têm autômatos com pilha como parsers E.E.S Ruiz (DCM USP) LFA 25 / 27
Determinismo e não-determinismo Autômatos determinísticos com pilha Para ser determinístico, um autômato deve ter somente uma escolha para um dado estado Ou seja, uma única opção de função programa δ(q, a, X ) para um estado q, a símbolo lido, X símbolo do topo da pilha Além disso, não deve existir uma escolha entre entrar com ɛ ou outro símbolo Formalmente, quando há mais de um elemento para δ(q, a, X ) a transição é dita não determinística E.E.S Ruiz (DCM USP) LFA 26 / 27
Determinismo e não-determinismo Autômatos determinísticos com pilha Para ser determinístico, um autômato deve ter somente uma escolha para um dado estado Ou seja, uma única opção de função programa δ(q, a, X ) para um estado q, a símbolo lido, X símbolo do topo da pilha Além disso, não deve existir uma escolha entre entrar com ɛ ou outro símbolo Formalmente, quando há mais de um elemento para δ(q, a, X ) a transição é dita não determinística Atenção! Os dois modos, determinístico e não determinístico, não são equivalente. Os AP não determinísticos reconhecem apenas um subconjunto das LLC. E.E.S Ruiz (DCM USP) LFA 26 / 27
Determinismo e não-determinismo Finalizando... Caros estudantes, Leiam os livros texto e façam os exercícios sugeridos. E.E.S Ruiz (DCM USP) LFA 27 / 27