Slides LFA
Slides LFA
Slides LFA
H. Longo
Introdução
Fundamentos
matemáticos
Alfabetos e
linguagens
Linguagens Formais e Autômatos
Autômatos
finitos
Linguagens e
gramáticas
Humberto Longo
regulares
Autômatos
com pilha e
GLC’s
Bacharelado em Ciência da Computação, 2018/2
Máquinas de
Turing
(1 – 1 de 1593)
LFA 2018/2
H. Longo
Introdução
Linguagens formais
Reconhecedores e
gramáticas
Hierarquia de
Chomsky
Fundamentos
matemáticos Introdução
Alfabetos e
linguagens
Autômatos
finitos Linguagens formais
Linguagens e
gramáticas
regulares
Linguagens
livres de
contexto
Autômatos
com pilha e
GLC’s
Máquinas de
Turing
(2 – 16 de 1593)
Linguagens Formais e Autômatos
LFA 2018/2
J.D.Ullman, J.E.Hopcroft, R. Motwani - Introdução à Teoria de Autômatos, Linguagens e Computação
H. Longo
“A Teoria dos Autômatos é o estudo dos dispositivos de computação abstratos, ou ‘máquinas’. Antes de existirem
Introdução os computadores, na década de 1930, Alan Turing estudou uma máquina abstrata que tinha todas as
Linguagens formais
características dos computadores atuais, pelo menos no que se refere ao quanto eles poderiam calcular. O
Reconhecedores e
gramáticas objetivo de Turing era descrever com exatidão o limite entre o que uma máquina de computação podia fazer e
Hierarquia de
Chomsky
aquilo que ela não podia fazer.
Fundamentos Nas décadas de 1940 e 1950, tipos de máquinas mais simples, que hoje chamamos ‘autômatos finitos’, foram
matemáticos estudados por diversos pesquisadores. Esses autômatos, propostos originalmente para modelar a função do
Alfabetos e cérebro (através de modelos conhecidos como ‘Redes Neuronais’), se mostraram extremamente úteis para uma
linguagens grande variedade de outros propósitos.
Autômatos Também no final dos anos 50, o linguista Noam Chomsky iniciou o estudo de ‘gramáticas’ formais. Embora não
finitos
sejam estritamente máquinas, essas gramáticas têm relacionamentos estreitos com os autômatos abstratos e
Linguagens e hoje servem como a base de alguns importantes componentes de software, incluindo algumas partes dos
gramáticas
regulares
compiladores.
Linguagens Todos estes desenvolvimentos teóricos têm relação direta com aquilo que os cientistas da computação fazem
livres de hoje. Alguns conceitos, como autômatos finitos e certos tipos de gramáticas formais, são usados no projeto e na
contexto construção de componentes de software. Outros conceitos, como a máquina de Turing, ajudam a entender o que
Autômatos podemos esperar de nosso software. Em especial, a teoria de problemas intratáveis nos permite deduzir se
com pilha e temos a chance de, ao nos depararmos com um problema, sermos capazes de escrever um programa para
GLC’s
resolvê-lo (porque ele não pertence à classe intratável), ou se teremos de descobrir algum modo de contornar o
Máquinas de problema intratável: encontrar uma aproximação, usar uma heurística ou empregar algum outro método para
Turing
limitar o período de tempo que o programa despendera para resolver o problema”.
(3 – 16 de 1593)
Linguagem
LFA 2018/2
H. Longo
Introdução
Linguagens formais
Reconhecedores e
gramáticas
Hierarquia de Definição?
Chomsky
Linguagens
livres de
contexto
Autômatos
com pilha e
GLC’s
Máquinas de
Turing
(4 – 16 de 1593)
Linguagem
LFA 2018/2
H. Longo
Introdução
Linguagens formais
Reconhecedores e
gramáticas
Hierarquia de Definição?
Chomsky
Autômatos
com pilha e
GLC’s
Máquinas de
Turing
(5 – 16 de 1593)
Linguagem
LFA 2018/2
H. Longo
Introdução
Linguagens formais
Reconhecedores e
gramáticas
Hierarquia de
Chomsky
Uma linguagem é um meio de comunicação, utilizado por elementos de uma
Fundamentos
determinada comunidade, formado por:
matemáticos Conjunto de palavras.
Alfabetos e Conjunto de regras gramaticais.
linguagens
Autômatos
finitos
Linguagens e
gramáticas
regulares
Linguagens
livres de
contexto
Autômatos
com pilha e
GLC’s
Máquinas de
Turing
(6 – 16 de 1593)
Linguagem
LFA 2018/2
H. Longo
Introdução
Linguagens formais
Reconhecedores e
gramáticas
Hierarquia de
Chomsky
Uma linguagem é um meio de comunicação, utilizado por elementos de uma
Fundamentos
determinada comunidade, formado por:
matemáticos Conjunto de palavras.
Alfabetos e Conjunto de regras gramaticais.
linguagens
Autômatos
finitos
Uma linguagem é formal quando pode ser representada através de um
Linguagens e
sistema, com sustentação matemática, formado por:
gramáticas
regulares
Sintaxe (estrutura) – foco da disciplina.
Linguagens
Semântica (significado) – não interessa para nós.
livres de
contexto
Autômatos
com pilha e
GLC’s
Máquinas de
Turing
(7 – 16 de 1593)
Linguagens Formais
LFA 2018/2
H. Longo
Introdução
Linguagens formais
Reconhecedores e
gramáticas
Mecanismos formais para representação/especificação de linguagens,
Hierarquia de
Chomsky baseados na chamada “Teoria da Computação”.
Fundamentos
matemáticos Reconhecedores: dispositivos formais que servem para verificar se uma
Alfabetos e
linguagens
palavra pertence ou não à determinada linguagem (autômatos finitos,
Autômatos
autômatos de pilha e máquina de Turing).
finitos
Linguagens e
Geradores: dispositivos formais que permitem a geração sistemática de
gramáticas
regulares
todas as palavras de uma linguagem. Os principais sistemas geradores
Linguagens disponíveis são as gramáticas, onde se destacam as gramáticas de
livres de
contexto
Chomsky.
Autômatos
com pilha e
GLC’s
Máquinas de
Turing
(8 – 16 de 1593)
Linguagens Formais e Autômatos
LFA 2018/2
H. Longo
Introdução
Linguagens formais
Objetivo
Reconhecedores e
gramáticas Estudo de modelos matemáticos que possibilitam a especificação e o
Hierarquia de
Chomsky
reconhecimento de linguagens (no sentido formal do termo), suas
Fundamentos
matemáticos classificações, estruturas, propriedades, características e
Alfabetos e inter-relacionamentos.
linguagens
Autômatos
finitos
Linguagens e
gramáticas
regulares
Linguagens
livres de
contexto
Autômatos
com pilha e
GLC’s
Máquinas de
Turing
(9 – 16 de 1593)
Linguagens Formais e Autômatos
LFA 2018/2
H. Longo
Introdução
Linguagens formais
Objetivo
Reconhecedores e
gramáticas Estudo de modelos matemáticos que possibilitam a especificação e o
Hierarquia de
Chomsky
reconhecimento de linguagens (no sentido formal do termo), suas
Fundamentos
matemáticos classificações, estruturas, propriedades, características e
Alfabetos e inter-relacionamentos.
linguagens
Autômatos
finitos Importância na Ciência da Computação
Linguagens e
gramáticas
Apoio a outros aspectos teóricos da Ciência da Computação (decidibilidade,
regulares computabilidade, complexidade computacional, . . . ).
Linguagens
livres de
contexto Fundamenta diversas aplicações computacionais (processamento de
Autômatos linguagens, reconhecimento de padrões, modelagem de sistemas, . . . ).
com pilha e
GLC’s
Máquinas de
Turing
(10 – 16 de 1593)
Definições
LFA 2018/2
Autômatos
Exemplos: 01, a, b, abc.
finitos
Linguagens e
gramáticas
regulares
Linguagens
livres de
contexto
Autômatos
com pilha e
GLC’s
Máquinas de
Turing
(11 – 16 de 1593)
Definições
LFA 2018/2
Autômatos
Exemplos: 01, a, b, abc.
finitos
Linguagens e
gramáticas
Notação
Σ : conjunto de símbolos (um alfabeto).
regulares
Linguagens
livres de
contexto
ε : cadeia ou palavra vazia.
Autômatos Σ∗ : conjunto de todas as palavras possíveis sobre Σ.
com pilha e
GLC’s
Σ+ = Σ∗ − {ε}.
Máquinas de
Turing
(12 – 16 de 1593)
Definições
LFA 2018/2
Autômatos
Exemplos: 01, a, b, abc.
finitos
Linguagens e
gramáticas
Notação
Σ : conjunto de símbolos (um alfabeto).
regulares
Linguagens
livres de
contexto
ε : cadeia ou palavra vazia.
Autômatos Σ∗ : conjunto de todas as palavras possíveis sobre Σ.
com pilha e
GLC’s
Σ+ = Σ∗ − {ε}.
Máquinas de
Turing |w| : comprimento ou tamanho da palavra w (número de símbolos em w).
(13 – 16 de 1593)
Linguagem Formal
LFA 2018/2
H. Longo
Introdução
Linguagens formais Dado um alfabeto Σ, uma linguagem em Σ é um conjunto de sequências de
Reconhecedores e
gramáticas
Hierarquia de
símbolos (palavras) do alfabeto.
Chomsky
Fundamentos
matemáticos
Alfabetos e
linguagens
Autômatos
finitos
Linguagens e
gramáticas
regulares
Linguagens
livres de
contexto
Autômatos
com pilha e
GLC’s
Máquinas de
Turing
(14 – 16 de 1593)
Linguagem Formal
LFA 2018/2
H. Longo
Introdução
Linguagens formais Dado um alfabeto Σ, uma linguagem em Σ é um conjunto de sequências de
Reconhecedores e
gramáticas
Hierarquia de
símbolos (palavras) do alfabeto.
Chomsky
Autômatos Finitas: {a, b, aa, ab, ba, bb}, {ε, aaa, bbb}, {aaa, aab, aba, abb}.
finitos Infinitas: o conjunto {ε, a, b, aa, bb, aaa, aba, bab, bbb, aaaa, . . . } de palíndromos
Linguagens e
gramáticas
sobre Σ.
regulares
Linguagens
livres de
contexto
Autômatos
com pilha e
GLC’s
Máquinas de
Turing
(15 – 16 de 1593)
Linguagem Formal
LFA 2018/2
H. Longo
Introdução
Linguagens formais Dado um alfabeto Σ, uma linguagem em Σ é um conjunto de sequências de
Reconhecedores e
gramáticas
Hierarquia de
símbolos (palavras) do alfabeto.
Chomsky
Autômatos Finitas: {a, b, aa, ab, ba, bb}, {ε, aaa, bbb}, {aaa, aab, aba, abb}.
finitos Infinitas: o conjunto {ε, a, b, aa, bb, aaa, aba, bab, bbb, aaaa, . . . } de palíndromos
Linguagens e
gramáticas
sobre Σ.
regulares
Máquinas de
Turing
(16 – 16 de 1593)
LFA 2018/2
H. Longo
Introdução
Linguagens formais
Reconhecedores e
gramáticas
Hierarquia de
Chomsky
Fundamentos
matemáticos Introdução
Alfabetos e
linguagens
Autômatos
finitos Reconhecedores e gramáticas
Linguagens e
gramáticas
regulares
Linguagens
livres de
contexto
Autômatos
com pilha e
GLC’s
Máquinas de
Turing
(17 – 35 de 1593)
Reconhecedor
LFA 2018/2
H. Longo
Introdução
Um reconhecedor de L ⊆ Σ∗ é a representação de um procedimento que,
Linguagens formais quando apresentado a uma cadeia w ∈ Σ∗ :
Reconhecedores e
gramáticas
Hierarquia de
Chomsky
Fundamentos
matemáticos
Alfabetos e
linguagens
Autômatos
finitos
Linguagens e
gramáticas
regulares
Linguagens
livres de
contexto
Autômatos
com pilha e
GLC’s
Máquinas de
Turing
(18 – 35 de 1593)
Reconhecedor
LFA 2018/2
H. Longo
Introdução
Um reconhecedor de L ⊆ Σ∗ é a representação de um procedimento que,
Linguagens formais quando apresentado a uma cadeia w ∈ Σ∗ :
Reconhecedores e
gramáticas 1 se w ∈ L, para e responde sim, após um número finito de passos; ou
Hierarquia de
Chomsky
Fundamentos
matemáticos
Alfabetos e
linguagens
Autômatos
finitos
Linguagens e
gramáticas
regulares
Linguagens
livres de
contexto
Autômatos
com pilha e
GLC’s
Máquinas de
Turing
(19 – 35 de 1593)
Reconhecedor
LFA 2018/2
H. Longo
Introdução
Um reconhecedor de L ⊆ Σ∗ é a representação de um procedimento que,
Linguagens formais quando apresentado a uma cadeia w ∈ Σ∗ :
Reconhecedores e
gramáticas 1 se w ∈ L, para e responde sim, após um número finito de passos; ou
Hierarquia de
Chomsky 2 se w < L, para e responde não, após um número finito de passos; ou
Fundamentos
matemáticos
Alfabetos e
linguagens
Autômatos
finitos
Linguagens e
gramáticas
regulares
Linguagens
livres de
contexto
Autômatos
com pilha e
GLC’s
Máquinas de
Turing
(20 – 35 de 1593)
Reconhecedor
LFA 2018/2
H. Longo
Introdução
Um reconhecedor de L ⊆ Σ∗ é a representação de um procedimento que,
Linguagens formais quando apresentado a uma cadeia w ∈ Σ∗ :
Reconhecedores e
gramáticas 1 se w ∈ L, para e responde sim, após um número finito de passos; ou
Hierarquia de
Chomsky 2 se w < L, para e responde não, após um número finito de passos; ou
Fundamentos 3 não para!
matemáticos
Alfabetos e
linguagens
Autômatos
finitos
Linguagens e
gramáticas
regulares
Linguagens
livres de
contexto
Autômatos
com pilha e
GLC’s
Máquinas de
Turing
(21 – 35 de 1593)
Reconhecedor
LFA 2018/2
H. Longo
Introdução
Um reconhecedor de L ⊆ Σ∗ é a representação de um procedimento que,
Linguagens formais quando apresentado a uma cadeia w ∈ Σ∗ :
Reconhecedores e
gramáticas 1 se w ∈ L, para e responde sim, após um número finito de passos; ou
Hierarquia de
Chomsky 2 se w < L, para e responde não, após um número finito de passos; ou
Fundamentos 3 não para!
matemáticos
Alfabetos e
linguagens
Cadeia w = w1 w2 · · · wn ∈ Σ∗
Autômatos
finitos Fita de entrada
Linguagens e ... w1 w2 ... wn−1 wn ...
gramáticas
regulares
Linguagens
Cabeça de leitura/escrita
(movimento bidirecional)
livres de
contexto
Controle
Autômatos
com pilha e finito de Memória
GLC’s estados
Máquinas de
Turing
(22 – 35 de 1593)
Reconhecedor
LFA 2018/2
H. Longo
Introdução
Linguagens formais
Reconhecedores e
gramáticas Uma configuração do reconhecedor é uma descrição:
Hierarquia de
Chomsky 1 do estado do controle finito,
Fundamentos 2 do conteúdo da fita de entrada e da posição da cabeça de leitura/escrita, e
matemáticos
3 do conteúdo da memória.
Alfabetos e
linguagens
Autômatos
finitos
Linguagens e
gramáticas
regulares
Linguagens
livres de
contexto
Autômatos
com pilha e
GLC’s
Máquinas de
Turing
(23 – 35 de 1593)
Reconhecedor
LFA 2018/2
H. Longo
Introdução
Linguagens formais
Reconhecedores e
gramáticas Uma configuração do reconhecedor é uma descrição:
Hierarquia de
Chomsky 1 do estado do controle finito,
Fundamentos 2 do conteúdo da fita de entrada e da posição da cabeça de leitura/escrita, e
matemáticos
3 do conteúdo da memória.
Alfabetos e
linguagens Um reconhecedor aceita (ou reconhece) uma cadeia w se:
Autômatos
finitos
1 parte de uma configuração inicial;
2 a cabeça de leitura/escrita faz uma sequência finita de movimentos; e
Linguagens e
gramáticas 3 termina em uma configuração final.
regulares
Linguagens
livres de
contexto
Autômatos
com pilha e
GLC’s
Máquinas de
Turing
(24 – 35 de 1593)
Reconhecedor
LFA 2018/2
H. Longo
Introdução
Linguagens formais
Reconhecedores e
gramáticas Uma configuração do reconhecedor é uma descrição:
Hierarquia de
Chomsky 1 do estado do controle finito,
Fundamentos 2 do conteúdo da fita de entrada e da posição da cabeça de leitura/escrita, e
matemáticos
3 do conteúdo da memória.
Alfabetos e
linguagens Um reconhecedor aceita (ou reconhece) uma cadeia w se:
Autômatos
finitos
1 parte de uma configuração inicial;
2 a cabeça de leitura/escrita faz uma sequência finita de movimentos; e
Linguagens e
gramáticas 3 termina em uma configuração final.
regulares
Linguagens
A linguagem aceita por um reconhecedor R é:
livres de
contexto
L(R) = {w ∈ Σ∗ | R aceita w}.
Autômatos
com pilha e
GLC’s
Máquinas de
Turing
(25 – 35 de 1593)
Gramáticas
LFA 2018/2
H. Longo
Introdução
Linguagens formais
Reconhecedores e
gramáticas
Hierarquia de
Definição 1.1
Chomsky
Fundamentos
Uma gramática é uma 4-upla G = (V, Σ, P, S ) onde:
matemáticos
V é um conjunto finito não vazio de símbolos, chamados de não-terminais;
Alfabetos e
linguagens
Σ é um conjunto finito não vazio de símbolos, chamados de terminais, tal que
Autômatos
Σ ∩ V = ∅;
finitos S é o símbolo (não terminal) inicial (S ∈ V ); e
Linguagens e P é um conjunto de regras de derivação (ou de produção) da forma α → β, onde:
gramáticas
regulares α ∈ (V ∪ Σ)∗ V(V ∪ Σ)∗ ,
Linguagens
β ∈ (V ∪ Σ)∗ .
livres de
contexto
Autômatos
com pilha e
GLC’s
Máquinas de
Turing
(26 – 35 de 1593)
Gramáticas
LFA 2018/2
H. Longo
Exemplo 1.2
Introdução G = (V, Σ, P, S ) onde:
Linguagens formais
Reconhecedores e
gramáticas
Hierarquia de
Chomsky V = {S , N p , V p , Vi , Vt , V s , C, P f }
Fundamentos
matemáticos Σ = {João, Maria, sorri, ama, pensa, que}
Alfabetos e
linguagens
S → Np VpP f
Autômatos
V p → V i | Vt N p | V s C S
finitos
N → João | Maria
Linguagens e
p
gramáticas
Vi → sorri
regulares
P=
Linguagens
livres de
Vt → ama
contexto
V → pensa
s
Autômatos
com pilha e
GLC’s
C → que
P → .
Máquinas de f
Turing
(27 – 35 de 1593)
Gramáticas
LFA 2018/2
H. Longo
Exemplo 1.3
Introdução
Linguagens formais
Reconhecedores e
G = (V, Σ, P, S ), onde:
V = {A, S },
gramáticas
Hierarquia de
Chomsky
S : símbolo (não-terminal) inicial,
Σ = {a, b},
Fundamentos
matemáticos
Autômatos
finitos
Linguagens e
gramáticas
regulares
Linguagens
livres de
contexto
Autômatos
com pilha e
GLC’s
Máquinas de
Turing
(28 – 35 de 1593)
Gramáticas
LFA 2018/2
H. Longo
Exemplo 1.3
Introdução
Linguagens formais
Reconhecedores e
G = (V, Σ, P, S ), onde:
V = {A, S },
gramáticas
Hierarquia de
Chomsky
S : símbolo (não-terminal) inicial,
Σ = {a, b},
Fundamentos
matemáticos
Autômatos
finitos Exemplo 1.4
Linguagens e
gramáticas
L = {0n 1n | n ≥ 1} = {01, 0011, 000111, . . . }.
regulares
Gramática que gera L:
Linguagens
livres de
contexto
Autômatos
com pilha e
GLC’s
Máquinas de
Turing
(29 – 35 de 1593)
Gramáticas
LFA 2018/2
H. Longo
Exemplo 1.3
Introdução
Linguagens formais
Reconhecedores e
G = (V, Σ, P, S ), onde:
V = {A, S },
gramáticas
Hierarquia de
Chomsky
S : símbolo (não-terminal) inicial,
Σ = {a, b},
Fundamentos
matemáticos
Autômatos
finitos Exemplo 1.4
Linguagens e
gramáticas
L = {0n 1n | n ≥ 1} = {01, 0011, 000111, . . . }.
regulares
Gramática que gera L:
Linguagens
livres de Σ = {0, 1},
contexto
Símbolo inicial: S ,
Autômatos
com pilha e
V = {S },
GLC’s P = {S → 0S 1, S → 01}.
Máquinas de
Turing
(30 – 35 de 1593)
Gramáticas
LFA 2018/2
H. Longo
Introdução
Linguagens formais
Reconhecedores e
gramáticas
Hierarquia de
Chomsky
No contexto usual de linguagens de programação:
Fundamentos
matemáticos Σ (símbolos) ≡ palavras reservadas, variáveis definidas, símbolos
Alfabetos e
linguagens
numéricos, operadores, delimitadores . . .
Autômatos w (cadeia) ≡ programa sintaticamente correto,
finitos
L (linguagem) ≡ conjunto de programas sintaticamente corretos,
Linguagens e
gramáticas G (gramática) ≡ estrutura sintática dos programas.
regulares
Linguagens
livres de
contexto
Autômatos
com pilha e
GLC’s
Máquinas de
Turing
(31 – 35 de 1593)
BNF – Forma Normal de Backus
LFA 2018/2
H. Longo
Introdução
Linguagens formais
Reconhecedores e
gramáticas
Hierarquia de
Chomsky
Outro modo de se representar algumas gramáticas (GLC).
Fundamentos Símbolo → é substituído por ::=.
matemáticos
Autômatos
As várias regras de derivação de um mesmo símbolo não terminal A são
finitos escritas como: hAi ::= β1 | β2 | . . . | βn .
Linguagens e
gramáticas Os símbolos h, i, ::= e | formam a metalinguagem, ou seja, são símbolos que
regulares
não fazem parte da linguagem mas ajudam a descrevê-la!
Linguagens
livres de
contexto
Autômatos
com pilha e
GLC’s
Máquinas de
Turing
(32 – 35 de 1593)
BNF – Forma Normal de Backus
LFA 2018/2
H. Longo
Exemplo 1.5
Introdução
Linguagens formais G = (V, Σ, P, S ) onde:
Reconhecedores e
gramáticas
Hierarquia de
Fundamentos
matemáticos
Σ = {o, a, peixe, comeu, isca};
Alfabetos e
linguagens S = hsentençai e
Autômatos
hsentençai ::= hsnihsvi
finitos
Linguagens e
hsn i ::= hartigo ihsubstantivo i
gramáticas
regulares
h sv i ::= hverbo ih sn i
P= .
Linguagens
livres de
contexto
h artigo i ::= o | a
hverbo i ::= mordeu
Autômatos
com pilha e
GLC’s hsubstantivoi ::= peixe | isca
Máquinas de
Turing
(33 – 35 de 1593)
BNF – Forma Normal de Backus
LFA 2018/2
H. Longo
Exemplo 1.6 (Subconjunto da gramática da linguagem Pascal)
Introdução
Linguagens formais
Regras léxicas:
Reconhecedores e
gramáticas
Hierarquia de
Chomsky
hdigiti ::= 0 | 1 | . . . | 9
Fundamentos
matemáticos hnumberi ::= hdigiti | hdigitihnumberi | −hnumberi
Alfabetos e
linguagens hidentifieri ::= hletteri | hidentifierihletteri | hidentifierihdigiti
Autômatos
finitos
hletteri ::= a | b | c | . . . | z
Linguagens e hoperatori ::= + | − | ∗ | /
gramáticas
regulares hrelationi ::= <= | >= | == | > | < |!=
Linguagens
livres de
contexto
Autômatos
com pilha e
GLC’s
Máquinas de
Turing
(34 – 35 de 1593)
BNF – Forma Normal de Backus
LFA 2018/2
H. Longo
Exemplo 1.6 (Subconjunto da gramática da linguagem Pascal)
Introdução
Linguagens formais
Regras sintáticas:
Reconhecedores e
gramáticas
Hierarquia de
Chomsky
hprogrami ::= program hidentifieri; hblocki
Fundamentos
matemáticos
hblocki ::= hdeclaration seqi begin hcommand seqi end.
Alfabetos e hdeclaration seqi ::= ε | hdeclarationihdeclaration seqi
linguagens
Autômatos
hdeclarationi ::= var hvariable listi : htypei;
finitos
htypei ::= boolean | integer | real | string
Linguagens e
gramáticas
regulares
hcommand seqi ::= hcommandi | hcommandihcommand seqi
Linguagens hcommmandi ::= hvariablei = hexpressioni |
livres de
contexto if hboolean expri then hcommand seqi end |
Autômatos
com pilha e while hboolean expri do hcommand seqi end |
GLC’s
Máquinas de
...
Turing
(35 – 35 de 1593)
LFA 2018/2
H. Longo
Introdução
Linguagens formais
Reconhecedores e
gramáticas
Hierarquia de
Chomsky
Fundamentos
matemáticos Introdução
Alfabetos e
linguagens
Autômatos
finitos Hierarquia de Chomsky
Linguagens e
gramáticas
regulares
Linguagens
livres de
contexto
Autômatos
com pilha e
GLC’s
Máquinas de
Turing
(36 – 48 de 1593)
Tipos de Gramáticas
LFA 2018/2
H. Longo
Introdução
Linguagens formais
Reconhecedores e
gramáticas
Hierarquia de
Definição 1.7 (Gramática Irrestrita ou Tipo-0)
G = (V, Σ, P, S ), onde:
Chomsky
Fundamentos
matemáticos V= conjunto finito não vazio de símbolos, chamados de não-terminais;
Alfabetos e
linguagens
Σ= conjunto finito não vazio de símbolos, chamados de terminais, tal que Σ ∩ V = ∅;
S = símbolo (não terminal) inicial (S ∈ V ); e
Autômatos
finitos P= conjunto de regras (de produção) da forma α → β, onde:
Linguagens e α ∈ (V ∪ Σ)+ ,
gramáticas
regulares
β ∈ (V ∪ Σ)∗ .
Linguagens
livres de
contexto
Autômatos
com pilha e
GLC’s
Máquinas de
Turing
(37 – 48 de 1593)
Tipos de Gramáticas
LFA 2018/2
H. Longo
Introdução
Linguagens formais
Reconhecedores e
gramáticas
Hierarquia de
Definição 1.7 (Gramática Irrestrita ou Tipo-0)
G = (V, Σ, P, S ), onde:
Chomsky
Fundamentos
matemáticos V= conjunto finito não vazio de símbolos, chamados de não-terminais;
Alfabetos e
linguagens
Σ= conjunto finito não vazio de símbolos, chamados de terminais, tal que Σ ∩ V = ∅;
S = símbolo (não terminal) inicial (S ∈ V ); e
Autômatos
finitos P= conjunto de regras (de produção) da forma α → β, onde:
Linguagens e α ∈ (V ∪ Σ)+ ,
gramáticas
regulares
β ∈ (V ∪ Σ)∗ .
Linguagens Gramática Semi-Thue ou Gramática de Estrutura de Frase.
livres de
contexto
Autômatos
com pilha e
GLC’s
Máquinas de
Turing
(38 – 48 de 1593)
Tipos de Gramáticas
LFA 2018/2
H. Longo
Introdução
Linguagens formais
Reconhecedores e
gramáticas
Hierarquia de
Chomsky
Definição 1.8 (Gramática Sensível ao Contexto ou Tipo-1)
Fundamentos
matemáticos G = (V, Σ, P, S ), com toda produção α → β de P da forma:
Alfabetos e α ∈ (V ∪ Σ)∗ (V ∪ Σ)(V ∪ Σ)∗ ,
β ∈ (V ∪ Σ)∗ (V ∪ Σ)+ (V ∪ Σ)∗ ,
linguagens
Autômatos
finitos S → ε.
Linguagens e Se esta regra de produção ocorrer, S não pode aparecer no lado direito de
gramáticas qualquer outra produção.
regulares
Linguagens
livres de
contexto
Autômatos
com pilha e
GLC’s
Máquinas de
Turing
(39 – 48 de 1593)
Tipos de Gramáticas
LFA 2018/2
H. Longo
Introdução
Linguagens formais
Reconhecedores e
gramáticas
Hierarquia de
Chomsky
Fundamentos
matemáticos
Definição 1.9 (Gramática Livre de Contexto ou Tipo-2)
Alfabetos e G = (V, Σ, P, S ), com toda produção α → β de P da forma:
linguagens
Autômatos
α ∈ V,
finitos β ∈ (V ∪ Σ)∗ .
Linguagens e
gramáticas
regulares
Linguagens
livres de
contexto
Autômatos
com pilha e
GLC’s
Máquinas de
Turing
(40 – 48 de 1593)
Tipos de Gramáticas
LFA 2018/2
H. Longo
Introdução
Linguagens formais
Reconhecedores e
gramáticas
Hierarquia de
Chomsky
Fundamentos
matemáticos
Definição 1.10 (Gramática Regular ou Tipo-3)
Alfabetos e G = (V, Σ, P, S ), com toda produção α → β de P da forma:
linguagens
Autômatos
α ∈ V,
finitos β ∈ ΣV ∪ VΣ ∪ Σ ∪ ε.
Linguagens e
gramáticas
regulares
Linguagens
livres de
contexto
Autômatos
com pilha e
GLC’s
Máquinas de
Turing
(41 – 48 de 1593)
Tipos de Gramáticas
LFA 2018/2
H. Longo
Introdução
Linguagens formais
Reconhecedores e
Observações
gramáticas
Hierarquia de
Chomsky
Tipos 2 e 3: só existe 1 não-terminal no lado esquerdo das produções.
Fundamentos Tipo-1: pode haver mais de 1 não-terminal no lado esquerdo, mas só 1 é
matemáticos
transformado em cada regra de produção.
Alfabetos e
linguagens
Tipo-0: qualquer quantidade de não-terminais no lado esquerdo das
Autômatos
finitos produções.
Linguagens e
gramáticas
regulares
Linguagens
livres de
contexto
Autômatos
com pilha e
GLC’s
Máquinas de
Turing
(42 – 48 de 1593)
Tipos de Gramáticas
LFA 2018/2
H. Longo
Introdução
Linguagens formais
Reconhecedores e
Observações
gramáticas
Hierarquia de
Chomsky
Tipos 2 e 3: só existe 1 não-terminal no lado esquerdo das produções.
Fundamentos Tipo-1: pode haver mais de 1 não-terminal no lado esquerdo, mas só 1 é
matemáticos
transformado em cada regra de produção.
Alfabetos e
linguagens
Tipo-0: qualquer quantidade de não-terminais no lado esquerdo das
Autômatos
finitos produções.
Linguagens e
gramáticas
regulares Definição 1.11
Linguagens
livres de
Uma linguagem L é do Tipo- x, se existe uma gramática G do Tipo- x, L = L(G)
contexto
(isto é, a linguagem L é gerada pela gramática G).
Autômatos
com pilha e
GLC’s
Máquinas de
Turing
(43 – 48 de 1593)
Hierarquia de Chomsky
LFA 2018/2
H. Longo
Introdução
Linguagens formais
Tipos de linguagens e reconhecedores
Reconhecedores e
gramáticas
Hierarquia de
Chomsky
Irrestrita ≡ Tipo 0
Fundamentos Recursivamente Enumerável
matemáticos (Máquina de Turing – MT)
Alfabetos e
linguagens
Sensível ao Contexto ≡ Tipo 1
Autômatos
finitos
(Autômato Limitado Linearmente – LBA)
Linguagens e
gramáticas Livre de Contexto ≡ Tipo 2
regulares
(Autômato com Pilha – PDA)
Linguagens
livres de
contexto
Regular ≡ Tipo 3
(Autômato Finito – DFA)
Autômatos
com pilha e
GLC’s
Máquinas de
Turing
(44 – 48 de 1593)
Hierarquia de Chomsky
LFA 2018/2
H. Longo
Alfabetos e
linguagens
Autômatos
finitos
Linguagens e
gramáticas
regulares
Linguagens
livres de
contexto
Autômatos
com pilha e
GLC’s
Máquinas de
Turing
(45 – 48 de 1593)
Hierarquia de Chomsky
LFA 2018/2
H. Longo
Alfabetos e
linguagens
L.B.A. Memória proporcional ao comprimento da cadeia de entrada.
Autômatos
finitos
Linguagens e
gramáticas
regulares
Linguagens
livres de
contexto
Autômatos
com pilha e
GLC’s
Máquinas de
Turing
(46 – 48 de 1593)
Hierarquia de Chomsky
LFA 2018/2
H. Longo
Alfabetos e
linguagens
L.B.A. Memória proporcional ao comprimento da cadeia de entrada.
Linguagens e
gramáticas
P.D.A Memória em pilha, com uma quantidade fixa de posições disponíveis
regulares
em um dado tempo.
Linguagens
livres de
contexto
Autômatos
com pilha e
GLC’s
Máquinas de
Turing
(47 – 48 de 1593)
Hierarquia de Chomsky
LFA 2018/2
H. Longo
Alfabetos e
linguagens
L.B.A. Memória proporcional ao comprimento da cadeia de entrada.
Linguagens e
gramáticas
P.D.A Memória em pilha, com uma quantidade fixa de posições disponíveis
regulares
em um dado tempo.
Linguagens
livres de
contexto Tipo-3 Produções da forma (unitária) A → wB ou A → w tal que
Autômatos A, B ∈ V, w ∈ (Σ ∪ {ε}).
com pilha e
GLC’s D.F.A. Sem memória.
Máquinas de
Turing
(48 – 48 de 1593)
LFA 2018/2
H. Longo
Introdução
Fundamentos
matemáticos
Conjuntos
Relações e funções
Conjuntos infinitos
Lógica
Definições, teoremas
Fundamentos matemáticos
e provas
Indução
Alfabetos e
linguagens
Conjuntos
Autômatos
finitos
Linguagens e
gramáticas
regulares
Linguagens
livres de
contexto
Autômatos
com pilha e
GLC’s
Máquinas de
Turing (49 – 76 de 1593)
Notação
LFA 2018/2
H. Longo
Introdução
Alfabetos e
linguagens
Autômatos
finitos
Linguagens e
gramáticas
regulares
Linguagens
livres de
contexto
Autômatos
com pilha e
GLC’s
Máquinas de
Turing (50 – 76 de 1593)
Notação
LFA 2018/2
H. Longo
Introdução
Alfabetos e
linguagens
Autômatos
finitos
Linguagens e
gramáticas
regulares
Linguagens
livres de
contexto
Autômatos
com pilha e
GLC’s
Máquinas de
Turing (51 – 76 de 1593)
Notação
LFA 2018/2
H. Longo
Introdução
Autômatos
com pilha e
GLC’s
Máquinas de
Turing (52 – 76 de 1593)
Notação
LFA 2018/2
H. Longo
Introdução
Fundamentos
matemáticos
A ( B ≡ A ⊂ B ≡ A ⊆ B e A , B : subconjunto próprio.
Conjuntos
Relações e funções
A = B ⇒ A ⊆ B e B ⊆ A.
Conjuntos infinitos
Lógica
Definições, teoremas
e provas
Indução
Alfabetos e
linguagens
Autômatos
finitos
Linguagens e
gramáticas
regulares
Linguagens
livres de
contexto
Autômatos
com pilha e
GLC’s
Máquinas de
Turing (53 – 76 de 1593)
Notação
LFA 2018/2
H. Longo
Introdução
Fundamentos
matemáticos
A ( B ≡ A ⊂ B ≡ A ⊆ B e A , B : subconjunto próprio.
Conjuntos
Relações e funções
A = B ⇒ A ⊆ B e B ⊆ A.
Conjuntos infinitos
Lógica
Definições, teoremas Para qualquer conjunto S , ∅:
e provas
Indução
S ⊆ S : subconjunto impróprio.
Alfabetos e
linguagens
∅ ⊂ S : ∅ é subconjunto próprio de qualquer conjunto S .
Autômatos
finitos
Linguagens e
gramáticas
regulares
Linguagens
livres de
contexto
Autômatos
com pilha e
GLC’s
Máquinas de
Turing (54 – 76 de 1593)
Notação
LFA 2018/2
H. Longo
Introdução
Fundamentos
matemáticos
A ( B ≡ A ⊂ B ≡ A ⊆ B e A , B : subconjunto próprio.
Conjuntos
Relações e funções
A = B ⇒ A ⊆ B e B ⊆ A.
Conjuntos infinitos
Lógica
Definições, teoremas Para qualquer conjunto S , ∅:
e provas
Indução
S ⊆ S : subconjunto impróprio.
Alfabetos e
linguagens
∅ ⊂ S : ∅ é subconjunto próprio de qualquer conjunto S .
Autômatos
finitos P(S ) : conjunto das partes de S .
Linguagens e conjunto potência de S .
gramáticas
regulares todos os subconjuntos de S .
Linguagens |P(S )| = 2|S | .
livres de
contexto
Autômatos
com pilha e
GLC’s
Máquinas de
Turing (55 – 76 de 1593)
Notação
LFA 2018/2
H. Longo
Introdução
Fundamentos
matemáticos
A ( B ≡ A ⊂ B ≡ A ⊆ B e A , B : subconjunto próprio.
Conjuntos
Relações e funções
A = B ⇒ A ⊆ B e B ⊆ A.
Conjuntos infinitos
Lógica
Definições, teoremas Para qualquer conjunto S , ∅:
e provas
Indução
S ⊆ S : subconjunto impróprio.
Alfabetos e
linguagens
∅ ⊂ S : ∅ é subconjunto próprio de qualquer conjunto S .
Autômatos
finitos P(S ) : conjunto das partes de S .
Linguagens e conjunto potência de S .
gramáticas
regulares todos os subconjuntos de S .
Linguagens |P(S )| = 2|S | . (Exercício: Provar esta igualdade.)
livres de
contexto
Autômatos
com pilha e
GLC’s
Máquinas de
Turing (56 – 76 de 1593)
Operações em conjuntos
LFA 2018/2
H. Longo
Introdução
U : conjunto universo.
A − B = {x ∈ U | x ∈ A e x < B}.
Fundamentos
matemáticos
Conjuntos
A ∩ B = {x ∈ U | x ∈ A e x ∈ B}.
Relações e funções
Conjuntos infinitos
A ∪ B = {x ∈ U | x ∈ A ou x ∈ B}.
Lógica
Definições, teoremas
e provas
Indução
Alfabetos e
linguagens
Autômatos
finitos
Linguagens e
gramáticas
regulares
Linguagens
livres de
contexto
Autômatos
com pilha e
GLC’s
Máquinas de
Turing (57 – 76 de 1593)
Operações em conjuntos
LFA 2018/2
H. Longo
Introdução
U : conjunto universo.
A − B = {x ∈ U | x ∈ A e x < B}.
Fundamentos
matemáticos
Conjuntos
A ∩ B = {x ∈ U | x ∈ A e x ∈ B}.
Relações e funções
Conjuntos infinitos
A ∪ B = {x ∈ U | x ∈ A ou x ∈ B}.
Lógica
Definições, teoremas
e provas
Indução
Autômatos
U
A = {x | x ∈ e x < A}.
finitos A = A0 = Ac = {U
A
.
Linguagens e
gramáticas
A∩A=∅e A∪A= . U
A
regulares
{B quando A ⊆ B.
Linguagens B
livres de {A quando B ⊆ A.
contexto
Autômatos
com pilha e
GLC’s
Máquinas de
Turing (58 – 76 de 1593)
Produto cartesiano
LFA 2018/2
H. Longo
Introdução
Fundamentos
matemáticos
Conjuntos
A × B = {(a, b) | a ∈ A e b ∈ B}
Relações e funções
Conjuntos infinitos
Lógica
Definições, teoremas
e provas
Indução
Alfabetos e
linguagens
Autômatos
finitos
Linguagens e
gramáticas
regulares
Linguagens
livres de
contexto
Autômatos
com pilha e
GLC’s
Máquinas de
Turing (59 – 76 de 1593)
Produto cartesiano
LFA 2018/2
H. Longo
Introdução
Fundamentos
matemáticos
Conjuntos
A × B = {(a, b) | a ∈ A e b ∈ B}
Relações e funções
Conjuntos infinitos
Lógica
Definições, teoremas n
e provas
Indução
Ai = A1 × A2 × . . . × An = {(a1 , a2 , . . . , an ) | ai ∈ Ai }
i=1
Alfabetos e
linguagens
Autômatos
finitos
Linguagens e
gramáticas
regulares
Linguagens
livres de
contexto
Autômatos
com pilha e
GLC’s
Máquinas de
Turing (60 – 76 de 1593)
Produto cartesiano
LFA 2018/2
H. Longo
Introdução
Fundamentos
matemáticos
Conjuntos
A × B = {(a, b) | a ∈ A e b ∈ B}
Relações e funções
Conjuntos infinitos
Lógica
Definições, teoremas n
e provas
Indução
Ai = A1 × A2 × . . . × An = {(a1 , a2 , . . . , an ) | ai ∈ Ai }
i=1
Alfabetos e
linguagens
n
Autômatos
Ai = A, i = 1, . . . , n ⇒ Ai = An
finitos i=1
Linguagens e
gramáticas
regulares
Linguagens
livres de
contexto
Autômatos
com pilha e
GLC’s
Máquinas de
Turing (61 – 76 de 1593)
Propriedades
LFA 2018/2
H. Longo
Introdução
Fundamentos
matemáticos
A ⊆ (A ∪ B) e B ⊆ (A ∪ B).
Conjuntos
Relações e funções
(A ∩ B) ⊆ A e (A ∩ B) ⊆ B.
Conjuntos infinitos
Lógica
Definições, teoremas
e provas
Indução
Alfabetos e
linguagens
Autômatos
finitos
Linguagens e
gramáticas
regulares
Linguagens
livres de
contexto
Autômatos
com pilha e
GLC’s
Máquinas de
Turing (62 – 76 de 1593)
Propriedades
LFA 2018/2
H. Longo
Introdução
Fundamentos
matemáticos
A ⊆ (A ∪ B) e B ⊆ (A ∪ B).
Conjuntos
Relações e funções
(A ∩ B) ⊆ A e (A ∩ B) ⊆ B.
Conjuntos infinitos
Lógica
Definições, teoremas
A ⊆ D e B ⊆ D ⇒ (A ∪ B) ⊆ D.
e provas
Indução D ⊆ A e D ⊆ B ⇒ D ⊆ (A ∩ B).
Alfabetos e
linguagens
Autômatos
finitos
Linguagens e
gramáticas
regulares
Linguagens
livres de
contexto
Autômatos
com pilha e
GLC’s
Máquinas de
Turing (63 – 76 de 1593)
Propriedades
LFA 2018/2
H. Longo
Introdução
Fundamentos
matemáticos
A ⊆ (A ∪ B) e B ⊆ (A ∪ B).
Conjuntos
Relações e funções
(A ∩ B) ⊆ A e (A ∩ B) ⊆ B.
Conjuntos infinitos
Lógica
Definições, teoremas
A ⊆ D e B ⊆ D ⇒ (A ∪ B) ⊆ D.
e provas
Indução D ⊆ A e D ⊆ B ⇒ D ⊆ (A ∩ B).
Alfabetos e
linguagens
|A ∪ B| ≤ |A| + |B|.
Autômatos
finitos |A ∩ B| ≤ min{|A|, |B|}.
Linguagens e
gramáticas |A − B| ≤ |A|.
regulares
Linguagens
|A × B| ≤ |A|.|B|.
livres de
contexto
Autômatos
com pilha e
GLC’s
Máquinas de
Turing (64 – 76 de 1593)
Princípio da Inclusão e Exclusão
LFA 2018/2
H. Longo
Introdução
Alfabetos e
linguagens
Autômatos
finitos
Linguagens e
gramáticas
regulares
Linguagens
livres de
contexto
Autômatos
com pilha e
GLC’s
Máquinas de
Turing (65 – 76 de 1593)
Princípio da Inclusão e Exclusão
LFA 2018/2
H. Longo
Introdução
Alfabetos e
linguagens
Autômatos
finitos
Linguagens e
gramáticas
regulares
Linguagens
livres de
contexto
Autômatos
com pilha e
GLC’s
Máquinas de
Turing (66 – 76 de 1593)
Princípio da Inclusão e Exclusão
LFA 2018/2
H. Longo
Introdução
Autômatos
com pilha e
GLC’s
Máquinas de
Turing (67 – 76 de 1593)
Leis da álgebra de conjuntos
LFA 2018/2
H. Longo
Comutativas:
Introdução A ∪ B = B ∪ A.
Fundamentos A ∩ B = B ∩ A.
matemáticos
Conjuntos
Relações e funções
Conjuntos infinitos
Lógica
Definições, teoremas
e provas
Indução
Alfabetos e
linguagens
Autômatos
finitos
Linguagens e
gramáticas
regulares
Linguagens
livres de
contexto
Autômatos
com pilha e
GLC’s
Máquinas de
Turing (68 – 76 de 1593)
Leis da álgebra de conjuntos
LFA 2018/2
H. Longo
Comutativas:
Introdução A ∪ B = B ∪ A.
Fundamentos A ∩ B = B ∩ A.
matemáticos
Conjuntos
Relações e funções
Conjuntos infinitos
Associativas:
Lógica
Definições, teoremas
(A ∪ B) ∪ C = A ∪ (B ∪ C).
e provas
Indução
(A ∩ B) ∩ C = A ∪ (B ∩ C).
Alfabetos e
linguagens
Autômatos
finitos
Linguagens e
gramáticas
regulares
Linguagens
livres de
contexto
Autômatos
com pilha e
GLC’s
Máquinas de
Turing (69 – 76 de 1593)
Leis da álgebra de conjuntos
LFA 2018/2
H. Longo
Comutativas:
Introdução A ∪ B = B ∪ A.
Fundamentos A ∩ B = B ∩ A.
matemáticos
Conjuntos
Relações e funções
Conjuntos infinitos
Associativas:
Lógica
Definições, teoremas
(A ∪ B) ∪ C = A ∪ (B ∪ C).
e provas
Indução
(A ∩ B) ∩ C = A ∪ (B ∩ C).
Alfabetos e
linguagens Distributivas:
Autômatos (A ∪ B) ∩ C = (A ∩ C) ∪ (B ∩ C).
finitos
(A ∩ B) ∪ C = (A ∪ C) ∩ (B ∪ C).
Linguagens e
gramáticas
regulares
Linguagens
livres de
contexto
Autômatos
com pilha e
GLC’s
Máquinas de
Turing (70 – 76 de 1593)
Leis da álgebra de conjuntos
LFA 2018/2
H. Longo
Comutativas:
Introdução A ∪ B = B ∪ A.
Fundamentos A ∩ B = B ∩ A.
matemáticos
Conjuntos
Relações e funções
Conjuntos infinitos
Associativas:
Lógica
Definições, teoremas
(A ∪ B) ∪ C = A ∪ (B ∪ C).
e provas
Indução
(A ∩ B) ∩ C = A ∪ (B ∩ C).
Alfabetos e
linguagens Distributivas:
Autômatos (A ∪ B) ∩ C = (A ∩ C) ∪ (B ∩ C).
finitos
(A ∩ B) ∪ C = (A ∪ C) ∩ (B ∪ C).
Linguagens e
gramáticas
regulares Identidades:
Linguagens
(A ∪ ∅) = A.
U U
livres de
contexto (A ∪ ) = .
Autômatos (A ∩ ∅) = ∅.
com pilha e
GLC’s U
(A ∩ ) = A.
Máquinas de
Turing (71 – 76 de 1593)
Leis da álgebra de conjuntos
LFA 2018/2
H. Longo
Idempotentes:
Introdução
(A ∪ A) = A.
Fundamentos
matemáticos (A ∩ A) = A.
Conjuntos
Relações e funções
Conjuntos infinitos
Lógica
Definições, teoremas
e provas
Indução
Alfabetos e
linguagens
Autômatos
finitos
Linguagens e
gramáticas
regulares
Linguagens
livres de
contexto
Autômatos
com pilha e
GLC’s
Máquinas de
Turing (72 – 76 de 1593)
Leis da álgebra de conjuntos
LFA 2018/2
H. Longo
Idempotentes:
Introdução
(A ∪ A) = A.
Fundamentos
matemáticos (A ∩ A) = A.
Conjuntos
Relações e funções
Conjuntos infinitos Complementação:
Lógica
Definições, teoremas
e provas
U
(A ∪ Ac ) = .
(A ∩ Ac ) = ∅.
U
Indução
Alfabetos e
c
= ∅.
linguagens
∅ = .
c
U
Autômatos
finitos (Ac )c = A.
Linguagens e
gramáticas
regulares
Linguagens
livres de
contexto
Autômatos
com pilha e
GLC’s
Máquinas de
Turing (73 – 76 de 1593)
Leis da álgebra de conjuntos
LFA 2018/2
H. Longo
Idempotentes:
Introdução
(A ∪ A) = A.
Fundamentos
matemáticos (A ∩ A) = A.
Conjuntos
Relações e funções
Conjuntos infinitos Complementação:
Lógica
Definições, teoremas
e provas
U
(A ∪ Ac ) = .
(A ∩ Ac ) = ∅.
U
Indução
Alfabetos e
c
= ∅.
linguagens
∅ = .
c
U
Autômatos
finitos (Ac )c = A.
Linguagens e
gramáticas DeMorgan:
regulares
Linguagens
(A ∪ B)c = Ac ∩ Bc .
livres de (A ∩ B)c = Ac ∪ Bc .
contexto
A − (B ∪ C) = (A − B) ∩ (A − C).
A − (B ∩ C) = (A − B) ∪ (A − C).
Autômatos
com pilha e
GLC’s
Máquinas de
Turing (74 – 76 de 1593)
Partição de um conjunto
LFA 2018/2
H. Longo
Introdução
Fundamentos
matemáticos
Conjuntos
Relações e funções Π = {Ai ⊂ A | i ∈ I}.
Conjuntos infinitos
Lógica I : conjunto de índices (não necessariamente finito).
Definições, teoremas
e provas A : conjunto qualquer.
Indução
Alfabetos e
linguagens
Autômatos
finitos
Linguagens e
gramáticas
regulares
Linguagens
livres de
contexto
Autômatos
com pilha e
GLC’s
Máquinas de
Turing (75 – 76 de 1593)
Partição de um conjunto
LFA 2018/2
H. Longo
Introdução
Fundamentos
matemáticos
Conjuntos
Relações e funções Π = {Ai ⊂ A | i ∈ I}.
Conjuntos infinitos
Lógica I : conjunto de índices (não necessariamente finito).
Definições, teoremas
e provas A : conjunto qualquer.
Indução
Linguagens
livres de
contexto
Autômatos
com pilha e
GLC’s
Máquinas de
Turing (76 – 76 de 1593)
LFA 2018/2
H. Longo
Introdução
Fundamentos
matemáticos
Conjuntos
Relações e funções
Conjuntos infinitos
Lógica
Definições, teoremas
Fundamentos matemáticos
e provas
Indução
Alfabetos e
linguagens
Relações e funções
Autômatos
finitos
Linguagens e
gramáticas
regulares
Linguagens
livres de
contexto
Autômatos
com pilha e
GLC’s
Máquinas de
Turing (77 – 119 de 1593)
Relação binária
LFA 2018/2
H. Longo
Introdução
Fundamentos
matemáticos
Conjuntos
Relações e funções
Conjuntos infinitos
R ⊆ A × A:
Lógica
Definições, teoremas
a R b ⇔ (a, b) ∈ R.
e provas
Indução
Alfabetos e
linguagens
Autômatos
finitos
Linguagens e
gramáticas
regulares
Linguagens
livres de
contexto
Autômatos
com pilha e
GLC’s
Máquinas de
Turing (78 – 119 de 1593)
Relação binária
LFA 2018/2
H. Longo
Introdução
Fundamentos
matemáticos
Conjuntos
Relações e funções
Conjuntos infinitos
R ⊆ A × A:
Lógica
Definições, teoremas
a R b ⇔ (a, b) ∈ R.
N × N.
e provas
R1 = {(x, y) | x = y + 1} ⊆
Indução
R2 = {(x, y) | x + y é impar} ⊆ N × N.
Alfabetos e
linguagens
R3 = {(x, y) | x · y é par} ⊆ N × N.
Autômatos
finitos
Linguagens e
gramáticas
regulares
Linguagens
livres de
contexto
Autômatos
com pilha e
GLC’s
Máquinas de
Turing (79 – 119 de 1593)
Tipos de relação
LFA 2018/2
H. Longo
Introdução
Fundamentos
matemáticos A, B : conjuntos finitos.
Conjuntos
Relações e funções
Conjuntos infinitos
R = {(a, b) | a ∈ A e b ∈ B}:
Lógica
Definições, teoremas
e provas
Indução
Alfabetos e
linguagens
Autômatos
finitos
Linguagens e
gramáticas
regulares
Linguagens
livres de
contexto
Autômatos
com pilha e
GLC’s
Máquinas de
Turing (80 – 119 de 1593)
Tipos de relação
LFA 2018/2
H. Longo
Introdução
Fundamentos
matemáticos A, B : conjuntos finitos.
Conjuntos
Relações e funções
Conjuntos infinitos
R = {(a, b) | a ∈ A e b ∈ B}:
Lógica
Definições, teoremas
um-para-um (injetiva, biunívoca);
e provas
Indução
um-para-vários;
Alfabetos e vários-para-um (unívoca); e
linguagens vários-para-vários.
Autômatos
finitos
Linguagens e
gramáticas
regulares
Linguagens
livres de
contexto
Autômatos
com pilha e
GLC’s
Máquinas de
Turing (81 – 119 de 1593)
Tipos de relação
LFA 2018/2
H. Longo
Introdução
Fundamentos
matemáticos A, B : conjuntos finitos.
Conjuntos
Relações e funções
Conjuntos infinitos
R = {(a, b) | a ∈ A e b ∈ B}:
Lógica
Definições, teoremas
um-para-um (injetiva, biunívoca);
e provas
Indução
um-para-vários;
Alfabetos e vários-para-um (unívoca); e
linguagens vários-para-vários.
Autômatos
finitos
Relação inversa:
Linguagens e
gramáticas R = {(a, b) | a ∈ A e b ∈ B}.
regulares R−1 = {(b, a) ∈ B × A | (a, b) ∈ R}.
Linguagens
livres de
contexto
Autômatos
com pilha e
GLC’s
Máquinas de
Turing (82 – 119 de 1593)
Operações com relações
LFA 2018/2
H. Longo
Introdução
Fundamentos
matemáticos
Conjuntos
Relações e funções
Conjuntos infinitos R1 , R2 : relações definidas no conjunto finito S , ∅.
Lógica
Definições, teoremas
e provas
Indução
Alfabetos e
linguagens
Autômatos
finitos
Linguagens e
gramáticas
regulares
Linguagens
livres de
contexto
Autômatos
com pilha e
GLC’s
Máquinas de
Turing (83 – 119 de 1593)
Operações com relações
LFA 2018/2
H. Longo
Introdução
Fundamentos
matemáticos
Conjuntos
Relações e funções
Conjuntos infinitos R1 , R2 : relações definidas no conjunto finito S , ∅.
Lógica
Definições, teoremas
e provas x(R1 ∪ R2 )y ⇔ xR1 y ou x R2 y.
Indução
Alfabetos e
linguagens
x(R1 ∩ R2 )y ⇔ xR1 y e x R2 y.
Autômatos
finitos
x(Rc1 )y ⇔ x R
6 1 y ((x, y) < R1 ).
Linguagens e
gramáticas
regulares
Linguagens
livres de
contexto
Autômatos
com pilha e
GLC’s
Máquinas de
Turing (84 – 119 de 1593)
Propriedades
LFA 2018/2
H. Longo
Introdução
Fundamentos
matemáticos
Conjuntos R : relação definida no conjunto finito S , ∅.
Relações e funções
Conjuntos infinitos
Lógica
Definições, teoremas
e provas
Indução
Alfabetos e
linguagens
Autômatos
finitos
Linguagens e
gramáticas
regulares
Linguagens
livres de
contexto
Autômatos
com pilha e
GLC’s
Máquinas de
Turing (85 – 119 de 1593)
Propriedades
LFA 2018/2
H. Longo
Introdução
Fundamentos
matemáticos
Conjuntos R : relação definida no conjunto finito S , ∅.
Relações e funções
Conjuntos infinitos
Lógica
Reflexiva : xRx, ∀ x ∈ S .
Definições, teoremas
e provas
Indução
Alfabetos e
linguagens
Autômatos
finitos
Linguagens e
gramáticas
regulares
Linguagens
livres de
contexto
Autômatos
com pilha e
GLC’s
Máquinas de
Turing (86 – 119 de 1593)
Propriedades
LFA 2018/2
H. Longo
Introdução
Fundamentos
matemáticos
Conjuntos R : relação definida no conjunto finito S , ∅.
Relações e funções
Conjuntos infinitos
Lógica
Reflexiva : xRx, ∀ x ∈ S .
Definições, teoremas
e provas 6 x, ∀ x ∈ S ((x, x) < R).
Irreflexiva : x R
Indução
Alfabetos e
linguagens
Autômatos
finitos
Linguagens e
gramáticas
regulares
Linguagens
livres de
contexto
Autômatos
com pilha e
GLC’s
Máquinas de
Turing (87 – 119 de 1593)
Propriedades
LFA 2018/2
H. Longo
Introdução
Fundamentos
matemáticos
Conjuntos R : relação definida no conjunto finito S , ∅.
Relações e funções
Conjuntos infinitos
Lógica
Reflexiva : xRx, ∀ x ∈ S .
Definições, teoremas
e provas 6 x, ∀ x ∈ S ((x, x) < R).
Irreflexiva : x R
Indução
Autômatos
finitos
Linguagens e
gramáticas
regulares
Linguagens
livres de
contexto
Autômatos
com pilha e
GLC’s
Máquinas de
Turing (88 – 119 de 1593)
Propriedades
LFA 2018/2
H. Longo
Introdução
Fundamentos
matemáticos
Conjuntos R : relação definida no conjunto finito S , ∅.
Relações e funções
Conjuntos infinitos
Lógica
Reflexiva : xRx, ∀ x ∈ S .
Definições, teoremas
e provas 6 x, ∀ x ∈ S ((x, x) < R).
Irreflexiva : x R
Indução
Autômatos
Antissimétrica : xRy e yRx ⇒ x = y, ∀ x, y ∈ S .
finitos
Antissimétrica : x , y ⇒ x R
6 y ou y R
6 x.
Linguagens e
gramáticas
regulares
Linguagens
livres de
contexto
Autômatos
com pilha e
GLC’s
Máquinas de
Turing (89 – 119 de 1593)
Propriedades
LFA 2018/2
H. Longo
Introdução
Fundamentos
matemáticos
Conjuntos R : relação definida no conjunto finito S , ∅.
Relações e funções
Conjuntos infinitos
Lógica
Reflexiva : xRx, ∀ x ∈ S .
Definições, teoremas
e provas 6 x, ∀ x ∈ S ((x, x) < R).
Irreflexiva : x R
Indução
Autômatos
Antissimétrica : xRy e yRx ⇒ x = y, ∀ x, y ∈ S .
finitos
Antissimétrica : x , y ⇒ x R
6 y ou y R
6 x.
Linguagens e
gramáticas Transitiva : xRy e yRz ⇒ xRz, ∀ x, y, z ∈ S .
regulares
Linguagens
livres de
contexto
Autômatos
com pilha e
GLC’s
Máquinas de
Turing (90 – 119 de 1593)
Fecho de uma relação
LFA 2018/2
H. Longo
Introdução
Fundamentos
matemáticos
Conjuntos
Relações e funções
R, R∗ : relações definidas no conjunto finito S , ∅.
Conjuntos infinitos
Lógica
Definições, teoremas
e provas
Indução
Alfabetos e
linguagens
Autômatos
finitos
Linguagens e
gramáticas
regulares
Linguagens
livres de
contexto
Autômatos
com pilha e
GLC’s
Máquinas de
Turing (91 – 119 de 1593)
Fecho de uma relação
LFA 2018/2
H. Longo
Introdução
Fundamentos
matemáticos
Conjuntos
Relações e funções
R, R∗ : relações definidas no conjunto finito S , ∅.
Conjuntos infinitos
Lógica R∗ é o fecho de R em relação à propriedade P se:
Definições, teoremas
e provas
Indução
R∗ tem a propriedade P;
Alfabetos e R ⊆ R∗ ;
linguagens
R∗ é o menor conjunto que satisfaz os itens anteriores;
Autômatos
finitos
Linguagens e
gramáticas
regulares
Linguagens
livres de
contexto
Autômatos
com pilha e
GLC’s
Máquinas de
Turing (92 – 119 de 1593)
Fecho de uma relação
LFA 2018/2
H. Longo
Introdução
Fundamentos
matemáticos
Conjuntos
Relações e funções
R, R∗ : relações definidas no conjunto finito S , ∅.
Conjuntos infinitos
Lógica R∗ é o fecho de R em relação à propriedade P se:
Definições, teoremas
e provas
Indução
R∗ tem a propriedade P;
Alfabetos e R ⊆ R∗ ;
linguagens
R∗ é o menor conjunto que satisfaz os itens anteriores;
Autômatos
finitos R∗ é subconjunto de qualquer outra relação em S que inclui R e tem a
Linguagens e propriedade P.
gramáticas
regulares
Linguagens
livres de
contexto
Autômatos
com pilha e
GLC’s
Máquinas de
Turing (93 – 119 de 1593)
Fecho de uma relação
LFA 2018/2
H. Longo
Introdução
Fundamentos
matemáticos
Conjuntos
Relações e funções
Exemplo 2.1
S = {1, 2, 3}.
Conjuntos infinitos
Lógica
Definições, teoremas
e provas
Indução
R = {(1, 1), (1, 2), (1, 3), (3, 1), (2, 3)}.
Alfabetos e
linguagens
Autômatos
finitos
Linguagens e
gramáticas
regulares
Linguagens
livres de
contexto
Autômatos
com pilha e
GLC’s
Máquinas de
Turing (94 – 119 de 1593)
Fecho de uma relação
LFA 2018/2
H. Longo
Introdução
Fundamentos
matemáticos
Conjuntos
Relações e funções
Exemplo 2.1
S = {1, 2, 3}.
Conjuntos infinitos
Lógica
Definições, teoremas
e provas
Indução
R = {(1, 1), (1, 2), (1, 3), (3, 1), (2, 3)}.
Alfabetos e
linguagens
Fecho reflexivo: {(1, 1), (1, 2), (1, 3), (3, 1), (2, 3), (2, 2), (3, 3)}.
Autômatos Fecho simétrico: {(1, 1), (1, 2), (1, 3), (3, 1), (2, 3), (2, 1), (3, 2)}.
finitos
Fecho transitivo: {(1, 1), (1, 2), (1, 3), (3, 1), (2, 3), (3, 2), (3, 3), (2, 1), (2, 2)}.
Linguagens e
gramáticas
regulares
Linguagens
livres de
contexto
Autômatos
com pilha e
GLC’s
Máquinas de
Turing (95 – 119 de 1593)
Ordem parcial
LFA 2018/2
H. Longo
Introdução
Fundamentos
matemáticos
Conjuntos
Relações e funções
R : relação definida no conjunto finito S , ∅.
Conjuntos infinitos
Lógica
Definições, teoremas
R é de ordem parcial se é reflexiva, antissimétrica e transitiva:
e provas
Indução
Alfabetos e
linguagens
Autômatos
finitos
Linguagens e
gramáticas
regulares
Linguagens
livres de
contexto
Autômatos
com pilha e
GLC’s
Máquinas de
Turing (96 – 119 de 1593)
Ordem parcial
LFA 2018/2
H. Longo
Introdução
Fundamentos
matemáticos
Conjuntos
Relações e funções
R : relação definida no conjunto finito S , ∅.
Conjuntos infinitos
Lógica
Definições, teoremas
R é de ordem parcial se é reflexiva, antissimétrica e transitiva:
e provas
Indução
∀ x ∈ S ⇒ xRx.
Alfabetos e
∀ x, y ∈ S , xRy e yRx ⇒ x = y.
linguagens ∀ x, y, z ∈ S , xRy e yRz ⇒ xRz.
Autômatos
finitos
Linguagens e
gramáticas
regulares
Linguagens
livres de
contexto
Autômatos
com pilha e
GLC’s
Máquinas de
Turing (97 – 119 de 1593)
Ordem parcial
LFA 2018/2
H. Longo
Introdução
Fundamentos
matemáticos
Conjuntos
Relações e funções
R : relação definida no conjunto finito S , ∅.
Conjuntos infinitos
Lógica
Definições, teoremas
R é de ordem parcial se é reflexiva, antissimétrica e transitiva:
e provas
Indução
∀ x ∈ S ⇒ xRx.
Alfabetos e
∀ x, y ∈ S , xRy e yRx ⇒ x = y.
linguagens ∀ x, y, z ∈ S , xRy e yRz ⇒ xRz.
Autômatos
finitos x y(R) ≡ (x, y) ∈ R:
Linguagens e x precede y na relação R.
gramáticas
regulares
Linguagens
livres de
contexto
Autômatos
com pilha e
GLC’s
Máquinas de
Turing (98 – 119 de 1593)
Ordem total
LFA 2018/2
H. Longo
Introdução
Fundamentos
matemáticos
Conjuntos
Relações e funções
Conjuntos infinitos
Lógica R : relação definida no conjunto finito S , ∅.
Definições, teoremas
e provas
Indução R é de ordem total se:
Alfabetos e
linguagens
Autômatos
finitos
Linguagens e
gramáticas
regulares
Linguagens
livres de
contexto
Autômatos
com pilha e
GLC’s
Máquinas de
Turing (99 – 119 de 1593)
Ordem total
LFA 2018/2
H. Longo
Introdução
Fundamentos
matemáticos
Conjuntos
Relações e funções
Conjuntos infinitos
Lógica R : relação definida no conjunto finito S , ∅.
Definições, teoremas
e provas
Indução R é de ordem total se:
Alfabetos e R é de ordem parcial.
linguagens
∀ x, y ∈ S ⇒ x y(R) ou y x(R).
Autômatos
finitos
Linguagens e
gramáticas
regulares
Linguagens
livres de
contexto
Autômatos
com pilha e
GLC’s
Máquinas de
Turing (100 – 119 de 1593)
Relação de equivalência
LFA 2018/2
H. Longo
Introdução
Fundamentos
matemáticos
Conjuntos
Relações e funções
Conjuntos infinitos
R : relação definida no conjunto finito S , ∅.
Lógica
Definições, teoremas R é relação de equivalência se e somente se é reflexiva, simétrica e transitiva:
e provas
Indução
Alfabetos e
linguagens
Autômatos
finitos
Linguagens e
gramáticas
regulares
Linguagens
livres de
contexto
Autômatos
com pilha e
GLC’s
Máquinas de
Turing (101 – 119 de 1593)
Relação de equivalência
LFA 2018/2
H. Longo
Introdução
Fundamentos
matemáticos
Conjuntos
Relações e funções
Conjuntos infinitos
R : relação definida no conjunto finito S , ∅.
Lógica
Definições, teoremas R é relação de equivalência se e somente se é reflexiva, simétrica e transitiva:
e provas
Indução ∀ x ∈ S ⇒ xRx.
Alfabetos e ∀ x, y ∈ S , xRy ⇒ yRx.
linguagens
∀ x, y, z ∈ S , xRy e yRz ⇒ xRz.
Autômatos
finitos
Linguagens e
gramáticas
regulares
Linguagens
livres de
contexto
Autômatos
com pilha e
GLC’s
Máquinas de
Turing (102 – 119 de 1593)
Relação de equivalência
LFA 2018/2
H. Longo
Introdução
Fundamentos
matemáticos
Conjuntos
Relações e funções
Conjuntos infinitos
R : relação definida no conjunto finito S , ∅.
Lógica
Definições, teoremas R é relação de equivalência se e somente se é reflexiva, simétrica e transitiva:
e provas
Indução ∀ x ∈ S ⇒ xRx.
Alfabetos e ∀ x, y ∈ S , xRy ⇒ yRx.
linguagens
∀ x, y, z ∈ S , xRy e yRz ⇒ xRz.
N × N | x − y = 3·k para algum k ∈ Z}.
Autômatos
R = {(x, y) ∈
finitos
Linguagens e
gramáticas
regulares
Linguagens
livres de
contexto
Autômatos
com pilha e
GLC’s
Máquinas de
Turing (103 – 119 de 1593)
Classe de equivalência
LFA 2018/2
H. Longo
Introdução
R : relação definida no conjunto finito S , ∅.
Fundamentos
matemáticos
Conjuntos
a = {x ∈ S | xRa e a ∈ S } : classe de equivalência módulo R determinada por
Relações e funções
Conjuntos infinitos
a.
Lógica
Definições, teoremas S /R : conjunto das classes de equivalência módulo R.
e provas
Indução
Alfabetos e
linguagens
Autômatos
finitos
Linguagens e
gramáticas
regulares
Linguagens
livres de
contexto
Autômatos
com pilha e
GLC’s
Máquinas de
Turing (104 – 119 de 1593)
Classe de equivalência
LFA 2018/2
H. Longo
Introdução
R : relação definida no conjunto finito S , ∅.
Fundamentos
matemáticos
Conjuntos
a = {x ∈ S | xRa e a ∈ S } : classe de equivalência módulo R determinada por
Relações e funções
Conjuntos infinitos
a.
Lógica
Definições, teoremas S /R : conjunto das classes de equivalência módulo R.
e provas
Indução
Alfabetos e
linguagens
Teorema 2.2
Autômatos Se R é relação de equivalência sobre o conjunto S , então S /R é partição de S .
finitos
Linguagens e
gramáticas
regulares
Linguagens
livres de
contexto
Autômatos
com pilha e
GLC’s
Máquinas de
Turing (105 – 119 de 1593)
Classe de equivalência
LFA 2018/2
H. Longo
Introdução
R : relação definida no conjunto finito S , ∅.
Fundamentos
matemáticos
Conjuntos
a = {x ∈ S | xRa e a ∈ S } : classe de equivalência módulo R determinada por
Relações e funções
Conjuntos infinitos
a.
Lógica
Definições, teoremas S /R : conjunto das classes de equivalência módulo R.
e provas
Indução
Alfabetos e
linguagens
Teorema 2.2
Autômatos Se R é relação de equivalência sobre o conjunto S , então S /R é partição de S .
finitos
Linguagens e
gramáticas Teorema 2.3
regulares
Linguagens
Se Π é uma partição do conjunto S , então existe uma relação R de
livres de
contexto
equivalência sobre S , de modo que S /R = Π.
Autômatos
com pilha e
GLC’s
Máquinas de
Turing (106 – 119 de 1593)
Relação n-ária
LFA 2018/2
H. Longo
Introdução
Fundamentos
matemáticos S 1 , S 2 , · · · , S n – conjuntos.
Conjuntos
Relações e funções
Conjuntos infinitos
Relação n-ária em S 1 , S 2 , · · · , S n :
Lógica Subconjunto de S 1 × S 2 × · · · × S n .
Definições, teoremas
e provas
Indução
Alfabetos e
linguagens
Autômatos
finitos
Linguagens e
gramáticas
regulares
Linguagens
livres de
contexto
Autômatos
com pilha e
GLC’s
Máquinas de
Turing (107 – 119 de 1593)
Relação n-ária
LFA 2018/2
H. Longo
Introdução
Fundamentos
matemáticos S 1 , S 2 , · · · , S n – conjuntos.
Conjuntos
Relações e funções
Conjuntos infinitos
Relação n-ária em S 1 , S 2 , · · · , S n :
Lógica Subconjunto de S 1 × S 2 × · · · × S n .
Definições, teoremas
e provas
Indução Relação unária R em um conjunto S :
Alfabetos e R ⊆ S.
linguagens
Autômatos
x ∈ S satisfaz R se e somente se x ∈ R.
finitos
Linguagens e
gramáticas
regulares
Linguagens
livres de
contexto
Autômatos
com pilha e
GLC’s
Máquinas de
Turing (108 – 119 de 1593)
Relação n-ária
LFA 2018/2
H. Longo
Introdução
Fundamentos
matemáticos S 1 , S 2 , · · · , S n – conjuntos.
Conjuntos
Relações e funções
Conjuntos infinitos
Relação n-ária em S 1 , S 2 , · · · , S n :
Lógica Subconjunto de S 1 × S 2 × · · · × S n .
Definições, teoremas
e provas
Indução Relação unária R em um conjunto S :
Alfabetos e R ⊆ S.
linguagens
Autômatos
x ∈ S satisfaz R se e somente se x ∈ R.
finitos
Relação n-ária R em um conjunto S :
Linguagens e
gramáticas R ⊆ S n.
regulares
Conjunto de n-uplas ordenadas de elementos de S .
Linguagens
livres de
contexto
Autômatos
com pilha e
GLC’s
Máquinas de
Turing (109 – 119 de 1593)
Funções
LFA 2018/2
H. Longo
Introdução
Fundamentos
matemáticos
Conjuntos
Relações e funções Definição
Conjuntos infinitos
Lógica
Definições, teoremas
f : A R B ⊂ A × B : função de um conjunto A no conjunto B.
e provas
Indução Cada elemento de A aparece exatamente uma vez como primeiro componente
Alfabetos e de um par ordenado de f .
linguagens
Linguagens
livres de
contexto
Autômatos
com pilha e
GLC’s
Máquinas de
Turing (110 – 119 de 1593)
Funções
LFA 2018/2
H. Longo
Introdução
Fundamentos
matemáticos Notação
Conjuntos
Relações e funções
Conjuntos infinitos
f : A R B ( f : A → B):
Lógica
Definições, teoremas
A é o domínio (D( f )) e B o contradomínio de f .
e provas
Indução
(a, b) ∈ f ⇒ f (a) = b.
Alfabetos e
b é a imagem de a por f .
linguagens a é a pré-imagem de b por f .
Autômatos
finitos
Linguagens e
gramáticas
regulares
Linguagens
livres de
contexto
Autômatos
com pilha e
GLC’s
Máquinas de
Turing (111 – 119 de 1593)
Funções
LFA 2018/2
H. Longo
Introdução
Fundamentos
matemáticos Notação
Conjuntos
Relações e funções
Conjuntos infinitos
f : A R B ( f : A → B):
Lógica
Definições, teoremas
A é o domínio (D( f )) e B o contradomínio de f .
e provas
Indução
(a, b) ∈ f ⇒ f (a) = b.
Alfabetos e
b é a imagem de a por f .
linguagens a é a pré-imagem de b por f .
Autômatos
finitos Uma relação R de A em B é uma função f : A → B se:
Linguagens e D( f ) = A;
gramáticas
regulares Dado a ∈ D( f ), é único o elemento b ∈ B tal que (a, b) ∈ f .
Linguagens
livres de
contexto
Autômatos
com pilha e
GLC’s
Máquinas de
Turing (112 – 119 de 1593)
Funções
LFA 2018/2
H. Longo
Introdução
Fundamentos
matemáticos
Conjuntos
Relações e funções
Conjuntos infinitos
Propriedades
Lógica
Definições, teoremas Uma função f : A → B pode ser:
e provas
Indução
Injetora: ∀ b ∈ B, ∃ no máximo um a ∈ A tal que f (a) = b.
Alfabetos e
linguagens Sobrejetora: ∀ b ∈ B, ∃ pelo menos um a ∈ A tal que f (a) = b.
Autômatos
finitos
Bijetora: ∀ b ∈ B, ∃ exatamente um a ∈ A tal que f (a) = b.
Linguagens e
gramáticas
regulares
Linguagens
livres de
contexto
Autômatos
com pilha e
GLC’s
Máquinas de
Turing (113 – 119 de 1593)
Funções
LFA 2018/2
H. Longo
Alfabetos e
linguagens
Autômatos
finitos
Linguagens e
gramáticas
regulares
Linguagens
livres de
contexto
Autômatos
com pilha e
GLC’s
Máquinas de
Turing (114 – 119 de 1593)
Funções
LFA 2018/2
H. Longo
Linguagens e
gramáticas
regulares
Linguagens
livres de
contexto
Autômatos
com pilha e
GLC’s
Máquinas de
Turing (115 – 119 de 1593)
Funções
LFA 2018/2
H. Longo
Linguagens e
(g ◦ f )(a) = g( f (a)).
gramáticas
regulares
Linguagens
livres de
contexto
Autômatos
com pilha e
GLC’s
Máquinas de
Turing (116 – 119 de 1593)
Funções
LFA 2018/2
H. Longo
Linguagens e
(g ◦ f )(a) = g( f (a)).
gramáticas
regulares
Máquinas de
Turing (117 – 119 de 1593)
Funções
LFA 2018/2
H. Longo
Introdução
Fundamentos
matemáticos
Conjuntos
Relações e funções Função inversa
Conjuntos infinitos
Lógica
Definições, teoremas
Seja f : A → B. Se existir g : B → A tal que (g ◦ f ) = iA e ( f ◦ g) = iB , g é
e provas
Indução
chamada de inversa de f (denotada por f −1 ).
Alfabetos e
linguagens
Autômatos
finitos
Linguagens e
gramáticas
regulares
Linguagens
livres de
contexto
Autômatos
com pilha e
GLC’s
Máquinas de
Turing (118 – 119 de 1593)
Funções
LFA 2018/2
H. Longo
Introdução
Fundamentos
matemáticos
Conjuntos
Relações e funções Função inversa
Conjuntos infinitos
Lógica
Definições, teoremas
Seja f : A → B. Se existir g : B → A tal que (g ◦ f ) = iA e ( f ◦ g) = iB , g é
e provas
Indução
chamada de inversa de f (denotada por f −1 ).
Alfabetos e
linguagens
Teorema 2.5
Autômatos
finitos
Seja f : A → B. f é uma bijeção se e somente se f −1 existe.
Linguagens e
gramáticas
regulares
Linguagens
livres de
contexto
Autômatos
com pilha e
GLC’s
Máquinas de
Turing (119 – 119 de 1593)
LFA 2018/2
H. Longo
Introdução
Fundamentos
matemáticos
Conjuntos
Relações e funções
Conjuntos infinitos
Lógica
Definições, teoremas
Fundamentos matemáticos
e provas
Indução
Alfabetos e
linguagens
Conjuntos infinitos
Autômatos
finitos
Linguagens e
gramáticas
regulares
Linguagens
livres de
contexto
Autômatos
com pilha e
GLC’s
Máquinas de
Turing (120 – 145 de 1593)
Conjuntos equinumerosos
LFA 2018/2
H. Longo
Introdução
Fundamentos
matemáticos
Conjuntos
Relações e funções
Conjuntos infinitos
Lógica A, B : conjuntos quaisquer.
Definições, teoremas
e provas
Indução
A e B são equinumerosos se existir uma bijeção f : A → B.
Alfabetos e
linguagens
Autômatos
finitos
Linguagens e
gramáticas
regulares
Linguagens
livres de
contexto
Autômatos
com pilha e
GLC’s
Máquinas de
Turing (121 – 145 de 1593)
Conjuntos equinumerosos
LFA 2018/2
H. Longo
Introdução
Fundamentos
matemáticos
Conjuntos
Relações e funções
Conjuntos infinitos
Lógica A, B : conjuntos quaisquer.
Definições, teoremas
e provas
Indução
A e B são equinumerosos se existir uma bijeção f : A → B.
Alfabetos e Se existe f : A → B, então existe f −1 : A → B.
linguagens
Autômatos
finitos
Linguagens e
gramáticas
regulares
Linguagens
livres de
contexto
Autômatos
com pilha e
GLC’s
Máquinas de
Turing (122 – 145 de 1593)
Conjuntos equinumerosos
LFA 2018/2
H. Longo
Introdução
Fundamentos
matemáticos
Conjuntos
Relações e funções
Conjuntos infinitos
Lógica A, B : conjuntos quaisquer.
Definições, teoremas
e provas
Indução
A e B são equinumerosos se existir uma bijeção f : A → B.
Alfabetos e Se existe f : A → B, então existe f −1 : A → B.
linguagens
Equinumerosidade é uma relação de equivalência.
Autômatos
finitos
Linguagens e
gramáticas
regulares
Linguagens
livres de
contexto
Autômatos
com pilha e
GLC’s
Máquinas de
Turing (123 – 145 de 1593)
Conjuntos finitos e infinitos
LFA 2018/2
H. Longo
Introdução
Fundamentos
matemáticos
Conjuntos
Relações e funções
Conjuntos infinitos
Lógica
Um conjunto é:
N.
Definições, teoremas
e provas
Indução
Finito se ele é equinumeroso com {1, 2, . . . , n}, para algum n ∈
Alfabetos e
linguagens
Autômatos
finitos
Linguagens e
gramáticas
regulares
Linguagens
livres de
contexto
Autômatos
com pilha e
GLC’s
Máquinas de
Turing (124 – 145 de 1593)
Conjuntos finitos e infinitos
LFA 2018/2
H. Longo
Introdução
Fundamentos
matemáticos
Conjuntos
Relações e funções
Conjuntos infinitos
Lógica
Um conjunto é:
N.
Definições, teoremas
e provas
Indução
Finito se ele é equinumeroso com {1, 2, . . . , n}, para algum n ∈
Alfabetos e Infinito se ele não é finito!!!
linguagens
Autômatos
finitos
Linguagens e
gramáticas
regulares
Linguagens
livres de
contexto
Autômatos
com pilha e
GLC’s
Máquinas de
Turing (125 – 145 de 1593)
Conjuntos finitos e infinitos
LFA 2018/2
H. Longo
Introdução
Fundamentos
matemáticos
Conjuntos
Relações e funções
Conjuntos infinitos
Lógica
Um conjunto é:
N.
Definições, teoremas
e provas
Indução
Finito se ele é equinumeroso com {1, 2, . . . , n}, para algum n ∈
Infinito se ele não é finito!!!
N
Alfabetos e
linguagens Contavelmente infinito se é equinumeroso com .
Autômatos
finitos
Linguagens e
gramáticas
regulares
Linguagens
livres de
contexto
Autômatos
com pilha e
GLC’s
Máquinas de
Turing (126 – 145 de 1593)
Método da Diagonalização
LFA 2018/2
H. Longo
Alfabetos e
linguagens
Autômatos
finitos
Linguagens e
gramáticas
regulares
Linguagens
livres de
contexto
Autômatos
com pilha e
GLC’s
Máquinas de
Turing (127 – 145 de 1593)
Método da Diagonalização
LFA 2018/2
H. Longo
Autômatos
Método compara os tamanhos sem recorrer à contagem dos elementos.
finitos Ideia pode ser estendida para conjuntos infinitos.
Linguagens e
gramáticas
regulares
Linguagens
livres de
contexto
Autômatos
com pilha e
GLC’s
Máquinas de
Turing (128 – 145 de 1593)
Método da Diagonalização
LFA 2018/2
H. Longo
Autômatos
Método compara os tamanhos sem recorrer à contagem dos elementos.
finitos Ideia pode ser estendida para conjuntos infinitos.
Linguagens e
gramáticas
regulares Definição 2.6
Linguagens
Um conjunto A é contável se é finito ou tem o mesmo tamanho que o
N
livres de
contexto
conjunto .
Autômatos
com pilha e
GLC’s
Máquinas de
Turing (129 – 145 de 1593)
Método da Diagonalização
LFA 2018/2
H. Longo
Exemplo 2.7
Introdução
Fundamentos
N = {0, 1, 2, 3, . . . }.
matemáticos
P = {2, 4, 6, . . . }.
N (P ⊂ N)!
Conjuntos
Relações e funções
Conjuntos infinitos Intuitivamente P parece ser menor que
Lógica
Definições, teoremas
e provas
Indução
Alfabetos e
linguagens
Autômatos
finitos
Linguagens e
gramáticas
regulares
Linguagens
livres de
contexto
Autômatos
com pilha e
GLC’s
Máquinas de
Turing (130 – 145 de 1593)
Método da Diagonalização
LFA 2018/2
H. Longo
Exemplo 2.7
Introdução
Fundamentos
N = {0, 1, 2, 3, . . . }.
matemáticos
P = {2, 4, 6, . . . }.
N (P ⊂ N)!
Conjuntos
Relações e funções
Conjuntos infinitos Intuitivamente P parece ser menor que
N e P tem o mesmo tamanho.
Lógica
Definições, teoremas
e provas
Segundo a definição de Cantor,
A função f (n) = 2·n + 2 faz o mapeamento de N para P:
Indução
Alfabetos e
linguagens
Autômatos n f (n)
finitos
0 2
Linguagens e
gramáticas 1 4
regulares
2 6
.. ..
Linguagens
livres de
contexto . .
Autômatos
com pilha e
GLC’s
Máquinas de
Turing (131 – 145 de 1593)
Método da Diagonalização
LFA 2018/2
1, 2, 3, · · ·
, 21 , 22 , 23 , · · · , 31 , 32 , . . .
1 1 1
Alfabetos e
linguagens Primeiro da lista com 1, segundo com 2, etc.
Autômatos Problema: elementos da sub-lista 21 , 22 , 23 , · · · nunca seriam considerados.
finitos
Linguagens e
gramáticas
regulares
Linguagens
livres de
contexto
Autômatos
com pilha e
GLC’s
Máquinas de
Turing (132 – 145 de 1593)
Método da Diagonalização
LFA 2018/2
Alfabetos e
2
1
2
2
2
3
2
4
2
5 ...
linguagens
Autômatos
finitos
3
1
3
2
3
3
3
4
3
5 ...
Linguagens e
gramáticas
regulares
4
1
4
2
4
3
4
4
4
5 ...
Linguagens
livres de
contexto 5
1
5
2
5
3
5
4
5
5 ...
Autômatos
com pilha e .. .. .. .. .. ..
GLC’s . . . . . .
Máquinas de
Turing (133 – 145 de 1593)
Método da Diagonalização
LFA 2018/2
H. Longo
Introdução
Fundamentos
matemáticos
Conjuntos
Relações e funções
Conjuntos infinitos Quaisquer dois conjuntos infinitos têm o mesmo tamanho?
Lógica
Definições, teoremas
e provas
Indução
Alfabetos e
linguagens
Autômatos
finitos
Linguagens e
gramáticas
regulares
Linguagens
livres de
contexto
Autômatos
com pilha e
GLC’s
Máquinas de
Turing (134 – 145 de 1593)
Método da Diagonalização
LFA 2018/2
H. Longo
Introdução
Fundamentos
matemáticos
Conjuntos
Relações e funções
Quaisquer dois conjuntos infinitos têm o mesmo tamanho?
N.
Conjuntos infinitos
Lógica
Definições, teoremas
NÃO. Existem conjuntos infinitos que não têm correspondência com
e provas
Indução
Tais conjuntos não são contavelmente infinitos.
Alfabetos e
linguagens
Autômatos
finitos
Linguagens e
gramáticas
regulares
Linguagens
livres de
contexto
Autômatos
com pilha e
GLC’s
Máquinas de
Turing (135 – 145 de 1593)
Método da Diagonalização
LFA 2018/2
H. Longo
Introdução
Fundamentos
matemáticos
Conjuntos
Relações e funções
Quaisquer dois conjuntos infinitos têm o mesmo tamanho?
N.
Conjuntos infinitos
Lógica
Definições, teoremas
NÃO. Existem conjuntos infinitos que não têm correspondência com
e provas
Tais conjuntos não são contavelmente infinitos.
R não é contavelmente infinito.
Indução
Autômatos
A prova de Cantor mostra que o intervalo [0, 1] não é contavelmente infinito.
finitos Argumento de Diagonalização de Cantor.
Linguagens e
gramáticas
regulares
Linguagens
livres de
contexto
Autômatos
com pilha e
GLC’s
Máquinas de
Turing (136 – 145 de 1593)
Método da Diagonalização
LFA 2018/2
H. Longo
Teorema 2.9
Introdução
Alfabetos e
linguagens
Autômatos
finitos
Linguagens e
gramáticas
regulares
Linguagens
livres de
contexto
Autômatos
com pilha e
GLC’s
Máquinas de
Turing (137 – 145 de 1593)
Método da Diagonalização
LFA 2018/2
H. Longo
Teorema 2.9
Introdução
Linguagens e
gramáticas
regulares
Linguagens
livres de
contexto
Autômatos
com pilha e
GLC’s
Máquinas de
Turing (138 – 145 de 1593)
Método da Diagonalização
LFA 2018/2
H. Longo
Teorema 2.9
Introdução
Linguagens e
gramáticas
regulares
Linguagens
livres de
contexto
Autômatos
com pilha e
GLC’s
Máquinas de
Turing (139 – 145 de 1593)
Método da Diagonalização
LFA 2018/2
H. Longo
Teorema 2.9
Introdução
Alfabetos e r1 = 0, 5 1 0 5 1 1 0 . . .
linguagens
r2 = 0, 4 1 3 2 0 4 3 . . .
Autômatos r3 = 0, 8 2 4 5 0 2 6 . . .
finitos
r4 = 0, 2 3 3 0 1 2 6 . . .
Linguagens e r5 = 0, 4 1 0 7 2 4 6 . . .
gramáticas r6 = 0, 9 9 3 7 8 3 8 . . .
regulares
r7 = 0, 0 1 0 5 1 3 5 . . .
Linguagens ..
livres de
contexto
.
Autômatos
com pilha e
GLC’s
Máquinas de
Turing (140 – 145 de 1593)
Método da Diagonalização
LFA 2018/2
H. Longo
Teorema 2.9
Introdução
Máquinas de
Turing (141 – 145 de 1593)
Método da Diagonalização
LFA 2018/2
H. Longo
Teorema 2.9
Introdução
Alfabetos e
(
4 se o k-ésimo dígito de rk é 5,
linguagens
xk =
Autômatos 5 se o k-ésimo dígito de rk não é 5.
finitos
Linguagens e
gramáticas xk é o k-ésimo dígito de x.
regulares
Autômatos
com pilha e
GLC’s
Máquinas de
Turing (142 – 145 de 1593)
Método da Diagonalização
LFA 2018/2
H. Longo
Teorema 2.9
Introdução
Alfabetos e
7 Logo, rn = x para algum n (supôs-se que (r1 , r2 , r3 , . . . ) enumera todos os
linguagens
números reais no intervalo [0, 1]).
Autômatos
finitos 8 No entanto, por causa do modo que os dígitos de x foram escolhidos, x difere
Linguagens e na n-ésima posição de rn .
gramáticas
regulares
Linguagens
livres de
contexto
Autômatos
com pilha e
GLC’s
Máquinas de
Turing (143 – 145 de 1593)
Método da Diagonalização
LFA 2018/2
H. Longo
Teorema 2.9
Introdução
Alfabetos e
10 Assim, essa seqüência não é uma enumeração do conjunto de todos os reais
linguagens
no intervalo [0, 1] (contradição).
Autômatos
finitos 11 Portanto, hipótese de que o intervalo [0, 1] é contavelmente finita deve ser
Linguagens e falsa.
gramáticas
regulares
Linguagens
livres de
contexto
Autômatos
com pilha e
GLC’s
Máquinas de
Turing (144 – 145 de 1593)
Método da Diagonalização
LFA 2018/2
H. Longo
Introdução
Fundamentos
matemáticos
Conjuntos
Relações e funções
Conjuntos infinitos
Lógica
Definições, teoremas
Teorema 2.10
R não é contavelmente infinito.
e provas
Indução
O conjunto
Alfabetos e
linguagens
Autômatos
finitos
Linguagens e
gramáticas
regulares
Linguagens
livres de
contexto
Autômatos
com pilha e
GLC’s
Máquinas de
Turing (145 – 145 de 1593)
LFA 2018/2
H. Longo
Introdução
Fundamentos
matemáticos
Conjuntos
Relações e funções
Conjuntos infinitos
Lógica
Definições, teoremas
Fundamentos matemáticos
e provas
Indução
Alfabetos e
linguagens
Lógica
Autômatos
finitos
Linguagens e
gramáticas
regulares
Linguagens
livres de
contexto
Autômatos
com pilha e
GLC’s
Máquinas de
Turing (146 – 153 de 1593)
Operações booleanas
LFA 2018/2
H. Longo
Introdução
Fundamentos
Conjunção Disjunção Negação
matemáticos
Conjuntos
0∧0=0 0∨0=0 ¬0 = 1
Relações e funções
Conjuntos infinitos
0∧1=0 0∨1=1 ¬1 = 0
Lógica
Definições, teoremas
1∧0=0 1∨0=1
e provas
Indução
1∧1=1 1∨1=1
Alfabetos e
linguagens
Autômatos
finitos
Linguagens e
gramáticas
regulares
Linguagens
livres de
contexto
Autômatos
com pilha e
GLC’s
Máquinas de
Turing (147 – 153 de 1593)
Operações booleanas
LFA 2018/2
H. Longo
Introdução
Fundamentos
Conjunção Disjunção Negação
matemáticos
Conjuntos
0∧0=0 0∨0=0 ¬0 = 1
Relações e funções
Conjuntos infinitos
0∧1=0 0∨1=1 ¬1 = 0
Lógica
Definições, teoremas
1∧0=0 1∨0=1
e provas
Indução
1∧1=1 1∨1=1
Alfabetos e
linguagens
Linguagens e
0⊕0=0 0→0=1 0↔0=1
gramáticas 0⊕1=1 0→1=1 0↔1=0
regulares
Linguagens
1⊕0=1 1→0=0 1↔0=0
livres de
contexto
1⊕1=0 1→1=1 1↔1=1
Autômatos
com pilha e
GLC’s
Máquinas de
Turing (148 – 153 de 1593)
Expressões booleanas
LFA 2018/2
H. Longo
Introdução
Fundamentos
matemáticos
Conjuntos
P ∧ (Q ∨ R) = (P ∧ Q) ∨ (P ∧ R)
Relações e funções
Conjuntos infinitos
Lógica
Definições, teoremas P ∨ (Q ∧ R) = (P ∨ Q) ∧ (P ∨ R)
e provas
Indução
Alfabetos e
linguagens
Autômatos
finitos
Linguagens e
gramáticas
regulares
Linguagens
livres de
contexto
Autômatos
com pilha e
GLC’s
Máquinas de
Turing (149 – 153 de 1593)
Expressões booleanas
LFA 2018/2
H. Longo
Introdução
Fundamentos
matemáticos
Conjuntos
P ∧ (Q ∨ R) = (P ∧ Q) ∨ (P ∧ R)
Relações e funções
Conjuntos infinitos
Lógica
Definições, teoremas P ∨ (Q ∧ R) = (P ∨ Q) ∧ (P ∨ R)
P ∨ Q = ¬(¬P ∧ ¬Q)
e provas
Indução
Alfabetos e
linguagens
Autômatos
finitos
Linguagens e
gramáticas
regulares
Linguagens
livres de
contexto
Autômatos
com pilha e
GLC’s
Máquinas de
Turing (150 – 153 de 1593)
Expressões booleanas
LFA 2018/2
H. Longo
Introdução
Fundamentos
matemáticos
Conjuntos
=
Relações e funções
Conjuntos infinitos P ∧ (Q ∨ R) (P ∧ Q) ∨ (P ∧ R)
Lógica
Definições, teoremas P ∨ (Q ∧ R) = (P ∨ Q) ∧ (P ∨ R)
=
e provas
Indução P∨Q ¬(¬P ∧ ¬Q)
Alfabetos e P→Q = ¬P ∨ Q
linguagens
Autômatos
finitos
Linguagens e
gramáticas
regulares
Linguagens
livres de
contexto
Autômatos
com pilha e
GLC’s
Máquinas de
Turing (151 – 153 de 1593)
Expressões booleanas
LFA 2018/2
H. Longo
Introdução
Fundamentos
matemáticos
Conjuntos
=
Relações e funções
Conjuntos infinitos P ∧ (Q ∨ R) (P ∧ Q) ∨ (P ∧ R)
Lógica
Definições, teoremas P ∨ (Q ∧ R) = (P ∨ Q) ∧ (P ∨ R)
=
e provas
Indução P∨Q ¬(¬P ∧ ¬Q)
Alfabetos e P→Q = ¬P ∨ Q
linguagens
Autômatos
P↔Q = (P → Q) ∧ (Q → p)
finitos
Linguagens e
gramáticas
regulares
Linguagens
livres de
contexto
Autômatos
com pilha e
GLC’s
Máquinas de
Turing (152 – 153 de 1593)
Expressões booleanas
LFA 2018/2
H. Longo
Introdução
Fundamentos
matemáticos
Conjuntos
=
Relações e funções
Conjuntos infinitos P ∧ (Q ∨ R) (P ∧ Q) ∨ (P ∧ R)
Lógica
Definições, teoremas P ∨ (Q ∧ R) = (P ∨ Q) ∧ (P ∨ R)
=
e provas
Indução P∨Q ¬(¬P ∧ ¬Q)
Alfabetos e P→Q = ¬P ∨ Q
linguagens
Autômatos
P↔Q = (P → Q) ∧ (Q → p)
finitos P⊕Q = ¬(P ↔ Q)
Linguagens e
gramáticas
regulares
Linguagens
livres de
contexto
Autômatos
com pilha e
GLC’s
Máquinas de
Turing (153 – 153 de 1593)
LFA 2018/2
H. Longo
Introdução
Fundamentos
matemáticos
Conjuntos
Relações e funções
Conjuntos infinitos
Lógica
Definições, teoremas
Fundamentos matemáticos
e provas
Indução
Alfabetos e
linguagens
Definições, teoremas e provas
Autômatos
finitos
Linguagens e
gramáticas
regulares
Linguagens
livres de
contexto
Autômatos
com pilha e
GLC’s
Máquinas de
Turing (154 – 247 de 1593)
Teoremas e Provas
LFA 2018/2
H. Longo
Introdução
Fundamentos
matemáticos
Conjuntos
Teorema: respostas a questões matemáticas.
Relações e funções
Conjuntos infinitos
Se certas condições são verdadeiras, então alguma conclusão também é
Lógica verdadeira.
Hipótese verdadeira =⇒ Tese verdadeira.
Definições, teoremas
e provas
Indução
Alfabetos e
linguagens
Autômatos
finitos
Linguagens e
gramáticas
regulares
Linguagens
livres de
contexto
Autômatos
com pilha e
GLC’s
Máquinas de
Turing (155 – 247 de 1593)
Teoremas e Provas
LFA 2018/2
H. Longo
Introdução
Fundamentos
matemáticos
Conjuntos
Teorema: respostas a questões matemáticas.
Relações e funções
Conjuntos infinitos
Se certas condições são verdadeiras, então alguma conclusão também é
Lógica verdadeira.
Hipótese verdadeira =⇒ Tese verdadeira.
Definições, teoremas
e provas
Indução
Alfabetos e
Instância do teorema:
linguagens
Atribuição particular de valores a variáveis livres nas hipóteses e conclusões.
Autômatos
finitos
Variáveis livres podem assumir quaisquer valores do universo em discussão.
Linguagens e
gramáticas
regulares
Linguagens
livres de
contexto
Autômatos
com pilha e
GLC’s
Máquinas de
Turing (156 – 247 de 1593)
Teoremas e Provas
LFA 2018/2
H. Longo
Introdução
Fundamentos
matemáticos
Conjuntos
Teorema: respostas a questões matemáticas.
Relações e funções
Conjuntos infinitos
Se certas condições são verdadeiras, então alguma conclusão também é
Lógica verdadeira.
Hipótese verdadeira =⇒ Tese verdadeira.
Definições, teoremas
e provas
Indução
Alfabetos e
Instância do teorema:
linguagens
Atribuição particular de valores a variáveis livres nas hipóteses e conclusões.
Autômatos
finitos
Variáveis livres podem assumir quaisquer valores do universo em discussão.
Linguagens e Teorema correto:
gramáticas
regulares Tese verdadeira para toda instância que torne a hipótese verdadeira.
Linguagens
livres de
contexto
Autômatos
com pilha e
GLC’s
Máquinas de
Turing (157 – 247 de 1593)
Teoremas e Provas
LFA 2018/2
H. Longo
Introdução
Fundamentos Contra-Exemplo
matemáticos
Conjuntos
Instância que torna a hipótese verdadeira mas leva a uma conclusão falsa.
Relações e funções
Conjuntos infinitos
Encontrar um contra-exemplo é suficiente para mostrar que o teorema é falso.
Lógica Único modo de mostrar que um teorema é verdadeiro é provando-o!
Definições, teoremas
e provas
Indução
Alfabetos e
linguagens
Autômatos
finitos
Linguagens e
gramáticas
regulares
Linguagens
livres de
contexto
Autômatos
com pilha e
GLC’s
Máquinas de
Turing (158 – 247 de 1593)
Teoremas e Provas
LFA 2018/2
H. Longo
Introdução
Fundamentos Contra-Exemplo
matemáticos
Conjuntos
Instância que torna a hipótese verdadeira mas leva a uma conclusão falsa.
Relações e funções
Conjuntos infinitos
Encontrar um contra-exemplo é suficiente para mostrar que o teorema é falso.
Lógica Único modo de mostrar que um teorema é verdadeiro é provando-o!
Definições, teoremas
e provas
Indução
Autômatos
Teorema 1: Se x > 3 e y < 2, então x2 − 2y > 5.
finitos x = 5 e y = 1 ⇒ 23 > 5 : Não prova o teorema, apenas verifica uma instância do
Linguagens e mesmo.
gramáticas
regulares
Linguagens
livres de
contexto
Autômatos
com pilha e
GLC’s
Máquinas de
Turing (159 – 247 de 1593)
Teoremas e Provas
LFA 2018/2
H. Longo
Introdução
Fundamentos Contra-Exemplo
matemáticos
Conjuntos
Instância que torna a hipótese verdadeira mas leva a uma conclusão falsa.
Relações e funções
Conjuntos infinitos
Encontrar um contra-exemplo é suficiente para mostrar que o teorema é falso.
Lógica Único modo de mostrar que um teorema é verdadeiro é provando-o!
Definições, teoremas
e provas
Indução
Autômatos
Teorema 1: Se x > 3 e y < 2, então x2 − 2y > 5.
finitos x = 5 e y = 1 ⇒ 23 > 5 : Não prova o teorema, apenas verifica uma instância do
Linguagens e mesmo.
gramáticas
regulares
Teorema 2: Se x > 3, então x2 − 2·y > 5.
Linguagens
livres de x = 4 e y = 6 ⇒ x2 − 2·y = 4 > 5 : Contra-exemplo!
contexto
Autômatos
com pilha e
GLC’s
Máquinas de
Turing (160 – 247 de 1593)
Teoremas e Provas
LFA 2018/2
H. Longo
Introdução
Fundamentos
matemáticos
Conjuntos
Relações e funções
Conjuntos infinitos A prova é um argumento dedutivo cujas premissas são as hipóteses e cuja
Lógica
Definições, teoremas
conclusão é a tese do teorema.
e provas
Indução Argumento válido.
Alfabetos e Forma lógica das hipóteses ⇒ forma lógica da conclusão.
linguagens
Autômatos
finitos
Linguagens e
gramáticas
regulares
Linguagens
livres de
contexto
Autômatos
com pilha e
GLC’s
Máquinas de
Turing (161 – 247 de 1593)
Teoremas e Provas
LFA 2018/2
H. Longo
Introdução
Fundamentos
matemáticos
Conjuntos
Relações e funções
Conjuntos infinitos A prova é um argumento dedutivo cujas premissas são as hipóteses e cuja
Lógica
Definições, teoremas
conclusão é a tese do teorema.
e provas
Indução Argumento válido.
Alfabetos e Forma lógica das hipóteses ⇒ forma lógica da conclusão.
linguagens
Autômatos
Qual a estratégia de prova mais adequada às várias formas de hipóteses e
finitos teses?
Linguagens e
gramáticas
regulares
Linguagens
livres de
contexto
Autômatos
com pilha e
GLC’s
Máquinas de
Turing (162 – 247 de 1593)
Teoremas e Provas
LFA 2018/2
H. Longo
Introdução
Fundamentos
matemáticos
Conjuntos
Relações e funções
Conjuntos infinitos
Lógica Regras básicas:
Definições, teoremas
e provas Nunca afirme alguma coisa se você não puder justificá-la completamente.
Indução
Alfabetos e
linguagens
Autômatos
finitos
Linguagens e
gramáticas
regulares
Linguagens
livres de
contexto
Autômatos
com pilha e
GLC’s
Máquinas de
Turing (163 – 247 de 1593)
Teoremas e Provas
LFA 2018/2
H. Longo
Introdução
Fundamentos
matemáticos
Conjuntos
Relações e funções
Conjuntos infinitos
Lógica Regras básicas:
Definições, teoremas
e provas Nunca afirme alguma coisa se você não puder justificá-la completamente.
Indução
Se você tem qualquer dúvida a respeito da justificativa para uma afirmação,
Alfabetos e
linguagens então ela não é adequada.
Autômatos
finitos
Linguagens e
gramáticas
regulares
Linguagens
livres de
contexto
Autômatos
com pilha e
GLC’s
Máquinas de
Turing (164 – 247 de 1593)
Teoremas e Provas
LFA 2018/2
H. Longo
Introdução
Fundamentos
matemáticos
Conjuntos
Relações e funções
Conjuntos infinitos
Lógica Regras básicas:
Definições, teoremas
e provas Nunca afirme alguma coisa se você não puder justificá-la completamente.
Indução
Se você tem qualquer dúvida a respeito da justificativa para uma afirmação,
Alfabetos e
linguagens então ela não é adequada.
Autômatos Se o seu raciocínio não o convence, como convencerá a outros?
finitos
Linguagens e
gramáticas
regulares
Linguagens
livres de
contexto
Autômatos
com pilha e
GLC’s
Máquinas de
Turing (165 – 247 de 1593)
Teoremas e Provas
LFA 2018/2
H. Longo
Introdução
Fundamentos
matemáticos
Conjuntos
Relações e funções
Conjuntos infinitos
Lógica Supor e Afirmar
Definições, teoremas
e provas Afirmar um enunciado é alegar que o mesmo é verdadeiro e isso não é
Indução
aceitável em uma prova, a menos que possa ser justificado.
Alfabetos e
linguagens Supor um enunciado permite dizer o que poderia ser verdadeiro se o enunciado
Autômatos fosse verdadeiro.
finitos
Linguagens e
gramáticas
regulares
Linguagens
livres de
contexto
Autômatos
com pilha e
GLC’s
Máquinas de
Turing (166 – 247 de 1593)
Transformação do Problema
LFA 2018/2
H. Longo
Introdução
Fundamentos
matemáticos Provar uma conclusão da forma P → Q
Conjuntos
Relações e funções a) Adicione P à lista de hipóteses.
Conjuntos infinitos
Lógica
b) Mude a conclusão de P → Q para Q.
Definições, teoremas
e provas
Indução
Alfabetos e
linguagens
Autômatos
finitos
Linguagens e
gramáticas
regulares
Linguagens
livres de
contexto
Autômatos
com pilha e
GLC’s
Máquinas de
Turing (167 – 247 de 1593)
Transformação do Problema
LFA 2018/2
H. Longo
Introdução
Fundamentos
matemáticos Provar uma conclusão da forma P → Q
Conjuntos
Relações e funções a) Adicione P à lista de hipóteses.
Conjuntos infinitos
Lógica
b) Mude a conclusão de P → Q para Q.
Definições, teoremas
e provas
Se resolver o novo problema, na verdade terá mostrado que se P é verdadeiro
Indução
então Q também é verdadeiro, ou seja, terá resolvido o problema original
Alfabetos e
linguagens
P → Q.
Autômatos
finitos
Linguagens e
gramáticas
regulares
Linguagens
livres de
contexto
Autômatos
com pilha e
GLC’s
Máquinas de
Turing (168 – 247 de 1593)
Transformação do Problema
LFA 2018/2
H. Longo
Introdução
Fundamentos
matemáticos Provar uma conclusão da forma P → Q
Conjuntos
Relações e funções a) Adicione P à lista de hipóteses.
Conjuntos infinitos
Lógica
b) Mude a conclusão de P → Q para Q.
Definições, teoremas
e provas
Se resolver o novo problema, na verdade terá mostrado que se P é verdadeiro
Indução
então Q também é verdadeiro, ou seja, terá resolvido o problema original
Alfabetos e
linguagens
P → Q.
Autômatos Notação:
finitos
Dados: enunciados conhecidos ou aqueles que se assumiu serem verdadeiros
Linguagens e
gramáticas em algum ponto da demonstração.
regulares
Objetivo: enunciados a serem provados.
Linguagens
livres de
contexto
Autômatos
com pilha e
GLC’s
Máquinas de
Turing (169 – 247 de 1593)
Teoremas e Provas
LFA 2018/2
H. Longo
Introdução
Alfabetos e
linguagens
Autômatos
finitos
Linguagens e
gramáticas
regulares
Linguagens
livres de
contexto
Autômatos
com pilha e
GLC’s
Máquinas de
Turing (170 – 247 de 1593)
Teoremas e Provas
LFA 2018/2
H. Longo
Introdução
Linguagens e
gramáticas
regulares
Linguagens
livres de
contexto
Autômatos
com pilha e
GLC’s
Máquinas de
Turing (171 – 247 de 1593)
Teoremas e Provas
LFA 2018/2
H. Longo
Introdução
Linguagens
livres de
contexto
Autômatos
com pilha e
GLC’s
Máquinas de
Turing (172 – 247 de 1593)
Teoremas e Provas
LFA 2018/2
H. Longo
Introdução
Autômatos
com pilha e
GLC’s
Máquinas de
Turing (173 – 247 de 1593)
Provar um “Objetivo” da forma P → Q
LFA 2018/2
H. Longo
Introdução
Fundamentos
matemáticos Rascunho:
Conjuntos
Relações e funções Dados Objetivo
Conjuntos infinitos ..
Lógica
. P→Q Antes da transformação.
..
Definições, teoremas
e provas
Indução . Q Depois da transformação.
Alfabetos e P
linguagens
Autômatos
finitos
Linguagens e
gramáticas
regulares
Linguagens
livres de
contexto
Autômatos
com pilha e
GLC’s
Máquinas de
Turing (174 – 247 de 1593)
Provar um “Objetivo” da forma P → Q
LFA 2018/2
H. Longo
Introdução
Fundamentos
matemáticos Rascunho:
Conjuntos
Relações e funções Dados Objetivo
Conjuntos infinitos ..
Lógica
. P→Q Antes da transformação.
..
Definições, teoremas
e provas
Indução . Q Depois da transformação.
Alfabetos e P
linguagens
Autômatos Solução:
finitos
Suponha que P é verdadeiro.
Linguagens e
gramáticas [Prove que Q é verdadeiro]
regulares
Portanto, P → Q.
Linguagens
livres de
contexto
Autômatos
com pilha e
GLC’s
Máquinas de
Turing (175 – 247 de 1593)
“Objetivo” da forma P → Q ≡ ¬Q → ¬P
LFA 2018/2
H. Longo
Introdução
Fundamentos
matemáticos Rascunho:
Conjuntos
Relações e funções
Dados Objetivo
Conjuntos infinitos ..
Lógica
. P→Q Antes da transformação.
..
Definições, teoremas
e provas
Indução . ¬P Depois da transformação.
Alfabetos e ¬Q
linguagens
Autômatos
finitos
Linguagens e
gramáticas
regulares
Linguagens
livres de
contexto
Autômatos
com pilha e
GLC’s
Máquinas de
Turing (176 – 247 de 1593)
“Objetivo” da forma P → Q ≡ ¬Q → ¬P
LFA 2018/2
H. Longo
Introdução
Fundamentos
matemáticos Rascunho:
Conjuntos
Relações e funções
Dados Objetivo
Conjuntos infinitos ..
Lógica
. P→Q Antes da transformação.
..
Definições, teoremas
e provas
Indução . ¬P Depois da transformação.
Alfabetos e ¬Q
linguagens
Autômatos
Solução:
finitos Suponha que Q é falso.
Linguagens e
gramáticas
[Prove que ¬P é verdadeiro]
regulares Portanto, P → Q.
Linguagens
livres de
contexto
Autômatos
com pilha e
GLC’s
Máquinas de
Turing (177 – 247 de 1593)
“Objetivo” da forma P → Q ≡ ¬Q → ¬P
LFA 2018/2
H. Longo
Introdução
Alfabetos e
linguagens
Autômatos
finitos
Linguagens e
gramáticas
regulares
Linguagens
livres de
contexto
Autômatos
com pilha e
GLC’s
Máquinas de
Turing (178 – 247 de 1593)
“Objetivo” da forma P → Q ≡ ¬Q → ¬P
LFA 2018/2
H. Longo
Introdução
Alfabetos e
linguagens
Autômatos
finitos
Linguagens e
gramáticas
regulares
Linguagens
livres de
contexto
Autômatos
com pilha e
GLC’s
Máquinas de
Turing (179 – 247 de 1593)
“Objetivo” da forma P → Q ≡ ¬Q → ¬P
LFA 2018/2
H. Longo
Introdução
R
Indução
Linguagens e
Solução:
gramáticas
regulares
Suponha c > 0. Multiplicando ambos os lados da desigualdade a > b por
Linguagens
c conclui-se que a·c > b·c. Portanto, se a·c ≤ b·c então c ≤ 0.
livres de
contexto
Autômatos
com pilha e
GLC’s
Máquinas de
Turing (180 – 247 de 1593)
“Objetivo” da forma ¬P
LFA 2018/2
H. Longo
Se possível, reescreva o objetivo de alguma outra forma (enunciado positivo)
Introdução e use uma das estratégias de prova.
Fundamentos
matemáticos
Conjuntos
Relações e funções
Conjuntos infinitos
Lógica
Definições, teoremas
e provas
Indução
Alfabetos e
linguagens
Autômatos
finitos
Linguagens e
gramáticas
regulares
Linguagens
livres de
contexto
Autômatos
com pilha e
GLC’s
Máquinas de
Turing (181 – 247 de 1593)
“Objetivo” da forma ¬P
LFA 2018/2
H. Longo
Se possível, reescreva o objetivo de alguma outra forma (enunciado positivo)
Introdução e use uma das estratégias de prova.
Fundamentos
matemáticos
Conjuntos
Exemplo 2.14
U. Suponha que A ∩ C ⊆ B e a ∈ C. Prove que
Relações e funções
Conjuntos infinitos
Lógica Sejam os conjuntos A, B, C ⊆
Definições, teoremas
e provas a < A\B.
Indução
Alfabetos e Rascunho:
linguagens
Autômatos
com pilha e
GLC’s
Máquinas de
Turing (182 – 247 de 1593)
“Objetivo” da forma ¬P
LFA 2018/2
H. Longo
Se possível, reescreva o objetivo de alguma outra forma (enunciado positivo)
Introdução e use uma das estratégias de prova.
Fundamentos
matemáticos
Conjuntos
Relações e funções
Exemplo 2.14
Conjuntos infinitos
Lógica Obs-1:
Definições, teoremas
e provas P → Q ≡ ¬P ∨ Q ≡ ¬(P ∧ ¬Q)
Indução
Alfabetos e Obs-2:
linguagens
a < A\B ≡ ¬(a ∈ A ∧ a < B) [Definição de A\B]
Autômatos
finitos ≡ a< A∨a∈ B [DeMorgan]
Linguagens e ≡ a∈A⇒a∈B [Condicional]
gramáticas
regulares
Linguagens
livres de
contexto
Autômatos
com pilha e
GLC’s
Máquinas de
Turing (183 – 247 de 1593)
“Objetivo” da forma ¬P
LFA 2018/2
H. Longo
Se possível, reescreva o objetivo de alguma outra forma (enunciado positivo)
Introdução e use uma das estratégias de prova.
Fundamentos
matemáticos
Conjuntos
Relações e funções
Exemplo 2.14
Conjuntos infinitos
Lógica Rascunho:
Definições, teoremas
e provas
Indução Dados Objetivo
Alfabetos e
linguagens
A, B, C ⊆ U a < A\B
A∩C ⊆ B
Autômatos
a∈C
finitos
Linguagens e
A, B, C ⊆ U a∈A⇒a∈B
gramáticas A∩C ⊆ B
regulares
a∈C
Linguagens
livres de
A, B, C ⊆ U a∈B
contexto A∩C ⊆ B
Autômatos a∈C
com pilha e a∈A
GLC’s
Máquinas de
Turing (184 – 247 de 1593)
“Objetivo” da forma ¬P
LFA 2018/2
H. Longo
Introdução
Fundamentos
Nem sempre um objetivo da forma ¬P pode ser reescrito como “enunciado
matemáticos positivo”.
Conjuntos
Relações e funções
Conjuntos infinitos
Lógica
Definições, teoremas
e provas
Indução
Alfabetos e
linguagens
Autômatos
finitos
Linguagens e
gramáticas
regulares
Linguagens
livres de
contexto
Autômatos
com pilha e
GLC’s
Máquinas de
Turing (185 – 247 de 1593)
“Objetivo” da forma ¬P
LFA 2018/2
H. Longo
Introdução
Fundamentos
Nem sempre um objetivo da forma ¬P pode ser reescrito como “enunciado
matemáticos positivo”.
Conjuntos
Relações e funções
Conjuntos infinitos
Rascunho:
Lógica
Dados Objetivo
..
Definições, teoremas
e provas
Indução . ¬P
Alfabetos e ..
linguagens . hContradiçãoi
Autômatos P
finitos
Linguagens e
gramáticas
regulares
Linguagens
livres de
contexto
Autômatos
com pilha e
GLC’s
Máquinas de
Turing (186 – 247 de 1593)
“Objetivo” da forma ¬P
LFA 2018/2
H. Longo
Introdução
Fundamentos
Nem sempre um objetivo da forma ¬P pode ser reescrito como “enunciado
matemáticos positivo”.
Conjuntos
Relações e funções
Conjuntos infinitos
Rascunho:
Lógica
Dados Objetivo
..
Definições, teoremas
e provas
Indução . ¬P
Alfabetos e ..
linguagens . hContradiçãoi
Autômatos P
finitos
Linguagens e
Solução:
gramáticas
regulares
Suponha que P é verdadeiro.
Linguagens
[Prove a contradição]
livres de
contexto
Portanto, P é falso.
Autômatos
com pilha e
GLC’s
Máquinas de
Turing (187 – 247 de 1593)
“Objetivo” da forma ¬P
LFA 2018/2
H. Longo
Introdução
Fundamentos
matemáticos
Conjuntos
Relações e funções
Conjuntos infinitos
Lógica
Definições, teoremas
Prova por contradição:
e provas
Indução
Vantagem: supor P verdadeiro permite crescer a lista de hipóteses.
Alfabetos e Desvantagem: Objetivo vago, ou seja, produzir uma contradição de alguma
linguagens coisa que é verdadeiro.
Autômatos
finitos
Linguagens e
gramáticas
regulares
Linguagens
livres de
contexto
Autômatos
com pilha e
GLC’s
Máquinas de
Turing (188 – 247 de 1593)
“Objetivo” da forma ¬P
LFA 2018/2
H. Longo
Introdução
Exemplo 2.15
R
Fundamentos
matemáticos
Conjuntos
Dados x, y ∈ , prove que se x2 + y = 13 e y , 4 então x , 3.
Relações e funções
Conjuntos infinitos
x , 3 ≡ ¬(x = 3), logo estratégia anterior não pode ser usada.
Lógica
Definições, teoremas
e provas
Indução
Alfabetos e
linguagens
Autômatos
finitos
Linguagens e
gramáticas
regulares
Linguagens
livres de
contexto
Autômatos
com pilha e
GLC’s
Máquinas de
Turing (189 – 247 de 1593)
“Objetivo” da forma ¬P
LFA 2018/2
H. Longo
Introdução
Exemplo 2.15
R
Fundamentos
matemáticos
Conjuntos
Dados x, y ∈ , prove que se x2 + y = 13 e y , 4 então x , 3.
Relações e funções
Conjuntos infinitos
x , 3 ≡ ¬(x = 3), logo estratégia anterior não pode ser usada.
Lógica
Definições, teoremas
e provas Dados Objetivo
Indução
Alfabetos e
x, y ∈ R x2 + y = 13 e y , 4 ⇒ x , 3
linguagens
Autômatos
finitos
Linguagens e
gramáticas
regulares
Linguagens
livres de
contexto
Autômatos
com pilha e
GLC’s
Máquinas de
Turing (190 – 247 de 1593)
“Objetivo” da forma ¬P
LFA 2018/2
H. Longo
Introdução
Exemplo 2.15
R
Fundamentos
matemáticos
Conjuntos
Dados x, y ∈ , prove que se x2 + y = 13 e y , 4 então x , 3.
Relações e funções
Conjuntos infinitos
x , 3 ≡ ¬(x = 3), logo estratégia anterior não pode ser usada.
Lógica
Definições, teoremas
e provas Dados Objetivo
Indução
R
x, y ∈ x2 + y = 13 e y , 4 ⇒ x , 3
Alfabetos e
linguagens R
x, y ∈ x,3
Autômatos
x2 + y = 13
finitos y,4
Linguagens e
gramáticas
regulares
Linguagens
livres de
contexto
Autômatos
com pilha e
GLC’s
Máquinas de
Turing (191 – 247 de 1593)
“Objetivo” da forma ¬P
LFA 2018/2
H. Longo
Introdução
Exemplo 2.15
R
Fundamentos
matemáticos
Conjuntos
Dados x, y ∈ , prove que se x2 + y = 13 e y , 4 então x , 3.
Relações e funções
Conjuntos infinitos
x , 3 ≡ ¬(x = 3), logo estratégia anterior não pode ser usada.
Lógica
Definições, teoremas
e provas Dados Objetivo
Indução
R
x, y ∈ x2 + y = 13 e y , 4 ⇒ x , 3
Alfabetos e
linguagens R
x, y ∈ x,3
Autômatos
x2 + y = 13
finitos y,4
Linguagens e R
x, y ∈ hContradiçãoi
gramáticas
regulares
x2 + y = 13
y,4
Linguagens
livres de x=3
contexto
Autômatos
com pilha e
GLC’s
Máquinas de
Turing (192 – 247 de 1593)
Usar um “Dado” da forma ¬P
LFA 2018/2
H. Longo
Introdução
Alfabetos e
linguagens
Autômatos
finitos
Linguagens e
gramáticas
regulares
Linguagens
livres de
contexto
Autômatos
com pilha e
GLC’s
Máquinas de
Turing (193 – 247 de 1593)
Usar um “Dado” da forma ¬P
LFA 2018/2
H. Longo
Introdução
Linguagens
livres de
contexto
Autômatos
com pilha e
GLC’s
Máquinas de
Turing (194 – 247 de 1593)
Usar um “Dado” da forma ¬P
LFA 2018/2
H. Longo
Introdução
Autômatos
com pilha e
GLC’s
Máquinas de
Turing (195 – 247 de 1593)
Provas por contradição
LFA 2018/2
H. Longo Provas por contradição podem ser usadas com objetivos que não são da
forma ¬P.
Introdução
Fundamentos
matemáticos
Conjuntos
Relações e funções
Conjuntos infinitos
Lógica
Definições, teoremas
e provas
Indução
Alfabetos e
linguagens
Autômatos
finitos
Linguagens e
gramáticas
regulares
Linguagens
livres de
contexto
Autômatos
com pilha e
GLC’s
Máquinas de
Turing (196 – 247 de 1593)
Provas por contradição
LFA 2018/2
H. Longo Provas por contradição podem ser usadas com objetivos que não são da
forma ¬P.
Introdução
Fundamentos
matemáticos Exemplo 2.16
Conjuntos
Relações e funções
Conjuntos infinitos
Dados A, B, C ⊆ U, tais que A\B ⊆ C, se x ∈ A\C, então x ∈ B.
Lógica
Definições, teoremas
e provas
Indução
Alfabetos e
linguagens
Autômatos
finitos
Linguagens e
gramáticas
regulares
Linguagens
livres de
contexto
Autômatos
com pilha e
GLC’s
Máquinas de
Turing (197 – 247 de 1593)
Provas por contradição
LFA 2018/2
H. Longo Provas por contradição podem ser usadas com objetivos que não são da
forma ¬P.
Introdução
Fundamentos
matemáticos Exemplo 2.16
Conjuntos
Relações e funções
Conjuntos infinitos
Dados A, B, C ⊆ U, tais que A\B ⊆ C, se x ∈ A\C, então x ∈ B.
Lógica Dados Objetivo Solução
Definições, teoremas
e provas A\B ⊆ C x ∈ A\C ⇒ x ∈ B
Indução
Alfabetos e
linguagens
Autômatos
finitos
Linguagens e
gramáticas
regulares
Linguagens
livres de
contexto
Autômatos
com pilha e
GLC’s
Máquinas de
Turing (198 – 247 de 1593)
Provas por contradição
LFA 2018/2
H. Longo Provas por contradição podem ser usadas com objetivos que não são da
forma ¬P.
Introdução
Fundamentos
matemáticos Exemplo 2.16
Conjuntos
Relações e funções
Conjuntos infinitos
Dados A, B, C ⊆ U, tais que A\B ⊆ C, se x ∈ A\C, então x ∈ B.
Lógica Dados Objetivo Solução
Definições, teoremas
e provas A\B ⊆ C x ∈ A\C ⇒ x ∈ B
Indução
A\B ⊆ C x∈B Suponha x ∈ A\C .
Alfabetos e x ∈ A\C [Prove que x ∈ B].
linguagens Portanto, se x ∈ A\C , então x ∈ B.
Autômatos
finitos
Linguagens e
gramáticas
regulares
Linguagens
livres de
contexto
Autômatos
com pilha e
GLC’s
Máquinas de
Turing (199 – 247 de 1593)
Provas por contradição
LFA 2018/2
H. Longo Provas por contradição podem ser usadas com objetivos que não são da
forma ¬P.
Introdução
Fundamentos
matemáticos Exemplo 2.16
Conjuntos
Relações e funções
Conjuntos infinitos
Dados A, B, C ⊆ U, tais que A\B ⊆ C, se x ∈ A\C, então x ∈ B.
Lógica Dados Objetivo Solução
Definições, teoremas
e provas A\B ⊆ C x ∈ A\C ⇒ x ∈ B
Indução
A\B ⊆ C x∈B Suponha x ∈ A\C .
Alfabetos e x ∈ A\C [Prove que x ∈ B].
linguagens Portanto, se x ∈ A\C , então x ∈ B.
Autômatos A\B ⊆ C hContradiçãoi Suponha x ∈ A\C .
finitos x ∈ A\C Suponha x < B.
Linguagens e x<B [Prove a contradição].
gramáticas Assim, x ∈ B.
regulares
Portanto, se x ∈ A\C , então x ∈ B.
Linguagens
livres de
contexto
Autômatos
com pilha e
GLC’s
Máquinas de
Turing (200 – 247 de 1593)
Provas por contradição
LFA 2018/2
H. Longo Provas por contradição podem ser usadas com objetivos que não são da
forma ¬P.
Introdução
Fundamentos
matemáticos Exemplo 2.16
Conjuntos
Relações e funções
Conjuntos infinitos
Dados A, B, C ⊆ U, tais que A\B ⊆ C, se x ∈ A\C, então x ∈ B.
Lógica Dados Objetivo Solução
Definições, teoremas
e provas A\B ⊆ C x ∈ A\C ⇒ x ∈ B
Indução
A\B ⊆ C x∈B Suponha x ∈ A\C .
Alfabetos e x ∈ A\C [Prove que x ∈ B].
linguagens Portanto, se x ∈ A\C , então x ∈ B.
Autômatos A\B ⊆ C hContradiçãoi Suponha x ∈ A\C .
finitos x ∈ A\C Suponha x < B.
Linguagens e x<B [Prove a contradição].
gramáticas Assim, x ∈ B.
regulares
Portanto, se x ∈ A\C , então x ∈ B.
Linguagens A\B ⊆ C x∈C Suponha x ∈ A\C ( x ∈ A e x < C ).
livres de
contexto x∈A Suponha x < B.
x<C [Prove que x ∈ C ].
Autômatos
com pilha e
x<B Isto contradiz o fato de x < C .
GLC’s Assim, x ∈ B.
Portanto, se x ∈ A\C , então x ∈ B.
Máquinas de
Turing (201 – 247 de 1593)
“Dado” da forma P → Q
LFA 2018/2
H. Longo
Introdução
Fundamentos
matemáticos
Conjuntos
Relações e funções
Conjuntos infinitos
Lógica
Definições, teoremas
Se P é dado também ou se é possível provar que P é verdadeiro, conclua que
e provas
Indução
Q é verdadeiro.
Alfabetos e
linguagens
Autômatos
finitos
Linguagens e
gramáticas
regulares
Linguagens
livres de
contexto
Autômatos
com pilha e
GLC’s
Máquinas de
Turing (202 – 247 de 1593)
“Dado” da forma P → Q
LFA 2018/2
H. Longo
Introdução
Fundamentos
matemáticos
Conjuntos
Relações e funções
Conjuntos infinitos
Lógica
Definições, teoremas
Se P é dado também ou se é possível provar que P é verdadeiro, conclua que
e provas
Indução
Q é verdadeiro.
Alfabetos e Se P e P → Q são verdadeiros, então Q também é verdadeiro.
linguagens
Autômatos
finitos
Linguagens e
gramáticas
regulares
Linguagens
livres de
contexto
Autômatos
com pilha e
GLC’s
Máquinas de
Turing (203 – 247 de 1593)
“Dado” da forma P → Q
LFA 2018/2
H. Longo
Introdução
Fundamentos
matemáticos
Conjuntos
Relações e funções
Conjuntos infinitos
Lógica
Definições, teoremas
Se P é dado também ou se é possível provar que P é verdadeiro, conclua que
e provas
Indução
Q é verdadeiro.
Alfabetos e Se P e P → Q são verdadeiros, então Q também é verdadeiro.
linguagens Se P → Q é verdadeiro e Q é falso, então P deve ser falso também.
Autômatos
finitos
Linguagens e
gramáticas
regulares
Linguagens
livres de
contexto
Autômatos
com pilha e
GLC’s
Máquinas de
Turing (204 – 247 de 1593)
“Dado” da forma P → Q
LFA 2018/2
H. Longo
Exemplo 2.17
Introdução Suponha P → (Q → R). Prove que ¬R → (P → ¬Q).
Fundamentos P → Q ≡ ¬Q → ¬P.
matemáticos
Conjuntos
Relações e funções
Conjuntos infinitos
Lógica
Definições, teoremas
e provas
Indução
Alfabetos e
linguagens
Autômatos
finitos
Linguagens e
gramáticas
regulares
Linguagens
livres de
contexto
Autômatos
com pilha e
GLC’s
Máquinas de
Turing (205 – 247 de 1593)
“Dado” da forma P → Q
LFA 2018/2
H. Longo
Exemplo 2.17
Introdução Suponha P → (Q → R). Prove que ¬R → (P → ¬Q).
Fundamentos P → Q ≡ ¬Q → ¬P.
matemáticos
Conjuntos
Dados Objetivo Solução
Relações e funções
Conjuntos infinitos
P → (Q → R) ¬R → (P → ¬Q)
Lógica
Definições, teoremas
e provas
Indução
Alfabetos e
linguagens
Autômatos
finitos
Linguagens e
gramáticas
regulares
Linguagens
livres de
contexto
Autômatos
com pilha e
GLC’s
Máquinas de
Turing (206 – 247 de 1593)
“Dado” da forma P → Q
LFA 2018/2
H. Longo
Exemplo 2.17
Introdução Suponha P → (Q → R). Prove que ¬R → (P → ¬Q).
Fundamentos P → Q ≡ ¬Q → ¬P.
matemáticos
Conjuntos
Dados Objetivo Solução
Relações e funções
Conjuntos infinitos
P → (Q → R) ¬R → (P → ¬Q)
Lógica P → (Q → R) P → ¬Q Suponha ¬R.
Definições, teoremas
e provas ¬R [Prove que P → ¬Q].
Indução Portanto, ¬R → (P → ¬Q).
Alfabetos e
linguagens
Autômatos
finitos
Linguagens e
gramáticas
regulares
Linguagens
livres de
contexto
Autômatos
com pilha e
GLC’s
Máquinas de
Turing (207 – 247 de 1593)
“Dado” da forma P → Q
LFA 2018/2
H. Longo
Exemplo 2.17
Introdução Suponha P → (Q → R). Prove que ¬R → (P → ¬Q).
Fundamentos P → Q ≡ ¬Q → ¬P.
matemáticos
Conjuntos
Dados Objetivo Solução
Relações e funções
Conjuntos infinitos
P → (Q → R) ¬R → (P → ¬Q)
Lógica P → (Q → R) P → ¬Q Suponha ¬R.
Definições, teoremas
e provas ¬R [Prove que P → ¬Q].
Indução Portanto, ¬R → (P → ¬Q).
Alfabetos e P → (Q → R) ¬Q Suponha ¬R.
linguagens ¬R Suponha P.
Autômatos P [Prove ¬Q].
finitos Portanto, P → ¬Q.
Linguagens e Portanto, ¬R → (P → ¬Q).
gramáticas
regulares
Linguagens
livres de
contexto
Autômatos
com pilha e
GLC’s
Máquinas de
Turing (208 – 247 de 1593)
“Dado” da forma P → Q
LFA 2018/2
H. Longo
Exemplo 2.17
Introdução Suponha P → (Q → R). Prove que ¬R → (P → ¬Q).
Fundamentos P → Q ≡ ¬Q → ¬P.
matemáticos
Conjuntos
Dados Objetivo Solução
Relações e funções
Conjuntos infinitos
P → (Q → R) ¬R → (P → ¬Q)
Lógica P → (Q → R) P → ¬Q Suponha ¬R.
Definições, teoremas
e provas ¬R [Prove que P → ¬Q].
Indução Portanto, ¬R → (P → ¬Q).
Alfabetos e P → (Q → R) ¬Q Suponha ¬R.
linguagens ¬R Suponha P.
Autômatos P [Prove ¬Q].
finitos Portanto, P → ¬Q.
Linguagens e Portanto, ¬R → (P → ¬Q).
gramáticas P → (Q → R) ¬Q Suponha ¬R.
regulares
¬R Suponha P.
Linguagens P De P e P → (Q → R),
livres de segue que Q → R.
contexto
Q→R [Prove ¬Q].
Autômatos Portanto, P → ¬Q.
com pilha e
GLC’s Portanto, ¬R → (P → ¬Q).
Máquinas de
Turing (209 – 247 de 1593)
Provas por contradição
LFA 2018/2
H. Longo
Alfabetos e
linguagens
Autômatos
finitos
Linguagens e
gramáticas
regulares
Linguagens
livres de
contexto
Autômatos
com pilha e
GLC’s
Máquinas de
Turing (210 – 247 de 1593)
Provas por contradição
LFA 2018/2
H. Longo
Linguagens e
gramáticas
regulares
Linguagens
livres de
contexto
Autômatos
com pilha e
GLC’s
Máquinas de
Turing (211 – 247 de 1593)
Provas por contradição
LFA 2018/2
H. Longo
Linguagens
livres de
contexto
Autômatos
com pilha e
GLC’s
Máquinas de
Turing (212 – 247 de 1593)
Provas por contradição
LFA 2018/2
H. Longo
Máquinas de
Turing (213 – 247 de 1593)
Provar um “Objetivo” da forma ∀ x P(x)
LFA 2018/2
H. Longo
Introdução
Alfabetos e
linguagens
Autômatos
finitos
Linguagens e
gramáticas
regulares
Linguagens
livres de
contexto
Autômatos
com pilha e
GLC’s
Máquinas de
Turing (214 – 247 de 1593)
Provar um “Objetivo” da forma ∀ x P(x)
LFA 2018/2
H. Longo
Introdução
Linguagens e
gramáticas
regulares
Linguagens
livres de
contexto
Autômatos
com pilha e
GLC’s
Máquinas de
Turing (215 – 247 de 1593)
Provar um “Objetivo” da forma ∀ x P(x)
LFA 2018/2
H. Longo
Introdução
Autômatos
com pilha e
GLC’s
Máquinas de
Turing (216 – 247 de 1593)
Provar um “Objetivo” da forma ∀ x P(x)
LFA 2018/2
H. Longo
Introdução
Alfabetos e
linguagens
Autômatos
finitos
Linguagens e
gramáticas
regulares
Linguagens
livres de
contexto
Autômatos
com pilha e
GLC’s
Máquinas de
Turing (217 – 247 de 1593)
Provar um “Objetivo” da forma ∀ x P(x)
LFA 2018/2
H. Longo
Introdução
Autômatos
com pilha e
GLC’s
Máquinas de
Turing (218 – 247 de 1593)
Provar um “Objetivo” da forma ∃ x P(x)
LFA 2018/2
H. Longo
Introdução
Fundamentos
Tente encontrar um valor de x para o qual você acredita que P(x) seria
matemáticos verdadeiro e prove P(x) para este x.
Conjuntos
Relações e funções
Conjuntos infinitos
Lógica
Definições, teoremas
e provas
Indução
Alfabetos e
linguagens
Autômatos
finitos
Linguagens e
gramáticas
regulares
Linguagens
livres de
contexto
Autômatos
com pilha e
GLC’s
Máquinas de
Turing (219 – 247 de 1593)
Provar um “Objetivo” da forma ∃ x P(x)
LFA 2018/2
H. Longo
Introdução
Fundamentos
Tente encontrar um valor de x para o qual você acredita que P(x) seria
matemáticos verdadeiro e prove P(x) para este x.
Conjuntos
Relações e funções
Conjuntos infinitos
Rascunho:
Lógica Dados Objetivo
..
Definições, teoremas
e provas
Indução . ∃ x P(x)
Alfabetos e ..
linguagens . P(x)
Autômatos x=
finitos
Linguagens e
gramáticas
regulares
Linguagens
livres de
contexto
Autômatos
com pilha e
GLC’s
Máquinas de
Turing (220 – 247 de 1593)
Provar um “Objetivo” da forma ∃ x P(x)
LFA 2018/2
H. Longo
Introdução
Fundamentos
Tente encontrar um valor de x para o qual você acredita que P(x) seria
matemáticos verdadeiro e prove P(x) para este x.
Conjuntos
Relações e funções
Conjuntos infinitos
Rascunho:
Lógica Dados Objetivo
..
Definições, teoremas
e provas
Indução . ∃ x P(x)
Alfabetos e ..
linguagens . P(x)
Autômatos x=
finitos
Linguagens e
Solução:
gramáticas Seja x = .
regulares
Linguagens
[Prove P(x)].
livres de
contexto
Portanto, ∃ x P(x).
Autômatos
com pilha e
GLC’s
Máquinas de
Turing (221 – 247 de 1593)
Provar um “Objetivo” da forma ∃ x P(x)
LFA 2018/2
H. Longo
Alfabetos e
linguagens
Autômatos
finitos
Linguagens e
gramáticas
regulares
Linguagens
livres de
contexto
Autômatos
com pilha e
GLC’s
Máquinas de
Turing (222 – 247 de 1593)
Provar um “Objetivo” da forma ∃ x P(x)
LFA 2018/2
H. Longo
Linguagens
livres de
contexto
Autômatos
com pilha e
GLC’s
Máquinas de
Turing (223 – 247 de 1593)
Provar um “Objetivo” da forma ∃ x P(x)
LFA 2018/2
H. Longo
Máquinas de
Turing (224 – 247 de 1593)
Técnicas gerais
LFA 2018/2
H. Longo
Introdução
Fundamentos
matemáticos
Conjuntos Provar um objetivo da forma P ∧ Q.
Relações e funções
Conjuntos infinitos Prove P e Q separadamente.
Lógica
Definições, teoremas
e provas
Indução
Alfabetos e
linguagens
Autômatos
finitos
Linguagens e
gramáticas
regulares
Linguagens
livres de
contexto
Autômatos
com pilha e
GLC’s
Máquinas de
Turing (225 – 247 de 1593)
Técnicas gerais
LFA 2018/2
H. Longo
Introdução
Fundamentos
matemáticos
Conjuntos Provar um objetivo da forma P ∧ Q.
Relações e funções
Conjuntos infinitos Prove P e Q separadamente.
Lógica
Definições, teoremas Usar um “Dado” da forma P ∧ Q.
e provas
Indução Trate P e Q como “dados” separados.
Alfabetos e
linguagens
Autômatos
finitos
Linguagens e
gramáticas
regulares
Linguagens
livres de
contexto
Autômatos
com pilha e
GLC’s
Máquinas de
Turing (226 – 247 de 1593)
Técnicas gerais
LFA 2018/2
H. Longo
Introdução
Fundamentos
matemáticos
Conjuntos Provar um objetivo da forma P ∧ Q.
Relações e funções
Conjuntos infinitos Prove P e Q separadamente.
Lógica
Definições, teoremas Usar um “Dado” da forma P ∧ Q.
e provas
Indução Trate P e Q como “dados” separados.
Alfabetos e
linguagens Provar um objetivo da forma P ↔ Q.
Autômatos Prove P → Q e Q → P separadamente.
finitos
Linguagens e
gramáticas
regulares
Linguagens
livres de
contexto
Autômatos
com pilha e
GLC’s
Máquinas de
Turing (227 – 247 de 1593)
Técnicas gerais
LFA 2018/2
H. Longo
Introdução
Fundamentos
matemáticos
Conjuntos Provar um objetivo da forma P ∧ Q.
Relações e funções
Conjuntos infinitos Prove P e Q separadamente.
Lógica
Definições, teoremas Usar um “Dado” da forma P ∧ Q.
e provas
Indução Trate P e Q como “dados” separados.
Alfabetos e
linguagens Provar um objetivo da forma P ↔ Q.
Autômatos Prove P → Q e Q → P separadamente.
finitos
Usar um “Dado” da forma P ↔ Q.
Linguagens e
gramáticas Trate como dois “dados” separados: P → Q e Q → P.
regulares
Linguagens
livres de
contexto
Autômatos
com pilha e
GLC’s
Máquinas de
Turing (228 – 247 de 1593)
Exemplos de demonstrações
LFA 2018/2
H. Longo
Alfabetos e
linguagens
Autômatos
finitos
Linguagens e
gramáticas
regulares
Linguagens
livres de
contexto
Autômatos
com pilha e
GLC’s
Máquinas de
Turing (229 – 247 de 1593)
Exemplos de demonstrações
LFA 2018/2
H. Longo
Autômatos
finitos
Linguagens e
gramáticas
regulares
Linguagens
livres de
contexto
Autômatos
com pilha e
GLC’s
Máquinas de
Turing (230 – 247 de 1593)
Exemplos de demonstrações
LFA 2018/2
H. Longo
Linguagens e
gramáticas
regulares
Linguagens
livres de
contexto
Autômatos
com pilha e
GLC’s
Máquinas de
Turing (231 – 247 de 1593)
Exemplos de demonstrações
LFA 2018/2
H. Longo
Autômatos
com pilha e
GLC’s
Máquinas de
Turing (232 – 247 de 1593)
Exemplos de demonstrações
LFA 2018/2
H. Longo
Máquinas de
Turing (233 – 247 de 1593)
Exemplos de demonstrações
LFA 2018/2
H. Longo
Alfabetos e
linguagens
Autômatos
finitos
Linguagens e
gramáticas
regulares
Linguagens
livres de
contexto
Autômatos
com pilha e
GLC’s
Máquinas de
Turing (234 – 247 de 1593)
Exemplos de demonstrações
LFA 2018/2
H. Longo
Linguagens e
gramáticas
regulares
Linguagens
livres de
contexto
Autômatos
com pilha e
GLC’s
Máquinas de
Turing (235 – 247 de 1593)
Exemplos de demonstrações
LFA 2018/2
H. Longo
Máquinas de
Turing (236 – 247 de 1593)
Exemplos de demonstrações
LFA 2018/2
H. Longo
Alfabetos e
linguagens
Autômatos
finitos
Linguagens e
gramáticas
regulares
Linguagens
livres de
contexto
Autômatos
com pilha e
GLC’s
Máquinas de
Turing (237 – 247 de 1593)
Exemplos de demonstrações
LFA 2018/2
H. Longo
Autômatos
finitos
Linguagens e
gramáticas
regulares
Linguagens
livres de
contexto
Autômatos
com pilha e
GLC’s
Máquinas de
Turing (238 – 247 de 1593)
Exemplos de demonstrações
LFA 2018/2
H. Longo
Autômatos
finitos
Linguagens e Rascunho:
gramáticas
regulares
Dados Objetivo
Linguagens
livres de =⇒ x ∈ A ∩ (B\C) x ∈ (A ∩ B)\C
contexto ⇐= x ∈ (A ∩ B)\C x ∈ A ∩ (B\C)
Autômatos
com pilha e
GLC’s
Máquinas de
Turing (239 – 247 de 1593)
Indução Matemática
LFA 2018/2
H. Longo
Introdução
Fundamentos
matemáticos
Conjuntos
Provar um objetivo da forma ∀ n ∈ N P(n).
Relações e funções
Conjuntos infinitos
Lógica
Definições, teoremas
e provas
Indução
Alfabetos e
linguagens
Autômatos
finitos
Linguagens e
gramáticas
regulares
Linguagens
livres de
contexto
Autômatos
com pilha e
GLC’s
Máquinas de
Turing (240 – 247 de 1593)
Indução Matemática
LFA 2018/2
H. Longo
Introdução
Fundamentos
matemáticos
Conjuntos
N
Provar um objetivo da forma ∀ n ∈ P(n).
Relações e funções Rascunho:
Conjuntos infinitos
Prove P(0).
N
Lógica
Definições, teoremas
e provas Prove que ∀ n ∈ , P(n) ⇒ P(n + 1).
Indução
Alfabetos e
linguagens
Autômatos
finitos
Linguagens e
gramáticas
regulares
Linguagens
livres de
contexto
Autômatos
com pilha e
GLC’s
Máquinas de
Turing (241 – 247 de 1593)
Indução Matemática
LFA 2018/2
H. Longo
Introdução
Fundamentos
matemáticos
Conjuntos
N
Provar um objetivo da forma ∀ n ∈ P(n).
Relações e funções Rascunho:
Conjuntos infinitos
Prove P(0).
N
Lógica
Definições, teoremas
e provas Prove que ∀ n ∈ , P(n) ⇒ P(n + 1).
Indução
Exercícios:
N
Alfabetos e
linguagens Prove que ∀ n ∈ , n ≥ 5, P(2n > n2 ).
Autômatos
finitos
N
Prove que ∀ n ∈ , P(3 | (n3 − n)).
Linguagens e
gramáticas
regulares
Linguagens
livres de
contexto
Autômatos
com pilha e
GLC’s
Máquinas de
Turing (242 – 247 de 1593)
Indução Matemática
LFA 2018/2
H. Longo
Introdução
Fundamentos
matemáticos
Conjuntos
Provar um objetivo da forma ∀ n ∈ P(n). N
Relações e funções Rascunho:
Conjuntos infinitos
Prove P(0).
N
Lógica
Definições, teoremas
e provas Prove que ∀ n ∈ , P(n) ⇒ P(n + 1).
Indução
Exercícios:
N
Alfabetos e
linguagens Prove que ∀ n ∈ , n ≥ 5, P(2n > n2 ).
Autômatos
finitos
N
Prove que ∀ n ∈ , P(3 | (n3 − n)).
Dados Objetivo
N Z (3. j = (n + 1)3 − (n + 1))
Linguagens e
gramáticas n∈ ∃ j∈
regulares
∃k ∈ Z (3.k = n3 − n)
Linguagens
livres de
contexto
Autômatos
com pilha e
GLC’s
Máquinas de
Turing (243 – 247 de 1593)
Indução Forte
LFA 2018/2
H. Longo
Introdução
Fundamentos
matemáticos
Conjuntos
Provar um objetivo da forma ∀ n ∈ N, P(n).
Relações e funções
Conjuntos infinitos
Lógica
Definições, teoremas
e provas
Indução
Alfabetos e
linguagens
Autômatos
finitos
Linguagens e
gramáticas
regulares
Linguagens
livres de
contexto
Autômatos
com pilha e
GLC’s
Máquinas de
Turing (244 – 247 de 1593)
Indução Forte
LFA 2018/2
H. Longo
Introdução
Fundamentos
matemáticos N
Provar um objetivo da forma ∀ n ∈ , P(n).
Conjuntos
Relações e funções
Prove que ∀ n [(∀ k < n P(k)) ⇒ P(n)], n, k ∈ N.
Conjuntos infinitos
Lógica
Definições, teoremas
e provas
Indução
Alfabetos e
linguagens
Autômatos
finitos
Linguagens e
gramáticas
regulares
Linguagens
livres de
contexto
Autômatos
com pilha e
GLC’s
Máquinas de
Turing (245 – 247 de 1593)
Indução Forte
LFA 2018/2
H. Longo
Introdução
Fundamentos
matemáticos N
Provar um objetivo da forma ∀ n ∈ , P(n).
Conjuntos
Relações e funções
N
Prove que ∀ n [(∀ k < n P(k)) ⇒ P(n)], n, k ∈ .
Conjuntos infinitos
Rascunho:
N).
Lógica
Definições, teoremas
e provas Suponha que n é um número natural arbitrário (n ∈
Suponha que ∀ k < n P(k).
Indução
Alfabetos e
linguagens Prove P(n).
Autômatos
finitos
Linguagens e
gramáticas
regulares
Linguagens
livres de
contexto
Autômatos
com pilha e
GLC’s
Máquinas de
Turing (246 – 247 de 1593)
Indução Forte
LFA 2018/2
H. Longo
Introdução
Fundamentos
matemáticos N
Provar um objetivo da forma ∀ n ∈ , P(n).
Conjuntos
Relações e funções
N
Prove que ∀ n [(∀ k < n P(k)) ⇒ P(n)], n, k ∈ .
Conjuntos infinitos
Rascunho:
N
Lógica
Definições, teoremas
e provas Suponha que n é um número natural arbitrário (n ∈ ).
Suponha que ∀ k < n P(k).
Indução
Alfabetos e
linguagens Prove P(n).
Autômatos Obs: Não é necessário provar o caso base.
finitos
Linguagens e
Suponha que se tenha provado ∀ n [(∀ k < n P(n)) ⇒ P(n + 1)], n, k ∈ N.
gramáticas Se n = 0, conclui-se que ∀ k < 0 P(k) ⇒ P(0).
regulares
Pode-se concluir que P(0) é verdadeiro.
Linguagens
livres de
contexto
Autômatos
com pilha e
GLC’s
Máquinas de
Turing (247 – 247 de 1593)
LFA 2018/2
H. Longo
Introdução
Fundamentos
matemáticos
Conjuntos
Relações e funções
Conjuntos infinitos
Lógica
Definições, teoremas
Fundamentos matemáticos
e provas
Indução
Alfabetos e
linguagens
Indução
Autômatos
finitos
Linguagens e
gramáticas
regulares
Linguagens
livres de
contexto
Autômatos
com pilha e
GLC’s
Máquinas de
Turing (248 – 261 de 1593)
Provas por indução
LFA 2018/2
H. Longo
Introdução
Fundamentos
matemáticos
Elemento mínimo
N
Conjuntos
Relações e funções
Conjuntos infinitos Dado um subconjunto não vazio S ⊆ , o elemento mínimo de S é um
Lógica
Definições, teoremas
elemento x0 ∈ S tal que x0 ≤ x, ∀ x ∈ S .
min S = x0 ⇔ x0 ∈ S e x0 ≤ x, ∀ x ∈ S .
e provas
Indução
Alfabetos e
linguagens
Autômatos
finitos
Linguagens e
gramáticas
regulares
Linguagens
livres de
contexto
Autômatos
com pilha e
GLC’s
Máquinas de
Turing (249 – 261 de 1593)
Provas por indução
LFA 2018/2
H. Longo
Introdução
Fundamentos
matemáticos
Elemento mínimo
N
Conjuntos
Relações e funções
Conjuntos infinitos Dado um subconjunto não vazio S ⊆ , o elemento mínimo de S é um
Lógica
Definições, teoremas
elemento x0 ∈ S tal que x0 ≤ x, ∀ x ∈ S .
min S = x0 ⇔ x0 ∈ S e x0 ≤ x, ∀ x ∈ S .
e provas
Indução
Alfabetos e
linguagens
Princípio da boa ordenação
N possui um elemento mínimo.
Autômatos
finitos
Todo subconjunto não vazio S ⊆
Linguagens e
gramáticas
regulares
N
∀ S ⊆ , S , ∅ ⇒ ∃ min S .
Linguagens
livres de
contexto
Autômatos
com pilha e
GLC’s
Máquinas de
Turing (250 – 261 de 1593)
Provas por indução
LFA 2018/2
H. Longo
Introdução
Fundamentos
matemáticos
Conjuntos
Relações e funções
Conjuntos infinitos Teorema 2.24 (Princípio da Indução Finita)
Lógica
Definições, teoremas
e provas
Seja S ⊆ N que satisfaz as seguintes condições:
Indução
i 0 ∈ S; e
Alfabetos e
linguagens ii para todo inteiro positivo k, se k ∈ S , então k + 1 ∈ S .
Autômatos
finitos
Neste caso, S é o próprio conjunto N, ou seja, S = N.
Linguagens e
gramáticas
regulares
Linguagens
livres de
contexto
Autômatos
com pilha e
GLC’s
Máquinas de
Turing (251 – 261 de 1593)
Provas por indução
LFA 2018/2
H. Longo
Demonstração.
Introdução Supor, por absurdo, que S , . N
Fundamentos
Seja X o conjunto de todos os inteiros que não pertencem a S :
N N
matemáticos
Conjuntos
X = {x | x ∈ e x < S } = − S .
N (∅ , X ⊂ N) e, pelo “Princípio da Boa
Relações e funções
Conjuntos infinitos
Lógica X é subconjunto não vazio de
Definições, teoremas
e provas Ordenação”, existe um elemento mínimo x0 de X (min X ).
Indução
Alfabetos e
linguagens
Autômatos
finitos
x0
Linguagens e
gramáticas 0
x0 − 1
regulares
Linguagens
livres de S N X
contexto
Autômatos
com pilha e
GLC’s
Máquinas de
Turing (252 – 261 de 1593)
Provas por indução
LFA 2018/2
H. Longo
Demonstração.
Introdução Pela condição i, 0 ∈ S , de modo que x0 > 0 e, portanto, x0 − 1 < X .
Fundamentos
matemáticos Como x0 − 1 ∈ S , pela condição ii, (x0 − 1) + 1 = x0 ∈ S .
Conjuntos
Dada a contradição ( x0 = min X e X = N − S , ou seja, x0 < S ), concluí-se que
N
Relações e funções
X=∅eS = .
Conjuntos infinitos
Lógica
Autômatos
finitos
Linguagens e
gramáticas
regulares
Linguagens
livres de
contexto
Autômatos
com pilha e
GLC’s
Máquinas de
Turing (253 – 261 de 1593)
Provas por indução
LFA 2018/2
H. Longo
Introdução
Fundamentos
matemáticos
Conjuntos
Relações e funções
Teorema 2.25 (Princípio da Indução Matemática)
Conjuntos infinitos
Lógica Seja P(n) uma proposição associada a inteiros n ≥ 0 e que satisfaz as
Definições, teoremas
e provas seguintes condições:
Indução
Alfabetos e
1 a proposição P(0) é verdadeira; e
linguagens 2 para todo inteiro positivo k, se a proposição P(k) é verdadeira, então a
Autômatos proposição P(k + 1) também é verdadeira.
finitos
Linguagens
livres de
contexto
Autômatos
com pilha e
GLC’s
Máquinas de
Turing (254 – 261 de 1593)
Provas por indução
LFA 2018/2
H. Longo
Introdução
Demonstração.
Fundamentos
matemáticos Seja S o conjunto de todos os inteiros para os quais a proposição P(n) é
Conjuntos
verdadeira.
N
Relações e funções
Conjuntos infinitos
Lógica
S = {n ∈ | P(n) é verdadeira}.
Definições, teoremas
e provas
Indução
Pela condição 1, P(0) é verdadeira e, portanto, 0 ∈ S .
Alfabetos e Pela condição 2, para todo inteiro positivo k, P(k) verdadeira (k ∈ S ) implica
que P(k + 1) é verdadeira (k + 1 ∈ S ).
linguagens
Autômatos
finitos
O conjunto S satisfaz às condições i e ii do “Princípio da Indução Finita” e,
Linguagens e
gramáticas N
portanto, S = .
regulares
A proposição P(n) é verdadeira para todo inteiro n ≥ 0.
Linguagens
livres de
contexto
Autômatos
com pilha e
GLC’s
Máquinas de
Turing (255 – 261 de 1593)
Provas por indução
LFA 2018/2
H. Longo
Introdução
Autômatos
finitos
Linguagens e
gramáticas
regulares
Linguagens
livres de
contexto
Autômatos
com pilha e
GLC’s
Máquinas de
Turing (256 – 261 de 1593)
Provas por indução
LFA 2018/2
H. Longo
Introdução
Alfabetos e
linguagens
Autômatos
finitos
Linguagens e
gramáticas
regulares
Linguagens
livres de
contexto
Autômatos
com pilha e
GLC’s
Máquinas de
Turing (257 – 261 de 1593)
Provas por indução
LFA 2018/2
H. Longo
Introdução
Linguagens e
gramáticas
regulares Por hipótese de indução, (8k − 2k ) é divisível por 6.
Linguagens
livres de
Logo, S = N − {0} e a proposição P(n) é verdadeira para todo n ≥ 1.
contexto
Autômatos
com pilha e
GLC’s
Máquinas de
Turing (258 – 261 de 1593)
Indução Matemática
LFA 2018/2
H. Longo
Introdução
Fundamentos
matemáticos
Exemplo 2.27
Para todo inteiro n maior que 3, n! > 2n .
Conjuntos
Relações e funções
Conjuntos infinitos
Lógica Seja P(n) a proposição: n! > 2n , para todo 4 ≤ n ∈ N.
N | P(n) é verdadeira.}.
Definições, teoremas
Seja S = {n ∈
e provas
Indução
Alfabetos e
linguagens
Objetivo: provar que S = N − {0, 1, 2, 3}!
Autômatos
finitos
Linguagens e
gramáticas
regulares
Linguagens
livres de
contexto
Autômatos
com pilha e
GLC’s
Máquinas de
Turing (259 – 261 de 1593)
Indução Matemática
LFA 2018/2
H. Longo
Introdução
Fundamentos
matemáticos
Exemplo 2.27
Base: Para n = 4, 4! = 24 > 16 = 24 . Logo, 4 ∈ S .
Conjuntos
Relações e funções
Conjuntos infinitos
Lógica
Definições, teoremas
H. I.: Suponha que um certo 4 ≤ n = k ∈ S , ou seja, k! > 2k e n = k ∈ S .
e provas
Indução
Alfabetos e
linguagens
Autômatos
finitos
Linguagens e
gramáticas
regulares
Linguagens
livres de
contexto
Autômatos
com pilha e
GLC’s
Máquinas de
Turing (260 – 261 de 1593)
Indução Matemática
LFA 2018/2
H. Longo
Introdução
Fundamentos
matemáticos
Exemplo 2.27
P. I.: Deve-se mostrar que n = k + 1 ∈ S , ou seja, P(k + 1) é verdadeira:
Conjuntos
Relações e funções
Conjuntos infinitos
Lógica
Definições, teoremas
e provas
(k + 1)! = (k + 1) · k!
Indução
> (k + 1) · 2k (hipótese indutiva)
Alfabetos e
linguagens > 2 · 2k (já que k + 1 > 2)
Autômatos = 2k+1
finitos
Linguagens e
Dado que (k + 1)! > 2k+1 , P(n) é verdadeira para todo n ∈ N − {0, 1, 2, 3}, ou
N
gramáticas
regulares
seja, S = − {0, 1, 2, 3}.
Linguagens
livres de
contexto
Autômatos
com pilha e
GLC’s
Máquinas de
Turing (261 – 261 de 1593)
LFA 2018/2
H. Longo
Introdução
Fundamentos
matemáticos
Alfabetos e
linguagens
Operações com
cadeias Alfabetos e linguagens
Conjuntos regulares
Expressões regulares
Linguagens contáveis
Autômatos
finitos Operações com cadeias
Linguagens e
gramáticas
regulares
Linguagens
livres de
contexto
Autômatos
com pilha e
GLC’s
Máquinas de
Turing
H. Longo
Autômatos
finitos
Linguagens e
gramáticas
regulares
Linguagens
livres de
contexto
Autômatos
com pilha e
GLC’s
Máquinas de
Turing
H. Longo
Autômatos Notação
finitos
Autômatos
Σ+ : Σ∗ − {ε}.
com pilha e
GLC’s |w| : comprimento ou tamanho da cadeia w (número de símbolos que compõem w)
Máquinas de
Turing
H. Longo
Introdução
|w| : Definição recursiva.
Fundamentos
matemáticos
0
se w = ε;
|w| =
Alfabetos e
linguagens
Operações com
|v| + 1 se w = va, tal que v ∈ Σ∗ e a ∈ Σ.
cadeias
Conjuntos regulares
Expressões regulares
Linguagens contáveis
Autômatos
finitos
Linguagens e
gramáticas
regulares
Linguagens
livres de
contexto
Autômatos
com pilha e
GLC’s
Máquinas de
Turing
H. Longo
Introdução
|w| : Definição recursiva.
Fundamentos
matemáticos
0
se w = ε;
|w| =
Alfabetos e
linguagens
Operações com
|v| + 1 se w = va, tal que v ∈ Σ∗ e a ∈ Σ.
cadeias
Conjuntos regulares
Expressões regulares
Linguagens contáveis
|w|a : Nr. de ocorrências do símbolo a na palavra w.
Autômatos Ex.: |ε|a = 0, |abb|a = 1, |aba|a = 2, . . .
finitos
Linguagens e
Definição recursiva:
gramáticas
regulares
0 se w = ε;
Linguagens
|w|a = se w = vb e a , b (v ∈ Σ∗ e a, b ∈ Σ);
livres de
contexto |v|a
Autômatos |v|a + 1 se w = vb e a = b (v ∈ Σ∗ e a, b ∈ Σ).
com pilha e
GLC’s
Máquinas de
Turing
H. Longo
Autômatos
finitos
Linguagens e
gramáticas
regulares
Linguagens
livres de
contexto
Autômatos
com pilha e
GLC’s
Máquinas de
Turing
H. Longo
Linguagens
livres de
contexto
Autômatos
com pilha e
GLC’s
Máquinas de
Turing
H. Longo
H. Longo
Introdução Operação binária, definida sobre uma linguagem L, que associa a cada par
Fundamentos
matemáticos
de palavras uma palavra formada pela justaposição da primeira com a
segunda.
Alfabetos e
linguagens Se v, w ∈ L, então vw é a concatenação de v e w.
Operações com
cadeias
Conjuntos regulares
Expressões regulares
Linguagens contáveis
Autômatos
finitos
Linguagens e
gramáticas
regulares
Linguagens
livres de
contexto
Autômatos
com pilha e
GLC’s
Máquinas de
Turing
H. Longo
Introdução Operação binária, definida sobre uma linguagem L, que associa a cada par
Fundamentos
matemáticos
de palavras uma palavra formada pela justaposição da primeira com a
segunda.
Alfabetos e
linguagens Se v, w ∈ L, então vw é a concatenação de v e w.
Operações com
cadeias
Conjuntos regulares
Expressões regulares
Não é necessariamente fechada em L:
Linguagens contáveis
a concatenação de duas palavras de uma linguagem não necessariamente
Autômatos
finitos resulta em uma palavra da linguagem.
Linguagens e
gramáticas
regulares
Linguagens
livres de
contexto
Autômatos
com pilha e
GLC’s
Máquinas de
Turing
H. Longo
Introdução Operação binária, definida sobre uma linguagem L, que associa a cada par
Fundamentos
matemáticos
de palavras uma palavra formada pela justaposição da primeira com a
segunda.
Alfabetos e
linguagens Se v, w ∈ L, então vw é a concatenação de v e w.
Operações com
cadeias
Conjuntos regulares
Expressões regulares
Não é necessariamente fechada em L:
Linguagens contáveis
a concatenação de duas palavras de uma linguagem não necessariamente
Autômatos
finitos resulta em uma palavra da linguagem.
Linguagens e
gramáticas É associativa:
regulares
Linguagens
Se t, v, w ∈ L, então v(wt) = (vw)t = vwt
livres de
contexto
Autômatos
com pilha e
GLC’s
Máquinas de
Turing
H. Longo
Introdução Operação binária, definida sobre uma linguagem L, que associa a cada par
Fundamentos
matemáticos
de palavras uma palavra formada pela justaposição da primeira com a
segunda.
Alfabetos e
linguagens Se v, w ∈ L, então vw é a concatenação de v e w.
Operações com
cadeias
Conjuntos regulares
Expressões regulares
Não é necessariamente fechada em L:
Linguagens contáveis
a concatenação de duas palavras de uma linguagem não necessariamente
Autômatos
finitos resulta em uma palavra da linguagem.
Linguagens e
gramáticas É associativa:
regulares
Linguagens
Se t, v, w ∈ L, então v(wt) = (vw)t = vwt
livres de
contexto
A palavra vazia é o elemento neutro à esquerda e à direita:
Autômatos
com pilha e εw = w = wε.
GLC’s
Máquinas de
Turing
H. Longo
Autômatos
finitos
Linguagens e
gramáticas
regulares
Linguagens
livres de
contexto
Autômatos
com pilha e
GLC’s
Máquinas de
Turing
H. Longo
Autômatos
finitos
Linguagens e
gramáticas Definição 3.3
regulares
wn : n concatenações sucessivas da palavra w ∈ L:
Linguagens
livres de
contexto Base: w0 = ε.
Autômatos
com pilha e
Recursão: wn = wn−1 w, para n > 0.
GLC’s
Máquinas de
Turing
Alfabetos e
linguagens
Operações com
cadeias
Conjuntos regulares
Expressões regulares
Linguagens contáveis
Autômatos
finitos
Linguagens e
gramáticas
regulares
Linguagens
livres de
contexto
Autômatos
com pilha e
GLC’s
Máquinas de
Turing
Autômatos
finitos
Linguagens e
gramáticas
regulares
Linguagens
livres de
contexto
Autômatos
com pilha e
GLC’s
Máquinas de
Turing
(277 – 287 de 1593)
Concatenação de Palavras
LFA 2018/2
Autômatos
finitos
= ((uv)x)a (definição de concatenação)
Linguagens e
gramáticas
regulares
= (u(vx))a (hipótese indutiva)
Linguagens = u((vx)a) (definição de concatenação)
livres de
contexto = u(v(xa)) (definição de concatenação)
= u(v(w)) (substituição, xa = w)
Autômatos
com pilha e
GLC’s
Máquinas de
= u(vw).
Turing
(278 – 287 de 1593)
Reverso de uma Cadeia
LFA 2018/2
H. Longo
Introdução
Fundamentos
matemáticos Definição 3.5
Seja u ∈ Σ∗ . O reverso uR de u é definido como:
Alfabetos e
linguagens
Operações com
Linguagens
livres de
contexto
Autômatos
com pilha e
GLC’s
Máquinas de
Turing
H. Longo
Introdução
Fundamentos
matemáticos Definição 3.5
Seja u ∈ Σ∗ . O reverso uR de u é definido como:
Alfabetos e
linguagens
Operações com
Autômatos
com pilha e
GLC’s
Máquinas de
Turing
H. Longo
Teorema 3.7
Introdução
Seja u, v ∈ Σ∗ . Então (uv)R = vR uR .
Fundamentos
matemáticos
Alfabetos e
linguagens
Operações com
cadeias
Conjuntos regulares
Expressões regulares
Linguagens contáveis
Autômatos
finitos
Linguagens e
gramáticas
regulares
Linguagens
livres de
contexto
Autômatos
com pilha e
GLC’s
Máquinas de
Turing
H. Longo
Teorema 3.7
Introdução
Seja u, v ∈ Σ∗ . Então (uv)R = vR uR .
Fundamentos
matemáticos
Demonstração (Indução no comprimento de v).
Alfabetos e
linguagens
Operações com
Base: Se |v| = 0, então v = ε e (uv)R = uR . De forma semelhante,
cadeias
Conjuntos regulares
vR uR = εR uR = uR .
Hipótese: Suponha que (uv)R = vR uR para toda cadeia v com |v| = n.
Expressões regulares
Linguagens contáveis
Autômatos
finitos
Linguagens e
gramáticas
regulares
Linguagens
livres de
contexto
Autômatos
com pilha e
GLC’s
Máquinas de
Turing
(282 – 287 de 1593)
Reverso de uma Cadeia
LFA 2018/2
H. Longo
Teorema 3.7
Introdução
Seja u, v ∈ Σ∗ . Então (uv)R = vR uR .
Fundamentos
matemáticos
Demonstração (Indução no comprimento de v).
Alfabetos e
linguagens Passo indutivo: Se v é uma cadeia com |v| = n + 1, então v = wa para alguma
cadeia w de comprimento n e a ∈ Σ.
Operações com
cadeias
Conjuntos regulares
Expressões regulares
(uv)R = (u(wa))R
Linguagens contáveis
Autômatos
finitos
= ((uw)a)R (associatividade da concatenação)
Linguagens e
gramáticas
regulares
= a(uw) R
(definição de reverso)
Linguagens = a(wR uR ) (hipótese indutiva)
livres de
contexto
= (aw )u
R R
(associatividade da concatenação)
Autômatos
com pilha e
GLC’s
= (wa) u
R R
(definição de reverso)
Máquinas de
Turing
=v u .
R R
(283 – 287 de 1593)
Cadeia em um alfabeto Σ
Um pouco mais de formalismo.
LFA 2018/2
H. Longo
Introdução
Fundamentos
matemáticos Sequência w de comprimento n no alfabeto Σ.
Alfabetos e
linguagens
w : [n] → Σ.
Operações com
cadeias
[n] é o domínio.
Conjuntos regulares Σ é o contradomínio.
|w| = n é o comprimento de w.
Expressões regulares
Linguagens contáveis
Autômatos
finitos
Linguagens e
gramáticas
regulares
Linguagens
livres de
contexto
Autômatos
com pilha e
GLC’s
Máquinas de
Turing
LFA 2018/2
H. Longo
Introdução
Fundamentos
matemáticos Sequência w de comprimento n no alfabeto Σ.
Alfabetos e
linguagens
w : [n] → Σ.
Operações com
cadeias
[n] é o domínio.
Conjuntos regulares Σ é o contradomínio.
|w| = n é o comprimento de w.
Expressões regulares
Linguagens contáveis
Autômatos
finitos
Exemplo:
Linguagens e
gramáticas Σ = {a, b, c}.
regulares w = cbba.
Linguagens
livres de
w : [4] → Σ, definida por w(1) = c, w(2) = b, w(3) = b, w(4) = a.
contexto
Autômatos
com pilha e
GLC’s
Máquinas de
Turing
LFA 2018/2
H. Longo
Introdução
Fundamentos
matemáticos
Alfabetos e
Seja o alfabeto Σ e as funções:
linguagens
Operações com
x : [m] → Σ.
cadeias
Conjuntos regulares
y : [n] → Σ.
Expressões regulares
Linguagens contáveis
Autômatos
finitos
Linguagens e
gramáticas
regulares
Linguagens
livres de
contexto
Autômatos
com pilha e
GLC’s
Máquinas de
Turing
LFA 2018/2
H. Longo
Introdução
Fundamentos
matemáticos
Alfabetos e
Seja o alfabeto Σ e as funções:
linguagens
Operações com
x : [m] → Σ.
cadeias
Conjuntos regulares
y : [n] → Σ.
Expressões regulares
Linguagens contáveis
Autômatos
Concatenação de x e y:
finitos
(
x(i), se i ≤ m;
x ◦ y : [m + n] → Σ, tal que: x ◦ y =
Linguagens e
gramáticas
y(i − m), se i > m.
regulares
|x ◦ y| = |x| + |y| = m + n é o comprimento da palavra x ◦ y.
Linguagens
livres de
contexto
Autômatos
com pilha e
GLC’s
Máquinas de
Turing
H. Longo
Introdução
Fundamentos
matemáticos
Alfabetos e
linguagens
Operações com
cadeias Alfabetos e linguagens
Conjuntos regulares
Expressões regulares
Linguagens contáveis
Autômatos
finitos Conjuntos regulares
Linguagens e
gramáticas
regulares
Linguagens
livres de
contexto
Autômatos
com pilha e
GLC’s
Máquinas de
Turing
H. Longo
Introdução
Fundamentos
Dado um alfabeto Σ, uma linguagem em Σ é um conjunto de sequências de
matemáticos símbolos (palavras) do alfabeto.
Alfabetos e
linguagens
Operações com
cadeias
Conjuntos regulares
Expressões regulares
Linguagens contáveis
Autômatos
finitos
Linguagens e
gramáticas
regulares
Linguagens
livres de
contexto
Autômatos
com pilha e
GLC’s
Máquinas de
Turing
H. Longo
Introdução
Fundamentos
Dado um alfabeto Σ, uma linguagem em Σ é um conjunto de sequências de
matemáticos símbolos (palavras) do alfabeto.
Alfabetos e
linguagens
Operações com
Se Σ = {a, b}, então são linguagens sobre Σ:
cadeias
Conjuntos regulares
Finitas: o conjunto vazio e o conjunto formado pela palavra vazia.
Expressões regulares
Linguagens contáveis
(Atenção: { } , {ε} , ε).
Autômatos
Finitas: {a, b, aa, ab, ba, bb}, {ε, aaa, bbb}, {aaa, aab, aba, abb}.
finitos Infinitas: o conjunto {ε, a, b, aa, bb, aaa, aba, bab, bbb, aaaa, . . . } de palíndromos
Linguagens e sobre Σ.
gramáticas
regulares
Linguagens
livres de
contexto
Autômatos
com pilha e
GLC’s
Máquinas de
Turing
H. Longo
Introdução
Fundamentos
Dado um alfabeto Σ, uma linguagem em Σ é um conjunto de sequências de
matemáticos símbolos (palavras) do alfabeto.
Alfabetos e
linguagens
Operações com
Se Σ = {a, b}, então são linguagens sobre Σ:
cadeias
Conjuntos regulares
Finitas: o conjunto vazio e o conjunto formado pela palavra vazia.
Expressões regulares
Linguagens contáveis
(Atenção: { } , {ε} , ε).
Autômatos
Finitas: {a, b, aa, ab, ba, bb}, {ε, aaa, bbb}, {aaa, aab, aba, abb}.
finitos Infinitas: o conjunto {ε, a, b, aa, bb, aaa, aba, bab, bbb, aaaa, . . . } de palíndromos
Linguagens e sobre Σ.
gramáticas
regulares
Linguagens
Linguagem Σ∗ : conjunto de todas as sequências de símbolos do alfabeto Σ.
livres de
contexto
ε ∈ Σ∗ .
Autômatos
L ⊆ Σ∗ , se L é uma linguagem em Σ.
com pilha e
GLC’s
Máquinas de
Turing
H. Longo
Introdução
Fundamentos
matemáticos
Especificação de uma linguagem:
Alfabetos e
linguagens Descrição não ambígua das cadeias da linguagem.
Operações com
cadeias
Conjuntos regulares
Expressões regulares
Linguagens contáveis
Autômatos
finitos
Linguagens e
gramáticas
regulares
Linguagens
livres de
contexto
Autômatos
com pilha e
GLC’s
Máquinas de
Turing
H. Longo
Introdução
Fundamentos
matemáticos
Especificação de uma linguagem:
Alfabetos e
linguagens Descrição não ambígua das cadeias da linguagem.
Operações com
cadeias
Conjuntos regulares Linguagem finita:
Expressões regulares
Linguagens contáveis Enumeração de suas cadeias.
Autômatos
finitos
Linguagens e
gramáticas
regulares
Linguagens
livres de
contexto
Autômatos
com pilha e
GLC’s
Máquinas de
Turing
H. Longo
Introdução
Fundamentos
matemáticos
Especificação de uma linguagem:
Alfabetos e
linguagens Descrição não ambígua das cadeias da linguagem.
Operações com
cadeias
Conjuntos regulares Linguagem finita:
Expressões regulares
Linguagens contáveis Enumeração de suas cadeias.
Autômatos
finitos Linguagem infinita:
Linguagens e
gramáticas
Definição recursiva das cadeias (para linguagens com estrutura sintática
regulares simples).
Linguagens Construção a partir de conjuntos finitos através dos operadores de conjuntos.
livres de
contexto
Autômatos
com pilha e
GLC’s
Máquinas de
Turing
H. Longo
Introdução
Fundamentos
matemáticos
Definição 3.8
Alfabetos e
linguagens
Operações com
Seja Σ um alfabeto. A definição recursiva do conjunto Σ∗ , das cadeias
cadeias
Conjuntos regulares
definidas sobre Σ, é:
Expressões regulares
Linguagens contáveis
Base: ε ∈ Σ∗ .
Autômatos
finitos Recursão: Se w ∈ Σ∗ e a ∈ Σ, então wa ∈ Σ∗ .
Linguagens e
gramáticas Fecho: w ∈ Σ∗ se w pode ser obtida a partir de ε com um número finito de
regulares
aplicações do passo recursivo.
Linguagens
livres de
contexto
Autômatos
com pilha e
GLC’s
Máquinas de
Turing
H. Longo
Introdução
Fundamentos
matemáticos
Autômatos
com pilha e
GLC’s
Máquinas de
Turing
H. Longo
Introdução
Fundamentos
matemáticos
Autômatos
finitos
Linguagens e
gramáticas
regulares
Linguagens
livres de
contexto
Autômatos
com pilha e
GLC’s
Máquinas de
Turing
H. Longo
Introdução
Fundamentos
matemáticos
Linguagens e
gramáticas
regulares
Linguagens
livres de
contexto
Autômatos
com pilha e
GLC’s
Máquinas de
Turing
H. Longo
Introdução
Fundamentos
matemáticos
Linguagens
livres de
contexto
Autômatos
com pilha e
GLC’s
Máquinas de
Turing
H. Longo
Introdução
Fundamentos
matemáticos
Autômatos
com pilha e
GLC’s
Máquinas de
Turing
H. Longo
Definição 3.11
Introdução
Autômatos
finitos
Linguagens e
gramáticas
regulares
Linguagens
livres de
contexto
Autômatos
com pilha e
GLC’s
Máquinas de
Turing
H. Longo
Definição 3.11
Introdução
Linguagens e
L ∪ M = {x | x ∈ L ou x ∈ M}.
gramáticas
regulares L ∩ M = {x | x ∈ L e x ∈ M}.
Linguagens
livres de
L − M = {x | x ∈ L e x < M}.
contexto
L = Σ∗ − L,
Autômatos
com pilha e
GLC’s
= {x ∈ Σ∗ | x < L}.
Máquinas de
Turing
H. Longo
Exemplo 3.13
Introdução
Fundamentos
Se L = {a, bc, cb}, M = {aa, bb, cc, bc, cb} e Σ = {a, b, c}, então:
matemáticos
Alfabetos e
linguagens
L ∪ M = {a, bc, cb, aa, bb, cc}.
Operações com
cadeias L ∩ M = {bc, cb}.
Conjuntos regulares
Expressões regulares
Linguagens contáveis
L − M = {a}.
Autômatos M − L = {aa, bb, cc}.
finitos
Autômatos
bcbc, bccb, cbaa, cbbb, cbcc, cbbc, cbcb}.
com pilha e
GLC’s M◦L = . . .
Máquinas de
Turing
H. Longo
Definição 3.14
Introdução I = {ε} : elemento neutro na concatenação de linguagens:
Fundamentos
matemáticos L ◦ I = I ◦ L = L.
Alfabetos e
linguagens
Operações com
cadeias
Conjuntos regulares
Expressões regulares
Linguagens contáveis
Autômatos
finitos
Linguagens e
gramáticas
regulares
Linguagens
livres de
contexto
Autômatos
com pilha e
GLC’s
Máquinas de
Turing
H. Longo
Definição 3.14
Introdução I = {ε} : elemento neutro na concatenação de linguagens:
Fundamentos
matemáticos L ◦ I = I ◦ L = L.
Alfabetos e
linguagens
Operações com
cadeias Definição 3.15
Conjuntos regulares
Expressões regulares
Linguagens contáveis
Li : potência da linguagem L.
Autômatos
finitos L0 = {ε}.
Linguagens e
gramáticas L1 = L.
N.
regulares
Máquinas de
Turing
Introdução
Li ◦ L j = L ◦ Li−1 ◦ L j
Fundamentos
matemáticos
Alfabetos e
linguagens
Operações com
cadeias
Conjuntos regulares
Expressões regulares
Linguagens contáveis
Autômatos
finitos
Linguagens e
gramáticas
regulares
Linguagens
livres de
contexto
Autômatos
com pilha e
GLC’s
Máquinas de
Turing
Introdução
Li ◦ L j = L ◦ Li−1 ◦ L j
Fundamentos
matemáticos = L ◦ L ◦ Li−2 ◦ L j
Alfabetos e
linguagens
Operações com
cadeias
Conjuntos regulares
Expressões regulares
Linguagens contáveis
Autômatos
finitos
Linguagens e
gramáticas
regulares
Linguagens
livres de
contexto
Autômatos
com pilha e
GLC’s
Máquinas de
Turing
Introdução
Li ◦ L j = L ◦ Li−1 ◦ L j
Fundamentos
matemáticos = L ◦ L ◦ Li−2 ◦ L j
Alfabetos e .
linguagens ..
Operações com
cadeias
Conjuntos regulares
= L ◦ L ◦ · · · ◦ L◦L2 ◦ L j
| {z }
Expressões regulares
i−2 cópias
Linguagens contáveis
Autômatos
finitos
Linguagens e
gramáticas
regulares
Linguagens
livres de
contexto
Autômatos
com pilha e
GLC’s
Máquinas de
Turing
Introdução
Li ◦ L j = L ◦ Li−1 ◦ L j
Fundamentos
matemáticos = L ◦ L ◦ Li−2 ◦ L j
Alfabetos e .
linguagens ..
Operações com
cadeias
Conjuntos regulares
= L ◦ L ◦ · · · ◦ L◦L2 ◦ L j
| {z }
Expressões regulares
i−2 cópias
Linguagens contáveis
Autômatos
= L ◦ L ◦ · · · ◦ L ◦ L◦L1 ◦ L j
| {z }
finitos
i−1 cópias
Linguagens e
gramáticas
regulares
Linguagens
livres de
contexto
Autômatos
com pilha e
GLC’s
Máquinas de
Turing
Introdução
Li ◦ L j = L ◦ Li−1 ◦ L j
Fundamentos
matemáticos = L ◦ L ◦ Li−2 ◦ L j
Alfabetos e .
linguagens ..
Operações com
cadeias
Conjuntos regulares
= L ◦ L ◦ · · · ◦ L◦L2 ◦ L j
| {z }
Expressões regulares
i−2 cópias
Linguagens contáveis
Autômatos
= L ◦ L ◦ · · · ◦ L ◦ L◦L1 ◦ L j
| {z }
finitos
i−1 cópias
Linguagens e
gramáticas
= L ◦ L ◦ · · · ◦ L ◦ L◦L1+ j
| {z }
regulares i−1 cópias
Linguagens
livres de
contexto
Autômatos
com pilha e
GLC’s
Máquinas de
Turing
Introdução
Li ◦ L j = L ◦ Li−1 ◦ L j
Fundamentos
matemáticos = L ◦ L ◦ Li−2 ◦ L j
Alfabetos e .
linguagens ..
Operações com
cadeias
Conjuntos regulares
= L ◦ L ◦ · · · ◦ L◦L2 ◦ L j
| {z }
Expressões regulares
i−2 cópias
Linguagens contáveis
Autômatos
= L ◦ L ◦ · · · ◦ L ◦ L◦L1 ◦ L j
| {z }
finitos
i−1 cópias
Linguagens e
gramáticas
= L ◦ L ◦ · · · ◦ L ◦ L◦L1+ j
| {z }
regulares i−1 cópias
Linguagens
livres de
= L ◦ L ◦ · · · ◦ L◦L2+ j
| {z }
contexto i−2 cópias
Autômatos
com pilha e
GLC’s
Máquinas de
Turing
Introdução
Li ◦ L j = L ◦ Li−1 ◦ L j
Fundamentos
matemáticos = L ◦ L ◦ Li−2 ◦ L j
Alfabetos e .
linguagens ..
Operações com
cadeias
Conjuntos regulares
= L ◦ L ◦ · · · ◦ L◦L2 ◦ L j
| {z }
Expressões regulares
i−2 cópias
Linguagens contáveis
Autômatos
= L ◦ L ◦ · · · ◦ L ◦ L◦L1 ◦ L j
| {z }
finitos
i−1 cópias
Linguagens e
gramáticas
= L ◦ L ◦ · · · ◦ L ◦ L◦L1+ j
| {z }
regulares i−1 cópias
Linguagens
livres de
= L ◦ L ◦ · · · ◦ L◦L2+ j
| {z }
contexto i−2 cópias
Autômatos
..
com pilha e
GLC’s
.
Máquinas de = L ◦ L(i−1)+ j
Turing
= Li+ j .
(312 – 337 de 1593)
Operações com Linguagens
LFA 2018/2
Concatenação de potências de uma linguagem (Rafael Quirino – LFA 2017/1)
H. Longo
Introdução
Li ◦ L j = L ◦ Li−1 ◦ L j L j ◦ Li = L ◦ L j−1 ◦ Li
Fundamentos
matemáticos = L ◦ L ◦ Li−2 ◦ L j = L ◦ L ◦ L j−2 ◦ Li
Alfabetos e .
linguagens ..
Operações com
cadeias
Conjuntos regulares
= L ◦ L ◦ · · · ◦ L◦L2 ◦ L j
| {z }
Expressões regulares
i−2 cópias
Linguagens contáveis
Autômatos
= L ◦ L ◦ · · · ◦ L ◦ L◦L1 ◦ L j
| {z }
finitos
i−1 cópias
Linguagens e
gramáticas
= L ◦ L ◦ · · · ◦ L ◦ L◦L1+ j
| {z }
regulares i−1 cópias
Linguagens
livres de
= L ◦ L ◦ · · · ◦ L◦L2+ j
| {z }
contexto i−2 cópias
Autômatos
..
com pilha e
GLC’s
.
Máquinas de = L ◦ L(i−1)+ j
Turing
= Li+ j .
(313 – 337 de 1593)
Operações com Linguagens
LFA 2018/2
Concatenação de potências de uma linguagem (Rafael Quirino – LFA 2017/1)
H. Longo
Introdução
Li ◦ L j = L ◦ Li−1 ◦ L j L j ◦ Li = L ◦ L j−1 ◦ Li
Fundamentos
matemáticos = L ◦ L ◦ Li−2 ◦ L j = L ◦ L ◦ L j−2 ◦ Li
Alfabetos e . .
linguagens .. ..
Operações com
cadeias
Conjuntos regulares
= L ◦ L ◦ · · · ◦ L◦L2 ◦ L j = L ◦ L ◦ · · · ◦ L◦L2 ◦ Li
| {z } | {z }
Expressões regulares
i−2 cópias j−2 cópias
Linguagens contáveis
Autômatos
= L ◦ L ◦ · · · ◦ L ◦ L◦L1 ◦ L j = L ◦ L ◦ · · · ◦ L ◦ L◦L1 ◦ Li
| {z } | {z }
finitos
i−1 cópias j−1 cópias
Linguagens e
gramáticas
= L ◦ L ◦ · · · ◦ L ◦ L◦L1+ j
| {z }
regulares i−1 cópias
Linguagens
livres de
= L ◦ L ◦ · · · ◦ L◦L2+ j
| {z }
contexto i−2 cópias
Autômatos
..
com pilha e
GLC’s
.
Máquinas de = L ◦ L(i−1)+ j
Turing
= Li+ j .
(314 – 337 de 1593)
Operações com Linguagens
LFA 2018/2
Concatenação de potências de uma linguagem (Rafael Quirino – LFA 2017/1)
H. Longo
Introdução
Li ◦ L j = L ◦ Li−1 ◦ L j L j ◦ Li = L ◦ L j−1 ◦ Li
Fundamentos
matemáticos = L ◦ L ◦ Li−2 ◦ L j = L ◦ L ◦ L j−2 ◦ Li
Alfabetos e . .
linguagens .. ..
Operações com
cadeias
Conjuntos regulares
= L ◦ L ◦ · · · ◦ L◦L2 ◦ L j = L ◦ L ◦ · · · ◦ L◦L2 ◦ Li
| {z } | {z }
Expressões regulares
i−2 cópias j−2 cópias
Linguagens contáveis
Autômatos
= L ◦ L ◦ · · · ◦ L ◦ L◦L1 ◦ L j = L ◦ L ◦ · · · ◦ L ◦ L◦L1 ◦ Li
| {z } | {z }
finitos
i−1 cópias j−1 cópias
Linguagens e
gramáticas
= L ◦ L ◦ · · · ◦ L ◦ L◦L1+ j = L ◦ L ◦ · · · ◦ L ◦ L◦L1+i
| {z } | {z }
regulares i−1 cópias j−1 cópias
Linguagens
livres de
= L ◦ L ◦ · · · ◦ L◦L2+ j = L ◦ L ◦ · · · ◦ L◦L2+i
| {z } | {z }
contexto i−2 cópias j−2 cópias
Autômatos
..
com pilha e
GLC’s
.
Máquinas de = L ◦ L(i−1)+ j
Turing
= Li+ j .
(315 – 337 de 1593)
Operações com Linguagens
LFA 2018/2
Concatenação de potências de uma linguagem (Rafael Quirino – LFA 2017/1)
H. Longo
Introdução
Li ◦ L j = L ◦ Li−1 ◦ L j L j ◦ Li = L ◦ L j−1 ◦ Li
Fundamentos
matemáticos = L ◦ L ◦ Li−2 ◦ L j = L ◦ L ◦ L j−2 ◦ Li
Alfabetos e . .
linguagens .. ..
Operações com
cadeias
Conjuntos regulares
= L ◦ L ◦ · · · ◦ L◦L2 ◦ L j = L ◦ L ◦ · · · ◦ L◦L2 ◦ Li
| {z } | {z }
Expressões regulares
i−2 cópias j−2 cópias
Linguagens contáveis
Autômatos
= L ◦ L ◦ · · · ◦ L ◦ L◦L1 ◦ L j = L ◦ L ◦ · · · ◦ L ◦ L◦L1 ◦ Li
| {z } | {z }
finitos
i−1 cópias j−1 cópias
Linguagens e
gramáticas
= L ◦ L ◦ · · · ◦ L ◦ L◦L1+ j = L ◦ L ◦ · · · ◦ L ◦ L◦L1+i
| {z } | {z }
regulares i−1 cópias j−1 cópias
Linguagens
livres de
= L ◦ L ◦ · · · ◦ L◦L2+ j = L ◦ L ◦ · · · ◦ L◦L2+i
| {z } | {z }
contexto i−2 cópias j−2 cópias
Autômatos
.. ..
com pilha e
GLC’s
. .
Máquinas de = L ◦ L(i−1)+ j = L ◦ L( j−1)+i
Turing
= Li+ j . = L j+i .
(316 – 337 de 1593)
Operações com Linguagens
LFA 2018/2
H. Longo
Introdução
Fundamentos
matemáticos Exemplo 3.16
Alfabetos e
linguagens
Se L = {0, 11} e Σ = {0, 1}, então:
Operações com
cadeias
Conjuntos regulares L0 = {ε}.
Expressões regulares
Linguagens contáveis
L1 = L ◦ L0 = {0, 11} ◦ {ε} = {0, 11}.
Autômatos
finitos
L2 = L ◦ L1 = {0, 11} ◦ {0, 11} = {00, 011, 110, 1111}.
Linguagens e
gramáticas
regulares
L3 = L ◦ L2 = {0, 11} ◦ {00, 011, 110, 1111}.
Linguagens L3 = {000, 0011, 0110, 01111, 1100, 11011, 11110, 111111}.
livres de
contexto
Autômatos
com pilha e
GLC’s
Máquinas de
Turing
H. Longo
Definição 3.17 (Fecho de Kleene)
Introdução
Fundamentos
Fecho da linguagem L:
matemáticos ∞
L∗ = Li = L0 ∪ L 1 ∪ L 2 ∪ . . .
S
Alfabetos e
linguagens
i=0
Operações com
cadeias
Conjuntos regulares
Expressões regulares
Linguagens contáveis
Autômatos
finitos
Linguagens e
gramáticas
regulares
Linguagens
livres de
contexto
Autômatos
com pilha e
GLC’s
Máquinas de
Turing
H. Longo
Definição 3.17 (Fecho de Kleene)
Introdução
Fundamentos
Fecho da linguagem L:
matemáticos ∞
L∗ = Li = L0 ∪ L 1 ∪ L 2 ∪ . . .
S
Alfabetos e
linguagens
i=0
Operações com
cadeias
Conjuntos regulares
Expressões regulares Definição 3.18
Linguagens contáveis
∞
Autômatos
L+ = Li = L ◦ L∗ = L1 ∪ L 2 ∪ L 3 ∪ . . .
S
finitos
i=1
Linguagens e
gramáticas
regulares
Linguagens
livres de
contexto
Autômatos
com pilha e
GLC’s
Máquinas de
Turing
H. Longo
Definição 3.17 (Fecho de Kleene)
Introdução
Fundamentos
Fecho da linguagem L:
matemáticos ∞
L∗ = Li = L0 ∪ L 1 ∪ L 2 ∪ . . .
S
Alfabetos e
linguagens
i=0
Operações com
cadeias
Conjuntos regulares
Expressões regulares Definição 3.18
Linguagens contáveis
∞
Autômatos
L+ = Li = L ◦ L∗ = L1 ∪ L 2 ∪ L 3 ∪ . . .
S
finitos
i=1
Linguagens e
gramáticas
regulares
H. Longo
Introdução
Fundamentos
matemáticos Especificação não ambígua das cadeias que pertencem à linguagem.
Alfabetos e
linguagens Descrição informal não é rigorosa o suficiente para uma definição precisa.
Operações com
cadeias
Conjuntos regulares
Expressões regulares
Linguagens contáveis
Autômatos
finitos
Linguagens e
gramáticas
regulares
Linguagens
livres de
contexto
Autômatos
com pilha e
GLC’s
Máquinas de
Turing
H. Longo
Introdução
Fundamentos
matemáticos Especificação não ambígua das cadeias que pertencem à linguagem.
Alfabetos e
linguagens Descrição informal não é rigorosa o suficiente para uma definição precisa.
Ex: Linguagem L sobre o alfabeto Σ = {a, b}, tal que L contém cadeias com a
Operações com
cadeias
Conjuntos regulares
Expressões regulares subcadeia bb.
Linguagens contáveis
Uma cadeia w ∈ L pode conter mais de uma ocorrência da subcadeia bb?
Autômatos
finitos
Linguagens e
gramáticas
regulares
Linguagens
livres de
contexto
Autômatos
com pilha e
GLC’s
Máquinas de
Turing
H. Longo
Introdução
Fundamentos
matemáticos Especificação não ambígua das cadeias que pertencem à linguagem.
Alfabetos e
linguagens Descrição informal não é rigorosa o suficiente para uma definição precisa.
Ex: Linguagem L sobre o alfabeto Σ = {a, b}, tal que L contém cadeias com a
Operações com
cadeias
Conjuntos regulares
Expressões regulares subcadeia bb.
Linguagens contáveis
Uma cadeia w ∈ L pode conter mais de uma ocorrência da subcadeia bb?
Autômatos
finitos A precisão das operações em conjuntos pode ser usada para a descrição não
Linguagens e
gramáticas
ambígua de linguagens.
regulares O resultado de uma operação unária em uma linguagem ou uma operação
Linguagens binária em duas linguagens define outra linguagem.
livres de
contexto
Autômatos
com pilha e
GLC’s
Máquinas de
Turing
H. Longo
Introdução
Fundamentos
matemáticos
Exemplo 3.20
Alfabetos e
linguagens
Operações com
Σ = {a, b} e L é composta de todas as cadeias que contém a subcadeia bb:
cadeias
Conjuntos regulares
Expressões regulares
Linguagens contáveis
Autômatos
finitos
Linguagens e
gramáticas
regulares
Linguagens
livres de
contexto
Autômatos
com pilha e
GLC’s
Máquinas de
Turing
H. Longo
Introdução
Fundamentos
matemáticos
Exemplo 3.20
Alfabetos e
linguagens
Operações com
Σ = {a, b} e L é composta de todas as cadeias que contém a subcadeia bb:
cadeias
Conjuntos regulares
L = {a, b}∗ ◦ {bb} ◦ {a, b}∗ .
Expressões regulares
Linguagens contáveis
Autômatos
finitos
Linguagens e
gramáticas
regulares
Linguagens
livres de
contexto
Autômatos
com pilha e
GLC’s
Máquinas de
Turing
H. Longo
Introdução
Fundamentos
matemáticos
Exemplo 3.20
Alfabetos e
linguagens
Operações com
Σ = {a, b} e L é composta de todas as cadeias que contém a subcadeia bb:
cadeias
Conjuntos regulares
L = {a, b}∗ ◦ {bb} ◦ {a, b}∗ .
Expressões regulares
Linguagens contáveis
A concatenação do conjunto {bb} garante a presença de bb em toda cadeia
Autômatos
finitos de L.
Linguagens e
gramáticas Os conjuntos {a, b}∗ permitem qualquer número de a’s e b’s, em qualquer
regulares
ordem, antes ou depois da cadeia bb.
Linguagens
livres de
contexto
Autômatos
com pilha e
GLC’s
Máquinas de
Turing
H. Longo
Introdução
Alfabetos e
Σ = {a, b} e L é composta de todas as cadeias que começam com aa ou
linguagens terminam com bb:
Operações com
cadeias
Conjuntos regulares
Expressões regulares
Linguagens contáveis
Autômatos
finitos
Linguagens e
gramáticas
regulares
Linguagens
livres de
contexto
Autômatos
com pilha e
GLC’s
Máquinas de
Turing
H. Longo
Introdução
Alfabetos e
Σ = {a, b} e L é composta de todas as cadeias que começam com aa ou
linguagens terminam com bb:
Operações com
cadeias {aa} ◦ {a, b}∗ → conjunto de cadeias com prefixo aa.
Conjuntos regulares
Expressões regulares {a, b}∗ ◦ {bb} → conjunto de cadeias com sufixo bb.
Linguagens contáveis
Autômatos
finitos
Linguagens e
gramáticas
regulares
Linguagens
livres de
contexto
Autômatos
com pilha e
GLC’s
Máquinas de
Turing
H. Longo
Introdução
Alfabetos e
Σ = {a, b} e L é composta de todas as cadeias que começam com aa ou
linguagens terminam com bb:
Operações com
cadeias {aa} ◦ {a, b}∗ → conjunto de cadeias com prefixo aa.
Conjuntos regulares
Expressões regulares {a, b}∗ ◦ {bb} → conjunto de cadeias com sufixo bb.
Linguagens contáveis
Linguagens e
gramáticas
regulares
Linguagens
livres de
contexto
Autômatos
com pilha e
GLC’s
Máquinas de
Turing
H. Longo
Introdução
Alfabetos e
Σ = {a, b} e L é composta de todas as cadeias que começam com aa ou
linguagens terminam com bb:
Operações com
cadeias {aa} ◦ {a, b}∗ → conjunto de cadeias com prefixo aa.
Conjuntos regulares
Expressões regulares {a, b}∗ ◦ {bb} → conjunto de cadeias com sufixo bb.
Linguagens contáveis
Linguagens e
gramáticas Exemplo 3.22
regulares
Linguagens Dadas linguagens L1 = {bb} e L2 = {ε, bb, bbbb} sobre o alfabeto Σ = {b},
livres de
contexto então L∗1 = L∗2 contém cadeias com número par de b’s.
Autômatos
com pilha e
GLC’s
Máquinas de
Turing
H. Longo
Introdução
Fundamentos
matemáticos
Exemplo 3.23
Alfabetos e P é o conjunto de cadeias de comprimento par definidas sobre o alfabeto
linguagens
Operações com
Σ = {a, b}:
P = {aa, bb, ab, ba}∗ .
cadeias
Conjuntos regulares
Expressões regulares
Linguagens contáveis
A repetição de concatenações constrói cadeias com o acréscimo de dois
Autômatos símbolos de cada vez.
finitos
Linguagens e
gramáticas
regulares
Linguagens
livres de
contexto
Autômatos
com pilha e
GLC’s
Máquinas de
Turing
H. Longo
Introdução
Fundamentos
matemáticos
Exemplo 3.23
Alfabetos e P é o conjunto de cadeias de comprimento par definidas sobre o alfabeto
linguagens
Operações com
Σ = {a, b}:
P = {aa, bb, ab, ba}∗ .
cadeias
Conjuntos regulares
Expressões regulares
Linguagens contáveis
A repetição de concatenações constrói cadeias com o acréscimo de dois
Autômatos símbolos de cada vez.
finitos
Linguagens e
I é o conjunto de cadeias de comprimento ímpar definidas sobre o alfabeto
gramáticas Σ = {a, b}:
regulares
Linguagens
livres de
contexto
Autômatos
com pilha e
GLC’s
Máquinas de
Turing
H. Longo
Introdução
Fundamentos
matemáticos
Exemplo 3.23
Alfabetos e P é o conjunto de cadeias de comprimento par definidas sobre o alfabeto
linguagens
Operações com
Σ = {a, b}:
P = {aa, bb, ab, ba}∗ .
cadeias
Conjuntos regulares
Expressões regulares
Linguagens contáveis
A repetição de concatenações constrói cadeias com o acréscimo de dois
Autômatos símbolos de cada vez.
finitos
Linguagens e
I é o conjunto de cadeias de comprimento ímpar definidas sobre o alfabeto
gramáticas Σ = {a, b}:
regulares
Linguagens
I = {a, b}∗ − {aa, bb, ab, ba}∗ .
livres de
contexto
Autômatos
com pilha e
GLC’s
Máquinas de
Turing
H. Longo
Introdução
Fundamentos
matemáticos
Exemplo 3.23
Alfabetos e P é o conjunto de cadeias de comprimento par definidas sobre o alfabeto
linguagens
Operações com
Σ = {a, b}:
P = {aa, bb, ab, ba}∗ .
cadeias
Conjuntos regulares
Expressões regulares
Linguagens contáveis
A repetição de concatenações constrói cadeias com o acréscimo de dois
Autômatos símbolos de cada vez.
finitos
Linguagens e
I é o conjunto de cadeias de comprimento ímpar definidas sobre o alfabeto
gramáticas Σ = {a, b}:
regulares
Linguagens
I = {a, b}∗ − {aa, bb, ab, ba}∗ .
livres de I = {a, b} ◦ {aa, bb, ab, ba}∗ .
contexto
Autômatos
com pilha e
GLC’s
Máquinas de
Turing
H. Longo
Introdução
Fundamentos
matemáticos Definição 3.24
Um conjunto regular sobre um alfabeto Σ é definido como:
Alfabetos e
linguagens
Operações com
Autômatos
com pilha e
GLC’s
Máquinas de
Turing
H. Longo
Introdução
Fundamentos
matemáticos
Exemplo 3.25
Alfabetos e A linguagem L = {a, b}∗ ◦ {bb} ◦ {a, b}∗ é um conjunto regular sobre Σ = {a, b}.
linguagens
Operações com {a} e {b} são conjuntos regulares (base da definição).
{a, b}∗ é regular (união e fecho de Kleene).
cadeias
Conjuntos regulares
Expressões regulares
Linguagens contáveis
{b} ◦ {b} = {bb} é regular (concatenação).
Autômatos
finitos
Linguagens e
gramáticas
regulares
Linguagens
livres de
contexto
Autômatos
com pilha e
GLC’s
Máquinas de
Turing
H. Longo
Introdução
Fundamentos
matemáticos
Exemplo 3.25
Alfabetos e A linguagem L = {a, b}∗ ◦ {bb} ◦ {a, b}∗ é um conjunto regular sobre Σ = {a, b}.
linguagens
Operações com {a} e {b} são conjuntos regulares (base da definição).
{a, b}∗ é regular (união e fecho de Kleene).
cadeias
Conjuntos regulares
Expressões regulares
Linguagens contáveis
{b} ◦ {b} = {bb} é regular (concatenação).
Autômatos
finitos
Exemplo 3.26
Linguagens e
gramáticas
regulares
O conjunto de cadeias, sobre o alfabeto {a, b}, que terminam com a e têm pelo
menos um b é regular.
Linguagens
livres de {a, b}∗ ◦ {b} ◦ {a, b}∗ ◦ {a}
contexto
Autômatos
com pilha e
GLC’s
Máquinas de
Turing
H. Longo
Introdução
Fundamentos
matemáticos
Alfabetos e
linguagens
Operações com
cadeias Alfabetos e linguagens
Conjuntos regulares
Expressões regulares
Linguagens contáveis
Autômatos
finitos Expressões regulares
Linguagens e
gramáticas
regulares
Linguagens
livres de
contexto
Autômatos
com pilha e
GLC’s
Máquinas de
Turing
H. Longo
Introdução
Fundamentos
matemáticos
Alfabetos e
linguagens Expressões regulares são usadas para abreviar a descrição de conjuntos
Operações com
cadeias regulares:
Conjuntos regulares
Expressões regulares O conjunto regular {a} é representado por a.
Linguagens contáveis
As operações de união, fecho de Kleene e concatenação são designadas por ∪,
Autômatos
∗
finitos e justaposição, respectivamente.
Linguagens e Parênteses são usados para indicar a precedência dos operadores.
gramáticas
regulares
Linguagens
livres de
contexto
Autômatos
com pilha e
GLC’s
Máquinas de
Turing
H. Longo
Autômatos
Fecho: u é uma expressão regular sobre Σ se pode ser obtida, a partir das
finitos
expressões regulares básicas, com a aplicação da recursão um
Linguagens e
gramáticas
número finito de vezes.
regulares
Linguagens
livres de
contexto
Autômatos
com pilha e
GLC’s
Máquinas de
Turing
H. Longo
Autômatos
Fecho: u é uma expressão regular sobre Σ se pode ser obtida, a partir das
finitos
expressões regulares básicas, com a aplicação da recursão um
Linguagens e
gramáticas
número finito de vezes.
regulares
Linguagens
livres de
Linguagem de uma expressão regular
contexto
Se u é uma expressão regular, então a linguagem gerada por u é denotada
Autômatos
com pilha e por L(u).
GLC’s
Máquinas de
Turing
H. Longo
Introdução
Fundamentos
matemáticos
Alfabetos e
linguagens
Operações com Uma expressão regular define um padrão e uma cadeia pertence à linguagem
cadeias
Conjuntos regulares gerada pela expressão se está de acordo com o padrão definido.
Expressões regulares
Linguagens contáveis A concatenação especifica uma ordem relativa entre dois elementos.
Autômatos O fecho de Kleene permite repetições.
finitos
A operação ∪ permite seleção.
Linguagens e
gramáticas
regulares
Linguagens
livres de
contexto
Autômatos
com pilha e
GLC’s
Máquinas de
Turing
H. Longo
Introdução
Fundamentos
matemáticos
Precedência dos operadores regulares:
Alfabetos e
1 Fecho de Kleene.
linguagens 2 Concatenação e união.
Operações com
cadeias
Conjuntos regulares
Expressões regulares
Linguagens contáveis
Autômatos
finitos
Linguagens e
gramáticas
regulares
Linguagens
livres de
contexto
Autômatos
com pilha e
GLC’s
Máquinas de
Turing
H. Longo
Introdução
Fundamentos
matemáticos
Precedência dos operadores regulares:
Alfabetos e
1 Fecho de Kleene.
linguagens 2 Concatenação e união.
Operações com
cadeias
Conjuntos regulares
Parênteses podem ser eliminados de expressões que são sequências de
Expressões regulares
Linguagens contáveis
uniões ou concatenações.
Autômatos União e concatenação são operações associativas.
finitos
Linguagens e
gramáticas
regulares
Linguagens
livres de
contexto
Autômatos
com pilha e
GLC’s
Máquinas de
Turing
H. Longo
Introdução
Fundamentos
matemáticos
Precedência dos operadores regulares:
Alfabetos e
1 Fecho de Kleene.
linguagens 2 Concatenação e união.
Operações com
cadeias
Conjuntos regulares
Parênteses podem ser eliminados de expressões que são sequências de
Expressões regulares
Linguagens contáveis
uniões ou concatenações.
Autômatos União e concatenação são operações associativas.
finitos
Linguagens e
gramáticas Exemplo 3.28
regulares
Linguagens
(a ∪ b)∗ bb(a ∪ b)∗ : expressão regular para o conjunto {a, b}∗ ◦ {bb} ◦ {a, b}∗ .
livres de
contexto
Autômatos
com pilha e
GLC’s
Máquinas de
Turing
H. Longo
Introdução
Fundamentos
matemáticos
Precedência dos operadores regulares:
Alfabetos e
1 Fecho de Kleene.
linguagens 2 Concatenação e união.
Operações com
cadeias
Conjuntos regulares
Parênteses podem ser eliminados de expressões que são sequências de
Expressões regulares
Linguagens contáveis
uniões ou concatenações.
Autômatos União e concatenação são operações associativas.
finitos
Linguagens e
gramáticas Exemplo 3.28
regulares
Linguagens
(a ∪ b)∗ bb(a ∪ b)∗ : expressão regular para o conjunto {a, b}∗ ◦ {bb} ◦ {a, b}∗ .
livres de
contexto a(a ∪ b)∗ b(a ∪ b)∗ a : expressão regular para o conjunto {a}◦{a, b}∗◦{b}◦{a, b}∗◦{a}.
Autômatos
com pilha e
GLC’s
Máquinas de
Turing
Fundamentos
matemáticos
u+ = uu∗ .
Alfabetos e u2 = uu.
linguagens
Operações com
cadeias u3 = u2 u.
..
Conjuntos regulares
Expressões regulares
Linguagens contáveis .
Autômatos
finitos un = un−1 u.
Linguagens e
gramáticas
regulares
Linguagens
livres de
contexto
Autômatos
com pilha e
GLC’s
Máquinas de
Turing
Fundamentos
∅ L(∅) = {} = ∅
matemáticos ε L(ε) = {ε}
Alfabetos e
linguagens
a, a ∈ Σ L(a) = {a}
Operações com
cadeias
u L(u)
Conjuntos regulares
Expressões regulares
u∪v L(u ∪ v) = L(u) ∪ L(v)
Linguagens contáveis
u◦v L(u ◦ v) = L(u) ◦ L(v)
Autômatos
finitos u∗ L(u∗ ) = (L(u))∗
Linguagens e
gramáticas
regulares
Linguagens
livres de
contexto
Autômatos
com pilha e
GLC’s
Máquinas de
Turing
Fundamentos
∅ L(∅) = {} = ∅
matemáticos ε L(ε) = {ε}
Alfabetos e
linguagens
a, a ∈ Σ L(a) = {a}
Operações com
cadeias
u L(u)
Conjuntos regulares
Expressões regulares
u∪v L(u ∪ v) = L(u) ∪ L(v)
Linguagens contáveis
u◦v L(u ◦ v) = L(u) ◦ L(v)
Autômatos
finitos u∗ L(u∗ ) = (L(u))∗
Linguagens e
gramáticas
regulares Observações
A notação (u + v) também é usada para denotar a união (u ∪ v).
Linguagens
livres de
contexto
Autômatos
Alguns parênteses podem ser eliminados. Em cada caso, a interpretação é
com pilha e
GLC’s
feita de acordo com a ordem de precedência: fecho de Kleene, concatenação
Máquinas de
e, por último, união.
u+ = uu∗ e uk , para k concatenações sucessivas, são notações válidas.
Turing
H. Longo
Introdução
Exemplo 3.30
Fundamentos
matemáticos
Expressão regular Linguagem
Alfabetos e
linguagens
Operações com
a∪b L(a ∪ b) = {a} ∪ {b} =
cadeias
Conjuntos regulares {a, b}
Expressões regulares
Linguagens contáveis a∗ L(a∗ ) = (L(a))∗ = ({a})∗ =
Autômatos
finitos
{ε, a, aa, aaa, aaaa, . . . }
Linguagens e (a ∪ b)(a ∪ b) L((a ∪ b)(a ∪ b)) = L((a ∪ b)) ◦ L((a ∪ b)) = {a, b} ◦ {a, b} =
gramáticas
regulares {aa, ab, ba, bb}
Linguagens
livres de
a ∪ (ab)∗ L(a ∪ (ab)∗ ) = L(a) ∪ L((ab)∗ ) = {a} ∪ {ε, ab, abab, . . . }
contexto
{a, ε, ab, abab, ababab, . . . }
Autômatos
com pilha e
GLC’s
Máquinas de
Turing
H. Longo
{a, b} = Σ.
Operações com
cadeias
Conjuntos regulares
a∪b
Expressões regulares
Linguagens contáveis (a ∪ b)∗ Todas as palavras sobre Σ (Σ∗ ).
Autômatos
finitos
a(a ∪ b)∗ Todas as palavras que começam com a.
Linguagens e b∗ (a ∪ ε)b∗ Todas as palavras que contém zero ou um a.
gramáticas
regulares a(ε ∪ b)∗ {a, ab, abb, abbb, . . . }.
Linguagens
livres de ((a ∪ b)(a ∪ b))∗ Todas as palavras de comprimento par.
contexto
Autômatos
(ab∗ )∗ a∗ Σ∗ .
com pilha e
GLC’s
Máquinas de
Turing
H. Longo
Introdução
Autômatos
com pilha e
GLC’s
Máquinas de
Turing
H. Longo
Autômatos
finitos
Linguagens e
gramáticas
regulares
Linguagens
livres de
contexto
Autômatos
com pilha e
GLC’s
Máquinas de
Turing
H. Longo
Autômatos
finitos
Linguagens e
gramáticas
regulares
Linguagens
livres de
contexto
Autômatos
com pilha e
GLC’s
Máquinas de
Turing
H. Longo
Autômatos
finitos
Linguagens e
gramáticas
regulares
Linguagens
livres de
contexto
Autômatos
com pilha e
GLC’s
Máquinas de
Turing
H. Longo
Autômatos
finitos
Linguagens e
gramáticas
regulares
Linguagens
livres de
contexto
Autômatos
com pilha e
GLC’s
Máquinas de
Turing
H. Longo
Autômatos
finitos
Linguagens e
gramáticas
regulares
Linguagens
livres de
contexto
Autômatos
com pilha e
GLC’s
Máquinas de
Turing
H. Longo
Autômatos
finitos
Linguagens e
gramáticas
regulares
Linguagens
livres de
contexto
Autômatos
com pilha e
GLC’s
Máquinas de
Turing
H. Longo
Autômatos
finitos
Exemplo 3.34
Linguagens e
gramáticas Expressões regulares que definem o conjunto de cadeias, sobre o alfabeto
regulares
Σ = {a, b}, que contêm pelo menos 2 b’s:
Linguagens
livres de
contexto
Autômatos
com pilha e
GLC’s
Máquinas de
Turing
H. Longo
Autômatos
finitos
Exemplo 3.34
Linguagens e
gramáticas Expressões regulares que definem o conjunto de cadeias, sobre o alfabeto
regulares
Σ = {a, b}, que contêm pelo menos 2 b’s:
Linguagens
livres de 1 a∗ ba∗ b(a ∪ b)∗ .
contexto 2 (a ∪ b)∗ ba∗ ba∗ .
Autômatos
com pilha e
3 (a ∪ b)∗ b(a ∪ b)∗ b(a ∪ b)∗ .
GLC’s
Máquinas de
Turing
H. Longo
Introdução
Fundamentos
matemáticos
Exemplo 3.35
Alfabetos e Expressão regular para o conjunto de cadeias, sobre o alfabeto Σ = {a, b}, que
linguagens
Operações com
contêm exatamente 2 b’s:
cadeias
Conjuntos regulares
Expressões regulares
Linguagens contáveis
Autômatos
finitos
Linguagens e
gramáticas
regulares
Linguagens
livres de
contexto
Autômatos
com pilha e
GLC’s
Máquinas de
Turing
H. Longo
Introdução
Fundamentos
matemáticos
Exemplo 3.35
Alfabetos e Expressão regular para o conjunto de cadeias, sobre o alfabeto Σ = {a, b}, que
linguagens
Operações com
contêm exatamente 2 b’s:
cadeias
Conjuntos regulares a∗ ba∗ ba∗ .
Expressões regulares
Linguagens contáveis
Autômatos
finitos
Linguagens e
gramáticas
regulares
Linguagens
livres de
contexto
Autômatos
com pilha e
GLC’s
Máquinas de
Turing
H. Longo
Introdução
Fundamentos
matemáticos
Exemplo 3.35
Alfabetos e Expressão regular para o conjunto de cadeias, sobre o alfabeto Σ = {a, b}, que
linguagens
Operações com
contêm exatamente 2 b’s:
cadeias
Conjuntos regulares a∗ ba∗ ba∗ .
Expressões regulares
Linguagens contáveis
Linguagens e
Expressão regular para o conjunto de cadeias, sobre o alfabeto Σ = {a, b}, que
gramáticas contêm número par de b’s:
regulares
Linguagens
livres de
contexto
Autômatos
com pilha e
GLC’s
Máquinas de
Turing
H. Longo
Introdução
Fundamentos
matemáticos
Exemplo 3.35
Alfabetos e Expressão regular para o conjunto de cadeias, sobre o alfabeto Σ = {a, b}, que
linguagens
Operações com
contêm exatamente 2 b’s:
cadeias
Conjuntos regulares a∗ ba∗ ba∗ .
Expressões regulares
Linguagens contáveis
Linguagens e
Expressão regular para o conjunto de cadeias, sobre o alfabeto Σ = {a, b}, que
gramáticas contêm número par de b’s:
regulares
Linguagens
a∗ (a∗ ba∗ ba∗ )∗ .
livres de
contexto
Autômatos
com pilha e
GLC’s
Máquinas de
Turing
H. Longo
Introdução
Fundamentos
matemáticos
Exemplo 3.35
Alfabetos e Expressão regular para o conjunto de cadeias, sobre o alfabeto Σ = {a, b}, que
linguagens
Operações com
contêm exatamente 2 b’s:
cadeias
Conjuntos regulares a∗ ba∗ ba∗ .
Expressões regulares
Linguagens contáveis
Linguagens e
Expressão regular para o conjunto de cadeias, sobre o alfabeto Σ = {a, b}, que
gramáticas contêm número par de b’s:
regulares
Linguagens
a∗ (a∗ ba∗ ba∗ )∗ .
livres de a∗ (ba∗ ba∗ )∗ .
contexto
Autômatos
com pilha e
GLC’s
Máquinas de
Turing
H. Longo
Introdução
Fundamentos
matemáticos
Definição 3.37
Alfabetos e
linguagens
Operações com
Duas expressões regulares r e s são equivalentes se L(r) = L(s).
cadeias
Conjuntos regulares
Expressões regulares
Linguagens contáveis Pode não existir uma única expressão regular para definir um conjunto.
Autômatos
finitos Duas expressões que representam o mesmo conjunto são ditas equivalentes.
Linguagens e
gramáticas
Expressões regulares podem ser manipuladas algebricamente para a
regulares construção de expressões equivalentes.
Linguagens
livres de
contexto
Autômatos
com pilha e
GLC’s
Máquinas de
Turing
H. Longo
Definição 3.38 (Identidades Básicas)
Introdução
Fundamentos
1. ∅u = u∅ = ∅
matemáticos 2. εu = uε = u
Alfabetos e 3. ∅∗ = ε
linguagens
Operações com 4. ε∗ = ε
cadeias
Conjuntos regulares 5. u∪v=v∪u
Expressões regulares
Linguagens contáveis 6. u∪∅=u
Autômatos 7. u∪u=u
finitos
8. u∗ = (u∗ )∗
Linguagens e
gramáticas 9. u(v ∪ w) = uv ∪ uw
regulares
10. (u ∪ v)w = uw ∪ vw
Linguagens
livres de
11. (uv)∗ u = u(vu)∗
contexto 12. (u ∪ v)∗ = (u∗ ∪ v)∗
Autômatos = u∗ (u ∪ v)∗ = (u ∪ vu∗ )∗
com pilha e
GLC’s = (u∗ v∗ )∗ = u∗ (vu∗ )∗
Máquinas de = (u∗ v)∗ u∗
Turing
H. Longo
Introdução
Fundamentos
matemáticos Exemplo 3.39
Alfabetos e
linguagens Expressão regular para o conjunto de cadeias, sobre o alfabeto Σ = {a, b}, que
Operações com
cadeias
não contêm a subcadeia aa.
Conjuntos regulares
Expressões regulares
Linguagens contáveis
Autômatos
finitos
Linguagens e
gramáticas
regulares
Linguagens
livres de
contexto
Autômatos
com pilha e
GLC’s
Máquinas de
Turing
H. Longo
Introdução
Fundamentos
matemáticos Exemplo 3.39
Alfabetos e
linguagens Expressão regular para o conjunto de cadeias, sobre o alfabeto Σ = {a, b}, que
Operações com
cadeias
não contêm a subcadeia aa.
Conjuntos regulares
Expressões regulares
Uma cadeia pode conter um prefixo com qualquer número de b’s;
Linguagens contáveis
Todo a deve ser seguido por pelo menos um b ou terminar a cadeia.
Autômatos
finitos
Linguagens e
gramáticas
regulares
Linguagens
livres de
contexto
Autômatos
com pilha e
GLC’s
Máquinas de
Turing
H. Longo
Introdução
Fundamentos
matemáticos Exemplo 3.39
Alfabetos e
linguagens Expressão regular para o conjunto de cadeias, sobre o alfabeto Σ = {a, b}, que
Operações com
cadeias
não contêm a subcadeia aa.
Conjuntos regulares
Expressões regulares
Uma cadeia pode conter um prefixo com qualquer número de b’s;
Linguagens contáveis
Todo a deve ser seguido por pelo menos um b ou terminar a cadeia.
Autômatos
finitos b∗ (ab+ )∗ ∪ b∗ (ab+ )∗ a
Linguagens e = b∗ (ab+ )∗ (ε ∪ a)
gramáticas = b∗ (abb∗ )∗ (ε ∪ a)
regulares
= (b ∪ ab)∗ (ε ∪ a)
Linguagens
livres de
contexto
Autômatos
com pilha e
GLC’s
Máquinas de
Turing
H. Longo
Introdução
Autômatos
finitos
Linguagens e
gramáticas
regulares
Linguagens
livres de
contexto
Autômatos
com pilha e
GLC’s
Máquinas de
Turing
H. Longo
Introdução
Autômatos
finitos
Linguagens e
gramáticas
regulares
Linguagens
livres de
contexto
Autômatos
com pilha e
GLC’s
Máquinas de
Turing
H. Longo
Introdução
Autômatos
Exemplo 3.41
finitos
Linguagem L definida por c∗ (b ∪ ac∗ )∗ :
Linguagens e
gramáticas
regulares
Linguagens
livres de
contexto
Autômatos
com pilha e
GLC’s
Máquinas de
Turing
H. Longo
Introdução
Autômatos
Exemplo 3.41
finitos
Linguagem L definida por c∗ (b ∪ ac∗ )∗ :
Linguagens e
gramáticas c∗ e ac∗ garante que a’s e b’s podem ocorrer em qualquer ordem.
regulares
Linguagens
livres de
contexto
Autômatos
com pilha e
GLC’s
Máquinas de
Turing
H. Longo
Introdução
Autômatos
Exemplo 3.41
finitos
Linguagem L definida por c∗ (b ∪ ac∗ )∗ :
Linguagens e
gramáticas c∗ e ac∗ garante que a’s e b’s podem ocorrer em qualquer ordem.
regulares
Quando ocorre um elemento de ac∗ , este pode ser seguido por qualquer
Linguagens
livres de
número de a’s ou b’s (em qualquer ordem).
contexto
Autômatos
com pilha e
GLC’s
Máquinas de
Turing
H. Longo
Introdução
Autômatos
Exemplo 3.41
finitos
Linguagem L definida por c∗ (b ∪ ac∗ )∗ :
Linguagens e
gramáticas c∗ e ac∗ garante que a’s e b’s podem ocorrer em qualquer ordem.
regulares
Quando ocorre um elemento de ac∗ , este pode ser seguido por qualquer
Linguagens
livres de
número de a’s ou b’s (em qualquer ordem).
contexto L não contém cadeias com a subcadeia bc.
Autômatos
com pilha e
GLC’s
Máquinas de
Turing
H. Longo
Introdução
Fundamentos
matemáticos
Exemplo 3.42
Alfabetos e Expressão regular Conjunto regular
linguagens
Operações com
a∗ ba∗ {w ∈ {a, b}∗ | w contém apenas um símbolo b}
cadeias
Conjuntos regulares (a ∪ b)∗ b(a ∪ b)∗ {w ∈ {a, b}∗ | w contém pelo menos um símbolo b}
a(a ∪ b)∗ a ∪ b(a ∪ b)∗ b ∪ a ∪ b {w ∈ {a, b}∗ | w começa e termina com o mesmo símbolo}
Expressões regulares
Linguagens contáveis
Autômatos (a∗ ba∗ b)∗ a∗ {w ∈ {a, b}∗ | número de ocorrências do símbolo b é par}
finitos
(a ∪ b)∗ aa(a ∪ b)∗ {w ∈ {a, b}∗ | w contém pelo menos um par de a’s consecutivos}
Linguagens e
(a ∪ b)∗ b(a ∪ b)(a ∪ b)(a ∪ b) {w ∈ {a, b}∗ | w contém um b no quarto símbolo a partir do final}
gramáticas
regulares (b∗ abb∗ )∗ (a ∪ ε) ∪ b∗ {w ∈ {a, b}∗ | w não contém um par de a’s consecutivos}
Linguagens (a ∪ b)∗ (aa ∪ ba ∪ bb) ∪ a ∪ b ∪ ε {w ∈ {a, b}∗ | w não termina com ab}
livres de
contexto
Autômatos
com pilha e
GLC’s
Máquinas de
Turing
H. Longo
Introdução
Fundamentos
matemáticos
Exemplo 3.42
Alfabetos e Expressão regular Conjunto regular
linguagens
Operações com
a∗ ba∗ {w ∈ {a, b}∗ | w contém apenas um símbolo b}
cadeias
Conjuntos regulares (a ∪ b)∗ b(a ∪ b)∗ {w ∈ {a, b}∗ | w contém pelo menos um símbolo b}
a(a ∪ b)∗ a ∪ b(a ∪ b)∗ b ∪ a ∪ b {w ∈ {a, b}∗ | w começa e termina com o mesmo símbolo}
Expressões regulares
Linguagens contáveis
Autômatos (a∗ ba∗ b)∗ a∗ {w ∈ {a, b}∗ | número de ocorrências do símbolo b é par}
finitos
(a ∪ b)∗ aa(a ∪ b)∗ {w ∈ {a, b}∗ | w contém pelo menos um par de a’s consecutivos}
Linguagens e
(a ∪ b)∗ b(a ∪ b)(a ∪ b)(a ∪ b) {w ∈ {a, b}∗ | w contém um b no quarto símbolo a partir do final}
gramáticas
regulares (b∗ abb∗ )∗ (a ∪ ε) ∪ b∗ {w ∈ {a, b}∗ | w não contém um par de a’s consecutivos}
Linguagens (a ∪ b)∗ (aa ∪ ba ∪ bb) ∪ a ∪ b ∪ ε {w ∈ {a, b}∗ | w não termina com ab}
livres de
contexto
Autômatos
com pilha e
GLC’s
Máquinas de
Turing
H. Longo
Introdução
Fundamentos
matemáticos
Exemplo 3.42
Alfabetos e Expressão regular Conjunto regular
linguagens
Operações com
a∗ ba∗ {w ∈ {a, b}∗ | w contém apenas um símbolo b}
cadeias
Conjuntos regulares (a ∪ b)∗ b(a ∪ b)∗ {w ∈ {a, b}∗ | w contém pelo menos um símbolo b}
a(a ∪ b)∗ a ∪ b(a ∪ b)∗ b ∪ a ∪ b {w ∈ {a, b}∗ | w começa e termina com o mesmo símbolo}
Expressões regulares
Linguagens contáveis
Autômatos (a∗ ba∗ b)∗ a∗ {w ∈ {a, b}∗ | número de ocorrências do símbolo b é par}
finitos
(a ∪ b)∗ aa(a ∪ b)∗ {w ∈ {a, b}∗ | w contém pelo menos um par de a’s consecutivos}
Linguagens e
(a ∪ b)∗ b(a ∪ b)(a ∪ b)(a ∪ b) {w ∈ {a, b}∗ | w contém um b no quarto símbolo a partir do final}
gramáticas
regulares (b∗ abb∗ )∗ (a ∪ ε) ∪ b∗ {w ∈ {a, b}∗ | w não contém um par de a’s consecutivos}
Linguagens (a ∪ b)∗ (aa ∪ ba ∪ bb) ∪ a ∪ b ∪ ε {w ∈ {a, b}∗ | w não termina com ab}
livres de
contexto
Autômatos
com pilha e
GLC’s
Máquinas de
Turing
H. Longo
Introdução
Fundamentos
matemáticos
Exemplo 3.42
Alfabetos e Expressão regular Conjunto regular
linguagens
Operações com
a∗ ba∗ {w ∈ {a, b}∗ | w contém apenas um símbolo b}
cadeias
Conjuntos regulares (a ∪ b)∗ b(a ∪ b)∗ {w ∈ {a, b}∗ | w contém pelo menos um símbolo b}
a(a ∪ b)∗ a ∪ b(a ∪ b)∗ b ∪ a ∪ b {w ∈ {a, b}∗ | w começa e termina com o mesmo símbolo}
Expressões regulares
Linguagens contáveis
Autômatos (a∗ ba∗ b)∗ a∗ {w ∈ {a, b}∗ | número de ocorrências do símbolo b é par}
finitos
(a ∪ b)∗ aa(a ∪ b)∗ {w ∈ {a, b}∗ | w contém pelo menos um par de a’s consecutivos}
Linguagens e
(a ∪ b)∗ b(a ∪ b)(a ∪ b)(a ∪ b) {w ∈ {a, b}∗ | w contém um b no quarto símbolo a partir do final}
gramáticas
regulares (b∗ abb∗ )∗ (a ∪ ε) ∪ b∗ {w ∈ {a, b}∗ | w não contém um par de a’s consecutivos}
Linguagens (a ∪ b)∗ (aa ∪ ba ∪ bb) ∪ a ∪ b ∪ ε {w ∈ {a, b}∗ | w não termina com ab}
livres de
contexto
Autômatos
com pilha e
GLC’s
Máquinas de
Turing
H. Longo
Introdução
Fundamentos
matemáticos
Exemplo 3.42
Alfabetos e Expressão regular Conjunto regular
linguagens
Operações com
a∗ ba∗ {w ∈ {a, b}∗ | w contém apenas um símbolo b}
cadeias
Conjuntos regulares (a ∪ b)∗ b(a ∪ b)∗ {w ∈ {a, b}∗ | w contém pelo menos um símbolo b}
a(a ∪ b)∗ a ∪ b(a ∪ b)∗ b ∪ a ∪ b {w ∈ {a, b}∗ | w começa e termina com o mesmo símbolo}
Expressões regulares
Linguagens contáveis
Autômatos (a∗ ba∗ b)∗ a∗ {w ∈ {a, b}∗ | número de ocorrências do símbolo b é par}
finitos
(a ∪ b)∗ aa(a ∪ b)∗ {w ∈ {a, b}∗ | w contém pelo menos um par de a’s consecutivos}
Linguagens e
(a ∪ b)∗ b(a ∪ b)(a ∪ b)(a ∪ b) {w ∈ {a, b}∗ | w contém um b no quarto símbolo a partir do final}
gramáticas
regulares (b∗ abb∗ )∗ (a ∪ ε) ∪ b∗ {w ∈ {a, b}∗ | w não contém um par de a’s consecutivos}
Linguagens (a ∪ b)∗ (aa ∪ ba ∪ bb) ∪ a ∪ b ∪ ε {w ∈ {a, b}∗ | w não termina com ab}
livres de
contexto
Autômatos
com pilha e
GLC’s
Máquinas de
Turing
H. Longo
Introdução
Fundamentos
matemáticos
Exemplo 3.42
Alfabetos e Expressão regular Conjunto regular
linguagens
Operações com
a∗ ba∗ {w ∈ {a, b}∗ | w contém apenas um símbolo b}
cadeias
Conjuntos regulares (a ∪ b)∗ b(a ∪ b)∗ {w ∈ {a, b}∗ | w contém pelo menos um símbolo b}
a(a ∪ b)∗ a ∪ b(a ∪ b)∗ b ∪ a ∪ b {w ∈ {a, b}∗ | w começa e termina com o mesmo símbolo}
Expressões regulares
Linguagens contáveis
Autômatos (a∗ ba∗ b)∗ a∗ {w ∈ {a, b}∗ | número de ocorrências do símbolo b é par}
finitos
(a ∪ b)∗ aa(a ∪ b)∗ {w ∈ {a, b}∗ | w contém pelo menos um par de a’s consecutivos}
Linguagens e
(a ∪ b)∗ b(a ∪ b)(a ∪ b)(a ∪ b) {w ∈ {a, b}∗ | w contém um b no quarto símbolo a partir do final}
gramáticas
regulares (b∗ abb∗ )∗ (a ∪ ε) ∪ b∗ {w ∈ {a, b}∗ | w não contém um par de a’s consecutivos}
Linguagens (a ∪ b)∗ (aa ∪ ba ∪ bb) ∪ a ∪ b ∪ ε {w ∈ {a, b}∗ | w não termina com ab}
livres de
contexto
Autômatos
com pilha e
GLC’s
Máquinas de
Turing
H. Longo
Introdução
Fundamentos
matemáticos
Exemplo 3.42
Alfabetos e Expressão regular Conjunto regular
linguagens
Operações com
a∗ ba∗ {w ∈ {a, b}∗ | w contém apenas um símbolo b}
cadeias
Conjuntos regulares (a ∪ b)∗ b(a ∪ b)∗ {w ∈ {a, b}∗ | w contém pelo menos um símbolo b}
a(a ∪ b)∗ a ∪ b(a ∪ b)∗ b ∪ a ∪ b {w ∈ {a, b}∗ | w começa e termina com o mesmo símbolo}
Expressões regulares
Linguagens contáveis
Autômatos (a∗ ba∗ b)∗ a∗ {w ∈ {a, b}∗ | número de ocorrências do símbolo b é par}
finitos
(a ∪ b)∗ aa(a ∪ b)∗ {w ∈ {a, b}∗ | w contém pelo menos um par de a’s consecutivos}
Linguagens e
(a ∪ b)∗ b(a ∪ b)(a ∪ b)(a ∪ b) {w ∈ {a, b}∗ | w contém um b no quarto símbolo a partir do final}
gramáticas
regulares (b∗ abb∗ )∗ (a ∪ ε) ∪ b∗ {w ∈ {a, b}∗ | w não contém um par de a’s consecutivos}
Linguagens (a ∪ b)∗ (aa ∪ ba ∪ bb) ∪ a ∪ b ∪ ε {w ∈ {a, b}∗ | w não termina com ab}
livres de
contexto
Autômatos
com pilha e
GLC’s
Máquinas de
Turing
H. Longo
Introdução
Fundamentos
matemáticos
Exemplo 3.42
Alfabetos e Expressão regular Conjunto regular
linguagens
Operações com
a∗ ba∗ {w ∈ {a, b}∗ | w contém apenas um símbolo b}
cadeias
Conjuntos regulares (a ∪ b)∗ b(a ∪ b)∗ {w ∈ {a, b}∗ | w contém pelo menos um símbolo b}
a(a ∪ b)∗ a ∪ b(a ∪ b)∗ b ∪ a ∪ b {w ∈ {a, b}∗ | w começa e termina com o mesmo símbolo}
Expressões regulares
Linguagens contáveis
Autômatos (a∗ ba∗ b)∗ a∗ {w ∈ {a, b}∗ | número de ocorrências do símbolo b é par}
finitos
(a ∪ b)∗ aa(a ∪ b)∗ {w ∈ {a, b}∗ | w contém pelo menos um par de a’s consecutivos}
Linguagens e
(a ∪ b)∗ b(a ∪ b)(a ∪ b)(a ∪ b) {w ∈ {a, b}∗ | w contém um b no quarto símbolo a partir do final}
gramáticas
regulares (b∗ abb∗ )∗ (a ∪ ε) ∪ b∗ {w ∈ {a, b}∗ | w não contém um par de a’s consecutivos}
Linguagens (a ∪ b)∗ (aa ∪ ba ∪ bb) ∪ a ∪ b ∪ ε {w ∈ {a, b}∗ | w não termina com ab}
livres de
contexto
Autômatos
com pilha e
GLC’s
Máquinas de
Turing
H. Longo
Introdução
Fundamentos
Exemplo 3.43
matemáticos
Expressão regular para o conjunto de cadeias, sobre o alfabeto Σ = {a, b, c},
Alfabetos e
linguagens que contêm todos os símbolos pelo menos uma vez:
Operações com
cadeias
Conjuntos regulares
Expressões regulares
Linguagens contáveis
Autômatos
finitos
Linguagens e
gramáticas
regulares
Linguagens
livres de
contexto
Autômatos
com pilha e
GLC’s
Máquinas de
Turing
H. Longo
Introdução
Fundamentos
Exemplo 3.43
matemáticos
Expressão regular para o conjunto de cadeias, sobre o alfabeto Σ = {a, b, c},
Alfabetos e
linguagens que contêm todos os símbolos pelo menos uma vez:
Operações com
cadeias
Conjuntos regulares
Expressões regulares
(a ∪ b ∪ c)∗ a(a ∪ b ∪ c)∗ b(a ∪ b ∪ c)∗ c(a ∪ b ∪ c)∗ ∪
Linguagens contáveis
(a ∪ b ∪ c)∗ a(a ∪ b ∪ c)∗ c(a ∪ b ∪ c)∗ b(a ∪ b ∪ c)∗ ∪
Autômatos
finitos (a ∪ b ∪ c)∗ b(a ∪ b ∪ c)∗ a(a ∪ b ∪ c)∗ c(a ∪ b ∪ c)∗ ∪
Linguagens e (a ∪ b ∪ c)∗ b(a ∪ b ∪ c)∗ c(a ∪ b ∪ c)∗ a(a ∪ b ∪ c)∗ ∪
gramáticas
regulares (a ∪ b ∪ c)∗ c(a ∪ b ∪ c)∗ a(a ∪ b ∪ c)∗ b(a ∪ b ∪ c)∗ ∪
Linguagens (a ∪ b ∪ c)∗ c(a ∪ b ∪ c)∗ b(a ∪ b ∪ c)∗ a(a ∪ b ∪ c)∗
livres de
contexto
Autômatos
com pilha e
GLC’s
Máquinas de
Turing
H. Longo
Introdução
Fundamentos
matemáticos
Alfabetos e
linguagens Teorema 3.44
Operações com
cadeias
Conjuntos regulares Existem linguagens que não podem ser definidas por expressões regulares.
Expressões regulares
Linguagens contáveis
Autômatos
finitos
Linguagens e
gramáticas
regulares
Linguagens
livres de
contexto
Autômatos
com pilha e
GLC’s
Máquinas de
Turing
H. Longo
Introdução
Fundamentos
matemáticos
Alfabetos e
linguagens Teorema 3.44
Operações com
cadeias
Conjuntos regulares Existem linguagens que não podem ser definidas por expressões regulares.
Expressões regulares
Linguagens contáveis
Autômatos Demonstração.
finitos
Linguagens e
No decorrer do curso
gramáticas
regulares
Linguagens
livres de
contexto
Autômatos
com pilha e
GLC’s
Máquinas de
Turing
H. Longo
Introdução
Fundamentos
matemáticos
Alfabetos e
linguagens Dada uma palavra w e uma expressão regular e, existe um algoritmo que
Operações com
cadeias decida se w ∈ L(e)?
Conjuntos regulares
Expressões regulares Dadas expressões regulares e1 e e2 , sobre o mesmo alfabeto, existe um
algoritmo que decida se L(e1 ) = L(e2 )?
Linguagens contáveis
Autômatos
finitos
Todas as linguagens são regulares? Caso a resposta seja negativa, como
Linguagens e
gramáticas provar que uma linguagem L não é regular?
regulares
Linguagens
livres de
contexto
Autômatos
com pilha e
GLC’s
Máquinas de
Turing
H. Longo
Introdução
Fundamentos
matemáticos
Alfabetos e
linguagens
Operações com
cadeias Alfabetos e linguagens
Conjuntos regulares
Expressões regulares
Linguagens contáveis
Autômatos
finitos Linguagens contáveis
Linguagens e
gramáticas
regulares
Linguagens
livres de
contexto
Autômatos
com pilha e
GLC’s
Máquinas de
Turing
Alfabetos e
linguagens
Operações com
cadeias
Conjuntos regulares
Expressões regulares
Linguagens contáveis
Autômatos
finitos
Linguagens e
gramáticas
regulares
Linguagens
livres de
contexto
Autômatos
com pilha e
GLC’s
Máquinas de
Turing
Conjuntos finitos e não finitos
Alfabetos e
Demonstração.
linguagens
Operações com
Existe um número finito de cadeias de cada comprimento.
cadeias
Conjuntos regulares Listar cadeias por ordem alfabética e de tamanho: cadeias de tamanho 0, as
Expressões regulares
Linguagens contáveis tamanho 1, as de tamanho 2, etc.
Autômatos
finitos Corresponder as cadeias da lista com os elementos de N.
Linguagens e
gramáticas
regulares
Linguagens
livres de
contexto
Autômatos
com pilha e
GLC’s
Máquinas de
Turing
Conjuntos finitos e não finitos
Alfabetos e
Demonstração.
linguagens
Operações com
Existe um número finito de cadeias de cada comprimento.
cadeias
Conjuntos regulares Listar cadeias por ordem alfabética e de tamanho: cadeias de tamanho 0, as
Expressões regulares
Linguagens contáveis tamanho 1, as de tamanho 2, etc.
Autômatos
finitos Corresponder as cadeias da lista com os elementos de N.
Linguagens e
gramáticas
regulares
Linguagens
livres de Exemplo 3.46
contexto
Autômatos
Se Σ = {a, b, c}, uma enumeração é
com pilha e
GLC’s
ε, a, b, c, ab, ac, ba, bb, bc, ca, cb, cc, aaa, aab, . . .
Máquinas de
Turing
Conjuntos finitos e não finitos
H. Longo
Introdução
Fundamentos
matemáticos
Alfabetos e
linguagens Teorema 3.47
Operações com
cadeias
Conjuntos regulares
Qualquer linguagem é contável.
Expressões regulares
Linguagens contáveis
Autômatos
finitos
Linguagens e
gramáticas
regulares
Linguagens
livres de
contexto
Autômatos
com pilha e
GLC’s
Máquinas de
Turing
H. Longo
Introdução
Fundamentos
matemáticos
Alfabetos e
linguagens Teorema 3.47
Operações com
cadeias
Conjuntos regulares
Qualquer linguagem é contável.
Expressões regulares
Linguagens contáveis
Autômatos Demonstração.
finitos
Linguagens e
Toda linguagem em Σ é um subconjunto de Σ∗ .
gramáticas
regulares
Linguagens
livres de
contexto
Autômatos
com pilha e
GLC’s
Máquinas de
Turing
H. Longo
Introdução
Teorema 3.48
Fundamentos
matemáticos
A classe de todas as linguagens em um alfabeto Σ não é contavelmente
Alfabetos e
linguagens infinita.
Operações com
cadeias
Conjuntos regulares
Expressões regulares
Linguagens contáveis
Autômatos
finitos
Linguagens e
gramáticas
regulares
Linguagens
livres de
contexto
Autômatos
com pilha e
GLC’s
Máquinas de
Turing
H. Longo
Introdução
Teorema 3.48
Fundamentos
matemáticos
A classe de todas as linguagens em um alfabeto Σ não é contavelmente
Alfabetos e
linguagens infinita.
Operações com
cadeias
Conjuntos regulares
Expressões regulares
Demonstração.
Linguagens contáveis
O conjunto B de todas as sequências binárias infinitas não é contavelmente
Autômatos
finitos infinito.
Linguagens e Prova por diagonalização similar à prova do Teorema 2.9.
gramáticas
regulares
P(Σ∗ ) é o conjunto de todas as linguagens sobre o alfabeto Σ.
Linguagens
livres de Mostrar que existe uma correspondência entre P(Σ∗ ) e B.
contexto
Autômatos
com pilha e
GLC’s
Máquinas de
Turing
H. Longo
Introdução
Teorema 3.48
Fundamentos
matemáticos
A classe de todas as linguagens em um alfabeto Σ não é contavelmente
Alfabetos e
linguagens infinita.
Operações com
cadeias
Conjuntos regulares
Expressões regulares
Demonstração.
Cada L ∈ P(Σ∗ ) corresponde a uma única sequência de B.
Linguagens contáveis
Autômatos
finitos
Σ∗ = {s1 , s2 , s3 , . . . }.
Sequência característica χL de L:
Linguagens e
gramáticas
regulares (
Linguagens χLi = 1 se si ∈ L,
livres de
contexto
0 se si < L.
Autômatos
com pilha e
GLC’s
Máquinas de
Turing
H. Longo
Introdução
Teorema 3.48
Fundamentos
matemáticos
A classe de todas as linguagens em um alfabeto Σ não é contavelmente
Alfabetos e
linguagens infinita.
Operações com
cadeias
Conjuntos regulares
Expressões regulares
Demonstração.
Linguagens contáveis
Exemplo:
Autômatos
finitos
Linguagens e Σ = { a , b }
gramáticas
regulares Σ∗ = { ε , a , b , aa , ab , ba , bb , aaa , ··· }
Linguagens
L = { a , aa , ab , aaa , ··· }
livres de χL = 0 1 0 1 1 0 0 1 ···
contexto
Autômatos
com pilha e
GLC’s
Máquinas de
Turing
H. Longo
Introdução
Teorema 3.48
Fundamentos
matemáticos
A classe de todas as linguagens em um alfabeto Σ não é contavelmente
Alfabetos e
linguagens infinita.
Operações com
cadeias
Conjuntos regulares
Expressões regulares
Demonstração.
Linguagens contáveis
Função f : L → B é bijetora.
Autômatos
finitos f (A) é a sequência característica de A.
Linguagens e
gramáticas Como B não é contavelmente infinito, então P(Σ∗ ) também não é
regulares
Linguagens
contavelmente infinito.
livres de
contexto
Autômatos
com pilha e
GLC’s
Máquinas de
Turing
H. Longo
Introdução
Fundamentos
matemáticos
Alfabetos e
linguagens
Linguagens e
gramáticas
regulares
Linguagens
livres de
contexto
Autômatos
com pilha e
GLC’s
Máquinas de
Turing
(401 – 479 de 1593)
Definição básica
LFA 2018/2
H. Longo
Introdução Modelo matemático de uma máquina que aceita uma linguagem particular
Fundamentos
matemáticos
sobre algum alfabeto.
Alfabetos e a1 a2 ... an−1 an ...
linguagens
Autômatos
finitos
Autômatos finitos
determinísticos Controle
Operações com DFA’s
finito de
Autômatos finitos não
determinísticos estados
Equivalência entre
DFA’s e NFA’s
Linguagens e
gramáticas
regulares
Linguagens
livres de
contexto
Autômatos
com pilha e
GLC’s
Máquinas de
Turing
(402 – 479 de 1593)
Definição básica
LFA 2018/2
H. Longo
Introdução Modelo matemático de uma máquina que aceita uma linguagem particular
Fundamentos
matemáticos
sobre algum alfabeto.
Alfabetos e a1 a2 ... an−1 an ...
linguagens
Autômatos
finitos
Autômatos finitos
determinísticos Controle
Operações com DFA’s
finito de
Autômatos finitos não
determinísticos estados
Equivalência entre
DFA’s e NFA’s
Linguagens e
gramáticas
Processamento de um DFA
regulares
Leitura da esquerda para a direita.
Linguagens
livres de
contexto
Em qualquer ponto do processamento, o resultado depende apenas do
Autômatos
estado corrente e do conjunto de símbolos ainda não processados.
com pilha e
GLC’s
Máquinas de
Turing
(403 – 479 de 1593)
Autômato Finito Determinístico
LFA 2018/2
H. Longo
Introdução
Fundamentos
matemáticos Definição 4.1
Alfabetos e
linguagens
Um Autômato Finito Determinístico (DFA – Deterministic Finite Automaton) é
Autômatos
uma quíntupla M = hΣ, S , s0 , δ, Fi, onde:
finitos
Autômatos finitos
Σ : alfabeto de entrada;
determinísticos
Operações com DFA’s S , ∅ : conjunto finito de estados do modelo;
Autômatos finitos não
determinísticos s0 ∈ S : estado inicial;
δ : S × Σ → S : função de transição de estados;
Equivalência entre
DFA’s e NFA’s
Linguagens e
gramáticas
F ⊆ S : conjunto de estados finais (ou de aceitação);
e existe no máximo uma transição para cada par (s ∈ S , a ∈ Σ).
regulares
Linguagens
livres de
contexto
Autômatos
com pilha e
GLC’s
Máquinas de
Turing
(404 – 479 de 1593)
Configuração de um DFA
LFA 2018/2
H. Longo
Introdução
Fundamentos
matemáticos
Alfabetos e
Definição 4.2
linguagens
A tabela de transição de estados de um DFA M = hΣ, S , s0 , δ, Fi é uma matriz
Autômatos
finitos T tal que: T [s, a] = δ(s, a) (∀ s ∈ S , ∀ a ∈ Σ).
Autômatos finitos
determinísticos
Operações com DFA’s
Autômatos finitos não
determinísticos
Equivalência entre
DFA’s e NFA’s
Linguagens e
gramáticas
regulares
Linguagens
livres de
contexto
Autômatos
com pilha e
GLC’s
Máquinas de
Turing
(405 – 479 de 1593)
Configuração de um DFA
LFA 2018/2
H. Longo
Introdução
Fundamentos
matemáticos
Alfabetos e
Definição 4.2
linguagens
A tabela de transição de estados de um DFA M = hΣ, S , s0 , δ, Fi é uma matriz
Autômatos
finitos T tal que: T [s, a] = δ(s, a) (∀ s ∈ S , ∀ a ∈ Σ).
Autômatos finitos
determinísticos
Operações com DFA’s
δ a b
Autômatos finitos não
s s1 s2
determinísticos
Equivalência entre
Ex.: T = 0
DFA’s e NFA’s s1 s1 s2
Linguagens e s2 s1 s0
gramáticas
regulares
Linguagens
livres de
contexto
Autômatos
com pilha e
GLC’s
Máquinas de
Turing
(406 – 479 de 1593)
Processamento de um DFA
LFA 2018/2
Linguagens e
gramáticas
regulares
Linguagens
livres de
contexto
Autômatos
com pilha e
GLC’s
Máquinas de
Turing
(407 – 479 de 1593)
Processamento de um DFA
LFA 2018/2
Linguagens e
gramáticas
regulares
Linguagens
livres de
contexto
Autômatos
com pilha e
GLC’s
Máquinas de
Turing
(408 – 479 de 1593)
Processamento de um DFA
LFA 2018/2
Linguagens e
gramáticas
regulares
Linguagens
livres de
contexto
Autômatos
com pilha e
GLC’s
Máquinas de
Turing
(409 – 479 de 1593)
Processamento de um DFA
LFA 2018/2
Linguagens e
gramáticas
regulares
Linguagens
livres de
contexto
Autômatos
com pilha e
GLC’s
Máquinas de
Turing
(410 – 479 de 1593)
Processamento de um DFA
LFA 2018/2
Linguagens e
gramáticas
regulares
Linguagens
livres de
contexto
Autômatos
com pilha e
GLC’s
Máquinas de
Turing
(411 – 479 de 1593)
Processamento de um DFA
LFA 2018/2
Linguagens e
gramáticas
regulares
Linguagens
livres de
contexto
Autômatos
com pilha e
GLC’s
Máquinas de
Turing
(412 – 479 de 1593)
Configuração de um DFA
LFA 2018/2
H. Longo
Introdução
Definição 4.4
Fundamentos
matemáticos Par ordenado [si , w], onde si é o estado corrente e w ∈ Σ∗ é a sequência de
Alfabetos e
linguagens
símbolos ainda não processados.
Autômatos
finitos
Autômatos finitos
determinísticos
Operações com DFA’s
Autômatos finitos não
determinísticos
Equivalência entre
DFA’s e NFA’s
Linguagens e
gramáticas
regulares
Linguagens
livres de
contexto
Autômatos
com pilha e
GLC’s
Máquinas de
Turing
(413 – 479 de 1593)
Configuração de um DFA
LFA 2018/2
H. Longo
Introdução
Definição 4.4
Fundamentos
matemáticos Par ordenado [si , w], onde si é o estado corrente e w ∈ Σ∗ é a sequência de
Alfabetos e
linguagens
símbolos ainda não processados.
Autômatos
finitos
Autômatos finitos
Notação
determinísticos
Operações com DFA’s
Autômatos finitos não
7−→ : define uma função de S × Σ+ em S × Σ∗ .
M
determinísticos
Máquinas de
Turing
(414 – 479 de 1593)
Configuração de um DFA
LFA 2018/2
H. Longo
Introdução
Fundamentos
matemáticos
Alfabetos e
linguagens
Definição 4.5
Autômatos A função 7−→ em S × Σ+ é definida por
finitos M
Autômatos finitos
determinísticos
Operações com DFA’s
Autômatos finitos não
[si , aw] 7−→[δ(si , a), w],
M
determinísticos
Equivalência entre
DFA’s e NFA’s
Linguagens e
para a ∈ Σ e w ∈ Σ∗ , onde δ é a função de transição do DFA M .
gramáticas
regulares
Linguagens
livres de
contexto
Autômatos
com pilha e
GLC’s
Máquinas de
Turing
(415 – 479 de 1593)
Processamento de um DFA
LFA 2018/2
Linguagens e
gramáticas
regulares
Linguagens
livres de
contexto
Autômatos
com pilha e
GLC’s
Máquinas de
Turing
(416 – 479 de 1593)
Processamento de um DFA
LFA 2018/2
Linguagens e
gramáticas
regulares
Linguagens
livres de
contexto
Autômatos
com pilha e
GLC’s
Máquinas de
Turing
(417 – 479 de 1593)
Processamento de um DFA
LFA 2018/2
Linguagens e
gramáticas
regulares
Linguagens
livres de
contexto
Autômatos
com pilha e
GLC’s
Máquinas de
Turing
(418 – 479 de 1593)
Processamento de um DFA
LFA 2018/2
Linguagens e
gramáticas
regulares
Linguagens
livres de
contexto
Autômatos
com pilha e
GLC’s
Máquinas de
Turing
(419 – 479 de 1593)
Processamento de um DFA
LFA 2018/2
Linguagens e
gramáticas
regulares
Linguagens
livres de
contexto
Autômatos
com pilha e
GLC’s
Máquinas de
Turing
(420 – 479 de 1593)
Processamento de um DFA
LFA 2018/2
Linguagens e
gramáticas
regulares
Linguagens
livres de
contexto
Autômatos
com pilha e
GLC’s
Máquinas de
Turing
(421 – 479 de 1593)
Processamento de um DFA
LFA 2018/2
Linguagens e
gramáticas
regulares
Linguagens
livres de
contexto
Autômatos
com pilha e
GLC’s
Máquinas de
Turing
(422 – 479 de 1593)
Processamento de um DFA
LFA 2018/2
Linguagens e
gramáticas
regulares
Linguagens
livres de
contexto
Autômatos
com pilha e
GLC’s
Máquinas de
Turing
(423 – 479 de 1593)
Processamento de um DFA
LFA 2018/2
Linguagens e
gramáticas
regulares
Linguagens
livres de
contexto
Autômatos
com pilha e
GLC’s
Máquinas de
Turing
(424 – 479 de 1593)
Processamento de um DFA
LFA 2018/2
Linguagens e
gramáticas
regulares
Linguagens
livres de
contexto
Autômatos
com pilha e
GLC’s
Máquinas de
Turing
(425 – 479 de 1593)
Processamento de um DFA
LFA 2018/2
Linguagens e
gramáticas
regulares
Linguagens
livres de
contexto
Autômatos
com pilha e
GLC’s
Máquinas de
Turing
(426 – 479 de 1593)
Processamento de um DFA
LFA 2018/2
Linguagens e
gramáticas
regulares
Linguagens
livres de
contexto
Autômatos
com pilha e
GLC’s
Máquinas de
Turing
(427 – 479 de 1593)
Processamento de um DFA
LFA 2018/2
Linguagens e
gramáticas
regulares
Linguagens
livres de
contexto
Autômatos
com pilha e
GLC’s
Máquinas de
Turing
(428 – 479 de 1593)
Transição estendida
LFA 2018/2
H. Longo
Introdução
Fundamentos
matemáticos
Definição 4.7
Alfabetos e
linguagens A função de transição estendida δ de um DFA, com função de transição δ, é
Autômatos
finitos
uma função de S × Σ∗ em S , definida recursivamente no comprimento da
Autômatos finitos cadeia de entrada:
determinísticos
Operações com DFA’s 1 Base:
|w| = 0 ⇒ w = ε e δ(si , ε) = si ,
Autômatos finitos não
determinísticos
Linguagens e 2 Recursão:
gramáticas
regulares |w| = n > 1 ⇒ w = ua e δ(si , ua) = δ(δ(si , u), a).
Linguagens
livres de
contexto
Autômatos
com pilha e
GLC’s
Máquinas de
Turing
(429 – 479 de 1593)
Transição estendida
LFA 2018/2
H. Longo
Introdução
Fundamentos
matemáticos
Alfabetos e
linguagens Resumo
Autômatos
finitos
A função estendida de transição de estados δ : S × Σ∗ → S , de um DFA
Autômatos finitos
determinísticos
M = hΣ, S , s0 , δ, Fi, é definida como:
Operações com DFA’s
Autômatos finitos não
1 δ(s, ε) = s (∀ s ∈ S )
determinísticos
Equivalência entre
2 δ(s, a) = δ(s, a) (∀ s ∈ S , ∀ a ∈ Σ)
DFA’s e NFA’s 3 δ(s, au) = δ(δ(s, a), u) (∀ s ∈ S , ∀ a ∈ Σ, ∀ u ∈ Σ∗ )
Linguagens e
gramáticas
regulares
Linguagens
livres de
contexto
Autômatos
com pilha e
GLC’s
Máquinas de
Turing
(430 – 479 de 1593)
Transição estendida
LFA 2018/2
H. Longo
Introdução
Fundamentos
matemáticos
Linguagens e
gramáticas
regulares
Linguagens
livres de
contexto
Autômatos
com pilha e
GLC’s
Máquinas de
Turing
(431 – 479 de 1593)
Transição estendida
LFA 2018/2
H. Longo
Introdução
Fundamentos
matemáticos
Linguagens
livres de
contexto
Autômatos
com pilha e
GLC’s
Máquinas de
Turing
(432 – 479 de 1593)
Transição estendida
LFA 2018/2
H. Longo
Introdução
Fundamentos
matemáticos
Linguagens
livres de
contexto
Autômatos
com pilha e
GLC’s
Máquinas de
Turing
(433 – 479 de 1593)
Linguagem de um DFA
LFA 2018/2
H. Longo
Introdução
Fundamentos
matemáticos
Alfabetos e
linguagens Definição 4.8
Autômatos
finitos
A linguagem L(M) de um DFA M = hΣ, S , s0 , δ, Fi é o conjunto de cadeias em
Autômatos finitos
determinísticos Σ∗ aceitas por M .
Operações com DFA’s
Autômatos finitos não
determinísticos
Linguagens e
gramáticas
regulares
Linguagens
livres de
contexto
Autômatos
com pilha e
GLC’s
Máquinas de
Turing
(434 – 479 de 1593)
Diagrama de estados
LFA 2018/2
H. Longo
Introdução
Fundamentos
matemáticos Definição 4.9
Alfabetos e
linguagens
O diagrama de estados de um DFA M = hΣ, S , s0 , δ, Fi é um grafo G,
Autômatos
orientado e rotulado, definido pelas condições:
finitos
Autômatos finitos
1 os vértices de G são os elementos de S ;
determinísticos
Operações com DFA’s
2 os rótulos dos arcos de G são os elementos de Σ,
Autômatos finitos não
determinísticos
3 s0 é o vértice inicial;
Equivalência entre
DFA’s e NFA’s
4 F é o conjunto de vértices finais;
Linguagens e
5 existe um arco, rotulado de a, do vértice si ao s j se δ(si , a) = s j ;
gramáticas 6 para cada vértice si e símbolo a ∈ Σ, existe exatamente um arco rotulado a
regulares
saindo de si .
Linguagens
livres de
contexto
Autômatos
com pilha e
GLC’s
Máquinas de
Turing
(435 – 479 de 1593)
Exemplos de DFA’s
LFA 2018/2
H. Longo
Introdução
Fundamentos
matemáticos
Autômatos
L(M) = {w ∈ {a, b}∗ | w possui pelo menos dois b’s consecutivos}.
finitos
Autômatos finitos
determinísticos
Operações com DFA’s
Autômatos finitos não
determinísticos
Equivalência entre
DFA’s e NFA’s
Linguagens e
gramáticas
regulares
Linguagens
livres de
contexto
Autômatos
com pilha e
GLC’s
Máquinas de
Turing
(436 – 479 de 1593)
Exemplos de DFA’s
LFA 2018/2
H. Longo
Introdução
Fundamentos
matemáticos
Autômatos
L(M) = {w ∈ {a, b}∗ | w possui pelo menos dois b’s consecutivos}.
finitos
Autômatos finitos a a, b
determinísticos
Operações com DFA’s
b
Autômatos finitos não
b b
determinísticos
Equivalência entre
M0 : s0 s1 s2
DFA’s e NFA’s
Linguagens e a
gramáticas
regulares
Linguagens
livres de
contexto
Autômatos
com pilha e
GLC’s
Máquinas de
Turing
(437 – 479 de 1593)
Exemplos de DFA’s
LFA 2018/2
H. Longo
Introdução
Fundamentos
matemáticos
Autômatos
L(M) = {w ∈ {a, b}∗ | w possui pelo menos dois b’s consecutivos}.
finitos
Autômatos finitos a a, b
determinísticos
Operações com DFA’s
b
Autômatos finitos não
b b
determinísticos
Equivalência entre
M0 : s0 s1 s2
DFA’s e NFA’s
Linguagens e a
gramáticas
regulares
Linguagens
livres de
contexto
Autômatos
com pilha e
GLC’s
Máquinas de
Turing
(438 – 479 de 1593)
Exemplos de DFA’s
LFA 2018/2
H. Longo
Introdução
Fundamentos
matemáticos
Autômatos
L(M) = {w ∈ {a, b}∗ | w possui pelo menos dois b’s consecutivos}.
finitos
Autômatos finitos a a, b
determinísticos
Operações com DFA’s
b
Autômatos finitos não
b b
determinísticos
Equivalência entre
M0 : s0 s1 s2
DFA’s e NFA’s
Linguagens e a
gramáticas
regulares
Linguagens
livres de
contexto
Autômatos
com pilha e
GLC’s
Máquinas de
Turing
(439 – 479 de 1593)
Exemplos de DFA’s
LFA 2018/2
H. Longo
Introdução
Fundamentos
matemáticos
Autômatos
L(M) = {w ∈ {a, b}∗ | w possui pelo menos dois b’s consecutivos}.
finitos
Autômatos finitos a a, b
determinísticos
Operações com DFA’s
b
Autômatos finitos não
b b
determinísticos
Equivalência entre
M0 : s0 s1 s2
DFA’s e NFA’s
Linguagens e a
gramáticas
regulares
Linguagens
livres de
contexto
Autômatos
com pilha e
GLC’s
Máquinas de
Turing
(440 – 479 de 1593)
Exemplos de DFA’s
LFA 2018/2
H. Longo
Introdução
Fundamentos
matemáticos
Autômatos
L(M) = {w ∈ {a, b}∗ | w possui pelo menos dois b’s consecutivos}.
finitos
Autômatos finitos a a, b
determinísticos
Operações com DFA’s
b
Autômatos finitos não
b b
determinísticos
Equivalência entre
M0 : s0 s1 s2
DFA’s e NFA’s
Linguagens e a
gramáticas
regulares
Linguagens
livres de
contexto
Autômatos
com pilha e
GLC’s
Máquinas de
Turing
(441 – 479 de 1593)
Exemplos de DFA’s
LFA 2018/2
H. Longo
Introdução
Exemplo 4.11
Fundamentos M1 = h{a, b}, {s0 , s1 , s2 }, s0 , δ, {s2 }i, onde:
matemáticos
Alfabetos e δ a b
linguagens
s0 s0 s1
Autômatos s1 s0 s2
finitos
Autômatos finitos s2 s2 s2
determinísticos
Operações com DFA’s
Autômatos finitos não
determinísticos
Equivalência entre
DFA’s e NFA’s
Linguagens e
gramáticas
regulares
Linguagens
livres de
contexto
Autômatos
com pilha e
GLC’s
Máquinas de
Turing
(442 – 479 de 1593)
Exemplos de DFA’s
LFA 2018/2
H. Longo
Introdução
Exemplo 4.11
Fundamentos M1 = h{a, b}, {s0 , s1 , s2 }, s0 , δ, {s2 }i, onde:
matemáticos
Alfabetos e δ a b
linguagens
s0 s0 s1
Autômatos s1 s0 s2
finitos
Autômatos finitos s2 s2 s2
determinísticos
Operações com DFA’s
Autômatos finitos não
determinísticos
L(M1 ) = (a ∪ ba)∗ bb(a ∪ b)∗
Equivalência entre
DFA’s e NFA’s
Linguagens e
gramáticas
regulares
Linguagens
livres de
contexto
Autômatos
com pilha e
GLC’s
Máquinas de
Turing
(443 – 479 de 1593)
Exemplos de DFA’s
LFA 2018/2
H. Longo
Introdução
Exemplo 4.11
Fundamentos M1 = h{a, b}, {s0 , s1 , s2 }, s0 , δ, {s2 }i, onde:
matemáticos
Alfabetos e δ a b
linguagens
s0 s0 s1
Autômatos s1 s0 s2
finitos
Autômatos finitos s2 s2 s2
determinísticos
Operações com DFA’s
Autômatos finitos não
determinísticos
L(M1 ) = (a ∪ ba)∗ bb(a ∪ b)∗
Equivalência entre
DFA’s e NFA’s
a b a, b
Linguagens e
b
gramáticas
regulares
M1 : s0 s1 s2
Linguagens
livres de
a
contexto
Autômatos
com pilha e
GLC’s
Máquinas de
Turing
(444 – 479 de 1593)
Exemplos de DFA’s
LFA 2018/2
H. Longo
Introdução
Exemplo 4.11
Fundamentos M1 = h{a, b}, {s0 , s1 , s2 }, s0 , δ, {s2 }i, onde:
matemáticos
Alfabetos e δ a b
linguagens
s0 s0 s1
Autômatos s1 s0 s2
finitos
Autômatos finitos s2 s2 s2
determinísticos
Operações com DFA’s
Autômatos finitos não
determinísticos
L(M1 ) = (a ∪ ba)∗ bb(a ∪ b)∗
Equivalência entre
DFA’s e NFA’s
a b a, b
Linguagens e
b
gramáticas
regulares
M1 : s0 s1 s2
Linguagens
livres de
a
contexto
[s0 , ababb]
Autômatos
com pilha e
GLC’s
Máquinas de
Turing
(445 – 479 de 1593)
Exemplos de DFA’s
LFA 2018/2
H. Longo
Introdução
Exemplo 4.11
Fundamentos M1 = h{a, b}, {s0 , s1 , s2 }, s0 , δ, {s2 }i, onde:
matemáticos
Alfabetos e δ a b
linguagens
s0 s0 s1
Autômatos s1 s0 s2
finitos
Autômatos finitos s2 s2 s2
determinísticos
Operações com DFA’s
Autômatos finitos não
determinísticos
L(M1 ) = (a ∪ ba)∗ bb(a ∪ b)∗
Equivalência entre
DFA’s e NFA’s
a b a, b
Linguagens e
b
gramáticas
regulares
M1 : s0 s1 s2
Linguagens
livres de
a
contexto
[s0 , ababb] 7−→[s0 , babb]
Autômatos
com pilha e
GLC’s
Máquinas de
Turing
(446 – 479 de 1593)
Exemplos de DFA’s
LFA 2018/2
H. Longo
Introdução
Exemplo 4.11
Fundamentos M1 = h{a, b}, {s0 , s1 , s2 }, s0 , δ, {s2 }i, onde:
matemáticos
Alfabetos e δ a b
linguagens
s0 s0 s1
Autômatos s1 s0 s2
finitos
Autômatos finitos s2 s2 s2
determinísticos
Operações com DFA’s
Autômatos finitos não
determinísticos
L(M1 ) = (a ∪ ba)∗ bb(a ∪ b)∗
Equivalência entre
DFA’s e NFA’s
a b a, b
Linguagens e
b
gramáticas
regulares
M1 : s0 s1 s2
Linguagens
livres de
a
contexto
[s0 , ababb] 7−→[s0 , babb] 7−→[s1 , abb]
Autômatos
com pilha e
GLC’s
Máquinas de
Turing
(447 – 479 de 1593)
Exemplos de DFA’s
LFA 2018/2
H. Longo
Introdução
Exemplo 4.11
Fundamentos M1 = h{a, b}, {s0 , s1 , s2 }, s0 , δ, {s2 }i, onde:
matemáticos
Alfabetos e δ a b
linguagens
s0 s0 s1
Autômatos s1 s0 s2
finitos
Autômatos finitos s2 s2 s2
determinísticos
Operações com DFA’s
Autômatos finitos não
determinísticos
L(M1 ) = (a ∪ ba)∗ bb(a ∪ b)∗
Equivalência entre
DFA’s e NFA’s
a b a, b
Linguagens e
b
gramáticas
regulares
M1 : s0 s1 s2
Linguagens
livres de
a
contexto
[s0 , ababb] 7−→[s0 , babb] 7−→[s1 , abb] 7−→[s0 , bb]
Autômatos
com pilha e
GLC’s
Máquinas de
Turing
(448 – 479 de 1593)
Exemplos de DFA’s
LFA 2018/2
H. Longo
Introdução
Exemplo 4.11
Fundamentos M1 = h{a, b}, {s0 , s1 , s2 }, s0 , δ, {s2 }i, onde:
matemáticos
Alfabetos e δ a b
linguagens
s0 s0 s1
Autômatos s1 s0 s2
finitos
Autômatos finitos s2 s2 s2
determinísticos
Operações com DFA’s
Autômatos finitos não
determinísticos
L(M1 ) = (a ∪ ba)∗ bb(a ∪ b)∗
Equivalência entre
DFA’s e NFA’s
a b a, b
Linguagens e
b
gramáticas
regulares
M1 : s0 s1 s2
Linguagens
livres de
a
contexto
[s0 , ababb] 7−→[s0 , babb] 7−→[s1 , abb] 7−→[s0 , bb] 7−→[s1 , b]
Autômatos
com pilha e
GLC’s
Máquinas de
Turing
(449 – 479 de 1593)
Exemplos de DFA’s
LFA 2018/2
H. Longo
Introdução
Exemplo 4.11
Fundamentos M1 = h{a, b}, {s0 , s1 , s2 }, s0 , δ, {s2 }i, onde:
matemáticos
Alfabetos e δ a b
linguagens
s0 s0 s1
Autômatos s1 s0 s2
finitos
Autômatos finitos s2 s2 s2
determinísticos
Operações com DFA’s
Autômatos finitos não
determinísticos
L(M1 ) = (a ∪ ba)∗ bb(a ∪ b)∗
Equivalência entre
DFA’s e NFA’s
a b a, b
Linguagens e
b
gramáticas
regulares
M1 : s0 s1 s2
Linguagens
livres de
a
contexto
[s0 , ababb] 7−→[s0 , babb] 7−→[s1 , abb] 7−→[s0 , bb] 7−→[s1 , b] 7−→[s2 , ε]
Autômatos
com pilha e
GLC’s
Máquinas de
Turing
(450 – 479 de 1593)
Exemplos de DFA’s
LFA 2018/2
H. Longo
Introdução
Exemplo 4.11
Fundamentos M1 = h{a, b}, {s0 , s1 , s2 }, s0 , δ, {s2 }i, onde:
matemáticos
Alfabetos e δ a b
linguagens
s0 s0 s1
Autômatos s1 s0 s2
finitos
Autômatos finitos s2 s2 s2
determinísticos
Operações com DFA’s
Autômatos finitos não
determinísticos
L(M1 ) = (a ∪ ba)∗ bb(a ∪ b)∗
Equivalência entre
DFA’s e NFA’s
a b a, b
Linguagens e
b
gramáticas
regulares
M1 : s0 s1 s2
Linguagens
livres de
a
contexto
[s0 , ababb] 7−→[s0 , babb] 7−→[s1 , abb] 7−→[s0 , bb] 7−→[s1 , b] 7−→[s2 , ε] 7−→[s2 ]
Autômatos
com pilha e
GLC’s
Máquinas de
Turing
(451 – 479 de 1593)
Diagrama de estados
LFA 2018/2
H. Longo
Introdução
Fundamentos
Teorema 4.12
matemáticos
Se M = hΣ, S , s0 , δ, Fi é um DFA e w ∈ Σ∗ , então w determina um único
caminho pw no diagrama de estados de M e δ(s0 , w) = sw .
Alfabetos e
linguagens
Autômatos
finitos
Autômatos finitos
determinísticos
Operações com DFA’s
Autômatos finitos não
determinísticos
Equivalência entre
DFA’s e NFA’s
Linguagens e
gramáticas
regulares
Linguagens
livres de
contexto
Autômatos
com pilha e
GLC’s
Máquinas de
Turing
(452 – 479 de 1593)
Diagrama de estados
LFA 2018/2
H. Longo
Introdução
Fundamentos
Teorema 4.12
matemáticos
Se M = hΣ, S , s0 , δ, Fi é um DFA e w ∈ Σ∗ , então w determina um único
caminho pw no diagrama de estados de M e δ(s0 , w) = sw .
Alfabetos e
linguagens
Autômatos
finitos
Autômatos finitos
determinísticos
Demonstração.
Operações com DFA’s
Autômatos finitos não
Indução no comprimento da cadeia w.
determinísticos
Equivalência entre
DFA’s e NFA’s
Base: |w| = 0 ⇒ δ(s0 , ε) = s0 .
Linguagens e Hipótese: Resultado válido para todas as cadeias de comprimento máximo n.
gramáticas
regulares
Linguagens
livres de
contexto
Autômatos
com pilha e
GLC’s
Máquinas de
Turing
(453 – 479 de 1593)
Diagrama de estados
LFA 2018/2
H. Longo
Introdução
Fundamentos
Teorema 4.12
matemáticos
Se M = hΣ, S , s0 , δ, Fi é um DFA e w ∈ Σ∗ , então w determina um único
caminho pw no diagrama de estados de M e δ(s0 , w) = sw .
Alfabetos e
linguagens
Autômatos
finitos
Autômatos finitos
determinísticos
Demonstração.
Operações com DFA’s
Autômatos finitos não
Indução no comprimento da cadeia w.
Passo: Seja w = ua tal que |w| = n + 1.
determinísticos
Equivalência entre
DFA’s e NFA’s
Linguagens e
1 Por H.I., existe um único caminho pu que processa u e δ(s0 , u) = su .
gramáticas
regulares
2 O caminho pw segue o arco rotulado a saindo de su .
Linguagens 3 pw é único, pois pu é único e somente uma aresta rotulada a sai de su .
livres de
contexto
Autômatos
com pilha e
GLC’s
Máquinas de
Turing
(454 – 479 de 1593)
Diagrama de estados
LFA 2018/2
H. Longo
Introdução
Fundamentos
Teorema 4.12
matemáticos
Se M = hΣ, S , s0 , δ, Fi é um DFA e w ∈ Σ∗ , então w determina um único
caminho pw no diagrama de estados de M e δ(s0 , w) = sw .
Alfabetos e
linguagens
Autômatos
finitos
Autômatos finitos
determinísticos
Demonstração.
Operações com DFA’s
Autômatos finitos não
Indução no comprimento da cadeia w.
Passo: Seja w = ua tal que |w| = n + 1.
determinísticos
Equivalência entre
DFA’s e NFA’s
Linguagens e
4 O estado final de pw é determinado pela transição δ(su , a).
gramáticas
regulares
5 Por definição, δ(s0 , w) = δ(δ(s0 , u), a).
Linguagens 6 Como δ(s0 , u) = su , então sw = δ(su , a) = δ(δ(s0 , u), a) = δ(s0 , w).
livres de
contexto
Autômatos
com pilha e
GLC’s
Máquinas de
Turing
(455 – 479 de 1593)
Exemplos de DFA’s
LFA 2018/2
H. Longo
Introdução
Fundamentos
matemáticos
Exemplo 4.13
Alfabetos e
linguagens L(M2 ) = {w ∈ {a, b}∗ | w não contém a subcadeia aa}.
Autômatos
finitos
Autômatos finitos
determinísticos
Operações com DFA’s
Autômatos finitos não
determinísticos
Equivalência entre
DFA’s e NFA’s
Linguagens e
gramáticas
regulares
Linguagens
livres de
contexto
Autômatos
com pilha e
GLC’s
Máquinas de
Turing
(456 – 479 de 1593)
Exemplos de DFA’s
LFA 2018/2
H. Longo
Introdução
Fundamentos
matemáticos
Exemplo 4.13
Alfabetos e
linguagens L(M2 ) = {w ∈ {a, b}∗ | w não contém a subcadeia aa}.
Autômatos
finitos L(M2 ) = (b ∪ ab)∗ (a ∪ ε).
Autômatos finitos
determinísticos
Operações com DFA’s
Autômatos finitos não
determinísticos
Equivalência entre
DFA’s e NFA’s
Linguagens e
gramáticas
regulares
Linguagens
livres de
contexto
Autômatos
com pilha e
GLC’s
Máquinas de
Turing
(457 – 479 de 1593)
Exemplos de DFA’s
LFA 2018/2
H. Longo
Introdução
Fundamentos
matemáticos
Exemplo 4.13
Alfabetos e
linguagens L(M2 ) = {w ∈ {a, b}∗ | w não contém a subcadeia aa}.
Autômatos
finitos L(M2 ) = (b ∪ ab)∗ (a ∪ ε).
Autômatos finitos
determinísticos
b a, b
Operações com DFA’s
Autômatos finitos não
a
determinísticos
a
Equivalência entre
DFA’s e NFA’s M2 : s0 s1 s2
Linguagens e
gramáticas
regulares
b
Linguagens
livres de
contexto
Autômatos
com pilha e
GLC’s
Máquinas de
Turing
(458 – 479 de 1593)
Exemplos de DFA’s
LFA 2018/2
H. Longo
Linguagens e
gramáticas
regulares
Linguagens
livres de
contexto
Autômatos
com pilha e
GLC’s
Máquinas de
Turing
(459 – 479 de 1593)
Exemplos de DFA’s
LFA 2018/2
H. Longo
Linguagens e M3 : s0 a b
gramáticas a, b
regulares
b
Linguagens
livres de
b s4 s5
contexto b
Autômatos
com pilha e
GLC’s
Máquinas de
Turing
(460 – 479 de 1593)
Exemplos de DFA’s
LFA 2018/2
H. Longo
Introdução
Fundamentos
matemáticos
Exemplo 4.15
Alfabetos e L(M4 ) = {w ∈ {a, b}+ | w contém nr. par de a0 s e nr. ímpar de b’s}.
linguagens
Autômatos
finitos
Autômatos finitos
determinísticos
Operações com DFA’s
Autômatos finitos não
determinísticos
Equivalência entre
DFA’s e NFA’s
Linguagens e
gramáticas
regulares
Linguagens
livres de
contexto
Autômatos
com pilha e
GLC’s
Máquinas de
Turing
(461 – 479 de 1593)
Exemplos de DFA’s
LFA 2018/2
H. Longo
Introdução
Fundamentos
matemáticos
Exemplo 4.15
Alfabetos e L(M4 ) = {w ∈ {a, b}+ | w contém nr. par de a0 s e nr. ímpar de b’s}.
linguagens
Autômatos b
finitos
Autômatos finitos
M4 : [aP , bP ] [aP , bI ]
determinísticos
Operações com DFA’s b
Autômatos finitos não
determinísticos
Equivalência entre
a a a a
DFA’s e NFA’s
b
Linguagens e
gramáticas
regulares
[aI , bP ] [aI , bI ]
Linguagens b
livres de
contexto
Autômatos
com pilha e
GLC’s
Máquinas de
Turing
(462 – 479 de 1593)
Exemplos de DFA’s
LFA 2018/2
H. Longo
Introdução
Fundamentos
Exemplo 4.16
matemáticos
L(M5 ) = {w ∈ {a, b}+ | w não contém nr. par de a0 s e nr. ímpar de b’s}.
Alfabetos e
linguagens L(M5 ) = {a, b}∗ − L(M4 ).
Autômatos
finitos
Autômatos finitos
determinísticos
Operações com DFA’s
Autômatos finitos não
determinísticos
Equivalência entre
DFA’s e NFA’s
Linguagens e
gramáticas
regulares
Linguagens
livres de
contexto
Autômatos
com pilha e
GLC’s
Máquinas de
Turing
(463 – 479 de 1593)
Exemplos de DFA’s
LFA 2018/2
H. Longo
Introdução
Fundamentos
Exemplo 4.16
matemáticos
L(M5 ) = {w ∈ {a, b}+ | w não contém nr. par de a0 s e nr. ímpar de b’s}.
Alfabetos e
linguagens L(M5 ) = {a, b}∗ − L(M4 ).
Autômatos
finitos b
Autômatos finitos
determinísticos
Operações com DFA’s
M5 : [aP , bP ] [aP , bI ]
Autômatos finitos não
determinísticos
b
Equivalência entre
DFA’s e NFA’s a a a a
Linguagens e
gramáticas b
[aI , bP ] [aI , bI ]
regulares
Linguagens
livres de b
contexto
Autômatos
com pilha e
GLC’s
Máquinas de
Turing
(464 – 479 de 1593)
Exemplos de DFA’s
LFA 2018/2
H. Longo
Exemplo 4.17
L(M6 ) = {w ∈ {0, 1, 2, 3}∗ | a soma dos dígitos de w é divisível por 4}.
Introdução
Fundamentos
matemáticos
Alfabetos e
linguagens
Autômatos
finitos
Autômatos finitos
determinísticos
Operações com DFA’s
Autômatos finitos não
determinísticos
Equivalência entre
DFA’s e NFA’s
Linguagens e
gramáticas
regulares
Linguagens
livres de
contexto
Autômatos
com pilha e
GLC’s
Máquinas de
Turing
(465 – 479 de 1593)
Exemplos de DFA’s
LFA 2018/2
H. Longo
Exemplo 4.17
L(M6 ) = {w ∈ {0, 1, 2, 3}∗ | a soma dos dígitos de w é divisível por 4}.
Introdução
Fundamentos
matemáticos 12302 ∈ L(M6 ).
Alfabetos e 0130 ∈ L(M6 ).
linguagens
0111 < L(M6 ).
Autômatos
finitos
Autômatos finitos
0 0
determinísticos
Operações com DFA’s
1
Autômatos finitos não
determinísticos M6 : 0 mod 4 3 1 mod 4
Equivalência entre
DFA’s e NFA’s
3
Linguagens e
2 2 3 1 2 2
gramáticas
regulares 1
Linguagens
livres de 2 mod 4 1 3 mod 4
contexto
3
Autômatos
com pilha e 0 0
GLC’s
Máquinas de
Turing
(466 – 479 de 1593)
Determinismo Incompleto
LFA 2018/2
H. Longo
Introdução
Fundamentos
matemáticos
Alfabetos e
linguagens Definição 4.18
Autômatos
finitos Função de transição é uma função parcial de S × Σ em S .
Autômatos finitos
determinísticos
Operações com DFA’s
Processamento para assim que é possível determinar que uma dada cadeia
Autômatos finitos não
determinísticos
não é aceitável.
Equivalência entre
DFA’s e NFA’s
Para antes de processar toda a cadeia e a rejeita.
Linguagens e
gramáticas
regulares
Linguagens
livres de
contexto
Autômatos
com pilha e
GLC’s
Máquinas de
Turing
(467 – 479 de 1593)
Exemplos de DFA’s
LFA 2018/2
H. Longo
Introdução
Alfabetos e
L(M7 ) = (ab)∗ c.
linguagens
Autômatos
finitos
Autômatos finitos
determinísticos
Operações com DFA’s
Autômatos finitos não
determinísticos
Equivalência entre
DFA’s e NFA’s
Linguagens e
gramáticas
regulares
Linguagens
livres de
contexto
Autômatos
com pilha e
GLC’s
Máquinas de
Turing
(468 – 479 de 1593)
Exemplos de DFA’s
LFA 2018/2
H. Longo
Introdução
Alfabetos e
L(M7 ) = (ab)∗ c.
linguagens
a
Autômatos
finitos
Autômatos finitos
M7 s0 s1
determinísticos
Operações com DFA’s b
Autômatos finitos não
determinísticos
Equivalência entre c
DFA’s e NFA’s
Linguagens e
gramáticas
regulares s2
Linguagens
livres de
contexto
Autômatos
com pilha e
GLC’s
Máquinas de
Turing
(469 – 479 de 1593)
Exemplos de DFA’s
LFA 2018/2
H. Longo
Autômatos
finitos
Autômatos finitos
determinísticos
Operações com DFA’s
Autômatos finitos não
determinísticos
Equivalência entre
DFA’s e NFA’s
Linguagens e
gramáticas
regulares
Linguagens
livres de
contexto
Autômatos
com pilha e
GLC’s
Máquinas de
Turing
(470 – 479 de 1593)
Exemplos de DFA’s
LFA 2018/2
H. Longo
Autômatos
a
finitos
Autômatos finitos
M8 : s0 s1
determinísticos
Operações com DFA’s
Autômatos finitos não
b
determinísticos
Equivalência entre c a, c
DFA’s e NFA’s
b
Linguagens e
gramáticas
regulares s2 s3
Linguagens a, b, c a, b, c
livres de
contexto
Autômatos
com pilha e
GLC’s
Máquinas de
Turing
(471 – 479 de 1593)
Exemplos de DFA’s
LFA 2018/2
H. Longo
Introdução
Exemplo 4.21
Fundamentos
matemáticos
L(M9 ) = {ai bi | 1 ≤ i ≤ n}, para um n fixo.
Alfabetos e
linguagens
Autômatos
finitos
Autômatos finitos
determinísticos
Operações com DFA’s
Autômatos finitos não
determinísticos
Equivalência entre
DFA’s e NFA’s
Linguagens e
gramáticas
regulares
Linguagens
livres de
contexto
Autômatos
com pilha e
GLC’s
Máquinas de
Turing
(472 – 479 de 1593)
Exemplos de DFA’s
LFA 2018/2
H. Longo
Introdução
Exemplo 4.21
Fundamentos
matemáticos
L(M9 ) = {ai bi | 1 ≤ i ≤ n}, para um n fixo.
Alfabetos e
linguagens Estados ak ’s contam o número de a’s e estados bk ’s garantem um igual
Autômatos número de b’s.
finitos
Autômatos finitos
determinísticos a a a a
Operações com DFA’s M9 : a0 a1 a2 an−1 an
Autômatos finitos não
determinísticos
Equivalência entre
DFA’s e NFA’s
Linguagens e
b b b b
gramáticas
regulares
Linguagens
livres de
b0 b1 bn−2 bn−1
contexto
b b b
Autômatos
com pilha e
GLC’s
Máquinas de
Turing
(473 – 479 de 1593)
Exemplos de DFA’s
LFA 2018/2
H. Longo
Introdução
Fundamentos
matemáticos
Exemplo 4.22
Alfabetos e
linguagens L(M10 ) = {w ∈ {a, b}∗ | w contém abba}.
Autômatos
finitos
Autômatos finitos
determinísticos
Operações com DFA’s
Autômatos finitos não
determinísticos
Equivalência entre
DFA’s e NFA’s
Linguagens e
gramáticas
regulares
Linguagens
livres de
contexto
Autômatos
com pilha e
GLC’s
Máquinas de
Turing
(474 – 479 de 1593)
Exemplos de DFA’s
LFA 2018/2
H. Longo
Introdução
Fundamentos
matemáticos
Exemplo 4.22
Alfabetos e
linguagens L(M10 ) = {w ∈ {a, b}∗ | w contém abba}.
Autômatos
finitos b a a, b
Autômatos finitos b
determinísticos
Operações com DFA’s a b a
Autômatos finitos não M10 : s0 s1 s2 s3 s4
determinísticos
Equivalência entre
DFA’s e NFA’s a
Linguagens e
gramáticas b
regulares
Linguagens
livres de
contexto
Autômatos
com pilha e
GLC’s
Máquinas de
Turing
(475 – 479 de 1593)
Exemplos de DFA’s
LFA 2018/2
H. Longo
Introdução
Fundamentos
matemáticos
Exemplo 4.23
Alfabetos e
linguagens L(M11 ) = (0 ∪ 1+ 00)∗ 1+ 01(0 ∪ 1)∗ .
Autômatos
finitos
Autômatos finitos
determinísticos
Operações com DFA’s
Autômatos finitos não
determinísticos
Equivalência entre
DFA’s e NFA’s
Linguagens e
gramáticas
regulares
Linguagens
livres de
contexto
Autômatos
com pilha e
GLC’s
Máquinas de
Turing
(476 – 479 de 1593)
Exemplos de DFA’s
LFA 2018/2
H. Longo
Introdução
Fundamentos
matemáticos
Exemplo 4.23
Alfabetos e
linguagens L(M11 ) = (0 ∪ 1+ 00)∗ 1+ 01(0 ∪ 1)∗ .
Autômatos
finitos
Autômatos finitos
0 1 0, 1
determinísticos
Operações com DFA’s
1 0 1
Autômatos finitos não
determinísticos M11 : s0 s1 s2 s3
Equivalência entre
DFA’s e NFA’s
Linguagens e
gramáticas 0
regulares
Linguagens
livres de
contexto
Autômatos
com pilha e
GLC’s
Máquinas de
Turing
(477 – 479 de 1593)
Exemplos de DFA’s
LFA 2018/2
H. Longo
Autômatos
finitos
Autômatos finitos
determinísticos
Operações com DFA’s
Autômatos finitos não
determinísticos
Equivalência entre
DFA’s e NFA’s
Linguagens e
gramáticas
regulares
Linguagens
livres de
contexto
Autômatos
com pilha e
GLC’s
Máquinas de
Turing
(478 – 479 de 1593)
Exemplos de DFA’s
LFA 2018/2
H. Longo
Linguagens e
gramáticas
regulares 0 s2 0
Linguagens
livres de
contexto 0
Autômatos
com pilha e
GLC’s
Máquinas de
Turing
(479 – 479 de 1593)
LFA 2018/2
H. Longo
Introdução
Fundamentos
matemáticos
Alfabetos e
linguagens
Linguagens e
gramáticas
regulares
Linguagens
livres de
contexto
Autômatos
com pilha e
GLC’s
Máquinas de
Turing
(480 – 557 de 1593)
Complemento de um DFA
LFA 2018/2
H. Longo
Introdução
Teorema 4.25
Fundamentos
matemáticos
Se M = hΣ, S , s0 , δ, Fi é um DFA, então M 0 = hΣ, S , s0 , δ, S − Fi é um DFA tal
Alfabetos e
linguagens que L(M 0 ) = Σ∗ − L(M).
Autômatos
finitos
Autômatos finitos
determinísticos
Operações com DFA’s
Autômatos finitos não
determinísticos
Equivalência entre
DFA’s e NFA’s
Linguagens e
gramáticas
regulares
Linguagens
livres de
contexto
Autômatos
com pilha e
GLC’s
Máquinas de
Turing
(481 – 557 de 1593)
Complemento de um DFA
LFA 2018/2
H. Longo
Introdução
Teorema 4.25
Fundamentos
matemáticos
Se M = hΣ, S , s0 , δ, Fi é um DFA, então M 0 = hΣ, S , s0 , δ, S − Fi é um DFA tal
Alfabetos e
linguagens que L(M 0 ) = Σ∗ − L(M).
Autômatos
finitos
Autômatos finitos Demonstração.
determinísticos
Máquinas de
Turing
(482 – 557 de 1593)
Complemento de um DFA
LFA 2018/2
H. Longo
Introdução
Fundamentos
matemáticos
Linguagens e b
gramáticas
regulares
Linguagens
livres de
contexto
Autômatos
com pilha e
GLC’s
Máquinas de
Turing
(483 – 557 de 1593)
Complemento de um DFA
LFA 2018/2
H. Longo
Introdução
Fundamentos
matemáticos
Linguagens e b
gramáticas
regulares
Linguagens
livres de
contexto
Autômatos
com pilha e
GLC’s
Máquinas de
Turing
(484 – 557 de 1593)
Complemento de um DFA
LFA 2018/2
H. Longo
Introdução
Fundamentos
Exemplo 4.27
matemáticos
L(M4 ) = {w ∈ {a, b}+ | w contém nr. par de a0 s e nr. ímpar de b’s}.
Alfabetos e
linguagens
b
[aP , bP ] [aP , bI ]
Autômatos
finitos M4 :
Autômatos finitos
determinísticos b
Operações com DFA’s
Autômatos finitos não
determinísticos
a a a a
Equivalência entre
DFA’s e NFA’s b
Linguagens e
gramáticas
[aI , bP ] [aI , bI ]
regulares
b
Linguagens
livres de
contexto
Autômatos
com pilha e
GLC’s
Máquinas de
Turing
(485 – 557 de 1593)
Complemento de um DFA
LFA 2018/2
H. Longo
Introdução
Fundamentos
Exemplo 4.27
matemáticos
L(M5 ) = {w ∈ {a, b}+ | w não contém nr. par de a0 s e nr. ímpar de b’s}.
Alfabetos e
linguagens L(M5 ) = {a, b}∗ − L(M4 ).
Autômatos
finitos b
Autômatos finitos
determinísticos
Operações com DFA’s
M5 : [aP , bP ] [aP , bI ]
Autômatos finitos não
determinísticos
b
Equivalência entre
DFA’s e NFA’s a a a a
Linguagens e
gramáticas b
[aI , bP ] [aI , bI ]
regulares
Linguagens
livres de b
contexto
Autômatos
com pilha e
GLC’s
Máquinas de
Turing
(486 – 557 de 1593)
Complemento de um DFA
LFA 2018/2
H. Longo
Introdução
Exemplo 4.28
Fundamentos
matemáticos L(M7 ) = (ab)∗ c.
Alfabetos e
linguagens a
Autômatos M7 s0 s1
finitos
Autômatos finitos
determinísticos b
Operações com DFA’s
Autômatos finitos não
determinísticos
c
Equivalência entre
DFA’s e NFA’s
Linguagens e
gramáticas
regulares
s2
Linguagens
livres de
contexto
Autômatos
com pilha e
GLC’s
Máquinas de
Turing
(487 – 557 de 1593)
Complemento de um DFA
LFA 2018/2
H. Longo
Introdução
Exemplo 4.28
Fundamentos
matemáticos L(M7 ) = (ab)∗ c.
Alfabetos e
linguagens a
Autômatos M8 : s0 s1
finitos
Autômatos finitos
determinísticos b
Operações com DFA’s
Autômatos finitos não
determinísticos
c a, c
Equivalência entre
b
DFA’s e NFA’s
Linguagens e
gramáticas s2 s3
regulares a, b, c a, b, c
Linguagens
livres de
contexto
Autômatos
com pilha e
GLC’s
Máquinas de
Turing
(488 – 557 de 1593)
Complemento de um DFA
LFA 2018/2
H. Longo
Introdução
Exemplo 4.28
Fundamentos
matemáticos L = Σ∗ − L(M7 ).
Alfabetos e
linguagens a
Autômatos D8 : s0 s1
finitos
Autômatos finitos
determinísticos b
Operações com DFA’s
Autômatos finitos não
determinísticos
c a, c
Equivalência entre
b
DFA’s e NFA’s
Linguagens e
gramáticas s2 s3
regulares a, b, c a, b, c
Linguagens
livres de
contexto
Autômatos
com pilha e
GLC’s
Máquinas de
Turing
(489 – 557 de 1593)
Operações com autômatos
LFA 2018/2
H. Longo
Introdução
Fundamentos
matemáticos Produto ⊗ de autômatos
Alfabetos e
linguagens Sejam os DFA’s D1 = hΣ1 , S , s0 , δ1 , F1 i e D2 = hΣ2 , Q, q0 , δ2 , F2 i.
Autômatos O produto de D1 e D2 é o autômato D1 ⊗ D2 = hΣ1 ∩ Σ2 , S .Q, δ, s0 .q0 , F1 .F2 i:
finitos
Autômatos finitos S .Q = {si .q j | (si , q j ) ∈ S × Q},
F1 .F2 = {si .q j | (si , q j ) ∈ F1 × F2 },
determinísticos
Operações com DFA’s
Autômatos finitos não
determinísticos Para si ∈ S , q j ∈ Q e a ∈ Σ1 ∩ Σ2 , define-se
Equivalência entre
DFA’s e NFA’s
Linguagens e δ1 (si , a).δ2 (q j , a), se δ1 (si , a) e δ2 (q j , a) estão definidos;
δ(si .q j , a) =
gramáticas
regulares
∅, se δ1 (si , a) ou δ2 (q j , a) não está definido.
Linguagens
livres de
contexto
Autômatos
com pilha e
GLC’s
Máquinas de
Turing
(490 – 557 de 1593)
Produto de autômatos
LFA 2018/2
H. Longo
Alfabetos e
D1 ⊗ D2 := hΣ1 ∩ Σ2 , S .Q, δ, s0 .q0 , F1 .F2 i, então L(D1 ⊗ D2 ) = L(D1 ) ∩ L(D2 ).
linguagens
Autômatos
finitos
Autômatos finitos
determinísticos
Operações com DFA’s
Autômatos finitos não
determinísticos
Equivalência entre
DFA’s e NFA’s
Linguagens e
gramáticas
regulares
Linguagens
livres de
contexto
Autômatos
com pilha e
GLC’s
Máquinas de
Turing
(491 – 557 de 1593)
Produto de autômatos
LFA 2018/2
H. Longo
Alfabetos e
D1 ⊗ D2 := hΣ1 ∩ Σ2 , S .Q, δ, s0 .q0 , F1 .F2 i, então L(D1 ⊗ D2 ) = L(D1 ) ∩ L(D2 ).
linguagens
Autômatos
finitos
Demonstração.
Autômatos finitos
determinísticos
Operações com DFA’s
Autômatos finitos não
determinísticos w ∈ L(D1 ⊗ D2 ) se e somente se δ(s0 .q0 , w) ∈ F1 .F2 ,
Equivalência entre
DFA’s e NFA’s
se e somente se δ1 (s0 , w).δ2 (q0 , w) ∈ F1 .F2 ,
Linguagens e
gramáticas
regulares
se e somente se δ1 (s0 , w) ∈ F1 e δ2 (q0 , w) ∈ F2 ,
Linguagens se e somente se w ∈ L(D1 ) e w ∈ L(D2 ).
livres de
contexto
Autômatos
com pilha e
GLC’s
Máquinas de
Turing
(492 – 557 de 1593)
Produto ⊗ de autômatos
LFA 2018/2
H. Longo
Introdução
Exemplo 4.30
Fundamentos
matemáticos DFA D1 que reconhece L1 = {w ∈ {0, 1, 2}∗ | w contém exatamente dois 0’s}:
Alfabetos e
linguagens 1, 2 1, 2 1, 2
Autômatos
finitos
0 0
Autômatos finitos
determinísticos D1 : s0 s1 s2
Operações com DFA’s
Autômatos finitos não
determinísticos
Equivalência entre
DFA’s e NFA’s
Linguagens e
gramáticas
regulares
Linguagens
livres de
contexto
Autômatos
com pilha e
GLC’s
Máquinas de
Turing
(493 – 557 de 1593)
Produto ⊗ de autômatos
LFA 2018/2
H. Longo
Introdução
Exemplo 4.30
Fundamentos
matemáticos DFA D2 que reconhece L2 = {w ∈ {0, 1}∗ | w possui comprimento par}:
Alfabetos e
linguagens 0, 1
Autômatos
finitos D2 : q0 q1
Autômatos finitos
determinísticos
Operações com DFA’s 0, 1
Autômatos finitos não
determinísticos
Equivalência entre
DFA’s e NFA’s
Linguagens e
gramáticas
regulares
Linguagens
livres de
contexto
Autômatos
com pilha e
GLC’s
Máquinas de
Turing
(494 – 557 de 1593)
Produto ⊗ de autômatos
LFA 2018/2
H. Longo
Introdução
Exemplo 4.30
Fundamentos
matemáticos L3 = {w ∈ {0, 1}∗ | w contém exatamente dois 0’s e possui comprimento par}.
Alfabetos e
linguagens L3 = D1 ⊗ D2 = L1 ∩ L2 .
Autômatos
finitos
DFA D3 = D1 ⊗ D2 que reconhece L3 :
Autômatos finitos
0 0
s0 .q0 s1 .q1 s2 .q0
determinísticos
Operações com DFA’s
Autômatos finitos não
D1 ⊗ D2 :
determinísticos
Equivalência entre
DFA’s e NFA’s
Linguagens e 1 1 1 1 1 1
gramáticas
regulares
0 0
Linguagens
livres de
s0 .q1 s1 .q0 s2 .q1
contexto
Autômatos
com pilha e
GLC’s
Máquinas de
Turing
(495 – 557 de 1593)
Operações com autômatos
LFA 2018/2
H. Longo
Alfabetos e
D1 ⊕ D2 = hΣ1 ∩ Σ2 , S .Q, δ, s0 .q0 , F1 .F2 i:
linguagens
S .Q = {si .q j | (si , q j ) ∈ S × Q},
Autômatos
finitos
F1 .F2 = {si .q j | (si , q j ) ∈ S × F2 ou (si , q j ) ∈ F1 × Q},
Autômatos finitos Para si ∈ S , q j ∈ Q e a ∈ Σ1 ∩ Σ2 , define-se
determinísticos
Operações com DFA’s
δ1 (si , a).δ2 (q j , a), se δ1 (si , a) e δ2 (q j , a) estão definidos;
Autômatos finitos não
determinísticos
δ(si .q j , a) =
Equivalência entre
DFA’s e NFA’s
∅, se δ1 (si , a) ou δ2 (q j , a) não está definido.
Linguagens e
gramáticas
regulares
Linguagens
livres de
contexto
Autômatos
com pilha e
GLC’s
Máquinas de
Turing
(496 – 557 de 1593)
Operações com autômatos
LFA 2018/2
H. Longo
Alfabetos e
D1 ⊕ D2 = hΣ1 ∩ Σ2 , S .Q, δ, s0 .q0 , F1 .F2 i:
linguagens
S .Q = {si .q j | (si , q j ) ∈ S × Q},
Autômatos
finitos
F1 .F2 = {si .q j | (si , q j ) ∈ S × F2 ou (si , q j ) ∈ F1 × Q},
Autômatos finitos Para si ∈ S , q j ∈ Q e a ∈ Σ1 ∩ Σ2 , define-se
determinísticos
Operações com DFA’s
δ1 (si , a).δ2 (q j , a), se δ1 (si , a) e δ2 (q j , a) estão definidos;
Autômatos finitos não
determinísticos
δ(si .q j , a) =
Equivalência entre
DFA’s e NFA’s
∅, se δ1 (si , a) ou δ2 (q j , a) não está definido.
Linguagens e
gramáticas
regulares
Lema 4.31
Linguagens
livres de
contexto
Dados os DFA’s D1 = hΣ1 , S , s0 , δ1 , F1 i, D2 = hΣ2 , Q, q0 , δ2 , F2 i e
Autômatos D1 ⊕ D2 := hΣ1 ∩ Σ2 , S .Q, δ, s0 .q0 , F1 .F2 i, então L(D1 ⊕ D2 ) = L(D1 ) ∪ L(D2 ).
com pilha e
GLC’s
Máquinas de
Turing
(497 – 557 de 1593)
Produto ⊕ de autômatos
LFA 2018/2
Exemplo 4.32
H. Longo
DFA D1 que reconhece
Introdução
L1 = {w ∈ {a, b}∗ | w possui pelo menos dois b’s consecutivos}:
Fundamentos
matemáticos
a a, b
Alfabetos e b
linguagens
b
Autômatos D1 : s0 s1 s2
finitos
Autômatos finitos
determinísticos a
Operações com DFA’s
Autômatos finitos não
determinísticos
Equivalência entre
DFA’s e NFA’s
Linguagens e
gramáticas
regulares
Linguagens
livres de
contexto
Autômatos
com pilha e
GLC’s
Máquinas de
Turing
(498 – 557 de 1593)
Produto ⊕ de autômatos
LFA 2018/2
Exemplo 4.32
H. Longo
DFA D2 que reconhece
Introdução
L2 = {w ∈ {a, b}∗ | w contém a subcadeia aa}.
Fundamentos
matemáticos
b a, b
Alfabetos e a
linguagens
a
Autômatos D2 : q0 q1 q2
finitos
Autômatos finitos
determinísticos
Operações com DFA’s
b
Autômatos finitos não
determinísticos
Equivalência entre
DFA’s e NFA’s
Linguagens e
gramáticas
regulares
Linguagens
livres de
contexto
Autômatos
com pilha e
GLC’s
Máquinas de
Turing
(499 – 557 de 1593)
Produto ⊕ de autômatos
LFA 2018/2
Exemplo 4.32
H. Longo
DFA D3 que reconhece
Introdução
L3 = {w ∈ {a, b}∗ | w não contém a subcadeia aa}.
Fundamentos
matemáticos
b a, b
Alfabetos e a
linguagens
a
Autômatos D3 : q0 q1 q2
finitos
Autômatos finitos
determinísticos
Operações com DFA’s
b
Autômatos finitos não
determinísticos
Equivalência entre
DFA’s e NFA’s
Linguagens e
gramáticas
regulares
Linguagens
livres de
contexto
Autômatos
com pilha e
GLC’s
Máquinas de
Turing
(500 – 557 de 1593)
Produto ⊕ de autômatos
LFA 2018/2
Exemplo 4.32
H. Longo
L(D4 ) = {w ∈ {a, b}∗ | w contém bb ou não contém aa}.
Introdução
L(D4 ) = L(D1 ⊕ D2 ) = L(D1 ) ∪ L(D2 ).
Fundamentos
matemáticos
Alfabetos e
a
linguagens
a a
Autômatos D4 = D1 ⊕ D3 : s0 .q0 s0 .q1 s0 .q2
finitos
Autômatos finitos
determinísticos
a
Operações com DFA’s a
Autômatos finitos não
determinísticos
b a b
Equivalência entre
DFA’s e NFA’s
b
Linguagens e
gramáticas
s1 .q0 s1 .q1 s1 .q2
regulares
Linguagens
livres de b
contexto b b
b a, b b
Autômatos a a, b
com pilha e
a
GLC’s
s2 .q0 s2 .q1 s2 .q2
Máquinas de
Turing
b b (501 – 557 de 1593)
Produto ⊕ de autômatos
LFA 2018/2
Exemplo 4.32
H. Longo
L(D4 ) = {w ∈ {a, b}∗ | w contém bb ou não contém aa}.
Introdução
L(D4 ) = L(D1 ⊕ D2 ) = L(D1 ) ∪ L(D2 ).
Fundamentos
matemáticos
Alfabetos e
a
linguagens
a a
Autômatos D4 = D1 ⊕ D3 : s0 .q0 s0 .q1 s0 .q2
finitos
Autômatos finitos
determinísticos
a
Operações com DFA’s a
Autômatos finitos não
determinísticos
b a b
Equivalência entre
DFA’s e NFA’s
b
Linguagens e
gramáticas
s1 .q0 s1 .q1 s1 .q2
regulares
Linguagens
livres de b
contexto b b
b a, b b
Autômatos a a, b
com pilha e
a
GLC’s
s2 .q0 s2 .q1 s2 .q2
Máquinas de
Turing
b b (502 – 557 de 1593)
Produto ⊕ de autômatos
LFA 2018/2
Exemplo 4.32
H. Longo
L(D4 ) = {w ∈ {a, b}∗ | w contém bb ou não contém aa}.
Introdução
L(D4 ) = L(D1 ⊕ D2 ) = L(D1 ) ∪ L(D2 ).
Fundamentos
matemáticos
Alfabetos e
a
linguagens
a a
Autômatos D4 = D1 ⊕ D3 : s0 .q0 s0 .q1 s0 .q2
finitos
Autômatos finitos
determinísticos
a
Operações com DFA’s a
Autômatos finitos não
determinísticos
b a b
Equivalência entre
DFA’s e NFA’s
b
Linguagens e
gramáticas
s1 .q0 s1 .q1 s1 .q2
regulares
Linguagens
livres de b
contexto b b
b a, b b
Autômatos a a, b
com pilha e
a
GLC’s
s2 .q0 s2 .q1 s2 .q2
Máquinas de
Turing
b b (503 – 557 de 1593)
Produto ⊕ de autômatos
LFA 2018/2
Exemplo 4.32
H. Longo
L(D4 ) = {w ∈ {a, b}∗ | w contém bb ou não contém aa}.
Introdução
L(D4 ) = L(D1 ⊕ D2 ) = L(D1 ) ∪ L(D2 ).
Fundamentos
matemáticos
Alfabetos e
a
linguagens
a a
Autômatos D4 = D1 ⊕ D3 : s0 .q0 s0 .q1 s0 .q2
finitos
Autômatos finitos
determinísticos
a
Operações com DFA’s a
Autômatos finitos não
determinísticos
b a b
Equivalência entre
DFA’s e NFA’s
b
Linguagens e
gramáticas
s1 .q0 s1 .q1 s1 .q2
regulares
Linguagens
livres de b
contexto b b
b a, b b
Autômatos a a, b
com pilha e
a
GLC’s
s2 .q0 s2 .q1 s2 .q2
Máquinas de
Turing
b b (504 – 557 de 1593)
Produto ⊕ de autômatos
LFA 2018/2
Exemplo 4.32
H. Longo
L(D4 ) = {w ∈ {a, b}∗ | w contém bb ou não contém aa}.
Introdução
L(D4 ) = L(D1 ⊕ D2 ) = L(D1 ) ∪ L(D2 ).
Fundamentos
matemáticos
Alfabetos e
a
linguagens
a a
Autômatos D4 = D1 ⊕ D3 : s0 .q0 s0 .q1 s0 .q2
finitos
Autômatos finitos
determinísticos
a
Operações com DFA’s a
Autômatos finitos não
determinísticos
b a b
Equivalência entre
DFA’s e NFA’s
b
Linguagens e
gramáticas
s1 .q0 s1 .q1 s1 .q2
regulares
Linguagens
livres de b
contexto b b
b a, b b
Autômatos a a, b
com pilha e
a
GLC’s
s2 .q0 s2 .q1 s2 .q2
Máquinas de
Turing
b b (505 – 557 de 1593)
Produto ⊕ de autômatos
LFA 2018/2
Exemplo 4.32
H. Longo
L(D4 ) = {w ∈ {a, b}∗ | w contém bb ou não contém aa}.
Introdução
L(D4 ) = L(D1 ⊕ D2 ) = L(D1 ) ∪ L(D2 ).
Fundamentos
matemáticos
Alfabetos e
a
linguagens
a a
Autômatos D4 = D1 ⊕ D3 : s0 .q0 s0 .q1 s0 .q2
finitos
Autômatos finitos
determinísticos
a
Operações com DFA’s a
Autômatos finitos não
determinísticos
b a b
Equivalência entre
DFA’s e NFA’s
b
Linguagens e
gramáticas
s1 .q0 s1 .q1 s1 .q2
regulares
Linguagens
livres de b
contexto b b
b a, b b
Autômatos a a, b
com pilha e
a
GLC’s
s2 .q0 s2 .q1 s2 .q2
Máquinas de
Turing
b b (506 – 557 de 1593)
Produto ⊕ de autômatos
LFA 2018/2
Exemplo 4.32
H. Longo
L(D4 ) = {w ∈ {a, b}∗ | w contém bb ou não contém aa}.
Introdução
L(D4 ) = L(D1 ⊕ D2 ) = L(D1 ) ∪ L(D2 ).
Fundamentos
matemáticos
Alfabetos e
a
linguagens
a a
Autômatos D4 = D1 ⊕ D3 : s0 .q0 s0 .q1 s0 .q2
finitos
Autômatos finitos
determinísticos
a
Operações com DFA’s a
Autômatos finitos não
determinísticos
b a b
Equivalência entre
DFA’s e NFA’s
b
Linguagens e
gramáticas
s1 .q0 s1 .q1 s1 .q2
regulares
Linguagens
livres de b
contexto b b
b a, b b
Autômatos a a, b
com pilha e
a
GLC’s
s2 .q0 s2 .q1 s2 .q2
Máquinas de
Turing
b b (507 – 557 de 1593)
Produto ⊕ de autômatos
LFA 2018/2
Exemplo 4.32
H. Longo
L(D4 ) = {w ∈ {a, b}∗ | w contém bb ou não contém aa}.
Introdução
L(D4 ) = L(D1 ) ∪ L(D2 ).
Fundamentos
matemáticos
M3 é outra versão minimizada do autômato D4 :
Alfabetos e
linguagens
a
Autômatos
finitos b
Autômatos finitos a
determinísticos
Operações com DFA’s a s1 s2 s3
Autômatos finitos não
determinísticos
Equivalência entre
a
DFA’s e NFA’s
Linguagens e M3 : s0 a b
gramáticas
regulares
a, b
b
Linguagens
livres de b s4 s5
contexto
Autômatos
b
com pilha e
GLC’s
Máquinas de
Turing
(508 – 557 de 1593)
Minimização de DFA’s – I
LFA 2018/2
H. Longo
Introdução
Fundamentos
matemáticos
Definição 4.33
Alfabetos e
linguagens Dado um DFA M = hΣ, S , s0 , δ, Fi, é possível construir um DFA
Autômatos M 0 = hΣ, S 0 , s00 , δ0 , F 0 i, a partir de M e da relação de não equivalência de
finitos
Autômatos finitos
estados (definida no teorema 4.35), onde:
determinísticos
Operações com DFA’s S 0 é o conjunto das classes de equivalência constituídas de estados
Autômatos finitos não
determinísticos equivalentes de M ;
[s0 ] ∈ S 0 se estado inicial s0 ∈ S ;
Equivalência entre
DFA’s e NFA’s
Linguagens e [si ] ∈ F 0 se si ∈ F ;
δ0 ([si ], a) = [δ(si , a)].
gramáticas
regulares
Linguagens
livres de
contexto
Autômatos
com pilha e
GLC’s
Máquinas de
Turing
(509 – 557 de 1593)
Minimização de DFA’s – I
LFA 2018/2
H. Longo
Introdução
Fundamentos
matemáticos
Alfabetos e
linguagens Observações
Autômatos
finitos
Se M 0 tem estados inalcançáveis a partir de [s0 ], estes estados e todos os
Autômatos finitos
determinísticos arcos associados são eliminados.
Operações com DFA’s
Autômatos finitos não
determinísticos
Equivalência entre
DFA’s e NFA’s
Linguagens e
gramáticas
regulares
Linguagens
livres de
contexto
Autômatos
com pilha e
GLC’s
Máquinas de
Turing
(510 – 557 de 1593)
Minimização de DFA’s – I
LFA 2018/2
H. Longo
Introdução
Fundamentos
matemáticos
Alfabetos e
linguagens Observações
Autômatos
finitos
Se M 0 tem estados inalcançáveis a partir de [s0 ], estes estados e todos os
Autômatos finitos
determinísticos arcos associados são eliminados.
Operações com DFA’s 0
Autômatos finitos não
determinísticos
L(M 0 ) = {u | δ ([s0 ], u) = [δ(si , ε)] com si ∈ F}.
Equivalência entre
DFA’s e NFA’s
Linguagens e
gramáticas
regulares
Linguagens
livres de
contexto
Autômatos
com pilha e
GLC’s
Máquinas de
Turing
(511 – 557 de 1593)
Minimização de DFA’s – I
LFA 2018/2
H. Longo
Introdução
Fundamentos
matemáticos
Alfabetos e
linguagens Observações
Autômatos
finitos
Se M 0 tem estados inalcançáveis a partir de [s0 ], estes estados e todos os
Autômatos finitos
determinísticos arcos associados são eliminados.
Operações com DFA’s 0
Autômatos finitos não
determinísticos
L(M 0 ) = {u | δ ([s0 ], u) = [δ(si , ε)] com si ∈ F}.
Equivalência entre
DFA’s e NFA’s L(M) = L(M 0 ).
Linguagens e
gramáticas
regulares
Linguagens
livres de
contexto
Autômatos
com pilha e
GLC’s
Máquinas de
Turing
(512 – 557 de 1593)
Minimização de DFA’s – I
LFA 2018/2
H. Longo
Introdução
Fundamentos
matemáticos
Alfabetos e
linguagens
Linguagens e
gramáticas
regulares
Linguagens
livres de
contexto
Autômatos
com pilha e
GLC’s
Máquinas de
Turing
(513 – 557 de 1593)
Minimização de DFA’s – I
LFA 2018/2
Máquinas de
Turing
(515 – 557 de 1593)
Minimização de DFA’s – I
LFA 2018/2
Máquinas de
Turing
(516 – 557 de 1593)
Minimização de DFA’s – I
LFA 2018/2
H. Longo
Introdução
Fundamentos
matemáticos
Alfabetos e
linguagens
Identificação de estados equivalentes
Autômatos
finitos Para cada par de estados si e s j (i < j), calcular os valores D[i, j] e S [i, j].
Autômatos finitos
determinísticos
Operações com DFA’s
Autômatos finitos não
determinísticos
Equivalência entre
DFA’s e NFA’s
Linguagens e
gramáticas
regulares
Linguagens
livres de
contexto
Autômatos
com pilha e
GLC’s
Máquinas de
Turing
(517 – 557 de 1593)
Minimização de DFA’s – I
LFA 2018/2
H. Longo
Introdução
Fundamentos
matemáticos
Alfabetos e
linguagens
Identificação de estados equivalentes
Autômatos
finitos Para cada par de estados si e s j (i < j), calcular os valores D[i, j] e S [i, j].
Autômatos finitos
determinísticos
Operações com DFA’s
D[i, j] = 1, se estados si e s j são não equivalentes.
Autômatos finitos não
determinísticos
Equivalência entre
DFA’s e NFA’s
Linguagens e
gramáticas
regulares
Linguagens
livres de
contexto
Autômatos
com pilha e
GLC’s
Máquinas de
Turing
(518 – 557 de 1593)
Minimização de DFA’s – I
LFA 2018/2
H. Longo
Introdução
Fundamentos
matemáticos
Alfabetos e
linguagens
Identificação de estados equivalentes
Autômatos
finitos Para cada par de estados si e s j (i < j), calcular os valores D[i, j] e S [i, j].
Autômatos finitos
determinísticos
Operações com DFA’s
D[i, j] = 1, se estados si e s j são não equivalentes.
Autômatos finitos não
determinísticos
[i, j] ∈ S [m, n], se a não equivalência de si e s j pode ser determinada a partir de
Equivalência entre
DFA’s e NFA’s
sm e sn .
Linguagens e
gramáticas
regulares
Linguagens
livres de
contexto
Autômatos
com pilha e
GLC’s
Máquinas de
Turing
(519 – 557 de 1593)
Minimização de DFA’s – I
LFA 2018/2
H. Longo
Introdução
Fundamentos
matemáticos
Identificação de estados equivalentes
Alfabetos e a a
linguagens si sm sj sn
Autômatos
finitos
Autômatos finitos Quando examinados os estados si e s j :
determinísticos
Operações com DFA’s
Autômatos finitos não
determinísticos
Equivalência entre
DFA’s e NFA’s
Linguagens e
gramáticas
regulares
Linguagens
livres de
contexto
Autômatos
com pilha e
GLC’s
Máquinas de
Turing
(520 – 557 de 1593)
Minimização de DFA’s – I
LFA 2018/2
H. Longo
Introdução
Fundamentos
matemáticos
Identificação de estados equivalentes
Alfabetos e a a
linguagens si sm sj sn
Autômatos
finitos
Autômatos finitos Quando examinados os estados si e s j :
determinísticos
Operações com DFA’s 1 Se sm e sn já estão marcados como não equivalentes, então D[i, j] recebe 1.
Autômatos finitos não
determinísticos
Equivalência entre
DFA’s e NFA’s
Linguagens e
gramáticas
regulares
Linguagens
livres de
contexto
Autômatos
com pilha e
GLC’s
Máquinas de
Turing
(521 – 557 de 1593)
Minimização de DFA’s – I
LFA 2018/2
H. Longo
Introdução
Fundamentos
matemáticos
Identificação de estados equivalentes
Alfabetos e a a
linguagens si sm sj sn
Autômatos
finitos
Autômatos finitos Quando examinados os estados si e s j :
determinísticos
Operações com DFA’s 1 Se sm e sn já estão marcados como não equivalentes, então D[i, j] recebe 1.
Autômatos finitos não
determinísticos 2 Se sm e sn ainda não estão marcados como não equivalentes, então uma
Equivalência entre
DFA’s e NFA’s posterior determinação de que sm e sn são não equivalentes fornece a resposta
Linguagens e para si e s j .
gramáticas
regulares
Linguagens
livres de
contexto
Autômatos
com pilha e
GLC’s
Máquinas de
Turing
(522 – 557 de 1593)
Minimização de DFA’s – I
LFA 2018/2
H. Longo
Introdução
Fundamentos
matemáticos
Identificação de estados equivalentes
Alfabetos e a a
linguagens si sm sj sn
Autômatos
finitos
Autômatos finitos Quando examinados os estados si e s j :
determinísticos
Operações com DFA’s 1 Se sm e sn já estão marcados como não equivalentes, então D[i, j] recebe 1.
Autômatos finitos não
determinísticos 2 Se sm e sn ainda não estão marcados como não equivalentes, então uma
Equivalência entre
DFA’s e NFA’s posterior determinação de que sm e sn são não equivalentes fornece a resposta
Linguagens e para si e s j .
gramáticas
regulares
[i, j] ∈ S [m, n] indica que a não equivalência de sm e sn é suficiente para determinar
a não equivalência de si e s j .
Linguagens
livres de
contexto
Autômatos
com pilha e
GLC’s
Máquinas de
Turing
(523 – 557 de 1593)
Estados equivalentes
LFA 2018/2
H. Longo
Algoritmo 1: EstadosEquivalentes( M )
Introdução
// Determina os estados equivalentes de um DFA M
Fundamentos
matemáticos Entrada: DFA M = hΣ, S , s0 , δ, Fi.
Alfabetos e Saída: Matrizes D e M .
linguagens
1 para todo si , s j ∈ S , i < j, faça
Autômatos
2 se ((si ∈ F e s j < F) ou (si < F e s j ∈ F)) então D[i, j] ← 1;
finitos
Autômatos finitos
3 senão D[i, j] ← 0;
determinísticos
4 S [i, j] ← ∅;
Operações com DFA’s
Autômatos finitos não
determinísticos 5 para todo ((a ∈ Σ) e (D[i, j] = 0, i < j)) faça
Equivalência entre 6 sm ← δ(si , a);
DFA’s e NFA’s
7 sn ← δ(s j , a);
Linguagens e 8 se ((D[m, n] = 1) ou (D[n, m] = 1)) então DIST(i, j);
gramáticas
regulares 9 senão
10 se ((m < n) e ([i, j] , [m, n])) então S [m, n] ← S [m, n] ∪ {[i, j]};
Linguagens
livres de 11 senão
contexto 12 se ((m > n) e ([i, j] , [n, m])) então S [n, m] ← S [n, m] ∪ {[i, j]};
Autômatos
com pilha e
GLC’s
Máquinas de
Turing
(524 – 557 de 1593)
Estados equivalentes
LFA 2018/2
H. Longo
Introdução
Fundamentos
matemáticos
Alfabetos e
linguagens
Algoritmo 2: DIST(i, j)
Autômatos
finitos Entrada: Índices i e j.
Autômatos finitos
determinísticos
1 D[i, j] ← 1;
Operações com DFA’s
Autômatos finitos não 2 para todo [k, `] ∈ S [i, j] faça
determinísticos
3 DIST(k, `);
Equivalência entre
DFA’s e NFA’s
Linguagens e
gramáticas
regulares
Linguagens
livres de
contexto
Autômatos
com pilha e
GLC’s
Máquinas de
Turing
(525 – 557 de 1593)
Estados equivalentes
LFA 2018/2
H. Longo
Teorema 4.35
Introdução
Fundamentos
Os estados si e s j são não equivalentes se, e somente se, D[i, j] = 1 ao
matemáticos
término do Algoritmo 1.
Alfabetos e
linguagens
Autômatos
finitos
Autômatos finitos
determinísticos
Operações com DFA’s
Autômatos finitos não
determinísticos
Equivalência entre
DFA’s e NFA’s
Linguagens e
gramáticas
regulares
Linguagens
livres de
contexto
Autômatos
com pilha e
GLC’s
Máquinas de
Turing
(526 – 557 de 1593)
Estados equivalentes
LFA 2018/2
H. Longo
Teorema 4.35
Introdução
Fundamentos
Os estados si e s j são não equivalentes se, e somente se, D[i, j] = 1 ao
matemáticos
término do Algoritmo 1.
Alfabetos e
linguagens
Autômatos Demonstração.
finitos
Autômatos finitos
determinísticos
1 D[i, j] = 1 ⇒ si e s j são não equivalentes.
Operações com DFA’s
Autômatos finitos não
Se D[i, j] recebe 1 no passo 2, então si e s j são não equivalentes.
determinísticos
Equivalência entre
Se D[i, j] recebe 1 no passo 8 somente se δ(si , a) = sm e δ(s j , a) = sn , para
DFA’s e NFA’s
algum símbolo a, quando o algoritmo já determinou que sm e sn são não
Linguagens e equivalentes.
gramáticas
regulares Se u é a cadeia que mostra a não equivalência de sm e sn , então au mostra a não
Linguagens equivalência de si e s j .
livres de
contexto
Autômatos
com pilha e
GLC’s
Máquinas de
Turing
(527 – 557 de 1593)
Estados equivalentes
LFA 2018/2
H. Longo
Teorema 4.35
Introdução
Fundamentos
Os estados si e s j são não equivalentes se, e somente se, D[i, j] = 1 ao
matemáticos
término do Algoritmo 1.
Alfabetos e
linguagens
Autômatos Demonstração.
finitos
Autômatos finitos
determinísticos
2 si e s j não equivalentes ⇒ D[i, j] = 1.
Operações com DFA’s
Autômatos finitos não
Indução no comprimento da menor cadeia que mostra a não equivalência de um
determinísticos
Equivalência entre
par de estados.
DFA’s e NFA’s
Linguagens e
gramáticas
regulares
Linguagens
livres de
contexto
Autômatos
com pilha e
GLC’s
Máquinas de
Turing
(528 – 557 de 1593)
Estados equivalentes
LFA 2018/2
H. Longo
Teorema 4.35
Introdução
Fundamentos
Os estados si e s j são não equivalentes se, e somente se, D[i, j] = 1 ao
matemáticos
término do Algoritmo 1.
Alfabetos e
linguagens
Autômatos Demonstração.
finitos
Autômatos finitos
determinísticos
2 si e s j não equivalentes ⇒ D[i, j] = 1.
Operações com DFA’s
Autômatos finitos não
determinísticos Base: Pares de estados que são não equivalentes por uma cadeia de
Equivalência entre
DFA’s e NFA’s comprimento 0.
Linguagens e
gramáticas
δ(si , ε) = si e δ(s j , ε) = s j .
regulares
Apenas um entre si e s j é estado final e D[i, j] recebe 1 no passo 2.
Linguagens
livres de
contexto
Autômatos
com pilha e
GLC’s
Máquinas de
Turing
(529 – 557 de 1593)
Estados equivalentes
LFA 2018/2
H. Longo
Teorema 4.35
Introdução
Fundamentos
Os estados si e s j são não equivalentes se, e somente se, D[i, j] = 1 ao
matemáticos
término do Algoritmo 1.
Alfabetos e
linguagens
Autômatos Demonstração.
finitos
Autômatos finitos
determinísticos
2 si e s j não equivalentes ⇒ D[i, j] = 1.
Operações com DFA’s
Autômatos finitos não
determinísticos Hipótese: Suponha que todo par de estados não equivalentes por uma cadeia de
Equivalência entre
DFA’s e NFA’s comprimento k ou menor é marcado pelo algoritmo.
Linguagens e
gramáticas
regulares
Linguagens
livres de
contexto
Autômatos
com pilha e
GLC’s
Máquinas de
Turing
(530 – 557 de 1593)
Estados equivalentes
LFA 2018/2
H. Longo
Teorema 4.35
Introdução
Fundamentos
Os estados si e s j são não equivalentes se, e somente se, D[i, j] = 1 ao
matemáticos
término do Algoritmo 1.
Alfabetos e
linguagens
Autômatos Demonstração.
finitos
Autômatos finitos
determinísticos
2 si e s j não equivalentes ⇒ D[i, j] = 1.
Operações com DFA’s
Autômatos finitos não
determinísticos Passo: Sejam si e s j estados para os quais a menor cadeia u que os tornam não
Equivalência entre
DFA’s e NFA’s equivalentes é de comprimento k + 1.
Linguagens e
gramáticas
u = av.
regulares
δ(si , u) = δ(si , av) = δ(sm , v) = s p .
Linguagens
livres de
δ(s j , u) = δ(s j , av) = δ(sn , v) = sq .
contexto
Apenas um entre s p e sq é estado final, já que o processamento
Autômatos
com pilha e precedente torna si e s j não equivalentes.
GLC’s
Máquinas de
Turing
(531 – 557 de 1593)
Estados equivalentes
LFA 2018/2
H. Longo
Teorema 4.35
Introdução
Fundamentos
Os estados si e s j são não equivalentes se, e somente se, D[i, j] = 1 ao
matemáticos
término do Algoritmo 1.
Alfabetos e
linguagens
Autômatos Demonstração.
finitos
Autômatos finitos
determinísticos
2 si e s j não equivalentes ⇒ D[i, j] = 1.
Operações com DFA’s
Autômatos finitos não
determinísticos Passo: Claramente, sm e sn são não equivalentes por uma cadeia de
Equivalência entre
DFA’s e NFA’s comprimento k.
Linguagens e Por H.I., D[m, n] = 1.
gramáticas
regulares Se D[m, n] é marcado antes os estados si e s j serem examinados no
Linguagens
livres de
passo 5, então D[i, j] recebe 1 por uma chamada ao procedimento
contexto DIS T .
Autômatos
com pilha e
GLC’s
Máquinas de
Turing
(532 – 557 de 1593)
Estados equivalentes
LFA 2018/2
H. Longo
Teorema 4.35
Introdução
Fundamentos
Os estados si e s j são não equivalentes se, e somente se, D[i, j] = 1 ao
matemáticos
término do Algoritmo 1.
Alfabetos e
linguagens
Autômatos Demonstração.
finitos
Autômatos finitos
determinísticos
2 si e s j não equivalentes ⇒ D[i, j] = 1.
Operações com DFA’s
Autômatos finitos não
determinísticos Passo: Se si e s j são examinados no passo 8 e D[i, j] , 1, então [i, j] é
Equivalência entre
DFA’s e NFA’s inserido no conjunto S [m, n].
Linguagens e Por H.I., D[m, n] eventualmente recebe 1 por uma chamada a
gramáticas
regulares DIS T (m, n).
Linguagens
livres de
D[i, j] também recebe 1 pela chamada recursiva a DIS T , já que
contexto [i, j] ∈ S [m, n].
Autômatos
com pilha e
GLC’s
Máquinas de
Turing
(533 – 557 de 1593)
Exemplos de Minimização de DFA’s
LFA 2018/2
b a, b
Linguagens e a
gramáticas s4 s5
regulares a
Linguagens b
livres de
contexto s6
Autômatos
com pilha e
GLC’s b
Máquinas de
Turing
(534 – 557 de 1593)
Exemplos de Minimização de DFA’s
LFA 2018/2
Autômatos
finitos
Autômatos finitos
determinísticos
Operações com DFA’s
Autômatos finitos não
determinísticos
Equivalência entre
DFA’s e NFA’s
Linguagens e
gramáticas
regulares
Linguagens
livres de
contexto
Autômatos
com pilha e
GLC’s
Máquinas de
Turing
(535 – 557 de 1593)
Exemplos de Minimização de DFA’s
LFA 2018/2
Alfabetos e
linguagens {s2 , s5 }
a a, b a, b
Autômatos a, b
finitos s0 {s1 , s4 } s7
Autômatos finitos
determinísticos b a
Operações com DFA’s {s3 , s6 }
Autômatos finitos não
determinísticos
Equivalência entre
DFA’s e NFA’s
b
Linguagens e
gramáticas
regulares
Linguagens
livres de
contexto
Autômatos
com pilha e
GLC’s
Máquinas de
Turing
(537 – 557 de 1593)
Exemplos de Minimização de DFA’s
LFA 2018/2
H. Longo
Introdução
Exemplo 4.37
Fundamentos
matemáticos
L(M1 ) = a(a ∪ b)∗ ∪ ba(a ∪ b)∗ ∪ bba(a ∪ b)∗
Alfabetos e
linguagens b b b
s0 s1 s2 s3
Autômatos
finitos
a, b
Autômatos finitos
determinísticos
a a a
Operações com DFA’s a, b a, b a, b
Autômatos finitos não
determinísticos s4 s5 s6
Equivalência entre
DFA’s e NFA’s
Linguagens e
gramáticas
regulares
Linguagens
livres de
contexto
Autômatos
com pilha e
GLC’s
Máquinas de
Turing
(538 – 557 de 1593)
Exemplos de Minimização de DFA’s
LFA 2018/2
H. Longo
Introdução
Exemplo 4.37
Fundamentos
matemáticos
Índices marcados com 1 no passo 2:
Alfabetos e
linguagens D[0, 4], D[0, 5], D[0, 6], D[1, 4], D[1, 5], D[1, 6], D[2, 4], D[2, 5], D[2, 6], D[3, 4],
Autômatos D[3, 5] e D[3, 6].
finitos
Autômatos finitos
determinísticos
Operações com DFA’s
Autômatos finitos não
determinísticos
Equivalência entre
DFA’s e NFA’s
Linguagens e
gramáticas
regulares
Linguagens
livres de
contexto
Autômatos
com pilha e
GLC’s
Máquinas de
Turing
(539 – 557 de 1593)
Exemplos de Minimização de DFA’s
LFA 2018/2
H. Longo
Introdução
Exemplo 4.37
Fundamentos
matemáticos
Cada índice não marcado recebe 1 no passo 8:
Alfabetos e
linguagens
Índices Ação Motivo
Autômatos 0,1 S [4, 5] = {[0, 1]}
finitos S [1, 2] = {[0, 1]}
Autômatos finitos 0,2 S [4, 6] = {[0, 2]}
determinísticos S [1, 3] = {[0, 2]}
Operações com DFA’s 0,3 D[0, 3] = 1 não equivalente por a
Autômatos finitos não 1,2 S [5, 6] = {[1, 2]}
determinísticos
S [2, 3] = {[1, 2]}
Equivalência entre
DFA’s e NFA’s 1,3 D[1, 3] = 1 não equivalente por a
D[0, 2] = 1 chamada a DIS T (1, 3)
Linguagens e 2,3 D[2, 3] = 1 não equivalente por a
gramáticas D[1, 2] = 1 chamada a DIS T (1, 2)
regulares D[0, 1] = 1 chamada a DIS T (0, 1)
4,5
Linguagens 4,6
livres de 5,6
contexto
Autômatos
com pilha e
GLC’s
Máquinas de
Turing
(540 – 557 de 1593)
Exemplos de Minimização de DFA’s
LFA 2018/2
H. Longo
Introdução
Exemplo 4.37
Fundamentos
matemáticos
Após todos os pares de índices serem examinados, apenas os pares de
Alfabetos e
linguagens estados [4, 5], [4, 6] e [5, 6] são equivalentes:
Autômatos b b b
finitos s0 s1 s2 s3
Autômatos finitos
determinísticos
Operações com DFA’s a a a a, b
Autômatos finitos não
determinísticos
Equivalência entre
DFA’s e NFA’s {s4 , s5 , s6 }
Linguagens e
gramáticas a, b
regulares
Linguagens
livres de
contexto
Autômatos
com pilha e
GLC’s
Máquinas de
Turing
(541 – 557 de 1593)
Exemplos de Minimização de DFA’s
LFA 2018/2
Exemplo 4.38
H. Longo
L(M1 ) =???
Introdução
a
Fundamentos
matemáticos b
Alfabetos e
b a
linguagens
s1 s0 s5 s4 s7 s6
a b b a a
Autômatos
finitos
Autômatos finitos a
determinísticos
a b
Operações com DFA’s b b
Autômatos finitos não
determinísticos
Equivalência entre
s2 s3
DFA’s e NFA’s a
Linguagens e
b
gramáticas
regulares
Linguagens
livres de
contexto
Autômatos
com pilha e
GLC’s
Máquinas de
Turing
(542 – 557 de 1593)
Exemplos de Minimização de DFA’s
LFA 2018/2
Exemplo 4.38
H. Longo
1 Construir uma matriz triangular superior para pares de estados do autômato.
Introdução
Os pares de estados (si , s j ) e (s j , si ) são representados na mesma posição da
matriz (D[i, j] se i < j ou D[ j, i] se j < i).
Fundamentos
matemáticos
Autômatos
finitos
Autômatos finitos
determinísticos
Operações com DFA’s
Autômatos finitos não
determinísticos
Equivalência entre
DFA’s e NFA’s
Linguagens e
gramáticas
regulares
Linguagens
livres de
contexto
Autômatos
com pilha e
GLC’s
Máquinas de
Turing
(543 – 557 de 1593)
Exemplos de Minimização de DFA’s
LFA 2018/2
Exemplo 4.38
H. Longo
2 Marcar com um "1" toda posição [i, j], com i < j, onde si é um estado final e
Introdução s j não é final, ou vice-versa.
Fundamentos
matemáticos
s1 s2 s3 s4 s5 s6 s7
Alfabetos e s0 1
linguagens
s1 1
Autômatos
finitos
s2 1 1 1 1 1
Autômatos finitos s3
determinísticos
Operações com DFA’s s4
Autômatos finitos não
determinísticos s5
Equivalência entre
DFA’s e NFA’s
s6
Linguagens e
gramáticas
regulares
Linguagens
livres de
contexto
Autômatos
com pilha e
GLC’s
Máquinas de
Turing
(544 – 557 de 1593)
Exemplos de Minimização de DFA’s
LFA 2018/2
Exemplo 4.38
H. Longo
3 Criar uma lista vazia de pares de estados para cada posição não marcada na
Introdução
matriz.
Fundamentos
matemáticos 4 Para cada posição [i, j] não marcada, verificar se a posição [δ(si , a), δ(s j , a)]
Alfabetos e está marcada para algum símbolo a ∈ Σ.
linguagens
Em caso positivo, marcar a posição [i, j].
Autômatos
finitos Em caso negativo, adicionar [i, j] às listas associadas às posições
Autômatos finitos
determinísticos [δ(si , a), δ(s j , a)], com a ∈ Σ.
Operações com DFA’s
Autômatos finitos não
determinísticos
[δ(s0 , a), δ(s1 , a)] = [s1 , s6 ] ⇒ não marcada; e
Equivalência entre
DFA’s e NFA’s
[δ(s0 , b), δ(s1 , b)] = [s5 , s2 ] ⇒ marcada.
Linguagens e Conclusão: marcar também [s0 , s1 ].
gramáticas
regulares
Linguagens
livres de
contexto
Autômatos
com pilha e
GLC’s
Máquinas de
Turing
(545 – 557 de 1593)
Exemplos de Minimização de DFA’s
LFA 2018/2
Exemplo 4.38
H. Longo
5 Quando a posição [i, j] for marcada, marcar também todas as posições na
Introdução lista de [i, j].
Fundamentos s1 s2 s3 s4 s5 s6 s7
matemáticos
s0 1 1 1 1 1 1
Alfabetos e
linguagens
s1 1 1 1 1 1
s2 1 1 1 1 1
Autômatos
finitos s3 1 1 1
Autômatos finitos
determinísticos
s4 1 1 1
Operações com DFA’s s5 1 1
Autômatos finitos não
determinísticos s6 1
Equivalência entre
DFA’s e NFA’s
Linguagens e
gramáticas
regulares
Linguagens
livres de
contexto
Autômatos
com pilha e
GLC’s
Máquinas de
Turing
(546 – 557 de 1593)
Exemplos de Minimização de DFA’s
LFA 2018/2
Exemplo 4.38
H. Longo
6 Colapsar os pares de estados que não foram marcados.
Introdução
Fundamentos
7 Eliminar estados não alcançáveis.
matemáticos
a
Alfabetos e
linguagens
b
b a
Autômatos
finitos s1 s0 s5 s4 s7 s6
Autômatos finitos a b b a a
determinísticos
Operações com DFA’s
Autômatos finitos não
a
determinísticos
a b
Equivalência entre
b b
DFA’s e NFA’s
Linguagens e s2 s3
gramáticas a
regulares
b
Linguagens
livres de
contexto
Autômatos
com pilha e
GLC’s
Máquinas de
Turing
(547 – 557 de 1593)
Exemplos de Minimização de DFA’s
LFA 2018/2
Exemplo 4.38
H. Longo
a b
Introdução
Fundamentos {s0 , s4 } a
{s1 , s7 } s2
matemáticos b
Alfabetos e
linguagens
a a
Autômatos b
finitos
Autômatos finitos
determinísticos b
Operações com DFA’s
b
s6 {s3 , s5 }
Autômatos finitos não
determinísticos
Equivalência entre a
DFA’s e NFA’s
Linguagens e
gramáticas
regulares
Linguagens
livres de
contexto
Autômatos
com pilha e
GLC’s
Máquinas de
Turing
(548 – 557 de 1593)
Minimização de DFA’s – II
LFA 2018/2
H. Longo
Introdução
Fundamentos
matemáticos Dado um DFA M = hΣ, S , s0 , δ, Fi, é possível construir a partir de M um DFA
Alfabetos e
linguagens
M 0 = hΣ, S 0 , s00 , δ0 , F 0 i, com número mínimo de estados, que também
reconheça a linguagem L(M):
Autômatos
finitos 1 Particionar o conjunto S de estados em dois subconjuntos. Um conjunto com
Autômatos finitos
determinísticos todos os estados de aceitação e o outro com estados de não aceitação.
Operações com DFA’s
Autômatos finitos não
2 Iterativamente, particionar cada subconjunto da partição corrente: se dois
determinísticos
Equivalência entre estados de um conjunto forem não equivalentes, dividir esse subconjunto.
DFA’s e NFA’s
3 Mesclar todos os estados de um conjunto em um novo estado. O número de
Linguagens e
gramáticas estados no DFA minimizado é igual ao número de subconjuntos na última
regulares
partição do conjunto S .
Linguagens
livres de
contexto
Autômatos
com pilha e
GLC’s
Máquinas de
Turing
(549 – 557 de 1593)
Minimização de DFA’s – II
LFA 2018/2
H. Longo
Alfabetos e
Entrada: DFA M = hΣ, S , s0 , δ, Fi.
linguagens Saída: Partição P de S .
Autômatos 1 P0 ← {F, S − F};
finitos
Autômatos finitos 2 k ← 1;
determinísticos
Operações com DFA’s
3 P1 ← ∅;
Autômatos finitos não
determinísticos 4 enquanto (Pk , Pk−1 ) faça
Equivalência entre 5 T ← ∅;
DFA’s e NFA’s
6 para todo p ∈ Pk faça
Linguagens e
7 T ← T ∪ Particione(p);
gramáticas
regulares
8 k ← k + 1;
Linguagens 9 Pk ← T ;
livres de
contexto
10 retorna Pk .
Autômatos
com pilha e
GLC’s
Máquinas de
Turing
(550 – 557 de 1593)
Minimização de DFA’s – II
LFA 2018/2
H. Longo
Algoritmo 4: Particione(P)
Introdução
// Particiona o conjunto P em subconjuntos de estados equivalentes
Fundamentos
matemáticos Entrada: Subconjunto p de uma partição S .
Saída: Partionamento de p.
Alfabetos e
linguagens
1 para todo (a ∈ Σ) faça
Autômatos 2 se a particiona p em p1 e p2 então
finitos
Autômatos finitos
3 retorna p1 , p2
determinísticos
Operações com DFA’s
Autômatos finitos não 4 retorna p
determinísticos
Equivalência entre
DFA’s e NFA’s
Linguagens e
gramáticas
regulares
Linguagens
livres de
contexto
Autômatos
com pilha e
GLC’s
Máquinas de
Turing
(551 – 557 de 1593)
Minimização de DFA’s – II
LFA 2018/2
H. Longo
Algoritmo 5: Particione(P)
Introdução
// Particiona o conjunto P em subconjuntos de estados equivalentes
Fundamentos
matemáticos Entrada: Subconjunto p de uma partição S .
Saída: Partionamento de p.
Alfabetos e
linguagens
1 para todo (a ∈ Σ) faça
Autômatos 2 se a particiona p em p1 e p2 então
finitos
Autômatos finitos
3 retorna p1 , p2
determinísticos
Operações com DFA’s
Autômatos finitos não 4 retorna p
determinísticos
Equivalência entre
DFA’s e NFA’s
Linguagens e
gramáticas
Linha 2 do Algoritmo 4
regulares
Dados dois estados si , s j ∈ p (p ∈ P), um símbolo a ∈ Σ particiona p, se:
Linguagens
livres de 1 δ(si , a) = sm ,
contexto
2 δ(s j , a) = sn ,
sm ∈ pk , sn ∈ p` e k , `
Autômatos
3
com pilha e
GLC’s
( sm e sn pertencem a subconjuntos diferentes da partição P).
Máquinas de
Turing
(552 – 557 de 1593)
Exemplos de Minimização de DFA’s
LFA 2018/2
H. Longo
Exemplo 4.39
M = hΣ = {a, b}, S = {s0 , s1 , s2 , s3 , s4 , s5 }, s0 , δ, F = {s1 , s3 , s4 }i.
Introdução
Alfabetos e b
linguagens a
a, b
Autômatos b a b
finitos M: s0 s1 s3 s5
Autômatos finitos
determinísticos
Operações com DFA’s
Autômatos finitos não
determinísticos
a a
Equivalência entre b
DFA’s e NFA’s a
Linguagens e b
gramáticas s2 s4
regulares
Linguagens
livres de
contexto
Autômatos
com pilha e
GLC’s
Máquinas de
Turing
(553 – 557 de 1593)
Exemplos de Minimização de DFA’s
LFA 2018/2
H. Longo
Exemplo 4.39
L(M) = a∗ ba∗ !!!
Introdução
Alfabetos e
linguagens
Autômatos
finitos
Autômatos finitos
determinísticos
Operações com DFA’s
Autômatos finitos não
determinísticos
Equivalência entre
DFA’s e NFA’s
Linguagens e
gramáticas
regulares
Linguagens
livres de
contexto
Autômatos
com pilha e
GLC’s
Máquinas de
Turing
(554 – 557 de 1593)
Exemplos de Minimização de DFA’s
LFA 2018/2
H. Longo
Exemplo 4.39
Para calcular P1 , deve-se verificar se os subconjuntos de P0 podem ser
Introdução
Fundamentos
particionados.
matemáticos p01 = {s1 , s3 , s4 }:
Alfabetos e
linguagens δ(s1 , a) = δ(s3 , a) = s3 e δ(s1 , b) = δ(s3 , b) = s5 ⇒ s1 e s3 são equivalentes.
Autômatos
δ(s1 , a) = δ(s4 , s) = s3 e δ(s1 , b) = δ(s4 , b) = s5 ⇒ s1 e s4 são equivalentes.
finitos Como os pares (s1 , s3 ) e (s1 , s4 ) são equivalentes, então (s3 , s4 ) também são
equivalentes. Logo, p01 não será particionado em P1 , ou seja, p11 = p01 .
Autômatos finitos
determinísticos
Operações com DFA’s
Autômatos finitos não
determinísticos p02 = {s0 , s2 , s5 }:
Equivalência entre
DFA’s e NFA’s
δ(s0 , a) = s2 e δ(s2 , a) = s0 ( s0 , s2 ∈ p02 ); δ(s0 , b) = s1 e δ(s2 , b) = s4
Linguagens e ( s1 , s4 ∈ p01 ) ⇒ s0 e s2 são equivalentes.
gramáticas
regulares δ(s0 , a) = s2 e δ(s5 , a) = s5 ( s2 , s5 ∈ p02 ); δ(s0 , b) = s1 e δ(s5 , b) = s5 ( s1 ∈ p01 e
Linguagens s5 ∈ p02 ) ⇒ s0 e s5 não são equivalentes.
livres de
contexto Como (s0 , s2 ) são equivalentes e (s0 , s5 ) não são equivalentes, então (s2 , s5 )
Autômatos também não são equivalentes. Logo, p02 será particionado em p12 = {s0 , s2 } e
com pilha e
GLC’s
p13 = {s5 }.
Máquinas de P1 = {p11 = {s1 , s3 , s4 }, p12 = {s0 , s2 }, p13 = {s5 }}.
Turing
(555 – 557 de 1593)
Exemplos de Minimização de DFA’s
LFA 2018/2
H. Longo
Exemplo 4.39
Para calcular P2 , deve-se verificar se os subconjuntos de P1 podem ser
Introdução
Fundamentos
particionados.
matemáticos p11 = {s1 , s3 , s4 }:
Alfabetos e
linguagens Como os pares (s1 , s3 ) e (s1 , s4 ) são equivalentes, então (s3 , s4 ) também são
Autômatos
equivalentes (argumentação idêntica à usada para o subconjunto p01 ). Logo, p11
finitos não será particionado em P1 , ou seja, p21 = p11 .
Autômatos finitos
p12 = {s0 , s2 }:
determinísticos
Operações com DFA’s
Autômatos finitos não
determinísticos
Equivalência entre
δ(s0 , a) = s2 e δ(s2 , a) = s0 ( s0 , s2 ∈ p12 ); δ(s0 , b) = s1 e δ(s2 , b) = s4
DFA’s e NFA’s
( s1 , s4 ∈ p11 ) ⇒ s0 e s2 são equivalentes.
Linguagens e Logo, p12 não será particionado em P2 , ou seja, p22 = p12 .
gramáticas
regulares
p13 = {s5 }:
Linguagens
livres de Como há apenas um estado nesse conjunto, ele não pode ser mais
contexto
particionado, ou seja, p23 = p13 .
Autômatos
com pilha e P2 = {p21 = {s1 , s3 , s4 }, p22 = {s0 , s2 }, p23 = {s5 }} = P1 .
GLC’s
Máquinas de
Turing
(556 – 557 de 1593)
Exemplos de Minimização de DFA’s
LFA 2018/2
H. Longo
Exemplo 4.39
Dado que P1 = P2 , esta é a partição final.
Introdução
Linguagens e
gramáticas
regulares
Linguagens
livres de
contexto
Autômatos
com pilha e
GLC’s
Máquinas de
Turing
(557 – 557 de 1593)
LFA 2018/2
H. Longo
Introdução
Fundamentos
matemáticos
Alfabetos e
linguagens
Linguagens e
gramáticas
regulares
Linguagens
livres de
contexto
Autômatos
com pilha e
GLC’s
Máquinas de
Turing
(558 – 610 de 1593)
Autômato Finito Não Determinístico
LFA 2018/2
H. Longo
Introdução
Fundamentos
matemáticos
Definição 4.40
Alfabetos e
linguagens Um Autômato Finito Não Determinístico (NFA – Nondeterministic Finite
Autômatos
finitos
Automaton) é uma quíntupla N = hΣ, S , s0 , δ, Fi, onde:
Autômatos finitos
determinísticos Σ : alfabeto de entrada;
Operações com DFA’s
Autômatos finitos não S , ∅ : conjunto finito de estados do modelo;
determinísticos
Equivalência entre
DFA’s e NFA’s
s0 ∈ S : estado inicial;
Linguagens e
δ : S × Σ → P(S ) : função de transição de estados;
gramáticas
regulares
F ⊆ S : conjunto de estados finais (ou de aceitação).
Linguagens
livres de
contexto
Autômatos
com pilha e
GLC’s
Máquinas de
Turing
(559 – 610 de 1593)
Autômato Finito Não Determinístico
LFA 2018/2
H. Longo
Introdução
Alfabetos e
a sj
linguagens
Autômatos
finitos
Autômatos finitos
a
determinísticos
Operações com DFA’s
si sk
Autômatos finitos não
determinísticos
Equivalência entre
DFA’s e NFA’s
a sj a
Linguagens e si si s`
gramáticas
regulares
δ(si , a) = {s j , sk , s` }
Linguagens δ(si , a) = ∅ δ(si , a) = {s j }
livres de
contexto
Autômatos
com pilha e
GLC’s
Máquinas de
Turing
(560 – 610 de 1593)
Linguagem de um NFA
LFA 2018/2
H. Longo
Introdução
Fundamentos
matemáticos
Alfabetos e
linguagens Definição 4.42
Autômatos
finitos
A linguagem L(N) de um NFA N = hΣ, S , s0 , δ, Fi é o conjunto de cadeias em
Autômatos finitos
determinísticos
Σ∗ aceitas por N .
Operações com DFA’s
Autômatos finitos não
determinísticos
∗
Equivalência entre
DFA’s e NFA’s Dado o NFA N = hΣ, S , s0 , δ, Fi, então L(N) = {w | [s0 , w] 7−→[si , ε] com si ∈ F}.
Linguagens e
gramáticas
regulares
Linguagens
livres de
contexto
Autômatos
com pilha e
GLC’s
Máquinas de
Turing
(561 – 610 de 1593)
Diagrama de estados
LFA 2018/2
H. Longo
Introdução
Fundamentos
matemáticos
Alfabetos e
Definição 4.43
O diagrama de estados de um NFA N = hΣ, S , s0 , δ, Fi é um grafo G, orientado
linguagens
Autômatos
finitos e rotulado, definido pelas condições:
Autômatos finitos
determinísticos
1 os vértices de G são os elementos de S ;
Operações com DFA’s
Autômatos finitos não
2 os rótulos dos arcos de G são os elementos de Σ;
determinísticos
Equivalência entre
3 s0 é o vértice inicial;
DFA’s e NFA’s
4 F é o conjunto de vértices finais;
Linguagens e
gramáticas
5 existe um arco, rotulado de a, do vértice si ao s j se s j ∈ δ(si , a).
regulares
Linguagens
livres de
contexto
Autômatos
com pilha e
GLC’s
Máquinas de
Turing
(562 – 610 de 1593)
Processamento em um NFA
LFA 2018/2
H. Longo
Introdução
Fundamentos
matemáticos
Alfabetos e
linguagens
Uma cadeia w é aceita por um NFA N = hΣ, S , s0 , δ, Fi, se w determina pelo
menos um caminho pw no diagrama de estados de N tal que δ(s0 , w) ∈ F .
Autômatos
finitos
Autômatos finitos
determinísticos
Operações com DFA’s
Autômatos finitos não
determinísticos
Equivalência entre
DFA’s e NFA’s
Linguagens e
gramáticas
regulares
Linguagens
livres de
contexto
Autômatos
com pilha e
GLC’s
Máquinas de
Turing
(563 – 610 de 1593)
Processamento em um NFA
LFA 2018/2
H. Longo
Introdução
Fundamentos
matemáticos
Alfabetos e
linguagens
Uma cadeia w é aceita por um NFA N = hΣ, S , s0 , δ, Fi, se w determina pelo
menos um caminho pw no diagrama de estados de N tal que δ(s0 , w) ∈ F .
Autômatos
finitos
Autômatos finitos
determinísticos Uma cadeia pertence à linguagem de um NFA se existe um processamento
Operações com DFA’s
Autômatos finitos não que a aceita.
determinísticos
Equivalência entre
DFA’s e NFA’s
A existência de outros processamentos que não a aceitam é irrelevante!
Linguagens e
gramáticas
regulares
Linguagens
livres de
contexto
Autômatos
com pilha e
GLC’s
Máquinas de
Turing
(564 – 610 de 1593)
Exemplos de NFA’s
LFA 2018/2
H. Longo
Introdução
Exemplo 4.44
Fundamentos δ a b
matemáticos
s0 {s0 } {s0 , s1 }
Alfabetos e N1 = h{a, b}, {s0 , s1 , s2 }, s0 , δ, {s2 }i, onde:
linguagens s1 ∅ {s2 }
Autômatos
s2 ∅ ∅
finitos
Autômatos finitos
determinísticos
Operações com DFA’s
Autômatos finitos não
determinísticos
Equivalência entre
DFA’s e NFA’s
Linguagens e
gramáticas
regulares
Linguagens
livres de
contexto
Autômatos
com pilha e
GLC’s
Máquinas de
Turing
(565 – 610 de 1593)
Exemplos de NFA’s
LFA 2018/2
H. Longo
Introdução
Exemplo 4.44
Fundamentos δ a b
matemáticos
s0 {s0 } {s0 , s1 }
Alfabetos e N1 = h{a, b}, {s0 , s1 , s2 }, s0 , δ, {s2 }i, onde:
linguagens s1 ∅ {s2 }
Autômatos
s2 ∅ ∅
finitos
Autômatos finitos
L(N1 ) = (a ∪ b)∗ bb
determinísticos
Operações com DFA’s
Autômatos finitos não
determinísticos
Equivalência entre
DFA’s e NFA’s
Linguagens e
gramáticas
regulares
Linguagens
livres de
contexto
Autômatos
com pilha e
GLC’s
Máquinas de
Turing
(566 – 610 de 1593)
Exemplos de NFA’s
LFA 2018/2
H. Longo
Introdução
Exemplo 4.44
Fundamentos δ a b
matemáticos
s0 {s0 } {s0 , s1 }
Alfabetos e N1 = h{a, b}, {s0 , s1 , s2 }, s0 , δ, {s2 }i, onde:
linguagens s1 ∅ {s2 }
Autômatos
s2 ∅ ∅
finitos
Autômatos finitos
L(N1 ) = (a ∪ b)∗ bb
determinísticos
Operações com DFA’s
a, b
Autômatos finitos não
determinísticos
b b
Equivalência entre
DFA’s e NFA’s
N1 : s0 s1 s2
Linguagens e
gramáticas
regulares
Linguagens
livres de
contexto
Autômatos
com pilha e
GLC’s
Máquinas de
Turing
(567 – 610 de 1593)
Exemplos de NFA’s
LFA 2018/2
H. Longo
Introdução
Exemplo 4.44
Fundamentos δ a b
matemáticos
s0 {s0 } {s0 , s1 }
Alfabetos e N1 = h{a, b}, {s0 , s1 , s2 }, s0 , δ, {s2 }i, onde:
linguagens s1 ∅ {s2 }
Autômatos
s2 ∅ ∅
finitos
Autômatos finitos
L(N1 ) = (a ∪ b)∗ bb
determinísticos
Operações com DFA’s
a, b
Autômatos finitos não
determinísticos
b b
Equivalência entre
DFA’s e NFA’s
N1 : s0 s1 s2
Linguagens e
gramáticas
regulares [s0 , ababb]
Linguagens
livres de
contexto
Autômatos
com pilha e
GLC’s
Máquinas de
Turing
(568 – 610 de 1593)
Exemplos de NFA’s
LFA 2018/2
H. Longo
Introdução
Exemplo 4.44
Fundamentos δ a b
matemáticos
s0 {s0 } {s0 , s1 }
Alfabetos e N1 = h{a, b}, {s0 , s1 , s2 }, s0 , δ, {s2 }i, onde:
linguagens s1 ∅ {s2 }
Autômatos
s2 ∅ ∅
finitos
Autômatos finitos
L(N1 ) = (a ∪ b)∗ bb
determinísticos
Operações com DFA’s
a, b
Autômatos finitos não
determinísticos
b b
Equivalência entre
DFA’s e NFA’s
N1 : s0 s1 s2
Linguagens e
gramáticas
regulares [s0 , ababb] 7−→[s0 , babb]
Linguagens
livres de
contexto
Autômatos
com pilha e
GLC’s
Máquinas de
Turing
(569 – 610 de 1593)
Exemplos de NFA’s
LFA 2018/2
H. Longo
Introdução
Exemplo 4.44
Fundamentos δ a b
matemáticos
s0 {s0 } {s0 , s1 }
Alfabetos e N1 = h{a, b}, {s0 , s1 , s2 }, s0 , δ, {s2 }i, onde:
linguagens s1 ∅ {s2 }
Autômatos
s2 ∅ ∅
finitos
Autômatos finitos
L(N1 ) = (a ∪ b)∗ bb
determinísticos
Operações com DFA’s
a, b
Autômatos finitos não
determinísticos
b b
Equivalência entre
DFA’s e NFA’s
N1 : s0 s1 s2
Linguagens e
gramáticas
regulares [s0 , ababb] 7−→[s0 , babb] 7−→[s0 , abb]
Linguagens
livres de
contexto
Autômatos
com pilha e
GLC’s
Máquinas de
Turing
(570 – 610 de 1593)
Exemplos de NFA’s
LFA 2018/2
H. Longo
Introdução
Exemplo 4.44
Fundamentos δ a b
matemáticos
s0 {s0 } {s0 , s1 }
Alfabetos e N1 = h{a, b}, {s0 , s1 , s2 }, s0 , δ, {s2 }i, onde:
linguagens s1 ∅ {s2 }
Autômatos
s2 ∅ ∅
finitos
Autômatos finitos
L(N1 ) = (a ∪ b)∗ bb
determinísticos
Operações com DFA’s
a, b
Autômatos finitos não
determinísticos
b b
Equivalência entre
DFA’s e NFA’s
N1 : s0 s1 s2
Linguagens e
gramáticas
regulares [s0 , ababb] 7−→[s0 , babb] 7−→[s0 , abb] 7−→[s0 , bb]
Linguagens
livres de
contexto
Autômatos
com pilha e
GLC’s
Máquinas de
Turing
(571 – 610 de 1593)
Exemplos de NFA’s
LFA 2018/2
H. Longo
Introdução
Exemplo 4.44
Fundamentos δ a b
matemáticos
s0 {s0 } {s0 , s1 }
Alfabetos e N1 = h{a, b}, {s0 , s1 , s2 }, s0 , δ, {s2 }i, onde:
linguagens s1 ∅ {s2 }
Autômatos
s2 ∅ ∅
finitos
Autômatos finitos
L(N1 ) = (a ∪ b)∗ bb
determinísticos
Operações com DFA’s
a, b
Autômatos finitos não
determinísticos
b b
Equivalência entre
DFA’s e NFA’s
N1 : s0 s1 s2
Linguagens e
gramáticas
regulares [s0 , ababb] 7−→[s0 , babb] 7−→[s0 , abb] 7−→[s0 , bb] 7−→[s0 , b]
Linguagens
livres de
contexto
Autômatos
com pilha e
GLC’s
Máquinas de
Turing
(572 – 610 de 1593)
Exemplos de NFA’s
LFA 2018/2
H. Longo
Introdução
Exemplo 4.44
Fundamentos δ a b
matemáticos
s0 {s0 } {s0 , s1 }
Alfabetos e N1 = h{a, b}, {s0 , s1 , s2 }, s0 , δ, {s2 }i, onde:
linguagens s1 ∅ {s2 }
Autômatos
s2 ∅ ∅
finitos
Autômatos finitos
L(N1 ) = (a ∪ b)∗ bb
determinísticos
Operações com DFA’s
a, b
Autômatos finitos não
determinísticos
b b
Equivalência entre
DFA’s e NFA’s
N1 : s0 s1 s2
Linguagens e
gramáticas
regulares [s0 , ababb] 7−→[s0 , babb] 7−→[s0 , abb] 7−→[s0 , bb] 7−→[s0 , b] 7−→[s0 , ε]
Linguagens
livres de
contexto
Autômatos
com pilha e
GLC’s
Máquinas de
Turing
(573 – 610 de 1593)
Exemplos de NFA’s
LFA 2018/2
H. Longo
Introdução
Exemplo 4.44
Fundamentos δ a b
matemáticos
s0 {s0 } {s0 , s1 }
Alfabetos e N1 = h{a, b}, {s0 , s1 , s2 }, s0 , δ, {s2 }i, onde:
linguagens s1 ∅ {s2 }
Autômatos
s2 ∅ ∅
finitos
Autômatos finitos
L(N1 ) = (a ∪ b)∗ bb
determinísticos
Operações com DFA’s
a, b
Autômatos finitos não
determinísticos
b b
Equivalência entre
DFA’s e NFA’s
N1 : s0 s1 s2
Linguagens e
gramáticas
regulares [s0 , ababb] 7−→[s0 , babb] 7−→[s0 , abb] 7−→[s0 , bb] 7−→[s0 , b] 7−→[s0 , ε] 7−→[s0 ]
Linguagens
livres de
contexto
Autômatos
com pilha e
GLC’s
Máquinas de
Turing
(574 – 610 de 1593)
Exemplos de NFA’s
LFA 2018/2
H. Longo
Introdução
Exemplo 4.44
Fundamentos δ a b
matemáticos
s0 {s0 } {s0 , s1 }
Alfabetos e N1 = h{a, b}, {s0 , s1 , s2 }, s0 , δ, {s2 }i, onde:
linguagens s1 ∅ {s2 }
Autômatos
s2 ∅ ∅
finitos
Autômatos finitos
L(N1 ) = (a ∪ b)∗ bb
determinísticos
Operações com DFA’s
a, b
Autômatos finitos não
determinísticos
b b
Equivalência entre
DFA’s e NFA’s
N1 : s0 s1 s2
Linguagens e
gramáticas
regulares [s0 , ababb] 7−→[s0 , babb] 7−→[s0 , abb] 7−→[s0 , bb] 7−→[s0 , b] 7−→[s0 , ε] 7−→[s0 ]
Linguagens
livres de [s0 , ababb]
contexto
Autômatos
com pilha e
GLC’s
Máquinas de
Turing
(575 – 610 de 1593)
Exemplos de NFA’s
LFA 2018/2
H. Longo
Introdução
Exemplo 4.44
Fundamentos δ a b
matemáticos
s0 {s0 } {s0 , s1 }
Alfabetos e N1 = h{a, b}, {s0 , s1 , s2 }, s0 , δ, {s2 }i, onde:
linguagens s1 ∅ {s2 }
Autômatos
s2 ∅ ∅
finitos
Autômatos finitos
L(N1 ) = (a ∪ b)∗ bb
determinísticos
Operações com DFA’s
a, b
Autômatos finitos não
determinísticos
b b
Equivalência entre
DFA’s e NFA’s
N1 : s0 s1 s2
Linguagens e
gramáticas
regulares [s0 , ababb] 7−→[s0 , babb] 7−→[s0 , abb] 7−→[s0 , bb] 7−→[s0 , b] 7−→[s0 , ε] 7−→[s0 ]
Linguagens
livres de [s0 , ababb] 7−→[s0 , babb]
contexto
Autômatos
com pilha e
GLC’s
Máquinas de
Turing
(576 – 610 de 1593)
Exemplos de NFA’s
LFA 2018/2
H. Longo
Introdução
Exemplo 4.44
Fundamentos δ a b
matemáticos
s0 {s0 } {s0 , s1 }
Alfabetos e N1 = h{a, b}, {s0 , s1 , s2 }, s0 , δ, {s2 }i, onde:
linguagens s1 ∅ {s2 }
Autômatos
s2 ∅ ∅
finitos
Autômatos finitos
L(N1 ) = (a ∪ b)∗ bb
determinísticos
Operações com DFA’s
a, b
Autômatos finitos não
determinísticos
b b
Equivalência entre
DFA’s e NFA’s
N1 : s0 s1 s2
Linguagens e
gramáticas
regulares [s0 , ababb] 7−→[s0 , babb] 7−→[s0 , abb] 7−→[s0 , bb] 7−→[s0 , b] 7−→[s0 , ε] 7−→[s0 ]
Linguagens
livres de [s0 , ababb] 7−→[s0 , babb] 7−→[s1 , abb]
contexto
Autômatos
com pilha e
GLC’s
Máquinas de
Turing
(577 – 610 de 1593)
Exemplos de NFA’s
LFA 2018/2
H. Longo
Introdução
Exemplo 4.44
Fundamentos δ a b
matemáticos
s0 {s0 } {s0 , s1 }
Alfabetos e N1 = h{a, b}, {s0 , s1 , s2 }, s0 , δ, {s2 }i, onde:
linguagens s1 ∅ {s2 }
Autômatos
s2 ∅ ∅
finitos
Autômatos finitos
L(N1 ) = (a ∪ b)∗ bb
determinísticos
Operações com DFA’s
a, b
Autômatos finitos não
determinísticos
b b
Equivalência entre
DFA’s e NFA’s
N1 : s0 s1 s2
Linguagens e
gramáticas
regulares [s0 , ababb] 7−→[s0 , babb] 7−→[s0 , abb] 7−→[s0 , bb] 7−→[s0 , b] 7−→[s0 , ε] 7−→[s0 ]
Linguagens
livres de [s0 , ababb] 7−→[s0 , babb] 7−→[s1 , abb]
contexto
Autômatos
com pilha e
GLC’s
Máquinas de
Turing
(578 – 610 de 1593)
Exemplos de NFA’s
LFA 2018/2
H. Longo
Introdução
Exemplo 4.44
Fundamentos δ a b
matemáticos
s0 {s0 } {s0 , s1 }
Alfabetos e N1 = h{a, b}, {s0 , s1 , s2 }, s0 , δ, {s2 }i, onde:
linguagens s1 ∅ {s2 }
Autômatos
s2 ∅ ∅
finitos
Autômatos finitos
L(N1 ) = (a ∪ b)∗ bb
determinísticos
Operações com DFA’s
a, b
Autômatos finitos não
determinísticos
b b
Equivalência entre
DFA’s e NFA’s
N1 : s0 s1 s2
Linguagens e
gramáticas
regulares [s0 , ababb] 7−→[s0 , babb] 7−→[s0 , abb] 7−→[s0 , bb] 7−→[s0 , b] 7−→[s0 , ε] 7−→[s0 ]
Linguagens
livres de [s0 , ababb] 7−→[s0 , babb] 7−→[s1 , abb]
contexto
Autômatos
com pilha e
GLC’s
Máquinas de
Turing
(579 – 610 de 1593)
Exemplos de NFA’s
LFA 2018/2
H. Longo
Introdução
Exemplo 4.44
Fundamentos δ a b
matemáticos
s0 {s0 } {s0 , s1 }
Alfabetos e N1 = h{a, b}, {s0 , s1 , s2 }, s0 , δ, {s2 }i, onde:
linguagens s1 ∅ {s2 }
Autômatos
s2 ∅ ∅
finitos
Autômatos finitos
L(N1 ) = (a ∪ b)∗ bb
determinísticos
Operações com DFA’s
a, b
Autômatos finitos não
determinísticos
b b
Equivalência entre
DFA’s e NFA’s
N1 : s0 s1 s2
Linguagens e
gramáticas
regulares [s0 , ababb] 7−→[s0 , babb] 7−→[s0 , abb] 7−→[s0 , bb] 7−→[s0 , b] 7−→[s0 , ε] 7−→[s0 ]
Linguagens
livres de [s0 , ababb] 7−→[s0 , babb] 7−→[s1 , abb]
contexto
Autômatos
[s0 , ababb]
com pilha e
GLC’s
Máquinas de
Turing
(580 – 610 de 1593)
Exemplos de NFA’s
LFA 2018/2
H. Longo
Introdução
Exemplo 4.44
Fundamentos δ a b
matemáticos
s0 {s0 } {s0 , s1 }
Alfabetos e N1 = h{a, b}, {s0 , s1 , s2 }, s0 , δ, {s2 }i, onde:
linguagens s1 ∅ {s2 }
Autômatos
s2 ∅ ∅
finitos
Autômatos finitos
L(N1 ) = (a ∪ b)∗ bb
determinísticos
Operações com DFA’s
a, b
Autômatos finitos não
determinísticos
b b
Equivalência entre
DFA’s e NFA’s
N1 : s0 s1 s2
Linguagens e
gramáticas
regulares [s0 , ababb] 7−→[s0 , babb] 7−→[s0 , abb] 7−→[s0 , bb] 7−→[s0 , b] 7−→[s0 , ε] 7−→[s0 ]
Linguagens
livres de [s0 , ababb] 7−→[s0 , babb] 7−→[s1 , abb]
contexto
Autômatos
[s0 , ababb] 7−→[s0 , babb]
com pilha e
GLC’s
Máquinas de
Turing
(581 – 610 de 1593)
Exemplos de NFA’s
LFA 2018/2
H. Longo
Introdução
Exemplo 4.44
Fundamentos δ a b
matemáticos
s0 {s0 } {s0 , s1 }
Alfabetos e N1 = h{a, b}, {s0 , s1 , s2 }, s0 , δ, {s2 }i, onde:
linguagens s1 ∅ {s2 }
Autômatos
s2 ∅ ∅
finitos
Autômatos finitos
L(N1 ) = (a ∪ b)∗ bb
determinísticos
Operações com DFA’s
a, b
Autômatos finitos não
determinísticos
b b
Equivalência entre
DFA’s e NFA’s
N1 : s0 s1 s2
Linguagens e
gramáticas
regulares [s0 , ababb] 7−→[s0 , babb] 7−→[s0 , abb] 7−→[s0 , bb] 7−→[s0 , b] 7−→[s0 , ε] 7−→[s0 ]
Linguagens
livres de [s0 , ababb] 7−→[s0 , babb] 7−→[s1 , abb]
contexto
Autômatos
[s0 , ababb] 7−→[s0 , babb] 7−→[s0 , abb]
com pilha e
GLC’s
Máquinas de
Turing
(582 – 610 de 1593)
Exemplos de NFA’s
LFA 2018/2
H. Longo
Introdução
Exemplo 4.44
Fundamentos δ a b
matemáticos
s0 {s0 } {s0 , s1 }
Alfabetos e N1 = h{a, b}, {s0 , s1 , s2 }, s0 , δ, {s2 }i, onde:
linguagens s1 ∅ {s2 }
Autômatos
s2 ∅ ∅
finitos
Autômatos finitos
L(N1 ) = (a ∪ b)∗ bb
determinísticos
Operações com DFA’s
a, b
Autômatos finitos não
determinísticos
b b
Equivalência entre
DFA’s e NFA’s
N1 : s0 s1 s2
Linguagens e
gramáticas
regulares [s0 , ababb] 7−→[s0 , babb] 7−→[s0 , abb] 7−→[s0 , bb] 7−→[s0 , b] 7−→[s0 , ε] 7−→[s0 ]
Linguagens
livres de [s0 , ababb] 7−→[s0 , babb] 7−→[s1 , abb]
contexto
Autômatos
[s0 , ababb] 7−→[s0 , babb] 7−→[s0 , abb] 7−→[s0 , bb]
com pilha e
GLC’s
Máquinas de
Turing
(583 – 610 de 1593)
Exemplos de NFA’s
LFA 2018/2
H. Longo
Introdução
Exemplo 4.44
Fundamentos δ a b
matemáticos
s0 {s0 } {s0 , s1 }
Alfabetos e N1 = h{a, b}, {s0 , s1 , s2 }, s0 , δ, {s2 }i, onde:
linguagens s1 ∅ {s2 }
Autômatos
s2 ∅ ∅
finitos
Autômatos finitos
L(N1 ) = (a ∪ b)∗ bb
determinísticos
Operações com DFA’s
a, b
Autômatos finitos não
determinísticos
b b
Equivalência entre
DFA’s e NFA’s
N1 : s0 s1 s2
Linguagens e
gramáticas
regulares [s0 , ababb] 7−→[s0 , babb] 7−→[s0 , abb] 7−→[s0 , bb] 7−→[s0 , b] 7−→[s0 , ε] 7−→[s0 ]
Linguagens
livres de [s0 , ababb] 7−→[s0 , babb] 7−→[s1 , abb]
contexto
Autômatos
[s0 , ababb] 7−→[s0 , babb] 7−→[s0 , abb] 7−→[s0 , bb] 7−→[s1 , b]
com pilha e
GLC’s
Máquinas de
Turing
(584 – 610 de 1593)
Exemplos de NFA’s
LFA 2018/2
H. Longo
Introdução
Exemplo 4.44
Fundamentos δ a b
matemáticos
s0 {s0 } {s0 , s1 }
Alfabetos e N1 = h{a, b}, {s0 , s1 , s2 }, s0 , δ, {s2 }i, onde:
linguagens s1 ∅ {s2 }
Autômatos
s2 ∅ ∅
finitos
Autômatos finitos
L(N1 ) = (a ∪ b)∗ bb
determinísticos
Operações com DFA’s
a, b
Autômatos finitos não
determinísticos
b b
Equivalência entre
DFA’s e NFA’s
N1 : s0 s1 s2
Linguagens e
gramáticas
regulares [s0 , ababb] 7−→[s0 , babb] 7−→[s0 , abb] 7−→[s0 , bb] 7−→[s0 , b] 7−→[s0 , ε] 7−→[s0 ]
Linguagens
livres de [s0 , ababb] 7−→[s0 , babb] 7−→[s1 , abb]
contexto
Autômatos
[s0 , ababb] 7−→[s0 , babb] 7−→[s0 , abb] 7−→[s0 , bb] 7−→[s1 , b] 7−→[s2 , ε]
com pilha e
GLC’s
Máquinas de
Turing
(585 – 610 de 1593)
Exemplos de NFA’s
LFA 2018/2
H. Longo
Introdução
Exemplo 4.44
Fundamentos δ a b
matemáticos
s0 {s0 } {s0 , s1 }
Alfabetos e N1 = h{a, b}, {s0 , s1 , s2 }, s0 , δ, {s2 }i, onde:
linguagens s1 ∅ {s2 }
Autômatos
s2 ∅ ∅
finitos
Autômatos finitos
L(N1 ) = (a ∪ b)∗ bb
determinísticos
Operações com DFA’s
a, b
Autômatos finitos não
determinísticos
b b
Equivalência entre
DFA’s e NFA’s
N1 : s0 s1 s2
Linguagens e
gramáticas
regulares [s0 , ababb] 7−→[s0 , babb] 7−→[s0 , abb] 7−→[s0 , bb] 7−→[s0 , b] 7−→[s0 , ε] 7−→[s0 ]
Linguagens
livres de [s0 , ababb] 7−→[s0 , babb] 7−→[s1 , abb]
contexto
Autômatos
[s0 , ababb] 7−→[s0 , babb] 7−→[s0 , abb] 7−→[s0 , bb] 7−→[s1 , b] 7−→[s2 , ε] 7−→[s2 ]
com pilha e
GLC’s
Máquinas de
Turing
(586 – 610 de 1593)
Exemplos de NFA’s
LFA 2018/2
H. Longo
Exemplo 4.45
Introdução
L(N2 ) = (a ∪ ba)∗ bb(a ∪ b)∗ .
Fundamentos
matemáticos
Alfabetos e
linguagens
Autômatos
finitos
Autômatos finitos
determinísticos
Operações com DFA’s
Autômatos finitos não
determinísticos
Equivalência entre
DFA’s e NFA’s
Linguagens e
gramáticas
regulares
Linguagens
livres de
contexto
Autômatos
com pilha e
GLC’s
Máquinas de
Turing
(587 – 610 de 1593)
Exemplos de NFA’s
LFA 2018/2
H. Longo
Exemplo 4.45
Introdução
L(N2 ) = (a ∪ ba)∗ bb(a ∪ b)∗ .
Fundamentos
matemáticos
a a, b
Alfabetos e b
linguagens
b
Autômatos M1 : s0 s1 s2
finitos
Autômatos finitos
determinísticos a
Operações com DFA’s
Autômatos finitos não
determinísticos
a a, b
Equivalência entre
DFA’s e NFA’s
b b
Linguagens e N2 : s0 s1 s2
gramáticas
regulares
Linguagens a b
livres de
contexto
Autômatos s3
com pilha e
GLC’s
Máquinas de
Turing
(588 – 610 de 1593)
Exemplos de NFA’s
LFA 2018/2
H. Longo
Introdução
Exemplo 4.46
Fundamentos
matemáticos L(N3 ) = {w ∈ {a, b}+ | w contém aa ou bb}.
Alfabetos e
linguagens
Autômatos
finitos
Autômatos finitos
determinísticos
Operações com DFA’s
Autômatos finitos não
determinísticos
Equivalência entre
DFA’s e NFA’s
Linguagens e
gramáticas
regulares
Linguagens
livres de
contexto
Autômatos
com pilha e
GLC’s
Máquinas de
Turing
(589 – 610 de 1593)
Exemplos de NFA’s
LFA 2018/2
H. Longo
Introdução
Exemplo 4.46
Fundamentos
matemáticos L(N3 ) = {w ∈ {a, b}+ | w contém aa ou bb}.
Alfabetos e
linguagens a, b
Autômatos
finitos a
Autômatos finitos
determinísticos a, b s1 s2
Operações com DFA’s
a
Autômatos finitos não
determinísticos
Equivalência entre N3 : s0
DFA’s e NFA’s
Linguagens e
b
gramáticas
regulares
s3 s4
b
Linguagens
livres de
contexto
a, b
Autômatos
com pilha e
GLC’s
Máquinas de
Turing
(590 – 610 de 1593)
Exemplos de NFA’s
LFA 2018/2
H. Longo
Introdução
Exemplo 4.47
Fundamentos
matemáticos L(N4 ) = {w ∈ {a, b}∗ | w contém abba}.
Alfabetos e
linguagens
Autômatos
finitos
Autômatos finitos
determinísticos
Operações com DFA’s
Autômatos finitos não
determinísticos
Equivalência entre
DFA’s e NFA’s
Linguagens e
gramáticas
regulares
Linguagens
livres de
contexto
Autômatos
com pilha e
GLC’s
Máquinas de
Turing
(591 – 610 de 1593)
Exemplos de NFA’s
LFA 2018/2
H. Longo
Introdução
Exemplo 4.47
Fundamentos
matemáticos L(N4 ) = {w ∈ {a, b}∗ | w contém abba}.
Alfabetos e
linguagens b a a, b
b
Autômatos
finitos a b a
Autômatos finitos M10 : s0 s1 s2 s3 s4
determinísticos
Operações com DFA’s
Autômatos finitos não
a
determinísticos
Equivalência entre
DFA’s e NFA’s
b
Linguagens e
gramáticas
a, b a, b
regulares
a b b a
Linguagens
livres de
N4 : s0 s1 s2 s3 s4
contexto
Autômatos
com pilha e
GLC’s
Máquinas de
Turing
(592 – 610 de 1593)
Transições Vazias
LFA 2018/2
H. Longo
Introdução
Fundamentos
matemáticos
Definição 4.48
Alfabetos e Uma transição vazia não processa qualquer símbolo da cadeia de entrada.
linguagens
Autômatos
finitos
Autômatos finitos
Definição 4.49
NFA-ε é a classe de NFA’s que utilizam transições vazias.
determinísticos
Operações com DFA’s
Autômatos finitos não
determinísticos
Equivalência entre
DFA’s e NFA’s
Definição 4.50
Linguagens e
gramáticas Um NFA-ε é uma quíntupla N = hΣ, S , s0 , δ, Fi, onde: Σ, S , s0 e F seguem a
regulares
Linguagens
mesma definição de NFA. A função de transição é δ : S × (Σ ∪ {ε}) → P(S ).
livres de
contexto
Autômatos
com pilha e
GLC’s
Máquinas de
Turing
(593 – 610 de 1593)
Exemplos de NFA-ε’s
LFA 2018/2
H. Longo
Linguagens e
gramáticas
regulares
Linguagens
livres de
contexto
Autômatos
com pilha e
GLC’s
Máquinas de
Turing
(594 – 610 de 1593)
Exemplos de NFA-ε’s
LFA 2018/2
H. Longo
Linguagens e b
gramáticas a
regulares
Linguagens N5 : s0 s1
livres de
contexto
Autômatos
b
com pilha e
GLC’s
Máquinas de
Turing
(595 – 610 de 1593)
Exemplos de NFA-ε’s
LFA 2018/2
H. Longo
Introdução
Fundamentos
Exemplo 4.52
matemáticos
NFA-ε N6 tal que L(N6 ) = L(N2 ) ∪ L(N5 ):
Alfabetos e
linguagens
Autômatos
finitos
Autômatos finitos
determinísticos
Operações com DFA’s
Autômatos finitos não
determinísticos
Equivalência entre
DFA’s e NFA’s
Linguagens e
gramáticas
regulares
Linguagens
livres de
contexto
Autômatos
com pilha e
GLC’s
Máquinas de
Turing
(596 – 610 de 1593)
Exemplos de NFA-ε’s
LFA 2018/2
H. Longo
Introdução
Fundamentos
Exemplo 4.52
matemáticos
NFA-ε N6 tal que L(N6 ) = L(N2 ) ∪ L(N5 ):
Alfabetos e
linguagens
a, b a, b
Autômatos
finitos
b b
Autômatos finitos s0,2 s1,2 s2,2
determinísticos
Operações com DFA’s
ε
Autômatos finitos não
determinísticos
Equivalência entre
N6 : s0
DFA’s e NFA’s
a
Linguagens e ε
gramáticas s0,5 s1,5
regulares
Linguagens
b
livres de b
contexto
Autômatos
com pilha e
GLC’s
Máquinas de
Turing
(597 – 610 de 1593)
Exemplos de NFA-ε’s
LFA 2018/2
H. Longo
Autômatos
finitos
Autômatos finitos
determinísticos
Operações com DFA’s
Autômatos finitos não
determinísticos
Equivalência entre
DFA’s e NFA’s
Linguagens e
gramáticas
regulares
Linguagens
livres de
contexto
Autômatos
com pilha e
GLC’s
Máquinas de
Turing
(598 – 610 de 1593)
Exemplos de NFA-ε’s
LFA 2018/2
H. Longo
Autômatos
b b
finitos
Autômatos finitos
N7 : s0,2 s1,2 s2,2
determinísticos
Operações com DFA’s
Autômatos finitos não
ε
determinísticos
Equivalência entre
DFA’s e NFA’s
Linguagens e b
gramáticas
regulares s1,5 s0,5
Linguagens
livres de a
contexto
b
Autômatos
com pilha e
GLC’s
Máquinas de
Turing
(599 – 610 de 1593)
Exemplos de NFA-ε’s
LFA 2018/2
H. Longo
Exemplo 4.54
Introdução NFA N8 que aceita cadeias de comprimento dois sobre o alfabeto {a, b}:
Fundamentos
matemáticos
Alfabetos e
linguagens
Autômatos
finitos
Autômatos finitos
determinísticos
Operações com DFA’s
Autômatos finitos não
determinísticos
Equivalência entre
DFA’s e NFA’s
Linguagens e
gramáticas
regulares
Linguagens
livres de
contexto
Autômatos
com pilha e
GLC’s
Máquinas de
Turing
(600 – 610 de 1593)
Exemplos de NFA-ε’s
LFA 2018/2
H. Longo
Exemplo 4.54
Introdução NFA N8 que aceita cadeias de comprimento dois sobre o alfabeto {a, b}:
Fundamentos a, b a, b
matemáticos N8 : s0 s1 s2
Alfabetos e
linguagens
Autômatos
finitos
Autômatos finitos
determinísticos
Operações com DFA’s
Autômatos finitos não
determinísticos
Equivalência entre
DFA’s e NFA’s
Linguagens e
gramáticas
regulares
Linguagens
livres de
contexto
Autômatos
com pilha e
GLC’s
Máquinas de
Turing
(601 – 610 de 1593)
Exemplos de NFA-ε’s
LFA 2018/2
H. Longo
Exemplo 4.54
Introdução NFA N8 que aceita cadeias de comprimento dois sobre o alfabeto {a, b}:
Fundamentos a, b a, b
matemáticos N8 : s0 s1 s2
Alfabetos e
linguagens
Autômatos NFA-ε N9 que aceita cadeias de comprimento par sobre o alfabeto {a, b}:
finitos
Autômatos finitos
determinísticos
Operações com DFA’s
Autômatos finitos não
determinísticos
Equivalência entre
DFA’s e NFA’s
Linguagens e
gramáticas
regulares
Linguagens
livres de
contexto
Autômatos
com pilha e
GLC’s
Máquinas de
Turing
(602 – 610 de 1593)
Exemplos de NFA-ε’s
LFA 2018/2
H. Longo
Exemplo 4.54
Introdução NFA N8 que aceita cadeias de comprimento dois sobre o alfabeto {a, b}:
Fundamentos a, b a, b
matemáticos N8 : s0 s1 s2
Alfabetos e
linguagens
Autômatos NFA-ε N9 que aceita cadeias de comprimento par sobre o alfabeto {a, b}:
finitos
Autômatos finitos
ε
determinísticos
Operações com DFA’s
Autômatos finitos não a, b a, b
determinísticos N9 : s0 s1 s2
Equivalência entre
DFA’s e NFA’s
Linguagens e
gramáticas ε
regulares
Linguagens
livres de
contexto
Autômatos
com pilha e
GLC’s
Máquinas de
Turing
(603 – 610 de 1593)
Exemplos de NFA-ε’s
LFA 2018/2
H. Longo
Exemplo 4.54
Introdução NFA N8 que aceita cadeias de comprimento dois sobre o alfabeto {a, b}:
Fundamentos a, b a, b
matemáticos N8 : s0 s1 s2
Alfabetos e
linguagens
Autômatos NFA-ε N9 que aceita cadeias de comprimento par sobre o alfabeto {a, b}:
finitos
Autômatos finitos
ε
determinísticos
Operações com DFA’s
Autômatos finitos não a, b a, b
determinísticos N9 : s0 s1 s2
Equivalência entre
DFA’s e NFA’s
Linguagens e
gramáticas ε
regulares
Linguagens Outro NFA que aceita cadeias de comprimento par sobre o alfabeto {a, b}:
livres de
contexto
a, b
Autômatos N10 : s0 s1
com pilha e
GLC’s a, b
Máquinas de
Turing
(604 – 610 de 1593)
NFA-ε’s
LFA 2018/2
H. Longo
Introdução
Fundamentos
matemáticos
Autômatos
Se N = hΣ, S , s0 , δ, Fi é um NFA-ε, então existe um NFA-ε equivalente
finitos
Autômatos finitos
N 0 = hΣ, S ∪ {si , s f }, si , δ0 , {s f }i tal que o respectivo diagrama de estados
determinísticos satisfaz:
Operações com DFA’s
Autômatos finitos não
determinísticos
1 nenhum arco chega ao vértice si ,
Equivalência entre
DFA’s e NFA’s
2 o único vértice final é o s f ,
Linguagens e
3 nenhum arco sai do vértice s f .
gramáticas
regulares
Linguagens
livres de
contexto
Autômatos
com pilha e
GLC’s
Máquinas de
Turing
(605 – 610 de 1593)
NFA-ε’s
LFA 2018/2
H. Longo
Introdução
Alfabetos e
Se N1 e N2 são NFA-ε’s, então existem NFA-ε’s que aceitam L(N1 ) ∪ L(N2 ),
linguagens L(N1 )L(N2 ) e L(N1 )∗ .
Autômatos
finitos
Autômatos finitos
determinísticos
Operações com DFA’s
Autômatos finitos não
determinísticos
Equivalência entre
DFA’s e NFA’s
Linguagens e
gramáticas
regulares
Linguagens
livres de
contexto
Autômatos
com pilha e
GLC’s
Máquinas de
Turing
(606 – 610 de 1593)
NFA-ε’s
LFA 2018/2
H. Longo
Introdução
Alfabetos e
Se N1 e N2 são NFA-ε’s, então existem NFA-ε’s que aceitam L(N1 ) ∪ L(N2 ),
linguagens L(N1 )L(N2 ) e L(N1 )∗ .
Autômatos
finitos
Autômatos finitos
determinísticos
Operações com DFA’s ε ε s f,1
Autômatos finitos não
si,1 N1
determinísticos
Equivalência entre
DFA’s e NFA’s
Linguagens e
gramáticas
ε ε s f,2
regulares si,2 N2
Linguagens
livres de
contexto
Autômatos
com pilha e
GLC’s
Máquinas de
Turing
(607 – 610 de 1593)
NFA-ε’s
LFA 2018/2
H. Longo
Introdução
Fundamentos
matemáticos Exemplo 4.57
Alfabetos e
linguagens
L(N1 ) ∪ L(N2 )
Autômatos
finitos ε ε s f,1
si,1 N1
Autômatos finitos
determinísticos ε ε
Operações com DFA’s
Autômatos finitos não
determinísticos si sf
Equivalência entre
DFA’s e NFA’s ε
Linguagens e ε ε ε
gramáticas si,2 N2 s f,2
regulares
Linguagens
livres de
contexto
Autômatos
com pilha e
GLC’s
Máquinas de
Turing
(608 – 610 de 1593)
NFA-ε’s
LFA 2018/2
H. Longo
Introdução
Fundamentos
matemáticos
Alfabetos e
linguagens
Exemplo 4.58
Autômatos
finitos L(N1 )L(N2 )
Autômatos finitos
determinísticos
Operações com DFA’s
ε ε s f,1 ε ε ε s f,2
Autômatos finitos não si,1 N1 si,2 N2
determinísticos
Equivalência entre
DFA’s e NFA’s
Linguagens e
gramáticas
regulares
Linguagens
livres de
contexto
Autômatos
com pilha e
GLC’s
Máquinas de
Turing
(609 – 610 de 1593)
NFA-ε’s
LFA 2018/2
H. Longo
Introdução
Fundamentos
matemáticos
Alfabetos e
Exemplo 4.59
linguagens
L(N1 )∗
Autômatos
finitos ε
Autômatos finitos
determinísticos
Operações com DFA’s
ε ε ε s f,1 ε sf
Autômatos finitos não
determinísticos
si si,1 N1
Equivalência entre
DFA’s e NFA’s
Linguagens e
gramáticas ε
regulares
Linguagens
livres de
contexto
Autômatos
com pilha e
GLC’s
Máquinas de
Turing
(610 – 610 de 1593)
LFA 2018/2
H. Longo
Introdução
Fundamentos
matemáticos
Alfabetos e
linguagens
Linguagens e
gramáticas
regulares
Linguagens
livres de
contexto
Autômatos
com pilha e
GLC’s
Máquinas de
Turing
(611 – 653 de 1593)
Equivalência entre DFA’s e NFA’s
LFA 2018/2
H. Longo
Introdução Existe uma linguagem aceita por um NFA e que não é aceita por nenhum
Fundamentos
DFA?
matemáticos
Alfabetos e
linguagens
Autômatos
finitos
Autômatos finitos
determinísticos
Operações com DFA’s
Autômatos finitos não
determinísticos
Equivalência entre
DFA’s e NFA’s
Linguagens e
gramáticas
regulares
Linguagens
livres de
contexto
Autômatos
com pilha e
GLC’s
Máquinas de
Turing
(612 – 653 de 1593)
Equivalência entre DFA’s e NFA’s
LFA 2018/2
H. Longo
Introdução Existe uma linguagem aceita por um NFA e que não é aceita por nenhum
Fundamentos
DFA?
matemáticos
Nao! Todo DFA é um NFA.
Alfabetos e
linguagens
NFA é uma generalização do conceito de DFA.
Autômatos
finitos
Autômatos finitos
determinísticos
Operações com DFA’s
Autômatos finitos não
determinísticos
Equivalência entre
DFA’s e NFA’s
Linguagens e
gramáticas
regulares
Linguagens
livres de
contexto
Autômatos
com pilha e
GLC’s
Máquinas de
Turing
(613 – 653 de 1593)
Equivalência entre DFA’s e NFA’s
LFA 2018/2
H. Longo
Introdução Existe uma linguagem aceita por um NFA e que não é aceita por nenhum
Fundamentos
DFA?
matemáticos
Nao! Todo DFA é um NFA.
Alfabetos e
linguagens
NFA é uma generalização do conceito de DFA.
Autômatos Dado um NFA qualquer, pode-se construir um DFA equivalente:
finitos
Autômatos finitos DFA que aceita a mesma linguagem que o NFA.
determinísticos
Operações com DFA’s
Autômatos finitos não
determinísticos
Equivalência entre
DFA’s e NFA’s
Linguagens e
gramáticas
regulares
Linguagens
livres de
contexto
Autômatos
com pilha e
GLC’s
Máquinas de
Turing
(614 – 653 de 1593)
Equivalência entre DFA’s e NFA’s
LFA 2018/2
H. Longo
Introdução Existe uma linguagem aceita por um NFA e que não é aceita por nenhum
Fundamentos
DFA?
matemáticos
Nao! Todo DFA é um NFA.
Alfabetos e
linguagens
NFA é uma generalização do conceito de DFA.
Autômatos Dado um NFA qualquer, pode-se construir um DFA equivalente:
finitos
Autômatos finitos DFA que aceita a mesma linguagem que o NFA.
determinísticos
Operações com DFA’s
Autômatos finitos não
determinísticos NFA-ε – Autômato com Transição ε
Equivalência entre
DFA’s e NFA’s (Nondeterministic Finite Automata with ε-moves)
Linguagens e
gramáticas NFA – Autômato não Determinístico
regulares
(Nondeterministic Finite Automata)
Linguagens
livres de DFA – Autômato Finito
contexto
(Deterministic Finite Automata)
Autômatos
com pilha e
GLC’s
Máquinas de
Turing
(615 – 653 de 1593)
Relação entre classes de autômatos finitos
LFA 2018/2
H. Longo
Introdução
Alfabetos e
linguagens
DFA NFA-ε
Autômatos
finitos
Autômatos finitos
determinísticos
Operações com DFA’s
Autômatos finitos não
determinísticos
Equivalência entre
DFA’s e NFA’s
Linguagens e
gramáticas
regulares
NFA
Linguagens
livres de
contexto
Autômatos
com pilha e
GLC’s
Máquinas de
Turing
(616 – 653 de 1593)
Fecho ε
LFA 2018/2
H. Longo
Introdução
Fundamentos
matemáticos
Alfabetos e
linguagens
Definição 4.60
Autômatos O Fecho ε de um estado si , denotado Fε (si ), é definido recursivamente como:
finitos
Autômatos finitos
determinísticos
Base: si ∈ Fε (si ).
Operações com DFA’s
Autômatos finitos não
Recursão: Seja s j ∈ Fε (si ). Se sk ∈ δ(s j , ε), então sk ∈ Fε (si ).
determinísticos
Equivalência entre
Fecho: s j ∈ Fε (si ) somente se pode ser obtido a partir de si com a
DFA’s e NFA’s
aplicação da recursão um número finito de vezes.
Linguagens e
gramáticas
regulares
Linguagens
livres de
contexto
Autômatos
com pilha e
GLC’s
Máquinas de
Turing
(617 – 653 de 1593)
Função de Transição na Cadeia
LFA 2018/2
H. Longo
Introdução
A função δ de transição de estados em DFA’s e NFA’s “processa” os símbolos
Fundamentos
matemáticos da cadeia de entrada.
Alfabetos e
linguagens
Autômatos
finitos
Autômatos finitos
determinísticos
Operações com DFA’s
Autômatos finitos não
determinísticos
Equivalência entre
DFA’s e NFA’s
Linguagens e
gramáticas
regulares
Linguagens
livres de
contexto
Autômatos
com pilha e
GLC’s
Máquinas de
Turing
(618 – 653 de 1593)
Função de Transição na Cadeia
LFA 2018/2
H. Longo
Introdução
A função δ de transição de estados em DFA’s e NFA’s “processa” os símbolos
Fundamentos
matemáticos da cadeia de entrada.
Alfabetos e
linguagens
A função τ, em um NFA-ε, relaciona as transições ao processamento da
Autômatos
cadeia de entrada.
finitos
Autômatos finitos
τ(si , a) : conjunto de estados alcançáveis, a partir de si , pelo processamento do
determinísticos
Operações com DFA’s
símbolo a.
Autômatos finitos não
determinísticos
Equivalência entre
DFA’s e NFA’s
Linguagens e
gramáticas
regulares
Linguagens
livres de
contexto
Autômatos
com pilha e
GLC’s
Máquinas de
Turing
(619 – 653 de 1593)
Função de Transição na Cadeia
LFA 2018/2
H. Longo
Introdução
A função δ de transição de estados em DFA’s e NFA’s “processa” os símbolos
Fundamentos
matemáticos da cadeia de entrada.
Alfabetos e
linguagens
A função τ, em um NFA-ε, relaciona as transições ao processamento da
Autômatos
cadeia de entrada.
finitos
Autômatos finitos
τ(si , a) : conjunto de estados alcançáveis, a partir de si , pelo processamento do
determinísticos
Operações com DFA’s
símbolo a.
Autômatos finitos não
determinísticos Construção de τ(si , a) envolve três subconjuntos:
Equivalência entre
DFA’s e NFA’s 1 estados alcançáveis, a partir de si , sem processar a;
Linguagens e
gramáticas
2 estados alcançáveis, a partir dos estados construídos no passo 1, ao processar
regulares a;
Linguagens 3 estados alcançáveis, a partir dos estados construídos no passo 2, com
livres de
contexto transições vazias.
Autômatos
com pilha e
GLC’s
Máquinas de
Turing
(620 – 653 de 1593)
Função de Transição na Cadeia
LFA 2018/2
H. Longo
Caminho Símbolo ε
si2 s i3
Introdução si1 , si2 a a
Fundamentos si1 , si2 , si3 a si1
matemáticos
si1 , si4 ε ε
Alfabetos e
linguagens si1 , si4 , si5 a a ε
si4 s i5 si6
Autômatos
si1 , si4 , si5 , si6 a
finitos
Autômatos finitos
determinísticos
Operações com DFA’s
Autômatos finitos não
determinísticos
Equivalência entre
DFA’s e NFA’s
Linguagens e
gramáticas
regulares
Linguagens
livres de
contexto
Autômatos
com pilha e
GLC’s
Máquinas de
Turing
(621 – 653 de 1593)
Função de Transição na Cadeia
LFA 2018/2
H. Longo
Caminho Símbolo ε
si2 s i3
Introdução si1 , si2 a a
Fundamentos si1 , si2 , si3 a si1
matemáticos
si1 , si4 ε ε
Alfabetos e
linguagens si1 , si4 , si5 a a ε
si4 s i5 si6
Autômatos
si1 , si4 , si5 , si6 a
finitos
Autômatos finitos
determinísticos τ(si1 , a) = {si2 , si3 , si5 , si6 }.
Operações com DFA’s
Autômatos finitos não O estado si4 não faz parte do conjunto porque a transição a partir de si1 não
determinísticos
Equivalência entre processa o símbolo a.
DFA’s e NFA’s
Linguagens e
gramáticas
regulares
Linguagens
livres de
contexto
Autômatos
com pilha e
GLC’s
Máquinas de
Turing
(622 – 653 de 1593)
Função de Transição na Cadeia
LFA 2018/2
H. Longo
Introdução
Fundamentos
matemáticos Definição 4.61
Alfabetos e
linguagens
A Função τ de Transição na Cadeia de um NFA-ε N = hΣ, S , s0 , δ, Fi é uma função
Autômatos
de S × Σ em P(S ), definida por:
finitos [
τ(si , a) = Fε (δ(s j , a)).
Autômatos finitos
determinísticos
Operações com DFA’s
Autômatos finitos não s j ∈Fε (si )
determinísticos
Equivalência entre
DFA’s e NFA’s
Linguagens e
gramáticas
regulares
Linguagens
livres de
contexto
Autômatos
com pilha e
GLC’s
Máquinas de
Turing
(623 – 653 de 1593)
Função de Transição na Cadeia
LFA 2018/2
H. Longo
Introdução
Fundamentos
matemáticos Definição 4.61
Alfabetos e
linguagens
A Função τ de Transição na Cadeia de um NFA-ε N = hΣ, S , s0 , δ, Fi é uma função
Autômatos
de S × Σ em P(S ), definida por:
finitos [
τ(si , a) = Fε (δ(s j , a)).
Autômatos finitos
determinísticos
Operações com DFA’s
Autômatos finitos não s j ∈Fε (si )
determinísticos
Equivalência entre
DFA’s e NFA’s
Linguagens e
gramáticas
A função τ tem a mesma forma da função δ.
A função τ é idêntica à função δ de um NFA sem transições ε.
regulares
Linguagens
livres de
contexto
Autômatos
com pilha e
GLC’s
Máquinas de
Turing
(624 – 653 de 1593)
Função de Transição na Cadeia
LFA 2018/2
H. Longo
Alfabetos e
linguagens
Autômatos
finitos
Autômatos finitos
determinísticos
Operações com DFA’s
Autômatos finitos não
determinísticos
Equivalência entre
DFA’s e NFA’s
Linguagens e
gramáticas
regulares
Linguagens
livres de
contexto
Autômatos
com pilha e
GLC’s
Máquinas de
Turing
(625 – 653 de 1593)
Função de Transição na Cadeia
LFA 2018/2
H. Longo
Alfabetos e a b
linguagens
a
Autômatos s0 s1
finitos
Autômatos finitos a
determinísticos ε
Operações com DFA’s
Autômatos finitos não
s2
determinísticos
Equivalência entre
DFA’s e NFA’s c
Linguagens e
gramáticas
regulares
Linguagens
livres de
contexto
Autômatos
com pilha e
GLC’s
Máquinas de
Turing
(626 – 653 de 1593)
Função de Transição na Cadeia
LFA 2018/2
H. Longo
Alfabetos e a b
linguagens
a
Autômatos s0 s1
finitos
Autômatos finitos a
determinísticos ε
Operações com DFA’s
Autômatos finitos não
s2
determinísticos
Equivalência entre
DFA’s e NFA’s c
Linguagens e
gramáticas δ a b c ε
regulares
s0 {s0 , s1 , s2 } ∅ ∅ ∅
Linguagens
livres de
s1 ∅ {s1 } ∅ ∅
contexto s2 ∅ ∅ {s2 } {s1 }
Autômatos
com pilha e
GLC’s
Máquinas de
Turing
(627 – 653 de 1593)
Função de Transição na Cadeia
LFA 2018/2
H. Longo
Alfabetos e a b
linguagens
a
Autômatos s0 s1
finitos
Autômatos finitos a
determinísticos ε
Operações com DFA’s
Autômatos finitos não
s2
determinísticos
Equivalência entre
DFA’s e NFA’s c
Linguagens e
gramáticas δ a b c ε τ a b c
regulares
s0 {s0 , s1 , s2 } ∅ ∅ ∅ s0 {s0 , s1 , s2 } ∅ ∅
Linguagens
livres de
s1 ∅ {s1 } ∅ ∅ s1 ∅ {s1 } ∅
contexto s2 ∅ ∅ {s2 } {s1 } s2 ∅ {s1 } {s1 , s2 }
Autômatos
com pilha e
GLC’s
Máquinas de
Turing
(628 – 653 de 1593)
Remoção de Não Determinismo
LFA 2018/2
H. Longo
Introdução
Fundamentos
matemáticos
Alfabetos e A aceitação de uma cadeia por uma máquina não determinística depende da
linguagens
existência de um processamento que termina em um estado final.
Autômatos
finitos
Autômatos finitos
determinísticos
Operações com DFA’s
Autômatos finitos não
determinísticos
Equivalência entre
DFA’s e NFA’s
Linguagens e
gramáticas
regulares
Linguagens
livres de
contexto
Autômatos
com pilha e
GLC’s
Máquinas de
Turing
(629 – 653 de 1593)
Remoção de Não Determinismo
LFA 2018/2
H. Longo
Introdução
Fundamentos
matemáticos
Alfabetos e A aceitação de uma cadeia por uma máquina não determinística depende da
linguagens
existência de um processamento que termina em um estado final.
Autômatos
finitos Em um NFA- podem existir vários caminhos que representam o
Autômatos finitos
determinísticos processamento de uma cadeia.
Operações com DFA’s
Autômatos finitos não
determinísticos
Em um DFA este caminho é único.
Equivalência entre
DFA’s e NFA’s
Linguagens e
gramáticas
regulares
Linguagens
livres de
contexto
Autômatos
com pilha e
GLC’s
Máquinas de
Turing
(630 – 653 de 1593)
Remoção de Não Determinismo
LFA 2018/2
H. Longo
Introdução
Fundamentos
matemáticos
Alfabetos e A aceitação de uma cadeia por uma máquina não determinística depende da
linguagens
existência de um processamento que termina em um estado final.
Autômatos
finitos Em um NFA- podem existir vários caminhos que representam o
Autômatos finitos
determinísticos processamento de uma cadeia.
Operações com DFA’s
Autômatos finitos não
determinísticos
Em um DFA este caminho é único.
Equivalência entre
DFA’s e NFA’s Para remover o não determinismo, o DFA resultante deve simular a
Linguagens e
gramáticas
exploração de todos os possíveis caminhos em um NFA- .
regulares
Linguagens
livres de
contexto
Autômatos
com pilha e
GLC’s
Máquinas de
Turing
(631 – 653 de 1593)
Remoção de Não Determinismo
LFA 2018/2
H. Longo
Máquinas de
Turing
(632 – 653 de 1593)
Remoção de Não Determinismo
LFA 2018/2
H. Longo
Introdução
Fundamentos
matemáticos
Alfabetos e
linguagens
Vértices do DFA são conjuntos de vértices do NFA- .
Autômatos
finitos S 0 é o conjunto de vértices do DFA.
Autômatos finitos
determinísticos Vértice inicial do DFA é o Fecho ε do vértice inicial do NFA-ε.
Operações com DFA’s
Autômatos finitos não
determinísticos
Y é o conjunto de todos os estados alcançáveis pelo processamento de um
Equivalência entre
DFA’s e NFA’s
símbolo a partir de qualquer estado no conjunto X .
Linguagens e
gramáticas
regulares
Linguagens
livres de
contexto
Autômatos
com pilha e
GLC’s
Máquinas de
Turing
(633 – 653 de 1593)
Remoção de Não Determinismo
LFA 2018/2
H. Longo
Introdução
Fundamentos
matemáticos
Linguagens
livres de
contexto
Autômatos
com pilha e
GLC’s
Máquinas de
Turing
(634 – 653 de 1593)
Remoção de Não Determinismo
LFA 2018/2
Máquinas de
Turing
(635 – 653 de 1593)
Remoção de Não Determinismo
LFA 2018/2
Linguagens e
gramáticas b, c
regulares
Linguagens
livres de
∅
contexto
Autômatos
com pilha e
GLC’s
Máquinas de
Turing
(636 – 653 de 1593)
Remoção de Não Determinismo
LFA 2018/2
H. Longo
Introdução
Fundamentos
matemáticos
Alfabetos e
linguagens Teorema 4.64
Seja N = hΣ, S , s0 , δ, Fi um NFA-ε e M = hΣ, S 0 , s00 , δ0 , F 0 i o DFA obtido a partir
Autômatos
finitos
Autômatos finitos
determinísticos de N com o algoritmo 6. Seja, ainda, w ∈ Σ∗ e S w = {sw1 , sw2 , . . . , sw j } o
conjunto de vértices alcançados, no NFA-ε N , ao término do processamento
Operações com DFA’s
Autômatos finitos não
determinísticos
Equivalência entre
DFA’s e NFA’s
de w. Portanto, o processamento de w no DFA M termina no estado S w .
Linguagens e
gramáticas
regulares
Linguagens
livres de
contexto
Autômatos
com pilha e
GLC’s
Máquinas de
Turing
(638 – 653 de 1593)
Equivalência entre DFA’s e NFA’s
LFA 2018/2
H. Longo
Introdução
Fundamentos Demonstração.
matemáticos
Alfabetos e
Indução no comprimento da cadeia w:
linguagens
Autômatos
finitos Base: Se |w| = 0, o processamento em N termina em um vértice em Fε (s0 ). Este é
Autômatos finitos
determinísticos o vértice inicial em M .
Operações com DFA’s
Autômatos finitos não
determinísticos
Equivalência entre
DFA’s e NFA’s
Linguagens e
gramáticas
regulares
Linguagens
livres de
contexto
Autômatos
com pilha e
GLC’s
Máquinas de
Turing
(639 – 653 de 1593)
Equivalência entre DFA’s e NFA’s
LFA 2018/2
H. Longo
Introdução
Fundamentos Demonstração.
matemáticos
Alfabetos e
Indução no comprimento da cadeia w:
linguagens
Autômatos
finitos Hipótese: Suponha que o resultado é válido para todas as cadeias de
Autômatos finitos
determinísticos comprimento n.
Operações com DFA’s
Autômatos finitos não
determinísticos
Equivalência entre
DFA’s e NFA’s
Linguagens e
gramáticas
regulares
Linguagens
livres de
contexto
Autômatos
com pilha e
GLC’s
Máquinas de
Turing
(640 – 653 de 1593)
Equivalência entre DFA’s e NFA’s
LFA 2018/2
H. Longo
Introdução
Fundamentos Demonstração.
matemáticos
Alfabetos e
Indução no comprimento da cadeia w:
linguagens
Autômatos
finitos Passo: Seja w = ua, tal que |w| = n + 1.
Autômatos finitos
determinísticos Seja S u = {su1 , su2 , . . . , suk } o conjunto de vértices finais obtido pelo
Operações com DFA’s
Autômatos finitos não processamento da cadeia u.
determinísticos
Equivalência entre Por hipótese de indução, o processamento de u em M termina no
DFA’s e NFA’s
Linguagens e
vértice S u .
gramáticas
regulares
Linguagens
livres de
contexto
Autômatos
com pilha e
GLC’s
Máquinas de
Turing
(641 – 653 de 1593)
Equivalência entre DFA’s e NFA’s
LFA 2018/2
H. Longo
Introdução
Fundamentos Demonstração.
matemáticos
Alfabetos e
Indução no comprimento da cadeia w:
linguagens
Autômatos
finitos Passo: Processamento de ua em M termina em estados (conjunto S w ) que
Autômatos finitos
determinísticos podem ser alcançados, a partir de um estado em S u , pelo
Operações com DFA’s
Autômatos finitos não processamento de a.
determinísticos
k
S w é definido por S w = τ(sui , a).
Equivalência entre S
DFA’s e NFA’s
Linguagens e i=1
gramáticas Como S w é o estado alcançado a partir de S u , pelo processamento de
regulares
a, no DFA M, a prova fica completa.
Linguagens
livres de
contexto
Autômatos
com pilha e
GLC’s
Máquinas de
Turing
(642 – 653 de 1593)
Equivalência entre DFA’s e NFA’s
LFA 2018/2
H. Longo
Introdução
Fundamentos
matemáticos
Alfabetos e
linguagens
Linguagens e
gramáticas
regulares
Linguagens
livres de
contexto
Autômatos
com pilha e
GLC’s
Máquinas de
Turing
(643 – 653 de 1593)
Remoção de Não Determinismo
LFA 2018/2
H. Longo
Exemplo 4.66
Introdução
Fundamentos a b
matemáticos
Alfabetos e a b
linguagens s0 s1 s2
Autômatos
finitos
Autômatos finitos
determinísticos
Operações com DFA’s
Autômatos finitos não
determinísticos
Equivalência entre
DFA’s e NFA’s
Linguagens e
gramáticas
regulares
Linguagens
livres de
contexto
Autômatos
com pilha e
GLC’s
Máquinas de
Turing
(644 – 653 de 1593)
Remoção de Não Determinismo
LFA 2018/2
H. Longo
Exemplo 4.66
Introdução
Fundamentos a b
matemáticos
Alfabetos e a b
linguagens s0 s1 s2
Autômatos
finitos
Autômatos finitos
determinísticos
Operações com DFA’s a b
Autômatos finitos não
determinísticos
a b
{s0 , s1 } {s1 , s2 }
Equivalência entre
DFA’s e NFA’s
{s0 }
Linguagens e
gramáticas
regulares
Linguagens
a, b
livres de b a
contexto
Autômatos
∅
com pilha e
GLC’s
Máquinas de
Turing
(645 – 653 de 1593)
Remoção de Não Determinismo
LFA 2018/2
Introdução
Fundamentos
matemáticos
Alfabetos e
linguagens
Autômatos
finitos
Autômatos finitos
determinísticos
Operações com DFA’s
Autômatos finitos não
determinísticos
Equivalência entre
DFA’s e NFA’s
Linguagens e
gramáticas
regulares
Linguagens
livres de
contexto
Autômatos
com pilha e
GLC’s
Máquinas de
Turing
(646 – 653 de 1593)
Remoção de Não Determinismo
LFA 2018/2
Introdução
NFA-ε original:
Fundamentos
matemáticos a
Alfabetos e s1 s2
linguagens
ε
Autômatos b
finitos
Autômatos finitos
s0 a
determinísticos
ε
Operações com DFA’s
Autômatos finitos não
determinísticos
Equivalência entre
s3
DFA’s e NFA’s
Linguagens e
gramáticas τ a b
regulares
s0 {s2 , s3 } ∅
Linguagens
livres de Fε (s0 ) = {s0 , s1 , s3 } s1 {s2 } ∅
contexto s2 ∅ {s1 }
Autômatos s3 {s3 } ∅
com pilha e
GLC’s
Máquinas de
Turing
(647 – 653 de 1593)
Remoção de Não Determinismo
LFA 2018/2
Introdução
DFA equivalente:
Fundamentos
matemáticos
Alfabetos e b a, b
linguagens a
Autômatos
a a b
finitos
Autômatos finitos
{s0 , s1 , s3 } {s2 , s3 } {s3 } ∅
determinísticos
Operações com DFA’s
Autômatos finitos não
determinísticos b
Equivalência entre
DFA’s e NFA’s
b
Linguagens e
gramáticas
{s1 }
regulares a
Linguagens
livres de
b a
contexto
Autômatos
com pilha e {s2 }
GLC’s
Máquinas de
Turing
(648 – 653 de 1593)
Remoção de Não Determinismo
LFA 2018/2
H. Longo
Introdução
Fundamentos
matemáticos
Linguagens e ε
gramáticas
regulares
Linguagens
livres de
contexto
Autômatos
com pilha e
GLC’s
Máquinas de
Turing
(649 – 653 de 1593)
Remoção de Não Determinismo
LFA 2018/2
H. Longo
Exemplo 4.68
Introdução
Fundamentos a, b
matemáticos
a b
{s0 , s1 }
Alfabetos e
linguagens ∅ {s0 } {s1 }
Autômatos
finitos
Autômatos finitos
determinísticos
Operações com DFA’s b
Autômatos finitos não b b a a, b
determinísticos
Equivalência entre
DFA’s e NFA’s
a
Linguagens e
gramáticas a
regulares {s2 } {s0 , s2 } {s1 , s2 } {s0 , s1 , s2 }
Linguagens
livres de
a b a
contexto
b
Autômatos
com pilha e
GLC’s
Máquinas de
Turing
(650 – 653 de 1593)
Remoção de Não Determinismo
LFA 2018/2
H. Longo
Exemplo 4.68
Introdução
Fundamentos a, b
matemáticos
a b
{s0 , s1 }
Alfabetos e
linguagens ∅ {s0 } {s1 }
Autômatos
finitos
Autômatos finitos
determinísticos
Operações com DFA’s b
Autômatos finitos não b b a a, b
determinísticos
Equivalência entre
DFA’s e NFA’s
a
Linguagens e
gramáticas a
regulares {s2 } {s0 , s2 } {s1 , s2 } {s0 , s1 , s2 }
Linguagens
livres de
a b a
contexto
b
Autômatos
com pilha e
GLC’s
Máquinas de
Turing
(651 – 653 de 1593)
Remoção de Não Determinismo
LFA 2018/2
H. Longo
Exemplo 4.68
Introdução
Fundamentos a, b
matemáticos
a b
{s0 , s1 }
Alfabetos e
linguagens ∅ {s0 } {s1 }
Autômatos
finitos
Autômatos finitos
determinísticos
Operações com DFA’s b
Autômatos finitos não b b a a, b
determinísticos
Equivalência entre
DFA’s e NFA’s
a
Linguagens e
gramáticas a
regulares {s2 } {s0 , s2 } {s1 , s2 } {s0 , s1 , s2 }
Linguagens
livres de
a b a
contexto
b
Autômatos
com pilha e
GLC’s
Máquinas de
Turing
(652 – 653 de 1593)
Remoção de Não Determinismo
LFA 2018/2
H. Longo
Linguagens e a
gramáticas a
regulares
a
Linguagens {s1 } {s1 , s2 } {s0 , s1 , s2 }
livres de
contexto b
Autômatos
com pilha e
GLC’s
Máquinas de
Turing
(653 – 653 de 1593)
LFA 2018/2
H. Longo
Introdução
Fundamentos
matemáticos
Alfabetos e
linguagens
Linguagens e
gramáticas
regulares
Gramáticas regulares Gramáticas regulares
Autômatos finitos e
conjuntos regulares
Autômatos finitos e
gramáticas regulares
Pumping Lemma para
linguagens regulares
Linguagens
livres de
contexto
Autômatos
com pilha e
GLC’s
Máquinas de
Turing
(654 – 680 de 1593)
Gramáticas
LFA 2018/2
H. Longo
Introdução
Fundamentos
matemáticos
Definição 5.1
Alfabetos e
linguagens Uma gramática é uma 4-upla G = (V, Σ, P, S ) onde:
Autômatos
finitos
V é um conjunto finito não vazio de símbolos, chamados de não-terminais;
Linguagens e
Σ é um conjunto finito não vazio de símbolos, chamados de terminais, tal que
gramáticas Σ ∩ V = ∅;
regulares
Gramáticas regulares
S é o símbolo (não terminal) inicial (S ∈ V ); e
Autômatos finitos e
conjuntos regulares
P é um conjunto de regras (de produção) da forma α → β, onde:
Autômatos finitos e
gramáticas regulares
α ∈ (V ∪ Σ)∗ V(V ∪ Σ)∗ ,
Pumping Lemma para
linguagens regulares
β ∈ (V ∪ Σ)∗ .
Linguagens
livres de
contexto
Autômatos
com pilha e
GLC’s
Máquinas de
Turing
(655 – 680 de 1593)
Gramática linear à direita
LFA 2018/2
H. Longo
Definição 5.2
Introdução
Uma gramática G = (V, Σ, P, S ) é regular à direita (também chamada de
Fundamentos
matemáticos gramática linear à direita) se toda regra de derivação está numa das
Alfabetos e seguintes formas:
linguagens
1 A → aB,
Autômatos
finitos
2 A → a,
Linguagens e
3 A → ε;
gramáticas (
regulares A, B ∈ V,
onde
a ∈ Σ.
Gramáticas regulares
Autômatos finitos e
conjuntos regulares
Autômatos finitos e
gramáticas regulares
Pumping Lemma para
linguagens regulares
Linguagens
livres de
contexto
Autômatos
com pilha e
GLC’s
Máquinas de
Turing
(656 – 680 de 1593)
Gramática linear à direita
LFA 2018/2
H. Longo
Definição 5.2
Introdução
Uma gramática G = (V, Σ, P, S ) é regular à direita (também chamada de
Fundamentos
matemáticos gramática linear à direita) se toda regra de derivação está numa das
Alfabetos e seguintes formas:
linguagens
1 A → aB,
Autômatos
finitos
2 A → a,
Linguagens e
3 A → ε;
gramáticas (
regulares A, B ∈ V,
onde
a ∈ Σ.
Gramáticas regulares
Autômatos finitos e
conjuntos regulares
Autômatos finitos e
gramáticas regulares
Pumping Lemma para
linguagens regulares Exemplo 5.3
Linguagens
livres de L(a∗ bc∗ ).
contexto ( )
S → aS | bA
Autômatos G = (V = {A, S }, Σ = {a, b, c}, P, S ), onde: P = .
com pilha e A → cA | ε
GLC’s
Máquinas de
Turing
(657 – 680 de 1593)
Gramática linear à esquerda
LFA 2018/2
H. Longo
Definição 5.4
Introdução
Uma gramática G = (V, Σ, P, S ) é regular à esquerda (também chamada de
Fundamentos
matemáticos gramática linear à esquerda) se toda regra de derivação está numa das
Alfabetos e seguintes formas:
linguagens
1 A → Ba,
Autômatos
finitos
2 A → a,
Linguagens e
3 A → ε;
gramáticas (
regulares A, B ∈ V,
onde
a ∈ Σ.
Gramáticas regulares
Autômatos finitos e
conjuntos regulares
Autômatos finitos e
gramáticas regulares
Pumping Lemma para
linguagens regulares
Linguagens
livres de
contexto
Autômatos
com pilha e
GLC’s
Máquinas de
Turing
(658 – 680 de 1593)
Gramática linear à esquerda
LFA 2018/2
H. Longo
Definição 5.4
Introdução
Uma gramática G = (V, Σ, P, S ) é regular à esquerda (também chamada de
Fundamentos
matemáticos gramática linear à esquerda) se toda regra de derivação está numa das
Alfabetos e seguintes formas:
linguagens
1 A → Ba,
Autômatos
finitos
2 A → a,
Linguagens e
3 A → ε;
gramáticas (
regulares A, B ∈ V,
onde
a ∈ Σ.
Gramáticas regulares
Autômatos finitos e
conjuntos regulares
Autômatos finitos e
gramáticas regulares
Pumping Lemma para
linguagens regulares Exemplo 5.5
Linguagens
livres de L(a∗ bc∗ ).
contexto ( )
S → S c | Ab
Autômatos G = (V = {A, S }, Σ = {a, b, c}, P, S ), onde: P = .
com pilha e A → Aa | ε
GLC’s
Máquinas de
Turing
(659 – 680 de 1593)
Gramática regular
LFA 2018/2
H. Longo
Introdução
Fundamentos
matemáticos
Autômatos
Alguns autores não permitem regras de derivação vazias (A → ε) e assumem
finitos
que a cadeia vazia não pertence às linguagens regulares.
Linguagens e
gramáticas
regulares
Gramáticas regulares
Autômatos finitos e
conjuntos regulares
Autômatos finitos e
gramáticas regulares
Pumping Lemma para
linguagens regulares
Linguagens
livres de
contexto
Autômatos
com pilha e
GLC’s
Máquinas de
Turing
(660 – 680 de 1593)
Gramática regular
LFA 2018/2
H. Longo
Introdução
Fundamentos
matemáticos
Autômatos
Alguns autores não permitem regras de derivação vazias (A → ε) e assumem
finitos
que a cadeia vazia não pertence às linguagens regulares.
Linguagens e
gramáticas Existe uma correspondência direta entre as regras de derivação de uma
regulares
Gramáticas regulares gramática regular à direita e as transições de um autômato finito não
Autômatos finitos e
conjuntos regulares determinístico, de modo que a gramática gere exatamente a linguagem que o
Autômatos finitos e
gramáticas regulares
Pumping Lemma para
autômato reconhece.
linguagens regulares
Linguagens
livres de
contexto
Autômatos
com pilha e
GLC’s
Máquinas de
Turing
(661 – 680 de 1593)
Gramáticas regulares estendidas
LFA 2018/2
H. Longo Uma gramática regular estendida à direita é aquela em que todas as regras
Introdução
de derivação estão numa das formas:
Fundamentos
1 A → wB,
matemáticos 2 A → a,
Alfabetos e 3 A → ε;
linguagens
Autômatos
A, B ∈ V,
a ∈ Σ,
finitos
onde
Linguagens e
w ∈ Σ∗ .
gramáticas
regulares
Gramáticas regulares Uma gramática regular estendida à esquerda é aquela em que todas as
Autômatos finitos e
conjuntos regulares regras de derivação estão numa das formas:
Autômatos finitos e
gramáticas regulares
Pumping Lemma para
1 A → Bw,
linguagens regulares 2 A → a,
Linguagens
livres de
3 A → ε;
contexto
A, B ∈ V,
Autômatos
∈ Σ,
onde a
com pilha e
GLC’s
w ∈ Σ∗ .
Máquinas de
Turing
(662 – 680 de 1593)
Misturando derivações à esquerda e à direita
LFA 2018/2
H. Longo
Introdução
Fundamentos
matemáticos A mistura de regras de derivação à esquerda e à direita ainda gera uma
Alfabetos e gramática linear, mas não necessariamente uma gramática regular.
linguagens
Autômatos
Uma tal gramática não necessariamente gera uma linguagem regular!!!
finitos
Linguagens e
gramáticas
regulares
Gramáticas regulares
Autômatos finitos e
conjuntos regulares
Autômatos finitos e
gramáticas regulares
Pumping Lemma para
linguagens regulares
Linguagens
livres de
contexto
Autômatos
com pilha e
GLC’s
Máquinas de
Turing
(663 – 680 de 1593)
Misturando derivações à esquerda e à direita
LFA 2018/2
H. Longo
Introdução
Fundamentos
matemáticos A mistura de regras de derivação à esquerda e à direita ainda gera uma
Alfabetos e gramática linear, mas não necessariamente uma gramática regular.
linguagens
Autômatos
Uma tal gramática não necessariamente gera uma linguagem regular!!!
finitos
Linguagens e
gramáticas Exemplo 5.6
regulares
S → aA | ε
( )
Gramáticas regulares
Autômatos finitos e
Gramática G = (V = {A, S }, Σ = {a, b}, P, S ), onde: P = .
conjuntos regulares
Autômatos finitos e
A → Sb
gramáticas regulares
Pumping Lemma para
linguagens regulares
Linguagens
L(G) = {ai bi | i > 0}, a qual não é uma linguagem regular.
livres de
contexto
Autômatos
com pilha e
GLC’s
Máquinas de
Turing
(664 – 680 de 1593)
Gramática Regular
LFA 2018/2
H. Longo
Introdução
Alfabetos e
→ : Definição de regra de derivação.
linguagens
Autômatos
finitos ⇒ : Aplicação de regra de derivação.
Linguagens e
gramáticas
regulares
Gramáticas regulares
Autômatos finitos e
conjuntos regulares
Autômatos finitos e
gramáticas regulares
Pumping Lemma para
linguagens regulares
Linguagens
livres de
contexto
Autômatos
com pilha e
GLC’s
Máquinas de
Turing
(665 – 680 de 1593)
Gramática Regular
LFA 2018/2
H. Longo
Introdução
Alfabetos e
→ : Definição de regra de derivação.
Regra de derivação pertence ao conjunto V × (V ∪ Σ)∗ .
linguagens
Autômatos
finitos ⇒ : Aplicação de regra de derivação.
Linguagens e
gramáticas Aplicação transforma uma cadeia em outra e pertence ao conjunto
regulares
Gramáticas regulares
(V ∪ Σ)+ × (V ∪ Σ)∗ .
Autômatos finitos e
conjuntos regulares
Autômatos finitos e
gramáticas regulares
Pumping Lemma para
linguagens regulares
Linguagens
livres de
contexto
Autômatos
com pilha e
GLC’s
Máquinas de
Turing
(666 – 680 de 1593)
Gramática Regular
LFA 2018/2
H. Longo
Introdução
Alfabetos e
→ : Definição de regra de derivação.
Regra de derivação pertence ao conjunto V × (V ∪ Σ)∗ .
linguagens
Autômatos
finitos ⇒ : Aplicação de regra de derivação.
Linguagens e
gramáticas Aplicação transforma uma cadeia em outra e pertence ao conjunto
regulares
Gramáticas regulares
(V ∪ Σ)+ × (V ∪ Σ)∗ .
Autômatos finitos e +
conjuntos regulares
Autômatos finitos e
=⇒ : Derivação usando uma ou mais regras de derivação.
gramáticas regulares n
Pumping Lemma para
linguagens regulares
=⇒ : Derivação de comprimento n:
n
Linguagens
livres de
v =⇒ w : w é derivado a partir de v usando n regras de derivação.
contexto
Autômatos
com pilha e
GLC’s
Máquinas de
Turing
(667 – 680 de 1593)
Gramática Regular
LFA 2018/2
H. Longo
Introdução
Fundamentos
matemáticos
Alfabetos e
linguagens Definição 5.8
Autômatos
finitos
A aplicação de A → w à variável A em uA gera a cadeia uw (em Au gera a
Linguagens e cadeia wu).
gramáticas
regulares Se (A → w) ∈ P, então uA → uw.
Gramáticas regulares
Autômatos finitos e
conjuntos regulares
Autômatos finitos e
gramáticas regulares
Pumping Lemma para
linguagens regulares
Linguagens
livres de
contexto
Autômatos
com pilha e
GLC’s
Máquinas de
Turing
(668 – 680 de 1593)
Gramática Regular
LFA 2018/2
H. Longo
Introdução
Fundamentos
matemáticos
Alfabetos e
linguagens Definição 5.8
Autômatos
finitos
A aplicação de A → w à variável A em uA gera a cadeia uw (em Au gera a
Linguagens e cadeia wu).
gramáticas
regulares Se (A → w) ∈ P, então uA → uw.
Gramáticas regulares
∗
Autômatos finitos e
conjuntos regulares
u =⇒ v se u = v ou ∃ u1 , u2 , . . . , uk , k ≥ 0 tal que u → u1 → u2 ⇒ · · · → uk → v.
Autômatos finitos e
gramáticas regulares
Pumping Lemma para
linguagens regulares
Linguagens
livres de
contexto
Autômatos
com pilha e
GLC’s
Máquinas de
Turing
(669 – 680 de 1593)
Gramática Regular
LFA 2018/2
H. Longo
Introdução
Fundamentos
matemáticos Exemplo 5.9
Alfabetos e ( )
S → 0S | 1A
G = (V = {A, S }, Σ = {0, 1}, P, S ), onde: P =
linguagens
.
Autômatos A → 1A | ε
finitos
Linguagens e
gramáticas Expressão regular: 0∗ 1+ .
regulares
Gramáticas regulares
Autômatos finitos e
conjuntos regulares
Autômatos finitos e
Derivação da cadeia 00011:
gramáticas regulares
Pumping Lemma para
linguagens regulares
S → 0S → 00S → 000S → 0001A → 00011A → 00011ε ≡ 00011.
Linguagens
livres de
contexto
Autômatos
com pilha e
GLC’s
Máquinas de
Turing
(670 – 680 de 1593)
Linguagem Regular
LFA 2018/2
H. Longo
Introdução
Fundamentos
matemáticos
Alfabetos e
linguagens
Autômatos
Uma linguagem é regular se pode ser gerada por uma gramática regular.
finitos
Uma linguagem regular pode ser gerada por gramática não regular.
Linguagens e
gramáticas
regulares
As formas sentenciais de uma gramática regular contêm no máximo uma
Gramáticas regulares variável (símbolo mais a direita na cadeia).
Autômatos finitos e
conjuntos regulares
Autômatos finitos e
gramáticas regulares
Pumping Lemma para
linguagens regulares
Linguagens
livres de
contexto
Autômatos
com pilha e
GLC’s
Máquinas de
Turing
(671 – 680 de 1593)
Gramática regular e linguagem regular
LFA 2018/2
Alfabetos e
linguagens Teorema 5.11
Se L é uma linguagem regular sobre o alfabeto Σ, então existe uma gramática
Autômatos
finitos
H. Longo
Exemplo 5.14
Introdução A linguagem L = {a+ b∗ | a, b ∈ Σ} é regular, G1 não é regular e G2 é regular:
Fundamentos
matemáticos G1 = (V1 , Σ, P1 , S ), onde:
Alfabetos e
linguagens V1 = {S , A, B},
Autômatos
finitos
Σ = {a, b},
Linguagens e
S → AB
P1 = .
gramáticas
A → aA | a
regulares
Gramáticas regulares
B → bB | ε
Autômatos finitos e
conjuntos regulares
Autômatos finitos e
gramáticas regulares G2 = (V2 , Σ, P2 , S ), onde:
Pumping Lemma para
linguagens regulares
Linguagens
V2 = {S , B},
livres de
contexto Σ = {a, b},
( )
Autômatos S → aS | aB
com pilha e P2 = .
GLC’s B → bB | ε
Máquinas de
Turing
(673 – 680 de 1593)
Gramática Regular
LFA 2018/2
H. Longo
Linguagens
livres de
contexto
Autômatos
com pilha e
GLC’s
Máquinas de
Turing
(674 – 680 de 1593)
Gramática Regular
LFA 2018/2
H. Longo
Linguagens
livres de
contexto
Autômatos
com pilha e
GLC’s
Máquinas de
Turing
(675 – 680 de 1593)
Gramática Regular
LFA 2018/2
H. Longo
S → aB | ε
Autômatos finitos e
gramáticas regulares
Pumping Lemma para
P1 = .
B → bS | bA
linguagens regulares
Linguagens A → aA | ε
livres de
contexto
Autômatos
com pilha e
GLC’s
Máquinas de
Turing
(676 – 680 de 1593)
Gramática regulares
LFA 2018/2
H. Longo
Introdução
Fundamentos
matemáticos
Autômatos
L = {w ∈ {a, b}∗ | |w| é par }.
finitos
Gramática G = (V = {A, S }, Σ = {a, b}, P, S ), onde:
Linguagens e
gramáticas
regulares
Gramáticas regulares
Autômatos finitos e
conjuntos regulares
Autômatos finitos e
gramáticas regulares
Pumping Lemma para
linguagens regulares
Linguagens
livres de
contexto
Autômatos
com pilha e
GLC’s
Máquinas de
Turing
(677 – 680 de 1593)
Gramática regulares
LFA 2018/2
H. Longo
Introdução
Fundamentos
matemáticos
Autômatos
L = {w ∈ {a, b}∗ | |w| é par }.
finitos
Gramática G = (V = {A, S }, Σ = {a, b}, P, S ), onde:
Linguagens e
gramáticas
S → aA | bA | ε
( )
regulares
Gramáticas regulares P= .
Autômatos finitos e
conjuntos regulares
A → aS | bS | a | b
Autômatos finitos e
gramáticas regulares
Pumping Lemma para
linguagens regulares
Linguagens
livres de
contexto
Autômatos
com pilha e
GLC’s
Máquinas de
Turing
(678 – 680 de 1593)
Gramática regulares
LFA 2018/2
H. Longo
Introdução
Exemplo 5.17
Fundamentos
matemáticos L = {a, b}∗ ∪ {a, c}∗ ∪ {b, c}∗ .
Alfabetos e
linguagens Gramática G = (V = {A, B, C, S }, Σ = {a, b, c}, P, S ), onde:
Autômatos
finitos
Linguagens e
gramáticas
regulares
Gramáticas regulares
Autômatos finitos e
conjuntos regulares
Autômatos finitos e
gramáticas regulares
Pumping Lemma para
linguagens regulares
Linguagens
livres de
contexto
Autômatos
com pilha e
GLC’s
Máquinas de
Turing
(679 – 680 de 1593)
Gramática regulares
LFA 2018/2
H. Longo
Introdução
Exemplo 5.17
Fundamentos
matemáticos L = {a, b}∗ ∪ {a, c}∗ ∪ {b, c}∗ .
Alfabetos e
linguagens Gramática G = (V = {A, B, C, S }, Σ = {a, b, c}, P, S ), onde:
Autômatos
S →ε
finitos
S → aB | aC
Linguagens e
gramáticas
regulares
Gramáticas regulares
S → bA | bC
P= .
S → cA | cB
Autômatos finitos e
conjuntos regulares
A → bA | cA | ε
Autômatos finitos e
gramáticas regulares
B → aB | cB | ε
Pumping Lemma para
linguagens regulares
C → aC | bC | ε
Linguagens
livres de
contexto
Autômatos
com pilha e
GLC’s
Máquinas de
Turing
(680 – 680 de 1593)
LFA 2018/2
H. Longo
Introdução
Fundamentos
matemáticos
Alfabetos e
linguagens
Linguagens e
gramáticas
regulares
Gramáticas regulares Autômatos finitos e conjuntos regulares
Autômatos finitos e
conjuntos regulares
Autômatos finitos e
gramáticas regulares
Pumping Lemma para
linguagens regulares
Linguagens
livres de
contexto
Autômatos
com pilha e
GLC’s
Máquinas de
Turing
(681 – 749 de 1593)
Conjuntos Regulares
LFA 2018/2
H. Longo
Introdução
Fundamentos
matemáticos
Autômatos Base: ∅, {ε} e {a}, para todo a ∈ Σ, são conjuntos regulares sobre Σ.
finitos
Recursão: se X e Y são conjuntos regulares sobre Σ, então X ∪ Y , XY e X ∗
Linguagens e
gramáticas também são conjuntos regulares sobre Σ.
regulares
Gramáticas regulares
Fecho: X é um conjunto regular sobre Σ se pode ser obtido, a partir dos
Autômatos finitos e
conjuntos regulares conjuntos regulares básicos, com a aplicação da recursão um
Autômatos finitos e
gramáticas regulares número finito de vezes.
Pumping Lemma para
linguagens regulares
Linguagens
livres de
contexto
Autômatos
com pilha e
GLC’s
Máquinas de
Turing
(682 – 749 de 1593)
Linguagens e conjuntos regulares
LFA 2018/2
H. Longo
Introdução
Fundamentos
matemáticos
Alfabetos e
Autômatos
finitos
Linguagens e
gramáticas
regulares
Gramáticas regulares
Autômatos finitos e
conjuntos regulares
Autômatos finitos e
gramáticas regulares
Pumping Lemma para
linguagens regulares
Linguagens
livres de
contexto
Autômatos
com pilha e
GLC’s
Máquinas de
Turing
(683 – 749 de 1593)
Linguagens e conjuntos regulares
LFA 2018/2
H. Longo
Introdução
Fundamentos
matemáticos
Alfabetos e
Autômatos
finitos A família de linguagens aceitas por autômatos consiste de conjuntos
Linguagens e regulares sobre Σ:
gramáticas
regulares
Gramáticas regulares
Autômatos finitos e
conjuntos regulares
Autômatos finitos e
gramáticas regulares
Pumping Lemma para
linguagens regulares
Linguagens
livres de
contexto
Autômatos
com pilha e
GLC’s
Máquinas de
Turing
(684 – 749 de 1593)
Linguagens e conjuntos regulares
LFA 2018/2
H. Longo
Introdução
Fundamentos
matemáticos
Alfabetos e
Autômatos
finitos A família de linguagens aceitas por autômatos consiste de conjuntos
Linguagens e regulares sobre Σ:
gramáticas
regulares 1 Todo conjunto regular é aceito por um NFA-ε.
Gramáticas regulares
Autômatos finitos e
2 Toda linguagem aceita por um autômato é um conjunto regular.
conjuntos regulares
Autômatos finitos e
gramáticas regulares
Pumping Lemma para
linguagens regulares
Linguagens
livres de
contexto
Autômatos
com pilha e
GLC’s
Máquinas de
Turing
(685 – 749 de 1593)
Linguagens e conjuntos regulares
LFA 2018/2
H. Longo
Lema 5.18
Todo conjunto regular é aceito por um NFA-ε.
Introdução
Fundamentos
matemáticos
Alfabetos e
linguagens
Autômatos
finitos
Linguagens e
gramáticas
regulares
Gramáticas regulares
Autômatos finitos e
conjuntos regulares
Autômatos finitos e
gramáticas regulares
Pumping Lemma para
linguagens regulares
Linguagens
livres de
contexto
Autômatos
com pilha e
GLC’s
Máquinas de
Turing
(686 – 749 de 1593)
Linguagens e conjuntos regulares
LFA 2018/2
H. Longo
Lema 5.18
Todo conjunto regular é aceito por um NFA-ε.
Introdução
Fundamentos
matemáticos
Alfabetos e Demonstração.
linguagens
Linguagens e Base: ∅, {ε} e {a}, para todo a ∈ Σ, são conjuntos regulares sobre Σ.
gramáticas
regulares Recursão: Se X e Y são conjuntos regulares sobre Σ, então X ∪ Y , XY e X ∗
também são conjuntos regulares sobre Σ.
Gramáticas regulares
Autômatos finitos e
conjuntos regulares
Autômatos finitos e
gramáticas regulares Fecho: X é um conjunto regular sobre Σ se pode ser obtido, a partir dos
Pumping Lemma para
linguagens regulares conjuntos regulares básicos, com a aplicação da recursão um número
Linguagens
livres de
finito de vezes.
contexto
Autômatos
com pilha e
GLC’s
Máquinas de
Turing
(687 – 749 de 1593)
Linguagens e conjuntos regulares
LFA 2018/2
H. Longo
Lema 5.18
Todo conjunto regular é aceito por um NFA-ε.
Introdução
Fundamentos
matemáticos
Alfabetos e Demonstração.
linguagens
Autômatos Conjuntos regulares são construídos a partir dos conjuntos básicos usando
finitos
operações de união, concatenação e fecho de Kleene.
Linguagens e
gramáticas
regulares
Transições ε podem ser usadas para construir máquinas mais complexas a
Gramáticas regulares partir de outras máquinas já existentes.
Autômatos finitos e
conjuntos regulares
Autômatos finitos e
gramáticas regulares
Pumping Lemma para
linguagens regulares
Linguagens
livres de
contexto
Autômatos
com pilha e
GLC’s
Máquinas de
Turing
(688 – 749 de 1593)
Linguagens e conjuntos regulares
LFA 2018/2
H. Longo
Lema 5.18
Todo conjunto regular é aceito por um NFA-ε.
Introdução
Fundamentos
matemáticos
Alfabetos e Demonstração.
linguagens
Linguagens e
gramáticas s0 sf
regulares
Gramáticas regulares
Autômatos finitos e
conjuntos regulares
Autômatos finitos e a sf
gramáticas regulares s0
Pumping Lemma para
linguagens regulares
Linguagens
livres de
contexto ε sf
s0
Autômatos
com pilha e
GLC’s
Máquinas de
Turing
(689 – 749 de 1593)
Linguagens e conjuntos regulares
LFA 2018/2
H. Longo
Lema 5.18
Todo conjunto regular é aceito por um NFA-ε.
Introdução
Fundamentos
matemáticos
Alfabetos e Demonstração.
linguagens
Linguagens e
gramáticas s0,M1 M1 s f,M1
regulares
Gramáticas regulares
ε ε
Autômatos finitos e
conjuntos regulares
Autômatos finitos e s0 sf
gramáticas regulares
Pumping Lemma para
linguagens regulares
ε ε
Linguagens s0,M2 M2 s f,M2
livres de
contexto
Autômatos
com pilha e
GLC’s
Máquinas de
Turing
(690 – 749 de 1593)
Linguagens e conjuntos regulares
LFA 2018/2
H. Longo
Lema 5.18
Todo conjunto regular é aceito por um NFA-ε.
Introdução
Fundamentos
matemáticos
Alfabetos e Demonstração.
linguagens
Linguagens e
s f,M1 ε s f,M2
gramáticas s0,M1 M1 s0,M2 M2
regulares
Gramáticas regulares
Autômatos finitos e
conjuntos regulares
Autômatos finitos e
gramáticas regulares
Pumping Lemma para
linguagens regulares
Linguagens
livres de
contexto
Autômatos
com pilha e
GLC’s
Máquinas de
Turing
(691 – 749 de 1593)
Linguagens e conjuntos regulares
LFA 2018/2
H. Longo
Lema 5.18
Todo conjunto regular é aceito por um NFA-ε.
Introdução
Fundamentos
matemáticos
Alfabetos e Demonstração.
linguagens
ε
linguagens regulares
Linguagens
livres de
contexto
Autômatos
com pilha e
GLC’s
Máquinas de
Turing
(692 – 749 de 1593)
Linguagens e conjuntos regulares
LFA 2018/2
H. Longo
Introdução
Exemplo 5.19
Fundamentos
matemáticos A técnica usada na demonstração do lema 5.18 pode ser usada para
Alfabetos e
linguagens
construir um NFA-ε que aceite (a ∪ b)∗ ba.
Autômatos
finitos
Linguagens e
gramáticas
regulares
Gramáticas regulares
Autômatos finitos e
conjuntos regulares
Autômatos finitos e
gramáticas regulares
Pumping Lemma para
linguagens regulares
Linguagens
livres de
contexto
Autômatos
com pilha e
GLC’s
Máquinas de
Turing
(693 – 749 de 1593)
Linguagens e conjuntos regulares
LFA 2018/2
H. Longo
Introdução
Exemplo 5.19
Fundamentos
matemáticos NFA-ε que aceita (a ∪ b)∗ ba.
Alfabetos e
linguagens
1 Máquinas que aceitam a e b:
Autômatos
a s f,1 b s f,2
finitos
s0,1 s0,2
Linguagens e
gramáticas
regulares
Gramáticas regulares
Autômatos finitos e
conjuntos regulares
Autômatos finitos e
gramáticas regulares
Pumping Lemma para
linguagens regulares
Linguagens
livres de
contexto
Autômatos
com pilha e
GLC’s
Máquinas de
Turing
(694 – 749 de 1593)
Linguagens e conjuntos regulares
LFA 2018/2
H. Longo
Introdução
Exemplo 5.19
Fundamentos
matemáticos NFA-ε que aceita (a ∪ b)∗ ba.
Alfabetos e
linguagens
2 Máquina que aceita ba:
ε
Autômatos
b s f,2 a s f,1
finitos
s0,2 s0,1
Linguagens e
gramáticas
regulares
Gramáticas regulares
Autômatos finitos e
conjuntos regulares
Autômatos finitos e
gramáticas regulares
Pumping Lemma para
linguagens regulares
Linguagens
livres de
contexto
Autômatos
com pilha e
GLC’s
Máquinas de
Turing
(695 – 749 de 1593)
Linguagens e conjuntos regulares
LFA 2018/2
H. Longo
Introdução
Exemplo 5.19
Fundamentos
matemáticos NFA-ε que aceita (a ∪ b)∗ ba.
Alfabetos e
linguagens
3 Máquina que aceita a ∪ b:
Autômatos
a s f,1
finitos
s0,1
Linguagens e ε ε
gramáticas
regulares
Gramáticas regulares
s0,3 s f,3
Autômatos finitos e
conjuntos regulares
ε s f,2 ε
Autômatos finitos e
gramáticas regulares
s0,2
Pumping Lemma para b
linguagens regulares
Linguagens
livres de
contexto
Autômatos
com pilha e
GLC’s
Máquinas de
Turing
(696 – 749 de 1593)
Linguagens e conjuntos regulares
LFA 2018/2
H. Longo
Introdução
Exemplo 5.19
Fundamentos
matemáticos NFA-ε que aceita (a ∪ b)∗ ba.
Alfabetos e
linguagens
4 Máquina que aceita (a ∪ b)∗ :
Autômatos
ε
finitos
Linguagens e a
gramáticas s0,1 s f,1
regulares ε ε
Gramáticas regulares
ε s f,3 ε s f,4
Autômatos finitos e
conjuntos regulares
s0,4 s0,3
Autômatos finitos e
gramáticas regulares
ε s f,2 ε
Pumping Lemma para
linguagens regulares
s0,2 ε
b
Linguagens
livres de
contexto
Autômatos
com pilha e
GLC’s
Máquinas de
Turing
(697 – 749 de 1593)
Linguagens e conjuntos regulares
LFA 2018/2
H. Longo
Introdução
Exemplo 5.19
Fundamentos
matemáticos NFA-ε que aceita (a ∪ b)∗ ba:
Alfabetos e
linguagens ε
a s f,1
Autômatos s0,1
ε ε
finitos ε ε s f,3 ε s f,4 ε b s f,2 ε a s f,1
s0,5 s0,4 s0,3 s0,2 s0,1
Linguagens e ε s f,2 ε
s0,2 ε
gramáticas b
regulares
Gramáticas regulares
Autômatos finitos e
conjuntos regulares
Autômatos finitos e
gramáticas regulares
Pumping Lemma para
linguagens regulares
Linguagens
livres de
contexto
Autômatos
com pilha e
GLC’s
Máquinas de
Turing
(698 – 749 de 1593)
Linguagens e conjuntos regulares
LFA 2018/2
H. Longo
Introdução
Exemplo 5.19
Fundamentos
matemáticos NFA que aceita (a ∪ b)∗ ba:
Alfabetos e
linguagens a, b
Autômatos
finitos
b a s f,6
Linguagens e
s0,6
gramáticas
regulares
Gramáticas regulares
Autômatos finitos e
conjuntos regulares
Autômatos finitos e
gramáticas regulares
Pumping Lemma para
linguagens regulares
Linguagens
livres de
contexto
Autômatos
com pilha e
GLC’s
Máquinas de
Turing
(699 – 749 de 1593)
Fecho de linguagens regulares
LFA 2018/2
H. Longo
Introdução
Linguagens
livres de
contexto
Autômatos
com pilha e
GLC’s
Máquinas de
Turing
(700 – 749 de 1593)
Fecho de linguagens regulares
LFA 2018/2
H. Longo
Introdução
Linguagens
livres de
contexto
Autômatos
com pilha e
GLC’s
Máquinas de
Turing
(701 – 749 de 1593)
Fecho de linguagens regulares
LFA 2018/2
H. Longo
Introdução
Autômatos
com pilha e
GLC’s
Máquinas de
Turing
(702 – 749 de 1593)
Fecho de linguagens regulares
LFA 2018/2
H. Longo
Introdução
Fundamentos
matemáticos Teorema 5.21
Alfabetos e Se L1 e L2 são duas linguagens regulares, então L1 ∪ L2 , L1 L2 e L∗1 são
linguagens
linguagens regulares.
Autômatos
finitos
Linguagens e
gramáticas
regulares
Gramáticas regulares
Autômatos finitos e
conjuntos regulares
Autômatos finitos e
gramáticas regulares
Pumping Lemma para
linguagens regulares
Linguagens
livres de
contexto
Autômatos
com pilha e
GLC’s
Máquinas de
Turing
(703 – 749 de 1593)
Fecho de linguagens regulares
LFA 2018/2
H. Longo
Introdução
Fundamentos
matemáticos Teorema 5.21
Alfabetos e Se L1 e L2 são duas linguagens regulares, então L1 ∪ L2 , L1 L2 e L∗1 são
linguagens
linguagens regulares.
Autômatos
finitos
Linguagens e
gramáticas
Demonstração.
regulares
Gramáticas regulares A definição recursiva de conjuntos regulares estabelece o fecho para essas
Autômatos finitos e
conjuntos regulares operações. Além disso, essas linguagens são aceitas por NFA-ε (veja o
Autômatos finitos e
gramáticas regulares teorema correspondente).
Pumping Lemma para
linguagens regulares
Linguagens
livres de
contexto
Autômatos
com pilha e
GLC’s
Máquinas de
Turing
(704 – 749 de 1593)
Fecho de linguagens regulares
LFA 2018/2
H. Longo
Introdução
Fundamentos
matemáticos Teorema 5.22
Alfabetos e
linguagens Se L é uma linguagem regular, então a linguagem L é regular.
Autômatos
finitos
Linguagens e
gramáticas
regulares
Gramáticas regulares
Autômatos finitos e
conjuntos regulares
Autômatos finitos e
gramáticas regulares
Pumping Lemma para
linguagens regulares
Linguagens
livres de
contexto
Autômatos
com pilha e
GLC’s
Máquinas de
Turing
(705 – 749 de 1593)
Fecho de linguagens regulares
LFA 2018/2
H. Longo
Introdução
Fundamentos
matemáticos Teorema 5.22
Alfabetos e
linguagens Se L é uma linguagem regular, então a linguagem L é regular.
Autômatos
finitos
Linguagens e
Demonstração.
gramáticas
regulares Se L é regular sobre o alfabeto Σ, então L = Σ∗ − L também é regular. Um
Gramáticas regulares
Autômatos finitos e
conjuntos regulares
DFA que aceita a linguagem L pode ser construído a partir de outro que
Autômatos finitos e
gramáticas regulares
aceita a linguagem L.
Pumping Lemma para
linguagens regulares
Linguagens
livres de
contexto
Autômatos
com pilha e
GLC’s
Máquinas de
Turing
(706 – 749 de 1593)
Fecho de linguagens regulares
LFA 2018/2
H. Longo
Introdução
Alfabetos e
Se L1 e L2 são duas linguagens regulares, então a linguagem L1 ∩ L2 é
linguagens
regular.
Autômatos
finitos
Linguagens e
gramáticas
regulares
Gramáticas regulares
Autômatos finitos e
conjuntos regulares
Autômatos finitos e
gramáticas regulares
Pumping Lemma para
linguagens regulares
Linguagens
livres de
contexto
Autômatos
com pilha e
GLC’s
Máquinas de
Turing
(707 – 749 de 1593)
Fecho de linguagens regulares
LFA 2018/2
H. Longo
Introdução
Alfabetos e
Se L1 e L2 são duas linguagens regulares, então a linguagem L1 ∩ L2 é
linguagens
regular.
Autômatos
finitos
Linguagens e Demonstração.
gramáticas
regulares
Gramáticas regulares Pela lei de DeMorgan L1 ∩ L2 = L1 ∪ L2 .
Autômatos finitos e
conjuntos regulares
Autômatos finitos e O lado direito da igualdade é regular já que é construído a partir de L1 e de
gramáticas regulares
Pumping Lemma para
linguagens regulares
L2 usando as operações de união e complementação.
Linguagens
livres de
contexto
Autômatos
com pilha e
GLC’s
Máquinas de
Turing
(708 – 749 de 1593)
Fecho de linguagens regulares
LFA 2018/2
H. Longo
Introdução
Fundamentos
matemáticos
Alfabetos e
linguagens Exemplo 5.24
Autômatos
finitos
L1 = (a ∪ b)∗ aa(a ∪ b)∗ : cadeias que contém aa.
Linguagens e L2 = (a ∪ b)∗ bb(a ∪ b)∗ : cadeias que contém bb.
gramáticas
regulares
Gramáticas regulares
Autômatos finitos e
conjuntos regulares
Autômatos finitos e
gramáticas regulares
Pumping Lemma para
linguagens regulares
Linguagens
livres de
contexto
Autômatos
com pilha e
GLC’s
Máquinas de
Turing
(709 – 749 de 1593)
Fecho de linguagens regulares
LFA 2018/2
H. Longo
Introdução
Fundamentos
matemáticos
Alfabetos e
linguagens Exemplo 5.24
Autômatos
finitos
L1 = (a ∪ b)∗ aa(a ∪ b)∗ : cadeias que contém aa.
Linguagens e L2 = (a ∪ b)∗ bb(a ∪ b)∗ : cadeias que contém bb.
gramáticas
regulares
Gramáticas regulares
L : cadeias sobre {a, b} que contêm aa e não contêm bb.
Autômatos finitos e
conjuntos regulares
Autômatos finitos e
gramáticas regulares
Pumping Lemma para
linguagens regulares
Linguagens
livres de
contexto
Autômatos
com pilha e
GLC’s
Máquinas de
Turing
(710 – 749 de 1593)
Fecho de linguagens regulares
LFA 2018/2
H. Longo
Introdução
Fundamentos
matemáticos
Alfabetos e
linguagens Exemplo 5.24
Autômatos
finitos
L1 = (a ∪ b)∗ aa(a ∪ b)∗ : cadeias que contém aa.
Linguagens e L2 = (a ∪ b)∗ bb(a ∪ b)∗ : cadeias que contém bb.
gramáticas
regulares
Gramáticas regulares
L : cadeias sobre {a, b} que contêm aa e não contêm bb.
Autômatos finitos e
conjuntos regulares L = L1 ∩ L2 é regular.
Autômatos finitos e
gramáticas regulares
Pumping Lemma para
linguagens regulares
Linguagens
livres de
contexto
Autômatos
com pilha e
GLC’s
Máquinas de
Turing
(711 – 749 de 1593)
Caracterização de conjuntos regulares
LFA 2018/2
H. Longo
Introdução
Fundamentos
matemáticos
Alfabetos e
linguagens
Linguagens e Uma linguagem L é aceita por um DFA com alfabeto Σ se, e somente se, L é
gramáticas
regulares um conjunto regular sobre Σ.
Gramáticas regulares
Autômatos finitos e
conjuntos regulares
Autômatos finitos e
gramáticas regulares
Pumping Lemma para
linguagens regulares
Linguagens
livres de
contexto
Autômatos
com pilha e
GLC’s
Máquinas de
Turing
(712 – 749 de 1593)
Equivalência com Autômato Finito
LFA 2018/2
H. Longo
Lema 5.26
Introdução Se uma linguagem L, sobre um alfabeto Σ, é regular, então alguma
Fundamentos
matemáticos
expressão regular R a descreve.
Alfabetos e
linguagens
Autômatos
finitos
Linguagens e
gramáticas
regulares
Gramáticas regulares
Autômatos finitos e
conjuntos regulares
Autômatos finitos e
gramáticas regulares
Pumping Lemma para
linguagens regulares
Linguagens
livres de
contexto
Autômatos
com pilha e
GLC’s
Máquinas de
Turing
(713 – 749 de 1593)
Equivalência com Autômato Finito
LFA 2018/2
H. Longo
Lema 5.26
Introdução Se uma linguagem L, sobre um alfabeto Σ, é regular, então alguma
Fundamentos
matemáticos
expressão regular R a descreve.
Alfabetos e
linguagens
Demonstração.
Autômatos
finitos L regular ⇒ L é reconhecida por algum DFA.
Linguagens e
gramáticas
regulares
Conversão de DFA numa expressão regular equivalente:
Gramáticas regulares
Autômatos finitos e
conjuntos regulares
1 conversão de DFA em GNFA.
Autômatos finitos e
gramáticas regulares 2 conversão de GNFA em expressão regular.
Pumping Lemma para
linguagens regulares
Autômatos
com pilha e
GLC’s
Máquinas de
Turing
(714 – 749 de 1593)
Equivalência com Autômato Finito
LFA 2018/2
H. Longo
Lema 5.26
Introdução Se uma linguagem L, sobre um alfabeto Σ, é regular, então alguma
Fundamentos
matemáticos
expressão regular R a descreve.
Alfabetos e
linguagens
Demonstração.
Autômatos
finitos Conversão de DFA numa expressão regular equivalente.
Linguagens e
gramáticas
k-DFA : autômato finito determinístico com k estados.
regulares `-GNFA : autômato finito não determinístico generalizado com ` estados.
Gramáticas regulares
Autômatos finitos e
(k + 2)-GNFA (k + 1)-GNFA
conjuntos regulares
Autômatos finitos e k-DFA
gramáticas regulares
Pumping Lemma para
linguagens regulares
Linguagens
livres de
contexto
Expressão
Autômatos
Regular
2-GNFA 3-GNFA
com pilha e
GLC’s
Máquinas de
Turing
(715 – 749 de 1593)
NFA Generalizado – GNFA
LFA 2018/2
H. Longo
Introdução
Linguagens
livres de
contexto
Autômatos
com pilha e
GLC’s
Máquinas de
Turing
(716 – 749 de 1593)
NFA Generalizado – GNFA
LFA 2018/2
H. Longo
Introdução
Linguagens
livres de
contexto
Autômatos
com pilha e
GLC’s
Máquinas de
Turing
(717 – 749 de 1593)
NFA Generalizado – GNFA
LFA 2018/2
H. Longo
Introdução
Linguagens
livres de
contexto
Autômatos
com pilha e
GLC’s
Máquinas de
Turing
(718 – 749 de 1593)
NFA Generalizado – GNFA
LFA 2018/2
H. Longo
Introdução
Linguagens
livres de
contexto
Autômatos
com pilha e
GLC’s
Máquinas de
Turing
(719 – 749 de 1593)
NFA Generalizado – GNFA
LFA 2018/2
H. Longo
Introdução
Linguagens
livres de
contexto
Autômatos
com pilha e
GLC’s
Máquinas de
Turing
(720 – 749 de 1593)
NFA Generalizado – GNFA
LFA 2018/2
H. Longo
Introdução
Linguagens
livres de
contexto
Autômatos
com pilha e
GLC’s
Máquinas de
Turing
(721 – 749 de 1593)
NFA Generalizado – GNFA
LFA 2018/2
H. Longo
Introdução
Autômatos
com pilha e
GLC’s
Máquinas de
Turing
(722 – 749 de 1593)
NFA Generalizado – GNFA
LFA 2018/2
H. Longo
Introdução
Autômatos
com pilha e
GLC’s
Máquinas de
Turing
(723 – 749 de 1593)
NFA Generalizado – GNFA
LFA 2018/2
H. Longo
Introdução
Alfabetos e
Um GNFA é definido por uma quíntupla hΣ, S , sini , δ, s f im i, onde:
linguagens
Linguagens
livres de
s f im : estado final.
contexto
Autômatos
com pilha e
GLC’s
Máquinas de
Turing
(724 – 749 de 1593)
NFA Generalizado – GNFA
LFA 2018/2
H. Longo
Introdução
Linguagens e
GNFA G = hΣ, S , sini , δ, s f im i.
gramáticas
regulares
Gramáticas regulares
Autômatos finitos e
conjuntos regulares
Autômatos finitos e
gramáticas regulares
Pumping Lemma para
linguagens regulares
Linguagens
livres de
contexto
Autômatos
com pilha e
GLC’s
Máquinas de
Turing
(725 – 749 de 1593)
NFA Generalizado – GNFA
LFA 2018/2
H. Longo
Introdução
Linguagens e
GNFA G = hΣ, S , sini , δ, s f im i.
gramáticas
regulares G reconhece a cadeia w se existe uma seqüência de estados s0 , s1 , . . . , sk tal
Gramáticas regulares
Autômatos finitos e que:
conjuntos regulares
Autômatos finitos e
gramáticas regulares s0 = sini é o estado inicial,
Pumping Lemma para
linguagens regulares
sk = s f im é o estado final,
wi ∈ L(Ri ), para cada i, onde Ri = δ(si−1 , si ).
Linguagens
livres de
contexto
Autômatos
com pilha e
GLC’s
Máquinas de
Turing
(726 – 749 de 1593)
Conversão de DFA em GNFA
LFA 2018/2
H. Longo
Introdução
Fundamentos
matemáticos DFA = hΣ, S , s0 , δ1 , Fi.
Alfabetos e
linguagens
Autômatos
GNFA = hΣ, S , sini , δ, s f im i.
finitos
Linguagens e
gramáticas
regulares
Gramáticas regulares
Autômatos finitos e
conjuntos regulares
Autômatos finitos e
gramáticas regulares
Pumping Lemma para
linguagens regulares
Linguagens
livres de
contexto
Autômatos
com pilha e
GLC’s
Máquinas de
Turing
(727 – 749 de 1593)
Conversão de DFA em GNFA
LFA 2018/2
H. Longo
Introdução
Fundamentos
matemáticos DFA = hΣ, S , s0 , δ1 , Fi.
Alfabetos e
linguagens
Autômatos
GNFA = hΣ, S , sini , δ, s f im i.
Novo estado sini , com transição δ(sini , s0 ) = ε.
finitos
Linguagens e
gramáticas
regulares
Gramáticas regulares
Autômatos finitos e
conjuntos regulares
Autômatos finitos e
gramáticas regulares
Pumping Lemma para
linguagens regulares
Linguagens
livres de
contexto
Autômatos
com pilha e
GLC’s
Máquinas de
Turing
(728 – 749 de 1593)
Conversão de DFA em GNFA
LFA 2018/2
H. Longo
Introdução
Fundamentos
matemáticos DFA = hΣ, S , s0 , δ1 , Fi.
Alfabetos e
linguagens
Autômatos
GNFA = hΣ, S , sini , δ, s f im i.
Novo estado sini , com transição δ(sini , s0 ) = ε.
finitos
Linguagens e
gramáticas
regulares
Novo estado s f im , com transições δ(s, s f im ) = ε, ∀ s ∈ F .
Gramáticas regulares
Autômatos finitos e
conjuntos regulares
Autômatos finitos e
gramáticas regulares
Pumping Lemma para
linguagens regulares
Linguagens
livres de
contexto
Autômatos
com pilha e
GLC’s
Máquinas de
Turing
(729 – 749 de 1593)
Conversão de DFA em GNFA
LFA 2018/2
H. Longo
Introdução
Fundamentos
matemáticos DFA = hΣ, S , s0 , δ1 , Fi.
Alfabetos e
linguagens
Autômatos
GNFA = hΣ, S , sini , δ, s f im i.
Novo estado sini , com transição δ(sini , s0 ) = ε.
finitos
Linguagens e
gramáticas
regulares
Novo estado s f im , com transições δ(s, s f im ) = ε, ∀ s ∈ F .
Gramáticas regulares
Autômatos finitos e União de múltiplas transicões entre estados:
conjuntos regulares
Autômatos finitos e
gramáticas regulares
δ(si , a) = s j e δ(si , b) = s j ⇒ δ(si , s j ) = a ∪ b.
Pumping Lemma para
linguagens regulares
Linguagens
livres de
contexto
Autômatos
com pilha e
GLC’s
Máquinas de
Turing
(730 – 749 de 1593)
Conversão de DFA em GNFA
LFA 2018/2
H. Longo
Introdução
Fundamentos
matemáticos DFA = hΣ, S , s0 , δ1 , Fi.
Alfabetos e
linguagens
Autômatos
GNFA = hΣ, S , sini , δ, s f im i.
Novo estado sini , com transição δ(sini , s0 ) = ε.
finitos
Linguagens e
gramáticas
regulares
Novo estado s f im , com transições δ(s, s f im ) = ε, ∀ s ∈ F .
Gramáticas regulares
Autômatos finitos e União de múltiplas transicões entre estados:
conjuntos regulares
Autômatos finitos e
gramáticas regulares
δ(si , a) = s j e δ(si , b) = s j ⇒ δ(si , s j ) = a ∪ b.
Pumping Lemma para
δ(si , a) , s j , ∀ a ∈ Σ ⇒ δ(si , s j ) = ∅.
linguagens regulares
Linguagens
livres de
contexto
Autômatos
com pilha e
GLC’s
Máquinas de
Turing
(731 – 749 de 1593)
Conversão de GNFA em expressão regular
LFA 2018/2
H. Longo
Introdução
Algoritmo 7: Converte(G,R)
Fundamentos
matemáticos Entrada: GNFA G = hΣ, S , sini , δ, s f im i.
Alfabetos e Saída: Expressão regular R
linguagens
1 k ← |S |;
Autômatos 2 se (k = 2) então
finitos
3 retorna R;
Linguagens e 4 senão
gramáticas
5 sr ← s ∈ S , tal que s , sini e s , s f im .;
regulares
Gramáticas regulares
6 S 0 ← S − {sr };
Autômatos finitos e 7 δ0 (si , s j ) ← (R1 )(R2 )∗ (R3 ) ∪ (R4 ), ∀ si ∈ S 0 − {sini } e s j ∈ S 0 − {s f im }, onde:
conjuntos regulares
R1 = δ(si , sr )
Autômatos finitos e
R2 = δ(sr , sr )
gramáticas regulares
Pumping Lemma para
R3 = δ(sr , s j )
linguagens regulares
R4 = δ(si , s j ).
Linguagens
livres de
contexto
8 Converte(G0 = hΣ, S 0 , sini , δ0 , s f im i,R);
Autômatos
com pilha e
GLC’s
Máquinas de
Turing
(732 – 749 de 1593)
Expressão regular e autômato finito
LFA 2018/2
H. Longo
Introdução
Fundamentos
matemáticos
Alfabetos e
Resumo das operações de exclusão de um vértice:
linguagens
r j, j
Autômatos
finitos
ri, j r j,k ri, j r j,k
Linguagens e i j k i j k
gramáticas
regulares
Gramáticas regulares
Autômatos finitos e
conjuntos regulares ri, j r j,k ri, j (r j, j )∗ r j,k
Autômatos finitos e
gramáticas regulares
i k i k
Pumping Lemma para
linguagens regulares
Linguagens
livres de
contexto
Autômatos
com pilha e
GLC’s
Máquinas de
Turing
(733 – 749 de 1593)
Expressão regular e autômato finito
LFA 2018/2
H. Longo
Introdução
Resumo das operações de exclusão de um vértice:
Fundamentos
matemáticos ri,k
Alfabetos e
linguagens
Autômatos i k
finitos
Linguagens e
gramáticas
regulares r j, j
Gramáticas regulares
Autômatos finitos e
ri, j r j,k
conjuntos regulares
Autômatos finitos e j
gramáticas regulares
Pumping Lemma para
linguagens regulares
Máquinas de
Turing
(734 – 749 de 1593)
Conversão de GNFA em expressão regular
LFA 2018/2
H. Longo
Autômatos
finitos
Linguagens e
gramáticas
regulares
Gramáticas regulares
Autômatos finitos e
conjuntos regulares
Autômatos finitos e
gramáticas regulares
Pumping Lemma para
linguagens regulares
Linguagens
livres de
contexto
Autômatos
com pilha e
GLC’s
Máquinas de
Turing
(735 – 749 de 1593)
Conversão de GNFA em expressão regular
LFA 2018/2
H. Longo
Autômatos
finitos Demonstração.
Linguagens e
gramáticas Indução no número k de estados de G:
regulares
Gramáticas regulares
Autômatos finitos e
conjuntos regulares Base: k = 2 ⇒ R = δ(sini , s f im ).
Autômatos finitos e
gramáticas regulares
Pumping Lemma para
linguagens regulares
Linguagens
livres de
contexto
Autômatos
com pilha e
GLC’s
Máquinas de
Turing
(736 – 749 de 1593)
Conversão de GNFA em expressão regular
LFA 2018/2
H. Longo
Autômatos
finitos Demonstração.
Linguagens e
gramáticas Indução no número k de estados de G:
regulares
Gramáticas regulares
Autômatos finitos e
conjuntos regulares Passo 1: Suponha que G aceita uma cadeia w:
Autômatos finitos e
gramáticas regulares
Pumping Lemma para
∃ sini ≡ s0 , s1 , s2 , s3 , . . . , sq ≡ s f im
linguagens regulares
sr , s1 , s2 , s3 , . . . , sq−1 ⇒ G0 aceita w
sr = s p , 1 ≤ p ≤ q − 1 ⇒ R0 = δ0 (si , s j ) descreve w (G0 aceita w).
Linguagens
livres de
contexto
Autômatos
com pilha e
GLC’s
Máquinas de
Turing
(737 – 749 de 1593)
Conversão de GNFA em expressão regular
LFA 2018/2
H. Longo
Autômatos
finitos Demonstração.
Linguagens e
gramáticas Indução no número k de estados de G:
regulares
Gramáticas regulares
Autômatos finitos e
conjuntos regulares Passo 2: Suponha que G0 aceita uma cadeia w:
Autômatos finitos e
gramáticas regulares
Pumping Lemma para
δ0 (si , s j ) descreve coleção de cadeias reconhecidas entre si e s j em
linguagens regulares
G, passando ou não por sr .
Linguagens
livres de
contexto
G e G0 são equivalentes.
Autômatos
com pilha e
GLC’s
Máquinas de
Turing
(738 – 749 de 1593)
Conversão de GNFA em expressão regular
LFA 2018/2
H. Longo
Introdução
Fundamentos
matemáticos
Alfabetos e
linguagens Exemplo 5.31
Autômatos
finitos a a a,
∪b
Linguagens e
gramáticas
ε ε(a)
a∗∗b(ab∪∪b)
(b(a ∗∗
b(a
b(a
b) b)∗∗ε
)∪∪b) ε
regulares
Gramáticas regulares
sini s0 s1 s f im
Autômatos finitos e
conjuntos regulares
Autômatos finitos e
gramáticas regulares
Pumping Lemma para
linguagens regulares
Linguagens
livres de
contexto
Autômatos
com pilha e
GLC’s
Máquinas de
Turing
(739 – 749 de 1593)
Conversão de GNFA em expressão regular
LFA 2018/2
H. Longo
Introdução
Fundamentos
matemáticos
Alfabetos e
linguagens Exemplo 5.31
Autômatos
finitos
a a a,
∪b
Linguagens e
gramáticas
ε ε(a)
a∗∗b(ab∪∪b)
(b(a ∗∗
b)
b(a
b(a b)∗∗ε
)∪∪b) ε
regulares sini s0 s1 s f im
Gramáticas regulares
Autômatos finitos e
conjuntos regulares
Autômatos finitos e
gramáticas regulares
Pumping Lemma para
linguagens regulares
Linguagens
livres de
contexto
Autômatos
com pilha e
GLC’s
Máquinas de
Turing
(740 – 749 de 1593)
Conversão de GNFA em expressão regular
LFA 2018/2
H. Longo
Introdução
Fundamentos
matemáticos
Alfabetos e
linguagens Exemplo 5.31
Autômatos
finitos
a a a,
∪b
Linguagens e
gramáticas
ε ε(a)
a∗∗b(ab∪∪b)
(b(a ∗∗
b)
b(a
b(a b)∗∗ε
)∪∪b) ε
regulares sini s0 s1 s f im
Gramáticas regulares
Autômatos finitos e
conjuntos regulares
Autômatos finitos e
gramáticas regulares
Pumping Lemma para
linguagens regulares
Linguagens
livres de
contexto
Autômatos
com pilha e
GLC’s
Máquinas de
Turing
(741 – 749 de 1593)
Conversão de GNFA em expressão regular
LFA 2018/2
H. Longo
Introdução
Fundamentos
matemáticos
Alfabetos e
linguagens Exemplo 5.31
Autômatos
finitos
a a a,
∪b
Linguagens e
gramáticas
ε ε(a)
a∗∗b(ab∪∪b)
(b(a ∗∗
b)
b(a
b(a b)∗∗ε
)∪∪b) ε
regulares sini s0 s1 s f im
Gramáticas regulares
Autômatos finitos e
conjuntos regulares
Autômatos finitos e
gramáticas regulares
Pumping Lemma para
linguagens regulares
Linguagens
livres de
contexto
Autômatos
com pilha e
GLC’s
Máquinas de
Turing
(742 – 749 de 1593)
Conversão de GNFA em expressão regular
LFA 2018/2
H. Longo
Introdução
Fundamentos
matemáticos
Alfabetos e
linguagens Exemplo 5.31
Autômatos
finitos
a a a,
∪b
Linguagens e
gramáticas
ε ε(a)
a∗∗b(ab∪∪b)
(b(a ∗∗
b)
b(a
b(a b)∗∗ε
)∪∪b) ε
regulares sini s0 s1 s f im
Gramáticas regulares
Autômatos finitos e
conjuntos regulares
Autômatos finitos e
gramáticas regulares
Pumping Lemma para
linguagens regulares
Linguagens
livres de
contexto
Autômatos
com pilha e
GLC’s
Máquinas de
Turing
(743 – 749 de 1593)
Conversão de GNFA em expressão regular
LFA 2018/2
H. Longo
Introdução
Fundamentos
matemáticos
Alfabetos e
linguagens Exemplo 5.31
Autômatos
finitos
a a a,
∪b
Linguagens e
gramáticas
ε ε(a)
a∗∗b(ab∪∪b)
(b(a ∗∗
b)
b(a
b(a b)∗∗ε
)∪∪b) ε
regulares sini s0 s1 s f im
Gramáticas regulares
Autômatos finitos e
conjuntos regulares
Autômatos finitos e
gramáticas regulares
Pumping Lemma para
linguagens regulares
Linguagens
livres de
contexto
Autômatos
com pilha e
GLC’s
Máquinas de
Turing
(744 – 749 de 1593)
Conversão de GNFA em expressão regular
LFA 2018/2
H. Longo
Exemplo 5.32
Introdução
Fundamentos aa ∪ b
matemáticos
a
∗ ∗
ε ∪ b) ) ∪ (a(aa ∪ b) ab ∪ b)((ba
(a(aa a a(aa ∪ b)∗∪ b)∗ ab ∪ bb)∗ ((ba ∪ a)(aa ∪ b)∗ ∪εε)
∪ a)(aa
Alfabetos e sini s0 s1 s f im
linguagens
Autômatos a
finitos
Linguagens e
gramáticas b ba ∪ a
regulares b
a
(ba ∪ a)(aa ∪ b)∗ ∪ ε
Gramáticas regulares
a(aa ∪ b)∗ ab ∪ b
ε
Autômatos finitos e
conjuntos regulares b ab
Autômatos finitos e
gramáticas regulares
Pumping Lemma para
linguagens regulares
Linguagens
livres de s2
contexto
Autômatos
com pilha e (ba ∪ a)(aa ∪ b)∗ ab ∪ bb
bb
GLC’s
Máquinas de
Turing
(745 – 749 de 1593)
Conversão de GNFA em expressão regular
LFA 2018/2
H. Longo
Exemplo 5.32
Introdução
Fundamentos aa ∪ b
matemáticos a
Alfabetos e
∗ ∗
ε ∪ b) ) ∪ (a(aa ∪ b) ab ∪ b)((ba
(a(aa a a(aa ∪ b)∪ b) ab ∪ bb) ((ba ∪ a)(aa ∪ b)∗ ∪εε)
∪ a)(aa ∗ ∗ ∗
linguagens
sini s0 s1 s f im
Autômatos a
finitos
Linguagens e
gramáticas b ba ∪ a
regulares b
a
Gramáticas regulares
a(aa ∪ b)∗ ab ∪ b (ba ∪ a)(aa ∪ b)∗ ∪ ε
ε
Autômatos finitos e
conjuntos regulares b ab
Autômatos finitos e
gramáticas regulares
Pumping Lemma para
linguagens regulares
Linguagens s2
livres de
contexto
Máquinas de
Turing
(746 – 749 de 1593)
Conversão de GNFA em expressão regular
LFA 2018/2
H. Longo
Exemplo 5.32
Introdução
Fundamentos aa ∪ b
matemáticos a
Alfabetos e
∗ ∗
ε ∪ b) ) ∪ (a(aa ∪ b) ab ∪ b)((ba
(a(aa a a(aa ∪ b)∪ b) ab ∪ bb) ((ba ∪ a)(aa ∪ b)∗ ∪εε)
∪ a)(aa ∗ ∗ ∗
linguagens
sini s0 s1 s f im
Autômatos a
finitos
Linguagens e
gramáticas b ba ∪ a
regulares b
a
Gramáticas regulares
a(aa ∪ b)∗ ab ∪ b (ba ∪ a)(aa ∪ b)∗ ∪ ε
ε
Autômatos finitos e
conjuntos regulares b ab
Autômatos finitos e
gramáticas regulares
Pumping Lemma para
linguagens regulares
Linguagens s2
livres de
contexto
Máquinas de
Turing
(747 – 749 de 1593)
Conversão de GNFA em expressão regular
LFA 2018/2
H. Longo
Exemplo 5.32
Introdução
Fundamentos aa ∪ b
matemáticos a
Alfabetos e
∗ ∗
ε ∪ b) ) ∪ (a(aa ∪ b) ab ∪ b)((ba
(a(aa a a(aa ∪ b)∪ b) ab ∪ bb) ((ba ∪ a)(aa ∪ b)∗ ∪εε)
∪ a)(aa ∗ ∗ ∗
linguagens
sini s0 s1 s f im
Autômatos a
finitos
Linguagens e
gramáticas b ba ∪ a
regulares b
a
Gramáticas regulares
a(aa ∪ b)∗ ab ∪ b (ba ∪ a)(aa ∪ b)∗ ∪ ε
ε
Autômatos finitos e
conjuntos regulares b ab
Autômatos finitos e
gramáticas regulares
Pumping Lemma para
linguagens regulares
Linguagens s2
livres de
contexto
Máquinas de
Turing
(748 – 749 de 1593)
Conversão de GNFA em expressão regular
LFA 2018/2
H. Longo
Exemplo 5.32
Introdução
Fundamentos aa ∪ b
matemáticos a
Alfabetos e
∗ ∗
ε ∪ b) ) ∪ (a(aa ∪ b) ab ∪ b)((ba
(a(aa a a(aa ∪ b)∪ b) ab ∪ bb) ((ba ∪ a)(aa ∪ b)∗ ∪εε)
∪ a)(aa ∗ ∗ ∗
linguagens
sini s0 s1 s f im
Autômatos a
finitos
Linguagens e
gramáticas b ba ∪ a
regulares b
a
Gramáticas regulares
a(aa ∪ b)∗ ab ∪ b (ba ∪ a)(aa ∪ b)∗ ∪ ε
ε
Autômatos finitos e
conjuntos regulares b ab
Autômatos finitos e
gramáticas regulares
Pumping Lemma para
linguagens regulares
Linguagens s2
livres de
contexto
Máquinas de
Turing
(749 – 749 de 1593)
LFA 2018/2
H. Longo
Introdução
Fundamentos
matemáticos
Alfabetos e
linguagens
Linguagens e
gramáticas
regulares
Gramáticas regulares Autômatos finitos e gramáticas regulares
Autômatos finitos e
conjuntos regulares
Autômatos finitos e
gramáticas regulares
Pumping Lemma para
linguagens regulares
Linguagens
livres de
contexto
Autômatos
com pilha e
GLC’s
Máquinas de
Turing
(750 – 786 de 1593)
Gramática Regular
LFA 2018/2
H. Longo
Introdução
Fundamentos
matemáticos
Uma gramática G = (V, Σ, P, S ) é regular se é uma GLC e toda regra de
Alfabetos e
linguagens derivação está numa das seguintes formas:
Autômatos 1 A → aB
finitos
2 A→a
A → ε,
Linguagens e
3
gramáticas
regulares
Gramáticas regulares onde A, B ∈ V e a ∈ Σ.
Autômatos finitos e
conjuntos regulares
Autômatos finitos e
Uma derivação é terminada por uma regra da forma A → a ou A → ε.
gramáticas regulares
Pumping Lemma para
linguagens regulares
A linguagem gerada por uma gramática regular é chamada regular.
Linguagens
livres de
contexto
Autômatos
com pilha e
GLC’s
Máquinas de
Turing
(751 – 786 de 1593)
Gramáticas regulares e autômatos
LFA 2018/2
H. Longo
Introdução
Alfabetos e
linguagens
Linguagem a+ b+ .
Autômatos
finitos Gramática G: NFA N :
Linguagens e
gramáticas
regulares
Gramáticas regulares
Autômatos finitos e
conjuntos regulares
Autômatos finitos e
gramáticas regulares
Pumping Lemma para
linguagens regulares
Linguagens
livres de
contexto
Autômatos
com pilha e
GLC’s
Máquinas de
Turing
(752 – 786 de 1593)
Gramáticas regulares e autômatos
LFA 2018/2
H. Longo
Introdução
Alfabetos e
linguagens
Linguagem a+ b+ .
Autômatos
finitos Gramática G: NFA N :
Linguagens e S →aS | aA
gramáticas
regulares A →bA | b
Gramáticas regulares
Autômatos finitos e
conjuntos regulares
Autômatos finitos e
gramáticas regulares
Pumping Lemma para
linguagens regulares
Linguagens
livres de
contexto
Autômatos
com pilha e
GLC’s
Máquinas de
Turing
(753 – 786 de 1593)
Gramáticas regulares e autômatos
LFA 2018/2
H. Longo
Introdução
Alfabetos e
linguagens
Linguagem a+ b+ .
Autômatos
finitos Gramática G: NFA N :
Linguagens e S →aS | aA a b
gramáticas
regulares A →bA | b
a b
Gramáticas regulares
Autômatos finitos e
S A Z
conjuntos regulares
Autômatos finitos e
gramáticas regulares
Pumping Lemma para
linguagens regulares
Linguagens
livres de
contexto
Autômatos
com pilha e
GLC’s
Máquinas de
Turing
(754 – 786 de 1593)
Gramáticas regulares e autômatos
LFA 2018/2
H. Longo
Introdução
Alfabetos e
linguagens
Linguagem a+ b+ .
Autômatos
finitos Gramática G: NFA N :
Linguagens e S →aS | aA a b
gramáticas
regulares A →bA | b
a b
Gramáticas regulares
Autômatos finitos e
S A Z
conjuntos regulares
Autômatos finitos e
gramáticas regulares
Pumping Lemma para
linguagens regulares
Linguagens
livres de
contexto
Autômatos
com pilha e
GLC’s
Máquinas de
Turing
(755 – 786 de 1593)
Gramáticas regulares e autômatos
LFA 2018/2
H. Longo
Introdução
Alfabetos e
linguagens
Linguagem a+ b+ .
Autômatos
finitos Gramática G: NFA N :
Linguagens e S →aS | aA a b
gramáticas
regulares A →bA | b
a b
Gramáticas regulares
Autômatos finitos e
S A Z
conjuntos regulares
Autômatos finitos e
gramáticas regulares
Pumping Lemma para
linguagens regulares
Linguagens
livres de
contexto
Autômatos
com pilha e
GLC’s
Máquinas de
Turing
(756 – 786 de 1593)
Gramáticas regulares e autômatos
LFA 2018/2
H. Longo
Introdução
Alfabetos e
linguagens
Linguagem a+ b+ .
Autômatos
finitos Gramática G: NFA N :
Linguagens e S →aS | aA a b
gramáticas
regulares A →bA | b
a b
Gramáticas regulares
Autômatos finitos e
S A Z
conjuntos regulares
Autômatos finitos e
gramáticas regulares
Pumping Lemma para
linguagens regulares
Linguagens
livres de
contexto
Autômatos
com pilha e
GLC’s
Máquinas de
Turing
(757 – 786 de 1593)
Gramáticas regulares e autômatos
LFA 2018/2
H. Longo
Introdução
Alfabetos e
linguagens
Linguagem a+ b+ .
Autômatos
finitos Gramática G: NFA N :
Linguagens e S →aS | aA a b
gramáticas
regulares A →bA | b
a b
Gramáticas regulares
Autômatos finitos e
S A Z
conjuntos regulares
Autômatos finitos e
gramáticas regulares
Pumping Lemma para
linguagens regulares
Linguagens
livres de
contexto
Autômatos
com pilha e
GLC’s
Máquinas de
Turing
(758 – 786 de 1593)
Gramáticas regulares e autômatos
LFA 2018/2
H. Longo
Introdução
Alfabetos e
linguagens
Linguagem a+ b+ .
Autômatos
finitos Gramática G: NFA N :
Linguagens e S →aS | aA a b
gramáticas
regulares A →bA | b
a b
Gramáticas regulares
Autômatos finitos e
S A Z
conjuntos regulares
Autômatos finitos e
gramáticas regulares
Pumping Lemma para
linguagens regulares
Linguagens
livres de
contexto
Autômatos
com pilha e
GLC’s
Máquinas de
Turing
(759 – 786 de 1593)
Gramáticas regulares e autômatos
LFA 2018/2
H. Longo
Introdução
Alfabetos e
linguagens
Linguagem a+ b+ .
Autômatos
finitos Gramática G: NFA N :
Linguagens e S →aS | aA a b
gramáticas
regulares A →bA | b
a b
Gramáticas regulares
Autômatos finitos e
S A Z
conjuntos regulares
Autômatos finitos e
gramáticas regulares
Pumping Lemma para
linguagens regulares Derivação Processamento Cadeia
Linguagens
livres de
contexto
Autômatos
com pilha e
GLC’s
Máquinas de
Turing
(760 – 786 de 1593)
Gramáticas regulares e autômatos
LFA 2018/2
H. Longo
Introdução
Fundamentos
Exemplo 5.33
matemáticos
Alfabetos e Linguagem a+ b+ .
linguagens
Linguagens e
S →aS | aA a b
gramáticas A →bA | b
regulares a b
Gramáticas regulares S A Z
Autômatos finitos e
conjuntos regulares
Autômatos finitos e
gramáticas regulares
Pumping Lemma para
linguagens regulares
Derivação Processamento Cadeia
S ⇒ aS [S , aabb] 7→ [S , abb] a
Linguagens
livres de
contexto
Autômatos
com pilha e
GLC’s
Máquinas de
Turing
(761 – 786 de 1593)
Gramáticas regulares e autômatos
LFA 2018/2
H. Longo
Introdução
Exemplo 5.33
Fundamentos
Linguagem a+ b+ .
matemáticos
Alfabetos e
linguagens
Autômatos
com pilha e
GLC’s
Máquinas de
Turing
(762 – 786 de 1593)
Gramáticas regulares e autômatos
LFA 2018/2
H. Longo
Autômatos
com pilha e
GLC’s
Máquinas de
Turing
(763 – 786 de 1593)
Gramáticas regulares e autômatos
LFA 2018/2
H. Longo
Máquinas de
Turing
(764 – 786 de 1593)
Gramáticas regulares e autômatos
LFA 2018/2
H. Longo
Introdução
Fundamentos
matemáticos
Alfabetos e
linguagens
O diagrama de estados de um NFA N pode ser construído diretamente a
Autômatos
finitos partir das regras de derivação de uma gramática G:
Linguagens e Estados de N são as variáveis de G e, possivelmente, um estado final adicional.
gramáticas
regulares No exemplo 5.33 as transições δ(S , a) = S , δ(S , a) = A e δ(A, b) = A de N
Gramáticas regulares
Autômatos finitos e
correspondem às regras S → aS , S → aA e A → bA de G.
conjuntos regulares
Autômatos finitos e
gramáticas regulares
Pumping Lemma para
linguagens regulares
Linguagens
livres de
contexto
Autômatos
com pilha e
GLC’s
Máquinas de
Turing
(765 – 786 de 1593)
Gramáticas regulares e autômatos
LFA 2018/2
H. Longo
Introdução
Fundamentos
matemáticos Teorema 5.34
Alfabetos e
linguagens Se G = (V, Σ, P, S ) é uma gramática regular, então o NFA N = hΣ, Q, q0 , δ, Fi,
Autômatos definido como segue, é tal que L(N) = L(G):
finitos (
V ∪ {Z}, se (A → a) ∈ P, onde Z < V.
Linguagens e 1 Q=
gramáticas V, caso contrário.
regulares
Gramáticas regulares
2 δ(A, a) = B, sempre que A → aB ∈ P.
Autômatos finitos e
conjuntos regulares δ(A, a)
( = Z , sempre que A → a ∈ P.
Autômatos finitos e
{A | A → ε ∈ P} ∪ {Z}, se Z ∈ Q.
F=
gramáticas regulares
3
Pumping Lemma para
linguagens regulares {A | A → ε ∈ P}, caso contrário.
Linguagens
livres de
contexto
Autômatos
com pilha e
GLC’s
Máquinas de
Turing
(766 – 786 de 1593)
Gramáticas regulares e autômatos
LFA 2018/2
H. Longo
Introdução
Demonstração.
Fundamentos
matemáticos 1 L(G) ⊆ L(N)
Alfabetos e
linguagens A construção das transições de N a partir das regras de derivação de G permite
Autômatos que toda derivação em G seja mapeada para um processamento em N .
∗
A derivação de uma cadeia de terminais tem a forma S =⇒ ε, S =⇒ wC =⇒ wa
finitos
Linguagens e ∗ ∗
gramáticas ou S =⇒ wC =⇒ w, onde a derivação S =⇒ wC consiste de regras da forma
regulares
Gramáticas regulares
S → aB.
Autômatos finitos e
conjuntos regulares
Se ε ∈ L(G), então S ∈ F e ε ∈ L(M).
Autômatos finitos e
gramáticas regulares
Existe um processamento em N que processa a cadeia w e termina no estado
Pumping Lemma para C , sempre que wC é uma forma sentencial de G.
linguagens regulares
Prova por indução (Exercício).
Linguagens
livres de
contexto
Autômatos
com pilha e
GLC’s
Máquinas de
Turing
(767 – 786 de 1593)
Gramáticas regulares e autômatos
LFA 2018/2
H. Longo
Introdução
Demonstração.
Fundamentos
matemáticos 1 L(G) ⊆ L(N)
Alfabetos e
linguagens A derivação de uma cadeia não nula é encerrada pela aplicação de uma regra
Autômatos C → a ou C → ε. ∗
finitos
Em uma derivação da forma S =⇒ wC =⇒ wa, a aplicação da regra final
Linguagens e
gramáticas
corresponde à transição δ(C, a) = Z , levando N para um estado final.
∗
regulares Uma derivação da forma S =⇒ wC =⇒ w é encerrada por uma ε-regra.
Gramáticas regulares
Autômatos finitos e Como C → ε ∈ P, C é um estado final em N .
conjuntos regulares
Autômatos finitos e A aceitação de w por N é dada pelo processamento que corresponde à
gramáticas regulares ∗
Pumping Lemma para
linguagens regulares
derivação S =⇒ wC .
Linguagens
livres de
contexto
Autômatos
com pilha e
GLC’s
Máquinas de
Turing
(768 – 786 de 1593)
Gramáticas regulares e autômatos
LFA 2018/2
H. Longo
Introdução
Demonstração.
Fundamentos
matemáticos 2 L(N) ⊆ L(G)
Alfabetos e
O processamento de w = ua ∈ L(M) tem a forma [S , w] 7−→[B, ε], onde B , Z ,
∗
linguagens
Máquinas de
Turing
(769 – 786 de 1593)
Gramáticas regulares e autômatos
LFA 2018/2
H. Longo
Introdução
Alfabetos e
Linguagem a∗ (a ∪ b+ ).
linguagens
Linguagens e
gramáticas
regulares
Gramáticas regulares
Autômatos finitos e
conjuntos regulares
Autômatos finitos e
gramáticas regulares
Pumping Lemma para
linguagens regulares
Linguagens
livres de
contexto
Autômatos
com pilha e
GLC’s
Máquinas de
Turing
(770 – 786 de 1593)
Gramáticas regulares e autômatos
LFA 2018/2
H. Longo
Introdução
Alfabetos e
Linguagem a∗ (a ∪ b+ ).
linguagens
Linguagens
livres de
contexto
Autômatos
com pilha e
GLC’s
Máquinas de
Turing
(771 – 786 de 1593)
Gramáticas regulares e autômatos
LFA 2018/2
H. Longo
Introdução
Alfabetos e
Linguagem a∗ (a ∪ b+ ).
linguagens
Autômatos
com pilha e
GLC’s
Máquinas de
Turing
(772 – 786 de 1593)
Gramáticas regulares e autômatos
LFA 2018/2
H. Longo
Introdução
Alfabetos e
Linguagem a∗ (a ∪ b+ ).
linguagens
Autômatos
com pilha e
GLC’s
Máquinas de
Turing
(773 – 786 de 1593)
Gramáticas regulares e autômatos
LFA 2018/2
H. Longo
Introdução
Fundamentos
matemáticos
Construção de uma gramática regular a partir de um NFA:
Alfabetos e
linguagens Transição δ(A, a) = B produz a regra A → aB.
Autômatos Se C é um estado final, a regra C → ε é produzida.
finitos
Linguagens e
gramáticas
regulares
Gramáticas regulares
Autômatos finitos e
conjuntos regulares
Autômatos finitos e
gramáticas regulares
Pumping Lemma para
linguagens regulares
Linguagens
livres de
contexto
Autômatos
com pilha e
GLC’s
Máquinas de
Turing
(774 – 786 de 1593)
Gramáticas regulares e autômatos
LFA 2018/2
H. Longo
Introdução
Fundamentos
matemáticos
Construção de uma gramática regular a partir de um NFA:
Alfabetos e
linguagens Transição δ(A, a) = B produz a regra A → aB.
Autômatos Se C é um estado final, a regra C → ε é produzida.
finitos
Uma gramática G construída a partir de um NFA N , pode ser transformada
Linguagens e
gramáticas em um autômato equivalente:
regulares
Gramáticas regulares
N −→ G −→ N 0 .
Autômatos finitos e
conjuntos regulares
Autômatos finitos e
gramáticas regulares
Pumping Lemma para
linguagens regulares
Linguagens
livres de
contexto
Autômatos
com pilha e
GLC’s
Máquinas de
Turing
(775 – 786 de 1593)
Gramáticas regulares e autômatos
LFA 2018/2
H. Longo
Introdução
Fundamentos
matemáticos
Construção de uma gramática regular a partir de um NFA:
Alfabetos e
linguagens Transição δ(A, a) = B produz a regra A → aB.
Autômatos Se C é um estado final, a regra C → ε é produzida.
finitos
Uma gramática G construída a partir de um NFA N , pode ser transformada
Linguagens e
gramáticas em um autômato equivalente:
regulares
Gramáticas regulares
N −→ G −→ N 0 .
Autômatos finitos e
conjuntos regulares Uma gramática regular pode ser convertida em um NFA N , o qual pode ser
transformada em uma gramática G0 .
Autômatos finitos e
gramáticas regulares
Pumping Lemma para
linguagens regulares
G −→ N −→ G0 .
Linguagens
livres de
contexto
Autômatos
com pilha e
GLC’s
Máquinas de
Turing
(776 – 786 de 1593)
Gramáticas regulares e autômatos
LFA 2018/2
H. Longo
Introdução
Fundamentos
matemáticos
Conclusão das técnicas de conversão:
Alfabetos e
linguagens As linguagens geradas por gramáticas regulares são exatamente aquelas
Autômatos aceitas por autômatos finitos.
finitos
Linguagens e
gramáticas
regulares
Gramáticas regulares
Autômatos finitos e
conjuntos regulares
Autômatos finitos e
gramáticas regulares
Pumping Lemma para
linguagens regulares
Linguagens
livres de
contexto
Autômatos
com pilha e
GLC’s
Máquinas de
Turing
(777 – 786 de 1593)
Gramáticas regulares e autômatos
LFA 2018/2
H. Longo
Introdução
Fundamentos
matemáticos
Conclusão das técnicas de conversão:
Alfabetos e
linguagens As linguagens geradas por gramáticas regulares são exatamente aquelas
Autômatos aceitas por autômatos finitos.
finitos
A linguagem gerada por uma gramática regular é um conjunto regular
Linguagens e
gramáticas (conseqüência dos teoremas 5.34 e 5.25).
regulares
Gramáticas regulares
Autômatos finitos e
conjuntos regulares
Autômatos finitos e
gramáticas regulares
Pumping Lemma para
linguagens regulares
Linguagens
livres de
contexto
Autômatos
com pilha e
GLC’s
Máquinas de
Turing
(778 – 786 de 1593)
Gramáticas regulares e autômatos
LFA 2018/2
H. Longo
Introdução
Fundamentos
matemáticos
Conclusão das técnicas de conversão:
Alfabetos e
linguagens As linguagens geradas por gramáticas regulares são exatamente aquelas
Autômatos aceitas por autômatos finitos.
finitos
A linguagem gerada por uma gramática regular é um conjunto regular
Linguagens e
gramáticas (conseqüência dos teoremas 5.34 e 5.25).
regulares
Gramáticas regulares
A conversão de autômato para gramática regular garante que todo conjunto
Autômatos finitos e
conjuntos regulares
regular é gerado por alguma gramática regular.
Autômatos finitos e
gramáticas regulares
Pumping Lemma para
linguagens regulares
Linguagens
livres de
contexto
Autômatos
com pilha e
GLC’s
Máquinas de
Turing
(779 – 786 de 1593)
Gramáticas regulares e autômatos
LFA 2018/2
H. Longo
Introdução
Fundamentos
matemáticos
Conclusão das técnicas de conversão:
Alfabetos e
linguagens As linguagens geradas por gramáticas regulares são exatamente aquelas
Autômatos aceitas por autômatos finitos.
finitos
A linguagem gerada por uma gramática regular é um conjunto regular
Linguagens e
gramáticas (conseqüência dos teoremas 5.34 e 5.25).
regulares
Gramáticas regulares
A conversão de autômato para gramática regular garante que todo conjunto
Autômatos finitos e
conjuntos regulares
regular é gerado por alguma gramática regular.
Autômatos finitos e
gramáticas regulares
Caracterização de conjuntos regulares: linguagens geradas por gramáticas
Pumping Lemma para
linguagens regulares
regulares.
Linguagens
livres de
contexto
Autômatos
com pilha e
GLC’s
Máquinas de
Turing
(780 – 786 de 1593)
Gramáticas regulares e autômatos
LFA 2018/2
H. Longo
Introdução
Fundamentos
matemáticos Exemplo 5.36
Alfabetos e
linguagens
Conjunto de cadeias sobre {a, b, c} que não contém abc.
Autômatos
finitos Gramática G: NFA N :
Linguagens e
gramáticas
regulares
Gramáticas regulares
Autômatos finitos e
conjuntos regulares
Autômatos finitos e
gramáticas regulares
Pumping Lemma para
linguagens regulares
Linguagens
livres de
contexto
Autômatos
com pilha e
GLC’s
Máquinas de
Turing
(781 – 786 de 1593)
Gramáticas regulares e autômatos
LFA 2018/2
H. Longo
Introdução
Fundamentos
matemáticos Exemplo 5.36
Alfabetos e
linguagens
Conjunto de cadeias sobre {a, b, c} que não contém abc.
Autômatos
finitos Gramática G: NFA N :
Linguagens e S → bS | cS | aB | ε
gramáticas
regulares B → aB | cS | bC | ε
Gramáticas regulares C → aB | bS | ε
Autômatos finitos e
conjuntos regulares
Autômatos finitos e
gramáticas regulares
Pumping Lemma para
linguagens regulares
Linguagens
livres de
contexto
Autômatos
com pilha e
GLC’s
Máquinas de
Turing
(782 – 786 de 1593)
Gramáticas regulares e autômatos
LFA 2018/2
H. Longo
Introdução
Fundamentos
matemáticos Exemplo 5.36
Alfabetos e
linguagens
Conjunto de cadeias sobre {a, b, c} que não contém abc.
Autômatos
finitos Gramática G: NFA N :
Linguagens e S → bS | cS | aB | ε b, c a
gramáticas
B → aB | cS | bC | ε a b
regulares
Gramáticas regulares C → aB | bS | ε S B C
Autômatos finitos e
conjuntos regulares
Autômatos finitos e
c a
gramáticas regulares
Pumping Lemma para
b
linguagens regulares
Linguagens
livres de
contexto
Autômatos
com pilha e
GLC’s
Máquinas de
Turing
(783 – 786 de 1593)
Gramáticas regulares e autômatos
LFA 2018/2
H. Longo
Introdução
Exemplo 5.37
Fundamentos
matemáticos Cadeias sobre {a, b} com nr. par de a’s e ímpar de b’s.
Alfabetos e
linguagens
Gramática G: NFA N :
Autômatos
finitos
Linguagens e
gramáticas
regulares
Gramáticas regulares
Autômatos finitos e
conjuntos regulares
Autômatos finitos e
gramáticas regulares
Pumping Lemma para
linguagens regulares
Linguagens
livres de
contexto
Autômatos
com pilha e
GLC’s
Máquinas de
Turing
(784 – 786 de 1593)
Gramáticas regulares e autômatos
LFA 2018/2
H. Longo
Introdução
Exemplo 5.37
Fundamentos
matemáticos Cadeias sobre {a, b} com nr. par de a’s e ímpar de b’s.
Alfabetos e
linguagens
Gramática G: NFA N :
Autômatos
finitos S → aA | bB
Linguagens e A → aS | bC
gramáticas
regulares
B → bS | aC | ε
Gramáticas regulares C → aB | bA
Autômatos finitos e
conjuntos regulares
Autômatos finitos e
gramáticas regulares
Pumping Lemma para
linguagens regulares
Linguagens
livres de
contexto
Autômatos
com pilha e
GLC’s
Máquinas de
Turing
(785 – 786 de 1593)
Gramáticas regulares e autômatos
LFA 2018/2
H. Longo
Introdução
Exemplo 5.37
Fundamentos
matemáticos Cadeias sobre {a, b} com nr. par de a’s e ímpar de b’s.
Alfabetos e
linguagens
Gramática G: NFA N :
Autômatos
finitos S → aA | bB b
Linguagens e A → aS | bC S B
gramáticas
B → bS | aC | ε
regulares b
Gramáticas regulares C → aB | bA
Autômatos finitos e
conjuntos regulares
a a a a
Autômatos finitos e
gramáticas regulares
Pumping Lemma para
b
linguagens regulares
A C
Linguagens
livres de b
contexto
Autômatos
com pilha e
GLC’s
Máquinas de
Turing
(786 – 786 de 1593)
LFA 2018/2
H. Longo
Introdução
Fundamentos
matemáticos
Alfabetos e
linguagens
Linguagens e
gramáticas
regulares
Gramáticas regulares Pumping Lemma para linguagens regulares
Autômatos finitos e
conjuntos regulares
Autômatos finitos e
gramáticas regulares
Pumping Lemma para
linguagens regulares
Linguagens
livres de
contexto
Autômatos
com pilha e
GLC’s
Máquinas de
Turing
(787 – 860 de 1593)
Uma linguagem regular
LFA 2018/2
H. Longo
Introdução
Fundamentos
matemáticos
L1 = {ai bi |6 i 6 n}, para um n fixo.
Alfabetos e Estados ak ’s contam o número de a’s e estados bk ’s garantem um igual
linguagens
número de b’s.
Autômatos
finitos
Linguagens e
gramáticas
regulares
Gramáticas regulares
Autômatos finitos e
conjuntos regulares
Autômatos finitos e
gramáticas regulares
Pumping Lemma para
linguagens regulares
Linguagens
livres de
contexto
Autômatos
com pilha e
GLC’s
Máquinas de
Turing
(788 – 860 de 1593)
Uma linguagem regular
LFA 2018/2
H. Longo
Introdução
Fundamentos
matemáticos
L1 = {ai bi |6 i 6 n}, para um n fixo.
Alfabetos e Estados ak ’s contam o número de a’s e estados bk ’s garantem um igual
linguagens
número de b’s.
Autômatos
finitos
a a a a
Linguagens e M9 : a0 a1 a2 an−1 an
gramáticas
regulares
Gramáticas regulares
Autômatos finitos e
conjuntos regulares b b b b
Autômatos finitos e
gramáticas regulares
Pumping Lemma para
linguagens regulares
b0 b1 bn−2 bn−1
Linguagens b b b
livres de
contexto
Autômatos
com pilha e
GLC’s
Máquinas de
Turing
(789 – 860 de 1593)
Uma linguagem não regular
LFA 2018/2
H. Longo
Introdução
Alfabetos e
linguagens
Autômatos
finitos
Linguagens e
gramáticas
regulares
Gramáticas regulares
Autômatos finitos e
conjuntos regulares
Autômatos finitos e
gramáticas regulares
Pumping Lemma para
linguagens regulares
Linguagens
livres de
contexto
Autômatos
com pilha e
GLC’s
Máquinas de
Turing
(790 – 860 de 1593)
Uma linguagem não regular
LFA 2018/2
H. Longo
Introdução
Linguagens e
gramáticas
regulares
Gramáticas regulares
Autômatos finitos e
conjuntos regulares
Autômatos finitos e
gramáticas regulares
Pumping Lemma para
linguagens regulares
Linguagens
livres de
contexto
Autômatos
com pilha e
GLC’s
Máquinas de
Turing
(791 – 860 de 1593)
Uma linguagem não regular
LFA 2018/2
H. Longo
Introdução
Linguagens e
gramáticas
regulares
Gramáticas regulares
Autômatos finitos e
conjuntos regulares
Autômatos finitos e
gramáticas regulares
Pumping Lemma para
linguagens regulares
Linguagens
livres de
contexto
Autômatos
com pilha e
GLC’s
Máquinas de
Turing
(792 – 860 de 1593)
Uma linguagem não regular
LFA 2018/2
H. Longo
Introdução
Linguagens
livres de
contexto
Autômatos
com pilha e
GLC’s
Máquinas de
Turing
(793 – 860 de 1593)
Uma linguagem não regular
LFA 2018/2
H. Longo
Introdução
Linguagens
livres de
contexto
Autômatos
com pilha e
GLC’s
Máquinas de
Turing
(794 – 860 de 1593)
Uma linguagem não regular
LFA 2018/2
H. Longo
Introdução
Linguagens
livres de
contexto
Autômatos
com pilha e
GLC’s
Máquinas de
Turing
(795 – 860 de 1593)
Uma linguagem não regular
LFA 2018/2
H. Longo
Introdução
Máquinas de
Turing
(796 – 860 de 1593)
Uma linguagem não regular
LFA 2018/2
H. Longo
Introdução
Fundamentos
matemáticos
Teorema 5.38
Alfabetos e
linguagens A linguagem L2 = {ai bi | i > 0} não é regular.
Autômatos
finitos
Linguagens e
gramáticas
regulares
Gramáticas regulares
Autômatos finitos e
conjuntos regulares
Autômatos finitos e
gramáticas regulares
Pumping Lemma para
linguagens regulares
Linguagens
livres de
contexto
Autômatos
com pilha e
GLC’s
Máquinas de
Turing
(797 – 860 de 1593)
Uma linguagem não regular
LFA 2018/2
H. Longo
Introdução
Fundamentos
matemáticos
Teorema 5.38
Alfabetos e
linguagens A linguagem L2 = {ai bi | i > 0} não é regular.
Autômatos
finitos
Linguagens e Pode-se mostrar que uma linguagem é regular construindo-se uma DFA que a
gramáticas
regulares aceite.
Gramáticas regulares
Autômatos finitos e
conjuntos regulares
Para provar que uma linguagem não é regular deve-se provar que não existe
Autômatos finitos e
gramáticas regulares
DFA que a aceite.
Pumping Lemma para
linguagens regulares
Argumentação usada antes de enunciar o teorema 5.38
Linguagens
livres de
contexto
Autômatos
com pilha e
GLC’s
Máquinas de
Turing
(798 – 860 de 1593)
Indistinguibilidade de cadeias
LFA 2018/2
H. Longo
Introdução
Fundamentos
matemáticos Definição 5.39
Alfabetos e Duas cadeias u, v ∈ Σ∗ são distinguíveis em relação à linguagem L se existir
linguagens
Autômatos
alguma cadeia w ∈ Σ∗ tal que uw ∈ L e vw < L.
finitos
Linguagens e
gramáticas Exemplo 5.40
regulares
Z
a e aa não são distinguíveis em relação à linguagem L1 = {an | n ∈ + },
Z
Gramáticas regulares
Linguagens
ab ∈ L2 enquanto aab < L2 .
livres de
contexto
Autômatos
com pilha e
GLC’s
Máquinas de
Turing
(799 – 860 de 1593)
Linguagens não regulares
LFA 2018/2
H. Longo
Introdução
Fundamentos
matemáticos Teorema 5.41 (Myhill-Nerode)
Seja L uma linguagem sobre o alfabeto Σ. Se existe um conjunto S ⊆ Σ∗ que
Alfabetos e
linguagens
Linguagens
livres de
contexto
Autômatos
com pilha e
GLC’s
Máquinas de
Turing
(800 – 860 de 1593)
Linguagens não regulares
LFA 2018/2
H. Longo
Introdução
Fundamentos
matemáticos Teorema 5.41 (Myhill-Nerode)
Seja L uma linguagem sobre o alfabeto Σ. Se existe um conjunto S ⊆ Σ∗ que
Alfabetos e
linguagens
Linguagens
Demonstração também similar à demonstração do teorema 5.38.
livres de
contexto
Autômatos
com pilha e
GLC’s
Máquinas de
Turing
(801 – 860 de 1593)
Linguagens não regulares
LFA 2018/2
H. Longo
Introdução
Fundamentos
matemáticos
Exemplo 5.42
Alfabetos e A linguagem L = {ai bi | i > 0} não é regular.
N
linguagens
Autômatos
Seja S = {an | n ∈ }. Este conjunto é infinito porque contém uma cadeia para
finitos cada número natural. Agora, considere quaisquer cadeias an , am ∈ S tais que
Linguagens e n , m, então an bn ∈ L e am bn < L. Logo, an e am são distinguíveis em relação a
gramáticas
regulares L. Assim, S é um conjunto infinito de cadeias distinguíveis em relação a L.
Gramáticas regulares
Autômatos finitos e
Portanto, pelo Teorema de Myhill-Nerode, L não é regular.
conjuntos regulares
Autômatos finitos e
gramáticas regulares
Pumping Lemma para
linguagens regulares
Linguagens
livres de
contexto
Autômatos
com pilha e
GLC’s
Máquinas de
Turing
(802 – 860 de 1593)
Linguagens não regulares
LFA 2018/2
H. Longo
Introdução
Fundamentos
matemáticos
Exemplo 5.42
Alfabetos e A linguagem L = {ai bi | i > 0} não é regular.
N
linguagens
Autômatos
Seja S = {an | n ∈ }. Este conjunto é infinito porque contém uma cadeia para
finitos cada número natural. Agora, considere quaisquer cadeias an , am ∈ S tais que
Linguagens e n , m, então an bn ∈ L e am bn < L. Logo, an e am são distinguíveis em relação a
gramáticas
regulares L. Assim, S é um conjunto infinito de cadeias distinguíveis em relação a L.
Gramáticas regulares
Autômatos finitos e
Portanto, pelo Teorema de Myhill-Nerode, L não é regular.
conjuntos regulares
Autômatos finitos e O conjunto L de palíndromos sobre {a, b} não é regular.
gramáticas regulares
Pumping Lemma para
linguagens regulares
S = {ak b | k > 0} ⊂ Σ∗ ⇒ |S | = ∞.
Linguagens
u = ai b ∈ S , v = a j b ∈ S e w = ai ∈ Σ∗ ⇒ uw ∈ L e vw < L, ∀ i , j.
livres de
contexto
Autômatos
com pilha e
GLC’s
Máquinas de
Turing
(803 – 860 de 1593)
Linguagens não regulares
LFA 2018/2
H. Longo
Introdução
Exemplo 5.43
Fundamentos
matemáticos
Gramáticas regulares não são adequadas para definir linguagens de
Alfabetos e
linguagens programação que contém expressões aritméticas/booleanas.
Autômatos
finitos
Linguagens e
gramáticas
regulares
Gramáticas regulares
Autômatos finitos e
conjuntos regulares
Autômatos finitos e
gramáticas regulares
Pumping Lemma para
linguagens regulares
Linguagens
livres de
contexto
Autômatos
com pilha e
GLC’s
Máquinas de
Turing
(804 – 860 de 1593)
Linguagens não regulares
LFA 2018/2
H. Longo
Introdução
Exemplo 5.43
Fundamentos
matemáticos
Gramáticas regulares não são adequadas para definir linguagens de
Alfabetos e
linguagens programação que contém expressões aritméticas/booleanas.
Autômatos
Gramática Derivação
finitos S ⇒T
S →A
⇒ (A)
Linguagens e
gramáticas A→T |A+T
⇒ (T )
regulares T → b | (A)
Gramáticas regulares ⇒ (b)
Autômatos finitos e
conjuntos regulares
Autômatos finitos e
gramáticas regulares
Pumping Lemma para
linguagens regulares
Linguagens
livres de
contexto
Autômatos
com pilha e
GLC’s
Máquinas de
Turing
(805 – 860 de 1593)
Linguagens não regulares
LFA 2018/2
H. Longo
Introdução
Exemplo 5.43
Fundamentos
matemáticos
Gramáticas regulares não são adequadas para definir linguagens de
Alfabetos e
linguagens programação que contém expressões aritméticas/booleanas.
Autômatos
Gramática Derivação
finitos S ⇒T
S →A
⇒ (A)
Linguagens e
gramáticas A→T |A+T
⇒ (T )
regulares T → b | (A)
Gramáticas regulares ⇒ (b)
Regras T ⇒ (A) ⇒ (T ) e T → b, geram (b), ((b)), (((b))), . . .
Autômatos finitos e
conjuntos regulares
Autômatos finitos e
gramáticas regulares
Pumping Lemma para
ui = (i b e vi =)i satisfazem as condições do teorema 5.41.
linguagens regulares
Linguagens
livres de
contexto
Autômatos
com pilha e
GLC’s
Máquinas de
Turing
(806 – 860 de 1593)
Linguagens não regulares
LFA 2018/2
H. Longo
Introdução
Exemplo 5.43
Fundamentos
matemáticos
Gramáticas regulares não são adequadas para definir linguagens de
Alfabetos e
linguagens programação que contém expressões aritméticas/booleanas.
Autômatos
Gramática Derivação
finitos S ⇒T
S →A
⇒ (A)
Linguagens e
gramáticas A→T |A+T
⇒ (T )
regulares T → b | (A)
Gramáticas regulares ⇒ (b)
Regras T ⇒ (A) ⇒ (T ) e T → b, geram (b), ((b)), (((b))), . . .
Autômatos finitos e
conjuntos regulares
Autômatos finitos e
gramáticas regulares
Pumping Lemma para
ui = (i b e vi =)i satisfazem as condições do teorema 5.41.
linguagens regulares
Linguagens
Argumento similar pode ser usado para mostrar que PASCAL, C, ADA, . . .
livres de
contexto
não são regulares.
Autômatos
com pilha e
GLC’s
Máquinas de
Turing
(807 – 860 de 1593)
Linguagens não regulares
LFA 2018/2
H. Longo
Introdução
Teorema 5.44
Fundamentos Seja L1 uma linguagem regular e L2 uma linguagem livre de contexto. A
matemáticos
linguagem L1 ∩ L2 não é necessariamente regular.
Alfabetos e
linguagens
Autômatos
finitos
Linguagens e
gramáticas
regulares
Gramáticas regulares
Autômatos finitos e
conjuntos regulares
Autômatos finitos e
gramáticas regulares
Pumping Lemma para
linguagens regulares
Linguagens
livres de
contexto
Autômatos
com pilha e
GLC’s
Máquinas de
Turing
(808 – 860 de 1593)
Linguagens não regulares
LFA 2018/2
H. Longo
Introdução
Teorema 5.44
Fundamentos Seja L1 uma linguagem regular e L2 uma linguagem livre de contexto. A
matemáticos
linguagem L1 ∩ L2 não é necessariamente regular.
Alfabetos e
linguagens
Autômatos Demonstração.
finitos
Linguagens
livres de
contexto
Autômatos
com pilha e
GLC’s
Máquinas de
Turing
(809 – 860 de 1593)
Linguagens não regulares
LFA 2018/2
H. Longo
Introdução
Teorema 5.44
Fundamentos Seja L1 uma linguagem regular e L2 uma linguagem livre de contexto. A
matemáticos
linguagem L1 ∩ L2 não é necessariamente regular.
Alfabetos e
linguagens
Autômatos Demonstração.
finitos
Linguagens
livres de Exemplo 5.45
contexto
Autômatos L = {ai b j | i, j > 0 e i , j} não é regular, pois L ∩ a∗ b∗ = {ai bi | i > 0} não é regular.
com pilha e
GLC’s
Máquinas de
Turing
(810 – 860 de 1593)
Pumping Lemma
LFA 2018/2
H. Longo
Introdução
Fundamentos
Pumping: aceitação de cadeias com repetição de subcadeias.
matemáticos
Alfabetos e
linguagens
Autômatos
finitos
Linguagens e
gramáticas
regulares
Gramáticas regulares
Autômatos finitos e
conjuntos regulares
Autômatos finitos e
gramáticas regulares
Pumping Lemma para
linguagens regulares
Linguagens
livres de
contexto
Autômatos
com pilha e
GLC’s
Máquinas de
Turing
(811 – 860 de 1593)
Pumping Lemma
LFA 2018/2
H. Longo
Introdução
Fundamentos
Pumping: aceitação de cadeias com repetição de subcadeias.
matemáticos
Considere o seguinte DFA com 4 estados:
Alfabetos e
linguagens b b b
Autômatos a b
finitos a
s0 s1 s2 s3
Linguagens e
gramáticas
regulares
a a
Gramáticas regulares
Autômatos finitos e
conjuntos regulares
Autômatos finitos e
gramáticas regulares
Pumping Lemma para
linguagens regulares
Linguagens
livres de
contexto
Autômatos
com pilha e
GLC’s
Máquinas de
Turing
(812 – 860 de 1593)
Pumping Lemma
LFA 2018/2
H. Longo
Introdução
Fundamentos
Pumping: aceitação de cadeias com repetição de subcadeias.
matemáticos
Considere o seguinte DFA com 4 estados:
Alfabetos e
linguagens b b b
Autômatos a b
finitos a
s0 s1 s2 s3
Linguagens e
gramáticas
regulares
a a
Gramáticas regulares
Autômatos finitos e
conjuntos regulares
Processamento da cadeia w = aabb (|w| > 4):
Autômatos finitos e
gramáticas regulares
[s0 , aabb] 7−→[s1 , abb] 7−→[s2 , bb] 7−→[s3 , b] 7−→[s3 , ε]
Pumping Lemma para
linguagens regulares
Linguagens
livres de
contexto
Autômatos
com pilha e
GLC’s
Máquinas de
Turing
(813 – 860 de 1593)
Pumping Lemma
LFA 2018/2
H. Longo
Introdução
Fundamentos
Pumping: aceitação de cadeias com repetição de subcadeias.
matemáticos
Considere o seguinte DFA com 4 estados:
Alfabetos e
linguagens b b b
Autômatos a b
finitos a
s0 s1 s2 s3
Linguagens e
gramáticas
regulares
a a
Gramáticas regulares
Autômatos finitos e
conjuntos regulares
Processamento da cadeia w = aabb (|w| > 4):
Autômatos finitos e
gramáticas regulares
[s0 , aabb] 7−→[s1 , abb] 7−→[s2 , bb] 7−→[s3 , b] 7−→[s3 , ε]
Pumping Lemma para
linguagens regulares
Processamento da cadeia w = abbab (|w| > 4):
Linguagens
livres de [s0 , abbab] 7−→[s1 , bbab] 7−→[s1 , bab] 7−→[s1 , ab] 7−→[s2 , b] 7−→[s3 , ε]
contexto
Autômatos
com pilha e
GLC’s
Máquinas de
Turing
(814 – 860 de 1593)
Pumping Lemma
LFA 2018/2
H. Longo
Máquinas de
Turing
(815 – 860 de 1593)
Pumping Lemma
LFA 2018/2
H. Longo
Introdução
Fundamentos
Lema 5.46
matemáticos
Seja G o diagrama de estados de um DFA com k estados. Qualquer caminho de
Alfabetos e
linguagens comprimento k em G contém um ciclo.
Autômatos
finitos
Linguagens e
gramáticas
regulares
Gramáticas regulares
Autômatos finitos e
conjuntos regulares
Autômatos finitos e
gramáticas regulares
Pumping Lemma para
linguagens regulares
Linguagens
livres de
contexto
Autômatos
com pilha e
GLC’s
Máquinas de
Turing
(816 – 860 de 1593)
Pumping Lemma
LFA 2018/2
H. Longo
Introdução
Fundamentos
Lema 5.46
matemáticos
Seja G o diagrama de estados de um DFA com k estados. Qualquer caminho de
Alfabetos e
linguagens comprimento k em G contém um ciclo.
Autômatos
finitos
Linguagens e
Demonstração.
gramáticas
regulares Um caminho de comprimento k contém k + 1 vértices.
Gramáticas regulares
Autômatos finitos e
conjuntos regulares
Como existem apenas k vértices em G, deve existir um vértice si que ocorre
Autômatos finitos e
gramáticas regulares
em pelo menos duas posições do caminho.
Pumping Lemma para
linguagens regulares O subcaminho da primeira ocorrência de si para a segunda produz o ciclo.
Linguagens
livres de
contexto
Autômatos
com pilha e
GLC’s
Máquinas de
Turing
(817 – 860 de 1593)
Pumping Lemma
LFA 2018/2
H. Longo
Introdução
Fundamentos
matemáticos
Corolário 5.47
Alfabetos e Seja G o diagrama de estados de um DFA com k estados e p um caminho de
linguagens
comprimento k ou maior. O caminho p pode ser decomposto em subcaminhos q, r
e s, tal que p = qrs, o comprimento de qr é menor ou igual a k e r é um ciclo.
Autômatos
finitos
Linguagens e
gramáticas
regulares w = w1 . . . wi . . . w j . . . wn .
Gramáticas regulares
Autômatos finitos e
conjuntos regulares w1 wi−1 wi w j−1 wj wn−1 wn
Autômatos finitos e s0 ··· sq ··· sq ··· s f −1 sf
gramáticas regulares
Pumping Lemma para
linguagens regulares
Linguagens
q r s
livres de
contexto
Autômatos
com pilha e
GLC’s
Máquinas de
Turing
(818 – 860 de 1593)
Pumping Lemma
LFA 2018/2
H. Longo
Introdução
Fundamentos
matemáticos
Alfabetos e
linguagens
Autômatos
Teorema 5.48 (Pumping Lemma para Linguagens Regulares)
finitos
Seja L uma linguagem infinita regular. Existe um inteiro m (tamanho crítico ou
Linguagens e
gramáticas pumping length), tal que toda cadeia z ∈ L, com comprimento |z| > m, pode ser
escrita como z = uvw, com |uv| 6 m, |v| > 0 e uvi w ∈ L, ∀ i > 0.
regulares
Gramáticas regulares
Autômatos finitos e
conjuntos regulares
Autômatos finitos e
gramáticas regulares
Pumping Lemma para
linguagens regulares
Linguagens
livres de
contexto
Autômatos
com pilha e
GLC’s
Máquinas de
Turing
(819 – 860 de 1593)
Pumping Lemma
LFA 2018/2
H. Longo
Teorema 5.48 (Pumping Lemma para Linguagens Regulares)
Introdução
Fundamentos
Seja L uma linguagem regular que é aceita por um DFA M com k estados. Seja
matemáticos
z ∈ L, com |z| > k. Então, z por ser escrita como z = uvw, com |uv| 6 k, |v| > 0 e
Alfabetos e
linguagens uvi w ∈ L, ∀ i > 0.
Autômatos
finitos
Linguagens e
gramáticas
regulares
Gramáticas regulares
Autômatos finitos e
conjuntos regulares
Autômatos finitos e
gramáticas regulares
Pumping Lemma para
linguagens regulares
Linguagens
livres de
contexto
Autômatos
com pilha e
GLC’s
Máquinas de
Turing
(820 – 860 de 1593)
Pumping Lemma
LFA 2018/2
H. Longo
Teorema 5.48 (Pumping Lemma para Linguagens Regulares)
Introdução
Fundamentos
Seja L uma linguagem regular que é aceita por um DFA M com k estados. Seja
matemáticos
z ∈ L, com |z| > k. Então, z por ser escrita como z = uvw, com |uv| 6 k, |v| > 0 e
Alfabetos e
linguagens uvi w ∈ L, ∀ i > 0.
Autômatos
finitos
Demonstração.
Linguagens e
gramáticas
regulares
Seja z ∈ L tal que n = |z| > k. O processamento de z em M gera um caminho
Gramáticas regulares de comprimento n em M .
Autômatos finitos e
conjuntos regulares
Autômatos finitos e Este caminho pode ser quebrado em subcaminhos q, r e s, onde r é um ciclo
gramáticas regulares
Pumping Lemma para
linguagens regulares
no diagrama de estados (corolário 5.47).
Linguagens A decomposição de z em u, v e w consiste das cadeias processadas nos
livres de
contexto subcaminhos q, r e s, respectivamente.
Autômatos
com pilha e
GLC’s
Máquinas de
Turing
(821 – 860 de 1593)
Pumping Lemma
LFA 2018/2
H. Longo
Introdução
Pumping: aceitação de cadeias com repetição de subcadeias.
Fundamentos
matemáticos z = uvw = ababbabab, com u = a, v = bab e w = ab.
Alfabetos e uv2 w = a(bab)2 ab
linguagens
Autômatos b a
finitos
Linguagens e a
gramáticas s0 s1
regulares
Gramáticas regulares
Autômatos finitos e
conjuntos regulares b
Autômatos finitos e
gramáticas regulares
a b
Pumping Lemma para
linguagens regulares
Linguagens
livres de s2 s3
contexto a, b
Autômatos
com pilha e
GLC’s
Máquinas de
Turing
(822 – 860 de 1593)
Pumping Lemma
LFA 2018/2
H. Longo
Introdução
Fundamentos
matemáticos
Autômatos
finitos
Linguagens e
gramáticas
regulares
Gramáticas regulares
Autômatos finitos e
conjuntos regulares
Autômatos finitos e
gramáticas regulares
Pumping Lemma para
linguagens regulares
Linguagens
livres de
contexto
Autômatos
com pilha e
GLC’s
Máquinas de
Turing
(823 – 860 de 1593)
Pumping Lemma
LFA 2018/2
H. Longo
Introdução
Fundamentos
matemáticos
Linguagens e
gramáticas
regulares
Gramáticas regulares
Autômatos finitos e
conjuntos regulares
Autômatos finitos e
gramáticas regulares
Pumping Lemma para
linguagens regulares
Linguagens
livres de
contexto
Autômatos
com pilha e
GLC’s
Máquinas de
Turing
(824 – 860 de 1593)
Pumping Lemma
LFA 2018/2
H. Longo
Introdução
Fundamentos
matemáticos
Linguagens
livres de
contexto
Autômatos
com pilha e
GLC’s
Máquinas de
Turing
(825 – 860 de 1593)
Pumping Lemma
LFA 2018/2
H. Longo
Introdução
Fundamentos
matemáticos
Linguagens
livres de
contexto
Autômatos
com pilha e
GLC’s
Máquinas de
Turing
(826 – 860 de 1593)
Pumping Lemma
LFA 2018/2
H. Longo
Introdução
Fundamentos
matemáticos
Linguagens
livres de
contexto
Autômatos
com pilha e
GLC’s
Máquinas de
Turing
(827 – 860 de 1593)
Pumping Lemma
LFA 2018/2
H. Longo
Introdução
Alfabetos e
L = {z ∈ {a, b}∗ | |z| é um quadrado perfeito}.
linguagens
Autômatos
finitos
Linguagens e
gramáticas
regulares
Gramáticas regulares
Autômatos finitos e
conjuntos regulares
Autômatos finitos e
gramáticas regulares
Pumping Lemma para
linguagens regulares
Linguagens
livres de
contexto
Autômatos
com pilha e
GLC’s
Máquinas de
Turing
(828 – 860 de 1593)
Pumping Lemma
LFA 2018/2
H. Longo
Introdução
Alfabetos e
L = {z ∈ {a, b}∗ | |z| é um quadrado perfeito}.
linguagens
Autômatos
finitos
Suponha que L é regular.
Linguagens e L é aceito por algum DFA M .
gramáticas
regulares
Seja k o número de estados de M .
Gramáticas regulares
Autômatos finitos e Pelo Pumping Lemma, toda cadeia z ∈ L, com |z| > k, pode ser decomposta
em subcadeias u, v e w, com |uv| 6 k, v , ε e uvi w ∈ L ∀ i > 0
conjuntos regulares
Autômatos finitos e
gramáticas regulares
Pumping Lemma para
linguagens regulares
Linguagens
livres de
contexto
Autômatos
com pilha e
GLC’s
Máquinas de
Turing
(829 – 860 de 1593)
Pumping Lemma
LFA 2018/2
H. Longo
Introdução
Alfabetos e
L = {z ∈ {a, b}∗ | |z| é um quadrado perfeito}.
linguagens
Autômatos
finitos Considere qualquer cadeia z de comprimento k2 .
Linguagens e O Pumping Lemma requer a decomposição de z em subcadeias u, v e w, com
gramáticas
regulares 0 < |v| 6 k:
Gramáticas regulares |uv2 w| = |uvw| + |v|
= k2 + |v|
Autômatos finitos e
conjuntos regulares
6 k2 + k
Autômatos finitos e
gramáticas regulares
< k2 + 2.k + 1
Pumping Lemma para
linguagens regulares
Linguagens = (k + 1)2 .
livres de
contexto
Autômatos
com pilha e
GLC’s
Máquinas de
Turing
(830 – 860 de 1593)
Pumping Lemma
LFA 2018/2
H. Longo
Introdução
Alfabetos e
L = {z ∈ {a, b}∗ | |z| é um quadrado perfeito}.
linguagens
Como k2 < |uv2 w| < (k + 1)2 , então |uv2 w| não é um quadrado perfeito.
Autômatos
finitos
Linguagens e
gramáticas
Não existe decomposição possível de z que satisfaça as condições do lema.
regulares
Gramáticas regulares
Portanto, L não é regular.
Autômatos finitos e
conjuntos regulares
Autômatos finitos e
gramáticas regulares
Pumping Lemma para
linguagens regulares
Linguagens
livres de
contexto
Autômatos
com pilha e
GLC’s
Máquinas de
Turing
(831 – 860 de 1593)
Pumping Lemma
LFA 2018/2
H. Longo
Introdução
Fundamentos
matemáticos Exemplo 5.50
Alfabetos e
linguagens L = {ai | i é primo}.
Autômatos
finitos
Linguagens e
gramáticas
regulares
Gramáticas regulares
Autômatos finitos e
conjuntos regulares
Autômatos finitos e
gramáticas regulares
Pumping Lemma para
linguagens regulares
Linguagens
livres de
contexto
Autômatos
com pilha e
GLC’s
Máquinas de
Turing
(832 – 860 de 1593)
Pumping Lemma
LFA 2018/2
H. Longo
Introdução
Fundamentos
matemáticos Exemplo 5.50
Alfabetos e
linguagens L = {ai | i é primo}.
Autômatos
finitos
Suponha que L é regular.
Linguagens e
gramáticas L é aceito por algum DFA M com k estados.
regulares
Gramáticas regulares
Autômatos finitos e
Pelo Pumping Lemma, z = an ∈ L, com n > k e primo, pode ser decomposta
conjuntos regulares
Autômatos finitos e
em z = an = uvw, com v , ε e uvi w ∈ L, ∀ i > 0
gramáticas regulares
Pumping Lemma para
linguagens regulares
Linguagens
livres de
contexto
Autômatos
com pilha e
GLC’s
Máquinas de
Turing
(833 – 860 de 1593)
Pumping Lemma
LFA 2018/2
H. Longo
Introdução
Fundamentos
matemáticos Exemplo 5.50
Alfabetos e
linguagens L = {ai | i é primo}.
Autômatos
finitos
Linguagens e
Se z0 = uvn+1 w ∈ L, então |z0 | = |uvn+1 w| é primo. Mas:
gramáticas
regulares
Gramáticas regulares
|uvn+1 w| = |uvvn w|
Autômatos finitos e
conjuntos regulares = |uvw| + |vn |
Autômatos finitos e
gramáticas regulares = n + n.|v|
= n·(1 + |v|).
Pumping Lemma para
linguagens regulares
Linguagens
livres de
contexto
Autômatos
com pilha e
GLC’s
Máquinas de
Turing
(834 – 860 de 1593)
Pumping Lemma
LFA 2018/2
H. Longo
Introdução
Fundamentos
matemáticos Exemplo 5.50
Alfabetos e
linguagens L = {ai | i é primo}.
Autômatos
finitos
Linguagens e
Como |uvn+1 w| = n·(1 + |v|), então |uvn+1 w| não é primo.
gramáticas
regulares Não existe decomposição possível de an que satisfaça as condições do lema.
Gramáticas regulares
Autômatos finitos e Portanto, L não é regular.
conjuntos regulares
Autômatos finitos e
gramáticas regulares
Pumping Lemma para
linguagens regulares
Linguagens
livres de
contexto
Autômatos
com pilha e
GLC’s
Máquinas de
Turing
(835 – 860 de 1593)
Pumping Lemma
LFA 2018/2
H. Longo
Introdução
Exemplo 5.51
Fundamentos
matemáticos L = {ai bi | i > 0}.
Alfabetos e
linguagens
Autômatos
finitos
Linguagens e
gramáticas
regulares
Gramáticas regulares
Autômatos finitos e
conjuntos regulares
Autômatos finitos e
gramáticas regulares
Pumping Lemma para
linguagens regulares
Linguagens
livres de
contexto
Autômatos
com pilha e
GLC’s
Máquinas de
Turing
(836 – 860 de 1593)
Pumping Lemma
LFA 2018/2
H. Longo
Introdução
Exemplo 5.51
Fundamentos
matemáticos L = {ai bi | i > 0}.
Alfabetos e
linguagens
Linguagens
livres de
contexto onde i + j 6 k e j > 0.
Autômatos
com pilha e
GLC’s
Máquinas de
Turing
(837 – 860 de 1593)
Pumping Lemma
LFA 2018/2
H. Longo
Introdução
Exemplo 5.51
Fundamentos
matemáticos L = {ai bi | i > 0}.
Alfabetos e
linguagens
Linguagens e
Como uv2 w < L, não existe decomposição possível de z que satisfaça as
gramáticas
regulares
condições do lema.
Gramáticas regulares
Autômatos finitos e Portanto, L não é regular.
conjuntos regulares
Autômatos finitos e
gramáticas regulares
Pumping Lemma para
linguagens regulares
Linguagens
livres de
contexto
Autômatos
com pilha e
GLC’s
Máquinas de
Turing
(838 – 860 de 1593)
Pumping Lemma
LFA 2018/2
H. Longo
Introdução
Fundamentos
matemáticos L = {0n 1n | n > 0}.
Alfabetos e
linguagens
Autômatos
finitos
Linguagens e
gramáticas
regulares
Gramáticas regulares
Autômatos finitos e
conjuntos regulares
Autômatos finitos e
gramáticas regulares
Pumping Lemma para
linguagens regulares
Linguagens
livres de
contexto
Autômatos
com pilha e
GLC’s
Máquinas de
Turing
(839 – 860 de 1593)
Pumping Lemma
LFA 2018/2
H. Longo
Introdução
Fundamentos
matemáticos L = {0n 1n | n > 0}.
Alfabetos e
linguagens
Autômatos
Suponha que L é regular.
finitos
k é o pumping length dado pelo lema.
Linguagens e
gramáticas Seja w = 0k 1k :
regulares
Gramáticas regulares z ∈ L e |z| > k ⇒ z = uvw e uvi w ∈ L, ∀ i > 0.
Autômatos finitos e
conjuntos regulares
Autômatos finitos e
gramáticas regulares
Pumping Lemma para
linguagens regulares
Linguagens
livres de
contexto
Autômatos
com pilha e
GLC’s
Máquinas de
Turing
(840 – 860 de 1593)
Pumping Lemma
LFA 2018/2
H. Longo
Introdução
Fundamentos
matemáticos L = {0n 1n | n > 0}.
Alfabetos e
linguagens
Autômatos
Contradições:
finitos a) v consiste somente de 0’s.
Linguagens e A cadeia uvvw tem mais 0’s do que 1’s e não pertence a L.
gramáticas
regulares b) v consiste somente de 1’s.
Gramáticas regulares
Autômatos finitos e A cadeia uvvw tem mais 1’s do que 0’s e não pertence a L.
conjuntos regulares
Autômatos finitos e
gramáticas regulares
c) v consiste de 0’s e 1’s.
Pumping Lemma para
linguagens regulares
A cadeia uvvw pode ter o mesmo número de 0’s e 1’s, mas com ocorrência de 1’s
Linguagens
antes de 0’s.
livres de
contexto
Autômatos
com pilha e
GLC’s
Máquinas de
Turing
(841 – 860 de 1593)
Pumping Lemma
LFA 2018/2
H. Longo
Introdução
Fundamentos
matemáticos
Alfabetos e
linguagens
L = {z ∈ {0, 1}∗ | w tem igual número de 0’s e 1’s}.
Autômatos
finitos
Linguagens e
gramáticas
regulares
Gramáticas regulares
Autômatos finitos e
conjuntos regulares
Autômatos finitos e
gramáticas regulares
Pumping Lemma para
linguagens regulares
Linguagens
livres de
contexto
Autômatos
com pilha e
GLC’s
Máquinas de
Turing
(842 – 860 de 1593)
Pumping Lemma
LFA 2018/2
H. Longo
Introdução
Fundamentos
matemáticos
Alfabetos e
linguagens
L = {z ∈ {0, 1}∗ | w tem igual número de 0’s e 1’s}.
Autômatos
finitos
Suponha que L é regular.
Linguagens e
gramáticas k é o pumping length dado pelo lema.
regulares
Gramáticas regulares Seja w = 0k 1k :
Autômatos finitos e
conjuntos regulares
Autômatos finitos e
z ∈ L e |z| > k ⇒ z = uvw e uvi w ∈ L, ∀ i > 0.
gramáticas regulares
Pumping Lemma para
linguagens regulares
Linguagens
livres de
contexto
Autômatos
com pilha e
GLC’s
Máquinas de
Turing
(843 – 860 de 1593)
Pumping Lemma
LFA 2018/2
H. Longo
Introdução
Fundamentos
matemáticos
Alfabetos e
linguagens
L = {z ∈ {0, 1}∗ | w tem igual número de 0’s e 1’s}.
Autômatos
finitos
Contradição????
Linguagens e
gramáticas
a) u = w = ε e v = 0k 1k .
regulares A cadeia uvi w sempre tem o mesmo número de 0’s e 1’s!!!
Gramáticas regulares
Autômatos finitos e
conjuntos regulares
b) Se |uv| 6 k, então v deve consistir só de 0’s.
Autômatos finitos e
gramáticas regulares
A cadeia uvvw tem mais 0’s do que 1’s.
Pumping Lemma para
linguagens regulares
Linguagens
livres de
contexto
Autômatos
com pilha e
GLC’s
Máquinas de
Turing
(844 – 860 de 1593)
Pumping Lemma
LFA 2018/2
H. Longo
Introdução
Fundamentos
matemáticos
Exemplo 5.52
Alfabetos e
linguagens
L = {ai b j c j | i, j > 0}.
Autômatos
finitos
Linguagens e
gramáticas
regulares
Gramáticas regulares
Autômatos finitos e
conjuntos regulares
Autômatos finitos e
gramáticas regulares
Pumping Lemma para
linguagens regulares
Linguagens
livres de
contexto
Autômatos
com pilha e
GLC’s
Máquinas de
Turing
(845 – 860 de 1593)
Pumping Lemma
LFA 2018/2
H. Longo
Introdução
Fundamentos
matemáticos
Exemplo 5.52
Alfabetos e
linguagens
L = {ai b j c j | i, j > 0}.
Autômatos
finitos
Suponha que L é regular.
Linguagens e
gramáticas L é aceito por algum DFA M com k estados.
regulares
Gramáticas regulares Pelo Pumping Lemma, toda cadeia z ∈ L, com |z| > k, pode ser decomposta
em z = uvw, com |uv| 6 k, v , ε e uvi w ∈ L, ∀ i > 0
Autômatos finitos e
conjuntos regulares
Autômatos finitos e
Linguagens
condições do Pumping Lemma, deve ter uma das seguintes formas:
livres de
contexto
Autômatos
com pilha e
GLC’s
Máquinas de
Turing
(846 – 860 de 1593)
Pumping Lemma
LFA 2018/2
H. Longo
Introdução
Fundamentos
matemáticos
Exemplo 5.52
Alfabetos e
linguagens
L = {ai b j c j | i, j > 0}.
Autômatos
finitos 1 a < v:
Linguagens e
gramáticas
u v w
regulares
Gramáticas regulares
ab b j bk−i− j ck ,
i
onde i + j 6 k − 1 e j > 0.
Autômatos finitos e
conjuntos regulares
Autômatos finitos e
gramáticas regulares
Pumping Lemma para
Portanto, uv0 w = abi bk−i− j ck = abk− j ck .
linguagens regulares
Linguagens
livres de
contexto
Autômatos
com pilha e
GLC’s
Máquinas de
Turing
(847 – 860 de 1593)
Pumping Lemma
LFA 2018/2
H. Longo
Introdução
Fundamentos
matemáticos
Exemplo 5.52
Alfabetos e
linguagens
L = {ai b j c j | i, j > 0}.
Autômatos
finitos 2 a ∈ v:
Linguagens e
gramáticas
u v w
regulares
Gramáticas regulares
ε ab bk−i ck ,
i
Autômatos finitos e
conjuntos regulares onde i 6 k − 1.
Autômatos finitos e
gramáticas regulares
Pumping Lemma para
Portanto, uv0 w = bk−i ck .
linguagens regulares
Linguagens
livres de
contexto
Autômatos
com pilha e
GLC’s
Máquinas de
Turing
(848 – 860 de 1593)
Pumping Lemma
LFA 2018/2
H. Longo
Introdução
Fundamentos
matemáticos
Exemplo 5.52
Alfabetos e
linguagens
L = {ai b j c j | i, j > 0}.
Autômatos
finitos
Portanto, uv0 w < L.
Linguagens e
gramáticas
regulares
Logo, não existe decomposição possível de z que satisfaça as condições do
Gramáticas regulares lema.
Autômatos finitos e
conjuntos regulares
Autômatos finitos e Portanto, L não é regular.
gramáticas regulares
Pumping Lemma para
linguagens regulares
Linguagens
livres de
contexto
Autômatos
com pilha e
GLC’s
Máquinas de
Turing
(849 – 860 de 1593)
Cardinalidade da linguagem de um DFA
LFA 2018/2
H. Longo
Introdução
Fundamentos
matemáticos
Alfabetos e
linguagens
Teorema 5.53
Autômatos
finitos
Seja M um DFA com k estados:
Linguagens e
gramáticas
regulares
1 L(M) , ∅ se, e somente se, M aceita uma cadeia z com |z| < k.
Gramáticas regulares
Autômatos finitos e
2 |L(M)| = ∞ se, e somente se, M aceita uma cadeia z com k 6 |z| < 2k.
conjuntos regulares
Autômatos finitos e
gramáticas regulares
Pumping Lemma para
linguagens regulares
Linguagens
livres de
contexto
Autômatos
com pilha e
GLC’s
Máquinas de
Turing
(850 – 860 de 1593)
Cardinalidade da linguagem de um DFA
LFA 2018/2
H. Longo
Introdução
Fundamentos
matemáticos
Alfabetos e
Demonstração.
L(M) , ∅ se, e somente se, M aceita uma cadeia z com |z| < k.
linguagens
1
Autômatos
finitos
Linguagens e
gramáticas
regulares
Gramáticas regulares
Autômatos finitos e
conjuntos regulares
Autômatos finitos e
gramáticas regulares
Pumping Lemma para
linguagens regulares
Linguagens
livres de
contexto
Autômatos
com pilha e
GLC’s
Máquinas de
Turing
(851 – 860 de 1593)
Cardinalidade da linguagem de um DFA
LFA 2018/2
H. Longo
Introdução
Fundamentos
matemáticos
Alfabetos e
Demonstração.
L(M) , ∅ se, e somente se, M aceita uma cadeia z com |z| < k.
linguagens
1
Autômatos
finitos ⇐ Condição óbvia.
Linguagens e
gramáticas
regulares
Gramáticas regulares
Autômatos finitos e
conjuntos regulares
Autômatos finitos e
gramáticas regulares
Pumping Lemma para
linguagens regulares
Linguagens
livres de
contexto
Autômatos
com pilha e
GLC’s
Máquinas de
Turing
(852 – 860 de 1593)
Cardinalidade da linguagem de um DFA
LFA 2018/2
H. Longo
Introdução
Fundamentos
matemáticos
Alfabetos e
Demonstração.
L(M) , ∅ se, e somente se, M aceita uma cadeia z com |z| < k.
linguagens
1
Autômatos
finitos ⇐ Condição óbvia.
Linguagens e ⇒ Seja um DFA M , tal que L(M) , ∅, e z ∈ L(M) tal que |z| é mínimo.
gramáticas
regulares Suponha que |z| > k. Pelo Pumping Lemma, z = uvw e uvi w ∈ L(M), ∀ i > 0.
Gramáticas regulares Logo uv0 w = uw ∈ L(M) contradiz a minimalidade de |z|.
Portanto, |z| < k.
Autômatos finitos e
conjuntos regulares
Autômatos finitos e
gramáticas regulares
Pumping Lemma para
linguagens regulares
Linguagens
livres de
contexto
Autômatos
com pilha e
GLC’s
Máquinas de
Turing
(853 – 860 de 1593)
Cardinalidade da linguagem de um DFA
LFA 2018/2
H. Longo
Introdução
Fundamentos
matemáticos
Alfabetos e
Demonstração.
|L(M)| = ∞ se, e somente se, M aceita uma cadeia z com k 6 |z| < 2k.
linguagens
2
Autômatos
finitos
Linguagens e
gramáticas
regulares
Gramáticas regulares
Autômatos finitos e
conjuntos regulares
Autômatos finitos e
gramáticas regulares
Pumping Lemma para
linguagens regulares
Linguagens
livres de
contexto
Autômatos
com pilha e
GLC’s
Máquinas de
Turing
(854 – 860 de 1593)
Cardinalidade da linguagem de um DFA
LFA 2018/2
H. Longo
Introdução
Fundamentos
matemáticos
Alfabetos e
Demonstração.
|L(M)| = ∞ se, e somente se, M aceita uma cadeia z com k 6 |z| < 2k.
linguagens
2
Autômatos
finitos ⇐ Assuma que M aceita uma cadeia z com k 6 |z| < 2k.
Linguagens e Então z = uvw e u, v e w satisfazem as condições do Pumping Lemma.
gramáticas
regulares
Portanto, uvi w ∈ L(M), ∀ i > 0.
Gramáticas regulares Logo, |L(M)| = ∞.
Autômatos finitos e
conjuntos regulares
Autômatos finitos e
gramáticas regulares
Pumping Lemma para
linguagens regulares
Linguagens
livres de
contexto
Autômatos
com pilha e
GLC’s
Máquinas de
Turing
(855 – 860 de 1593)
Cardinalidade da linguagem de um DFA
LFA 2018/2
H. Longo
Introdução
Fundamentos
matemáticos
Alfabetos e
Demonstração.
|L(M)| = ∞ se, e somente se, M aceita uma cadeia z com k 6 |z| < 2k.
linguagens
2
Autômatos
finitos ⇒ Assuma que |L(M)| = ∞.
Linguagens e O número de cadeias de cardinalidade menor que k é finito.
gramáticas
regulares
Assim, suponha que z ∈ L(M), com |z| > 2k é de comprimento mínimo.
Gramáticas regulares Pelo Pumping Lemma, z = uvw, |v| 6 k e uv0 w = uw ∈ L(M).
Autômatos finitos e
conjuntos regulares Logo k 6 |uv| < 2k contradiz a minimalidade de |z|.
Autômatos finitos e
gramáticas regulares
Portanto, |z| < 2k.
Pumping Lemma para
linguagens regulares
Linguagens
livres de
contexto
Autômatos
com pilha e
GLC’s
Máquinas de
Turing
(856 – 860 de 1593)
Cardinalidade da linguagem de um DFA
LFA 2018/2
H. Longo
Introdução
Fundamentos
matemáticos
Alfabetos e
linguagens
Corolário 5.54
Autômatos
finitos Seja M um DFA. Existe um procedimento que determina se:
Linguagens e
gramáticas
1 L(M) é vazia,
regulares
Gramáticas regulares
2 L(M) é finita, ou
Autômatos finitos e
conjuntos regulares
Autômatos finitos e
3 L(M) é infinita.
gramáticas regulares
Pumping Lemma para
linguagens regulares
Linguagens
livres de
contexto
Autômatos
com pilha e
GLC’s
Máquinas de
Turing
(857 – 860 de 1593)
Cardinalidade da linguagem de um DFA
LFA 2018/2
H. Longo
Introdução
Fundamentos
matemáticos
Linguagens
livres de
contexto
Autômatos
com pilha e
GLC’s
Máquinas de
Turing
(858 – 860 de 1593)
Cardinalidade da linguagem de um DFA
LFA 2018/2
H. Longo
Introdução
Fundamentos
Corolário 5.55
matemáticos
Sejam M1 e M2 dois DFA’s. Existe um procedimento que determina se M1 e M2
Alfabetos e
linguagens são equivalentes.
Autômatos
finitos
Linguagens e
gramáticas
regulares
Gramáticas regulares
Autômatos finitos e
conjuntos regulares
Autômatos finitos e
gramáticas regulares
Pumping Lemma para
linguagens regulares
Linguagens
livres de
contexto
Autômatos
com pilha e
GLC’s
Máquinas de
Turing
(859 – 860 de 1593)
Cardinalidade da linguagem de um DFA
LFA 2018/2
H. Longo
Introdução
Fundamentos
Corolário 5.55
matemáticos
Sejam M1 e M2 dois DFA’s. Existe um procedimento que determina se M1 e M2
Alfabetos e
linguagens são equivalentes.
Autômatos
finitos
Demonstração.
Linguagens e
gramáticas
regulares A linguagem L = (L(M1 ) ∩ L(M2 ) ∪ (L(M1 ) ∩ L(M2 )) é regular.
Gramáticas regulares
Autômatos finitos e
conjuntos regulares
L é vazia se, e somente se, L(M1 ) e L(M2 ) são idênticas.
Autômatos finitos e
gramáticas regulares Pelo corolário 5.54 existe um procedimento para determinar se L é vazia, ou
Pumping Lemma para
linguagens regulares
seja, se L(M1 ) e L(M2 ) são idênticas.
Linguagens
livres de
contexto
Autômatos
com pilha e
GLC’s
Máquinas de
Turing
(860 – 860 de 1593)
LFA 2018/2
H. Longo
Introdução
Fundamentos
matemáticos
Alfabetos e
linguagens
Linguagens e
gramáticas
regulares
Linguagens
Gramáticas livres de contexto
livres de
contexto
Gramáticas livres de
contexto
Derivações
Ambiguidade
Formas normais
Autômatos
com pilha e
GLC’s
Máquinas de
Turing
H. Longo
Autômatos
finitos
Linguagens e
gramáticas
regulares
Linguagens
livres de
contexto
Gramáticas livres de
contexto
Derivações
Ambiguidade
Formas normais
Autômatos
com pilha e
GLC’s
Máquinas de
Turing
H. Longo
Linguagens e
gramáticas
regulares
Linguagens
livres de
contexto
Gramáticas livres de
contexto
Derivações
Ambiguidade
Formas normais
Autômatos
com pilha e
GLC’s
Máquinas de
Turing
H. Longo
Autômatos
com pilha e
GLC’s
Máquinas de
Turing
H. Longo
Autômatos
com pilha e
GLC’s
Máquinas de
Turing
H. Longo
Autômatos
com pilha e S ∈ V : Variável inicial.
GLC’s
Máquinas de
Turing
H. Longo
Introdução
Fundamentos
matemáticos
Alfabetos e
linguagens Definição 6.2 (GLC)
Autômatos
finitos Significado da expressão “livre de contexto”???
Linguagens e
gramáticas
regulares
Linguagens
livres de
contexto
Gramáticas livres de
contexto
Derivações
Ambiguidade
Formas normais
Autômatos
com pilha e
GLC’s
Máquinas de
Turing
H. Longo
Introdução
Fundamentos
matemáticos
Alfabetos e
linguagens Definição 6.2 (GLC)
Autômatos
finitos Significado da expressão “livre de contexto”???
Linguagens e
gramáticas
Para tais linguagens, cujas produções são da forma A → w, a variável A
regulares deriva w sem depender (livre) de qualquer análise dos símbolos que
Linguagens
livres de
antecedem ou seguem A (contexto).
contexto
Gramáticas livres de
contexto
Derivações
Ambiguidade
Formas normais
Autômatos
com pilha e
GLC’s
Máquinas de
Turing
H. Longo
Introdução
Fundamentos
matemáticos
Alfabetos e
linguagens
Revisão
Autômatos
finitos A aplicação de A → w à variável A em uAv gera a cadeia uwv.
Linguagens e
gramáticas Se (A → w) ∈ P, então uAv ⇒ uwv.
regulares
Linguagens
livres de
contexto
Gramáticas livres de
contexto
Derivações
Ambiguidade
Formas normais
Autômatos
com pilha e
GLC’s
Máquinas de
Turing
H. Longo
Introdução
Fundamentos
matemáticos
Alfabetos e
linguagens
Revisão
Autômatos
finitos A aplicação de A → w à variável A em uAv gera a cadeia uwv.
Linguagens e
gramáticas Se (A → w) ∈ P, então uAv ⇒ uwv.
regulares ∗
Linguagens
u =⇒ v se u = v ou ∃ u1 , u2 , . . . , uk , k ≥ 0 tal que u ⇒ u1 ⇒ u2 ⇒ · · · ⇒ uk ⇒ v.
livres de
contexto
Gramáticas livres de
contexto
Derivações
Ambiguidade
Formas normais
Autômatos
com pilha e
GLC’s
Máquinas de
Turing
H. Longo
Introdução
Fundamentos Revisão
matemáticos
Alfabetos e
→ : Definição de regra de derivação.
linguagens
Autômatos
finitos ⇒ : Aplicação de regra de derivação.
Linguagens e
gramáticas
regulares
Linguagens
livres de
contexto
Gramáticas livres de
contexto
Derivações
Ambiguidade
Formas normais
Autômatos
com pilha e
GLC’s
Máquinas de
Turing
H. Longo
Introdução
Fundamentos Revisão
matemáticos
Alfabetos e
→ : Definição de regra de derivação.
linguagens
Regra de derivação pertence ao conjunto V × (V ∪ Σ)∗ .
Autômatos
finitos ⇒ : Aplicação de regra de derivação.
Linguagens e
gramáticas Aplicação transforma uma cadeia em outra e pertence ao conjunto
regulares
(V ∪ Σ)+ × (V ∪ Σ)∗ .
Linguagens
livres de
contexto
Gramáticas livres de
contexto
Derivações
Ambiguidade
Formas normais
Autômatos
com pilha e
GLC’s
Máquinas de
Turing
H. Longo
Introdução
Fundamentos Revisão
matemáticos
Alfabetos e
→ : Definição de regra de derivação.
linguagens
Regra de derivação pertence ao conjunto V × (V ∪ Σ)∗ .
Autômatos
finitos ⇒ : Aplicação de regra de derivação.
Linguagens e
gramáticas Aplicação transforma uma cadeia em outra e pertence ao conjunto
regulares
(V ∪ Σ)+ × (V ∪ Σ)∗ .
Linguagens +
livres de
contexto
=⇒ : Derivação usando uma ou mais regras de derivação.
n
=⇒ : Derivação de comprimento n:
Gramáticas livres de
contexto
Derivações
n
Ambiguidade
Formas normais
v =⇒ w : w é derivado a partir de v usando n regras de derivação.
Autômatos
com pilha e
GLC’s
Máquinas de
Turing
H. Longo
Introdução
Fundamentos
matemáticos
Exemplo 6.3
Alfabetos e
linguagens
A → 0A1
Autômatos
G1 = (V = {A, B}, Σ = {0, 1, #}, P, A), onde: P =
A → B
finitos
B → #
Linguagens e
gramáticas
regulares
Autômatos
com pilha e
GLC’s
Máquinas de
Turing
H. Longo
Introdução
Fundamentos
matemáticos Definição 6.4
Alfabetos e
linguagens Seja G = (V, Σ, P, S ) uma GLC e v ∈ (V ∪ Σ)∗ . O conjunto de cadeias
Autômatos deriváveis a partir de v é definido como:
finitos
Linguagens e
gramáticas
regulares
Linguagens
livres de
contexto
Gramáticas livres de
contexto
Derivações
Ambiguidade
Formas normais
Autômatos
com pilha e
GLC’s
Máquinas de
Turing
H. Longo
Introdução
Fundamentos
matemáticos Definição 6.4
Alfabetos e
linguagens Seja G = (V, Σ, P, S ) uma GLC e v ∈ (V ∪ Σ)∗ . O conjunto de cadeias
Autômatos deriváveis a partir de v é definido como:
finitos
Base: v é derivável a partir de v.
Linguagens e
gramáticas
regulares
Linguagens
livres de
contexto
Gramáticas livres de
contexto
Derivações
Ambiguidade
Formas normais
Autômatos
com pilha e
GLC’s
Máquinas de
Turing
H. Longo
Introdução
Fundamentos
matemáticos Definição 6.4
Alfabetos e
linguagens Seja G = (V, Σ, P, S ) uma GLC e v ∈ (V ∪ Σ)∗ . O conjunto de cadeias
Autômatos deriváveis a partir de v é definido como:
finitos
Base: v é derivável a partir de v.
Linguagens e
gramáticas Recursão: Se u = xAy é derivável a partir de v e A → w ∈ P, então a cadeia
regulares
Linguagens
xwy é derivável a partir de v.
livres de
contexto
Gramáticas livres de
contexto
Derivações
Ambiguidade
Formas normais
Autômatos
com pilha e
GLC’s
Máquinas de
Turing
H. Longo
Introdução
Fundamentos
matemáticos Definição 6.4
Alfabetos e
linguagens Seja G = (V, Σ, P, S ) uma GLC e v ∈ (V ∪ Σ)∗ . O conjunto de cadeias
Autômatos deriváveis a partir de v é definido como:
finitos
Base: v é derivável a partir de v.
Linguagens e
gramáticas Recursão: Se u = xAy é derivável a partir de v e A → w ∈ P, então a cadeia
regulares
Linguagens
xwy é derivável a partir de v.
livres de Fecho: As cadeias deriváveis a partir de v são exatamente as cadeias
contexto
Gramáticas livres de
contexto
construídas a partir de v pela aplicação da recursão um número
Derivações
Ambiguidade
finito de vezes.
Formas normais
Autômatos
com pilha e
GLC’s
Máquinas de
Turing
H. Longo
Introdução
Fundamentos
matemáticos Definição 6.5
Alfabetos e
linguagens
Seja G = (V, Σ, P, S ) uma GLC:
∗
Autômatos Forma Sentencial: w ∈ (V ∪ Σ)∗ tal que existe uma derivação S =⇒ w em G.
finitos
Sequências de símbolos deriváveis a partir do símbolo
Linguagens e
gramáticas inicial.
regulares
Linguagens
livres de
contexto
Gramáticas livres de
contexto
Derivações
Ambiguidade
Formas normais
Autômatos
com pilha e
GLC’s
Máquinas de
Turing
H. Longo
Introdução
Fundamentos
matemáticos Definição 6.5
Alfabetos e
linguagens
Seja G = (V, Σ, P, S ) uma GLC:
∗
Autômatos Forma Sentencial: w ∈ (V ∪ Σ)∗ tal que existe uma derivação S =⇒ w em G.
finitos
Sequências de símbolos deriváveis a partir do símbolo
Linguagens e
gramáticas inicial.
∗
Sentença: w ∈ Σ∗ tal que existe uma derivação S =⇒ w em G.
regulares
Linguagens
livres de Formas sentenciais que só contém símbolos terminais.
contexto
Gramáticas livres de
contexto
Derivações
Ambiguidade
Formas normais
Autômatos
com pilha e
GLC’s
Máquinas de
Turing
H. Longo
Introdução
Fundamentos
matemáticos Definição 6.5
Alfabetos e
linguagens
Seja G = (V, Σ, P, S ) uma GLC:
∗
Autômatos Forma Sentencial: w ∈ (V ∪ Σ)∗ tal que existe uma derivação S =⇒ w em G.
finitos
Sequências de símbolos deriváveis a partir do símbolo
Linguagens e
gramáticas inicial.
∗
Sentença: w ∈ Σ∗ tal que existe uma derivação S =⇒ w em G.
regulares
Linguagens
livres de Formas sentenciais que só contém símbolos terminais.
contexto ∗
Gramáticas livres de
contexto
Linguagem: L(G) = {w ∈ Σ∗ | S =⇒ w}.
Derivações
Ambiguidade
Conjunto de sentenças geras pela gramática.
Formas normais
Autômatos
com pilha e
GLC’s
Máquinas de
Turing
H. Longo
Introdução
Fundamentos
matemáticos Definição 6.6
Alfabetos e
linguagens Recursão nas regras de derivação de uma GLC G = (V, Σ, P, S ):
Autômatos Recursão Direta: A → uAv.
finitos
Linguagens e
gramáticas
regulares
Linguagens
livres de
contexto
Gramáticas livres de
contexto
Derivações
Ambiguidade
Formas normais
Autômatos
com pilha e
GLC’s
Máquinas de
Turing
H. Longo
Introdução
Fundamentos
matemáticos Definição 6.6
Alfabetos e
linguagens Recursão nas regras de derivação de uma GLC G = (V, Σ, P, S ):
Autômatos Recursão Direta: A → uAv.
finitos
Permite gerar qualquer número de cópias da subcadeia u,
Linguagens e
gramáticas seguido de A e igual número de v’s.
regulares
É necessária uma regra não recursiva para parar o
Linguagens
livres de
processo de derivação.
contexto
Gramáticas livres de
contexto
Derivações
Ambiguidade
Formas normais
Autômatos
com pilha e
GLC’s
Máquinas de
Turing
H. Longo
Introdução
Fundamentos
matemáticos Definição 6.6
Alfabetos e
linguagens Recursão nas regras de derivação de uma GLC G = (V, Σ, P, S ):
Autômatos Recursão Direta: A → uAv.
finitos
Permite gerar qualquer número de cópias da subcadeia u,
Linguagens e
gramáticas seguido de A e igual número de v’s.
regulares
É necessária uma regra não recursiva para parar o
Linguagens
livres de
processo de derivação.
+
Recursão Indireta: A ⇒ w =⇒ uAv, onde A não ocorre em w.
contexto
Gramáticas livres de
contexto +
Derivações Variável Recursiva: A =⇒ uAv.
Ambiguidade
Formas normais
Autômatos
com pilha e
GLC’s
Máquinas de
Turing
H. Longo
Autômatos
finitos G = (V, Σ, P, S )
Linguagens e
gramáticas
regulares
V = {S , A}
Linguagens
livres de Σ = {a, b}
contexto
S → AA ,
( )
Gramáticas livres de
contexto
P=
Derivações
Ambiguidade
A → AAA | bA | Ab | a
Formas normais
Autômatos
com pilha e
GLC’s
Máquinas de
Turing
H. Longo
S → AA ,
Ambiguidade
( )
Formas normais P=
A → AAA | bA | Ab | a
Autômatos
com pilha e
GLC’s
Máquinas de
Turing
H. Longo
Introdução
Fundamentos
matemáticos
Alfabetos e
linguagens
Exercícios
Autômatos Construir gramática G tal que:
finitos
1 L = {an bm | n ≥ 0 e m ≥ 1}.
Linguagens e
gramáticas 2 L = {ai b j ci | i ≥ 0 e j ≥ 1}.
regulares
Linguagens
3 L = {w | w ∈ {0, 1}+ e não tem 1’s consecutivos}.
livres de
contexto
4 L = {w | w ∈ {0, 1, 2}+ e todos os 0’s sejam consecutivos}.
Gramáticas livres de
contexto
Derivações
Ambiguidade
Formas normais
Autômatos
com pilha e
GLC’s
Máquinas de
Turing
H. Longo
Introdução
Fundamentos
matemáticos
Lema 6.8
n
Alfabetos e
linguagens Seja G uma GLC e v =⇒ w uma derivação em G, onde
Autômatos
finitos
v = w1 A1 w2 A2 . . .wk Ak wk+1 ,
Linguagens e
gramáticas
regulares com wi ∈ Σ∗ . Então existem cadeias pi ∈ (Σ ∪ V)∗ tais que:
ti
Linguagens
livres de
1 Ai =⇒ pi ;
contexto 2 w = w1 p1 w2 p2 . . .wk pk wk+1 ; e
Gramáticas livres de
contexto
k
ti = n .
P
Derivações 3
Ambiguidade i=1
Formas normais
Autômatos
com pilha e
GLC’s
Máquinas de
Turing
H. Longo
Introdução
Demonstração.
Fundamentos
matemáticos Indução no comprimento da derivação de w a partir de v:
0
Base: Consiste de derivações da forma v =⇒ w. Neste caso, w = v e
Alfabetos e
linguagens
Linguagens
livres de
contexto
Gramáticas livres de
contexto
Derivações
Ambiguidade
Formas normais
Autômatos
com pilha e
GLC’s
Máquinas de
Turing
H. Longo
Introdução
Demonstração.
Fundamentos
matemáticos Indução no comprimento da derivação de w a partir de v:
0
Base: Consiste de derivações da forma v =⇒ w. Neste caso, w = v e
Alfabetos e
linguagens
Autômatos
com pilha e
GLC’s
Máquinas de
Turing
H. Longo
Introdução
Demonstração.
Fundamentos
matemáticos Indução no comprimento da derivação de w a partir de v:
Alfabetos e n+1
linguagens Passo: Seja v =⇒ w uma derivação em G com
Autômatos
finitos
v = w1 A1 w2 A2 . . .wk Ak wk+1 ,
Linguagens e
gramáticas
regulares
com wi ∈ Σ∗ .
Linguagens n
livres de
contexto
Essa derivação pode ser escrita como v =⇒ u =⇒ w. Isto reduz a
Gramáticas livres de
contexto
derivação original a uma derivação de comprimento n, a qual está
Derivações
Ambiguidade
na forma correta (pela aplicação de uma derivação simples e por
Formas normais
hipótese de indução).
Autômatos
com pilha e
GLC’s
Máquinas de
Turing
H. Longo
Introdução
Demonstração.
Fundamentos
matemáticos Indução no comprimento da derivação de w a partir de v:
Alfabetos e
linguagens
Passo: A derivação v =⇒ u transforma uma das variáveis de v (A j ) com a
Autômatos
regra
finitos
A j → u1 B1 u2 B2 . . .um Bm um+1 ,
Linguagens e
gramáticas
regulares onde cada ui ∈ Σ∗ .
Linguagens
livres de A cadeia u é obtida a partir de v pela substituição de A j pelo lado
contexto
Gramáticas livres de
direito de sua regra de derivação. Neste caso u é escrito como:
contexto
Derivações
Ambiguidade
Formas normais
u = w1 A1 . . .A j−1 w j u1 B1 u2 B2 . . .um Bm um+1 w j+1 A j+1 . . .wk Ak wk+1 .
Autômatos
com pilha e
GLC’s
Máquinas de
Turing
H. Longo
Introdução
Demonstração.
Fundamentos
matemáticos Indução no comprimento da derivação de w a partir de v:
Alfabetos e Passo: Como w é derivável a partir de u usando n aplicações de regras de
linguagens
derivação. A hipótese indutiva garante que existem cadeias
p1 , . . . , p j−1 q1 , . . . , qm e p j+1 , . . . , pk que satisfazem:
Autômatos
finitos
ti
Linguagens e
gramáticas
1 Ai =⇒ pi para i = 1, . . . , j − 1, j + 1, . . . , k;
si
regulares
Bi =⇒ qi para i = 1, . . . , m;
Linguagens
livres de
2 w = w1 p1 w2 . . .p j−1 w j u1 q1 u2 . . .um qm um+1 w j+1 p j+1 . . .wk pk wk+1 ;
contexto j−1 k m
ti + ti + si = n.
P P P
Gramáticas livres de 3
contexto
Derivações
i=1 i= j+1 i=1
Ambiguidade
Formas normais
Autômatos
com pilha e
GLC’s
Máquinas de
Turing
H. Longo
Introdução
Demonstração.
Fundamentos
matemáticos Indução no comprimento da derivação de w a partir de v:
Alfabetos e
linguagens
Passo: Combinando-se a regra A j → u1 B1 u2 B2 . . .um Bm um+1 com as
∗
Autômatos derivações Bi =⇒ qi , obtem-se a derivação
finitos
∗
A j =⇒ u1 q1 u2 q2 . . .um qm um+1 = p j
Linguagens e
gramáticas
regulares
Linguagens
livres de
cujo comprimento é a soma dos comprimentos das derivações a
contexto
Gramáticas livres de
partir dos Bi ’s mais 1.
contexto
∗
Derivações
Ambiguidade
As derivações Ai =⇒ pi , i = 1, . . . , k, fornecem a decomposição
Formas normais
desejada da derivação de w a partir de v.
Autômatos
com pilha e
GLC’s
Máquinas de
Turing
H. Longo
Introdução
Fundamentos
matemáticos
Linguagens
livres de
contexto
Gramáticas livres de
contexto
Derivações
Ambiguidade
Formas normais
Autômatos
com pilha e
GLC’s
Máquinas de
Turing
H. Longo
Introdução
Fundamentos
matemáticos
Autômatos
com pilha e
GLC’s
Máquinas de
Turing
H. Longo
Introdução
Fundamentos
Exemplo 6.9
matemáticos
V = {S , B}
Alfabetos e
Σ = {a,
( b}
linguagens
G = (V, Σ, P, S ), onde:
)
Autômatos S → aS a | aBa
P =
finitos
B → bB | b
Linguagens e
gramáticas
regulares
Linguagens
livres de
contexto
Gramáticas livres de
contexto
Derivações
Ambiguidade
Formas normais
Autômatos
com pilha e
GLC’s
Máquinas de
Turing
H. Longo
Introdução
Fundamentos
Exemplo 6.9
matemáticos
V = {S , B}
Alfabetos e
Σ = {a,
( b}
linguagens
G = (V, Σ, P, S ), onde:
)
Autômatos S → aS a | aBa
P =
finitos
B → bB | b
Linguagens e
gramáticas
regulares S → aS a : gera igual número de a’s em cada lado da cadeia.
Linguagens
livres de
contexto
Gramáticas livres de
contexto
Derivações
Ambiguidade
Formas normais
Autômatos
com pilha e
GLC’s
Máquinas de
Turing
H. Longo
Introdução
Fundamentos
Exemplo 6.9
matemáticos
V = {S , B}
Alfabetos e
Σ = {a,
( b}
linguagens
G = (V, Σ, P, S ), onde:
)
Autômatos S → aS a | aBa
P =
finitos
B → bB | b
Linguagens e
gramáticas
regulares S → aS a : gera igual número de a’s em cada lado da cadeia.
Linguagens
livres de
S → aBa : elimina recursão e garante presença de a na cadeia.
contexto
Gramáticas livres de
contexto
Derivações
Ambiguidade
Formas normais
Autômatos
com pilha e
GLC’s
Máquinas de
Turing
H. Longo
Introdução
Fundamentos
Exemplo 6.9
matemáticos
V = {S , B}
Alfabetos e
Σ = {a,
( b}
linguagens
G = (V, Σ, P, S ), onde:
)
Autômatos S → aS a | aBa
P =
finitos
B → bB | b
Linguagens e
gramáticas
regulares S → aS a : gera igual número de a’s em cada lado da cadeia.
Linguagens
livres de
S → aBa : elimina recursão e garante presença de a na cadeia.
contexto
Gramáticas livres de
B → bB : gera qualquer número de b’s.
contexto
Derivações
Ambiguidade
Formas normais
Autômatos
com pilha e
GLC’s
Máquinas de
Turing
H. Longo
Introdução
Fundamentos
Exemplo 6.9
matemáticos
V = {S , B}
Alfabetos e
Σ = {a,
( b}
linguagens
G = (V, Σ, P, S ), onde:
)
Autômatos S → aS a | aBa
P =
finitos
B → bB | b
Linguagens e
gramáticas
regulares S → aS a : gera igual número de a’s em cada lado da cadeia.
Linguagens
livres de
S → aBa : elimina recursão e garante presença de a na cadeia.
contexto
Gramáticas livres de
B → bB : gera qualquer número de b’s.
contexto
Derivações B → b : remove a variável B.
Ambiguidade
Formas normais
Autômatos
com pilha e
GLC’s
Máquinas de
Turing
H. Longo
Introdução
Fundamentos
Exemplo 6.9
matemáticos
V = {S , B}
Alfabetos e
Σ = {a,
( b}
linguagens
G = (V, Σ, P, S ), onde:
)
Autômatos S → aS a | aBa
P =
finitos
B → bB | b
Linguagens e
gramáticas
regulares S → aS a : gera igual número de a’s em cada lado da cadeia.
Linguagens
livres de
S → aBa : elimina recursão e garante presença de a na cadeia.
contexto
Gramáticas livres de
B → bB : gera qualquer número de b’s.
contexto
Derivações B → b : remove a variável B.
Ambiguidade
Formas normais
L(G) = {an bm an | n > 0, m > 0}.
Autômatos
com pilha e
GLC’s
Máquinas de
Turing
H. Longo
Introdução
Fundamentos
matemáticos
Exemplo 6.10
Alfabetos e L(G) = {an bm cm d2n | n ≥ 0, m > 0}.
linguagens
Autômatos
finitos
Linguagens e
gramáticas
regulares
Linguagens
livres de
contexto
Gramáticas livres de
contexto
Derivações
Ambiguidade
Formas normais
Autômatos
com pilha e
GLC’s
Máquinas de
Turing
H. Longo
Introdução
Fundamentos
matemáticos
Exemplo 6.10
Alfabetos e L(G) = {an bm cm d2n | n ≥ 0, m > 0}.
linguagens
= {S , A}
Autômatos
V
Σ = {a,
finitos
( b, c, d}
G = (V, Σ, P, S ), onde:
S → aS dd | A ,
Linguagens e
)
gramáticas
=
P
regulares
A → bAc | bc
Linguagens
livres de
contexto
Gramáticas livres de
contexto
Derivações
Ambiguidade
Formas normais
Autômatos
com pilha e
GLC’s
Máquinas de
Turing
H. Longo
Introdução
Fundamentos
matemáticos
Exemplo 6.10
Alfabetos e L(G) = {an bm cm d2n | n ≥ 0,
m > 0}.
linguagens
= {S , A}
Autômatos
V
Σ
= {a,
finitos
( b, c, d}
G = (V, Σ, P, S ), onde:
S → aS dd | A ,
Linguagens e
)
gramáticas
=
P
regulares
A → bAc | bc
Linguagens
livres de Derivações da variável S gera a’s e d’s.
contexto
Gramáticas livres de
contexto
Derivações da variável A gera b’s e c’s.
Derivações
Ambiguidade A → bc : elimina recursão e garante presença de bc na cadeia.
Formas normais
Autômatos
com pilha e
GLC’s
Máquinas de
Turing
H. Longo
Introdução
Fundamentos
matemáticos
Alfabetos e
linguagens
Exemplo 6.11
Autômatos L(G) = {w ∈ {a, b}∗ | w = wR }.
finitos
Linguagens e
gramáticas
regulares
Linguagens
livres de
contexto
Gramáticas livres de
contexto
Derivações
Ambiguidade
Formas normais
Autômatos
com pilha e
GLC’s
Máquinas de
Turing
H. Longo
Introdução
Fundamentos
matemáticos
Alfabetos e
linguagens
Exemplo 6.11
Autômatos L(G) = {w ∈ {a, b}∗ | w = wR }.
finitos
V = {S , A}
Linguagens e
Σ = {a,
( b}
gramáticas
G = (V, Σ, P, S ), onde:
regulares
ε ,
)
S → a | b |
P =
Linguagens
livres de
S → aS a | bS b
contexto
Gramáticas livres de
contexto
Derivações
Ambiguidade
Formas normais
Autômatos
com pilha e
GLC’s
Máquinas de
Turing
H. Longo
Introdução
Fundamentos
matemáticos
Alfabetos e
linguagens Exemplo 6.12
Autômatos
finitos L(G) = {an bm | 0 ≤ n ≤ m ≤ 2n}.
Linguagens e
gramáticas
regulares
Linguagens
livres de
contexto
Gramáticas livres de
contexto
Derivações
Ambiguidade
Formas normais
Autômatos
com pilha e
GLC’s
Máquinas de
Turing
H. Longo
Introdução
Fundamentos
matemáticos
Alfabetos e
linguagens Exemplo 6.12
Autômatos
finitos L(G) = {an bm | 0 ≤ n ≤ m ≤ 2n}.
V = {S }
Linguagens e
gramáticas
G = (V, Σ, P, S ), onde: Σ = {a, b}
regulares
P = {S → aS b | aS bb | ε}
Linguagens
livres de
contexto
Gramáticas livres de
contexto
Derivações
Ambiguidade
Formas normais
Autômatos
com pilha e
GLC’s
Máquinas de
Turing
H. Longo
Introdução
Fundamentos
Exemplo 6.13
matemáticos
Linguagem gerada pela expressão regular a+ b∗ :
Alfabetos e
linguagens
Autômatos
finitos
Linguagens e
gramáticas
regulares
Linguagens
livres de
contexto
Gramáticas livres de
contexto
Derivações
Ambiguidade
Formas normais
Autômatos
com pilha e
GLC’s
Máquinas de
Turing
H. Longo
Introdução
Fundamentos
Exemplo 6.13
matemáticos
Linguagem gerada pela expressão regular a+ b∗ :
Alfabetos e
V1 = {S , A, B}
linguagens
Autômatos
Σ = {a, b}
finitos
G1 = (V1 , Σ, P1 , S ), onde: S → AB ,
Linguagens e
= A → aA | a ,
gramáticas P
regulares
1
B → bB | ε
Linguagens
livres de
contexto
Gramáticas livres de
contexto
Derivações
Ambiguidade
Formas normais
Autômatos
com pilha e
GLC’s
Máquinas de
Turing
H. Longo
Introdução
Fundamentos
Exemplo 6.13
matemáticos
Linguagem gerada pela expressão regular a+ b∗ :
Alfabetos e
V1 = {S , A, B}
linguagens
Autômatos
Σ = {a, b}
finitos
G1 = (V1 , Σ, P1 , S ), onde: S → AB ,
Linguagens e
= ,
→ |
gramáticas P A aA a
regulares
1
B → bB | ε
Linguagens
livres de
V2 = {S , B}
contexto
Σ = {a,
Gramáticas livres de
( b}
G2 = (V2 , Σ, P2 , S ), onde:
contexto
S → aS | aB ,
Derivações
)
=
Ambiguidade P2
B → bB | ε
Formas normais
Autômatos
com pilha e
GLC’s
Máquinas de
Turing
H. Longo
Introdução
Exemplo 6.14
Fundamentos
matemáticos Linguagem gerada pela expressão regular a∗ ba∗ ba∗ (cadeias que contêm dois
Alfabetos e b’s):
linguagens
Autômatos
finitos
Linguagens e
gramáticas
regulares
Linguagens
livres de
contexto
Gramáticas livres de
contexto
Derivações
Ambiguidade
Formas normais
Autômatos
com pilha e
GLC’s
Máquinas de
Turing
H. Longo
Introdução
Exemplo 6.14
Fundamentos
matemáticos Linguagem gerada pela expressão regular a∗ ba∗ ba∗ (cadeias que contêm dois
Alfabetos e b’s):
linguagens
V1 = {S , A, B}
Autômatos
finitos
Σ = {a, b}
G1 = (V1 , Σ, P1 , S ), onde: S → aS | bA ,
Linguagens e
gramáticas
P1 = A → aA | bB ,
regulares
Linguagens
B → aB | ε
livres de
contexto
Gramáticas livres de
contexto
Derivações
Ambiguidade
Formas normais
Autômatos
com pilha e
GLC’s
Máquinas de
Turing
H. Longo
Introdução
Exemplo 6.14
Fundamentos
matemáticos Linguagem gerada pela expressão regular a∗ ba∗ ba∗ (cadeias que contêm dois
Alfabetos e b’s):
linguagens
V1 = {S , A, B}
Autômatos
finitos
Σ = {a, b}
G1 = (V1 , Σ, P1 , S ), onde: S → aS | bA ,
Linguagens e
gramáticas
P1 = A → aA | bB ,
regulares
Linguagens
B → aB | ε
livres de
contexto
V2 = {S , A}
Gramáticas livres de
Σ = {a,
contexto
( b}
G2 = (V2 , Σ, P2 , S ), onde:
Derivações
S → AbAbA ,
Ambiguidade
)
P2 =
Formas normais
A → aA | ε
Autômatos
com pilha e
GLC’s
Máquinas de
Turing
H. Longo
Exemplo 6.15
Introdução
Alfabetos e
linguagens
Autômatos
finitos
Linguagens e
gramáticas
regulares
Linguagens
livres de
contexto
Gramáticas livres de
contexto
Derivações
Ambiguidade
Formas normais
Autômatos
com pilha e
GLC’s
Máquinas de
Turing
H. Longo
Exemplo 6.15
Introdução
Autômatos
com pilha e
GLC’s
Máquinas de
Turing
H. Longo
Exemplo 6.15
Introdução
Máquinas de
Turing
H. Longo
Introdução
Fundamentos
Exemplo 6.16
matemáticos
Linguagem gerada pela expressão regular a∗ b+ a∗ b+ a∗ :
Alfabetos e
linguagens
Autômatos
finitos
Linguagens e
gramáticas
regulares
Linguagens
livres de
contexto
Gramáticas livres de
contexto
Derivações
Ambiguidade
Formas normais
Autômatos
com pilha e
GLC’s
Máquinas de
Turing
H. Longo
Introdução
Fundamentos
Exemplo 6.16
matemáticos
Linguagem gerada pela expressão regular a∗ b+ a∗ b+ a∗ :
Alfabetos e
V1 = {S , A, B}
linguagens
Autômatos
Σ = {a, b}
finitos
G1 = (V1 , Σ, P1 , S ), onde: S → aS | S a | bA ,
Linguagens e
= A → bA | Ab | Bb ,
gramáticas P
regulares
1
B → aB | ε
Linguagens
livres de
contexto
Gramáticas livres de
contexto
Derivações
Ambiguidade
Formas normais
Autômatos
com pilha e
GLC’s
Máquinas de
Turing
H. Longo
Introdução
Fundamentos
Exemplo 6.16
matemáticos
Linguagem gerada pela expressão regular a∗ b+ a∗ b+ a∗ :
Alfabetos e
V1 = {S , A, B}
linguagens
Autômatos
Σ = {a, b}
finitos
G1 = (V1 , Σ, P1 , S ), onde: S → aS | S a | bA ,
Linguagens e
= ,
→ | |
gramáticas P A bA Ab Bb
regulares
1
B → aB | ε
Linguagens
livres de
V2 = {S , A}
contexto
Σ = {a,
Gramáticas livres de
( b}
G2 = (V2 , Σ, P2 , S ), onde:
contexto
S → aS | bAbA ,
Derivações
)
=
Ambiguidade P2
A → bA | Aa | ε
Formas normais
Autômatos
com pilha e
GLC’s
Máquinas de
Turing
H. Longo
Introdução
Alfabetos e Linguagem cujas cadeias são de comprimento par (alfabeto {a, b}):
linguagens
Autômatos
finitos
Linguagens e
gramáticas
regulares
Linguagens
livres de
contexto
Gramáticas livres de
contexto
Derivações
Ambiguidade
Formas normais
Autômatos
com pilha e
GLC’s
Máquinas de
Turing
H. Longo
Introdução
Alfabetos e Linguagem cujas cadeias são de comprimento par (alfabeto {a, b}):
linguagens
V = {S , O}
Autômatos
Σ = {a,
finitos
( b}
G = (V, Σ, P, S ), onde:
S → aO | bO | ε ,
Linguagens e
)
P =
gramáticas
O → aS | bS
regulares
Linguagens
livres de S : formas sentenciais com número par de terminais.
contexto
Gramáticas livres de
O : formas sentenciais com número ímpar de terminais.
contexto
Derivações
Ambiguidade
Formas normais
Autômatos
com pilha e
GLC’s
Máquinas de
Turing
H. Longo
Introdução
Alfabetos e Linguagem cujas cadeias são de comprimento par (alfabeto {a, b}):
linguagens
V = {S , O}
Autômatos
Σ = {a,
finitos
( b}
G = (V, Σ, P, S ), onde:
S → aO | bO | ε ,
Linguagens e
)
P =
gramáticas
O → aS | bS
regulares
Linguagens
livres de S : formas sentenciais com número par de terminais.
contexto
Gramáticas livres de
O : formas sentenciais com número ímpar de terminais.
contexto
Derivações
Exercício: Linguagens, sobre o alfabeto {a, b}, cujas cadeias são de
Ambiguidade comprimento múltiplo de 3, 4, 5, . . . .
Formas normais
Autômatos
com pilha e
GLC’s
Máquinas de
Turing
H. Longo
Introdução
Fundamentos
Exemplo 6.18
matemáticos
Linguagem, sobre {a, b}, cujas cadeias contém número par de b’s:
Alfabetos e
linguagens
Autômatos
finitos
Linguagens e
gramáticas
regulares
Linguagens
livres de
contexto
Gramáticas livres de
contexto
Derivações
Ambiguidade
Formas normais
Autômatos
com pilha e
GLC’s
Máquinas de
Turing
H. Longo
Introdução
Fundamentos
Exemplo 6.18
matemáticos
Linguagem, sobre {a, b}, cujas cadeias contém número par de b’s:
Alfabetos e
V1 = {S , A, B}
linguagens
Autômatos
Σ = {a, b}
finitos
G1 = (V1 , Σ, P1 , S ), onde: S → aS | bA | ε ,
Linguagens e
= ,
→ | |
P A aA bS bB
gramáticas
regulares
1
B → aB | ε
Linguagens
livres de
contexto
Gramáticas livres de
contexto
Derivações
Ambiguidade
Formas normais
Autômatos
com pilha e
GLC’s
Máquinas de
Turing
H. Longo
Introdução
Fundamentos
Exemplo 6.18
matemáticos
Linguagem, sobre {a, b}, cujas cadeias contém número par de b’s:
Alfabetos e
V1 = {S , A, B}
linguagens
Autômatos
Σ = {a, b}
finitos
G1 = (V1 , Σ, P1 , S ), onde: S → aS | bA | ε ,
Linguagens e
= ,
→ | |
P A aA bS bB
gramáticas
regulares
1
B → aB | ε
Linguagens
livres de
V2 = {S , A}
contexto
Σ = {a,
Gramáticas livres de
( b}
G2 = (V2 , Σ, P2 , S ), onde:
contexto
S → aS | bA | ε ,
Derivações
)
=
Ambiguidade
P2
A → aA | bS
Formas normais
Autômatos
com pilha e
GLC’s
Máquinas de
Turing
H. Longo
Autômatos
finitos
Linguagens e
gramáticas
regulares
Linguagens
livres de
contexto
Gramáticas livres de
contexto
Derivações
Ambiguidade
Formas normais
Autômatos
com pilha e
GLC’s
Máquinas de
Turing
H. Longo
Linguagens
livres de
contexto
Gramáticas livres de
contexto
Derivações
Ambiguidade
Formas normais
Autômatos
com pilha e
GLC’s
Máquinas de
Turing
H. Longo
= {S , A, B, C}
Linguagens
livres de
V
Σ =
{a,
b}
contexto
S → aB | bA | ε ,
Gramáticas livres de
G = (V, Σ, P, S ), onde:
contexto
A → aC | bS ,
Derivações
=
Ambiguidade
P
B → aS | bC ,
Formas normais
Autômatos
C → aA | bB
com pilha e
GLC’s
Máquinas de
Turing
H. Longo
Introdução
Alfabetos e
Linguagem, sobre {a, b, c}, cujas cadeias não contêm abc:
linguagens
Autômatos
finitos
Linguagens e
gramáticas
regulares
Linguagens
livres de
contexto
Gramáticas livres de
contexto
Derivações
Ambiguidade
Formas normais
Autômatos
com pilha e
GLC’s
Máquinas de
Turing
H. Longo
Introdução
Alfabetos e
Linguagem, sobre {a, b, c}, cujas cadeias não contêm abc:
linguagens
V = {S , A, B}
Autômatos
Σ = {a, b, c}
finitos
G = (V, Σ, P, S ), onde: S → bS | cS | aA | ε ,
Linguagens e
gramáticas
P = ε ,
→ | | |
A aA cS bB
regulares
B → aA | bS | ε
Linguagens
livres de
contexto
Gramáticas livres de
contexto
Derivações
Ambiguidade
Formas normais
Autômatos
com pilha e
GLC’s
Máquinas de
Turing
H. Longo
Introdução
Alfabetos e
Linguagem, sobre {a, b, c}, cujas cadeias não contêm abc:
linguagens
V = {S , A, B}
Autômatos
Σ = {a, b, c}
finitos
G = (V, Σ, P, S ), onde: S → bS | cS | aA | ε ,
Linguagens e
gramáticas
P = ε ,
→ | | |
A aA cS bB
regulares
B → aA | bS | ε
Linguagens
livres de
contexto
Gramáticas livres de
Máximo de uma variável em cada forma sentencial:
contexto
Derivações A: ocorre quando o terminal prévio é um a;
Ambiguidade
Formas normais
B: ocorre somente precedida por ab (não pode gerar um c).
Autômatos
com pilha e
GLC’s
Máquinas de
Turing
H. Longo
Introdução
Fundamentos
matemáticos
Alfabetos e
linguagens
Linguagens e
gramáticas
regulares
Linguagens
Derivações
livres de
contexto
Gramáticas livres de
contexto
Derivações
Ambiguidade
Formas normais
Autômatos
com pilha e
GLC’s
Máquinas de
Turing
H. Longo
Introdução
Fundamentos
Alfabetos e
linguagens
Autômatos
finitos
Linguagens e
gramáticas
regulares
Linguagens
livres de
contexto
Gramáticas livres de
contexto
Derivações
Ambiguidade
Formas normais
Autômatos
com pilha e
GLC’s
Máquinas de
Turing
H. Longo
Introdução
Fundamentos
Alfabetos e
linguagens Como provar que L(G) = L?
Autômatos
finitos
Linguagens e
gramáticas
regulares
Linguagens
livres de
contexto
Gramáticas livres de
contexto
Derivações
Ambiguidade
Formas normais
Autômatos
com pilha e
GLC’s
Máquinas de
Turing
H. Longo
Introdução
Fundamentos
Alfabetos e
linguagens Como provar que L(G) = L?
Autômatos 1 L ⊆ L(G).
finitos
Linguagens e
gramáticas
regulares
2 L(G) ⊆ L.
Linguagens
livres de
contexto
Gramáticas livres de
contexto
Derivações
Ambiguidade
Formas normais
Autômatos
com pilha e
GLC’s
Máquinas de
Turing
H. Longo
Introdução
Fundamentos
Alfabetos e
linguagens Como provar que L(G) = L?
Autômatos 1 L ⊆ L(G).
finitos ∗
Linguagens e
Se w ∈ L então S =⇒ w.
gramáticas Toda cadeia da linguagem L é derivável na gramática G.
regulares
2 L(G) ⊆ L.
Linguagens
livres de
contexto
Gramáticas livres de
contexto
Derivações
Ambiguidade
Formas normais
Autômatos
com pilha e
GLC’s
Máquinas de
Turing
H. Longo
Introdução
Fundamentos
Alfabetos e
linguagens Como provar que L(G) = L?
Autômatos 1 L ⊆ L(G).
finitos ∗
Linguagens e
Se w ∈ L então S =⇒ w.
gramáticas Toda cadeia da linguagem L é derivável na gramática G.
regulares
2 L(G) ⊆ L.
Linguagens ∗
livres de Se S =⇒ w então w ∈ L.
contexto
Gramáticas livres de
Toda cadeia de terminais derivável na gramática G deve ter a forma especificada
contexto
Derivações
pela linguagem L.
Ambiguidade
Formas normais
Autômatos
com pilha e
GLC’s
Máquinas de
Turing
H. Longo
Exemplo 6.21
V = {S , B}
Introdução
Σ = {a,
( b, c}
G = (V, Σ, P, S ), onde:
Fundamentos
ε ,
)
matemáticos S → abS cB |
P = B → bB | b
Alfabetos e
linguagens
Autômatos
finitos
Linguagens e
gramáticas
regulares
Linguagens
livres de
contexto
Gramáticas livres de
contexto
Derivações
Ambiguidade
Formas normais
Autômatos
com pilha e
GLC’s
Máquinas de
Turing
H. Longo
Exemplo 6.21
V = {S , B}
Introdução
Σ = {a,
( b, c}
G = (V, Σ, P, S ), onde:
Fundamentos
ε ,
)
matemáticos S → abS cB |
P = B → bB | b
Alfabetos e
linguagens
Linguagens e
gramáticas
regulares
Linguagens
livres de
contexto
Gramáticas livres de
contexto
Derivações
Ambiguidade
Formas normais
Autômatos
com pilha e
GLC’s
Máquinas de
Turing
H. Longo
Exemplo 6.21
V = {S , B}
Introdução
Σ = {a,
( b, c}
G = (V, Σ, P, S ), onde:
Fundamentos
ε ,
)
matemáticos S → abS cB |
P = B → bB | b
Alfabetos e
linguagens
Linguagens
livres de
contexto S ⇒ abS cB
Gramáticas livres de
contexto ⇒ ababS cBcB
Derivações
Ambiguidade
⇒ ababcBcB
Formas normais
⇒ ababcbcB
Autômatos ⇒ ababcbcbB
com pilha e
GLC’s ⇒ ababcbcbb
Máquinas de
Turing
H. Longo
Autômatos
finitos
Linguagens e
gramáticas
regulares
Linguagens
livres de
contexto
Gramáticas livres de
contexto
Derivações
Ambiguidade
Formas normais
Autômatos
com pilha e
GLC’s
Máquinas de
Turing
H. Longo
Autômatos
finitos Lema 6.23
∗
Linguagens e
gramáticas S =⇒ z se e somente se z = xxR , para algum x ∈ {a, b}∗ .
regulares G
Linguagens
livres de
contexto
Gramáticas livres de
contexto
Derivações
Ambiguidade
Formas normais
Autômatos
com pilha e
GLC’s
Máquinas de
Turing
H. Longo
Autômatos
finitos Lema 6.23
∗
Linguagens e
gramáticas S =⇒ z se e somente se z = xxR , para algum x ∈ {a, b}∗ .
regulares G
∗
Linguagens 1 Se S =⇒ z, então z = xxR , para algum x ∈ {a, b}∗ .
livres de G
∗
contexto
Gramáticas livres de
2 Se z = xxR para algum x ∈ {a, b}∗ , então S =⇒ z.
G
contexto
Derivações
Ambiguidade
Formas normais
Autômatos
com pilha e
GLC’s
Máquinas de
Turing
H. Longo
Autômatos
finitos Lema 6.23
∗
Linguagens e
gramáticas S =⇒ z se e somente se z = xxR , para algum x ∈ {a, b}∗ .
regulares G
∗
Linguagens 1 Se S =⇒ z, então z = xxR , para algum x ∈ {a, b}∗ .
livres de G
∗
contexto
Gramáticas livres de
2 Se z = xxR para algum x ∈ {a, b}∗ , então S =⇒ z.
G
contexto
Derivações ∗
Ambiguidade 3 Se S =⇒ α, então ou α = xxR ou α = xS xR , para algum x ∈ {a, b}∗ .
Formas normais G
Autômatos
com pilha e
GLC’s
Máquinas de
Turing
H. Longo
Autômatos
finitos Lema 6.23
∗
Linguagens e
gramáticas S =⇒ z se e somente se z = xxR , para algum x ∈ {a, b}∗ .
regulares G
∗
Linguagens 1 Se S =⇒ z, então z = xxR , para algum x ∈ {a, b}∗ .
livres de G
∗
contexto
Gramáticas livres de
2 Se z = xxR para algum x ∈ {a, b}∗ , então S =⇒ z.
G
contexto
Derivações ∗
Ambiguidade 3 Se S =⇒ α, então ou α = xxR ou α = xS xR , para algum x ∈ {a, b}∗ .
Formas normais G
∗
Autômatos Seja X = {xxR | x ∈ {a, b}∗ } ∪ {xS xR | x ∈ {a, b}∗ }. Se S =⇒ α, então α ∈ X .
com pilha e G
GLC’s
Máquinas de
Turing
H. Longo
Introdução
Fundamentos
matemáticos
Demonstração.
Alfabetos e
linguagens Prova por indução no número n de passos da derivação de α:
Autômatos
finitos
Linguagens e
gramáticas
regulares
Linguagens
livres de
contexto
Gramáticas livres de
contexto
Derivações
Ambiguidade
Formas normais
Autômatos
com pilha e
GLC’s
Máquinas de
Turing
H. Longo
Introdução
Fundamentos
matemáticos
Demonstração.
Alfabetos e
linguagens Prova por indução no número n de passos da derivação de α:
∗
Base: Para n = 0, tem-se S =⇒ S e S = εS εR .
Autômatos
finitos
G
Linguagens e
gramáticas
regulares
Linguagens
livres de
contexto
Gramáticas livres de
contexto
Derivações
Ambiguidade
Formas normais
Autômatos
com pilha e
GLC’s
Máquinas de
Turing
H. Longo
Introdução
Fundamentos
matemáticos
Demonstração.
Alfabetos e
linguagens Prova por indução no número n de passos da derivação de α:
∗
Base: Para n = 0, tem-se S =⇒ S e S = εS εR .
Autômatos
finitos
G
Linguagens e n
gramáticas H.I.: Propriedade vale para n: Se S =⇒ α, então α ∈ X .
regulares G
Linguagens
livres de
contexto
Gramáticas livres de
contexto
Derivações
Ambiguidade
Formas normais
Autômatos
com pilha e
GLC’s
Máquinas de
Turing
H. Longo
Introdução
Fundamentos
matemáticos
Demonstração.
Alfabetos e
linguagens Prova por indução no número n de passos da derivação de α:
∗
Base: Para n = 0, tem-se S =⇒ S e S = εS εR .
Autômatos
finitos
G
Linguagens e n
gramáticas H.I.: Propriedade vale para n: Se S =⇒ α, então α ∈ X .
regulares G
Linguagens
Passo: Propriedade vale para n + 1:
livres de
contexto
Exercício!
Gramáticas livres de
contexto
Derivações
Ambiguidade
Formas normais
Autômatos
com pilha e
GLC’s
Máquinas de
Turing
H. Longo
Exemplo 6.24
Introdução
S → AAS B | AAB ,
Fundamentos
matemáticos
L = {a2n b4n | n > 0} e G : A → a,
Alfabetos e
linguagens
B → bbbb
Autômatos
finitos
Máquinas de
Turing
H. Longo
Exemplo 6.24
Introdução
S → AAS B | AAB ,
Fundamentos
matemáticos
L = {a2n b4n | n > 0} e G : A → a,
Alfabetos e
linguagens
B → bbbb
Autômatos
finitos
Máquinas de
Turing
H. Longo
Introdução
S → AAS B | AAB
Fundamentos
L = {a2n b4n | n > 0} e G : A → a,
matemáticos
B → bbbb
Alfabetos e
linguagens
Autômatos
Linguagens e
gramáticas
regulares
A derivação de uma cadeia é resultado da aplicação de um número finito de
Linguagens
produções.
livres de
contexto
Pode indicar que a prova por indução é adequada neste caso.
Gramáticas livres de O que exatamente precisa ser provado? Relação entre a’s e b’s nas cadeias de
contexto
Derivações terminais deriváveis em G.
Ambiguidade
Formas normais n x (u): número de ocorrências do símbolo x na cadeia u.
Autômatos
com pilha e
2·na (u) = nb (u)
GLC’s
Máquinas de
Turing
H. Longo
Introdução
S → AAS B | AAB
Fundamentos
L = {a2n b4n | n > 0} e G : A → a,
matemáticos
B → bbbb
Alfabetos e
linguagens
Autômatos
Linguagens e
gramáticas
regulares
2·na (u) = nb (u)
Linguagens
Relação não válida para qualquer cadeia derivável em G.
livres de Ex.: S =⇒ AAS B =⇒ aAS B.
contexto
Gramáticas livres de
contexto
Derivações
Qual a relação entre terminais e não terminais?
Ambiguidade
Formas normais
nA (u): Nr. de a’s que a variável A gera.
Autômatos
nB (u): Nr. de b’s que a variável B gera.
com pilha e
GLC’s
Máquinas de
Turing
H. Longo
Introdução
S → AAS B | AAB
Fundamentos
L = {a2n b4n | n > 0} e G : A → a,
matemáticos
B → bbbb
Alfabetos e
linguagens
Autômatos
Linguagens e
gramáticas
regulares
1 2·(na (u) + nA (u)) = nb (u) + 4·nB (u).
Linguagens 2 na (u) + nA (u) > 1.
livres de
contexto
Gramáticas livres de
3 Os a’s e A’s numa forma sentencial precedem o S que precede os b’s e B’s.
contexto
Derivações
Ambiguidade
Formas normais
Autômatos
com pilha e
GLC’s
Máquinas de
Turing
H. Longo
Introdução
S → AAS B | AAB
Fundamentos
L = {a2n b4n | n > 0} e G : A → a,
matemáticos
B → bbbb
Alfabetos e
linguagens
Autômatos
Linguagens e
gramáticas
regulares
Objetivo: provar que essas relações são válidas para qualquer cadeia
Linguagens
derivável a partir de S .
livres de
contexto
Gramáticas livres de
Indução no comprimento da derivação.
contexto
Derivações
Ambiguidade
Formas normais
Autômatos
com pilha e
GLC’s
Máquinas de
Turing
H. Longo
Introdução
S → AAS B | AAB
Fundamentos
L = {a2n b4n | n > 0} e G : A → a,
matemáticos
B → bbbb
Alfabetos e
linguagens
Autômatos
Linguagens e
gramáticas
regulares
Base: Todas as cadeias que podem ser obtidas a partir de S com a aplicação de
Linguagens
apenas uma regra de derivação.
livres de
contexto
Gramáticas livres de
contexto
Derivações
Ambiguidade
Formas normais
Autômatos
com pilha e
GLC’s
Máquinas de
Turing
H. Longo
Introdução
S → AAS B | AAB
Fundamentos
L = {a2n b4n | n > 0} e G : A → a,
matemáticos
B → bbbb
Alfabetos e
linguagens
Autômatos
Linguagens e
gramáticas
regulares
Hipótese Indutiva: Relações são válidas para todas as cadeias deriváveis com no
Linguagens
máximo n aplicações de regras de derivação.
livres de
contexto
Gramáticas livres de
contexto
Derivações
Ambiguidade
Formas normais
Autômatos
com pilha e
GLC’s
Máquinas de
Turing
H. Longo
Introdução
S → AAS B | AAB
Fundamentos
L = {a2n b4n | n > 0} e G : A → a,
matemáticos
B → bbbb
Alfabetos e
linguagens
Autômatos
Linguagens e
gramáticas
regulares
Passo Indutivo: w é uma cadeia derivável a partir de S em n + 1 passos.
n+1 n
Linguagens S =⇒ w ≡ S =⇒ u =⇒ w.
livres de
contexto Para todo v ∈ (V ∪ Σ)∗ :
j(v) = 2·(na (v) + nA (v)) e
Gramáticas livres de
contexto
Máquinas de
Turing
H. Longo
Introdução
S → AAS B | AAB
Fundamentos
L = {a2n b4n | n > 0} e G : A → a,
matemáticos
B → bbbb
Alfabetos e
linguagens
Autômatos
Linguagens e
gramáticas
regulares
Passo Indutivo: Efeito de uma regra adicional numa variável da cadeia u:
Linguagens
livres de Regra j(w) k(w) j(w)/2
contexto S → AAS B j(u) + 4 k(u) + 4 j(u)/2 + 2
Gramáticas livres de
contexto
S → AAB j(u) + 4 k(u) + 4 j(u)/2 + 2
Derivações A→a j(u) k(u) j(u)/2
Ambiguidade
B → bbbb j(u) k(u) j(u)/2
Formas normais
Autômatos
com pilha e
GLC’s
Máquinas de
Turing
H. Longo
Introdução
S → AAS B | AAB
Fundamentos
L = {a2n b4n | n > 0} e G : A → a,
matemáticos
B → bbbb
Alfabetos e
linguagens
Autômatos
Linguagens e
gramáticas
regulares
Passo Indutivo: Como j(u) = k(u), então j(w) = k(w).
Linguagens
j(w)/2 > 1 segue da hipótese indutiva de que j(u)/2 > 1.
livres de
contexto
Ordem dos símbolos é preservada: uma regra de derivação
Gramáticas livres de
contexto
troca um S por uma sequência de variáveis na ordem
Derivações
Ambiguidade
desejada ou uma variável por terminais correspondentes.
Formas normais
Autômatos
com pilha e
GLC’s
Máquinas de
Turing
H. Longo
Introdução
S → AAS B | AAB
Fundamentos
L = {a2n b4n | n > 0} e G : A → a,
matemáticos
B → bbbb
Alfabetos e
linguagens
Autômatos
Linguagens e
gramáticas
regulares
Passo Indutivo: Relações são válidas para qualquer cadeia derivável em G.
Linguagens
Como não existe variáveis numa cadeia w ∈ L(G), as três
livres de
contexto
condições implicam que L(G) ⊆ {a2n b4n | n > 0}.
Gramáticas livres de
contexto
Derivações
Ambiguidade
Formas normais
Autômatos
com pilha e
GLC’s
Máquinas de
Turing
H. Longo
Introdução
Fundamentos
Exemplo 6.25
L = {an bn | n > 0} e G : {S → aS b | ab}
matemáticos
Alfabetos e
linguagens
Autômatos
finitos
Linguagens e
gramáticas
regulares
Linguagens
livres de
contexto
Gramáticas livres de
contexto
Derivações
Ambiguidade
Formas normais
Autômatos
com pilha e
GLC’s
Máquinas de
Turing
H. Longo
Introdução
Fundamentos
Exemplo 6.25
L = {an bn | n > 0} e G : {S → aS b | ab}
matemáticos
Alfabetos e
linguagens
Autômatos
com pilha e
GLC’s
Máquinas de
Turing
H. Longo
Introdução
Fundamentos
Exemplo 6.25
L = {an bn | n > 0} e G : {S → aS b | ab}
matemáticos
Alfabetos e
linguagens
Máquinas de
Turing
H. Longo
Introdução
Fundamentos
matemáticos
Alfabetos e
linguagens
Exemplo 6.26
Autômatos
finitos
S → aS | bB | ε ,
L = a∗ (a∗ ba∗ ba∗ )∗ e G : B → aB | bS | bC ,
Linguagens e
gramáticas
regulares
C → aC | ε
Linguagens
livres de
contexto
Gramáticas livres de
contexto
Derivações
Ambiguidade
Formas normais
Autômatos
com pilha e
GLC’s
Máquinas de
Turing
H. Longo
S → aS | bB | ε ,
L = a (a ba ba ) e G : B → aB | bS | bC ,
Introdução ∗ ∗ ∗ ∗ ∗
Fundamentos C → aC | ε
matemáticos
Alfabetos e
linguagens
Autômatos
a∗ (a∗ ba∗ ba∗ )∗ ⊆ L(G)
finitos
Uma cadeia em a∗ (a∗ ba∗ ba∗ )∗ tem a forma
Linguagens e
gramáticas
regulares
an1 ban2 ban3 . . .an2k ban2k+1 , k ≥ 0.
Linguagens
livres de
contexto Qualquer cadeia em a∗ pode ser derivada usando as regras S → aS e S → ε.
Gramáticas livres de
contexto
Derivações
Ambiguidade
Formas normais
Autômatos
com pilha e
GLC’s
Máquinas de
Turing
H. Longo
S → aS | bB | ε ,
L = a (a ba ba ) e G : B → aB | bS | bC ,
Introdução ∗ ∗ ∗ ∗ ∗
Fundamentos C → aC | ε
matemáticos
Alfabetos e
linguagens
Autômatos
a∗ (a∗ ba∗ ba∗ )∗ ⊆ L(G)
finitos
Derivação Regra usada
Linguagens e n1
gramáticas S =⇒ an1 S S → aS
regulares =⇒ an1 bB S → bB
n2
Linguagens =⇒ an1 ban2 B B → aB
livres de
contexto
=⇒ an1 ban2 bS B → bS
Gramáticas livres de ..
contexto
.
Derivações n2k
Ambiguidade =⇒ an1 ban2 ban3 . . .an2k B B → aB
Formas normais
=⇒ an1 ban2 ban3 . . .an2k bC B → bC
n2k+1
Autômatos
com pilha e
=⇒ an1 ban2 ban3 . . .an2k ban2k+1 C C → aC
n2k+1
GLC’s =⇒ an1 ban2 ban3 . . .an2k ban2k+1 C→ε
Máquinas de
Turing
H. Longo
Introdução
S → aS | bB | ε ,
L = a∗ (a∗ ba∗ ba∗ )∗ e G : B → aB | bS | bC ,
Fundamentos
matemáticos
C → aC | ε
Alfabetos e
linguagens
Autômatos
finitos L(G) ⊆ L(a∗ (a∗ ba∗ ba∗ )∗ )
Linguagens e
gramáticas L contém cadeias com número par de b’s.
regulares
Linguagens
nb (u) + nB (u) é par para toda cadeia u derivável a partir de S .
livres de n x (u): número de ocorrências do símbolo x na cadeia u.
contexto
Gramáticas livres de
contexto Prova por indução no comprimento das derivações.
Derivações
Ambiguidade
Formas normais
Autômatos
com pilha e
GLC’s
Máquinas de
Turing
H. Longo
Introdução
S → aS | bB | ε ,
L = a∗ (a∗ ba∗ ba∗ )∗ e G : B → aB | bS | bC ,
Fundamentos
matemáticos
C → aC | ε
Alfabetos e
linguagens
Autômatos
finitos L(G) ⊆ L(a∗ (a∗ ba∗ ba∗ )∗ )
Linguagens e
S =⇒ aS
gramáticas
regulares
S =⇒ bB
Base: Derivações de comprimento um:
Linguagens
livres de
S =⇒ ε
contexto
Gramáticas livres de
contexto
nb (u) + nB (u) é par para todas essas cadeias.
Derivações
Ambiguidade
Formas normais
Autômatos
com pilha e
GLC’s
Máquinas de
Turing
H. Longo
Introdução
S → aS | bB | ε ,
L = a∗ (a∗ ba∗ ba∗ )∗ e G : B → aB | bS | bC ,
Fundamentos
matemáticos
C → aC | ε
Alfabetos e
linguagens
Autômatos
finitos L(G) ⊆ L(a∗ (a∗ ba∗ ba∗ )∗ )
Hipótese Indutiva: nb (u) + nB (u) é par para as cadeias u que podem ser derivadas
Linguagens e
gramáticas
regulares
a partir de S com a aplicação de n regras de derivação.
Linguagens
livres de
contexto
Gramáticas livres de
contexto
Derivações
Ambiguidade
Formas normais
Autômatos
com pilha e
GLC’s
Máquinas de
Turing
H. Longo
Introdução
S → aS | bB | ε ,
L = a∗ (a∗ ba∗ ba∗ )∗ e G : B → aB | bS | bC ,
Fundamentos
matemáticos
C → aC | ε
Alfabetos e
linguagens
Autômatos
finitos L(G) ⊆ L(a∗ (a∗ ba∗ ba∗ )∗ )
w é uma cadeia derivável a partir de S em n + 1 passos.
Linguagens e
gramáticas Passo Indutivo:
regulares n+1 n
Linguagens
S =⇒ w ≡ S =⇒ u =⇒ w.
livres de
contexto Por hipótese de indução nb (u) + nB (u) é par.
Gramáticas livres de
contexto Aplicação de uma regra de derivação a uma variável de u não
Derivações
Ambiguidade muda a paridade!
Formas normais
Autômatos
com pilha e
GLC’s
Máquinas de
Turing
H. Longo
Introdução
S → aS | bB | ε ,
L = a∗ (a∗ ba∗ ba∗ )∗ e G : B → aB | bS | bC ,
Fundamentos
matemáticos
C → aC | ε
Alfabetos e
linguagens
Autômatos
finitos L(G) ⊆ L(a∗ (a∗ ba∗ ba∗ )∗ )
Linguagens e
gramáticas Passo Indutivo:
regulares Regra nb (w) + nB (w)
Linguagens
S → aS nb (u) + nB (u)
livres de S → bB nb (u) + nB (u) + 2
contexto S →ε nb (u) + nB (u)
nb (u) + nB (u)
Gramáticas livres de
contexto B → aB
Derivações B → bS nb (u) + nB (u)
nb (u) + nB (u)
Ambiguidade
Formas normais
B → bC
C → aC nb (u) + nB (u)
Autômatos
com pilha e
C→ε nb (u) + nB (u)
GLC’s
Máquinas de
Turing
H. Longo
Introdução
Exemplo 6.27
Fundamentos Número de a’s nas cadeias de L(G) é menor ou igual ao de b’s:
matemáticos
S → aAS B | ε ,
Alfabetos e
linguagens
A → ad | d ,
G:
Autômatos
finitos
B → bb
Linguagens e
gramáticas
regulares
Linguagens
livres de
contexto
Gramáticas livres de
contexto
Derivações
Ambiguidade
Formas normais
Autômatos
com pilha e
GLC’s
Máquinas de
Turing
H. Longo
Introdução
Exemplo 6.27
Fundamentos Número de a’s nas cadeias de L(G) é menor ou igual ao de b’s:
matemáticos
S → aAS B | ε ,
Alfabetos e
linguagens
A → ad | d ,
G:
Autômatos
finitos
B → bb
Linguagens e
gramáticas
regulares
Linguagens
na (u) ≤ nb (u)
livres de
contexto
Número de b’s numa cadeia de terminais depende do número de b’s e de B’s
Gramáticas livres de
contexto
nos passos intermediários da derivação.
Derivações
Ambiguidade Cada B gera dois b’s e um A gera no máximo um a.
Formas normais
Autômatos
na (u) + nA (u) ≤ nb (u) + 2·nB (u), para toda forma sentencial u em G.
com pilha e
GLC’s
Prova por indução no comprimento da derivação.
Máquinas de
Turing
H. Longo
Introdução
Exemplo 6.27
Fundamentos Número de a’s nas cadeias de L(G) é menor ou igual ao de b’s:
matemáticos
S → aAS B | ε ,
Alfabetos e
linguagens
A → ad | d ,
G:
Autômatos
finitos
B → bb
Linguagens e
gramáticas
regulares
Linguagens
na (u) ≤ nb (u)
livres de
contexto
Base:
Gramáticas livres de
Regra na (u) + nA (u) nb (u) + 2·nB (u)
contexto
Derivações
S =⇒ aAS B 2 2
Ambiguidade S =⇒ ε 0 0
Formas normais
Autômatos
com pilha e
GLC’s
Máquinas de
Turing
H. Longo
Introdução
Exemplo 6.27
Fundamentos Número de a’s nas cadeias de L(G) é menor ou igual ao de b’s:
matemáticos
S → aAS B | ε ,
Alfabetos e
linguagens
A → ad | d ,
G:
Autômatos
finitos
B → bb
Linguagens e
gramáticas
regulares
Linguagens
na (u) ≤ nb (u)
livres de
contexto
Hipótese Indutiva: na (u) + nA (u) ≤ nb (u) + 2·nB (u), para toda cadeia u derivável a
Gramáticas livres de
contexto
partir de S em no máximo n passos.
Derivações
Ambiguidade
Formas normais
Autômatos
com pilha e
GLC’s
Máquinas de
Turing
H. Longo
Introdução
Exemplo 6.27
Fundamentos Número de a’s nas cadeias de L(G) é menor ou igual ao de b’s:
matemáticos
S → aAS B | ε ,
Alfabetos e
linguagens
A → ad | d ,
G:
Autômatos
finitos
B → bb
Linguagens e
gramáticas
regulares
Linguagens
na (u) ≤ nb (u)
livres de
contexto
Passo Indutivo: w é uma cadeia derivável a partir de S em n + 1 passos.
n+1 n
S =⇒ w ≡ S =⇒ u =⇒ w.
Gramáticas livres de
contexto
Derivações
Ambiguidade
Formas normais
Por hipótese de indução na (u) + nA (u) ≤ nb (u) + 2·nB (u).
Autômatos Aplicação de uma regra de derivação a uma variável de u
com pilha e
GLC’s
preserva a desigualdade!
Máquinas de
Turing
H. Longo
Introdução
Exemplo 6.27
Fundamentos Número de a’s nas cadeias de L(G) é menor ou igual ao de b’s:
matemáticos
S → aAS B | ε ,
Alfabetos e
linguagens
A → ad | d ,
G:
Autômatos
finitos
B → bb
Linguagens e
gramáticas
regulares
Linguagens
na (u) ≤ nb (u)
livres de
contexto
Passo Indutivo:
Gramáticas livres de
Regra na (w) + nA (w) nb (w) + 2·nB (w)
contexto
S =⇒ aAS B na (u) + nA (u) + 2 nb (u) + 2·nB (u) + 2
S =⇒ ε na (u) + nA (u) nb (u) + 2·nB (u)
Derivações
Ambiguidade
Formas normais B =⇒ bb na (u) + nA (u) nb (u) + 2·nB (u)
Autômatos A =⇒ ad na (u) + nA (u) nb (u) + 2·nB (u)
com pilha e A =⇒ d na (u) + nA (u) − 1 nb (u) + 2·nB (u)
GLC’s
Máquinas de
Turing
H. Longo
Introdução
Exemplo 6.28
Fundamentos
S → aS dd | A ,
matemáticos
( )
Alfabetos e L= {an bm cm d2n | n ≥ 0, m > 0} e G :
linguagens A → bAc | bc
Autômatos
finitos
Linguagens e
gramáticas
regulares
Linguagens
livres de
contexto
Gramáticas livres de
contexto
Derivações
Ambiguidade
Formas normais
Autômatos
com pilha e
GLC’s
Máquinas de
Turing
H. Longo
Introdução
Exemplo 6.28
Fundamentos
S → aS dd | A ,
matemáticos
( )
Alfabetos e L= {an bm cm d2n | n ≥ 0, m > 0} e G :
linguagens A → bAc | bc
Autômatos
finitos
Autômatos
com pilha e
GLC’s
Máquinas de
Turing
H. Longo
Introdução
Exemplo 6.28
Fundamentos
S → aS dd | A ,
matemáticos
( )
Alfabetos e L= {an bm cm d2n | n ≥ 0, m > 0} e G :
linguagens A → bAc | bc
Autômatos
finitos
Autômatos
com pilha e
GLC’s
Máquinas de
Turing
H. Longo
Introdução
Exemplo 6.28
Fundamentos
S → aS dd | A ,
matemáticos
( )
Alfabetos e L= {an bm cm d2n | n ≥ 0, m > 0} e G :
linguagens A → bAc | bc
Autômatos
finitos
Máquinas de
Turing
H. Longo
Introdução
Fundamentos
matemáticos
Alfabetos e
linguagens
Linguagens e
gramáticas
regulares
Linguagens
Ambiguidade
livres de
contexto
Gramáticas livres de
contexto
Derivações
Ambiguidade
Formas normais
Autômatos
com pilha e
GLC’s
Máquinas de
Turing
Alfabetos e
linguagens
Autômatos
finitos
Linguagens e
gramáticas
regulares
Linguagens
livres de
contexto
Gramáticas livres de
contexto
Derivações
Ambiguidade
Formas normais
Autômatos
com pilha e
GLC’s
Máquinas de
Turing
Alfabetos e
linguagens
Linguagens e
Derivação mais à esquerda: a variável mais à esquerda é a única a ser
gramáticas
regulares
expandida a cada passo.
Linguagens
livres de
contexto
Gramáticas livres de
contexto
Derivações
Ambiguidade
Formas normais
Autômatos
com pilha e
GLC’s
Máquinas de
Turing
Alfabetos e
linguagens
Autômatos Demonstração.
finitos
Linguagens e
⇐= Claramente, se existe uma derivação mais à esquerda de w a partir de S ,
gramáticas
regulares
então w ∈ L(G).
∗
Linguagens =⇒ w ∈ L(G) ⇒ S =⇒ w (derivação mais à esquerda).
livres de L
contexto
Gramáticas livres de
contexto
Derivações
Ambiguidade
Formas normais
Autômatos
com pilha e
GLC’s
Máquinas de
Turing
Alfabetos e
linguagens
Autômatos Demonstração.
finitos
Linguagens e
Se w ∈ L(G), então existe pelo menos uma derivação de w (não
gramáticas
regulares
necessariamente mais à esquerda):
Linguagens
livres de S ⇒ w1 ⇒ w2 ⇒ w3 ⇒ · · · ⇒ wn = w.
contexto
Gramáticas livres de
Máquinas de
Turing
Alfabetos e
linguagens
Autômatos Demonstração.
finitos
Linguagens e
A aplicação da regra de derivação B → v, no passo k + 1, gera:
gramáticas
regulares
wk = u1 Au2 Bu3 ⇒ u1 Au2 vu3 = wk+1 .
Linguagens
livres de
contexto
Gramáticas livres de
Suponha que a substituição de A, na derivação original, ocorre no passo j + 1.
contexto
Derivações Logo, uso da regra de derivação A → p gera:
Ambiguidade
Formas normais
Autômatos w j = u1 Aq ⇒ u1 pq = w j+1 .
com pilha e
GLC’s
Máquinas de
Turing
Alfabetos e
linguagens
Autômatos Demonstração.
finitos
Linguagens e
As regras de derivação aplicadas nos passos k + 2 até j transformam u2 vu3
gramáticas
regulares
em q.
Linguagens A derivação é completada com a subderivação:
livres de
contexto
∗
Gramáticas livres de
contexto w j+1 =⇒ wn = w.
Derivações
Ambiguidade
Formas normais
Uma derivação de w, que é mais à esquerda para as k + 1 primeiras
Autômatos
com pilha e aplicações de regras de derivação, pode ser agora obtida (os k primeiros
GLC’s
passos já eram mais à esquerda).
Máquinas de
Turing
(991 – 1034 de 1593)
Derivação à esquerda
LFA 2018/2
Alfabetos e
linguagens
Linguagens e
k
S =⇒ wk = u1 Au2 Bu3 (u1 , u2 ∈ Σ∗ e u3 ∈ (Σ ∪ V)∗ )
gramáticas
regulares
Linguagens
livres de
=⇒ wk+1 = u1 Au2 vu3 (Regra B → v, v ∈ (Σ ∪ V)∗ )
contexto j−(k+1) ∗
Gramáticas livres de
contexto
=⇒ w j = u1 Aq (Derivação u2 vu3 =⇒ q, q ∈ (Σ ∪ V)∗ )
=⇒ w j+1 = u1 pq (Regra A → p, p ∈ Σ∗ )
Derivações
Ambiguidade
Formas normais
n−( j+1) ∗
Autômatos
com pilha e
=⇒ wn (Derivação w j+1 =⇒ wn )
GLC’s
Máquinas de
Turing
Alfabetos e
linguagens
Linguagens e
gramáticas k
regulares S =⇒ wk = u1 Au2 Bu3 (u1 , u2 ∈ Σ∗ e u3 ∈ (Σ ∪ V)∗ )
Linguagens
livres de
=⇒ wk+1 = u1 pu2 Bu3 (Regra A → p, p ∈ Σ∗ )
=⇒ wk+2 = u1 pu2 vu3
contexto
Gramáticas livres de (Regra B → v, v ∈ (Σ ∪ V)∗ )
contexto
Derivações j+1−(k+2) ∗
Ambiguidade =⇒ w j+1 = u1 pq (Derivação u2 vu3 =⇒ q, q ∈ (Σ ∪ V)∗ )
Formas normais
n−( j+1) ∗
Autômatos
com pilha e
=⇒ wn (Derivação w j+1 =⇒ wn )
GLC’s
Máquinas de
Turing
Alfabetos e
linguagens
Autômatos Demonstração.
finitos
Linguagens e
Se o comprimento de uma derivação é n, então com no máximo n utilizações
gramáticas
regulares
do procedimento descrito qualquer derivação torna-se mais à esquerda.
Linguagens
livres de
contexto
Gramáticas livres de
contexto
Derivações
Ambiguidade
Formas normais
Autômatos
com pilha e
GLC’s
Máquinas de
Turing
H. Longo
O Teorema 6.29 não garante que qualquer forma sentencial pode ser gerada
Introdução
por uma derivação mais à esquerda.
Fundamentos
matemáticos
A garantia é válida apenas para cadeias de símbolos terminais.
Alfabetos e
linguagens
Autômatos
finitos
Linguagens e
gramáticas
regulares
Linguagens
livres de
contexto
Gramáticas livres de
contexto
Derivações
Ambiguidade
Formas normais
Autômatos
com pilha e
GLC’s
Máquinas de
Turing
H. Longo
O Teorema 6.29 não garante que qualquer forma sentencial pode ser gerada
Introdução
por uma derivação mais à esquerda.
Fundamentos
matemáticos
A garantia é válida apenas para cadeias de símbolos terminais.
Alfabetos e
linguagens
Linguagens e
gramáticas
regulares S → AB
Linguagens
livres de
A → aA | ε
B → bB | ε
contexto
Gramáticas livres de
contexto
Derivações
Ambiguidade
Formas normais
Autômatos
com pilha e
Forma sentencial A é gerada por: S ⇒ AB ⇒ A.
GLC’s
Não existe derivação mais à esquerda para A.
Máquinas de
Turing
H. Longo
Uso apenas da derivação mais à esquerda elimina várias possibilidades de
Introdução
derivação de uma cadeia.
Fundamentos
matemáticos
Alfabetos e
linguagens
Autômatos
finitos
Linguagens e
gramáticas
regulares
Linguagens
livres de
contexto
Gramáticas livres de
contexto
Derivações
Ambiguidade
Formas normais
Autômatos
com pilha e
GLC’s
Máquinas de
Turing
H. Longo
Uso apenas da derivação mais à esquerda elimina várias possibilidades de
Introdução
derivação de uma cadeia.
Fundamentos
matemáticos Há a garantia de que, dada uma cadeia da linguagem de uma gramática, existe
Alfabetos e apenas uma derivação mais à esquerda?
linguagens
Autômatos
finitos
Linguagens e
gramáticas
regulares
Linguagens
livres de
contexto
Gramáticas livres de
contexto
Derivações
Ambiguidade
Formas normais
Autômatos
com pilha e
GLC’s
Máquinas de
Turing
H. Longo
Uso apenas da derivação mais à esquerda elimina várias possibilidades de
Introdução
derivação de uma cadeia.
Fundamentos
matemáticos Há a garantia de que, dada uma cadeia da linguagem de uma gramática, existe
Alfabetos e apenas uma derivação mais à esquerda?
linguagens
Autômatos
finitos Exemplo 6.32
Linguagens e
gramáticas
S ⇒ AA S ⇒ AA
regulares ⇒ aA ⇒ AAAA
⇒ aAAA ⇒ aAAA
Linguagens
livres de ⇒ abAAA ⇒ abAAA
contexto ⇒ abaAA ⇒ abaAA
Gramáticas livres de
contexto
⇒ ababAA ⇒ ababAA
Derivações ⇒ ababaA ⇒ ababaA
Ambiguidade
⇒ ababaa ⇒ ababaa
Formas normais
S → AA ,
( )
Autômatos
com pilha e P=
GLC’s
A → AAA | bA | Ab | a
Máquinas de
Turing
H. Longo
Introdução
Definição 6.33
Fundamentos
matemáticos Uma gramática GLC é ambígua se existe uma cadeia w ∈ L(G) para a qual
Alfabetos e existem duas derivações mais à esquerda distintas.
linguagens
Autômatos
finitos
Linguagens e
gramáticas
regulares
Linguagens
livres de
contexto
Gramáticas livres de
contexto
Derivações
Ambiguidade
Formas normais
Autômatos
com pilha e
GLC’s
Máquinas de
Turing
H. Longo
Introdução
Definição 6.33
Fundamentos
matemáticos Uma gramática GLC é ambígua se existe uma cadeia w ∈ L(G) para a qual
Alfabetos e existem duas derivações mais à esquerda distintas.
linguagens
Autômatos
finitos
Exemplo 6.34
Linguagens e
gramáticas G = ({S }, {a}, P, S ), onde: P = {S → aS | S a | a}.
regulares
Linguagens
G é ambígua, pois aa pode ser derivado à esquerda de duas formas:
livres de
contexto
Gramáticas livres de S ⇒ aS S ⇒ S a
contexto
Derivações
⇒ aa ⇒ aa
Ambiguidade
Formas normais
Máquinas de
Turing
H. Longo
Introdução
Fundamentos
matemáticos
Linguagens
livres de
contexto
Gramáticas livres de
contexto
Derivações
Ambiguidade
Formas normais
Autômatos
com pilha e
GLC’s
Máquinas de
Turing
H. Longo
Introdução
Fundamentos
matemáticos
Autômatos
com pilha e
GLC’s
Máquinas de
Turing
H. Longo
Exemplo 6.35
Introdução
G = ({S }, {a, b}, P, S ), onde P = {S → bS | S b | a}.
Fundamentos
matemáticos
Alfabetos e
linguagens
Autômatos
finitos
Linguagens e
gramáticas
regulares
Linguagens
livres de
contexto
Gramáticas livres de
contexto
Derivações
Ambiguidade
Formas normais
Autômatos
com pilha e
GLC’s
Máquinas de
Turing
H. Longo
Exemplo 6.35
Introdução
G = ({S }, {a, b}, P, S ), onde P = {S → bS | S b | a}.
Fundamentos
matemáticos S ⇒ bS S ⇒ Sb
Alfabetos e
linguagens
G é ambígua, pois: ⇒ bS b ⇒ bS b
Autômatos
⇒ bab ⇒ bab
finitos
Linguagens e
gramáticas
regulares
Linguagens
livres de
contexto
Gramáticas livres de
contexto
Derivações
Ambiguidade
Formas normais
Autômatos
com pilha e
GLC’s
Máquinas de
Turing
H. Longo
Exemplo 6.35
Introdução
G = ({S }, {a, b}, P, S ), onde P = {S → bS
| S b | a}.
Fundamentos
matemáticos S ⇒ bS ⇒ S b
S
Alfabetos e
linguagens
G é ambígua, pois: ⇒ bS b ⇒ bS b
Autômatos
⇒ bab ⇒ bab
finitos
Gramáticas não ambíguas equivalentes a G:
Linguagens e
gramáticas
S → bS | aA , S → bS | A ,
regulares
( ) ( )
G1 : G2 :
Linguagens
livres de A → bA | ε A → Ab | a
contexto
Gramáticas livres de
contexto
Derivações
Ambiguidade
Formas normais
Autômatos
com pilha e
GLC’s
Máquinas de
Turing
H. Longo
Exemplo 6.35
Introdução
G = ({S }, {a, b}, P, S ), onde P = {S → bS
| S b | a}.
Fundamentos
matemáticos S ⇒ bS ⇒ S b
S
Alfabetos e
linguagens
G é ambígua, pois: ⇒ bS b ⇒ bS b
Autômatos
⇒ bab ⇒ bab
finitos
Gramáticas não ambíguas equivalentes a G:
Linguagens e
gramáticas
S → bS | aA , S → bS | A ,
regulares
( ) ( )
G1 : G2 :
Linguagens
livres de A → bA | ε A → Ab | a
contexto
Gramáticas livres de
contexto
Derivações
Derivação mais à esquerda, em G1 , da cadeia bn abm :
Ambiguidade
n m
S =⇒ bn S =⇒ bn aA =⇒ bn abm A =⇒ bn abm .
Formas normais
Autômatos
com pilha e
GLC’s
Máquinas de
Turing
H. Longo
Introdução
Exemplo 6.36
Fundamentos
matemáticos
G = ({S }, {a, b}, P, S ), onde P = {S → aS b | aS bb | ε}.
Alfabetos e
linguagens
Autômatos
finitos
Linguagens e
gramáticas
regulares
Linguagens
livres de
contexto
Gramáticas livres de
contexto
Derivações
Ambiguidade
Formas normais
Autômatos
com pilha e
GLC’s
Máquinas de
Turing
H. Longo
Introdução
Exemplo 6.36
Fundamentos
matemáticos
G = ({S }, {a, b}, P, S ), onde P = {S → aS b | aS bb | ε}.
Alfabetos e
linguagens L(G) = {an bm | 0 ≤ n ≤ m ≤ 2n}.
Autômatos
finitos
Linguagens e
gramáticas
regulares
Linguagens
livres de
contexto
Gramáticas livres de
contexto
Derivações
Ambiguidade
Formas normais
Autômatos
com pilha e
GLC’s
Máquinas de
Turing
H. Longo
Introdução
Exemplo 6.36
Fundamentos
matemáticos
G = ({S }, {a, b}, P, S ), onde P = {S → aS b | aS bb | ε}.
Alfabetos e
linguagens L(G) = {an bm | 0 ≤ n ≤ m ≤ 2n}.
Autômatos
finitos
S ⇒ aS b S ⇒ aS bb
Linguagens e G é ambígua, pois: ⇒ aaS bbb ⇒ aaS bbb
gramáticas
regulares
⇒ aabbb ⇒ aabbb
Linguagens
livres de
contexto
Gramáticas livres de
contexto
Derivações
Ambiguidade
Formas normais
Autômatos
com pilha e
GLC’s
Máquinas de
Turing
H. Longo
Introdução
Exemplo 6.36
Fundamentos
matemáticos
G = ({S }, {a, b}, P, S ), onde P = {S → aS b | aS bb | ε}.
Alfabetos e
linguagens L(G) = {an bm | 0 ≤ n ≤ m ≤ 2n}.
Autômatos
finitos
S ⇒ aS b S ⇒ aS bb
Linguagens e G é ambígua, pois: ⇒ aaS bbb ⇒ aaS bbb
gramáticas
regulares
⇒ aabbb ⇒ aabbb
Linguagens Gramáticas não ambígua equivalente a G:
livres de
contexto
S → aS b | A | ε ,
( )
Gramáticas livres de
contexto
G1 :
Derivações
Ambiguidade
A → aAbb | abb
Formas normais
Autômatos
com pilha e
GLC’s
Máquinas de
Turing
H. Longo
Introdução
Fundamentos
matemáticos
Definição 6.37
Alfabetos e
linguagens ∗
Autômatos
Seja G = (V, Σ, P, S ) uma GLC e S =⇒ w uma derivação em G. A Árvore de
∗
finitos
Derivação, AD, de S =⇒ w pode ser construída como segue:
Linguagens e
gramáticas
1 Inicie AD com a raiz S .
regulares 2 Se A → x1 x2 . . .xn , com xi ∈ (V ∪ Σ), é a regra de derivação aplicada à cadeia
Linguagens
livres de
uAv, então acrescente x1 , x2 , . . ., xn como filhos de A em AD.
contexto 3 Se A → ε é a regra de derivação aplicada à cadeia uAv, então acrescente ε
Gramáticas livres de
contexto como único filho de A em AD.
Derivações
Ambiguidade
Formas normais
Autômatos
com pilha e
GLC’s
Máquinas de
Turing
Alfabetos e
linguagens
Autômatos
finitos
Linguagens e
gramáticas
regulares
Linguagens
livres de
contexto
Gramáticas livres de
contexto
Derivações
Ambiguidade
Formas normais
Autômatos
com pilha e
GLC’s
Máquinas de
Turing
Autômatos
com pilha e
GLC’s
Máquinas de
Turing
Autômatos
com pilha e
GLC’s
Máquinas de
Turing
Autômatos
com pilha e
GLC’s
Máquinas de
Turing
Autômatos
com pilha e
GLC’s
Máquinas de
Turing
Autômatos
com pilha e
GLC’s
Máquinas de
Turing
Autômatos
com pilha e
GLC’s
Máquinas de
Turing
Autômatos
com pilha e
GLC’s
Máquinas de
Turing
Autômatos
com pilha e
GLC’s
Máquinas de
Turing
H. Longo
Introdução
Fundamentos
matemáticos
Alfabetos e
linguagens A ordem das folhas independe da derivação a partir da qual a árvore foi
Autômatos
finitos
gerada.
Linguagens e Derivações distintas podem gerar a mesma árvore de derivação.
gramáticas
regulares
Uma árvore de derivação pode ser usada para gerar diversas derivações que
Linguagens
livres de geram a mesma cadeia.
contexto
Gramáticas livres de
contexto
Derivações
Ambiguidade
Formas normais
Autômatos
com pilha e
GLC’s
Máquinas de
Turing
H. Longo
Introdução
Fundamentos
matemáticos Há uma correspondência natural (um para um) entre derivações mais a
Alfabetos e esquerda e árvores de derivação.
linguagens
Definição recursiva de árvore de derivação especifica a construção de uma
Autômatos
finitos árvore a partir de uma derivação mais esquerda.
Linguagens e
Apenas uma derivação mais à esquerda de uma cadeia w pode ser extraída de
gramáticas uma árvore de derivação de w.
regulares
Linguagens
livres de
contexto
Gramáticas livres de
contexto
Derivações
Ambiguidade
Formas normais
Autômatos
com pilha e
GLC’s
Máquinas de
Turing
H. Longo
Introdução
Fundamentos
matemáticos Há uma correspondência natural (um para um) entre derivações mais a
Alfabetos e esquerda e árvores de derivação.
linguagens
Definição recursiva de árvore de derivação especifica a construção de uma
Autômatos
finitos árvore a partir de uma derivação mais esquerda.
Linguagens e
Apenas uma derivação mais à esquerda de uma cadeia w pode ser extraída de
gramáticas uma árvore de derivação de w.
regulares
Linguagens
livres de
contexto
Definição 6.39
Gramáticas livres de
contexto Uma gramática G é ambígua se existe uma cadeia w em L(G) cujos símbolos são
Derivações
Ambiguidade as folhas de duas árvores de derivação distintas.
Formas normais
Autômatos
com pilha e
GLC’s
Máquinas de
Turing
LFA 2018/2
H. Longo
Linguagens e
gramáticas
regulares
Linguagens
livres de
contexto
Gramáticas livres de
contexto
Derivações
Ambiguidade
Formas normais
Autômatos
com pilha e
GLC’s
Máquinas de
Turing
LFA 2018/2
H. Longo
Linguagens e
gramáticas
regulares
Toda gramática regular G = (V, Σ, P, S ) que contém uma regra de derivação da
forma A → aB (com A, B ∈ V e a ∈ Σ) que seja alcançável a partir do símbolo
Linguagens
livres de
contexto
Gramáticas livres de
inicial S , possui uma gramática regular ambígua equivalente.
contexto
Derivações
Ambiguidade
Para construir uma tal gramática basta inserir um novo símbolo não terminal
Formas normais X e adicionar a regra A → aX e replicar as regras do B, com a substituição do
Autômatos
com pilha e
B pelo X .
GLC’s
Máquinas de
Turing
LFA 2018/2
H. Longo
Introdução
Fundamentos
matemáticos Exemplo 6.41
Alfabetos e
linguagens
S → aS | bA
G = (V = {S , A, B}, Σ = {a, b}, P, S ), com P = A → bA | aB | ε
.
Autômatos
finitos B → aB | ε
Linguagens e
gramáticas
regulares
Linguagens
livres de
contexto
Gramáticas livres de
contexto
Derivações
Ambiguidade
Formas normais
Autômatos
com pilha e
GLC’s
Máquinas de
Turing
LFA 2018/2
H. Longo
Introdução
Fundamentos
matemáticos Exemplo 6.41
Alfabetos e
linguagens
S → aS | bA
G = (V = {S , A, B}, Σ = {a, b}, P, S ), com P = ε
A → bA | aB | .
Autômatos
finitos B → aB | ε
Linguagens e
Gramática
ambígua equivalente é G1 = (V1 = {S , A, B, X}, Σ = {a, b}, P1 , S ),
gramáticas
regulares
S → aS | bA
Linguagens
A → bA | aB | aX | ε
livres de
com P =
.
contexto
B → aB | ε
Gramáticas livres de
contexto
Derivações
X → aX | ε
Ambiguidade
Formas normais
Autômatos
com pilha e
GLC’s
Máquinas de
Turing
H. Longo
Introdução
Fundamentos
Derivação ambígua: uma mesma cadeia tem mais de uma árvore de
matemáticos
derivação.
Alfabetos e
linguagens Gramática ambígua: gera uma cadeia por derivação ambígua.
Autômatos A cadeia tem duas árvores de derivação.
finitos
Duas derivações podem diferir na ordem em que variáveis são substituídas.
Linguagens e
gramáticas
regulares
Uma cadeia w é derivada ambiguamente se possui duas ou mais derivações
Linguagens
à esquerda.
livres de
contexto Uma gramática é ambígua se gera alguma cadeia ambiguamente.
Gramáticas livres de
contexto LLC inerentemente ambígua: só pode ser gerada por uma gramática
Derivações
Ambiguidade ambígua.
Ex.: L = {0i 1 j 2k | i = j ou j = k}.
Formas normais
Autômatos
com pilha e
GLC’s
Máquinas de
Turing
H. Longo
Autômatos
recursivo à direita (A =⇒ βA, |β| > 0), então G é ambígua, desde que G seja
finitos “reduzida”, ou seja, não possua símbolos redundantes.
Linguagens e ∗
gramáticas Exemplo: A =⇒ βAα.
regulares
Linguagens
livres de
A A
contexto
Gramáticas livres de
contexto
Derivações β A A α
Ambiguidade
Formas normais
Autômatos
com pilha e A α β A
GLC’s
Máquinas de
Turing
H. Longo
Introdução
Fundamentos
matemáticos
Linguagens e
Falta de agrupamento em sequências de operadores (por exemplo, E + E + E
gramáticas
regulares
pode significar E + (E + E) ou (E + E) + E .
Linguagens Solução: introduzir mais variáveis, cada uma representando um tipo de
livres de
contexto expressão.
Gramáticas livres de
contexto
Derivações
Ambiguidade
Formas normais
Autômatos
com pilha e
GLC’s
Máquinas de
Turing
H. Longo
Introdução
Exemplo 6.42
Fundamentos G = ({E}, {+, ∗, (, ), id}, {E → E + E | E ∗ E | (E) | id}, E).
matemáticos
Alfabetos e
linguagens
Autômatos
finitos
Linguagens e
gramáticas
regulares
Linguagens
livres de
contexto
Gramáticas livres de
contexto
Derivações
Ambiguidade
Formas normais
Autômatos
com pilha e
GLC’s
Máquinas de
Turing
H. Longo
Introdução
Exemplo 6.42
Fundamentos G = ({E}, {+, ∗, (, ), id}, {E → E + E | E ∗ E | (E) | id}, E).
matemáticos
Alfabetos e
linguagens
1 Forçar maior precedência para o símbolo ∗:
Autômatos
finitos
E →E+E |T
Linguagens e
gramáticas T → T ∗ T | (E) | id
regulares
Linguagens
livres de
contexto
Gramáticas livres de
contexto
Derivações
Ambiguidade
Formas normais
Autômatos
com pilha e
GLC’s
Máquinas de
Turing
H. Longo
Introdução
Exemplo 6.42
Fundamentos G = ({E}, {+, ∗, (, ), id}, {E → E + E | E ∗ E | (E) | id}, E).
matemáticos
Alfabetos e
linguagens
1 Forçar maior precedência para o símbolo ∗:
Autômatos
finitos
E →E+E |T
Linguagens e
gramáticas T → T ∗ T | (E) | id
regulares
Linguagens
livres de
2 Eliminar recursões à direita:
contexto
Gramáticas livres de
contexto
Derivações
E → E+T |T
Ambiguidade
Formas normais T → T ∗ id | T ∗ (E) | (E) | id
Autômatos
com pilha e
GLC’s
Máquinas de
Turing
H. Longo
Introdução
Fundamentos
matemáticos
Alfabetos e
linguagens
Linguagens e
gramáticas
regulares
Linguagens
Formas normais
livres de
contexto
Gramáticas livres de
contexto
Derivações
Ambiguidade
Formas normais
Autômatos
com pilha e
GLC’s
Máquinas de
Turing
H. Longo
Introdução
Fundamentos
Objetivo das transformações é tornar uma GLC mais simples ou prepará-la
matemáticos para alguma aplicação posterior
Alfabetos e
linguagens Qualquer que seja a transformação efetuada numa gramática, a linguagem
Autômatos gerada deve ser sempre a mesma.
finitos
Linguagens e
gramáticas
regulares
Linguagens
livres de
contexto
Gramáticas livres de
contexto
Derivações
Ambiguidade
Formas normais
Autômatos
com pilha e
GLC’s
Máquinas de
Turing
H. Longo
Introdução
Fundamentos
Objetivo das transformações é tornar uma GLC mais simples ou prepará-la
matemáticos para alguma aplicação posterior
Alfabetos e
linguagens Qualquer que seja a transformação efetuada numa gramática, a linguagem
Autômatos gerada deve ser sempre a mesma.
finitos
Linguagens e
Transformações:
gramáticas 1 Eliminação de recursão na variável inicial.
regulares
Linguagens
2 Eliminação de derivações vazias.
livres de 3 Contração.
contexto
Gramáticas livres de
4 Eliminação de símbolos inúteis.
contexto
Derivações
5 Eliminação de regras de derivação simples (unitárias).
Ambiguidade
Formas normais
6 Eliminação de recursão à esquerda (e à direita).
Autômatos
7 Fatoração.
com pilha e
GLC’s
Máquinas de
Turing
H. Longo
Introdução
Lema 6.43
Fundamentos
matemáticos Seja G = (V, Σ, P, S ) uma gramática livre de contexto. Existe uma gramática
Alfabetos e G0 = (V 0 , Σ, P0 , S 0 ), que satisfaz:
linguagens
Autômatos
1 L(G) = L(G0 ),
finitos 2 As regras de derivação em P0 são da forma A → w, onde A ∈ V 0 e
Linguagens e w ∈ ((V 0 − {S 0 }) ∪ Σ)∗ .
gramáticas
regulares
Linguagens
livres de
Demonstração.
contexto
Gramáticas livres de
contexto
Derivações
Ambiguidade
Formas normais
Autômatos
com pilha e
GLC’s
Máquinas de
Turing
H. Longo
Introdução
Lema 6.43
Fundamentos
matemáticos Seja G = (V, Σ, P, S ) uma gramática livre de contexto. Existe uma gramática
Alfabetos e G0 = (V 0 , Σ, P0 , S 0 ), que satisfaz:
linguagens
Autômatos
1 L(G) = L(G0 ),
finitos 2 As regras de derivação em P0 são da forma A → w, onde A ∈ V 0 e
Linguagens e w ∈ ((V 0 − {S 0 }) ∪ Σ)∗ .
gramáticas
regulares
Linguagens
livres de
Demonstração.
contexto
Gramáticas livres de
Se a variável S não ocorre no lado direito de nenhuma regra de derivação,
então G = G0 .
contexto
Derivações
Ambiguidade
Formas normais Se S é uma variável recursiva, então G0 = (V ∪ {S 0 }, Σ, P ∪ {S 0 → S }, S 0 ).
Autômatos
com pilha e
GLC’s
Máquinas de
Turing
H. Longo
Introdução
Lema 6.43
Fundamentos
matemáticos Seja G = (V, Σ, P, S ) uma gramática livre de contexto. Existe uma gramática
Alfabetos e G0 = (V 0 , Σ, P0 , S 0 ), que satisfaz:
linguagens
Autômatos
1 L(G) = L(G0 ),
finitos 2 As regras de derivação em P0 são da forma A → w, onde A ∈ V 0 e
Linguagens e w ∈ ((V 0 − {S 0 }) ∪ Σ)∗ .
gramáticas
regulares
Linguagens
livres de
Demonstração.
contexto
Gramáticas livres de
L(G) = L(G0 )
contexto ∗ ∗
Derivações S =⇒ u ≡ S 0 =⇒
0
S =⇒
0
u.
Ambiguidade G G G
Formas normais
Autômatos
com pilha e
GLC’s
Máquinas de
Turing
H. Longo
Introdução
Fundamentos
matemáticos
Alfabetos e
linguagens
Exemplo 6.44
Autômatos
finitos
G : S → aS | AB | AC G0 : S 0 → S
Linguagens e
A → aA | ε S → aS | AB | AC
gramáticas
regulares
B → bB | bS A → aA | ε
Linguagens
C → cC | ε B → bB | bS
livres de
contexto
C → cC | ε
Gramáticas livres de
contexto
Derivações
Ambiguidade
Formas normais
Autômatos
com pilha e
GLC’s
Máquinas de
Turing
H. Longo
Linguagens e
gramáticas
Conjunto de variáveis que derivam, direta ou indiretamente, a cadeia vazia:
∗
regulares
Vε = {A ∈ V | A =⇒ ε}.
Linguagens
livres de
contexto
Gramáticas livres de
Definição 6.47 (GLC ε-livre)
contexto
Derivações
Ambiguidade
GLC que não possui ε-regras ou possui S → ε como uma única ε-regra, onde
Formas normais S é o símbolo inicial da gramática e S não aparece do lado direito de
Autômatos
com pilha e
nenhuma regra de derivação.
GLC’s
Máquinas de
Turing
H. Longo
Introdução
Fundamentos
matemáticos
Exemplo 6.48
S → S aB | aB ,
( )
Alfabetos e
linguagens G = ({S , B}, {a, b}, P, S ), onde P =
Autômatos
B → bB | ε
finitos
Linguagens e
gramáticas
regulares
Linguagens
livres de
contexto
Gramáticas livres de
contexto
Derivações
Ambiguidade
Formas normais
Autômatos
com pilha e
GLC’s
Máquinas de
Turing
H. Longo
Introdução
Fundamentos
matemáticos
Exemplo 6.48
S → S aB | aB ,
( )
Alfabetos e
linguagens G = ({S , B}, {a, b}, P, S ), onde P =
Autômatos
B → bB | ε
L(G) = (a+ b∗ )+ .
finitos
Linguagens e
gramáticas
regulares
Linguagens
livres de
contexto
Gramáticas livres de
contexto
Derivações
Ambiguidade
Formas normais
Autômatos
com pilha e
GLC’s
Máquinas de
Turing
H. Longo
Introdução
Fundamentos
matemáticos
Exemplo 6.48
S → S aB | aB ,
( )
Alfabetos e
linguagens G = ({S , B}, {a, b}, P, S ), onde P =
Autômatos
B → bB | ε
L(G) = (a+ b∗ )+ .
finitos
Linguagens e
gramáticas
regulares
Derivação à esquerda de aaaa gera quatro B’s, os quais são removidos com a
Linguagens
regra B → ε.
livres de
contexto
Gramáticas livres de
contexto
Derivações
Ambiguidade
Formas normais
Autômatos
com pilha e
GLC’s
Máquinas de
Turing
H. Longo
Introdução
Fundamentos
matemáticos
Exemplo 6.48
S → S aB | aB ,
( )
Alfabetos e
linguagens G = ({S , B}, {a, b}, P, S ), onde P =
Autômatos
B → bB | ε
L(G) = (a+ b∗ )+ .
finitos
Linguagens e
gramáticas
regulares
Derivação à esquerda de aaaa gera quatro B’s, os quais são removidos com a
Linguagens
regra B → ε.
livres de
contexto Gramática equivalente sem ε-regras:
( )
Gramáticas livres de
S → S aB | S a | aB | a
G1 = ({S , B}, {a, b}, P, S ), onde P =
contexto
Derivações
Ambiguidade
B → bB | b
Formas normais
Autômatos
com pilha e
GLC’s
Máquinas de
Turing
H. Longo
Introdução
Fundamentos
matemáticos Algoritmo 8: Busca ε-variáveis
Alfabetos e Entrada: GLC (V, Σ, P, S ).
linguagens
Saída: Conjunto de ε-variáveis.
Autômatos
finitos 1 Vε ← {A | (A → ε) ∈ P};
2 repita
Linguagens e
gramáticas
3 AUX ← Vε ;
regulares 4 para cada (A ∈ V) faça
Linguagens
5 se (∃ A → w e w ∈ AUX ∗ ) então
livres de 6 Vε ← Vε ∪ {A};
contexto
Gramáticas livres de
contexto 7 até (AUX = Vε );
Derivações
Ambiguidade 8 retorna (Vε );
Formas normais
Autômatos
com pilha e
GLC’s
Máquinas de
Turing
H. Longo
Introdução
Exemplo 6.49
Fundamentos
S → ACA ,
matemáticos
A → aAa | B | C ,
Alfabetos e
G = ({S , A, B, C}, {a, b, c}, P, S ), onde P =
linguagens
B → bB | b ,
Autômatos
C → cC | ε
finitos
Linguagens e
gramáticas
regulares
Linguagens
livres de
contexto
Gramáticas livres de
contexto
Derivações
Ambiguidade
Formas normais
Autômatos
com pilha e
GLC’s
Máquinas de
Turing
H. Longo
Introdução
Exemplo 6.49
Fundamentos
S → ACA ,
matemáticos
A → aAa | B | C ,
Alfabetos e
G = ({S , A, B, C}, {a, b, c}, P, S ), onde P =
linguagens
B → bB | b ,
Autômatos
C → cC | ε
finitos
Linguagens e
gramáticas
regulares
Máquinas de
Turing
H. Longo
Lema 6.50
Introdução
Fundamentos
Dada uma gramática G = (V, Σ, P, S ), o algoritmo 8 gera o conjunto de
matemáticos
ε-variáveis de G.
Alfabetos e
linguagens
Autômatos
finitos
Linguagens e
gramáticas
regulares
Linguagens
livres de
contexto
Gramáticas livres de
contexto
Derivações
Ambiguidade
Formas normais
Autômatos
com pilha e
GLC’s
Máquinas de
Turing
H. Longo
Lema 6.50
Introdução
Fundamentos
Dada uma gramática G = (V, Σ, P, S ), o algoritmo 8 gera o conjunto de
matemáticos
ε-variáveis de G.
Alfabetos e
linguagens
Autômatos Demonstração.
finitos
Linguagens e
1 Toda variável em Vε deriva a cadeia vazia:
gramáticas
regulares Indução no número de iterações do algoritmo.
Linguagens
livres de
Hipótese Indutiva:
contexto Após n iterações todas as variáveis em Vε são ε-variáveis.
Gramáticas livres de
contexto
Derivações Passo Indutivo:
Provar que qualquer variável adicionada no passo n + 1 também é uma
Ambiguidade
Formas normais
Autômatos ε-variável.
com pilha e
GLC’s
Máquinas de
Turing
H. Longo
Lema 6.50
Introdução
Fundamentos
Dada uma gramática G = (V, Σ, P, S ), o algoritmo 8 gera o conjunto de
matemáticos
ε-variáveis de G.
Alfabetos e
linguagens
Autômatos Demonstração.
finitos
Linguagens e
Passo Indutivo:
gramáticas
regulares
Se A é essa variável, então existe a regra de derivação A → A1 A2 . . . Ak , em
Linguagens que cada Ai ∈ AUX na iteração n + 1.
livres de
∗
contexto
Gramáticas livres de
Por hipótese de indução, Ai =⇒ ε para i = 1, 2, . . . , k. Portanto:
contexto
Derivações
∗ ∗ ∗ ∗
Ambiguidade
Formas normais
A =⇒ A1 A2 . . . Ak =⇒ A2 . . . Ak =⇒ A3 . . . Ak =⇒ Ak =⇒ ε.
Autômatos
com pilha e
GLC’s
Máquinas de
Turing
H. Longo
Lema 6.50
Introdução
Fundamentos
Dada uma gramática G = (V, Σ, P, S ), o algoritmo 8 gera o conjunto de
matemáticos
ε-variáveis de G.
Alfabetos e
linguagens
Autômatos Demonstração.
finitos
Linguagens e
2 Toda ε-variável é inserida no conjunto Vε :
gramáticas
regulares Indução no comprimento da derivação mínima de ε a partir de uma variável A.
Linguagens
livres de
Base:
1
contexto Se A =⇒ ε, então A é inserido em Vε no passo 1.
Gramáticas livres de
contexto
Derivações Hipótese Indutiva:
Toda variável, cuja derivação mínima de ε é de comprimento máximo n, é
Ambiguidade
Formas normais
H. Longo
Lema 6.50
Introdução
Fundamentos
Dada uma gramática G = (V, Σ, P, S ), o algoritmo 8 gera o conjunto de
matemáticos
ε-variáveis de G.
Alfabetos e
linguagens
Autômatos Demonstração.
finitos
Linguagens e
Passo Indutivo:
gramáticas
regulares
Seja A uma variável que deriva ε em n + 1 passos:
Linguagens n
livres de
contexto
A =⇒ A1 A2 . . . Ak =⇒ ε.
Gramáticas livres de
contexto
Derivações Por H.I., cada Ai deriva ε com derivação mínima de comprimento n ou menor
e é inserida em Vε antes da iteração n + 1.
Ambiguidade
Formas normais
Autômatos
com pilha e
GLC’s
Máquinas de
Turing
H. Longo
Lema 6.50
Introdução
Fundamentos
Dada uma gramática G = (V, Σ, P, S ), o algoritmo 8 gera o conjunto de
matemáticos
ε-variáveis de G.
Alfabetos e
linguagens
Autômatos Demonstração.
finitos
Linguagens e
Passo Indutivo:
gramáticas
regulares
Se m ≤ n é a primeira iteração na qual todos os Ai ’s já foram inseridos em Vε ,
Linguagens então na iteração m + 1 a regra A → A1 A2 . . . Ak força a variável A a ser
livres de
contexto inserida em Vε .
Gramáticas livres de
contexto
Derivações
Ambiguidade
Formas normais
Autômatos
com pilha e
GLC’s
Máquinas de
Turing
H. Longo
Introdução
Lema 6.51
Fundamentos
matemáticos ∗
Seja G = (V, Σ, P, S ) uma GLC . Se A =⇒ w, então a gramática
Alfabetos e G
linguagens
G0 = (V, Σ, P ∪ {A → w}, S ) é equivalente a G.
Autômatos
finitos
Linguagens e
gramáticas
regulares
Linguagens
livres de
contexto
Gramáticas livres de
contexto
Derivações
Ambiguidade
Formas normais
Autômatos
com pilha e
GLC’s
Máquinas de
Turing
H. Longo
Introdução
Lema 6.51
Fundamentos
matemáticos ∗
Seja G = (V, Σ, P, S ) uma GLC . Se A =⇒ w, então a gramática
Alfabetos e G
linguagens
G0 = (V, Σ, P ∪ {A → w}, S ) é equivalente a G.
Autômatos
finitos
Linguagens e Demonstração.
gramáticas
regulares ⇒ L(G) ⊆ L(G0 ) uma vez que toda regra de derivação de G também pertence à
Linguagens
livres de
G0 .
contexto
Gramáticas livres de
contexto
Derivações
Ambiguidade
Formas normais
Autômatos
com pilha e
GLC’s
Máquinas de
Turing
H. Longo
Introdução
Lema 6.51
Fundamentos
matemáticos ∗
Seja G = (V, Σ, P, S ) uma GLC . Se A =⇒ w, então a gramática
Alfabetos e G
linguagens
G0 = (V, Σ, P ∪ {A → w}, S ) é equivalente a G.
Autômatos
finitos
Linguagens e Demonstração.
gramáticas
regulares ⇒ L(G) ⊆ L(G0 ) uma vez que toda regra de derivação de G também pertence à
Linguagens
livres de
G0 .
contexto
Gramáticas livres de ⇐ L(G0 ) ⊆ L(G), pois a aplicaçao da regra de derivação A → w em uma
contexto ∗
Derivações
Ambiguidade
deriação em G0 pode ser simulada em G pela derivação A =⇒ w.
G
Formas normais
Autômatos
com pilha e
GLC’s
Máquinas de
Turing
H. Longo
Introdução
Fundamentos
matemáticos Definição 6.52
Alfabetos e
linguagens
Uma gramática sem ε-variáveis é não contraível, já que nenhuma regra de
Autômatos derivação pode diminuir o tamanho de qualquer forma sentencial.
finitos
Linguagens e
gramáticas
regulares
Linguagens
livres de
contexto
Gramáticas livres de
contexto
Derivações
Ambiguidade
Formas normais
Autômatos
com pilha e
GLC’s
Máquinas de
Turing
H. Longo
Introdução
Fundamentos
matemáticos Definição 6.52
Alfabetos e
linguagens
Uma gramática sem ε-variáveis é não contraível, já que nenhuma regra de
Autômatos derivação pode diminuir o tamanho de qualquer forma sentencial.
finitos
Linguagens e
gramáticas
regulares
Se G = (V, Σ, P, S ) é uma GLC e ε ∈ L(G), então não existe uma gramática
Linguagens
não contraível equivalente.
livres de
contexto
Se S → ε é única ε-regra de G, então todas as derivações em G (com
Gramáticas livres de
contexto
exceção de S ⇒ ε) são não contraíveis.
Derivações
Ambiguidade
Gramática essencialmente não contraível.
Formas normais
Autômatos
com pilha e
GLC’s
Máquinas de
Turing
H. Longo
Introdução
Fundamentos
matemáticos
Alfabetos e
linguagens
Exemplo 6.53
( (
Autômatos S → AS a S → AS a | S a
finitos G1 : ≡ G2 :
Linguagens e
A → aA | ε A → aA | a
gramáticas
regulares
Linguagens
livres de
contexto
Gramáticas livres de
contexto
Derivações
Ambiguidade
Formas normais
Autômatos
com pilha e
GLC’s
Máquinas de
Turing
H. Longo
Introdução
Fundamentos
matemáticos
Alfabetos e
linguagens
Exemplo 6.53
( (
Autômatos S → AS a S → AS a | S a
finitos G1 : ≡ G2 :
Linguagens e
A → aA | ε A → aA | a
gramáticas
regulares ( (
S → AS Aa S → AS Aa | S Aa | AS a | S a
Linguagens G3 : ≡ G4 :
livres de A → aA | ε A → aA | a
contexto
Gramáticas livres de
contexto
Derivações
Ambiguidade
Formas normais
Autômatos
com pilha e
GLC’s
Máquinas de
Turing
H. Longo
Introdução
Fundamentos
matemáticos
Alfabetos e
linguagens Teorema 6.54
Autômatos
finitos
Seja G = (V, Σ, P, S ) uma GLC . Existe um algoritmo para construir uma
gramática G L = (VL , Σ, PL , S L ) que satisfaz:
Linguagens e
gramáticas 1 L(G) = L(G L ),
regulares
2 S L não é variável recursiva, e
Linguagens
livres de 3 (A → ε) ∈ P se, e somente se, ε ∈ L(G) e A = S L .
contexto
Gramáticas livres de
contexto
Derivações
Ambiguidade
Formas normais
Autômatos
com pilha e
GLC’s
Máquinas de
Turing
H. Longo
Introdução
Fundamentos
Demonstração.
matemáticos
Alfabetos e
2 S L não é variável recursiva.
linguagens É suficiente usar a técnica apresentada no lema 6.43. VL = V ou VL = V ∪ {S L }
Autômatos (se necessário mudar a variável inicial).
finitos
Linguagens e
gramáticas
regulares
Linguagens
livres de
contexto
Gramáticas livres de
contexto
Derivações
Ambiguidade
Formas normais
Autômatos
com pilha e
GLC’s
Máquinas de
Turing
H. Longo
Introdução
Fundamentos
Demonstração.
matemáticos
Alfabetos e
2 S L não é variável recursiva.
linguagens É suficiente usar a técnica apresentada no lema 6.43. VL = V ou VL = V ∪ {S L }
Autômatos (se necessário mudar a variável inicial).
finitos
Máquinas de
Turing
H. Longo
Introdução
Fundamentos
Demonstração.
matemáticos
Alfabetos e
2 S L não é variável recursiva.
linguagens É suficiente usar a técnica apresentada no lema 6.43. VL = V ou VL = V ∪ {S L }
Autômatos (se necessário mudar a variável inicial).
finitos
Máquinas de
Turing
H. Longo
Introdução
Fundamentos
Demonstração.
matemáticos
Alfabetos e
2 S L não é variável recursiva.
linguagens É suficiente usar a técnica apresentada no lema 6.43. VL = V ou VL = V ∪ {S L }
Autômatos (se necessário mudar a variável inicial).
finitos
Máquinas de
Turing
H. Longo
Introdução
Fundamentos
Demonstração.
matemáticos
Alfabetos e
2 S L não é variável recursiva.
linguagens É suficiente usar a técnica apresentada no lema 6.43. VL = V ou VL = V ∪ {S L }
Autômatos (se necessário mudar a variável inicial).
finitos
Máquinas de
Turing
H. Longo
Introdução
Fundamentos Demonstração.
matemáticos
Alfabetos e
1 L(G L ) ⊆ L(G).
linguagens
Autômatos
finitos
Linguagens e
gramáticas
regulares
Linguagens
livres de
contexto
Gramáticas livres de
contexto
Derivações
Ambiguidade
Formas normais
Autômatos
com pilha e
GLC’s
Máquinas de
Turing
H. Longo
Introdução
Fundamentos Demonstração.
matemáticos
Alfabetos e
1 L(G L ) ⊆ L(G).
linguagens
As derivações em G L usam as regras de G e aquelas criadas pela condição 3
Autômatos
finitos
do teorema, as quais são deriváveis em G.
Linguagens e
gramáticas
regulares
Linguagens
livres de
contexto
Gramáticas livres de
contexto
Derivações
Ambiguidade
Formas normais
Autômatos
com pilha e
GLC’s
Máquinas de
Turing
H. Longo
Introdução
Fundamentos Demonstração.
matemáticos
Alfabetos e
1 L(G L ) ⊆ L(G).
linguagens
As derivações em G L usam as regras de G e aquelas criadas pela condição 3
Autômatos
finitos
do teorema, as quais são deriváveis em G.
Linguagens e
2 L(G) ⊆ L(G L ).
gramáticas
regulares
Linguagens
livres de
contexto
Gramáticas livres de
contexto
Derivações
Ambiguidade
Formas normais
Autômatos
com pilha e
GLC’s
Máquinas de
Turing
H. Longo
Introdução
Fundamentos Demonstração.
matemáticos
Alfabetos e
1 L(G L ) ⊆ L(G).
linguagens
As derivações em G L usam as regras de G e aquelas criadas pela condição 3
Autômatos
finitos
do teorema, as quais são deriváveis em G.
Linguagens e
2 L(G) ⊆ L(G L ).
gramáticas
regulares Mostrar que toda cadeia não vazia, derivável em G a partir de uma variável A,
Linguagens também é derivável em G L a partir de A.
livres de
contexto
Gramáticas livres de
contexto
Derivações
Ambiguidade
Formas normais
Autômatos
com pilha e
GLC’s
Máquinas de
Turing
H. Longo
Introdução
Fundamentos Demonstração.
matemáticos
Alfabetos e
1 L(G L ) ⊆ L(G).
linguagens
As derivações em G L usam as regras de G e aquelas criadas pela condição 3
Autômatos
finitos
do teorema, as quais são deriváveis em G.
Linguagens e
2 L(G) ⊆ L(G L ).
gramáticas
regulares Mostrar que toda cadeia não vazia, derivável em G a partir de uma variável A,
Linguagens também é derivável em G L a partir de A.
n ∗
livres de
contexto Se A =⇒ w, com w ∈ Σ+ , então A =⇒ w.
G GL
Gramáticas livres de
contexto
Derivações
Indução em n.
Ambiguidade
Formas normais
Autômatos
com pilha e
GLC’s
Máquinas de
Turing
H. Longo
Introdução
Demonstração.
n ∗
Fundamentos
matemáticos Se A =⇒ w, com w ∈ Σ+ , então A =⇒ w.
G GL
Alfabetos e
linguagens Base:
Autômatos Se n = 1, então (A → w) ∈ P e, como w , ε, (A → w) ∈ PL .
finitos
Linguagens e
gramáticas
Hipótese Indutiva:
regulares Toda cadeia de terminais derivável a partir de A em G, em no máximo n
Linguagens
livres de
passos, também é derivável em G L .
contexto
Gramáticas livres de
contexto
Derivações
Ambiguidade
Formas normais
Autômatos
com pilha e
GLC’s
Máquinas de
Turing
H. Longo
Introdução
Demonstração.
n ∗
Fundamentos
matemáticos Se A =⇒ w, com w ∈ Σ+ , então A =⇒ w.
G GL
Alfabetos e
linguagens Passo Indutivo:
n+1
Autômatos Seja A =⇒ w uma derivação de uma cadeia de terminais. Então:
finitos G
Linguagens e
n
gramáticas
regulares A =⇒ w1 A1 w2 A2 . . .wk Ak wk+1 =⇒ w,
G
Linguagens
Autômatos
com pilha e
onde Ai deriva pi em no máximo n passos.
GLC’s
Máquinas de
Turing
H. Longo
Introdução
Demonstração.
n ∗
Fundamentos
matemáticos Se A =⇒ w, com w ∈ Σ+ , então A =⇒ w.
G GL
Alfabetos e
linguagens Passo Indutivo:
∗
Autômatos Por H.I. Ai =⇒ pi , para cada pi ∈ Σ+ . Se pi = ε, então algum A j é uma
finitos GL
Linguagens
A → w1 A1 w2 A2 . . .wk Ak wk+1 ,
livres de
contexto
Gramáticas livres de
contexto
na qual cada variável que deriva a cadeia vazia é excluída.
Derivações
Ambiguidade
Para se derivar w em G L , primeiro aplica-se essa nova regra e então
Formas normais
deriva-se cada pi usando-se as derivações fornecidas pela H.I.
Autômatos
com pilha e
GLC’s
Máquinas de
Turing
H. Longo
Linguagens
livres de
contexto
Gramáticas livres de
contexto
Derivações
Ambiguidade
Formas normais
Autômatos
com pilha e
GLC’s
Máquinas de
Turing
H. Longo
Autômatos
com pilha e
GLC’s
Máquinas de
Turing
H. Longo
Autômatos
com pilha e
GLC’s
Máquinas de
Turing
H. Longo
Autômatos
com pilha e
GLC’s
Máquinas de
Turing
H. Longo
Máquinas de
Turing
H. Longo
Introdução
Exemplo 6.56
Fundamentos
matemáticos
S → ABC
A → aA | ε
Alfabetos e
linguagens
G:
Autômatos
B → bB | ε
C → cC | ε
finitos
Linguagens e
gramáticas
regulares
Linguagens
livres de
contexto
Gramáticas livres de
contexto
Derivações
Ambiguidade
Formas normais
Autômatos
com pilha e
GLC’s
Máquinas de
Turing
H. Longo
Introdução
Exemplo 6.56
Fundamentos
matemáticos
S → ABC
A → aA | ε
Alfabetos e
linguagens
G:
Autômatos
B → bB | ε
C → cC | ε
finitos
Linguagens e
gramáticas L(G) = a∗ b∗ c∗
regulares
Linguagens
livres de
contexto
Gramáticas livres de
contexto
Derivações
Ambiguidade
Formas normais
Autômatos
com pilha e
GLC’s
Máquinas de
Turing
H. Longo
Introdução
Exemplo 6.56
Fundamentos
matemáticos
S → ABC
A → aA | ε
Alfabetos e
linguagens
G:
Autômatos
B → bB | ε
C → cC | ε
finitos
Linguagens e
gramáticas L(G) = a∗ b∗ c∗
regulares
Linguagens Vε = {S , A, B, C}
livres de
contexto
Gramáticas livres de
contexto
Derivações
Ambiguidade
Formas normais
Autômatos
com pilha e
GLC’s
Máquinas de
Turing
H. Longo
Introdução
Exemplo 6.56
Fundamentos
matemáticos
S → ABC
A → aA | ε
Alfabetos e
linguagens
G:
Autômatos
B → bB | ε
C → cC | ε
finitos
Linguagens e
gramáticas L(G) = a∗ b∗ c∗
regulares
Linguagens Vε = {S , A, B, C}
livres de
S → ABC | AB | BC | AC | A | B | C | ε
contexto
Gramáticas livres de
contexto A → aA | a
Derivações GL :
Ambiguidade
B → bB | b
Formas normais
C → cC | c
Autômatos
com pilha e
GLC’s
Máquinas de
Turing
H. Longo
Introdução
Fundamentos
matemáticos
Definição 6.57
Alfabetos e Regras de derivação simples são da forma A → B, onde A, B ∈ V .
linguagens
Autômatos
finitos
Linguagens e
gramáticas
regulares
Linguagens
livres de
contexto
Gramáticas livres de
contexto
Derivações
Ambiguidade
Formas normais
Autômatos
com pilha e
GLC’s
Máquinas de
Turing
H. Longo
Introdução
Fundamentos
matemáticos
Definição 6.57
Alfabetos e Regras de derivação simples são da forma A → B, onde A, B ∈ V .
linguagens
Autômatos
finitos Observações
Linguagens e
gramáticas A aplicação de uma regra A → B não aumenta forma sentecial derivada ou
regulares
acrescenta terminais à mesma.
Linguagens
livres de
contexto
A remoção de regras simples requer a adição de novas regras que permitam
Gramáticas livres de
contexto
a geração das mesmas cadeias.
Derivações
Ambiguidade Uma regra simples apenas renomeia uma variável.
Formas normais
Autômatos
com pilha e
GLC’s
Máquinas de
Turing
H. Longo
Introdução
Linguagens e
gramáticas
regulares
Linguagens
livres de
contexto
Gramáticas livres de
contexto
Derivações
Ambiguidade
Formas normais
Autômatos
com pilha e
GLC’s
Máquinas de
Turing
H. Longo
Introdução
Linguagens
livres de
contexto
Gramáticas livres de
contexto
Derivações
Ambiguidade
Formas normais
Autômatos
com pilha e
GLC’s
Máquinas de
Turing
H. Longo
Introdução
Autômatos
com pilha e
GLC’s
Máquinas de
Turing
H. Longo
Introdução
Autômatos
com pilha e
GLC’s
Máquinas de
Turing
H. Longo
Introdução
Fundamentos
matemáticos
Alfabetos e
Definição 6.59
linguagens ∗
Autômatos
Uma derivação A =⇒ C constituída apenas de regras de derivação simples é
finitos
chamada de cadeia de derivação.
Linguagens e
gramáticas
regulares
Linguagens
livres de
contexto
Gramáticas livres de
contexto
Derivações
Ambiguidade
Formas normais
Autômatos
com pilha e
GLC’s
Máquinas de
Turing
H. Longo
Introdução
Fundamentos
matemáticos
Alfabetos e
Definição 6.59
linguagens ∗
Autômatos
Uma derivação A =⇒ C constituída apenas de regras de derivação simples é
finitos
chamada de cadeia de derivação.
Linguagens e
gramáticas
regulares
Dúvida?
Linguagens
livres de Como determinar as variáveis que podem ser derivadas, com uma cadeia de
contexto
Gramáticas livres de
contexto
derivação, a partir de uma dada variável?
Derivações
Ambiguidade
Formas normais
Autômatos
com pilha e
GLC’s
Máquinas de
Turing
H. Longo
Introdução
Fundamentos
Algoritmo 9: Cadeia de derivação
matemáticos
Entrada: GLC (V, Σ, P, S ) essencialmente não contraível e A ∈ V .
Alfabetos e
Saída: Conjunto de variáveis de cadeias de derivação de A.
linguagens
Autômatos
1 CADEIA(A) ← {A};
finitos 2 AUX ← ∅;
Linguagens e
3 repita
gramáticas 4 NOV AS ← CADEIA(A) − AUX ;
regulares 5 AUX ← CADEIA(A);
Linguagens 6 para cada (B ∈ NOV AS ) faça
livres de 7 para cada (B → C) faça
contexto
8 CADEIA(A) ← CADEIA(A) ∪ {C};
Gramáticas livres de
contexto
Derivações
Ambiguidade 9 até (AUX = CADEIA(A));
Formas normais
10 retorna (CADEIA(A));
Autômatos
com pilha e
GLC’s
Máquinas de
Turing
H. Longo
Introdução
Fundamentos
matemáticos
Autômatos
Dada uma GLC essencialmente não contraível, o algoritmo 9 gera o conjunto
finitos de variáveis que podem ser derivadas, com cadeias de derivação, a partir de
Linguagens e
gramáticas
uma dada variável.
regulares
Linguagens
livres de
contexto
Gramáticas livres de
contexto
Derivações
Ambiguidade
Formas normais
Autômatos
com pilha e
GLC’s
Máquinas de
Turing
H. Longo
Introdução
Fundamentos
matemáticos
Autômatos
Dada uma GLC essencialmente não contraível, o algoritmo 9 gera o conjunto
finitos de variáveis que podem ser derivadas, com cadeias de derivação, a partir de
Linguagens e
gramáticas
uma dada variável.
regulares
Linguagens
livres de
Demonstração.
contexto
Gramáticas livres de
Exercício
contexto
Derivações
Ambiguidade
Formas normais
Autômatos
com pilha e
GLC’s
Máquinas de
Turing
H. Longo
Teorema 6.61
Introdução
Linguagens e
gramáticas
regulares
Linguagens
livres de
contexto
Gramáticas livres de
contexto
Derivações
Ambiguidade
Formas normais
Autômatos
com pilha e
GLC’s
Máquinas de
Turing
H. Longo
Teorema 6.61
Introdução
Linguagens e
gramáticas
regulares
Demonstração.
Linguagens
livres de
contexto
2 GC não contém regras de derivação simples.
Gramáticas livres de
contexto
(A → w) ∈ PC se existe B ∈ V e w tais que:
Derivações 1 B ∈ CADEIA(A),
Ambiguidade
Formas normais
2 (B → w) ∈ P,
Autômatos
3 w < V.
com pilha e
GLC’s
Máquinas de
Turing
H. Longo
Teorema 6.61
Introdução
Linguagens e
gramáticas
regulares
Demonstração.
Linguagens
livres de
contexto
2 G0 não contém regras de derivação simples.
Gramáticas livres de
contexto
As regras de derivação de A em GC são construídas a partir dos conjuntos
Derivações CADEIA(A) e P.
Ambiguidade
Formas normais A terceira condição garante que PC não contém regras de derivação simples.
Autômatos
com pilha e
GLC’s
Máquinas de
Turing
H. Longo
Teorema 6.61
Introdução
Linguagens e
gramáticas
regulares
Demonstração.
Linguagens
livres de
contexto
1 L(GC ) ⊆ L(G):
Gramáticas livres de
contexto
O Lema 6.51 garante que toda cadeia derivável em GC também é derivável em
Derivações G.
Ambiguidade
Formas normais
Autômatos
com pilha e
GLC’s
Máquinas de
Turing
H. Longo
Teorema 6.61
Introdução
Linguagens e
gramáticas
regulares
Demonstração.
Linguagens
livres de
contexto
2 L(G) ⊆ L(GC ):
∗ ∗ ∗ ∗
Seja derivação S =⇒ uAv =⇒ uBv =⇒ upv =⇒ w, onde w ∈ L(G) e A =⇒ B é uma
Gramáticas livres de
contexto
Derivações G G G G G
Ambiguidade seqüência maximal de regras de derivação simples.
Formas normais
Autômatos
com pilha e
GLC’s
Máquinas de
Turing
H. Longo
Teorema 6.61
Introdução
Linguagens e
gramáticas
regulares
Demonstração.
Linguagens
livres de
contexto
1 L(G) ⊆ L(GC ):
∗
A regra A → p pode substituir a cadeia A =⇒ B.
Gramáticas livres de
contexto
Derivações G
Ambiguidade O uso sucessivo desta técnica produz uma derivação válida de w em GC .
Formas normais
Autômatos
com pilha e
GLC’s
Máquinas de
Turing
H. Longo
Introdução
Exemplo 6.62
S → aS b | A ,
Fundamentos
matemáticos
A → aA | B ,
G:
Alfabetos e
linguagens
B → bBc | bc
Autômatos
finitos
Linguagens e
gramáticas
regulares
Linguagens
livres de
contexto
Gramáticas livres de
contexto
Derivações
Ambiguidade
Formas normais
Autômatos
com pilha e
GLC’s
Máquinas de
Turing
H. Longo
Introdução
Exemplo 6.62
S → aS b | A ,
Fundamentos
matemáticos
A → aA | B ,
G:
Alfabetos e
linguagens
B → bBc | bc
Autômatos
finitos
Autômatos
com pilha e
GLC’s
Máquinas de
Turing
H. Longo
Introdução
Exemplo 6.62
S → aS b | A ,
Fundamentos
matemáticos
A → aA | B ,
G:
Alfabetos e
linguagens
B → bBc | bc
Autômatos
finitos
S → aS b | aA | bBc | bc ,
Derivações
Ambiguidade
A → aA | bBc | bc ,
Formas normais
GC :
Autômatos
com pilha e
B → bBc | bc
GLC’s
Máquinas de
Turing
H. Longo
Exemplo 6.63
Introdução
S → ACA ,
Fundamentos
matemáticos
A → aAa | B | C ,
G:
Alfabetos e
linguagens
B → bB | b ,
C → cC | ε
Autômatos
finitos
Linguagens e
gramáticas
regulares
Linguagens
livres de
contexto
Gramáticas livres de
contexto
Derivações
Ambiguidade
Formas normais
Autômatos
com pilha e
GLC’s
Máquinas de
Turing
H. Longo
Exemplo 6.63
Introdução
S → ACA , S → ACA | CA | AA | AC | A | C | ε ,
Fundamentos
matemáticos
A → aAa | B | C , A → aAa | aa | B | C ,
G: GL :
Alfabetos e
linguagens
B → bB | b ,
B → bB | b ,
C → cC | ε
C → cC | c
Autômatos
finitos
Linguagens e
gramáticas
regulares
Linguagens
livres de
contexto
Gramáticas livres de
contexto
Derivações
Ambiguidade
Formas normais
Autômatos
com pilha e
GLC’s
Máquinas de
Turing
H. Longo
Exemplo 6.63
Introdução
S → ACA , S → ACA | CA | AA | AC | A | C | ε ,
Fundamentos
matemáticos
A → aAa | B | C , A → aAa | aa | B | C ,
G: GL :
Alfabetos e
linguagens
B → bB | b ,
B → bB | b ,
C → cC | ε
C → cC | c
Autômatos
finitos
Autômatos
com pilha e
GLC’s
Máquinas de
Turing
H. Longo
Exemplo 6.63
Introdução
S → ACA , S → ACA | CA | AA | AC | A | C | ε ,
Fundamentos
matemáticos
A → aAa | B | C , A → aAa | aa | B | C ,
G: GL :
Alfabetos e
linguagens
B → bB | b ,
B → bB | b ,
C → cC | ε
C → cC | c
Autômatos
finitos
S → ACA | CA | AA | AC | aAa | aa | bB | b | cC | c | ε ,
Derivações
Ambiguidade
A → aAa | aa | bB | b | cC | c ,
Formas normais
GC :
Autômatos
B → bB | b
com pilha e
C → cC | c
GLC’s
Máquinas de
Turing
H. Longo
Introdução
A remoção de regras de derivação simples aumenta o número de regras na
Fundamentos
matemáticos gramática, mas reduz o comprimento das derivações.
Alfabetos e
linguagens
Autômatos
finitos
Linguagens e
gramáticas
regulares
Linguagens
livres de
contexto
Gramáticas livres de
contexto
Derivações
Ambiguidade
Formas normais
Autômatos
com pilha e
GLC’s
Máquinas de
Turing
H. Longo
Introdução
A remoção de regras de derivação simples aumenta o número de regras na
Fundamentos
matemáticos gramática, mas reduz o comprimento das derivações.
Alfabetos e
linguagens
A eliminação de regras de derivação simples de uma gramática
Autômatos
essencialmente não contraível preserva esta propriedade.
finitos
Linguagens e
gramáticas
regulares
Linguagens
livres de
contexto
Gramáticas livres de
contexto
Derivações
Ambiguidade
Formas normais
Autômatos
com pilha e
GLC’s
Máquinas de
Turing
H. Longo
Introdução
A remoção de regras de derivação simples aumenta o número de regras na
Fundamentos
matemáticos gramática, mas reduz o comprimento das derivações.
Alfabetos e
linguagens
A eliminação de regras de derivação simples de uma gramática
Autômatos
essencialmente não contraível preserva esta propriedade.
finitos
Linguagens e
gramáticas Definição 6.64
regulares
Linguagens
Dada uma GLC (V, Σ, P, S ) essencialmente não contraível e sem regras de
livres de derivação simples, então P é formado por regras do tipo:
contexto
Gramáticas livres de 1 S →ε
contexto
Derivações 2 A→a
Ambiguidade
Formas normais
3 A → w,
Autômatos onde w ∈ (V ∪ Σ)+ é de comprimento pelo menos 2.
com pilha e
GLC’s
Máquinas de
Turing
H. Longo
Introdução
Definição 6.65
Fundamentos
matemáticos Dada uma GLC (V, Σ, P, S ), um símbolo x ∈ (V ∪ Σ) é útil se existe uma
Alfabetos e
linguagens
derivação
∗ ∗
Autômatos S =⇒ uxv =⇒ w,
finitos G G
Linguagens
livres de
contexto
Gramáticas livres de
contexto
Derivações
Ambiguidade
Formas normais
Autômatos
com pilha e
GLC’s
Máquinas de
Turing
H. Longo
Introdução
Definição 6.65
Fundamentos
matemáticos Dada uma GLC (V, Σ, P, S ), um símbolo x ∈ (V ∪ Σ) é útil se existe uma
Alfabetos e
linguagens
derivação
∗ ∗
Autômatos S =⇒ uxv =⇒ w,
finitos G G
Linguagens
livres de Um símbolo terminal é útil se ocorre em uma cadeia da linguagem de G.
contexto
Gramáticas livres de
contexto
Derivações
Ambiguidade
Formas normais
Autômatos
com pilha e
GLC’s
Máquinas de
Turing
H. Longo
Introdução
Definição 6.65
Fundamentos
matemáticos Dada uma GLC (V, Σ, P, S ), um símbolo x ∈ (V ∪ Σ) é útil se existe uma
Alfabetos e
linguagens
derivação
∗ ∗
Autômatos S =⇒ uxv =⇒ w,
finitos G G
Linguagens
livres de Um símbolo terminal é útil se ocorre em uma cadeia da linguagem de G.
contexto
Gramáticas livres de Uma variável é definida como útil se ocorre em uma derivação que começa
contexto
Derivações na variável inicial e gera uma cadeia de terminais.
Ambiguidade
Formas normais Variável deve ocorrer em uma forma sentencial da gramática.
Autômatos Variável deve derivar uma cadeia de terminais.
com pilha e
GLC’s
Máquinas de
Turing
H. Longo
Introdução
Fundamentos
matemáticos
Exemplo 6.66
Alfabetos e
linguagens
S → aS | A ,
Autômatos
A → a | bB ,
finitos
B → b | dD ,
G1 :
Linguagens e
C → cC | c ,
gramáticas
regulares
D → dD
Linguagens
livres de
contexto
Gramáticas livres de
contexto
Derivações
Ambiguidade
Formas normais
Autômatos
com pilha e
GLC’s
Máquinas de
Turing
H. Longo
Introdução
Fundamentos
matemáticos
Exemplo 6.66
Alfabetos e
linguagens
S → aS | A ,
Autômatos
A → a | bB ,
finitos
B → b | dD ,
G1 :
Linguagens e
C → cC | c ,
gramáticas
regulares
D → dD
Linguagens
livres de L(G) = a∗ (a ∪ bb)
contexto
Gramáticas livres de
contexto
Derivações
Ambiguidade
Formas normais
Autômatos
com pilha e
GLC’s
Máquinas de
Turing
H. Longo
Introdução
Fundamentos
matemáticos
Exemplo 6.66
Alfabetos e
linguagens
S → aS | A , S → AC | BS | B ,
Autômatos
A → a | bB , A → aA | aF ,
finitos
B → b | dD , B → CF | b ,
G1 :
Linguagens e
C → cC | c , C → cC | D ,
G1 :
gramáticas
D → aD | BD | C ,
regulares
D → dD
E → aA | BS A ,
Linguagens
L(G) = a∗ (a ∪ bb)
livres de
F → bB | b
contexto
Gramáticas livres de
contexto
Derivações
Ambiguidade
Formas normais
Autômatos
com pilha e
GLC’s
Máquinas de
Turing
H. Longo
Introdução
Fundamentos
matemáticos
Exemplo 6.66
Alfabetos e
linguagens
S → aS | A , S → AC | BS | B ,
Autômatos
A → a | bB , A → aA | aF ,
finitos
B → b | dD , B → CF | b ,
G1 :
Linguagens e
C → cC | c , C → cC | D ,
G1 :
gramáticas
D → aD | BD | C ,
regulares
D → dD
E → aA | BS A ,
Linguagens
L(G) = a∗ (a ∪ bb)
livres de
F → bB | b
contexto
Gramáticas livres de
contexto L(G) = b+
Derivações
Ambiguidade
Formas normais
Autômatos
com pilha e
GLC’s
Máquinas de
Turing
H. Longo
Definição 6.67 (Símbolo Estéril)
Introdução Não gera qualquer cadeia de terminais de uma sentença.
Fundamentos
matemáticos
Autômatos
Não aparece em nenhuma forma sentencial da gramática.
finitos
Linguagens e
gramáticas Definição 6.69 (Simbolos Alcançáveis)
regulares
Símbolos deriváveis a partir do símbolo inicial da gramática.
Linguagens
livres de
contexto
Gramáticas livres de
contexto
Definição 6.70 (Um símbolo Inútil)
Derivações
Ambiguidade Símbolo estéril ou inalcançável.
Formas normais
Autômatos
com pilha e
GLC’s
Máquinas de
Turing
H. Longo
Definição 6.67 (Símbolo Estéril)
Introdução Não gera qualquer cadeia de terminais de uma sentença.
Fundamentos
matemáticos
Autômatos
Não aparece em nenhuma forma sentencial da gramática.
finitos
Linguagens e
gramáticas Definição 6.69 (Simbolos Alcançáveis)
regulares
Símbolos deriváveis a partir do símbolo inicial da gramática.
Linguagens
livres de
contexto
Gramáticas livres de
contexto
Definição 6.70 (Um símbolo Inútil)
Derivações
Ambiguidade Símbolo estéril ou inalcançável.
Formas normais
Autômatos
com pilha e Definição 6.71
GLC’s
H. Longo
Introdução
Fundamentos
matemáticos Algoritmo 10: Busca VΣ+
Alfabetos e Entrada: GLC (V, Σ, P, S ).
linguagens
Saída: Conjunto VΣ+ .
Autômatos
finitos 1 VΣ+ ← {A | (A → w) ∈ P, com w ∈ Σ∗ };
2 repita
Linguagens e
gramáticas
3 AUX ← VΣ+ ;
regulares 4 para cada (A ∈ V) faça
Linguagens
5 se (∃ A → w e w ∈ (AUX ∪ Σ)∗ ) então
livres de 6 VΣ+ ← VΣ+ ∪ {A};
contexto
Gramáticas livres de
contexto 7 até (AUX = VΣ+ );
Derivações
Ambiguidade 8 retorna (VΣ+ );
Formas normais
Autômatos
com pilha e
GLC’s
Máquinas de
Turing
H. Longo
Linguagens e
gramáticas
regulares
Linguagens
livres de
contexto
Gramáticas livres de
contexto
Derivações
Ambiguidade
Formas normais
Autômatos
com pilha e
GLC’s
Máquinas de
Turing
H. Longo
Linguagens e
gramáticas
regulares
Demonstração.
Linguagens
livres de
contexto
VT = VΣ+ .
Gramáticas livres de
contexto PT = {A → w | (A → w) ∈ P, A ∈ VΣ+ e w ∈ (VΣ+ ∪ Σ)∗ }.
Derivações
Ambiguidade
Formas normais
ΣT = {a ∈ Σ | (A → uav) ∈ P, A ∈ VT e u, v ∈ (VT ∪ Σ)∗ }.
Autômatos
com pilha e
GLC’s
Máquinas de
Turing
H. Longo
Linguagens e
gramáticas
regulares
Demonstração.
Linguagens
livres de
contexto
L(GT ) ⊆ L(G):
Gramáticas livres de
contexto
Como PT ⊆ P, qualquer derivação em GT também é derivação em G.
Derivações
Ambiguidade
Formas normais
Autômatos
com pilha e
GLC’s
Máquinas de
Turing
H. Longo
Linguagens e
gramáticas
regulares
Demonstração.
Linguagens
livres de
contexto
L(G) ⊆ L(GT ):
Gramáticas livres de
contexto
A remoção de regras de derivação que contêm variáveis em V − VΣ∗ não afeta
Derivações
Ambiguidade
o conjunto de cadeias de terminais geradas.
Formas normais
Autômatos
com pilha e
GLC’s
Máquinas de
Turing
H. Longo
Linguagens e
gramáticas
regulares
Demonstração.
Linguagens
livres de
contexto
L(G) ⊆ L(GT ):
∗
Gramáticas livres de
contexto
Seja S =⇒ w. Se esta derivação não é válida em GT , então uma variável de
G
Derivações
Ambiguidade V − VΣ+ ocorre numa forma sentencial intermediária, a qual não gera uma
Formas normais
cadeia de terminais.
Autômatos
com pilha e
GLC’s
Máquinas de
Turing
H. Longo
Linguagens e
gramáticas
regulares
Demonstração.
Linguagens
livres de
contexto
L(G) ⊆ L(GT ):
Gramáticas livres de
contexto
Logo, todas as regras de derivação usadas estão em PT e w ∈ L(G).
Derivações
Ambiguidade
Formas normais
Autômatos
com pilha e
GLC’s
Máquinas de
Turing
H. Longo
Autômatos
com pilha e
GLC’s
Máquinas de
Turing
H. Longo
Autômatos
com pilha e
GLC’s
Máquinas de
Turing
H. Longo
Máquinas de
Turing
H. Longo
Introdução
Fundamentos
Algoritmo 11: Busca variáveis alcançáveis
matemáticos
Entrada: GLC (V, Σ, P, S ).
Alfabetos e
Saída: Conjunto VS .
linguagens
Autômatos
1 VS ← {S };
finitos 2 AUX ← ∅;
Linguagens e
3 repita
gramáticas 4 NOV AS ← VS − AUX ;
regulares 5 AUX ← VS ;
Linguagens 6 para cada (A ∈ NOV AS ) faça
livres de 7 para cada (A → w1 A1 w2 A2 . . .wk Ak wk+1 ) ∈ P faça
contexto
8 VS ← VS ∪ {A1 , A2 , . . . , Ak };
Gramáticas livres de
contexto
Derivações
Ambiguidade 9 até (AUX = VS );
Formas normais
10 retorna (VS );
Autômatos
com pilha e
GLC’s
Máquinas de
Turing
H. Longo
Introdução
Exemplo 6.74
Fundamentos
S → AC | BS | B ,
matemáticos
A → aA | aF ,
Alfabetos e
B → CF | b ,
linguagens
C → cC | D ,
G1 :
Autômatos
D → aD | BD | C ,
finitos
E → aA | BS A ,
Linguagens e
gramáticas
F → bB | b
regulares
Linguagens
livres de
contexto
Gramáticas livres de
contexto
Derivações
Ambiguidade
Formas normais
Autômatos
com pilha e
GLC’s
Máquinas de
Turing
H. Longo
Introdução
Exemplo 6.74
Fundamentos
S → AC | BS | B , S → BS | B ,
matemáticos
A → aA | aF , A → aA | aF ,
Alfabetos e
B → CF | b , B → b,
GT :
linguagens
C → cC | D , E → aA | BS A ,
G1 :
Autômatos
D → aD | BD | C ,
finitos
F → bB | b
E → aA | BS A ,
Linguagens e
gramáticas
F → bB | b
regulares
Linguagens
livres de
contexto
Gramáticas livres de
contexto
Derivações
Ambiguidade
Formas normais
Autômatos
com pilha e
GLC’s
Máquinas de
Turing
H. Longo
Introdução
Exemplo 6.74
Fundamentos
S → AC | BS | B , S → BS | B ,
matemáticos
A → aA | aF , A → aA | aF ,
Alfabetos e
B → CF | b , B → b,
GT :
linguagens
C → cC | D , E → aA | BS A ,
G1 :
Autômatos
D → aD | BD | C ,
finitos
F → bB | b
E → aA | BS A ,
Linguagens e
gramáticas
F → bB | b
regulares
Linguagens
livres de
Iteração VS AUX NOV AS
contexto 0 {S } ∅
{S , B}
Gramáticas livres de
contexto 1 {S } {S }
Derivações
Ambiguidade
2 {S , B} {S , B} {B}
Formas normais
Autômatos
com pilha e
GLC’s
Máquinas de
Turing
H. Longo
Introdução
Exemplo 6.74
Fundamentos
S → AC | BS | B , S → BS | B ,
matemáticos
A → aA | aF , A → aA | aF ,
Alfabetos e
B → CF | b , B → b,
GT :
linguagens
C → cC | D , E → aA | BS A ,
G1 :
Autômatos
D → aD | BD | C ,
finitos
F → bB | b
E → aA | BS A ,
Linguagens e
gramáticas
F → bB | b
regulares
Linguagens
livres de
Iteração VS AUX NOV AS
contexto 0 {S } ∅
{S , B}
Gramáticas livres de
contexto 1 {S } {S }
Derivações
Ambiguidade
2 {S , B} {S , B} {B}
Formas normais
S → BS | B ,
( )
Autômatos
com pilha e GU :
GLC’s
B→b
Máquinas de
Turing
H. Longo
Lema 6.75
Introdução
Fundamentos
Dada uma gramática G = (V, Σ, P, S ), o algoritmo 11 gera o conjunto de
matemáticos variáveis alcançáveis a partir de S .
Alfabetos e
linguagens
Autômatos
finitos
Linguagens e
gramáticas
regulares
Linguagens
livres de
contexto
Gramáticas livres de
contexto
Derivações
Ambiguidade
Formas normais
Autômatos
com pilha e
GLC’s
Máquinas de
Turing
H. Longo
Lema 6.75
Introdução
Fundamentos
Dada uma gramática G = (V, Σ, P, S ), o algoritmo 11 gera o conjunto de
matemáticos variáveis alcançáveis a partir de S .
Alfabetos e
linguagens
Autômatos Demonstração.
finitos
H. Longo
Lema 6.75
Introdução
Fundamentos
Dada uma gramática G = (V, Σ, P, S ), o algoritmo 11 gera o conjunto de
matemáticos variáveis alcançáveis a partir de S .
Alfabetos e
linguagens
Autômatos Demonstração.
finitos
Máquinas de
Turing
H. Longo
Lema 6.75
Introdução
Fundamentos
Dada uma gramática G = (V, Σ, P, S ), o algoritmo 11 gera o conjunto de
matemáticos variáveis alcançáveis a partir de S .
Alfabetos e
linguagens
Autômatos Demonstração.
finitos
H. Longo
Lema 6.75
Introdução
Fundamentos
Dada uma gramática G = (V, Σ, P, S ), o algoritmo 11 gera o conjunto de
matemáticos variáveis alcançáveis a partir de S .
Alfabetos e
linguagens
Autômatos Demonstração.
finitos
Autômatos
com pilha e
GLC’s
Máquinas de
Turing
H. Longo
Alfabetos e
linguagens 1 L(GU ) = L(G),
Autômatos 2 A gramática GU não contém símbolos inúteis.
finitos
Linguagens e
gramáticas
regulares
Linguagens
livres de
contexto
Gramáticas livres de
contexto
Derivações
Ambiguidade
Formas normais
Autômatos
com pilha e
GLC’s
Máquinas de
Turing
H. Longo
Alfabetos e
linguagens 1 L(GU ) = L(G),
Autômatos 2 A gramática GU não contém símbolos inúteis.
finitos
Linguagens e
gramáticas
regulares
Demonstração.
Linguagens
livres de
contexto
VU = VS
PU = {A → w | (A → w) ∈ P, A ∈ VS e w ∈ (VS ∪ Σ)∗ }
Gramáticas livres de
contexto
Derivações
Ambiguidade
Formas normais
ΣU = {a ∈ Σ | (A → uav) ∈ P, A ∈ VU e u, v ∈ (VU ∪ Σ)∗ }
Autômatos
com pilha e
GLC’s
Máquinas de
Turing
H. Longo
Alfabetos e
linguagens 1 L(GU ) = L(G),
Autômatos 2 A gramática GU não contém símbolos inúteis.
finitos
Linguagens e
gramáticas
regulares
Demonstração.
Linguagens
livres de
contexto
L(GU ) = L(GT ):
Gramáticas livres de
contexto
Mostrar que toda cadeia derivável em GT também é derivável em GU (Se
Derivações
Ambiguidade
w ∈ L(GT ), toda variável que ocorre na derivação de w é alcançavel e toda
Formas normais
regra de derivação pertence à PU ).
Autômatos
com pilha e
GLC’s
Máquinas de
Turing
H. Longo
Introdução
Fundamentos
matemáticos
Alfabetos e
linguagens
A eliminação de símbolos inúteis deve ser feita em duas etapas:
Autômatos
finitos 1 Remoção de variáveis que não geram cadeias de terminais, e
Linguagens e 2 Remoção de variáveis que não são deriváveis a partir do símbolo inicial.
gramáticas
regulares
Linguagens
livres de
contexto
Gramáticas livres de
contexto
Derivações
Ambiguidade
Formas normais
Autômatos
com pilha e
GLC’s
Máquinas de
Turing
H. Longo
Introdução
Fundamentos
matemáticos
Alfabetos e
linguagens
A eliminação de símbolos inúteis deve ser feita em duas etapas:
Autômatos
finitos 1 Remoção de variáveis que não geram cadeias de terminais, e
Linguagens e 2 Remoção de variáveis que não são deriváveis a partir do símbolo inicial.
gramáticas
regulares
Linguagens A inversão dessas etapas pode não remover todos os símbolos inúteis.
livres de
contexto
Gramáticas livres de
contexto
Derivações
Ambiguidade
Formas normais
Autômatos
com pilha e
GLC’s
Máquinas de
Turing
H. Longo
Introdução
Exemplo 6.77
Fundamentos
S → a | AB ,
( )
matemáticos
Seja a GLC G :
Alfabetos e
linguagens
A→b
Autômatos
finitos
Linguagens e
gramáticas
regulares
Linguagens
livres de
contexto
Gramáticas livres de
contexto
Derivações
Ambiguidade
Formas normais
Autômatos
com pilha e
GLC’s
Máquinas de
Turing
H. Longo
Introdução
Exemplo 6.77
Fundamentos
S → a | AB ,
( )
matemáticos
Seja a GLC G :
Alfabetos e
linguagens
A→b
Autômatos Elimina variáveis que:
finitos
S → a,
( )
Linguagens e 1 não geram cadeias de terminais, G1 :
gramáticas A→b
regulares 2 não são deriváveis a partir de S , G2 : {S → a}
Linguagens
livres de
contexto
Gramáticas livres de
contexto
Derivações
Ambiguidade
Formas normais
Autômatos
com pilha e
GLC’s
Máquinas de
Turing
H. Longo
Introdução
Exemplo 6.77
Fundamentos
S → a | AB ,
( )
matemáticos
Seja a GLC G :
Alfabetos e
linguagens
A→b
Autômatos Elimina variáveis que:
finitos
S → a,
( )
Linguagens e 1 não geram cadeias de terminais, G1 :
gramáticas A→b
regulares 2 não são deriváveis a partir de S , G2 : {S → a}
Linguagens
livres de Elimina variáveis que:
contexto
S → a | AB ,
( )
Gramáticas livres de
contexto
1 não são deriváveis a partir de S , G1 :
Derivações A→b
,
Ambiguidade
( )
S → a
Formas normais
2 não geram cadeias de terminais, G2 :
Autômatos A→b
com pilha e
GLC’s
Máquinas de
Turing
H. Longo
Introdução
Fundamentos
matemáticos
Autômatos
Uma GLC G = (V, Σ, P, S ) está na Forma Normal de Chomsky se cada regra
finitos de derivação tem uma das seguintes formas:
Linguagens e
gramáticas
1 S → ε,
regulares 2 A → a,
Linguagens 3 A → BC ,
livres de
contexto onde B, C ∈ V − {S } e a ∈ Σ.
Gramáticas livres de
contexto
Derivações
Ambiguidade
Formas normais
Autômatos
com pilha e
GLC’s
Máquinas de
Turing
H. Longo
Teorema 6.79
Introdução
Fundamentos
Se G = (V, Σ, P, S ) é uma gramática livre de contexto, então existe um
matemáticos algoritmo para construir uma gramática G0 = (V 0 , Σ, P0 , S 0 ), equivalente a G,
Alfabetos e
linguagens
na Forma Normal de Chomsky.
Autômatos
finitos
Linguagens e
gramáticas
regulares
Linguagens
livres de
contexto
Gramáticas livres de
contexto
Derivações
Ambiguidade
Formas normais
Autômatos
com pilha e
GLC’s
Máquinas de
Turing
H. Longo
Teorema 6.79
Introdução
Fundamentos
Se G = (V, Σ, P, S ) é uma gramática livre de contexto, então existe um
matemáticos algoritmo para construir uma gramática G0 = (V 0 , Σ, P0 , S 0 ), equivalente a G,
Alfabetos e
linguagens
na Forma Normal de Chomsky.
Autômatos
finitos
Demonstração.
Linguagens e
gramáticas Assuma que:
regulares
Linguagens
1 O símbolo inicial S de G não é recursivo,
livres de 2 G não contém outras ε-regras além da regra S → ε,
contexto
Gramáticas livres de
3 G não contém derivações simples,
contexto
Derivações
4 G não contém símbolos inúteis.
Ambiguidade
Formas normais
Autômatos
com pilha e
GLC’s
Máquinas de
Turing
H. Longo
Teorema 6.79
Introdução
Fundamentos
Se G = (V, Σ, P, S ) é uma gramática livre de contexto, então existe um
matemáticos algoritmo para construir uma gramática G0 = (V 0 , Σ, P0 , S 0 ), equivalente a G,
Alfabetos e
linguagens
na Forma Normal de Chomsky.
Autômatos
finitos
Demonstração.
Linguagens e
gramáticas
regulares
Portanto, as regras de derivação em P são da forma:
Linguagens
1 S → ε,
livres de 2 A → a,
contexto
Gramáticas livres de
3 A → w, onde w ∈ ((V ∪ Σ) − {S })∗ e |w| > 1.
contexto
Derivações
Ambiguidade As regras 1 e 2 já estão na forma normal de Chomsky e são inseridas em P0 .
Formas normais
H. Longo
Teorema 6.79
Introdução
Fundamentos
Se G = (V, Σ, P, S ) é uma gramática livre de contexto, então existe um
matemáticos algoritmo para construir uma gramática G0 = (V 0 , Σ, P0 , S 0 ), equivalente a G,
Alfabetos e
linguagens
na Forma Normal de Chomsky.
Autômatos
finitos
Demonstração.
Linguagens e
gramáticas
regulares
A regra A → w pode ser substituída pelas regras:
→ B1 A1 B2 A2 . . .Bk Ak Bk+1
Linguagens
livres de A
contexto
Gramáticas livres de B1 → w1
contexto
Derivações B2 → w2
Ambiguidade
..
Formas normais
.
Autômatos
com pilha e Bk+1 → wk+1
GLC’s
Máquinas de
Turing
H. Longo
Teorema 6.79
Introdução
Fundamentos
Se G = (V, Σ, P, S ) é uma gramática livre de contexto, então existe um
matemáticos algoritmo para construir uma gramática G0 = (V 0 , Σ, P0 , S 0 ), equivalente a G,
Alfabetos e
linguagens
na Forma Normal de Chomsky.
Autômatos
finitos
Demonstração.
Linguagens e
gramáticas
regulares
A regra A → B1 A1 B2 A2 . . .Bk Ak Bk+1 pode agora ser substituída pelas regras:
Linguagens
livres de A → B1 T 1
Ai T 2i , i = 1, . . . , k − 1
contexto
Gramáticas livres de T 2i−1 →
Bi T 2i−1 , i = 2, . . . , k
contexto
Derivações T 2i−2 →
Ambiguidade
Formas normais T 2k−1 → Ak Bk+1
Autômatos
com pilha e
GLC’s
Máquinas de
Turing
H. Longo
Introdução
Fundamentos
matemáticos
Exemplo 6.80
Alfabetos e
linguagens Transformar a gramática abaixo para a Forma Normal de Chomsky:
Autômatos
finitos
AS A | aB ,
S →
B|S,
Linguagens e
G: A →
gramáticas
b|ε
regulares
B →
Linguagens
livres de
contexto
Gramáticas livres de
contexto
Derivações
Ambiguidade
Formas normais
Autômatos
com pilha e
GLC’s
Máquinas de
Turing
H. Longo
Introdução
Fundamentos
matemáticos
Exemplo 6.80
Alfabetos e
linguagens 1 Adicionar uma nova variável inicial:
Autômatos
finitos
S0 → S
Linguagens e S → AS A | aB S → AS A | aB
gramáticas
regulares A → B|S A → B|S
Linguagens B → b|ε B → b|ε
livres de
contexto
Gramáticas livres de
contexto
Derivações
Ambiguidade
Formas normais
Autômatos
com pilha e
GLC’s
Máquinas de
Turing
H. Longo
Introdução
Fundamentos
matemáticos
Exemplo 6.80
Alfabetos e
linguagens 2 Eliminar regras B → ε (esq) e A → ε (dir):
Autômatos
finitos
S0 → S S0 → S
Linguagens e
gramáticas S → AS A | aB | a S → AS A | aB | a | S A | AS | S
regulares A → B|S |ε A → B|S
Linguagens B → b B → b
livres de
contexto
Gramáticas livres de
contexto
Derivações
Ambiguidade
Formas normais
Autômatos
com pilha e
GLC’s
Máquinas de
Turing
H. Longo
Introdução
Fundamentos
matemáticos
Exemplo 6.80
Alfabetos e
linguagens 3 Eliminar regras S → S (esq) e S 0 → S (dir):
Autômatos
finitos
S0 → S S0 → AS A | aB | a | S A | AS
Linguagens e
gramáticas S → AS A | aB | a | S A | AS S → AS A | aB | a | S A | AS
regulares A → B|S A → B|S
Linguagens B → b B → b
livres de
contexto
Gramáticas livres de
contexto
Derivações
Ambiguidade
Formas normais
Autômatos
com pilha e
GLC’s
Máquinas de
Turing
H. Longo
Introdução
Fundamentos
matemáticos
Exemplo 6.80
Alfabetos e
linguagens 4 Eliminar regras A → B (esq) e A → S (dir):
Autômatos
finitos
S0 → AS A | aB | a | S A | AS S0 → AS A | aB | a | S A | AS
Linguagens e
gramáticas S → AS A | aB | a | S A | AS S → AS A | aB | a | S A | AS
regulares A → S |b A → b | AS A | aB | a | S A | AS
Linguagens B → b B → b
livres de
contexto
Gramáticas livres de
contexto
Derivações
Ambiguidade
Formas normais
Autômatos
com pilha e
GLC’s
Máquinas de
Turing
H. Longo
Introdução
Fundamentos
matemáticos
Exemplo 6.80
Alfabetos e
linguagens 5 Converter as demais regras:
Autômatos
finitos
S0 → AA1 | U B | a | S A | AS
Linguagens e
gramáticas S → AA1 | U B | a | S A | AS
regulares A → b | AA1 | U B | a | S A | AS
Linguagens A1 → SA
livres de
contexto
U → a
Gramáticas livres de B → b
contexto
Derivações
Ambiguidade
Formas normais
Autômatos
com pilha e
GLC’s
Máquinas de
Turing
H. Longo
Linguagens
livres de
contexto
Gramáticas livres de
contexto
Derivações
Ambiguidade
Formas normais
Autômatos
com pilha e
GLC’s
Máquinas de
Turing
H. Longo
Máquinas de
Turing
H. Longo
Introdução
Fundamentos
matemáticos
Exemplo 6.82
Alfabetos e
linguagens 1 Transformar: 2 Remoção de derivações simples.
Autômatos
finitos S → A S → A + T | b | (A)
Linguagens e A → A+T |T A → A + T | b | (A)
gramáticas T → b | (A) T → b | (A)
regulares
Linguagens
livres de
contexto
Gramáticas livres de
contexto
Derivações
Ambiguidade
Formas normais
Autômatos
com pilha e
GLC’s
Máquinas de
Turing
H. Longo
Introdução
Fundamentos
matemáticos
Exemplo 6.82
Alfabetos e 3 Lado direito de cada regra com comprimento máximo dois.
linguagens
Autômatos
finitos
S → AY | b | LZ Y representa +T
Z → AR Z representa A)
Linguagens e
gramáticas A → AY | b | LZ L representa (
regulares
T → b | LZ R representa )
Linguagens Y → PT P representa +
livres de
contexto P → +
Gramáticas livres de
contexto
L → (
Derivações R → )
Ambiguidade
Formas normais
Autômatos
com pilha e
GLC’s
Máquinas de
Turing
H. Longo
Autômatos
finitos
Linguagens e
gramáticas
regulares
Linguagens
livres de
contexto
Gramáticas livres de
contexto
Derivações
Ambiguidade
Formas normais
Autômatos
com pilha e
GLC’s
Máquinas de
Turing
H. Longo
Autômatos
finitos Definição 6.84
Uma gramática G = (V, Σ, P, S ) tem recursão à direita se existe A ∈ V tal que
Linguagens e
gramáticas
regulares +
Linguagens
A =⇒ wA, com w ∈ (V ∪ Σ)∗ .
livres de
contexto
Gramáticas livres de
contexto
Derivações
Ambiguidade
Formas normais
Autômatos
com pilha e
GLC’s
Máquinas de
Turing
H. Longo
Autômatos
finitos Definição 6.84
Uma gramática G = (V, Σ, P, S ) tem recursão à direita se existe A ∈ V tal que
Linguagens e
gramáticas
regulares +
Linguagens
A =⇒ wA, com w ∈ (V ∪ Σ)∗ .
livres de
contexto
Gramáticas livres de
contexto
Definição 6.85
Derivações
Ambiguidade A recursão é dita direta se a derivação for em um passo:
Formas normais
G tem recursão direta à esquerda se A → Av ∈ P,
Autômatos
com pilha e G tem recursão direta à direita se A → vA ∈ P.
GLC’s
Máquinas de
Turing
H. Longo
Introdução
Lema 6.86
Fundamentos Se G = (V, Σ, P, S ) é uma GLC e A ∈ V uma variável com recursão à
matemáticos
esquerda, então existe um algoritmo para construir uma gramática
equivalente G0 = (V 0 , Σ, P0 , S 0 ), na qual a variável A não apresenta recursão
Alfabetos e
linguagens
Linguagens e
gramáticas
regulares
Linguagens
livres de
contexto
Gramáticas livres de
contexto
Derivações
Ambiguidade
Formas normais
Autômatos
com pilha e
GLC’s
Máquinas de
Turing
H. Longo
Introdução
Lema 6.86
Fundamentos Se G = (V, Σ, P, S ) é uma GLC e A ∈ V uma variável com recursão à
matemáticos
esquerda, então existe um algoritmo para construir uma gramática
equivalente G0 = (V 0 , Σ, P0 , S 0 ), na qual a variável A não apresenta recursão
Alfabetos e
linguagens
Linguagens e
gramáticas Demonstração.
regulares
Autômatos
com pilha e
GLC’s
Máquinas de
Turing
H. Longo
Introdução
Lema 6.86
Fundamentos Se G = (V, Σ, P, S ) é uma GLC e A ∈ V uma variável com recursão à
matemáticos
esquerda, então existe um algoritmo para construir uma gramática
equivalente G0 = (V 0 , Σ, P0 , S 0 ), na qual a variável A não apresenta recursão
Alfabetos e
linguagens
Linguagens e
gramáticas Demonstração.
regulares
Autômatos
com pilha e
GLC’s
Máquinas de
Turing
H. Longo
Introdução
Lema 6.86
Fundamentos Se G = (V, Σ, P, S ) é uma GLC e A ∈ V uma variável com recursão à
matemáticos
esquerda, então existe um algoritmo para construir uma gramática
equivalente G0 = (V 0 , Σ, P0 , S 0 ), na qual a variável A não apresenta recursão
Alfabetos e
linguagens
Linguagens e
gramáticas Demonstração.
regulares
H. Longo
Introdução
Lema 6.86
Fundamentos Se G = (V, Σ, P, S ) é uma GLC e A ∈ V uma variável com recursão à
matemáticos
esquerda, então existe um algoritmo para construir uma gramática
equivalente G0 = (V 0 , Σ, P0 , S 0 ), na qual a variável A não apresenta recursão
Alfabetos e
linguagens
Linguagens e
gramáticas Demonstração.
regulares
H. Longo
Introdução
Fundamentos
matemáticos
Exemplo 6.87
Alfabetos e
linguagens
G : {A → Aa | Aab | bb | b}
Autômatos
finitos
Linguagens e
gramáticas
regulares
Linguagens
livres de
contexto
Gramáticas livres de
contexto
Derivações
Ambiguidade
Formas normais
Autômatos
com pilha e
GLC’s
Máquinas de
Turing
H. Longo
Introdução
Fundamentos
matemáticos
Exemplo 6.87
Alfabetos e
linguagens
G : {A → Aa | Aab | bb | b}
Autômatos
Linguagens e
gramáticas
regulares
Linguagens
livres de
contexto
Gramáticas livres de
contexto
Derivações
Ambiguidade
Formas normais
Autômatos
com pilha e
GLC’s
Máquinas de
Turing
H. Longo
Introdução
Fundamentos
matemáticos
Exemplo 6.87
Alfabetos e
linguagens
G : {A → Aa | Aab | bb | b}
Autômatos
Linguagens e
gramáticas
A → bb | b | bbZ | bZ ,
( )
regulares
0
G :
Linguagens
livres de
Z → aZ | abZ | a | ab
contexto
Gramáticas livres de
contexto
Derivações
Ambiguidade
Formas normais
Autômatos
com pilha e
GLC’s
Máquinas de
Turing
H. Longo
Introdução
Fundamentos
matemáticos
Exemplo 6.87
Alfabetos e
linguagens
G : {A → Aa | Aab | bb | b}
Autômatos
Linguagens e
gramáticas
A → bb | b | bbZ | bZ ,
( )
regulares
0
G :
Linguagens
livres de
Z → aZ | abZ | a | ab
contexto
Gramáticas livres de
contexto
As regras de derivação de Z geram as cadeias (a ∪ ab)+
Derivações
Ambiguidade
Formas normais
Autômatos
com pilha e
GLC’s
Máquinas de
Turing
H. Longo
Introdução
Fundamentos
matemáticos
Autômatos 1 G : {A → Aa | b}
finitos
Linguagens e
gramáticas
regulares
Linguagens
livres de
contexto
Gramáticas livres de
contexto
Derivações
Ambiguidade
Formas normais
Autômatos
com pilha e
GLC’s
Máquinas de
Turing
H. Longo
Introdução
Fundamentos
matemáticos
Autômatos 1 G : {A → Aa | b}
finitos
Linguagens
livres de
contexto
Gramáticas livres de
contexto
Derivações
Ambiguidade
Formas normais
Autômatos
com pilha e
GLC’s
Máquinas de
Turing
H. Longo
Introdução
Fundamentos
matemáticos
Autômatos 1 G : {A → Aa | b}
finitos
Autômatos
com pilha e
GLC’s
Máquinas de
Turing
H. Longo
Introdução
Fundamentos
matemáticos
Autômatos 1 G : {A → Aa | b} 2 G : {A → Aa | Ab | b | c}
finitos
Autômatos
com pilha e
GLC’s
Máquinas de
Turing
H. Longo
Introdução
Fundamentos
matemáticos
Autômatos 1 G : {A → Aa | b} 2 G : {A → Aa | Ab | b | c}
finitos
Autômatos
com pilha e
GLC’s
Máquinas de
Turing
H. Longo
Introdução
Fundamentos
matemáticos
Autômatos 1 G : {A → Aa | b} 2 G : {A → Aa | Ab | b | c}
finitos
Autômatos
com pilha e
GLC’s
Máquinas de
Turing
H. Longo
Introdução
Fundamentos
matemáticos
A → AB | BA | a ,
( )
Autômatos 1 G : {A → Aa | b} 2 G : {A → Aa | Ab | b | c}
finitos 3 G:
B→b|c
Linguagens e L(G) = ba∗ L(G) = (b ∪ c)(a ∪ b)∗
gramáticas
A → b | bZ , A → b | c | bZ | cZ ,
( ) ( )
regulares
G0 : G0 :
Linguagens
Z → aZ | a Z → aZ | bZ | a | b
livres de
contexto
Gramáticas livres de
contexto
Derivações
Ambiguidade
Formas normais
Autômatos
com pilha e
GLC’s
Máquinas de
Turing
H. Longo
Introdução
Fundamentos
matemáticos
A → AB | BA | a ,
( )
Autômatos 1 G : {A → Aa | b} 2 G : {A → Aa | Ab | b | c}
finitos 3 G:
B→b|c
Linguagens e L(G) = ba∗ L(G) = (b ∪ c)(a ∪ b)∗
gramáticas (
A → b | bZ ,
) (
A → b | c | bZ | cZ ,
) L(G) = (b ∪ c)∗ a(b ∪ c)∗
regulares
G0 : G0 :
Linguagens
Z → aZ | a Z → aZ | bZ | a | b
livres de
contexto
Gramáticas livres de
contexto
Derivações
Ambiguidade
Formas normais
Autômatos
com pilha e
GLC’s
Máquinas de
Turing
H. Longo
Introdução
Fundamentos
matemáticos
A → AB | BA | a ,
( )
Autômatos 1 G : {A → Aa | b} 2 G : {A → Aa | Ab | b | c}
finitos 3 G:
B→b|c
Linguagens e L(G) = ba∗ L(G) = (b ∪ c)(a ∪ b)∗
gramáticas (
A → b | bZ ,
) (
A → b | c | bZ | cZ ,
) L(G) = (b ∪ c)∗ a(b ∪ c)∗
regulares
G0 : G0 :
A → a | BAZ | aZ | BA ,
Linguagens
Z → aZ | a Z → aZ | bZ | a | b
Z → BZ | B ,
G0 :
livres de
contexto
B→b|c
Gramáticas livres de
contexto
Derivações
Ambiguidade
Formas normais
Autômatos
com pilha e
GLC’s
Máquinas de
Turing
H. Longo
Introdução
Fundamentos
matemáticos
Autômatos
Uma GLC G = (V, Σ, P, S ) está na forma normal de Greibach se as regras de
finitos derivação seguem as regras:
Linguagens e
gramáticas
1 S → ε,
regulares 2 A → a,
Linguagens 3 A → aA1 A2 . . . An ,
livres de
contexto onde a ∈ Σ e Ai ∈ V − {S } para i = 1, 2, . . . , n.
Gramáticas livres de
contexto
Derivações
Ambiguidade
Formas normais
Autômatos
com pilha e
GLC’s
Máquinas de
Turing
H. Longo
Lema 6.90
Introdução
Seja G = (V, Σ, P, S ) uma GLC , A → uBv uma regra de P e
Fundamentos
matemáticos B → w1 | w2 | · · · | wn as regras de derivação de B. A gramática
Alfabetos e G0 = (V, Σ, P0 , S ) é equivalente a G, onde:
linguagens
Autômatos
finitos
P0 = (P − {A → uBv} ∪ {A → uw1 v | uw2 v | · · · | uwn v}).
Linguagens e
gramáticas
regulares
Linguagens
livres de
contexto
Gramáticas livres de
contexto
Derivações
Ambiguidade
Formas normais
Autômatos
com pilha e
GLC’s
Máquinas de
Turing
H. Longo
Lema 6.90
Introdução
Seja G = (V, Σ, P, S ) uma GLC , A → uBv uma regra de P e
Fundamentos
matemáticos B → w1 | w2 | · · · | wn as regras de derivação de B. A gramática
Alfabetos e G0 = (V, Σ, P0 , S ) é equivalente a G, onde:
linguagens
Autômatos
finitos
P0 = (P − {A → uBv} ∪ {A → uw1 v | uw2 v | · · · | uwn v}).
Linguagens e
gramáticas
regulares
Linguagens
livres de Demonstração.
contexto
Gramáticas livres de
contexto
1 L(G0 ) ⊆ L(G)
Derivações
Ambiguidade Como cada A → uwi v é derivável em G, a inclusão é garantida pelo lema 6.51.
Formas normais
Autômatos
com pilha e
GLC’s
Máquinas de
Turing
H. Longo
Lema 6.90
Introdução
Seja G = (V, Σ, P, S ) uma GLC , A → uBv uma regra de P e
Fundamentos
matemáticos B → w1 | w2 | · · · | wn as regras de derivação de B. A gramática
Alfabetos e G0 = (V, Σ, P0 , S ) é equivalente a G, onde:
linguagens
Autômatos
finitos
P0 = (P − {A → uBv} ∪ {A → uw1 v | uw2 v | · · · | uwn v}).
Linguagens e
gramáticas
regulares
Linguagens
livres de Demonstração.
contexto
Gramáticas livres de
contexto
2 L(G) ⊆ L(G0 )
Derivações
Ambiguidade Toda cadeia de terminais derivável em G, usando a regra A → uBv, também é
Formas normais
derivável em G0 .
∗ ∗
Autômatos
com pilha e
G : S =⇒ pAq =⇒ puBvq =⇒ puwi vq =⇒ w,
∗ ∗
GLC’s G0 : S =⇒ pAq =⇒ puwi vq =⇒ w, usando a regra A → uwi v.
Máquinas de
Turing
H. Longo
Introdução
Linguagens
livres de
contexto
Gramáticas livres de
contexto
Derivações
Ambiguidade
Formas normais
Autômatos
com pilha e
GLC’s
Máquinas de
Turing
H. Longo
Introdução
Linguagens
1 Com o lema 6.90 as regras de derivação são da forma:
livres de
contexto 1 S → ε,
Gramáticas livres de
contexto
2 A → aw,
Derivações
Ambiguidade
3 A → Bw,
Formas normais
onde w ∈ V ∗ e ordem de B é maior que a ordem de A.
Autômatos
com pilha e
GLC’s
Máquinas de
Turing
H. Longo
Exemplo 6.91
Introdução
Fundamentos
S → AB | ε ,
Variável Ordem
matemáticos
A → AB | CB | a , S 1
G:
Alfabetos e
B → AB | b ,
A 2
linguagens
C → AC | c
B 3
Autômatos
C 4
finitos L(G) =???
Linguagens e
gramáticas
regulares
Linguagens
livres de
contexto
Gramáticas livres de
contexto
Derivações
Ambiguidade
Formas normais
Autômatos
com pilha e
GLC’s
Máquinas de
Turing
H. Longo
Exemplo 6.91
Introdução
Eliminar recursão direta à esquerda na regra A → AB:
Fundamentos
S → AB | ε ,
matemáticos
CBR1 | aR1 | CB | a ,
Alfabetos e
A →
linguagens
AB | b ,
G1 : B →
AC | c ,
Autômatos
C →
finitos
R1 → BR1 | B
Linguagens e
gramáticas
regulares
Linguagens
livres de
contexto
Gramáticas livres de
contexto
Derivações
Ambiguidade
Formas normais
Autômatos
com pilha e
GLC’s
Máquinas de
Turing
H. Longo
Exemplo 6.91
Introdução
Ordem de A é menor do que ordem de B na regra B → AB:
Fundamentos
S → AB | ε ,
matemáticos
CBR1 | aR1 | CB | a ,
Alfabetos e
A →
linguagens
CBR1 B | aR1 B | CBB | aB | b ,
G2 : B →
AC | c ,
Autômatos
C →
finitos
R1 → BR1 | B
Linguagens e
gramáticas
regulares
Linguagens
livres de
contexto
Gramáticas livres de
contexto
Derivações
Ambiguidade
Formas normais
Autômatos
com pilha e
GLC’s
Máquinas de
Turing
H. Longo
Exemplo 6.91
Introdução
Ordem de A é menor do que ordem de C na regra C → AB:
Fundamentos
S → AB | ε ,
matemáticos
CBR1 | aR1 | CB | a ,
Alfabetos e
A →
linguagens
CBR1 B | aR1 B | CBB | aB | b ,
G3 : B →
CBR1 C | aR1 C | CBC | aC | c ,
Autômatos
C →
finitos
R1 → BR1 | B
Linguagens e
gramáticas
regulares
Linguagens
livres de
contexto
Gramáticas livres de
contexto
Derivações
Ambiguidade
Formas normais
Autômatos
com pilha e
GLC’s
Máquinas de
Turing
H. Longo
Exemplo 6.91
Introdução
Eliminar recursão direta à esquerda nas regras C → CBR1 C e C → CBC :
Fundamentos
AB | ε ,
matemáticos
S →
CBR1 | aR1 | CB | a ,
A →
Alfabetos e
CBR1 B | aR1 B | CBB | aB | b ,
linguagens
B →
G4 :
Autômatos
C → aR1 C | aC | c | aR1 CR2 | aCR2 | cR2 ,
finitos
BR1 | B ,
R1 →
Linguagens e
gramáticas
R2 → BR1 CR2 | BCR2 | BR1 C | BC
regulares
Lado direito das regras de derivação de C (variável de maior ordem) começam com terminal.
Linguagens
livres de
contexto
Gramáticas livres de
contexto
Derivações
Ambiguidade
Formas normais
Autômatos
com pilha e
GLC’s
Máquinas de
Turing
H. Longo
Exemplo 6.91
Introdução
inserir um terminal no lado direito das regras de derivação de B:
Fundamentos
AB | ε ,
matemáticos
S →
CBR1 | aR1 | CB | a ,
A →
Alfabetos e
→ aR1 B | aB | b |
linguagens
B
aR1 CBR1 B | aCBR1 B | cBR1 B | aR1 CR2 BR1 B | aCR2 BR1 B | cR2 BR1 B |
Autômatos G5 :
finitos
aR1 CBB | aCBB | cBB | aR1 CR2 BB | aCR2 BB | cR2 BB ,
aR1 C | aC | c | aR1 CR2 | aCR2 | cR2 ,
C →
Linguagens e
BR1 | B ,
R →
gramáticas
1
R → BR1 CR2 | BCR2 | BR1 C | BC
regulares 2
Linguagens
livres de
contexto
Gramáticas livres de
contexto
Derivações
Ambiguidade
Formas normais
Autômatos
com pilha e
GLC’s
Máquinas de
Turing
H. Longo
Exemplo 6.91
Introdução
inserir um terminal no lado direito das regras de derivação de A:
Fundamentos
AB | ε ,
matemáticos
S →
A → aR1 | a |
Alfabetos e
aR1 CBR1 | aCBR1 | cBR1 | aR1 CR2 BR1 | aCR2 BR1 | cR2 BR1 |
linguagens
aR1 CB | aCB | cB | aR1 CR2 B | aCR2 B | cR2 B ,
Autômatos
finitos B
→ aR1 B | aB | b |
G6 :
aR1 CBR1 B | aCBR1 B | cBR1 B | aR1 CR2 BR1 B | aCR2 BR1 B | cR2 BR1 B |
Linguagens e
aR1 CBB | aCBB | cBB | aR1 CR2 BB | aCR2 BB | cR2 BB ,
gramáticas
aR1 C | aC | c | aR1 CR2 | aCR2 | cR2 ,
C →
regulares
BR1 | B ,
R1 →
Linguagens
livres de
R
2 → BR1 CR2 | BCR2 | BR1 C | BC
contexto
Gramáticas livres de
contexto
Derivações
Ambiguidade
Formas normais
Autômatos
com pilha e
GLC’s
Máquinas de
Turing
H. Longo
Exemplo 6.91
Introdução
inserir um terminal no lado direito das regras de derivação de S :
Fundamentos
matemáticos
S
→ ε|
aR1 B | aB |
Alfabetos e
aR1 CBR1 B | aCBR1 B | cBR1 B | aR1 CR2 BR1 B | aCR2 BR1 B | cR2 BR1 B |
linguagens
aR1 CBB | aCBB | cBB | aR1 CR2 BB | aCR2 BB | cR2 BB ,
Autômatos
finitos
A → aR1 | a |
aR1 CBR1 | aCBR1 | cBR1 | aR1 CR2 BR1 | aCR2 BR1 | cR2 BR1 |
Linguagens e
aR1 CB | aCB | cB | aR1 CR2 B | aCR2 B | cR2 B ,
G7 :
gramáticas
B → aR1 B | aB | b |
regulares
Linguagens
aR1 CBR1 B | aCBR1 B | cBR1 B | aR1 CR2 BR1 B | aCR2 BR1 B | cR2 BR1 B |
aR1 CBB | aCBB | cBB | aR1 CR2 BB | aCR2 BB | cR2 BB ,
livres de
contexto aR1 C | aC | c | aR1 CR2 | aCR2 | cR2 ,
C →
BR1 | B ,
Gramáticas livres de
R1 →
contexto
R2 → BR1 CR2 | BCR2 | BR1 C | BC
Derivações
Ambiguidade
Formas normais Variável A torna-se inútil.
Autômatos
com pilha e
GLC’s
Máquinas de
Turing
H. Longo
Exemplo 6.91
Introdução
inserir um terminal no lado direito das regras de derivação de R1 e R2 :
Fundamentos
ε|
matemáticos
S →
aR1 B | aB |
Alfabetos e
aR1 CBR1 B | aCBR1 B | cBR1 B | aR1 CR2 BR1 B | aCR2 BR1 B | cR2 BR1 B |
linguagens
aR1 CBB | aCBB | cBB | aR1 CR2 BB | aCR2 BB | cR2 BB ,
Autômatos
finitos
B → aR1 B | aB | b |
aR1 CBR1 B | aCBR1 B | cBR1 B | aR1 CR2 BR1 B | aCR2 BR1 B | cR2 BR1 B |
Linguagens e
aR1 CBB | aCBB | cBB | aR1 CR2 BB | aCR2 BB | cR2 BB ,
gramáticas
aR1 C | aC | c | aR1 CR2 | aCR2 | cR2 ,
G8 : C →
regulares
R1 → aR1 BR1 | aBR1 | bR1 |
Linguagens
livres de
aR1 CBR1 BR1 | aCBR1 BR1 | cBR1 BR1 | aR1 CR2 BR1 BR1 | aCR2 BR1 BR1 | cR2 BR1 BR1 |
contexto
aR1 CBBR1 | aCBBR1 | cBBR1 | aR1 CR2 BBR1 | aCR2 BBR1 | cR2 BBR1 |
Gramáticas livres de
contexto
aR1 B | aB | b |
Derivações
aR1 CBR1 B | aCBR1 B | cBR1 B | aR1 CR2 BR1 B | aCR2 BR1 B | cR2 BR1 B |
aR1 CBB | aCBB | cBB | aR1 CR2 BB | aCR2 BB | cR2 BB ,
Ambiguidade
Formas normais
→ BR1 CR2 | BCR2 | BR1 C | BC
R
2
Autômatos
com pilha e
GLC’s
Máquinas de
Turing
H. Longo
Exemplo 6.91
Introdução
inserir um terminal no lado direito das regras de derivação de R2 :
Fundamentos
matemáticos
8 :
G
Alfabetos e
R2 → aR1 BR1 CR2 | aBR1 CR2 | bR1 CR2 |
aR1 CBR1 BR1 CR2 | aCBR1 BR1 CR2 | cBR1 BR1 CR2 |
linguagens
aR1 CR2 BR1 BR1 CR2 | aCR2 BR1 BR1 CR2 | cR2 BR1 BR1 CR2 |
Autômatos
finitos
aR1 CBBR1 CR2 | aCBBR1 CR2 | cBBR1 CR2 | aR1 CR2 BBR1 CR2 | aCR2 BBR1 CR2 | cR2 BBR1 CR2 |
Linguagens e
gramáticas
aR1 BCR2 | aB | bCR2 |
regulares
aR1 CBR1 BCR2 | aCBR1 BCR2 | cBR1 BCR2 | aR1 CR2 BR1 BCR2 | aCR2 BR1 BCR2 | cR2 BR1 BCR2 |
Linguagens
aR1 CBBCR2 | aCBBCR2 | cBBCR2 | aR1 CR2 BBCR2 | aCR2 BBCR2 | cR2 BBCR2 |
livres de
contexto
aR1 BR1 C | aBR1 C | bR1 C |
Gramáticas livres de
aR1 CBR1 BR1 C | aCBR1 BR1 C | cBR1 BR1 C | aR1 CR2 BR1 BR1 C | aCR2 BR1 BR1 C | cR2 BR1 BR1 C |
contexto
aR1 CBBR1 C | aCBBR1 C | cBBR1 C | aR1 CR2 BBR1 C | aCR2 BBR1 C | cR2 BBR1 C |
Derivações
Ambiguidade
Formas normais
aR1 BC | aBC | bC |
aR1 CBR1 BC | aCBR1 BC | cBR1 BC | aR1 CR2 BR1 BC | aCR2 BR1 BC | cR2 BR1 BC |
Autômatos
com pilha e
aR1 CBBC | aCBBC | cBBC | aR1 CR2 BBC | aCR2 BBC | cR2 BBC
GLC’s
Máquinas de
Turing
H. Longo
Autômatos
finitos
Linguagens e
gramáticas
regulares
Linguagens
livres de
contexto
Gramáticas livres de
contexto
Derivações
Ambiguidade
Formas normais
Autômatos
com pilha e
GLC’s
Máquinas de
Turing
H. Longo
Autômatos
finitos Demonstração.
Linguagens e
gramáticas
Mostrar que as regras de derivação de G podem ser convertidas para uma
regulares das formas:
Linguagens
livres de
1 Ak → A j w com k < j,
contexto 2 Ak → aw,
Gramáticas livres de
contexto
Derivações
onde j e k representam a ordem das variáveis.
Ambiguidade
Formas normais
Autômatos
com pilha e
GLC’s
Máquinas de
Turing
H. Longo
Autômatos
finitos Demonstração.
Linguagens e
gramáticas
Indução na ordem das variáveis.
regulares 1 Base:
Linguagens
livres de
S é de ordem 1 e como S não é recursiva, a condição é satisfeita.
contexto 2 Hipótese:
Gramáticas livres de
contexto Suponha que todas as variáveis até a de número k satisfaçam a condição.
Derivações
Ambiguidade
Formas normais
Autômatos
com pilha e
GLC’s
Máquinas de
Turing
H. Longo
Autômatos
finitos Demonstração.
Linguagens e
gramáticas
3 Passo Indutivo:
regulares
Se Ak → Ai w com i < k, substituir Ai e gerar um conjunto de regras da forma
Linguagens
livres de Ak → A j w, onde j > i.
contexto
Gramáticas livres de
Por H.I. Ai satisfaz a condição.
contexto
Derivações Este processo pode ser repetido k − i vezes.
Ambiguidade
Formas normais
Todas as recursões diretas à esquerda podem ser eliminadas usando o lema
Autômatos 6.86.
com pilha e
GLC’s
Máquinas de
Turing
H. Longo
Introdução
Fundamentos
matemáticos
Alfabetos e
linguagens
Linguagens e
gramáticas
regulares
Linguagens
Definições básicas
livres de
contexto
Autômatos
com pilha e
GLC’s
Definições básicas
Variações de PDA’s
PDA’s e GLC’s
Pumping Lemma para
LLC’s
Máquinas de
Turing
H. Longo
Esquema básico
Introdução
Cadeia w ∈ Σ∗
Fundamentos
matemáticos
Alfabetos e
linguagens
w1 w2 ... wi ... wn−1 wn
Autômatos
finitos
Linguagens e
gramáticas
regulares Controle
Linguagens finito de uk
livres de
contexto
estados
Autômatos
uk−1 Pilha
com pilha e
GLC’s ..
Definições básicas .
Variações de PDA’s
PDA’s e GLC’s
Pumping Lemma para
LLC’s
u1
Máquinas de
Turing
H. Longo
Introdução
Fundamentos
matemáticos
Definição 7.1
Alfabetos e
linguagens Um Autômato com Pilha (PDA – Pushdown Automaton) é uma sextupla
Autômatos P = hΣ, Γ, S , s0 , δ, Fi, onde:
finitos
Σ : alfabeto de entrada;
Linguagens e
gramáticas Γ : alfabeto da pilha;
regulares
S , ∅ : conjunto finito de estados;
Linguagens
livres de s0 ∈ S : estado inicial;
contexto δ : S × (Σ ∪ {ε}) × (Γ ∪ {ε}) → P(S × (Γ ∪ {ε})) : função de transição de estados; e
Autômatos F ⊆ S : conjunto de estados finais (ou de aceitação).
com pilha e
GLC’s
Definições básicas
Variações de PDA’s
PDA’s e GLC’s
Pumping Lemma para
LLC’s
Máquinas de
Turing
H. Longo
Introdução
Fundamentos
matemáticos
Linguagens
livres de
contexto
Autômatos
com pilha e
GLC’s
Definições básicas
Variações de PDA’s
PDA’s e GLC’s
Pumping Lemma para
LLC’s
Máquinas de
Turing
H. Longo
Introdução
Fundamentos
matemáticos
Máquinas de
Turing
H. Longo
Introdução
Fundamentos a, b → c:
matemáticos
Alfabetos e
a = ε : transição sem ler símbolo de entrada.
linguagens b = ε : transição sem ler símbolo da pilha.
Autômatos c = ε : transição sem escrever na pilha.
finitos
Linguagens e
gramáticas
regulares
Linguagens
livres de
contexto
Autômatos
com pilha e
GLC’s
Definições básicas
Variações de PDA’s
PDA’s e GLC’s
Pumping Lemma para
LLC’s
Máquinas de
Turing
H. Longo
Introdução
Fundamentos a, b → c:
matemáticos
Alfabetos e
a = ε : transição sem ler símbolo de entrada.
linguagens b = ε : transição sem ler símbolo da pilha.
Autômatos c = ε : transição sem escrever na pilha.
finitos
Linguagens e
gramáticas
regulares
δ(si , a, x) = {(s j , y)}.
Linguagens O PDA muda do estado si para o s j , lê a da fita de entrada, desempilha x e
livres de
contexto
empilha y.
Autômatos
a, x → y
com pilha e
GLC’s si sj
Definições básicas
Variações de PDA’s
PDA’s e GLC’s
Pumping Lemma para
LLC’s
Máquinas de
Turing
H. Longo
Introdução
Fundamentos
matemáticos
Alfabetos e
δ(si , ε, x) = {(si , ε)}.
linguagens
Se a posição de entrada é ε, a transição não processa um símbolo de entrada,
Autômatos mas desempilha o x.
finitos
Linguagens e ε, x → ε
gramáticas
regulares
Linguagens
livres de
contexto si
Autômatos
com pilha e
GLC’s
Definições básicas
Variações de PDA’s
PDA’s e GLC’s
Pumping Lemma para
LLC’s
Máquinas de
Turing
H. Longo
Introdução
Fundamentos
matemáticos
Alfabetos e
δ(si , ε, ε) = {(si , x)}.
linguagens
Se a posição de entrada é ε, a transição não processa um símbolo de entrada,
Autômatos mas empilha o x.
finitos
Linguagens e ε, ε → x
gramáticas
regulares
Linguagens
livres de
contexto si
Autômatos
com pilha e
GLC’s
Definições básicas
Variações de PDA’s
PDA’s e GLC’s
Pumping Lemma para
LLC’s
Máquinas de
Turing
H. Longo
Introdução
Fundamentos
matemáticos
Alfabetos e
linguagens
δ(si , a, ε) = {(s j , ε)}.
Autômatos
Transição equivalente a transição de um DFA.
finitos Efeito determinado somente pelo estado corrente e pelo símbolo de entrada.
Linguagens e Transição não consulta e não altera a pilha.
gramáticas
regulares
a, ε → ε
Linguagens
livres de
si sj
contexto
Autômatos
com pilha e
GLC’s
Definições básicas
Variações de PDA’s
PDA’s e GLC’s
Pumping Lemma para
LLC’s
Máquinas de
Turing
H. Longo
Introdução
Fundamentos
matemáticos
Alfabetos e
linguagens
P = hΣ, Γ, S , sini , δ, Fi.
Autômatos
finitos
w = w1 w2 . . . wm , com wi ∈ Σ, i = 1, . . . , m : cadeia de entrada.
Linguagens e
gramáticas s0 , s1 , . . . , sm ∈ Q : seqüência de estados.
regulares
Autômatos
com pilha e
GLC’s
Definições básicas
Variações de PDA’s
PDA’s e GLC’s
Pumping Lemma para
LLC’s
Máquinas de
Turing
H. Longo
Introdução
Fundamentos
matemáticos
Autômatos
finitos
Linguagens e
gramáticas
regulares
Linguagens
livres de
contexto
Autômatos
com pilha e
GLC’s
Definições básicas
Variações de PDA’s
PDA’s e GLC’s
Pumping Lemma para
LLC’s
Máquinas de
Turing
H. Longo
Introdução
Fundamentos
matemáticos
Linguagens
livres de
contexto
Autômatos
com pilha e
GLC’s
Definições básicas
Variações de PDA’s
PDA’s e GLC’s
Pumping Lemma para
LLC’s
Máquinas de
Turing
H. Longo
Introdução
Fundamentos
matemáticos
Autômatos
com pilha e
GLC’s
Definições básicas
Variações de PDA’s
PDA’s e GLC’s
Pumping Lemma para
LLC’s
Máquinas de
Turing
H. Longo
Introdução
Fundamentos
matemáticos
Máquinas de
Turing
H. Longo
Introdução
Fundamentos
Definição 7.2
Tripla [si , w, α], onde si é o estado corrente, w ∈ Σ∗ é o conjunto de símbolos
matemáticos
Alfabetos e
linguagens ainda não processados e α é o conteúdo da pilha.
Autômatos
finitos
Linguagens e
gramáticas
regulares
Linguagens
livres de
contexto
Autômatos
com pilha e
GLC’s
Definições básicas
Variações de PDA’s
PDA’s e GLC’s
Pumping Lemma para
LLC’s
Máquinas de
Turing
H. Longo
Introdução
Fundamentos
Definição 7.2
Tripla [si , w, α], onde si é o estado corrente, w ∈ Σ∗ é o conjunto de símbolos
matemáticos
Alfabetos e
linguagens ainda não processados e α é o conteúdo da pilha.
Autômatos
finitos
Linguagens e
Notação
gramáticas
regulares 7−→ : define uma função de S × Σ∗ × Γ∗ em S × Σ∗ × Γ∗ .
M
Linguagens
livres de
contexto
[si , w, α] 7−→[s j , v, β] : configuração [s j , v, β] é obtida a partir de [si , w, α] com
M
Autômatos apenas uma transição de estados.
com pilha e
∗
GLC’s 7−→ : representa uma seqüência de transições.
Definições básicas M
Variações de PDA’s
PDA’s e GLC’s
Pumping Lemma para
LLC’s
Máquinas de
Turing
H. Longo
Linguagens e
gramáticas
regulares
Linguagens
livres de
contexto
Autômatos
com pilha e
GLC’s
Definições básicas
Variações de PDA’s
PDA’s e GLC’s
Pumping Lemma para
LLC’s
Máquinas de
Turing
H. Longo
Linguagens
livres de
contexto
Autômatos
com pilha e
GLC’s
Definições básicas
Variações de PDA’s
PDA’s e GLC’s
Pumping Lemma para
LLC’s
Máquinas de
Turing
H. Longo
Autômatos
com pilha e
GLC’s
Definições básicas
Variações de PDA’s
PDA’s e GLC’s
Pumping Lemma para
LLC’s
Máquinas de
Turing
H. Longo
a, ε → x b, x → ε
livres de
contexto
Autômatos
com pilha e
GLC’s
b, x → ε
Definições básicas
Variações de PDA’s
s0 s1
PDA’s e GLC’s
Pumping Lemma para
LLC’s
Máquinas de
Turing
H. Longo
Introdução
Fundamentos
matemáticos
Máquinas de
Turing
H. Longo
Introdução
Autômatos
com pilha e
GLC’s
Definições básicas
Variações de PDA’s
PDA’s e GLC’s
Pumping Lemma para
LLC’s
Máquinas de
Turing
H. Longo
Introdução
Alfabetos e
Processamento da cadeia abcba:
linguagens [s0 , abcba, ε] 7−→[s0 , bcba, a] 7−→[s0 , cba, ba]
Autômatos 7−→[s1 , ba, ba] 7−→[s1 , a, a] 7−→[s1 , ε, ε]
finitos
Linguagens e
gramáticas b, ε → b b, b → ε
a, ε → a a, a → ε
regulares
Linguagens
livres de
contexto
Autômatos c, ε → ε
com pilha e s0 s1
GLC’s
Definições básicas
Variações de PDA’s
PDA’s e GLC’s
Pumping Lemma para
LLC’s
Máquinas de
Turing
H. Longo
Introdução
Fundamentos
matemáticos
Definição 7.6
Alfabetos e
linguagens
Duas transições (s j , c) ∈ δ(si , u, a) e (sk , d) ∈ δ(si , v, b) são compatíveis se
Autômatos
finitos
alguma das condições a seguir é satisfeita:
Linguagens e
1 u = v e a = b;
gramáticas
regulares
2 u = v e a = ε ou b = ε;
Linguagens
3 a = b e u = ε ou v = ε;
livres de 4 u = ε ou v = ε e a = ε ou b = ε;
contexto
Máquinas de
Turing
H. Longo
Introdução
Fundamentos
matemáticos
Alfabetos e
linguagens
Definição 7.7
Autômatos
finitos
Um PDA é determinístico se existe no máximo uma transição para cada
Linguagens e
gramáticas combinação de estado, símbolo de entrada e símbolo no topo da pilha.
regulares
Linguagens
Um PDA é determinístico se não contém transições compatíveis distintas.
livres de
contexto
Autômatos
com pilha e
GLC’s
Definições básicas
Variações de PDA’s
PDA’s e GLC’s
Pumping Lemma para
LLC’s
Máquinas de
Turing
Alfabetos e
linguagens
Autômatos
finitos
Linguagens e
gramáticas
regulares
Linguagens
livres de
contexto
Autômatos
com pilha e
GLC’s
Definições básicas
Variações de PDA’s
PDA’s e GLC’s
Pumping Lemma para
LLC’s
Máquinas de
Turing
Alfabetos e
linguagens
a, ε → a b, a → ε
Autômatos
finitos
Linguagens e
gramáticas
regulares
b, a → ε
Linguagens s0 s1
livres de
contexto
Autômatos
com pilha e
GLC’s
ε, ε → ε
Definições básicas
Variações de PDA’s
PDA’s e GLC’s
Pumping Lemma para
LLC’s s2 ε, a → ε
Máquinas de
Turing
a, ε → a b, a → ε
Autômatos
finitos
Linguagens e
gramáticas
regulares
b, a → ε
Linguagens s0 s1
livres de
contexto
Autômatos
com pilha e
GLC’s
ε, ε → ε
Definições básicas
Variações de PDA’s
PDA’s e GLC’s
Pumping Lemma para
LLC’s s2 ε, a → ε
Máquinas de
Turing
H. Longo
Introdução
Autômatos
finitos
Linguagens e
gramáticas
regulares
Linguagens
livres de
contexto
Autômatos
com pilha e
GLC’s
Definições básicas
Variações de PDA’s
PDA’s e GLC’s
Pumping Lemma para
LLC’s
Máquinas de
Turing
H. Longo
Introdução
Autômatos
finitos
Linguagens e
gramáticas b, ε → b b, b → ε
regulares
a, ε → a a, a → ε
Linguagens
livres de
contexto
Autômatos ε, ε → ε
com pilha e s0 s1
GLC’s
Definições básicas
Variações de PDA’s
PDA’s e GLC’s
Pumping Lemma para
LLC’s
Máquinas de
Turing
H. Longo
Introdução
Autômatos ε, ε → ε
com pilha e s0 s1
GLC’s
Definições básicas
Variações de PDA’s
PDA’s e GLC’s
Pumping Lemma para
LLC’s
Máquinas de
Turing
H. Longo
Introdução
Fundamentos
matemáticos
Alfabetos e
linguagens
Definição formal não contém mecanismos para testar pilha vazia.
Autômatos
finitos Um PDA pode simular esse mecanismo com um símbolo particular (por
Linguagens e exemplo, $):
gramáticas
regulares $ é o primeiro símbolo a ser colocado na pilha.
Linguagens Quando o PDA ler novamente o $, então a pilha está vazia.
livres de
contexto
Autômatos
com pilha e
GLC’s
Definições básicas
Variações de PDA’s
PDA’s e GLC’s
Pumping Lemma para
LLC’s
Máquinas de
Turing
H. Longo
Introdução
Autômatos
com pilha e
GLC’s
Definições básicas
Variações de PDA’s
PDA’s e GLC’s
Pumping Lemma para
LLC’s
Máquinas de
Turing
H. Longo
Introdução
Autômatos
com pilha e
GLC’s
Definições básicas
Variações de PDA’s
PDA’s e GLC’s
Pumping Lemma para
LLC’s
Máquinas de
Turing
H. Longo
Introdução
Autômatos ε, ε → $ 0, ε → 0
finitos s0 s1
Linguagens e
gramáticas
regulares
Linguagens 1, 0 → ε
livres de
contexto
Autômatos ε, $ → ε 1, 0 → ε
com pilha e s3 s2
GLC’s
Definições básicas
Variações de PDA’s
PDA’s e GLC’s
Pumping Lemma para
LLC’s
Máquinas de
Turing
Introdução
L = {ai b j ck ∈ {a, b, c}∗ | i, j, k ≥ 0 e i = j ou i = k}.
Fundamentos
matemáticos
Alfabetos e
linguagens
Autômatos
finitos
Linguagens e
gramáticas
regulares
Linguagens
livres de
contexto
Autômatos
com pilha e
GLC’s
Definições básicas
Variações de PDA’s
PDA’s e GLC’s
Pumping Lemma para
LLC’s
Máquinas de
Turing
Introdução
L = {ai b j ck ∈ {a, b, c}∗ | i, j, k ≥ 0 e i = j ou i = k}.
Fundamentos PDA lê e empilha todos os a’s.
matemáticos
Os símbolos a’s devem ser ‘casados’ com b’s ou c’s?
Alfabetos e
linguagens
Autômatos
finitos
Linguagens e
gramáticas
regulares
Linguagens
livres de
contexto
Autômatos
com pilha e
GLC’s
Definições básicas
Variações de PDA’s
PDA’s e GLC’s
Pumping Lemma para
LLC’s
Máquinas de
Turing
Introdução
L = {ai b j ck ∈ {a, b, c}∗ | i, j, k ≥ 0 e i = j ou i = k}.
Fundamentos PDA lê e empilha todos os a’s.
matemáticos
Os símbolos a’s devem ser ‘casados’ com b’s ou c’s?
Alfabetos e
linguagens
Não determinismo é essencial para reconhecer L!
Autômatos
finitos
Linguagens e
gramáticas
regulares
Linguagens
livres de
contexto
Autômatos
com pilha e
GLC’s
Definições básicas
Variações de PDA’s
PDA’s e GLC’s
Pumping Lemma para
LLC’s
Máquinas de
Turing
Introdução
L = {ai b j ck ∈ {a, b, c}∗ | i, j, k ≥ 0 e i = j ou i = k}.
Fundamentos PDA lê e empilha todos os a’s.
matemáticos
Os símbolos a’s devem ser ‘casados’ com b’s ou c’s?
Alfabetos e
linguagens
Não determinismo é essencial para reconhecer L!
Autômatos
finitos
b, a → ε c, ε → ε
Linguagens e
gramáticas
regulares ε, $ → ε
s0 s2 s3
Linguagens
livres de
contexto
ε
ε →
Autômatos ε, ε → $ ε,
com pilha e
GLC’s
Definições básicas ε, ε → ε ε, ε → ε ε, $ → ε
Variações de PDA’s s1 s4 s5 s6
PDA’s e GLC’s
Pumping Lemma para
LLC’s
Máquinas de
Turing a, ε → a b, ε → ε c, a → ε
(1246 – 1248 de 1593)
Exemplo de PDA determinístico
LFA 2018/2
H. Longo
Autômatos
finitos
Linguagens e
gramáticas
regulares
Linguagens
livres de
contexto
Autômatos
com pilha e
GLC’s
Definições básicas
Variações de PDA’s
PDA’s e GLC’s
Pumping Lemma para
LLC’s
Máquinas de
Turing
H. Longo
Máquinas de
Turing
H. Longo
Introdução
Fundamentos
matemáticos
Alfabetos e
linguagens
Linguagens e
gramáticas
regulares
Linguagens
Variações de PDA’s
livres de
contexto
Autômatos
com pilha e
GLC’s
Definições básicas
Variações de PDA’s
PDA’s e GLC’s
Pumping Lemma para
LLC’s
Máquinas de
Turing
H. Longo
Introdução
Fundamentos
matemáticos Definição 7.13
Alfabetos e A transição de um PDA acarreta três ações: processar um símbolo da cadeia,
linguagens
Autômatos
retirar um símbolo da pilha e colocar outro símbolo na pilha.
finitos
Linguagens e
gramáticas
regulares
Linguagens
livres de
contexto
Autômatos
com pilha e
GLC’s
Definições básicas
Variações de PDA’s
PDA’s e GLC’s
Pumping Lemma para
LLC’s
Máquinas de
Turing
H. Longo
Introdução
Fundamentos
matemáticos Definição 7.13
Alfabetos e A transição de um PDA acarreta três ações: processar um símbolo da cadeia,
linguagens
Autômatos
retirar um símbolo da pilha e colocar outro símbolo na pilha.
finitos
Um PDA é chamado de atômico se cada transição causa apenas uma dessas
Linguagens e
gramáticas ações.
regulares
Linguagens
livres de
contexto
Autômatos
com pilha e
GLC’s
Definições básicas
Variações de PDA’s
PDA’s e GLC’s
Pumping Lemma para
LLC’s
Máquinas de
Turing
H. Longo
Introdução
Fundamentos
matemáticos Definição 7.13
Alfabetos e A transição de um PDA acarreta três ações: processar um símbolo da cadeia,
linguagens
Autômatos
retirar um símbolo da pilha e colocar outro símbolo na pilha.
finitos
Um PDA é chamado de atômico se cada transição causa apenas uma dessas
Linguagens e
gramáticas ações.
regulares
Linguagens
Transições em um PDA atômico têm a forma:
livres de
contexto
(s j , ε) ∈ δ(si , a, ε)
Autômatos
(s j , ε) ∈ δ(si , ε, a)
com pilha e
GLC’s
(s j , a) ∈ δ(si , ε, ε)
Definições básicas
Variações de PDA’s
PDA’s e GLC’s
Pumping Lemma para
LLC’s
Máquinas de
Turing
H. Longo
Autômatos
finitos
Linguagens e
gramáticas
regulares
Linguagens
livres de
contexto
Autômatos
com pilha e
GLC’s
Definições básicas
Variações de PDA’s
PDA’s e GLC’s
Pumping Lemma para
LLC’s
Máquinas de
Turing
H. Longo
Máquinas de
Turing
H. Longo
Máquinas de
Turing
H. Longo
Introdução
Fundamentos
matemáticos
Alfabetos e
linguagens
Definição 7.15
Autômatos
finitos Um PDA estendido é aquele que contém transições estendidas.
Linguagens e
gramáticas
regulares
Linguagens
livres de
contexto
Autômatos
com pilha e
GLC’s
Definições básicas
Variações de PDA’s
PDA’s e GLC’s
Pumping Lemma para
LLC’s
Máquinas de
Turing
H. Longo
Introdução
Fundamentos
matemáticos
Alfabetos e
linguagens
Definição 7.15
Autômatos
finitos Um PDA estendido é aquele que contém transições estendidas.
Linguagens e Uma transição estendida, em um PDA, empilha uma cadeia de caracteres e não
gramáticas
regulares apenas um único símbolo.
Linguagens A transição (s j , bcd) ∈ δ(si , u, a) empilha bcd, com b ficando no topo da pilha.
livres de
contexto
Autômatos
com pilha e
GLC’s
Definições básicas
Variações de PDA’s
PDA’s e GLC’s
Pumping Lemma para
LLC’s
Máquinas de
Turing
H. Longo
Autômatos
finitos
Linguagens e
gramáticas
regulares
Linguagens
livres de
contexto
Autômatos
com pilha e
GLC’s
Definições básicas
Variações de PDA’s
PDA’s e GLC’s
Pumping Lemma para
LLC’s
Máquinas de
Turing
H. Longo
Máquinas de
Turing
H. Longo
Introdução
Fundamentos
matemáticos Exemplo 7.17
Alfabetos e
linguagens
L = {ai b2i | i ≥ 1}.
Autômatos
finitos
Linguagens e
gramáticas
regulares
Linguagens
livres de
contexto
Autômatos
com pilha e
GLC’s
Definições básicas
Variações de PDA’s
PDA’s e GLC’s
Pumping Lemma para
LLC’s
Máquinas de
Turing
H. Longo
Introdução
Fundamentos
matemáticos Exemplo 7.17
Alfabetos e
linguagens
L = {ai b2i | i ≥ 1}.
Autômatos PDA PDA atômico PDA estendido
finitos
S = {s0 , s1 , s2 } S = {s0 , s1 , s2 , s3 , s4 } S = {s0 , s1 }
Linguagens e
gramáticas
δ(s0 , a, ε) = {(s2 , a)} δ(s0 , a, ε) = {(s3 , ε)} δ(s0 , a, ε) = {(s0 , aa)}
regulares δ(s2 , ε, ε) = {(s0 , a)} δ(s3 , ε, ε) = {(s2 , a)} δ(s0 , b, a) = {(s1 , ε)}
Linguagens δ(s0 , b, a) = {(s1 , ε)} δ(s2 , ε, ε) = {(s0 , a)} δ(s1 , b, a) = {(s1 , ε)}
livres de
contexto
δ(s1 , b, a) = {(s1 , ε)} δ(s0 , b, ε) = {(s4 , ε)}
δ(s4 , ε, a) = {(s1 , ε)}
Autômatos
com pilha e δ(s1 , b, ε) = {(s4 , ε)}
GLC’s
Definições básicas
Variações de PDA’s
PDA’s e GLC’s
Pumping Lemma para
LLC’s
Máquinas de
Turing
H. Longo
Introdução
Fundamentos
matemáticos
Definição 7.18
Alfabetos e Seja o PDA P = hΣ, Γ, S , s0 , δ, Fi. A aceitação da cadeia w ∈ Σ∗ é definida por
linguagens
estado final se existe um processamento
Autômatos
finitos
∗
Linguagens e [s0 , w, ε] 7−→[si , ε, α],
gramáticas
regulares
Linguagens onde si ∈ F e α ∈ Γ∗ .
livres de
contexto
Autômatos
com pilha e
GLC’s
Definições básicas
Variações de PDA’s
PDA’s e GLC’s
Pumping Lemma para
LLC’s
Máquinas de
Turing
H. Longo
Introdução
Fundamentos
matemáticos
Definição 7.18
Alfabetos e Seja o PDA P = hΣ, Γ, S , s0 , δ, Fi. A aceitação da cadeia w ∈ Σ∗ é definida por
linguagens
estado final se existe um processamento
Autômatos
finitos
∗
Linguagens e [s0 , w, ε] 7−→[si , ε, α],
gramáticas
regulares
Linguagens onde si ∈ F e α ∈ Γ∗ .
livres de
contexto Definir aceitação em termos do estado final ou da configuração da pilha não
Autômatos altera o conjunto de linguagens reconhecidas pelos autômatos finitos.
com pilha e
GLC’s
Definições básicas
Variações de PDA’s
PDA’s e GLC’s
Pumping Lemma para
LLC’s
Máquinas de
Turing
H. Longo
Introdução
Fundamentos
matemáticos
Definição 7.18
Alfabetos e Seja o PDA P = hΣ, Γ, S , s0 , δ, Fi. A aceitação da cadeia w ∈ Σ∗ é definida por
linguagens
estado final se existe um processamento
Autômatos
finitos
∗
Linguagens e [s0 , w, ε] 7−→[si , ε, α],
gramáticas
regulares
Linguagens onde si ∈ F e α ∈ Γ∗ .
livres de
contexto Definir aceitação em termos do estado final ou da configuração da pilha não
Autômatos altera o conjunto de linguagens reconhecidas pelos autômatos finitos.
com pilha e
GLC’s A linguagem aceita por estado final é denotada LF .
Definições básicas
Variações de PDA’s
PDA’s e GLC’s
Pumping Lemma para
LLC’s
Máquinas de
Turing
H. Longo
Alfabetos e definida por estado final, então existe um PDA P0 que aceita L(P), com
linguagens
aceitação definida por estado final e pilha vazia.
Autômatos
finitos
Linguagens e
gramáticas
regulares
Linguagens
livres de
contexto
Autômatos
com pilha e
GLC’s
Definições básicas
Variações de PDA’s
PDA’s e GLC’s
Pumping Lemma para
LLC’s
Máquinas de
Turing
H. Longo
Alfabetos e definida por estado final, então existe um PDA P0 que aceita L(P), com
linguagens
aceitação definida por estado final e pilha vazia.
Autômatos
finitos
Linguagens e
gramáticas
Demonstração.
regulares
P0 = hΣ, Γ, S ∪ {s f }, s0 , δ0 , {s f }i.
Linguagens
livres de
contexto
a função δ0 é igual à função δ acrescida das transições:
Autômatos
com pilha e δ0 (si , ε, ε) = {(s f , ε)}, ∀ si ∈ F;
GLC’s
Definições básicas
Variações de PDA’s
δ0 (s f , ε, a) = {(s f , ε)}, ∀ a ∈ Γ.
PDA’s e GLC’s
Pumping Lemma para
LLC’s
Máquinas de
Turing
H. Longo
Alfabetos e definida por estado final, então existe um PDA P0 que aceita L(P), com
linguagens
aceitação definida por estado final e pilha vazia.
Autômatos
finitos
Linguagens e
gramáticas
Demonstração.
regulares ∗
Linguagens
Seja o processamento [s0 , w, ε] 7−→[si , ε, α] que aceita w por estado final.
P
livres de
contexto O equivalente em P0 é:
∗ ∗
Autômatos
com pilha e
[s0 , w, ε] 7−→[si , ε, α] 7−→
0
[s f , ε, α] 7−→
0
[s f , ε, ε].
P P P
GLC’s
Definições básicas
Variações de PDA’s
PDA’s e GLC’s
Pumping Lemma para
LLC’s
Máquinas de
Turing
H. Longo
Alfabetos e definida por estado final, então existe um PDA P0 que aceita L(P), com
linguagens
aceitação definida por estado final e pilha vazia.
Autômatos
finitos
Linguagens e
gramáticas
Demonstração.
As novas transições não levam P0 a aceitar cadeias que não pertençam à
regulares
Linguagens
livres de L(P):
contexto
O único estado final de P0 é s f , o qual é alcançável a partir de qualquer estado
Autômatos
com pilha e final de P.
GLC’s As transições a partir de s f desempilham símbolos, mas não processam a
Definições básicas
Variações de PDA’s cadeia de entrada.
PDA’s e GLC’s
Pumping Lemma para
LLC’s
Máquinas de
Turing
H. Longo
Introdução
Fundamentos
matemáticos
Definição 7.20
Alfabetos e Seja o PDA P = hΣ, Γ, S , s0 , δi. A aceitação da cadeia w ∈ Σ∗ é definida por
linguagens
pilha vazia se existe um processamento
Autômatos
finitos
+
Linguagens e [s0 , w, ε] 7−→[si , ε, ε],
gramáticas
regulares
Autômatos
com pilha e
GLC’s
Definições básicas
Variações de PDA’s
PDA’s e GLC’s
Pumping Lemma para
LLC’s
Máquinas de
Turing
H. Longo
Introdução
Fundamentos
matemáticos
Definição 7.20
Alfabetos e Seja o PDA P = hΣ, Γ, S , s0 , δi. A aceitação da cadeia w ∈ Σ∗ é definida por
linguagens
pilha vazia se existe um processamento
Autômatos
finitos
+
Linguagens e [s0 , w, ε] 7−→[si , ε, ε],
gramáticas
regulares
Máquinas de
Turing
H. Longo
Introdução
Fundamentos
matemáticos
Definição 7.20
Alfabetos e Seja o PDA P = hΣ, Γ, S , s0 , δi. A aceitação da cadeia w ∈ Σ∗ é definida por
linguagens
pilha vazia se existe um processamento
Autômatos
finitos
+
Linguagens e [s0 , w, ε] 7−→[si , ε, ε],
gramáticas
regulares
Máquinas de
Turing
H. Longo
Introdução
Lema 7.21
Fundamentos
matemáticos Se L(P) é a linguagem aceita pelo PDA P = hΣ, Γ, S , s0 , δi, com aceitação
Alfabetos e definida por pilha vazia, então existe um PDA P0 que aceita L(P), com
linguagens
aceitação definida por estado final e pilha vazia.
Autômatos
finitos
Linguagens e
gramáticas
regulares
Linguagens
livres de
contexto
Autômatos
com pilha e
GLC’s
Definições básicas
Variações de PDA’s
PDA’s e GLC’s
Pumping Lemma para
LLC’s
Máquinas de
Turing
H. Longo
Introdução
Lema 7.21
Fundamentos
matemáticos Se L(P) é a linguagem aceita pelo PDA P = hΣ, Γ, S , s0 , δi, com aceitação
Alfabetos e definida por pilha vazia, então existe um PDA P0 que aceita L(P), com
linguagens
aceitação definida por estado final e pilha vazia.
Autômatos
finitos
Linguagens e
gramáticas
Demonstração.
P0 = hΣ, Γ, S ∪ {s00 }, s00 , δ0 , S i, onde:
regulares
Linguagens
livres de δ0 (si , a, x) = δ(si , a, x) e δ0 (s00 , a, x) = δ(s0 , a, x),
contexto
Autômatos
∀ si ∈ S , a ∈ Σ ∪ {ε} e x ∈ Γ ∪ {ε}.
com pilha e
GLC’s Os processamentos de P e P0 são idênticos, exceto que o estado inicial de P é
Definições básicas
Variações de PDA’s
s0 e o inicial de P0 é s00 .
PDA’s e GLC’s
Pumping Lemma para
LLC’s
Máquinas de
Turing
H. Longo
Introdução
Lema 7.21
Fundamentos
matemáticos Se L(P) é a linguagem aceita pelo PDA P = hΣ, Γ, S , s0 , δi, com aceitação
Alfabetos e definida por pilha vazia, então existe um PDA P0 que aceita L(P), com
linguagens
aceitação definida por estado final e pilha vazia.
Autômatos
finitos
Linguagens e
gramáticas
Demonstração.
regulares
Todo processamento em P0 , de comprimento um ou maior, que para com
Linguagens
livres de pilha vazia também para em um estado final.
contexto
Máquinas de
Turing
H. Longo
Introdução
Fundamentos
matemáticos
Alfabetos e
linguagens
Teorema 7.22
Autômatos
finitos As três condições a seguir são equivalentes:
Linguagens e 1 a linguagem L(P) é aceita pelo PDA P;
gramáticas
regulares 2 existe um PDA P1 tal que LF (P1 ) = L(P); e
Linguagens 3 existe um PDA P2 tal que LE (P2 ) = L(P).
livres de
contexto
Autômatos
com pilha e
GLC’s
Definições básicas
Variações de PDA’s
PDA’s e GLC’s
Pumping Lemma para
LLC’s
Máquinas de
Turing
H. Longo
Introdução
Fundamentos
matemáticos
Alfabetos e
linguagens
Linguagens e
gramáticas
regulares
Linguagens
PDA’s e GLC’s
livres de
contexto
Autômatos
com pilha e
GLC’s
Definições básicas
Variações de PDA’s
PDA’s e GLC’s
Pumping Lemma para
LLC’s
Máquinas de
Turing
H. Longo
Introdução
Fundamentos
matemáticos
Conversão de GLC em PDA
Alfabetos e Toda LLC é aceita por um PDA estendido.
linguagens
As regras de derivação podem ser usadas para gerar as transições do PDA.
Autômatos
finitos
Linguagens e
gramáticas
regulares
Linguagens
livres de
contexto
Autômatos
com pilha e
GLC’s
Definições básicas
Variações de PDA’s
PDA’s e GLC’s
Pumping Lemma para
LLC’s
Máquinas de
Turing
H. Longo
Introdução
Fundamentos
matemáticos
Conversão de GLC em PDA
Alfabetos e Toda LLC é aceita por um PDA estendido.
linguagens
As regras de derivação podem ser usadas para gerar as transições do PDA.
Autômatos
finitos Seja L uma LLC e G uma gramática na forma normal de Greibach com
Linguagens e L(G) = L.
gramáticas
regulares As regras de G, exceto S → ε, tem a forma A → aA1 A2 . . .An .
Linguagens Em uma derivação à esquerda, as variáveis Ai são substituídas na seqüência
livres de
contexto A1 , A2 , . . . , An .
Autômatos
com pilha e
GLC’s
Definições básicas
Variações de PDA’s
PDA’s e GLC’s
Pumping Lemma para
LLC’s
Máquinas de
Turing
H. Longo
Introdução
Fundamentos
matemáticos
Conversão de GLC em PDA
Alfabetos e Toda LLC é aceita por um PDA estendido.
linguagens
As regras de derivação podem ser usadas para gerar as transições do PDA.
Autômatos
finitos Seja L uma LLC e G uma gramática na forma normal de Greibach com
Linguagens e L(G) = L.
gramáticas
regulares As regras de G, exceto S → ε, tem a forma A → aA1 A2 . . .An .
Linguagens Em uma derivação à esquerda, as variáveis Ai são substituídas na seqüência
livres de
contexto A1 , A2 , . . . , An .
Autômatos Empilhar A1 , A2 , . . . , An , com A1 no topo da pilha, armazena as variáveis na
com pilha e
GLC’s ordem requerida pela derivação.
Definições básicas
Variações de PDA’s
PDA’s e GLC’s
Pumping Lemma para
LLC’s
Máquinas de
Turing
H. Longo
Introdução
Exemplo 7.23
Fundamentos
matemáticos L = {ai bi | i > 0}.
Alfabetos e
linguagens Gramática G na forma normal de Greibach que aceita L:
Autômatos
finitos
S → aAB | aB,
.
Linguagens e
G: A → aAB | aB,
gramáticas
regulares
B→b
Linguagens
livres de
contexto
Autômatos
com pilha e
GLC’s
Definições básicas
Variações de PDA’s
PDA’s e GLC’s
Pumping Lemma para
LLC’s
Máquinas de
Turing
H. Longo
Introdução
Exemplo 7.23
Fundamentos
matemáticos PDA P = hΣ = {a, b}, Γ = {A, B}, S = {s0 , s1 }, s0 , δ, F = {s1 }i, onde:
Alfabetos e b, B → ε
linguagens
a, A → B
Autômatos
finitos δ(s0 , a, ε) = {(s1 , AB), (s1 , B)}, a, A → AB
Linguagens e
gramáticas
δ(s1 , a, A) = {(s1 , AB), (s1 , B)}, a, ε → B
regulares a, ε → AB
δ(s1 , b, B) = {(s1 , ε)}. s0 s1
Linguagens
livres de
contexto
Uma regra da forma S → aA1 A2 . . .An gera uma transição que processa a,
Autômatos
com pilha e empilha A1 , A2 , . . . , An e entra no estado s1 .
GLC’s
Definições básicas
Variações de PDA’s
PDA’s e GLC’s
Pumping Lemma para
LLC’s
Máquinas de
Turing
H. Longo
Introdução
Exemplo 7.23
Fundamentos
matemáticos Derivação da cadeia aaabbb por G e processamento por P:
Alfabetos e
linguagens
S ⇒ aAB [s0 , aaabbb, ε] 7−→[s1 , aabbb, AB]
Autômatos
finitos
⇒ aaABB 7−→[s1 , abbb, ABB]
Linguagens e
gramáticas
regulares ⇒ aaaBBB 7−→[s1 , bbb, BBB]
Linguagens
livres de
contexto
⇒ aaabBB 7−→[s1 , bb, BB]
Autômatos
com pilha e ⇒ aaabbB 7−→[s1 , b, B]
GLC’s
Definições básicas
Variações de PDA’s
⇒ aaabbb. 7−→[s1 , ε, ε].
PDA’s e GLC’s
Pumping Lemma para
LLC’s
Máquinas de
Turing
H. Longo
Introdução
Fundamentos
matemáticos
Conversão de GLC em PDA – Alternativa
Alfabetos e
linguagens L : LLC .
Autômatos
finitos G : GLC que gera L.
Linguagens e
gramáticas
regulares
Linguagens
livres de
contexto
Autômatos
com pilha e
GLC’s
Definições básicas
Variações de PDA’s
PDA’s e GLC’s
Pumping Lemma para
LLC’s
Máquinas de
Turing
H. Longo
Introdução
Fundamentos
matemáticos
Conversão de GLC em PDA – Alternativa
Alfabetos e
linguagens L : LLC .
Autômatos
finitos G : GLC que gera L.
Linguagens e Conversão de G em um PDA P.
gramáticas
regulares Se G gera w, então P aceita w.
Linguagens P determina se existe uma derivação para w.
livres de
contexto
Autômatos
com pilha e
GLC’s
Definições básicas
Variações de PDA’s
PDA’s e GLC’s
Pumping Lemma para
LLC’s
Máquinas de
Turing
H. Longo
Introdução
Fundamentos
matemáticos
Conversão de GLC em PDA – Alternativa
Alfabetos e
linguagens L : LLC .
Autômatos
finitos G : GLC que gera L.
Linguagens e Conversão de G em um PDA P.
gramáticas
regulares Se G gera w, então P aceita w.
Linguagens P determina se existe uma derivação para w.
livres de
contexto Quais produções devem ser utilizadas na derivação?
Autômatos
com pilha e
GLC’s
Definições básicas
Variações de PDA’s
PDA’s e GLC’s
Pumping Lemma para
LLC’s
Máquinas de
Turing
H. Longo
Introdução
Fundamentos
matemáticos
Conversão de GLC em PDA – Alternativa
Alfabetos e
linguagens L : LLC .
Autômatos
finitos G : GLC que gera L.
Linguagens e Conversão de G em um PDA P.
gramáticas
regulares Se G gera w, então P aceita w.
Linguagens P determina se existe uma derivação para w.
livres de
contexto Quais produções devem ser utilizadas na derivação?
Autômatos
com pilha e
P deve ser não determinístico.
GLC’s
Definições básicas
Variações de PDA’s
PDA’s e GLC’s
Pumping Lemma para
LLC’s
Máquinas de
Turing
H. Longo
Introdução
Fundamentos
Funcionamento do PDA P
matemáticos
1 Variável inicial na pilha.
Alfabetos e
linguagens 2 Série de cadeias intermediárias: substituições uma a uma.
Autômatos
finitos
Pode chegar a uma cadeia que só contém símbolos terminais.
Linguagens e
P aceita essa cadeia se é igual à cadeia w.
gramáticas
regulares
Linguagens
livres de
contexto
Autômatos
com pilha e
GLC’s
Definições básicas
Variações de PDA’s
PDA’s e GLC’s
Pumping Lemma para
LLC’s
Máquinas de
Turing
H. Longo
Introdução
Fundamentos
Funcionamento do PDA P
matemáticos
1 Variável inicial na pilha.
Alfabetos e
linguagens 2 Série de cadeias intermediárias: substituições uma a uma.
Autômatos
finitos
Pode chegar a uma cadeia que só contém símbolos terminais.
Linguagens e
P aceita essa cadeia se é igual à cadeia w.
gramáticas
regulares
Máquinas de
Turing
H. Longo
Exemplo 7.24
Introdução
PDA P com a cadeia intermediária A1A0 a pilha:
Fundamentos
matemáticos
Alfabetos e
linguagens 0 1 1 0 0 1
Autômatos
finitos
Linguagens e
gramáticas
regulares
Controle
finito de A
Linguagens
livres de
estados
contexto 1
Autômatos
com pilha e A
GLC’s
Definições básicas
Variações de PDA’s 0
PDA’s e GLC’s
Pumping Lemma para
LLC’s $
Máquinas de
Turing
H. Longo
Introdução
Fundamentos
Funcionamento do PDA P
matemáticos
1 Inserir símbolo $ na pilha.
Alfabetos e
linguagens
Autômatos
2 Inserir variável inicial na pilha.
finitos
Linguagens e
3 Repetir os passos:
gramáticas
regulares
Linguagens
livres de
contexto
Autômatos
com pilha e
GLC’s
Definições básicas
Variações de PDA’s
PDA’s e GLC’s
Pumping Lemma para
LLC’s
Máquinas de
Turing
H. Longo
Introdução
Fundamentos
Funcionamento do PDA P
matemáticos
1 Inserir símbolo $ na pilha.
Alfabetos e
linguagens
Autômatos
2 Inserir variável inicial na pilha.
finitos
Linguagens e
3 Repetir os passos:
gramáticas
regulares 1 Se topo da pilha é uma variável A, escolher (não determinístico) uma produção
Linguagens para A e substituir A pelo lado direito da produção.
livres de
contexto
Autômatos
com pilha e
GLC’s
Definições básicas
Variações de PDA’s
PDA’s e GLC’s
Pumping Lemma para
LLC’s
Máquinas de
Turing
H. Longo
Introdução
Fundamentos
Funcionamento do PDA P
matemáticos
1 Inserir símbolo $ na pilha.
Alfabetos e
linguagens
Autômatos
2 Inserir variável inicial na pilha.
finitos
Linguagens e
3 Repetir os passos:
gramáticas
regulares 1 Se topo da pilha é uma variável A, escolher (não determinístico) uma produção
Linguagens para A e substituir A pelo lado direito da produção.
livres de
contexto 2 Se topo da pilha é um terminal a, ler próximo símbolo da cadeia de entrada e
Autômatos comparar com a. Se iguais, repetir, senão rejeitar.
com pilha e
GLC’s
Definições básicas
Variações de PDA’s
PDA’s e GLC’s
Pumping Lemma para
LLC’s
Máquinas de
Turing
H. Longo
Introdução
Fundamentos
Funcionamento do PDA P
matemáticos
1 Inserir símbolo $ na pilha.
Alfabetos e
linguagens
Autômatos
2 Inserir variável inicial na pilha.
finitos
Linguagens e
3 Repetir os passos:
gramáticas
regulares 1 Se topo da pilha é uma variável A, escolher (não determinístico) uma produção
Linguagens para A e substituir A pelo lado direito da produção.
livres de
contexto 2 Se topo da pilha é um terminal a, ler próximo símbolo da cadeia de entrada e
Autômatos comparar com a. Se iguais, repetir, senão rejeitar.
com pilha e
GLC’s 3 Se topo da pilha é o símbolo $, ir para estado final. Se cadeia de entrada foi
Definições básicas
Variações de PDA’s
toda lida, então foi aceita.
PDA’s e GLC’s
Pumping Lemma para
LLC’s
Máquinas de
Turing
H. Longo
Esquema de construção do PDA
Introdução Construção do PDA P = hΣ, Γ, Q, q0 , δ, Fi:
Fundamentos
matemáticos
q0 , q ∈ Q,
Alfabetos e
a ∈ Σ,
linguagens u ∈ Γ,
Autômatos P passa do estado q0 para o q ⇒ P lê a e desempilha u.
finitos
Linguagens e
gramáticas
regulares
Linguagens
livres de
contexto
Autômatos
com pilha e
GLC’s
Definições básicas
Variações de PDA’s
PDA’s e GLC’s
Pumping Lemma para
LLC’s
Máquinas de
Turing
H. Longo
Esquema de construção do PDA
Introdução (q, w) ∈ δ(q0 , a, u) ⇒ q0 é o estado do PDA, a é o próximo símbolo de entrada
Fundamentos
matemáticos
e u é o topo da pilha.
Alfabetos e
O PDA deve ler a, desempilhar u, empilhar a cadeia w e ir para o estado q.
linguagens
Linguagens e a, u → z
gramáticas
regulares
q0 q0 q1
Linguagens
livres de
contexto
a, u → xyz ε, ε → y
Autômatos
com pilha e
GLC’s q q q2
Definições básicas
ε, ε → x
Variações de PDA’s
PDA’s e GLC’s
Pumping Lemma para
LLC’s
Máquinas de
Turing
H. Longo
Esquema de construção do PDA
Introdução Empilhar toda a cadeia w = w1 . . . w` ao mesmo tempo:
Fundamentos
matemáticos
Novos estados q1 , . . . , q`−1 e transição δ(q, a, u) tal que:
Alfabetos e
linguagens (q1 , w` ) ∈ δ(q, a, u),
Autômatos δ(q1 , ε, ε) = {(q2 , w`−1 )},
finitos
Autômatos
com pilha e
GLC’s
Definições básicas
Variações de PDA’s
PDA’s e GLC’s
Pumping Lemma para
LLC’s
Máquinas de
Turing
H. Longo
Esquema de construção do PDA
Introdução PDA P = hΣ, Γ, Q, q0 , δ, Fi.
Fundamentos
matemáticos
Q = {qini , q0 , q, q f im } ∪ E .
Alfabetos e
E : novos estados para a notação simplificada para transições.
linguagens
q0 = qini .
Autômatos
finitos
F = {q f im }.
δ(qini , ε, ε) = {(q0 , $)}.
Linguagens e
gramáticas A pilha é iniciada com $.
regulares
δ(q , ε, ε) = {(q, S )}.
0
Linguagens
livres de A variável inicial S é colocada na pilha.
contexto
δ(q, ε, A) = {(q, a)}, onde (A → a) ∈ R.
Autômatos
com pilha e O topo da pilha contém uma variável.
δ(q, a, a) = {(q, ε)}.
GLC’s
Definições básicas
Variações de PDA’s
PDA’s e GLC’s
O topo da pilha contém um terminal.
Pumping Lemma para
LLC’s
δ(q, ε, $) = {(q f im , ε)}.
Máquinas de Marcador de pilha vazia ($) está no topo.
Turing
H. Longo
Esquema de construção do PDA
Introdução Diagrama simplificado de estados para o PDA P:
Fundamentos
matemáticos
qini q0 q q f im
ε, ε → S
Alfabetos e
linguagens ε, ε → $ ε, $ → ε
Autômatos
finitos
ε, A → w
Linguagens e
gramáticas a, a → ε
regulares
Linguagens
livres de
contexto
Autômatos
com pilha e
GLC’s
Definições básicas
Variações de PDA’s
PDA’s e GLC’s
Pumping Lemma para
LLC’s
Máquinas de
Turing
H. Longo
Exemplo 7.25
Introdução
GLC G = (V = {S , T }, Σ = {a, b}, R = {S → aT b | b, T → T a | ε}, S ).
Fundamentos
matemáticos
Alfabetos e
linguagens
Autômatos
finitos
Linguagens e
gramáticas
regulares
Linguagens
livres de
contexto
Autômatos
com pilha e
GLC’s
Definições básicas
Variações de PDA’s
PDA’s e GLC’s
Pumping Lemma para
LLC’s
Máquinas de
Turing
H. Longo
Exemplo 7.25
Introdução
GLC G = (V = {S , T }, Σ = {a, b}, R = {S → aT b | b, T → T a | ε}, S ).
Fundamentos
matemáticos
Diagrama de estados do PDA que simula G:
Alfabetos e
linguagens
ε, ε → T
Autômatos
q1 q2 q3
ε,
finitos
b
ε
a
→
→ →
ε, ε
Linguagens e
ε, ,S
T
gramáticas
regulares T ε
→
Linguagens a
livres de qini q0 q q f im
contexto ε, ε → $ ε, ε → S ε, $ → ε
Autômatos
com pilha e
GLC’s ε, S → b
ε, T → ε
Definições básicas
Variações de PDA’s
PDA’s e GLC’s a, a → ε
b, b → ε
Pumping Lemma para
LLC’s
Máquinas de
Turing
H. Longo
Introdução
Teorema 7.26
Fundamentos
matemáticos Se L é uma LLC, então existe um PDA M que aceita L.
Alfabetos e
linguagens
Autômatos
finitos
Linguagens e
gramáticas
regulares
Linguagens
livres de
contexto
Autômatos
com pilha e
GLC’s
Definições básicas
Variações de PDA’s
PDA’s e GLC’s
Pumping Lemma para
LLC’s
Máquinas de
Turing
H. Longo
Introdução
Teorema 7.26
Fundamentos
matemáticos Se L é uma LLC, então existe um PDA M que aceita L.
Alfabetos e
linguagens
Autômatos
Demonstração.
Seja G = (V, Σ, P, S ), na FNG, que aceita L.
finitos
Linguagens e
gramáticas
regulares
Seja o PDA estendido
Linguagens
M = hΣ M = Σ, Γ M = V − {S }, S M = {s0 , s1 }, s0 , δ, F M = {s1 }i, onde:
livres de
contexto
δ(s0 , a, ε) = {(s1 , w) | (S → aw) ∈ P e w ∈ V ∗ },
Autômatos
δ(s1 , a, A) = {(s1 , w) | (A → aw) ∈ P, A ∈ V − {S } e w ∈ V ∗ },
com pilha e
GLC’s
δ(s0 , ε, ε) = {(s1 , ε) se (S → ε) ∈ P}.
Definições básicas
Variações de PDA’s
PDA’s e GLC’s
Pumping Lemma para
LLC’s
Máquinas de
Turing
H. Longo
Introdução
Teorema 7.26
Fundamentos
matemáticos Se L é uma LLC, então existe um PDA M que aceita L.
Alfabetos e
linguagens
Autômatos
Demonstração.
finitos
Linguagens e
1 L ⊆ L(M).
gramáticas
regulares
2 L(M) ⊆ L.
Linguagens
livres de
contexto
Autômatos
com pilha e
GLC’s
Definições básicas
Variações de PDA’s
PDA’s e GLC’s
Pumping Lemma para
LLC’s
Máquinas de
Turing
H. Longo
Introdução
Teorema 7.26
Fundamentos
matemáticos Se L é uma LLC, então existe um PDA M que aceita L.
Alfabetos e
linguagens
Autômatos
Demonstração.
finitos
Linguagens e
1 L ⊆ L(M).
∗
gramáticas
regulares
Seja a derivação S =⇒ uw, com u ∈ Σ+ e w ∈ V ∗ .
Existe um processamento [s0 , u, ε] 7−→[s1 , ε, w].
∗
Linguagens
livres de
contexto
(Indução no comprimento da derivação):
Autômatos
Base:
com pilha e Derivações S =⇒ aw de comprimento 1. A transição gerada pela regra S → aw é o
GLC’s
Definições básicas
processamento requerido.
Variações de PDA’s
PDA’s e GLC’s
Pumping Lemma para
LLC’s
Máquinas de
Turing
H. Longo
Introdução
Teorema 7.26
Fundamentos
matemáticos Se L é uma LLC, então existe um PDA M que aceita L.
Alfabetos e
linguagens
Autômatos
Demonstração.
finitos
Linguagens e
1 L ⊆ L(M).
∗
gramáticas
regulares
Seja a derivação S =⇒ uw, com u ∈ Σ+ e w ∈ V ∗ .
Existe um processamento [s0 , u, ε] 7−→[s1 , ε, w].
∗
Linguagens
livres de
contexto
(Indução no comprimento da derivação):
Autômatos
Hipótese:
n
com pilha e Suponha que para todas cadeias uw geradas por derivações S =⇒ uw existe em M
GLC’s ∗
Definições básicas um processamento [s0 , u, ε] 7−→[s1 , ε, w].
Variações de PDA’s
PDA’s e GLC’s
Pumping Lemma para
LLC’s
Máquinas de
Turing
H. Longo
Introdução
Teorema 7.26
Fundamentos
matemáticos Se L é uma LLC, então existe um PDA M que aceita L.
Alfabetos e
linguagens
Autômatos
Demonstração.
finitos
Linguagens e
1 L ⊆ L(M).
gramáticas Passo indutivo:
regulares n+1
Seja a derivação S =⇒ uw, com u = va ∈ Σ+ e w ∈ V ∗ .
Linguagens n
livres de S =⇒ vAw2 =⇒ uw, onde w = w1 w2 e (A → aw1 ) ∈ P.
contexto
Por HI e (s1 , w1 ) ∈ δ(s1 , a, A):
∗
Autômatos [s0 , va, ε] 7−→[s1 , a, Aw2 ]
com pilha e
GLC’s 7−→[s1 , ε, w1 w2 ].
Definições básicas
Variações de PDA’s
PDA’s e GLC’s
Pumping Lemma para
LLC’s
Máquinas de
Turing
H. Longo
Introdução
Teorema 7.26
Fundamentos
matemáticos Se L é uma LLC, então existe um PDA M que aceita L.
Alfabetos e
linguagens
Autômatos
Demonstração.
finitos
Linguagens e
1 L ⊆ L(M).
gramáticas Passo indutivo:
regulares
Para toda u ∈ L, com |u| > 0, a aceitação de u por M é mostrada pelo
Linguagens ∗
livres de processamento correspondente à derivação S =⇒ u.
contexto
Se ε ∈ L, então (S → ε) ∈ P e o processamento [s0 , ε, ε] 7−→[s1 , ε, ε] aceita ε.
Autômatos
com pilha e
GLC’s
Definições básicas
Variações de PDA’s
PDA’s e GLC’s
Pumping Lemma para
LLC’s
Máquinas de
Turing
H. Longo
Introdução
Teorema 7.26
Fundamentos
matemáticos Se L é uma LLC, então existe um PDA M que aceita L.
Alfabetos e
linguagens
Autômatos
Demonstração.
finitos
Linguagens e
2 L(M) ⊆ L.
Mostrar que para todo processamento [s0 , u, ε] 7−→[s1 , ε, w] existe a
∗
gramáticas
regulares
∗
Linguagens correspondente derivação S =⇒ uw em G.
livres de
contexto Prova por indução.
Autômatos
com pilha e
GLC’s
Definições básicas
Variações de PDA’s
PDA’s e GLC’s
Pumping Lemma para
LLC’s
Máquinas de
Turing
H. Longo
Introdução
Fundamentos
matemáticos
Linguagens
livres de
contexto
Autômatos
com pilha e
GLC’s
Definições básicas
Variações de PDA’s
PDA’s e GLC’s
Pumping Lemma para
LLC’s
Máquinas de
Turing
H. Longo
Introdução
Fundamentos
matemáticos
Máquinas de
Turing
H. Longo
Introdução
Fundamentos
matemáticos
A gramática G = (V, Σ, P, S ) é construída a partir das transições de M 0 :
Alfabetos e
linguagens Σ = ΣM0 .
Autômatos
finitos V = {S } ∪ {hsi , X, s j i}, onde si , s j ∈ S M0 e X ∈ Γ ∪ {ε}.
Linguagens e hsi , X, s j i : processamento em M 0 que inicia em si , encerra em s j e desempilha X .
gramáticas
regulares
Linguagens
livres de
contexto
Autômatos
com pilha e
GLC’s
Definições básicas
Variações de PDA’s
PDA’s e GLC’s
Pumping Lemma para
LLC’s
Máquinas de
Turing
H. Longo
Introdução
Fundamentos
matemáticos
A gramática G = (V, Σ, P, S ) é construída a partir das transições de M 0 :
Alfabetos e
linguagens Conjunto P de regras de derivação:
Autômatos
finitos
1 S → hs0 , ε, s j i, ∀ s j ∈ F M0 ,
2 Cada transição (s j , Y) ∈ δ0 (si , u, X), onde X, Y ∈ Γ ∪ {ε}, gera
Linguagens e
gramáticas
regulares {hsi , X, sk i → uhs j , Y, sk i | sk ∈ S M0 },
Linguagens
livres de 3 Cada transição (s j , Y X) ∈ δ0 (si , u, X), onde X, Y ∈ Γ, gera
contexto
Máquinas de
Turing
H. Longo
Introdução
Linguagens e
gramáticas
regulares
Linguagens
livres de
contexto
Autômatos
com pilha e
GLC’s
Definições básicas
Variações de PDA’s
PDA’s e GLC’s
Pumping Lemma para
LLC’s
Máquinas de
Turing
H. Longo
Introdução
Linguagens e
Regras do tipo 2 e 3 mapeiam as ações do PDA.
gramáticas Regras do tipo 3 correspondem a transições estendidas de M 0 , as quais
regulares
aumentam o tamanho da pilha. O efeito na derivação é introduzir uma variável
Linguagens
livres de adicional.
contexto
Autômatos
com pilha e
GLC’s
Definições básicas
Variações de PDA’s
PDA’s e GLC’s
Pumping Lemma para
LLC’s
Máquinas de
Turing
H. Longo
Introdução
Linguagens e
Regras do tipo 2 e 3 mapeiam as ações do PDA.
gramáticas Regras do tipo 3 correspondem a transições estendidas de M 0 , as quais
regulares
aumentam o tamanho da pilha. O efeito na derivação é introduzir uma variável
Linguagens
livres de adicional.
contexto
Autômatos
Regras do tipo 4 são usadas para terminar a derivação.
com pilha e Representam um processamento a partir de um estado sk para sk que não
GLC’s
Definições básicas altera a pilha (processamento nulo).
Variações de PDA’s
PDA’s e GLC’s
Pumping Lemma para
LLC’s
Máquinas de
Turing
Introdução
L = {an cbn | n > 0}.
Fundamentos
matemáticos
Alfabetos e
linguagens
Autômatos
finitos
Linguagens e
gramáticas
regulares
Linguagens
livres de
contexto
Autômatos
com pilha e
GLC’s
Definições básicas
Variações de PDA’s
PDA’s e GLC’s
Pumping Lemma para
LLC’s
Máquinas de
Turing
Introdução
L = {an cbn | n > 0}.
Fundamentos
matemáticos
Alfabetos e M=
linguagens hΣ M , Γ M , S M , s0 , δ, F M i:
Autômatos
finitos Σ M = {a, b, c}; a, ε → X b, X → ε
Linguagens e
Γ M = {X};
gramáticas S M = {s0 , s1 };
regulares c, ε → ε
F M = {s1 }; s0 s1
Linguagens
Máquinas de
Turing
Introdução
L = {an cbn | n > 0}.
Fundamentos
matemáticos
Alfabetos e M0 =
linguagens hΣ M , Γ M , S M , s0 , δ0 , F M i:
Autômatos
finitos Σ M = {a, b, c}; a, ε → X b, X → ε
Γ M = {X};
Linguagens e
c, ε → ε
gramáticas S M = {s0 , s1 };
regulares
F M = {s1 }; s0 s1
Linguagens
Máquinas de
Turing
Introdução
L = {an cbn | n > 0}.
Fundamentos
matemáticos G = (V, Σ, P, S ):
Alfabetos e
linguagens
Σ = ΣM .
Autômatos
V = {S } ∪ {hsi , X, s j i}, onde si , s j ∈ S M e X ∈ Γ ∪ {ε}.
finitos
Linguagens e
gramáticas
regulares
Linguagens
livres de
contexto
Autômatos
com pilha e
GLC’s
Definições básicas
Variações de PDA’s
PDA’s e GLC’s
Pumping Lemma para
LLC’s
Máquinas de
Turing
Introdução
L = {an cbn | n > 0}.
Fundamentos
matemáticos
Transições Regras de derivação
Alfabetos e S → hs0 , ε, s1 i
linguagens
δ0 (s0 , a, ε) = {(s0 , X)} hs0 , ε, s0 i → ahs0 , X, s0 i
Autômatos
finitos
hs0 , ε, s1 i → ahs0 , X, s1 i
Linguagens e
δ0 (s0 , a, X) = {(s0 , XX)} hs0 , X, s0 i → ahs0 , X, s0 ihs0 , X, s0 i
gramáticas hs0 , X, s1 i → ahs0 , X, s0 ihs0 , X, s1 i
regulares hs0 , X, s0 i → ahs0 , X, s1 ihs1 , X, s0 i
Linguagens hs0 , X, s1 i → ahs0 , X, s1 ihs1 , X, s1 i
livres de
contexto
δ0 (s0 , c, ε) = {(s1 , ε)} hs0 , ε, s0 i → chs1 , ε, s0 i
hs0 , ε, s1 i → chs1 , ε, s1 i
Autômatos
com pilha e δ0 (s0 , c, X) = {(s1 , X)} hs0 , X, s0 i → chs1 , X, s0 i
GLC’s hs0 , X, s1 i → chs1 , X, s1 i
Definições básicas
Variações de PDA’s δ0 (s1 , b, X) = {(s1 , ε)} hs1 , X, s0 i → bhs1 , ε, s0 i
PDA’s e GLC’s
hs1 , X, s1 i → bhs1 , ε, s1 i
Pumping Lemma para
LLC’s
hs0 , ε, s0 i → ε
Máquinas de hs1 , ε, s1 i → ε
Turing
Introdução
L = {an cbn | n > 0}.
Fundamentos
matemáticos
Variável Variável original
Alfabetos e A hs0 , ε, s0 i
linguagens
B hs0 , ε, s1 i
Autômatos C hs1 , ε, s0 i
finitos D hs1 , ε, s1 i
Linguagens e E hs0 , X, s0 i
gramáticas F hs0 , X, s1 i
regulares
G hs1 , X, s0 i
Linguagens H hs1 , X, s1 i
livres de
contexto
Autômatos
com pilha e
GLC’s
Definições básicas
Variações de PDA’s
PDA’s e GLC’s
Pumping Lemma para
LLC’s
Máquinas de
Turing
Introdução
L = {an cbn | n > 0}.
Fundamentos
matemáticos
Transições Regras de derivação
Alfabetos e S →B
linguagens
δ(s0 , a, ε) = {(s0 , X)} A → aE
Autômatos
finitos
B → aF
Linguagens e
δ(s0 , a, X) = {(s0 , XX)} E → aEE
gramáticas F → aEF
regulares E → aFG
Linguagens F → aFH
livres de
contexto
δ(s0 , c, ε) = {(s1 , ε)} A → cC
B → cD
Autômatos
com pilha e δ(s0 , c, X) = {(s1 , X)} E → cG
GLC’s F → cH
Definições básicas
Variações de PDA’s δ(s1 , b, X) = {(s1 , ε)} G → bC
PDA’s e GLC’s
H → bD
Pumping Lemma para
LLC’s
A→ε
Máquinas de D→ε
Turing
Introdução
L = {an cbn | n > 0}.
Fundamentos
matemáticos G = (V, Σ, P, S ):
Alfabetos e
linguagens
V = {S , B, D, F, H} ≡ {S , F}.
Autômatos
Σ = {a,
b, c}.
S → B,
finitos
B → aF | cD,
Linguagens e
( )
S → aF | c,
P= D → ε,
gramáticas
≡
regulares
F → aFb | cb
F → aFH | cH,
Linguagens
livres de
H → bD
contexto
Autômatos
com pilha e
GLC’s
Definições básicas
Variações de PDA’s
PDA’s e GLC’s
Pumping Lemma para
LLC’s
Máquinas de
Turing
Alfabetos e
linguagens
Autômatos
finitos
Linguagens e
gramáticas
regulares
Linguagens
livres de
contexto
Autômatos
com pilha e
GLC’s
Definições básicas
Variações de PDA’s
PDA’s e GLC’s
Pumping Lemma para
LLC’s
Máquinas de
Turing
Alfabetos e
M = hΣ M , Γ M , S M , s0 , δ, F M i:
linguagens
Σ M = {a, b};
Autômatos
finitos
Γ M = {X};
Linguagens e
S M = {s0 , s1 , s2 };
gramáticas F M = {s1 , s2 };
δ(s0 , a, ε) = {(s0 , X)};
regulares
Linguagens
livres de δ(s0 , b, X) = {(s1 , ε)};
contexto δ(s0 , ε, ε) = {(s2 , ε)};
Autômatos
com pilha e
δ(s1 , b, X) = {(s1 , ε)};
GLC’s δ(s2 , ε, X) = {(s2 , ε)}.
Definições básicas
Variações de PDA’s
PDA’s e GLC’s
Pumping Lemma para
LLC’s
Máquinas de
Turing
Alfabetos e
M 0 = hΣ M , Γ M , S M , s0 , δ0 , F M i:
linguagens
Σ M = {a, b};
Autômatos
finitos
Γ M = {X};
Linguagens e
S M = {s0 , s1 , s2 };
gramáticas F M = {s1 , s2 };
regulares
Alfabetos e
G = (V, Σ, P, S ):
linguagens
Σ = ΣM .
Autômatos
finitos
V = {S } ∪ {hsi , X, s j i}, onde si , s j ∈ S M e X ∈ Γ ∪ {ε}.
Linguagens e
gramáticas
regulares
Linguagens
livres de
contexto
Autômatos
com pilha e
GLC’s
Definições básicas
Variações de PDA’s
PDA’s e GLC’s
Pumping Lemma para
LLC’s
Máquinas de
Turing
Alfabetos e
Transições Regras de derivação
linguagens S → hs0 , ε, s1 i
Autômatos
S → hs0 , ε, s2 i
finitos δ0 (s0 , a, ε) = {(s0 , X)} hs0 , ε, s0 i → ahs0 , X, s0 i
Linguagens e hs0 , ε, s1 i → ahs0 , X, s1 i
gramáticas hs0 , ε, s2 i → ahs0 , X, s2 i
regulares
δ0 (s0 , b, X) = {(s1 , ε)} hs0 , X, s0 i → bhs1 , ε, s0 i
Linguagens
livres de hs0 , X, s1 i → bhs1 , ε, s1 i
contexto hs0 , X, s2 i → bhs1 , ε, s2 i
Autômatos δ0 (s0 , ε, ε) = {(s2 , ε)} hs0 , ε, s0 i → εhs2 , ε, s0 i
com pilha e hs0 , ε, s1 i → εhs2 , ε, s1 i
GLC’s
Definições básicas
hs0 , ε, s2 i → εhs2 , ε, s2 i
Variações de PDA’s
δ0 (s0 , ε, X) = {(s2 , X)} hs0 , X, s0 i → εhs2 , X, s0 i
PDA’s e GLC’s
Pumping Lemma para hs0 , X, s1 i → εhs2 , X, s1 i
LLC’s
hs0 , X, s2 i → εhs2 , X, s2 i
Máquinas de
Turing
Alfabetos e
Transições Regras de derivação
linguagens δ0 (s0 , a, X) = {(s0 , XX)} hs0 , X, s0 i → ahs0 , X, s0 ihs0 , X, s0 i
Autômatos
hs0 , X, s1 i → ahs0 , X, s0 ihs0 , X, s1 i
finitos hs0 , X, s2 i → ahs0 , X, s0 ihs0 , X, s2 i
Linguagens e
hs0 , X, s0 i → ahs0 , X, s1 ihs1 , X, s0 i
gramáticas hs0 , X, s1 i → ahs0 , X, s1 ihs1 , X, s1 i
regulares hs0 , X, s2 i → ahs0 , X, s1 ihs1 , X, s2 i
Linguagens hs0 , X, s0 i → ahs0 , X, s2 ihs2 , X, s0 i
livres de hs0 , X, s1 i → ahs0 , X, s2 ihs2 , X, s1 i
contexto
hs0 , X, s2 i → ahs0 , X, s2 ihs2 , X, s2 i
Autômatos
com pilha e
GLC’s
Definições básicas
Variações de PDA’s
PDA’s e GLC’s
Pumping Lemma para
LLC’s
Máquinas de
Turing
Alfabetos e
Transições Regras de derivação
linguagens δ0 (s1 , b, X) = {(s1 , ε)} hs1 , X, s0 i → bhs1 , ε, s0 i
Autômatos
hs1 , X, s1 i → bhs1 , ε, s1 i
finitos hs1 , X, s2 i → bhs1 , ε, s2 i
Linguagens e δ0 (s2 , ε, X) = {(s2 , ε)} hs2 , X, s0 i → εhs2 , ε, s0 i
gramáticas hs2 , X, s1 i → εhs2 , ε, s1 i
regulares
hs2 , X, s2 i → εhs2 , ε, s2 i
Linguagens
livres de hs0 , ε, s0 i → ε
contexto hs1 , ε, s1 i → ε
Autômatos
hs2 , ε, s2 i → ε
com pilha e
GLC’s
Definições básicas
Variações de PDA’s
PDA’s e GLC’s
Pumping Lemma para
LLC’s
Máquinas de
Turing
Alfabetos e
Variável Variável original Variável Variável original
linguagens A hs0 , ε, s0 i J hs0 , X, s0 i
B hs0 , ε, s1 i K hs0 , X, s1 i
Autômatos
finitos C hs0 , ε, s2 i L hs0 , X, s2 i
D hs1 , ε, s0 i M hs1 , X, s0 i
Linguagens e
gramáticas E hs1 , ε, s1 i N hs1 , X, s1 i
regulares F hs1 , ε, s2 i O hs1 , X, s2 i
Linguagens G hs2 , ε, s0 i P hs2 , X, s0 i
livres de H hs2 , ε, s1 i Q hs2 , X, s1 i
contexto I hs2 , ε, s2 i R hs2 , X, s2 i
Autômatos
com pilha e
GLC’s
Definições básicas
Variações de PDA’s
PDA’s e GLC’s
Pumping Lemma para
LLC’s
Máquinas de
Turing
Alfabetos e
Transições Regras de derivação
linguagens S →B
Autômatos
S →C
finitos δ(s0 , a, ε) = {(s0 , X)} A → aJ
Linguagens e B → aK
gramáticas C → aL
regulares
δ(s0 , b, X) = {(s1 , ε)} J → bD
Linguagens
livres de K → bE
contexto L → bF
Autômatos δ(s0 , ε, ε) = {(s2 , ε)} A→G
com pilha e B→H
GLC’s
Definições básicas
C→I
Variações de PDA’s
δ(s0 , ε, X) = {(s2 , X)} J→P
PDA’s e GLC’s
Pumping Lemma para K→Q
LLC’s
L→R
Máquinas de
Turing
Alfabetos e
Transições Regras de derivação
linguagens δ(s0 , a, X) = {(s0 , XX)} J → aJJ
Autômatos
K → aJK
finitos L → aJL
Linguagens e
J → aK M
gramáticas K → aKN
regulares L → aKO
Linguagens J → aLP
livres de K → aLQ
contexto
L → aLR
Autômatos
com pilha e
GLC’s
Definições básicas
Variações de PDA’s
PDA’s e GLC’s
Pumping Lemma para
LLC’s
Máquinas de
Turing
Alfabetos e
Transições Regras de derivação
linguagens δ(s1 , b, X) = {(s1 , ε)} M → bD
Autômatos
N → bE
finitos O → bF
Linguagens e δ(s2 , ε, X) = {(s2 , ε)} P→G
gramáticas Q→H
regulares
R→I
Linguagens
livres de A→ε
contexto E→ε
Autômatos
I→ε
com pilha e
GLC’s
Definições básicas
Variações de PDA’s
PDA’s e GLC’s
Pumping Lemma para
LLC’s
Máquinas de
Turing
Alfabetos e
G = (V = {S , A, B, C, D, E, F, G, H, I, J, K, L, M, N, O, P, Q, R}, Σ = {a, b}, P, S ):
linguagens
Autômatos
S → B | C,
A → aJ | G | ε,
finitos
B → aK | H,
Linguagens e
C → aL | I,
gramáticas
regulares E → ε,
I → ε,
Linguagens
livres de J → bD | P | aJJ | aK M | aLP,
contexto
P=
K → bE | Q | aJK | aKN | aLQ,
L → bF | R | aJL | aKO | aLR,
Autômatos
com pilha e
GLC’s
M → bD,
Definições básicas
N → bE,
Variações de PDA’s
O → bF,
PDA’s e GLC’s
P → G,
Pumping Lemma para
Q → H,
LLC’s
R→I
Máquinas de
Turing
Alfabetos e
G1 = (V1 = {S , B, C, E, I, J, K, L, N, R}, Σ = {a, b}, P1 , S ):
linguagens
S → B | C,
Autômatos
finitos
B → aK,
Linguagens e C → aL | I,
gramáticas
E → ε,
regulares
I → ε,
Linguagens
P1 =
livres de
contexto
J → aJJ,
K → bE | aJK | aKN,
Autômatos
com pilha e L → R | aJL | aLR,
GLC’s
Definições básicas
N → bE,
Variações de PDA’s
PDA’s e GLC’s
R → bI
Pumping Lemma para
LLC’s
Máquinas de
Turing
Alfabetos e
G2 = (V2 = {S , B, C, E, I, K, L, N, R}, Σ = {a, b}, P2 , S ):
linguagens
Autômatos
S → B | C,
finitos
B → aK,
Linguagens e
gramáticas
C → aL | I,
E → ε,
regulares
P2 = I → ε,
Linguagens
livres de
K → bE | aKN,
contexto
Autômatos
L → R | aLR,
com pilha e
GLC’s
N → bE,
R→I
Definições básicas
Variações de PDA’s
PDA’s e GLC’s
Pumping Lemma para
LLC’s
Máquinas de
Turing
Alfabetos e
G3 = (V3 = {S , K, L}, Σ = {a, b}, P3 , S ):
linguagens
S → aK | aL | ε,
Autômatos
P3 =
finitos
K → b | aKb,
Linguagens e L → ε | aL
gramáticas
regulares
Linguagens
livres de
contexto
Autômatos
com pilha e
GLC’s
Definições básicas
Variações de PDA’s
PDA’s e GLC’s
Pumping Lemma para
LLC’s
Máquinas de
Turing
H. Longo
Corolário 7.29
Introdução
Fundamentos
Toda linguagem regular é livre de contexto.
matemáticos
Alfabetos e
linguagens
Autômatos
finitos
Linguagens e
gramáticas
regulares
Linguagens
livres de
contexto
Autômatos
com pilha e
GLC’s
Definições básicas
Variações de PDA’s
PDA’s e GLC’s
Pumping Lemma para
LLC’s
Máquinas de
Turing
H. Longo
Corolário 7.29
Introdução
Fundamentos
Toda linguagem regular é livre de contexto.
matemáticos
Alfabetos e
linguagens Demonstração.
Autômatos
finitos
Toda linguagem regular é reconhecida por um autômato finito.
Linguagens e
gramáticas
regulares
Linguagens
livres de
contexto
Autômatos
com pilha e
GLC’s
Definições básicas
Variações de PDA’s
PDA’s e GLC’s
Pumping Lemma para
LLC’s
Máquinas de
Turing
H. Longo
Corolário 7.29
Introdução
Fundamentos
Toda linguagem regular é livre de contexto.
matemáticos
Alfabetos e
linguagens Demonstração.
Autômatos
finitos
Toda linguagem regular é reconhecida por um autômato finito.
Linguagens e Todo autômato finito é um autômato com pilha que simplesmente ignora a sua
gramáticas
regulares pilha.
Linguagens
livres de
contexto
Autômatos
com pilha e
GLC’s
Definições básicas
Variações de PDA’s
PDA’s e GLC’s
Pumping Lemma para
LLC’s
Máquinas de
Turing
H. Longo
Corolário 7.29
Introdução
Fundamentos
Toda linguagem regular é livre de contexto.
matemáticos
Alfabetos e
linguagens Demonstração.
Autômatos
finitos
Toda linguagem regular é reconhecida por um autômato finito.
Linguagens e Todo autômato finito é um autômato com pilha que simplesmente ignora a sua
gramáticas
regulares pilha.
Linguagens
livres de
Toda linguagem regular é também livre de contexto.
contexto
Autômatos
com pilha e
GLC’s
Definições básicas
Variações de PDA’s
PDA’s e GLC’s
Pumping Lemma para
LLC’s
Máquinas de
Turing
H. Longo
Corolário 7.29
Introdução
Fundamentos
Toda linguagem regular é livre de contexto.
matemáticos
Alfabetos e
linguagens Demonstração.
Autômatos
finitos
Toda linguagem regular é reconhecida por um autômato finito.
Linguagens e Todo autômato finito é um autômato com pilha que simplesmente ignora a sua
gramáticas
regulares pilha.
Linguagens
livres de
Toda linguagem regular é também livre de contexto.
contexto
Autômatos
com pilha e
Linguagens Livres de Contexto
GLC’s (Autômato com Pilha – PDA)
Definições básicas
Variações de PDA’s Linguagens Regulares
PDA’s e GLC’s
Pumping Lemma para
(Autômato Finito – DFA)
LLC’s
Máquinas de
Turing
H. Longo
Introdução
Fundamentos
matemáticos
Alfabetos e
linguagens
Linguagens e
gramáticas
regulares
Linguagens
Pumping Lemma para LLC’s
livres de
contexto
Autômatos
com pilha e
GLC’s
Definições básicas
Variações de PDA’s
PDA’s e GLC’s
Pumping Lemma para
LLC’s
Máquinas de
Turing
H. Longo
Lema 7.30
Introdução
Fundamentos
Se L é uma linguagem livre de contexto, então existe um número p tal que cada
matemáticos w = uvxyz ∈ L, com |w| ≥ p, satisfaz:
Alfabetos e
linguagens
Autômatos
1 uvi xyi z ∈ L, i ≥ 0,
finitos
Linguagens
3 |vxy| ≤ p.
livres de
contexto
Autômatos
com pilha e
GLC’s
Definições básicas
Variações de PDA’s
PDA’s e GLC’s
Pumping Lemma para
LLC’s
Máquinas de
Turing
H. Longo
Lema 7.30
Introdução
Fundamentos
Se L é uma linguagem livre de contexto, então existe um número p tal que cada
matemáticos w = uvxyz ∈ L, com |w| ≥ p, satisfaz:
Alfabetos e
linguagens
Autômatos
1 uvi xyi z ∈ L, i ≥ 0,
finitos
Linguagens
3 |vxy| ≤ p.
livres de
contexto
Autômatos
com pilha e
p é chamado de pumping length.
GLC’s
Definições básicas
Variações de PDA’s
PDA’s e GLC’s
Pumping Lemma para
LLC’s
Máquinas de
Turing
H. Longo
Lema 7.30
Introdução
Fundamentos
Se L é uma linguagem livre de contexto, então existe um número p tal que cada
matemáticos w = uvxyz ∈ L, com |w| ≥ p, satisfaz:
Alfabetos e
linguagens
Autômatos
1 uvi xyi z ∈ L, i ≥ 0,
finitos
Linguagens
3 |vxy| ≤ p.
livres de
contexto
Autômatos
com pilha e
p é chamado de pumping length.
GLC’s
Definições básicas
Variações de PDA’s
Condição 2 indica que v ou y não é uma cadeia vazia.
PDA’s e GLC’s
Pumping Lemma para
LLC’s
Máquinas de
Turing
H. Longo
Lema 7.30
Introdução
Fundamentos
Se L é uma linguagem livre de contexto, então existe um número p tal que cada
matemáticos w = uvxyz ∈ L, com |w| ≥ p, satisfaz:
Alfabetos e
linguagens
Autômatos
1 uvi xyi z ∈ L, i ≥ 0,
finitos
Linguagens
3 |vxy| ≤ p.
livres de
contexto
Autômatos
com pilha e
p é chamado de pumping length.
GLC’s
Definições básicas
Variações de PDA’s
Condição 2 indica que v ou y não é uma cadeia vazia.
PDA’s e GLC’s
Pumping Lemma para
LLC’s Condição 3 indica que v, x e y juntos têm comprimento máximo p.
Máquinas de
Turing
Fundamentos
matemáticos
Alfabetos e
linguagens
Autômatos
finitos
Linguagens e
gramáticas
regulares
Linguagens
livres de
contexto
Autômatos
com pilha e
GLC’s
Definições básicas
Variações de PDA’s
PDA’s e GLC’s
Pumping Lemma para
LLC’s
Máquinas de
Turing
Alfabetos e
linguagens
Autômatos
finitos
Linguagens e
gramáticas
regulares
Linguagens
livres de
contexto
Autômatos
com pilha e
GLC’s
Definições básicas
Variações de PDA’s
PDA’s e GLC’s
Pumping Lemma para
LLC’s
Máquinas de
Turing
Autômatos
finitos
Linguagens e
gramáticas
regulares
Linguagens
livres de
contexto
Autômatos
com pilha e
GLC’s
Definições básicas
Variações de PDA’s
PDA’s e GLC’s
Pumping Lemma para
LLC’s
Máquinas de
Turing
Linguagens
livres de
contexto
Autômatos
com pilha e
GLC’s
Definições básicas
Variações de PDA’s
PDA’s e GLC’s
Pumping Lemma para
LLC’s
Máquinas de
Turing
Linguagens
livres de
contexto
Autômatos
com pilha e
GLC’s
Definições básicas
Variações de PDA’s
PDA’s e GLC’s
Pumping Lemma para
LLC’s
Máquinas de
Turing
Alfabetos e
linguagens
Autômatos
finitos
Linguagens e
gramáticas
regulares
Linguagens
livres de
contexto
Autômatos
com pilha e
GLC’s
Definições básicas
Variações de PDA’s
PDA’s e GLC’s
Pumping Lemma para
LLC’s
Máquinas de
Turing
Alfabetos e
linguagens
b ≥ 2 número máximo de símbolos no lado direito de uma produção.
Autômatos
finitos
Linguagens e
gramáticas
regulares
Linguagens
livres de
contexto
Autômatos
com pilha e
GLC’s
Definições básicas
Variações de PDA’s
PDA’s e GLC’s
Pumping Lemma para
LLC’s
Máquinas de
Turing
Alfabetos e
linguagens
b ≥ 2 número máximo de símbolos no lado direito de uma produção.
Autômatos Um nó tem no máximo b filhos.
finitos
No máximo b folhas no nível 1, b2 no nível 2,. . . , bh no nível h.
Linguagens e
gramáticas
regulares
Árvore de altura h ⇒ Cadeia de comprimento máximo bh .
Linguagens
livres de
contexto
Autômatos
com pilha e
GLC’s
Definições básicas
Variações de PDA’s
PDA’s e GLC’s
Pumping Lemma para
LLC’s
Máquinas de
Turing
Alfabetos e
linguagens
Autômatos
finitos
Linguagens e
gramáticas
regulares
Linguagens
livres de
contexto
Autômatos
com pilha e
GLC’s
Definições básicas
Variações de PDA’s
PDA’s e GLC’s
Pumping Lemma para
LLC’s
Máquinas de
Turing
Alfabetos e p = b|V|+2
linguagens
Autômatos
b ≥ 2 ⇒ p > b|V|+1
finitos
|s| ≥ p ⇒ τ tem altura mínima |V| + 2.
Linguagens e
gramáticas O caminho mais longo em τ tem no mínimo |V| + 2 nós, onde pelo menos |V| + 1
regulares
são variáveis (só folhas são terminais).
Linguagens
livres de Alguma variável aparece mais de uma vez nesse caminho.
contexto
Autômatos
R é uma variável dentre as |V| + 1 variáveis mais inferiores do caminho.
com pilha e
GLC’s
Definições básicas
Variações de PDA’s
PDA’s e GLC’s
Pumping Lemma para
LLC’s
Máquinas de
Turing
Fundamentos
matemáticos R R R
Alfabetos e
linguagens
R R
Autômatos x
finitos
Linguagens e R
gramáticas u z u v x y z u v y z
regulares
Linguagens
livres de v x y
contexto
Autômatos
com pilha e
GLC’s
Definições básicas
Variações de PDA’s
PDA’s e GLC’s
Pumping Lemma para
LLC’s
Máquinas de
Turing
Fundamentos
Cada ocorrência de R gera uma subárvore com parte da cadeia s.
matemáticos Ocorrência superior de R (subárvore τ1 ) gera a cadeia vxy.
Alfabetos e Ocorrência inferior de R (subárvore τ2 ) gera a cadeia x.
linguagens
Subárvores τ1 e τ2 são geradas pela mesma variável.
Autômatos
finitos Substituir uma pela outra gera árvore de derivação válida.
Linguagens e Troca da menor pela maior repetidas vezes gera árvores de derivação para
gramáticas
regulares
cadeias uvi xyi z, para i > 1.
Linguagens
Troca da maior pela menor gera a cadeia uxz.
livres de
contexto 2 |vy| > 0,
Autômatos
com pilha e
GLC’s 3 |vxy| ≤ p.
Definições básicas
Variações de PDA’s
PDA’s e GLC’s
Pumping Lemma para
LLC’s
Máquinas de
Turing
Linguagens
3 |vxy| ≤ p.
livres de
contexto
Autômatos
com pilha e
GLC’s
Definições básicas
Variações de PDA’s
PDA’s e GLC’s
Pumping Lemma para
LLC’s
Máquinas de
Turing
Fundamentos
matemáticos
2 |vy| > 0,
Alfabetos e
linguagens
3 |vxy| ≤ p.
Autômatos Ocorrência superior de R gera vxy.
finitos
Linguagens e
Ocorrências de R entre as |V| + 1 variáveis mais inferiores do caminho.
gramáticas
regulares Subárvore com R como raiz tem altura máxima |V| + 2.
Linguagens Cadeia gerada por R tem comprimento máximo b|V|+2 = p.
livres de
contexto
Autômatos
com pilha e
GLC’s
Definições básicas
Variações de PDA’s
PDA’s e GLC’s
Pumping Lemma para
LLC’s
Máquinas de
Turing
Fundamentos
matemáticos
Alfabetos e R
linguagens
Autômatos |V|
finitos
Linguagens e R
gramáticas
regulares
Linguagens
livres de
contexto
1 u v x y z
Autômatos
com pilha e
GLC’s
Definições básicas
Variações de PDA’s
PDA’s e GLC’s
Pumping Lemma para
LLC’s
Máquinas de
Turing
H. Longo
Introdução
Autômatos
finitos
Linguagens e
gramáticas
regulares
Linguagens
livres de
contexto
Autômatos
com pilha e
GLC’s
Definições básicas
Variações de PDA’s
PDA’s e GLC’s
Pumping Lemma para
LLC’s
Máquinas de
Turing
H. Longo
Introdução
Linguagens
livres de
contexto
Autômatos
com pilha e
GLC’s
Definições básicas
Variações de PDA’s
PDA’s e GLC’s
Pumping Lemma para
LLC’s
Máquinas de
Turing
H. Longo
Introdução
Linguagens
livres de
contexto
Autômatos
com pilha e
GLC’s
Definições básicas
Variações de PDA’s
PDA’s e GLC’s
Pumping Lemma para
LLC’s
Máquinas de
Turing
H. Longo
Introdução
Máquinas de
Turing
H. Longo
Introdução
Máquinas de
Turing
H. Longo
Introdução
Máquinas de
Turing
H. Longo
Introdução
Máquinas de
Turing
H. Longo
Exemplo 7.32
Introdução
L = {ai b j ck | 0 ≤ i ≤ j ≤ k} não é livre de contexto:
Fundamentos
matemáticos
Alfabetos e
linguagens
Autômatos
finitos
Linguagens e
gramáticas
regulares
Linguagens
livres de
contexto
Autômatos
com pilha e
GLC’s
Definições básicas
Variações de PDA’s
PDA’s e GLC’s
Pumping Lemma para
LLC’s
Máquinas de
Turing
H. Longo
Exemplo 7.32
Introdução
L = {ai b j ck | 0 ≤ i ≤ j ≤ k} não é livre de contexto:
Fundamentos
matemáticos
Supor L LLC , p é o pumping length e s = a p b p c p = uvxyz.
Alfabetos e
linguagens
Autômatos
finitos
Linguagens e
gramáticas
regulares
Linguagens
livres de
contexto
Autômatos
com pilha e
GLC’s
Definições básicas
Variações de PDA’s
PDA’s e GLC’s
Pumping Lemma para
LLC’s
Máquinas de
Turing
H. Longo
Exemplo 7.32
Introdução
L = {ai b j ck | 0 ≤ i ≤ j ≤ k} não é livre de contexto:
Fundamentos
matemáticos
Supor L LLC , p é o pumping length e s = a p b p c p = uvxyz.
Alfabetos e
linguagens v e y contém, cada um, apenas um tipo de símbolo:
Autômatos
finitos
Linguagens e
gramáticas
regulares
Linguagens
livres de
contexto
Autômatos
com pilha e
GLC’s
Definições básicas
Variações de PDA’s
PDA’s e GLC’s
Pumping Lemma para
LLC’s
Máquinas de
Turing
H. Longo
Exemplo 7.32
Introdução
L = {ai b j ck | 0 ≤ i ≤ j ≤ k} não é livre de contexto:
Fundamentos
matemáticos
Supor L LLC , p é o pumping length e s = a p b p c p = uvxyz.
Alfabetos e
linguagens v e y contém, cada um, apenas um tipo de símbolo:
Autômatos a não aparece em v ou y:
finitos
Linguagens e
gramáticas b não aparece em v ou y:
regulares
Linguagens
livres de
contexto
Máquinas de
Turing
H. Longo
Exemplo 7.32
Introdução
L = {ai b j ck | 0 ≤ i ≤ j ≤ k} não é livre de contexto:
Fundamentos
matemáticos
Supor L LLC , p é o pumping length e s = a p b p c p = uvxyz.
Alfabetos e
linguagens v e y contém, cada um, apenas um tipo de símbolo:
Autômatos a não aparece em v ou y:
finitos
uv0 xy0 z = uxz contém mesmo número de a´s que s, mas menos b´s ou c´s.
Linguagens e
gramáticas b não aparece em v ou y:
regulares
Linguagens
livres de
contexto
Máquinas de
Turing
H. Longo
Exemplo 7.32
Introdução
L = {ai b j ck | 0 ≤ i ≤ j ≤ k} não é livre de contexto:
Fundamentos
matemáticos
Supor L LLC , p é o pumping length e s = a p b p c p = uvxyz.
Alfabetos e
linguagens v e y contém, cada um, apenas um tipo de símbolo:
Autômatos a não aparece em v ou y:
finitos
uv0 xy0 z = uxz contém mesmo número de a´s que s, mas menos b´s ou c´s.
Linguagens e
gramáticas b não aparece em v ou y:
regulares
a ou c deve aparecer em v ou y (não podem ser ε).
Linguagens
livres de
Se a aparece, a cadeia uv2 xy2 z contém mais a´s do que b´s.
contexto Se c aparece, a cadeia uv0 xy0 z contém mais b´s do que c´s.
Autômatos c não aparece em v ou y:
com pilha e
GLC’s
Definições básicas
Variações de PDA’s
PDA’s e GLC’s
Pumping Lemma para
LLC’s
Máquinas de
Turing
H. Longo
Exemplo 7.32
Introdução
L = {ai b j ck | 0 ≤ i ≤ j ≤ k} não é livre de contexto:
Fundamentos
matemáticos
Supor L LLC , p é o pumping length e s = a p b p c p = uvxyz.
Alfabetos e
linguagens v e y contém, cada um, apenas um tipo de símbolo:
Autômatos a não aparece em v ou y:
finitos
uv0 xy0 z = uxz contém mesmo número de a´s que s, mas menos b´s ou c´s.
Linguagens e
gramáticas b não aparece em v ou y:
regulares
a ou c deve aparecer em v ou y (não podem ser ε).
Linguagens
livres de
Se a aparece, a cadeia uv2 xy2 z contém mais a´s do que b´s.
contexto Se c aparece, a cadeia uv0 xy0 z contém mais b´s do que c´s.
Autômatos c não aparece em v ou y:
com pilha e
GLC’s A cadeia uv2 xy2 z = uxz contém mais b´s do que c´s.
Definições básicas
Variações de PDA’s
PDA’s e GLC’s
Pumping Lemma para
LLC’s
Máquinas de
Turing
H. Longo
Exemplo 7.32
Introdução
L = {ai b j ck | 0 ≤ i ≤ j ≤ k} não é livre de contexto:
Fundamentos
matemáticos
Supor L LLC , p é o pumping length e s = a p b p c p = uvxyz.
Alfabetos e
linguagens v e y contém, cada um, apenas um tipo de símbolo:
Autômatos a não aparece em v ou y:
finitos
uv0 xy0 z = uxz contém mesmo número de a´s que s, mas menos b´s ou c´s.
Linguagens e
gramáticas b não aparece em v ou y:
regulares
a ou c deve aparecer em v ou y (não podem ser ε).
Linguagens
livres de
Se a aparece, a cadeia uv2 xy2 z contém mais a´s do que b´s.
contexto Se c aparece, a cadeia uv0 xy0 z contém mais b´s do que c´s.
Autômatos c não aparece em v ou y:
com pilha e
GLC’s A cadeia uv2 xy2 z = uxz contém mais b´s do que c´s.
Definições básicas
Variações de PDA’s v e y contém mais de um tipo de símbolo:
PDA’s e GLC’s
Pumping Lemma para uv2 xy2 z não contém a´s, b´s e c´s na ordem correta.
LLC’s
Máquinas de
Turing
H. Longo
Exemplo 7.32
Introdução
L = {ai b j ck | 0 ≤ i ≤ j ≤ k} não é livre de contexto:
Fundamentos
matemáticos
Supor L LLC , p é o pumping length e s = a p b p c p = uvxyz.
Alfabetos e
linguagens v e y contém, cada um, apenas um tipo de símbolo:
Autômatos a não aparece em v ou y:
finitos
uv0 xy0 z = uxz contém mesmo número de a´s que s, mas menos b´s ou c´s.
Linguagens e
gramáticas b não aparece em v ou y:
regulares
a ou c deve aparecer em v ou y (não podem ser ε).
Linguagens
livres de
Se a aparece, a cadeia uv2 xy2 z contém mais a´s do que b´s.
contexto Se c aparece, a cadeia uv0 xy0 z contém mais b´s do que c´s.
Autômatos c não aparece em v ou y:
com pilha e
GLC’s A cadeia uv2 xy2 z = uxz contém mais b´s do que c´s.
Definições básicas
Variações de PDA’s v e y contém mais de um tipo de símbolo:
PDA’s e GLC’s
Pumping Lemma para uv2 xy2 z não contém a´s, b´s e c´s na ordem correta.
LLC’s
Alfabetos e
linguagens
Autômatos
finitos
Linguagens e
gramáticas
regulares
Linguagens
livres de
contexto
Autômatos
com pilha e
GLC’s
Definições básicas
Variações de PDA’s
PDA’s e GLC’s
Pumping Lemma para
LLC’s
Máquinas de
Turing
Autômatos
finitos
Linguagens e
gramáticas
regulares
Linguagens
livres de
contexto
Autômatos
com pilha e
GLC’s
Definições básicas
Variações de PDA’s
PDA’s e GLC’s
Pumping Lemma para
LLC’s
Máquinas de
Turing
Linguagens e
gramáticas
regulares
Linguagens
livres de
contexto
Autômatos
com pilha e
GLC’s
Definições básicas
Variações de PDA’s
PDA’s e GLC’s
Pumping Lemma para
LLC’s
Máquinas de
Turing
Máquinas de
Turing
Linguagens
livres de
contexto
Autômatos
com pilha e
GLC’s
Definições básicas
Variações de PDA’s
PDA’s e GLC’s
Pumping Lemma para
LLC’s
Máquinas de
Turing
Autômatos
com pilha e
GLC’s
Definições básicas
Variações de PDA’s
PDA’s e GLC’s
Pumping Lemma para
LLC’s
Máquinas de
Turing
Máquinas de
Turing
H. Longo
Introdução
Fundamentos
matemáticos
Alfabetos e
linguagens
Linguagens e
gramáticas
regulares
Linguagens
Definições básicas
livres de
contexto
Autômatos
com pilha e
GLC’s
Máquinas de
Turing
Definições básicas
Variações
H. Longo
Introdução
Fundamentos
matemáticos Modelos de dispositivos computacionais.
Alfabetos e
linguagens
Autômatos Finitos → adequado para dispositivos com pequena quantidade de
Autômatos memória.
finitos
Linguagens e
gramáticas Autômatos com Pilha → adequado para dispositivos com memória ilimitada,
regulares
mas de acesso limitado como pilha.
Linguagens
livres de
contexto
Autômatos
Máquina de Turing → Similar aos autômatos, mas com memória ilimitada e de
com pilha e
GLC’s
acesso irrestrito.
Máquinas de
Turing
Definições básicas
Variações
Linguagens
livres de
contexto
Autômatos
com pilha e
GLC’s
Máquinas de
Turing
Definições básicas
Variações
H. Longo
Introdução
Exemplo 8.1
Fundamentos
matemáticos L = {u#u | u ∈ {0, 1}∗ }.
Alfabetos e
linguagens
Autômatos
finitos
Linguagens e
gramáticas
regulares
Linguagens
livres de
contexto
Autômatos
com pilha e
GLC’s
Máquinas de
Turing
Definições básicas
Variações
H. Longo
Introdução
Exemplo 8.1
Fundamentos
matemáticos L = {u#u | u ∈ {0, 1}∗ }.
Alfabetos e
linguagens
Máquina de Turing para verificar se w = u#u ∈ L, com u ∈ {0, 1}∗ :
Autômatos
finitos
1 Verificar se o símbolo # pertence a w.
Linguagens e
Em caso negativo, rejeita.
gramáticas
regulares 2 Verificar se posições relativas à direita e à esquerda do símbolo # contém o
Linguagens mesmo símbolo.
livres de
contexto Em caso negativo, rejeita.
Autômatos
com pilha e 3 Após testar os símbolos à esquerda do símbolo #, verificar se ainda tem
GLC’s
símbolos à direita sem testar.
Máquinas de
Turing
Em caso positivo rejeita e em caso negativo aceita.
Definições básicas
Variações
H. Longo
Introdução
Fundamentos
matemáticos
Alfabetos e
linguagens
Exemplo 8.2
Autômatos
finitos L = {u#u | u ∈ {0, 1}∗ }.
Linguagens e
gramáticas ... 0 1 1 0 0 0 # 0 1 1 0 0 0 ...
regulares
Linguagens
livres de
contexto
Autômatos
com pilha e
GLC’s
Máquinas de
Turing
Definições básicas
Variações
H. Longo
Introdução
Fundamentos
matemáticos
Alfabetos e
linguagens
Exemplo 8.2
Autômatos
finitos L = {u#u | u ∈ {0, 1}∗ }.
Linguagens e
gramáticas ... 0
X 1 1 0 0 0 # 0 1 1 0 0 0 ...
regulares
Linguagens
livres de
contexto
Autômatos
com pilha e
GLC’s
Máquinas de
Turing
Definições básicas
Variações
H. Longo
Introdução
Fundamentos
matemáticos
Alfabetos e
linguagens
Exemplo 8.2
Autômatos
finitos L = {u#u | u ∈ {0, 1}∗ }.
Linguagens e
gramáticas ... 0
X 1 1 0 0 0 # 0 1 1 0 0 0 ...
regulares
Linguagens
livres de
contexto
Autômatos
com pilha e
GLC’s
Máquinas de
Turing
Definições básicas
Variações
H. Longo
Introdução
Fundamentos
matemáticos
Alfabetos e
linguagens
Exemplo 8.2
Autômatos
finitos L = {u#u | u ∈ {0, 1}∗ }.
Linguagens e
gramáticas ... 0
X 1 1 0 0 0 # 0 1 1 0 0 0 ...
regulares
Linguagens
livres de
contexto
Autômatos
com pilha e
GLC’s
Máquinas de
Turing
Definições básicas
Variações
H. Longo
Introdução
Fundamentos
matemáticos
Alfabetos e
linguagens
Exemplo 8.2
Autômatos
finitos L = {u#u | u ∈ {0, 1}∗ }.
Linguagens e
gramáticas ... 0
X 1 1 0 0 0 # 0 1 1 0 0 0 ...
regulares
Linguagens
livres de
contexto
Autômatos
com pilha e
GLC’s
Máquinas de
Turing
Definições básicas
Variações
H. Longo
Introdução
Fundamentos
matemáticos
Alfabetos e
linguagens
Exemplo 8.2
Autômatos
finitos L = {u#u | u ∈ {0, 1}∗ }.
Linguagens e
gramáticas ... 0
X 1 1 0 0 0 # 0 1 1 0 0 0 ...
regulares
Linguagens
livres de
contexto
Autômatos
com pilha e
GLC’s
Máquinas de
Turing
Definições básicas
Variações
H. Longo
Introdução
Fundamentos
matemáticos
Alfabetos e
linguagens
Exemplo 8.2
Autômatos
finitos L = {u#u | u ∈ {0, 1}∗ }.
Linguagens e
gramáticas ... 0
X 1 1 0 0 0 # 0 1 1 0 0 0 ...
regulares
Linguagens
livres de
contexto
Autômatos
com pilha e
GLC’s
Máquinas de
Turing
Definições básicas
Variações
H. Longo
Introdução
Fundamentos
matemáticos
Alfabetos e
linguagens
Exemplo 8.2
Autômatos
finitos L = {u#u | u ∈ {0, 1}∗ }.
Linguagens e
gramáticas ... 0
X 1 1 0 0 0 # 0 1 1 0 0 0 ...
regulares
Linguagens
livres de
contexto
Autômatos
com pilha e
GLC’s
Máquinas de
Turing
Definições básicas
Variações
H. Longo
Introdução
Fundamentos
matemáticos
Alfabetos e
linguagens
Exemplo 8.2
Autômatos
finitos L = {u#u | u ∈ {0, 1}∗ }.
Linguagens e
gramáticas ... 0
X 1 1 0 0 0 # 0
X 1 1 0 0 0 ...
regulares
Linguagens
livres de
contexto
Autômatos
com pilha e
GLC’s
Máquinas de
Turing
Definições básicas
Variações
H. Longo
Introdução
Fundamentos
matemáticos
Alfabetos e
linguagens
Exemplo 8.2
Autômatos
finitos L = {u#u | u ∈ {0, 1}∗ }.
Linguagens e
gramáticas ... 0
X 1 1 0 0 0 # 0
X 1 1 0 0 0 ...
regulares
Linguagens
livres de
contexto
Autômatos
com pilha e
GLC’s
Máquinas de
Turing
Definições básicas
Variações
H. Longo
Introdução
Fundamentos
matemáticos
Alfabetos e
linguagens
Exemplo 8.2
Autômatos
finitos L = {u#u | u ∈ {0, 1}∗ }.
Linguagens e
gramáticas ... 0
X 1 1 0 0 0 # 0
X 1 1 0 0 0 ...
regulares
Linguagens
livres de
contexto
Autômatos
com pilha e
GLC’s
Máquinas de
Turing
Definições básicas
Variações
H. Longo
Introdução
Fundamentos
matemáticos
Alfabetos e
linguagens
Exemplo 8.2
Autômatos
finitos L = {u#u | u ∈ {0, 1}∗ }.
Linguagens e
gramáticas ... 0
X 1 1 0 0 0 # 0
X 1 1 0 0 0 ...
regulares
Linguagens
livres de
contexto
Autômatos
com pilha e
GLC’s
Máquinas de
Turing
Definições básicas
Variações
H. Longo
Introdução
Fundamentos
matemáticos
Alfabetos e
linguagens
Exemplo 8.2
Autômatos
finitos L = {u#u | u ∈ {0, 1}∗ }.
Linguagens e
gramáticas ... 0
X 1 1 0 0 0 # 0
X 1 1 0 0 0 ...
regulares
Linguagens
livres de
contexto
Autômatos
com pilha e
GLC’s
Máquinas de
Turing
Definições básicas
Variações
H. Longo
Introdução
Fundamentos
matemáticos
Alfabetos e
linguagens
Exemplo 8.2
Autômatos
finitos L = {u#u | u ∈ {0, 1}∗ }.
Linguagens e
gramáticas ... 0
X 1 1 0 0 0 # 0
X 1 1 0 0 0 ...
regulares
Linguagens
livres de
contexto
Autômatos
com pilha e
GLC’s
Máquinas de
Turing
Definições básicas
Variações
H. Longo
Introdução
Fundamentos
matemáticos
Alfabetos e
linguagens
Exemplo 8.2
Autômatos
finitos L = {u#u | u ∈ {0, 1}∗ }.
Linguagens e
gramáticas ... 0
X 1 1 0 0 0 # 0
X 1 1 0 0 0 ...
regulares
Linguagens
livres de
contexto
Autômatos
com pilha e
GLC’s
Máquinas de
Turing
Definições básicas
Variações
H. Longo
Introdução
Fundamentos
matemáticos
Alfabetos e
linguagens
Exemplo 8.2
Autômatos
finitos L = {u#u | u ∈ {0, 1}∗ }.
Linguagens e
gramáticas ... 0
X 1 1 0 0 0 # 0
X 1 1 0 0 0 ...
regulares
Linguagens
livres de
contexto
Autômatos
com pilha e
GLC’s
Máquinas de
Turing
Definições básicas
Variações
H. Longo
Introdução
Fundamentos
matemáticos
Alfabetos e
linguagens
Exemplo 8.2
Autômatos
finitos L = {u#u | u ∈ {0, 1}∗ }.
Linguagens e
gramáticas ... 0
X 1
X 1 0 0 0 # 0
X 1 1 0 0 0 ...
regulares
Linguagens
livres de
contexto
Autômatos
com pilha e
GLC’s
Máquinas de
Turing
Definições básicas
Variações
H. Longo
Introdução
Fundamentos
matemáticos
Alfabetos e
linguagens
Exemplo 8.2
Autômatos
finitos L = {u#u | u ∈ {0, 1}∗ }.
Linguagens e
gramáticas ... 0
X 1
X 1 0 0 0 # 0
X 1 1 0 0 0 ...
regulares
Linguagens
livres de
contexto
Autômatos
com pilha e
GLC’s
Máquinas de
Turing
Definições básicas
Variações
H. Longo
Introdução
Fundamentos
matemáticos
Alfabetos e
linguagens
Exemplo 8.2
Autômatos
finitos L = {u#u | u ∈ {0, 1}∗ }.
Linguagens e
gramáticas ... 0
X 1
X 1 0 0 0 # 0
X 1 1 0 0 0 ...
regulares
Linguagens
livres de
contexto
Autômatos
com pilha e
GLC’s
Máquinas de
Turing
Definições básicas
Variações
H. Longo
Introdução
Fundamentos
matemáticos
Alfabetos e
linguagens
Exemplo 8.2
Autômatos
finitos L = {u#u | u ∈ {0, 1}∗ }.
Linguagens e
gramáticas ... 0
X 1
X 1 0 0 0 # 0
X 1 1 0 0 0 ...
regulares
Linguagens
livres de
contexto
Autômatos
com pilha e
GLC’s
Máquinas de
Turing
Definições básicas
Variações
H. Longo
Introdução
Fundamentos
matemáticos
Alfabetos e
linguagens
Exemplo 8.2
Autômatos
finitos L = {u#u | u ∈ {0, 1}∗ }.
Linguagens e
gramáticas ... 0
X 1
X 1 0 0 0 # 0
X 1 1 0 0 0 ...
regulares
Linguagens
livres de
contexto
Autômatos
com pilha e
GLC’s
Máquinas de
Turing
Definições básicas
Variações
H. Longo
Introdução
Fundamentos
matemáticos
Alfabetos e
linguagens
Exemplo 8.2
Autômatos
finitos L = {u#u | u ∈ {0, 1}∗ }.
Linguagens e
gramáticas ... 0
X 1
X 1 0 0 0 # 0
X 1 1 0 0 0 ...
regulares
Linguagens
livres de
contexto
Autômatos
com pilha e
GLC’s
Máquinas de
Turing
Definições básicas
Variações
H. Longo
Introdução
Fundamentos
matemáticos
Alfabetos e
linguagens
Exemplo 8.2
Autômatos
finitos L = {u#u | u ∈ {0, 1}∗ }.
Linguagens e
gramáticas ... 0
X 1
X 1 0 0 0 # 0
X 1 1 0 0 0 ...
regulares
Linguagens
livres de
contexto
Autômatos
com pilha e
GLC’s
Máquinas de
Turing
Definições básicas
Variações
H. Longo
Introdução
Fundamentos
matemáticos
Alfabetos e
linguagens
Exemplo 8.2
Autômatos
finitos L = {u#u | u ∈ {0, 1}∗ }.
Linguagens e
gramáticas ... 0
X 1
X 1 0 0 0 # 0
X X
1 1 0 0 0 ...
regulares
Linguagens
livres de
contexto
Autômatos
com pilha e
GLC’s
Máquinas de
Turing
Definições básicas
Variações
H. Longo
Introdução
Fundamentos
matemáticos
Alfabetos e
linguagens
Exemplo 8.2
Autômatos
finitos L = {u#u | u ∈ {0, 1}∗ }.
Linguagens e
gramáticas ... 0
X 1
X 1 0 0 0 # 0
X X
1 1 0 0 0 ...
regulares
Linguagens
livres de
contexto
Autômatos
com pilha e
GLC’s
Máquinas de
Turing
Definições básicas
Variações
H. Longo
Introdução
Fundamentos
matemáticos
Alfabetos e
linguagens
Exemplo 8.2
Autômatos
finitos L = {u#u | u ∈ {0, 1}∗ }.
Linguagens e
gramáticas ... 0
X 1
X 1 0 0 0 # 0
X X
1 1 0 0 0 ...
regulares
Linguagens
livres de
contexto
Autômatos
com pilha e
GLC’s
Máquinas de
Turing
Definições básicas
Variações
H. Longo
Introdução
Fundamentos
matemáticos
Alfabetos e
linguagens
Exemplo 8.2
Autômatos
finitos L = {u#u | u ∈ {0, 1}∗ }.
Linguagens e
gramáticas ... 0
X 1
X 1 0 0 0 # 0
X X
1 1 0 0 0 ...
regulares
Linguagens
livres de
contexto
Autômatos
com pilha e
GLC’s
Máquinas de
Turing
Definições básicas
Variações
H. Longo
Introdução
Fundamentos
matemáticos
Alfabetos e
linguagens
Exemplo 8.2
Autômatos
finitos L = {u#u | u ∈ {0, 1}∗ }.
Linguagens e
gramáticas ... 0
X 1
X 1 0 0 0 # 0
X X
1 1 0 0 0 ...
regulares
Linguagens
livres de
contexto
Autômatos
com pilha e
GLC’s
Máquinas de
Turing
Definições básicas
Variações
H. Longo
Introdução
Fundamentos
matemáticos
Alfabetos e
linguagens
Exemplo 8.2
Autômatos
finitos L = {u#u | u ∈ {0, 1}∗ }.
Linguagens e
gramáticas ... 0
X 1
X 1 0 0 0 # 0
X X
1 1 0 0 0 ...
regulares
Linguagens
livres de
contexto
Autômatos
com pilha e
GLC’s
Máquinas de
Turing
Definições básicas
Variações
H. Longo
Introdução
Fundamentos
matemáticos
Alfabetos e
linguagens
Exemplo 8.2
Autômatos
finitos L = {u#u | u ∈ {0, 1}∗ }.
Linguagens e
gramáticas ... 0
X 1
X 1 0 0 0 # 0
X X
1 1 0 0 0 ...
regulares
Linguagens
livres de
contexto
Autômatos
com pilha e
GLC’s
Máquinas de
Turing
Definições básicas
Variações
H. Longo
Introdução
Fundamentos
matemáticos
Alfabetos e
linguagens
Exemplo 8.2
Autômatos
finitos L = {u#u | u ∈ {0, 1}∗ }.
Linguagens e
gramáticas ... 0
X 1
X 1 0 0 0 # 0
X X
1 1 0 0 0 ...
regulares
Linguagens
livres de
contexto
Autômatos
com pilha e
GLC’s
Máquinas de
Turing
Definições básicas
Variações
H. Longo
Introdução
Fundamentos
matemáticos
Alfabetos e
linguagens
Exemplo 8.2
Autômatos
finitos L = {u#u | u ∈ {0, 1}∗ }.
Linguagens e
gramáticas ... 0
X 1
X X
1 0 0 0 # 0
X X
1 1 0 0 0 ...
regulares
Linguagens
livres de
contexto
Autômatos
com pilha e
GLC’s
Máquinas de
Turing
Definições básicas
Variações
H. Longo
Introdução
Fundamentos
matemáticos
Alfabetos e
linguagens
Exemplo 8.2
Autômatos
finitos L = {u#u | u ∈ {0, 1}∗ }.
Linguagens e
gramáticas ... 0
X 1
X X
1 0 0 0 # 0
X X
1 1 0 0 0 ...
regulares
Linguagens
livres de
contexto
Autômatos
com pilha e
GLC’s
Máquinas de
Turing
Definições básicas
Variações
H. Longo
Introdução
Fundamentos
matemáticos
Alfabetos e
linguagens
Exemplo 8.2
Autômatos
finitos L = {u#u | u ∈ {0, 1}∗ }.
Linguagens e
gramáticas ... 0
X 1
X X
1 0 0 0 # 0
X X
1 1 0 0 0 ...
regulares
Linguagens
livres de
contexto
Autômatos
com pilha e
GLC’s
Máquinas de
Turing
Definições básicas
Variações
H. Longo
Introdução
Fundamentos
matemáticos
Alfabetos e
linguagens
Exemplo 8.2
Autômatos
finitos L = {u#u | u ∈ {0, 1}∗ }.
Linguagens e
gramáticas ... 0
X 1
X X
1 0 0 0 # 0
X X
1 1 0 0 0 ...
regulares
Linguagens
livres de
contexto
Autômatos
com pilha e
GLC’s
Máquinas de
Turing
Definições básicas
Variações
H. Longo
Introdução
Fundamentos
matemáticos
Alfabetos e
linguagens
Exemplo 8.2
Autômatos
finitos L = {u#u | u ∈ {0, 1}∗ }.
Linguagens e
gramáticas ... 0
X 1
X X
1 0 0 0 # 0
X X
1 1 0 0 0 ...
regulares
Linguagens
livres de
contexto
Autômatos
com pilha e
GLC’s
Máquinas de
Turing
Definições básicas
Variações
H. Longo
Introdução
Fundamentos
matemáticos
Alfabetos e
linguagens
Exemplo 8.2
Autômatos
finitos L = {u#u | u ∈ {0, 1}∗ }.
Linguagens e
gramáticas ... 0
X 1
X X
1 0 0 0 # 0
X X
1 1 0 0 0 ...
regulares
Linguagens
livres de
contexto
Autômatos
com pilha e
GLC’s
Máquinas de
Turing
Definições básicas
Variações
H. Longo
Introdução
Fundamentos
matemáticos
Alfabetos e
linguagens
Exemplo 8.2
Autômatos
finitos L = {u#u | u ∈ {0, 1}∗ }.
Linguagens e
gramáticas ... 0
X 1
X X
1 0 0 0 # 0
X X
1 1 0 0 0 ...
regulares
Linguagens
livres de
contexto
Autômatos
com pilha e
GLC’s
Máquinas de
Turing
Definições básicas
Variações
H. Longo
Introdução
Fundamentos
matemáticos
Alfabetos e
linguagens
Exemplo 8.2
Autômatos
finitos L = {u#u | u ∈ {0, 1}∗ }.
Linguagens e
gramáticas ... 0
X 1
X X
1 0 0 0 # 0
X X
1 X
1 0 0 0 ...
regulares
Linguagens
livres de
contexto
Autômatos
com pilha e
GLC’s
Máquinas de
Turing
Definições básicas
Variações
H. Longo
Introdução
Fundamentos
matemáticos
Alfabetos e
linguagens
Exemplo 8.2
Autômatos
finitos L = {u#u | u ∈ {0, 1}∗ }.
Linguagens e
gramáticas ... 0
X 1
X X
1 0 0 0 # 0
X X
1 X
1 0 0 0 ...
regulares
Linguagens
livres de
contexto
Autômatos
com pilha e
GLC’s
Máquinas de
Turing
Definições básicas
Variações
H. Longo
Introdução
Fundamentos
matemáticos
Alfabetos e
linguagens
Exemplo 8.2
Autômatos
finitos L = {u#u | u ∈ {0, 1}∗ }.
Linguagens e
gramáticas ... 0
X 1
X X
1 0 0 0 # 0
X X
1 X
1 0 0 0 ...
regulares
Linguagens
livres de
contexto
Autômatos
com pilha e
GLC’s
Máquinas de
Turing
Definições básicas
Variações
H. Longo
Introdução
Fundamentos
matemáticos
Alfabetos e
linguagens
Exemplo 8.2
Autômatos
finitos L = {u#u | u ∈ {0, 1}∗ }.
Linguagens e
gramáticas ... 0
X 1
X X
1 0 0 0 # 0
X X
1 X
1 0 0 0 ...
regulares
Linguagens
livres de
contexto
Autômatos
com pilha e
GLC’s
Máquinas de
Turing
Definições básicas
Variações
H. Longo
Introdução
Fundamentos
matemáticos
Alfabetos e
linguagens
Exemplo 8.2
Autômatos
finitos L = {u#u | u ∈ {0, 1}∗ }.
Linguagens e
gramáticas ... 0
X 1
X X
1 0 0 0 # 0
X X
1 X
1 0 0 0 ...
regulares
Linguagens
livres de
contexto
Autômatos
com pilha e
GLC’s
Máquinas de
Turing
Definições básicas
Variações
H. Longo
Introdução
Fundamentos
matemáticos
Alfabetos e
linguagens
Exemplo 8.2
Autômatos
finitos L = {u#u | u ∈ {0, 1}∗ }.
Linguagens e
gramáticas ... 0
X 1
X X
1 0 0 0 # 0
X X
1 X
1 0 0 0 ...
regulares
Linguagens
livres de
contexto
Autômatos
com pilha e
GLC’s
Máquinas de
Turing
Definições básicas
Variações
H. Longo
Introdução
Fundamentos
matemáticos
Alfabetos e
linguagens
Exemplo 8.2
Autômatos
finitos L = {u#u | u ∈ {0, 1}∗ }.
Linguagens e
gramáticas ... 0
X 1
X X
1 0 0 0 # 0
X X
1 X
1 0 0 0 ...
regulares
Linguagens
livres de
contexto
Autômatos
com pilha e
GLC’s
Máquinas de
Turing
Definições básicas
Variações
H. Longo
Introdução
Fundamentos
matemáticos
Alfabetos e
linguagens
Exemplo 8.2
Autômatos
finitos L = {u#u | u ∈ {0, 1}∗ }.
Linguagens e
gramáticas ... 0
X 1
X X
1 0 0 0 # 0
X X
1 X
1 0 0 0 ...
regulares
Linguagens
livres de
contexto
Autômatos
com pilha e
GLC’s
Máquinas de
Turing
Definições básicas
Variações
H. Longo
Introdução
Fundamentos
matemáticos
Alfabetos e
linguagens
Exemplo 8.2
Autômatos
finitos L = {u#u | u ∈ {0, 1}∗ }.
Linguagens e
gramáticas ... 0
X 1
X X
1 0
X 0 0 # 0
X X
1 X
1 0 0 0 ...
regulares
Linguagens
livres de
contexto
Autômatos
com pilha e
GLC’s
Máquinas de
Turing
Definições básicas
Variações
H. Longo
Introdução
Fundamentos
matemáticos
Alfabetos e
linguagens
Exemplo 8.2
Autômatos
finitos L = {u#u | u ∈ {0, 1}∗ }.
Linguagens e
gramáticas ... 0
X 1
X X
1 0
X 0 0 # 0
X X
1 X
1 0 0 0 ...
regulares
Linguagens
livres de
contexto
Autômatos
com pilha e
GLC’s
Máquinas de
Turing
Definições básicas
Variações
H. Longo
Introdução
Fundamentos
matemáticos
Alfabetos e
linguagens
Exemplo 8.2
Autômatos
finitos L = {u#u | u ∈ {0, 1}∗ }.
Linguagens e
gramáticas ... 0
X 1
X X
1 0
X 0 0 # 0
X X
1 X
1 0 0 0 ...
regulares
Linguagens
livres de
contexto
Autômatos
com pilha e
GLC’s
Máquinas de
Turing
Definições básicas
Variações
H. Longo
Introdução
Fundamentos
matemáticos
Alfabetos e
linguagens
Exemplo 8.2
Autômatos
finitos L = {u#u | u ∈ {0, 1}∗ }.
Linguagens e
gramáticas ... 0
X 1
X X
1 0
X 0 0 # 0
X X
1 X
1 0 0 0 ...
regulares
Linguagens
livres de
contexto
Autômatos
com pilha e
GLC’s
Máquinas de
Turing
Definições básicas
Variações
H. Longo
Introdução
Fundamentos
matemáticos
Alfabetos e
linguagens
Exemplo 8.2
Autômatos
finitos L = {u#u | u ∈ {0, 1}∗ }.
Linguagens e
gramáticas ... 0
X 1
X X
1 0
X 0 0 # 0
X X
1 X
1 0 0 0 ...
regulares
Linguagens
livres de
contexto
Autômatos
com pilha e
GLC’s
Máquinas de
Turing
Definições básicas
Variações
H. Longo
Introdução
Fundamentos
matemáticos
Alfabetos e
linguagens
Exemplo 8.2
Autômatos
finitos L = {u#u | u ∈ {0, 1}∗ }.
Linguagens e
gramáticas ... 0
X 1
X X
1 0
X 0 0 # 0
X X
1 X
1 0 0 0 ...
regulares
Linguagens
livres de
contexto
Autômatos
com pilha e
GLC’s
Máquinas de
Turing
Definições básicas
Variações
H. Longo
Introdução
Fundamentos
matemáticos
Alfabetos e
linguagens
Exemplo 8.2
Autômatos
finitos L = {u#u | u ∈ {0, 1}∗ }.
Linguagens e
gramáticas ... 0
X 1
X X
1 0
X 0 0 # 0
X X
1 X
1 0 0 0 ...
regulares
Linguagens
livres de
contexto
Autômatos
com pilha e
GLC’s
Máquinas de
Turing
Definições básicas
Variações
H. Longo
Introdução
Fundamentos
matemáticos
Alfabetos e
linguagens
Exemplo 8.2
Autômatos
finitos L = {u#u | u ∈ {0, 1}∗ }.
Linguagens e
gramáticas ... 0
X 1
X X
1 0
X 0 0 # 0
X X
1 X
1 0
X 0 0 ...
regulares
Linguagens
livres de
contexto
Autômatos
com pilha e
GLC’s
Máquinas de
Turing
Definições básicas
Variações
H. Longo
Introdução
Fundamentos
matemáticos
Alfabetos e
linguagens
Exemplo 8.2
Autômatos
finitos L = {u#u | u ∈ {0, 1}∗ }.
Linguagens e
gramáticas ... 0
X 1
X X
1 0
X 0 0 # 0
X X
1 X
1 0
X 0 0 ...
regulares
Linguagens
livres de
contexto
Autômatos
com pilha e
GLC’s
Máquinas de
Turing
Definições básicas
Variações
H. Longo
Introdução
Fundamentos
matemáticos
Alfabetos e
linguagens
Exemplo 8.2
Autômatos
finitos L = {u#u | u ∈ {0, 1}∗ }.
Linguagens e
gramáticas ... 0
X 1
X X
1 0
X 0 0 # 0
X X
1 X
1 0
X 0 0 ...
regulares
Linguagens
livres de
contexto
Autômatos
com pilha e
GLC’s
Máquinas de
Turing
Definições básicas
Variações
H. Longo
Introdução
Fundamentos
matemáticos
Alfabetos e
linguagens
Exemplo 8.2
Autômatos
finitos L = {u#u | u ∈ {0, 1}∗ }.
Linguagens e
gramáticas ... 0
X 1
X X
1 0
X 0 0 # 0
X X
1 X
1 0
X 0 0 ...
regulares
Linguagens
livres de
contexto
Autômatos
com pilha e
GLC’s
Máquinas de
Turing
Definições básicas
Variações
H. Longo
Introdução
Fundamentos
matemáticos
Alfabetos e
linguagens
Exemplo 8.2
Autômatos
finitos L = {u#u | u ∈ {0, 1}∗ }.
Linguagens e
gramáticas ... 0
X 1
X X
1 0
X 0 0 # 0
X X
1 X
1 0
X 0 0 ...
regulares
Linguagens
livres de
contexto
Autômatos
com pilha e
GLC’s
Máquinas de
Turing
Definições básicas
Variações
H. Longo
Introdução
Fundamentos
matemáticos
Alfabetos e
linguagens
Exemplo 8.2
Autômatos
finitos L = {u#u | u ∈ {0, 1}∗ }.
Linguagens e
gramáticas ... 0
X 1
X X
1 0
X 0 0 # 0
X X
1 X
1 0
X 0 0 ...
regulares
Linguagens
livres de
contexto
Autômatos
com pilha e
GLC’s
Máquinas de
Turing
Definições básicas
Variações
H. Longo
Introdução
Fundamentos
matemáticos
Alfabetos e
linguagens
Exemplo 8.2
Autômatos
finitos L = {u#u | u ∈ {0, 1}∗ }.
Linguagens e
gramáticas ... 0
X 1
X X
1 0
X 0 0 # 0
X X
1 X
1 0
X 0 0 ...
regulares
Linguagens
livres de
contexto
Autômatos
com pilha e
GLC’s
Máquinas de
Turing
Definições básicas
Variações
H. Longo
Introdução
Fundamentos
matemáticos
Alfabetos e
linguagens
Exemplo 8.2
Autômatos
finitos L = {u#u | u ∈ {0, 1}∗ }.
Linguagens e
gramáticas ... 0
X 1
X X
1 0
X 0 0 # 0
X X
1 X
1 0
X 0 0 ...
regulares
Linguagens
livres de
contexto
Autômatos
com pilha e
GLC’s
Máquinas de
Turing
Definições básicas
Variações
H. Longo
Introdução
Fundamentos
matemáticos
Alfabetos e
linguagens
Exemplo 8.2
Autômatos
finitos L = {u#u | u ∈ {0, 1}∗ }.
Linguagens e
gramáticas ... 0
X 1
X X
1 0
X 0
X 0 # 0
X X
1 X
1 0
X 0 0 ...
regulares
Linguagens
livres de
contexto
Autômatos
com pilha e
GLC’s
Máquinas de
Turing
Definições básicas
Variações
H. Longo
Introdução
Fundamentos
matemáticos
Alfabetos e
linguagens
Exemplo 8.2
Autômatos
finitos L = {u#u | u ∈ {0, 1}∗ }.
Linguagens e
gramáticas ... 0
X 1
X X
1 0
X 0
X 0 # 0
X X
1 X
1 0
X 0 0 ...
regulares
Linguagens
livres de
contexto
Autômatos
com pilha e
GLC’s
Máquinas de
Turing
Definições básicas
Variações
H. Longo
Introdução
Fundamentos
matemáticos
Alfabetos e
linguagens
Exemplo 8.2
Autômatos
finitos L = {u#u | u ∈ {0, 1}∗ }.
Linguagens e
gramáticas ... 0
X 1
X X
1 0
X 0
X 0 # 0
X X
1 X
1 0
X 0 0 ...
regulares
Linguagens
livres de
contexto
Autômatos
com pilha e
GLC’s
Máquinas de
Turing
Definições básicas
Variações
H. Longo
Introdução
Fundamentos
matemáticos
Alfabetos e
linguagens
Exemplo 8.2
Autômatos
finitos L = {u#u | u ∈ {0, 1}∗ }.
Linguagens e
gramáticas ... 0
X 1
X X
1 0
X 0
X 0 # 0
X X
1 X
1 0
X 0 0 ...
regulares
Linguagens
livres de
contexto
Autômatos
com pilha e
GLC’s
Máquinas de
Turing
Definições básicas
Variações
H. Longo
Introdução
Fundamentos
matemáticos
Alfabetos e
linguagens
Exemplo 8.2
Autômatos
finitos L = {u#u | u ∈ {0, 1}∗ }.
Linguagens e
gramáticas ... 0
X 1
X X
1 0
X 0
X 0 # 0
X X
1 X
1 0
X 0 0 ...
regulares
Linguagens
livres de
contexto
Autômatos
com pilha e
GLC’s
Máquinas de
Turing
Definições básicas
Variações
H. Longo
Introdução
Fundamentos
matemáticos
Alfabetos e
linguagens
Exemplo 8.2
Autômatos
finitos L = {u#u | u ∈ {0, 1}∗ }.
Linguagens e
gramáticas ... 0
X 1
X X
1 0
X 0
X 0 # 0
X X
1 X
1 0
X 0 0 ...
regulares
Linguagens
livres de
contexto
Autômatos
com pilha e
GLC’s
Máquinas de
Turing
Definições básicas
Variações
H. Longo
Introdução
Fundamentos
matemáticos
Alfabetos e
linguagens
Exemplo 8.2
Autômatos
finitos L = {u#u | u ∈ {0, 1}∗ }.
Linguagens e
gramáticas ... 0
X 1
X X
1 0
X 0
X 0 # 0
X X
1 X
1 0
X 0 0 ...
regulares
Linguagens
livres de
contexto
Autômatos
com pilha e
GLC’s
Máquinas de
Turing
Definições básicas
Variações
H. Longo
Introdução
Fundamentos
matemáticos
Alfabetos e
linguagens
Exemplo 8.2
Autômatos
finitos L = {u#u | u ∈ {0, 1}∗ }.
Linguagens e
gramáticas ... 0
X 1
X X
1 0
X 0
X 0 # 0
X X
1 X
1 0
X 0
X 0 ...
regulares
Linguagens
livres de
contexto
Autômatos
com pilha e
GLC’s
Máquinas de
Turing
Definições básicas
Variações
H. Longo
Introdução
Fundamentos
matemáticos
Alfabetos e
linguagens
Exemplo 8.2
Autômatos
finitos L = {u#u | u ∈ {0, 1}∗ }.
Linguagens e
gramáticas ... 0
X 1
X X
1 0
X 0
X 0 # 0
X X
1 X
1 0
X 0
X 0 ...
regulares
Linguagens
livres de
contexto
Autômatos
com pilha e
GLC’s
Máquinas de
Turing
Definições básicas
Variações
H. Longo
Introdução
Fundamentos
matemáticos
Alfabetos e
linguagens
Exemplo 8.2
Autômatos
finitos L = {u#u | u ∈ {0, 1}∗ }.
Linguagens e
gramáticas ... 0
X 1
X X
1 0
X 0
X 0 # 0
X X
1 X
1 0
X 0
X 0 ...
regulares
Linguagens
livres de
contexto
Autômatos
com pilha e
GLC’s
Máquinas de
Turing
Definições básicas
Variações
H. Longo
Introdução
Fundamentos
matemáticos
Alfabetos e
linguagens
Exemplo 8.2
Autômatos
finitos L = {u#u | u ∈ {0, 1}∗ }.
Linguagens e
gramáticas ... 0
X 1
X X
1 0
X 0
X 0 # 0
X X
1 X
1 0
X 0
X 0 ...
regulares
Linguagens
livres de
contexto
Autômatos
com pilha e
GLC’s
Máquinas de
Turing
Definições básicas
Variações
H. Longo
Introdução
Fundamentos
matemáticos
Alfabetos e
linguagens
Exemplo 8.2
Autômatos
finitos L = {u#u | u ∈ {0, 1}∗ }.
Linguagens e
gramáticas ... 0
X 1
X X
1 0
X 0
X 0 # 0
X X
1 X
1 0
X 0
X 0 ...
regulares
Linguagens
livres de
contexto
Autômatos
com pilha e
GLC’s
Máquinas de
Turing
Definições básicas
Variações
H. Longo
Introdução
Fundamentos
matemáticos
Alfabetos e
linguagens
Exemplo 8.2
Autômatos
finitos L = {u#u | u ∈ {0, 1}∗ }.
Linguagens e
gramáticas ... 0
X 1
X X
1 0
X 0
X 0 # 0
X X
1 X
1 0
X 0
X 0 ...
regulares
Linguagens
livres de
contexto
Autômatos
com pilha e
GLC’s
Máquinas de
Turing
Definições básicas
Variações
H. Longo
Introdução
Fundamentos
matemáticos
Alfabetos e
linguagens
Exemplo 8.2
Autômatos
finitos L = {u#u | u ∈ {0, 1}∗ }.
Linguagens e
gramáticas ... 0
X 1
X X
1 0
X 0
X 0 # 0
X X
1 X
1 0
X 0
X 0 ...
regulares
Linguagens
livres de
contexto
Autômatos
com pilha e
GLC’s
Máquinas de
Turing
Definições básicas
Variações
H. Longo
Introdução
Fundamentos
matemáticos
Alfabetos e
linguagens
Exemplo 8.2
Autômatos
finitos L = {u#u | u ∈ {0, 1}∗ }.
Linguagens e
gramáticas ... 0
X 1
X X
1 0
X 0
X 0 # 0
X X
1 X
1 0
X 0
X 0 ...
regulares
Linguagens
livres de
contexto
Autômatos
com pilha e
GLC’s
Máquinas de
Turing
Definições básicas
Variações
H. Longo
Introdução
Fundamentos
matemáticos
Alfabetos e
linguagens
Exemplo 8.2
Autômatos
finitos L = {u#u | u ∈ {0, 1}∗ }.
Linguagens e
gramáticas ... 0
X 1
X X
1 0
X 0
X 0
X # 0
X X
1 X
1 0
X 0
X 0 ...
regulares
Linguagens
livres de
contexto
Autômatos
com pilha e
GLC’s
Máquinas de
Turing
Definições básicas
Variações
H. Longo
Introdução
Fundamentos
matemáticos
Alfabetos e
linguagens
Exemplo 8.2
Autômatos
finitos L = {u#u | u ∈ {0, 1}∗ }.
Linguagens e
gramáticas ... 0
X 1
X X
1 0
X 0
X 0
X # 0
X X
1 X
1 0
X 0
X 0 ...
regulares
Linguagens
livres de
contexto
Autômatos
com pilha e
GLC’s
Máquinas de
Turing
Definições básicas
Variações
H. Longo
Introdução
Fundamentos
matemáticos
Alfabetos e
linguagens
Exemplo 8.2
Autômatos
finitos L = {u#u | u ∈ {0, 1}∗ }.
Linguagens e
gramáticas ... 0
X 1
X X
1 0
X 0
X 0
X # 0
X X
1 X
1 0
X 0
X 0 ...
regulares
Linguagens
livres de
contexto
Autômatos
com pilha e
GLC’s
Máquinas de
Turing
Definições básicas
Variações
H. Longo
Introdução
Fundamentos
matemáticos
Alfabetos e
linguagens
Exemplo 8.2
Autômatos
finitos L = {u#u | u ∈ {0, 1}∗ }.
Linguagens e
gramáticas ... 0
X 1
X X
1 0
X 0
X 0
X # 0
X X
1 X
1 0
X 0
X 0 ...
regulares
Linguagens
livres de
contexto
Autômatos
com pilha e
GLC’s
Máquinas de
Turing
Definições básicas
Variações
H. Longo
Introdução
Fundamentos
matemáticos
Alfabetos e
linguagens
Exemplo 8.2
Autômatos
finitos L = {u#u | u ∈ {0, 1}∗ }.
Linguagens e
gramáticas ... 0
X 1
X X
1 0
X 0
X 0
X # 0
X X
1 X
1 0
X 0
X 0 ...
regulares
Linguagens
livres de
contexto
Autômatos
com pilha e
GLC’s
Máquinas de
Turing
Definições básicas
Variações
H. Longo
Introdução
Fundamentos
matemáticos
Alfabetos e
linguagens
Exemplo 8.2
Autômatos
finitos L = {u#u | u ∈ {0, 1}∗ }.
Linguagens e
gramáticas ... 0
X 1
X X
1 0
X 0
X 0
X # 0
X X
1 X
1 0
X 0
X 0 ...
regulares
Linguagens
livres de
contexto
Autômatos
com pilha e
GLC’s
Máquinas de
Turing
Definições básicas
Variações
H. Longo
Introdução
Fundamentos
matemáticos
Alfabetos e
linguagens
Exemplo 8.2
Autômatos
finitos L = {u#u | u ∈ {0, 1}∗ }.
Linguagens e
gramáticas ... 0
X 1
X X
1 0
X 0
X 0
X # 0
X X
1 X
1 0
X 0
X 0 ...
regulares
Linguagens
livres de
contexto
Autômatos
com pilha e
GLC’s
Máquinas de
Turing
Definições básicas
Variações
H. Longo
Introdução
Fundamentos
matemáticos
Alfabetos e
linguagens
Exemplo 8.2
Autômatos
finitos L = {u#u | u ∈ {0, 1}∗ }.
Linguagens e
gramáticas ... 0
X 1
X X
1 0
X 0
X 0
X # 0
X X
1 X
1 0
X 0
X 0
X ...
regulares
Linguagens
livres de
contexto
Autômatos
com pilha e
GLC’s
Máquinas de
Turing
Definições básicas
Variações
H. Longo
Introdução
Fundamentos
matemáticos
Alfabetos e
linguagens
Exemplo 8.2
Autômatos
finitos L = {u#u | u ∈ {0, 1}∗ }.
Linguagens e
gramáticas ... 0
X 1
X X
1 0
X 0
X 0
X # 0
X X
1 X
1 0
X 0
X 0
X ...
regulares
Linguagens
livres de
contexto
Autômatos
com pilha e
GLC’s
Máquinas de
Turing
Definições básicas
Variações
H. Longo
Introdução
Fundamentos
matemáticos
Alfabetos e
linguagens
Exemplo 8.2
Autômatos
finitos L = {u#u | u ∈ {0, 1}∗ }.
Linguagens e
gramáticas ... 0
X 1
X X
1 0
X 0
X 0
X # 0
X X
1 X
1 0
X 0
X 0
X ...
regulares
Linguagens
livres de
contexto
Autômatos
com pilha e
GLC’s
Máquinas de
Turing
Definições básicas
Variações
H. Longo
Introdução
Fundamentos
matemáticos
Alfabetos e
linguagens
Exemplo 8.2
Autômatos
finitos L = {u#u | u ∈ {0, 1}∗ }.
Linguagens e
gramáticas ... 0
X 1
X X
1 0
X 0
X 0
X # 0
X X
1 X
1 0
X 0
X 0
X ...
regulares
Linguagens
livres de
contexto
Autômatos
com pilha e
GLC’s
Máquinas de
Turing
Definições básicas
Variações
H. Longo
Introdução
Fundamentos
matemáticos
Alfabetos e
linguagens
Exemplo 8.2
Autômatos
finitos L = {u#u | u ∈ {0, 1}∗ }.
Linguagens e
gramáticas ... 0
X 1
X X
1 0
X 0
X 0
X # 0
X X
1 X
1 0
X 0
X 0
X ...
regulares
Linguagens
livres de
contexto
Autômatos
com pilha e
GLC’s
Máquinas de
Turing
Definições básicas
Variações
H. Longo
Introdução
Fundamentos
matemáticos
Alfabetos e
linguagens
Exemplo 8.2
Autômatos
finitos L = {u#u | u ∈ {0, 1}∗ }.
Linguagens e
gramáticas ... 0
X 1
X X
1 0
X 0
X 0
X # 0
X X
1 X
1 0
X 0
X 0
X ...
regulares
Linguagens
livres de
contexto
Autômatos
com pilha e
GLC’s
Máquinas de
Turing
Definições básicas
Variações
H. Longo
Introdução
Fundamentos
matemáticos
Alfabetos e
linguagens
Exemplo 8.2
Autômatos
finitos L = {u#u | u ∈ {0, 1}∗ }.
Linguagens e
gramáticas ... 0
X 1
X X
1 0
X 0
X 0
X # 0
X X
1 X
1 0
X 0
X 0
X ...
regulares
Linguagens
livres de
contexto
Autômatos
com pilha e
GLC’s
Máquinas de
Turing
Definições básicas
Variações
H. Longo
Introdução
Fundamentos
matemáticos
Alfabetos e
linguagens
Exemplo 8.2
Autômatos
finitos L = {u#u | u ∈ {0, 1}∗ }.
Linguagens e
gramáticas ... 0
X 1
X X
1 0
X 0
X 0
X # 0
X X
1 X
1 0
X 0
X 0
X ...
regulares
Linguagens
livres de
contexto
Autômatos
com pilha e
GLC’s
Máquinas de
Turing
Definições básicas
Variações
H. Longo
Introdução
Fundamentos
matemáticos
Alfabetos e
linguagens
Exemplo 8.2
Autômatos
finitos L = {u#u | u ∈ {0, 1}∗ }.
Linguagens e
gramáticas ... 0
X 1
X X
1 0
X 0
X 0
X # 0
X X
1 X
1 0
X 0
X 0
X ...
regulares
Linguagens
livres de
contexto
Autômatos
com pilha e
GLC’s
Máquinas de
Turing
Definições básicas
Variações
H. Longo
Introdução
Fundamentos
matemáticos
Alfabetos e
linguagens
Exemplo 8.2
Autômatos
finitos L = {u#u | u ∈ {0, 1}∗ }.
Linguagens e
gramáticas ... 0
X 1
X X
1 0
X 0
X 0
X # 0
X X
1 X
1 0
X 0
X 0
X ...
regulares
Linguagens
livres de
contexto
Autômatos
com pilha e
GLC’s
Máquinas de
Turing
Definições básicas
Variações
H. Longo
Introdução
Fundamentos
matemáticos
Alfabetos e
linguagens
Exemplo 8.2
Autômatos
finitos L = {u#u | u ∈ {0, 1}∗ }.
Linguagens e
gramáticas ... 0
X 1
X X
1 0
X 0
X 0
X # 0
X X
1 X
1 0
X 0
X 0
X ...
regulares
Linguagens
livres de
contexto
Autômatos
com pilha e
GLC’s
Máquinas de
Turing
Definições básicas
Variações
H. Longo
Introdução
Fundamentos
matemáticos
Alfabetos e
linguagens
Exemplo 8.2
Autômatos
finitos L = {u#u | u ∈ {0, 1}∗ }.
Linguagens e
gramáticas ... 0
X 1
X X
1 0
X 0
X 0
X # 0
X X
1 X
1 0
X 0
X 0
X ...
regulares
Linguagens
livres de
contexto
Autômatos
com pilha e
GLC’s
Máquinas de
Turing
Definições básicas
Variações
H. Longo
Introdução
Fundamentos
matemáticos
Alfabetos e
linguagens
Exemplo 8.2
Autômatos
finitos L = {u#u | u ∈ {0, 1}∗ }.
Linguagens e
gramáticas ... 0
X 1
X X
1 0
X 0
X 0
X # 0
X X
1 X
1 0
X 0
X 0
X ...
regulares
Linguagens
livres de
contexto
Autômatos
com pilha e
GLC’s
Máquinas de
Turing
Definições básicas
Variações
H. Longo
Introdução
Fundamentos
matemáticos
Alfabetos e
linguagens
Exemplo 8.2
Autômatos
finitos L = {u#u | u ∈ {0, 1}∗ }.
Linguagens e
gramáticas ... 0
X 1
X X
1 0
X 0
X 0
X # 0
X X
1 X
1 0
X 0
X 0
X ...
regulares
Linguagens
livres de
contexto
Autômatos
com pilha e
GLC’s
Máquinas de
Turing
Definições básicas
Variações
H. Longo
Introdução
Fundamentos
matemáticos
Alfabetos e
linguagens
Exemplo 8.2
Autômatos
finitos L = {u#u | u ∈ {0, 1}∗ }.
Linguagens e
gramáticas ... 0
X 1
X X
1 0
X 0
X 0
X # 0
X X
1 X
1 0
X 0
X 0
X ...
regulares
Linguagens
livres de
contexto
Autômatos
com pilha e
GLC’s
Máquinas de
Turing
Definições básicas
Variações
H. Longo
Introdução
Fundamentos
matemáticos
Alfabetos e
linguagens
Exemplo 8.2
Autômatos
finitos L = {u#u | u ∈ {0, 1}∗ }.
Linguagens e
gramáticas ... 0
X 1
X X
1 0
X 0
X 0
X # 0
X X
1 X
1 0
X 0
X 0
X ...
regulares
Linguagens
livres de
contexto
Autômatos
com pilha e
GLC’s
Máquinas de
Turing
Definições básicas
Variações
H. Longo
Introdução
Fundamentos
matemáticos
Definição 8.3
Alfabetos e Uma Máquina de Turing é definida pela 7-upla M = (S , Σ, Γ, δ, s0 , sa , sr ), onde:
linguagens
Autômatos
S é o conjunto de estados,
Σ é o alfabeto de entrada ( < Σ),
finitos
Linguagens e
gramáticas Γ é o alfabeto da fita ( ∈ Γ e Σ ⊂ Γ),
regulares
Linguagens
δ : S × Γ → S × Γ × {E, D} é a função de transição,
livres de
contexto
s0 ∈ S é o estado inicial,
Autômatos sa ∈ S é o estado de aceitação, e
com pilha e
GLC’s sr ∈ S é o estado de rejeição ( sa , sr ).
Máquinas de
Turing
Definições básicas
Variações
H. Longo
Definição 8.4
Introdução
Fundamentos
Configuração C = usv:
matemáticos
s : Estado corrente no processamento ( s ∈ S ).
Alfabetos e
linguagens
uv : Conteúdo da fita (u, v ∈ Γ∗ ).
v1 : Posição da cabeça de leitura/gravação (v = v1 v2 . . . vk ).
Autômatos
finitos
Linguagens e
gramáticas
regulares
Linguagens
livres de
contexto
Autômatos
com pilha e
GLC’s
Máquinas de
Turing
Definições básicas
Variações
H. Longo
Definição 8.4
Introdução
Fundamentos
Configuração C = usv:
matemáticos
s : Estado corrente no processamento ( s ∈ S ).
Alfabetos e
linguagens
uv : Conteúdo da fita (u, v ∈ Γ∗ ).
v1 : Posição da cabeça de leitura/gravação (v = v1 v2 . . . vk ).
Autômatos
finitos
Configuração C1 gera configuração C2 se a máquina passa da configuração
Linguagens e
gramáticas C1 para a C2 em um único passo.
regulares
Linguagens
livres de
contexto
Autômatos
com pilha e
GLC’s
Máquinas de
Turing
Definições básicas
Variações
H. Longo
Definição 8.4
Introdução
Fundamentos
Configuração C = usv:
matemáticos
s : Estado corrente no processamento ( s ∈ S ).
Alfabetos e
linguagens
uv : Conteúdo da fita (u, v ∈ Γ∗ ).
v1 : Posição da cabeça de leitura/gravação (v = v1 v2 . . . vk ).
Autômatos
finitos
Configuração C1 gera configuração C2 se a máquina passa da configuração
Linguagens e
gramáticas C1 para a C2 em um único passo.
regulares
Linguagens
livres de Exemplo 8.5
contexto
Autômatos
Configuração 1011si 01111:
com pilha e
GLC’s u v
Máquinas de
Turing ... 1 0 1 1 0 1 1 1 1 ...
Definições básicas
Variações si
H. Longo
Introdução
Fundamentos
matemáticos Funcionamento:
Alfabetos e
linguagens
a, b, c ∈ Γ.
Autômatos
u, v ∈ Γ∗ .
finitos si , s j ∈ S .
Linguagens e
gramáticas
regulares
Linguagens
livres de
contexto
Autômatos
com pilha e
GLC’s
Máquinas de
Turing
Definições básicas
Variações
H. Longo
Introdução
Fundamentos
matemáticos Funcionamento:
Alfabetos e
linguagens
a, b, c ∈ Γ.
Autômatos
u, v ∈ Γ∗ .
finitos si , s j ∈ S .
Linguagens e
gramáticas δ(si , b) = (s j , c, E) ⇒ uasi bv gera us j acv.
regulares
Linguagens
livres de
contexto
Autômatos
com pilha e
GLC’s
Máquinas de
Turing
Definições básicas
Variações
H. Longo
Introdução
Fundamentos
matemáticos Funcionamento:
Alfabetos e
linguagens
a, b, c ∈ Γ.
Autômatos
u, v ∈ Γ∗ .
finitos si , s j ∈ S .
Linguagens e
gramáticas δ(si , b) = (s j , c, E) ⇒ uasi bv gera us j acv.
regulares
Autômatos
com pilha e
GLC’s
Máquinas de
Turing
Definições básicas
Variações
H. Longo
Introdução
Fundamentos
matemáticos Funcionamento:
Alfabetos e
linguagens
a, b, c ∈ Γ.
Autômatos
u, v ∈ Γ∗ .
finitos si , s j ∈ S .
Linguagens e
gramáticas δ(si , b) = (s j , c, E) ⇒ uasi bv gera us j acv.
regulares
Máquinas de
Turing
Definições básicas
Variações
H. Longo
Introdução
Fundamentos
matemáticos Funcionamento:
Alfabetos e
linguagens
a, b, c ∈ Γ.
Autômatos
u, v ∈ Γ∗ .
finitos si , s j ∈ S .
Linguagens e
gramáticas δ(si , b) = (s j , c, E) ⇒ uasi bv gera us j acv.
regulares
Máquinas de
Turing
Definições básicas
Variações
H. Longo
Introdução
Fundamentos
Definição 8.6
M = (S , Σ, Γ, δ, s0 , sa , sr ).
matemáticos
Alfabetos e
linguagens
Autômatos
M aceita a entrada w se existe uma seqüência de configurações
finitos C1 , C2 , . . . , Ck , tal que:
Linguagens e
gramáticas C1 = s0 w é a configuração inicial,
regulares
Cada Ci gera Ci+1 , e
Linguagens
livres de Ck é uma configuração de aceitação.
contexto
Autômatos
com pilha e
GLC’s
Máquinas de
Turing
Definições básicas
Variações
H. Longo
Introdução
Fundamentos
Definição 8.6
M = (S , Σ, Γ, δ, s0 , sa , sr ).
matemáticos
Alfabetos e
linguagens
Autômatos
M aceita a entrada w se existe uma seqüência de configurações
finitos C1 , C2 , . . . , Ck , tal que:
Linguagens e
gramáticas C1 = s0 w é a configuração inicial,
regulares
Cada Ci gera Ci+1 , e
Linguagens
livres de Ck é uma configuração de aceitação.
contexto
Autômatos
com pilha e
sa é o estado de uma configuração de aceitação.
GLC’s
Máquinas de
sr é o estado de uma configuração de rejeição.
Turing
Definições básicas
Variações
H. Longo
Introdução M = (S , Σ, Γ, δ, s0 , sa , sr ).
Fundamentos
matemáticos
Alfabetos e
linguagens
Definição 8.7
Autômatos L(M) : linguagem de M .
finitos
Linguagens e
Linguagem reconhecida por M .
gramáticas
regulares Coleção de cadeias que M aceita.
Linguagens
livres de
contexto
Autômatos
com pilha e
GLC’s
Máquinas de
Turing
Definições básicas
Variações
H. Longo
Introdução M = (S , Σ, Γ, δ, s0 , sa , sr ).
Fundamentos
matemáticos
Alfabetos e
linguagens
Definição 8.7
Autômatos L(M) : linguagem de M .
finitos
Linguagens e
Linguagem reconhecida por M .
gramáticas
regulares Coleção de cadeias que M aceita.
Linguagens
livres de
contexto
Definição 8.8
Autômatos
com pilha e
GLC’s
Linguagem L Turing-reconhecível:
Máquinas de Existe uma máquina de Turing M tal que L(M) = L.
Turing
Definições básicas Linguagem recursivamente enumerável.
Variações
H. Longo
Introdução
Resultados possíveis de M = (S , Σ, Γ, δ, s0 , sa , sr ):
Fundamentos
matemáticos aceita, rejeita ou cicla.
Alfabetos e M falha em aceitar uma cadeia se entra no estado sr ou quando cicla.
linguagens
Autômatos
finitos
Linguagens e
gramáticas
regulares
Linguagens
livres de
contexto
Autômatos
com pilha e
GLC’s
Máquinas de
Turing
Definições básicas
Variações
H. Longo
Introdução
Resultados possíveis de M = (S , Σ, Γ, δ, s0 , sa , sr ):
Fundamentos
matemáticos aceita, rejeita ou cicla.
Alfabetos e M falha em aceitar uma cadeia se entra no estado sr ou quando cicla.
linguagens Se M cicla, M simplesmente não para (não necessariamente repetindo os
Autômatos mesmos passos).
finitos
Linguagens e
gramáticas
regulares
Linguagens
livres de
contexto
Autômatos
com pilha e
GLC’s
Máquinas de
Turing
Definições básicas
Variações
H. Longo
Introdução
Resultados possíveis de M = (S , Σ, Γ, δ, s0 , sa , sr ):
Fundamentos
matemáticos aceita, rejeita ou cicla.
Alfabetos e M falha em aceitar uma cadeia se entra no estado sr ou quando cicla.
linguagens Se M cicla, M simplesmente não para (não necessariamente repetindo os
Autômatos mesmos passos).
finitos
Linguagens e
gramáticas
regulares
Definição 8.9
Linguagens M decide uma linguagem L se a reconhece e para com qualquer entrada.
livres de
contexto
Autômatos
com pilha e
GLC’s
Máquinas de
Turing
Definições básicas
Variações
H. Longo
Introdução
Resultados possíveis de M = (S , Σ, Γ, δ, s0 , sa , sr ):
Fundamentos
matemáticos aceita, rejeita ou cicla.
Alfabetos e M falha em aceitar uma cadeia se entra no estado sr ou quando cicla.
linguagens Se M cicla, M simplesmente não para (não necessariamente repetindo os
Autômatos mesmos passos).
finitos
Linguagens e
gramáticas
regulares
Definição 8.9
Linguagens M decide uma linguagem L se a reconhece e para com qualquer entrada.
livres de
contexto
Uma linguagem é decidível se alguma máquina de Turing a decide.
Autômatos
com pilha e Linguagem recursiva.
GLC’s
Máquinas de
Turing
Definições básicas
Variações
H. Longo
Introdução
Resultados possíveis de M = (S , Σ, Γ, δ, s0 , sa , sr ):
Fundamentos
matemáticos aceita, rejeita ou cicla.
Alfabetos e M falha em aceitar uma cadeia se entra no estado sr ou quando cicla.
linguagens Se M cicla, M simplesmente não para (não necessariamente repetindo os
Autômatos mesmos passos).
finitos
Linguagens e
gramáticas
regulares
Definição 8.9
Linguagens M decide uma linguagem L se a reconhece e para com qualquer entrada.
livres de
contexto
Uma linguagem é decidível se alguma máquina de Turing a decide.
Autômatos
com pilha e Linguagem recursiva.
GLC’s
Máquinas de
Toda linguagem decidível é Turing-reconhecível, mas nem toda linguagem
Turing
Definições básicas
Turing-reconhecível é decidível!!!
Variações
H. Longo
Introdução
Fundamentos
matemáticos Nos anos 30-40 do século XX, Church e Turing conjecturaram que qualquer
Alfabetos e computação que possa ser implementada por processos mecânicos (i.e., por
linguagens
Autômatos
uma máquina) pode também ser implementada por uma máquina de Turing.
finitos
Argumentos favoráveis à tese de Turing:
Linguagens e
gramáticas Qualquer computação que possa ser feita por qualquer computador digital
regulares existente também pode ser feita por uma máquina de Turing.
Linguagens Ninguém conseguiu ainda encontrar um problema, resolúvel por um algoritmo
livres de
contexto qualquer, para o qual não possa ser desenvolvida uma máquina de Turing.
Autômatos Foram propostos modelos alternativos para a computação mecânica, mas
com pilha e
GLC’s nenhum deles é mais poderoso do que a máquina de Turing.
Máquinas de
Turing
Definições básicas
Variações
H. Longo
Introdução
Fundamentos
matemáticos
Uma dada gramática livre de contexto é ambígua?
Alfabetos e Uma dada linguagem livre de contexto é inerentemente ambígua?
linguagens
Linguagens e
Duas linguagens livres de contexto são iguais?
gramáticas
regulares Uma dada linguagem livre de contexto é igual a Σ∗ ?
Linguagens
livres de
contexto
Autômatos
com pilha e
GLC’s
Máquinas de
Turing
Definições básicas
Variações
H. Longo
Introdução
Fundamentos
matemáticos
Uma dada gramática livre de contexto é ambígua?
Alfabetos e Uma dada linguagem livre de contexto é inerentemente ambígua?
linguagens
Linguagens e
Duas linguagens livres de contexto são iguais?
gramáticas
regulares Uma dada linguagem livre de contexto é igual a Σ∗ ?
Linguagens
livres de
contexto Para uma linguagem em particular pode ser possível obter uma resposta a
Autômatos
com pilha e
qualquer uma dessas questões. Contudo, não há nenhum algoritmo geral que
GLC’s dê resposta (em tempo útil) para toda e qualquer linguagem livre de contexto.
Máquinas de
Turing
Definições básicas
Variações
H. Longo
Introdução
Autômatos
w ∈ L.
finitos
Linguagens e
gramáticas
regulares
Linguagens
livres de
contexto
Autômatos
com pilha e
GLC’s
Máquinas de
Turing
Definições básicas
Variações
H. Longo
Introdução
Autômatos
w ∈ L.
finitos
Máquinas de
3 Voltar ao passo 1.
Turing
Definições básicas
Variações
Alfabetos e
linguagens
Autômatos
finitos
Linguagens e
gramáticas
regulares
Linguagens
livres de
contexto
Autômatos
com pilha e
GLC’s
Máquinas de
Turing
Definições básicas
Variações
Alfabetos e
linguagens X→E
0→E
Autômatos
finitos
Linguagens e s4
gramáticas
→D
regulares X→D
→E
Linguagens
livres de 0 → , D
contexto
s0 s1 s2 X→D
0 → X, D
Autômatos
com pilha e
X→D
GLC’s →D →D 0→D 0 → X, D
Máquinas de
Turing
sr sa s3
Definições básicas
Variações
→D X→D
Alfabetos e
linguagens X→E
0→E
Autômatos
finitos s0 0000
Linguagens e s4 s1 000
gramáticas
→D x s2 00
regulares X→D
→E
Linguagens
livres de 0 → , D
contexto
s0 s1 s2 X→D
0 → X, D
Autômatos
com pilha e
X→D
GLC’s →D →D 0→D 0 → X, D
Máquinas de
Turing
sr sa s3
Definições básicas
Variações
→D X→D
Alfabetos e
linguagens X→E
0→E
Autômatos
finitos s0 0000
Linguagens e s4 s1 000
gramáticas
→D x s2 00
regulares X→D
→E x0 s3 0
Linguagens
livres de 0 → , D
contexto
s0 s1 s2 X→D
0 → X, D
Autômatos
com pilha e
X→D
GLC’s →D →D 0→D 0 → X, D
Máquinas de
Turing
sr sa s3
Definições básicas
Variações
→D X→D
Alfabetos e
linguagens X→E
0→E
Autômatos
finitos s0 0000
Linguagens e s4 s1 000
gramáticas
→D x s2 00
regulares X→D
→E x0 s3 0
Linguagens
livres de 0 → , D x0x s2
contexto
s0 s1 s2 X→D
0 → X, D
Autômatos
com pilha e
X→D
GLC’s →D →D 0→D 0 → X, D
Máquinas de
Turing
sr sa s3
Definições básicas
Variações
→D X→D
Alfabetos e
linguagens X→E
0→E
Autômatos
finitos s0 0000
Linguagens e s4 s1 000
gramáticas
→D x s2 00
regulares X→D
→E x0 s3 0
Linguagens
livres de 0 → , D x0x s2
s0 s1 s2 X→D
contexto
0 → X, D x0 s4 x
Autômatos
com pilha e
X→D
GLC’s →D →D 0→D 0 → X, D
Máquinas de
Turing
sr sa s3
Definições básicas
Variações
→D X→D
Alfabetos e
linguagens X→E
0→E
Autômatos
finitos s0 0000
Linguagens e s4 s1 000
gramáticas
→D x s2 00
regulares X→D
→E x0 s3 0
Linguagens
livres de 0 → , D x0x s2
s0 s1 s2 X→D
contexto
0 → X, D x0 s4 x
Autômatos
X→D x s4 0x
com pilha e
GLC’s →D →D 0→D 0 → X, D
Máquinas de
Turing
sr sa s3
Definições básicas
Variações
→D X→D
Alfabetos e
linguagens X→E
0→E
Autômatos
finitos s0 0000
Linguagens e s4 s1 000
gramáticas
→D x s2 00
regulares X→D
→E x0 s3 0
Linguagens
livres de 0 → , D x0x s2
s0 s1 s2 X→D
contexto
0 → X, D x0 s4 x
Autômatos
X→D x s4 0x
com pilha e
GLC’s →D →D 0→D 0 → X, D s4 x0x
Máquinas de
Turing
sr sa s3
Definições básicas
Variações
→D X→D
Alfabetos e
linguagens X→E
0→E
Autômatos
finitos s0 0000
Linguagens e s4 s1 000
gramáticas
→D x s2 00
regulares X→D
→E x0 s3 0
Linguagens
livres de 0 → , D x0x s2
s0 s1 s2 X→D
contexto
0 → X, D x0 s4 x
Autômatos
X→D x s4 0x
com pilha e
GLC’s →D →D 0→D 0 → X, D s4 x0x
Máquinas de
s4 x0x
Turing
sr sa s3
Definições básicas
Variações
→D X→D
Alfabetos e
linguagens X→E
0→E
Autômatos
finitos s0 0000
Linguagens e s4 s1 000
gramáticas
→D x s2 00
regulares X→D
→E x0 s3 0
Linguagens
livres de 0 → , D x0x s2
s0 s1 s2 X→D
contexto
0 → X, D x0 s4 x
Autômatos
X→D x s4 0x
com pilha e
GLC’s →D →D 0→D 0 → X, D s4 x0x
Máquinas de
s4 x0x
Turing
sr sa s3 s1 x0x
Definições básicas
Variações
→D X→D
Alfabetos e
linguagens X→E
0→E
Autômatos
finitos s0 0000
Linguagens e s4 s1 000
gramáticas
→D x s2 00
regulares X→D
→E x0 s3 0
Linguagens
livres de 0 → , D x0x s2
s0 s1 s2 X→D
contexto
0 → X, D x0 s4 x
Autômatos
X→D x s4 0x
com pilha e
GLC’s →D →D 0→D 0 → X, D s4 x0x
Máquinas de
s4 x0x
Turing
sr sa s3 s1 x0x
Definições básicas
Variações
x s1 0x
→D X→D
Alfabetos e
linguagens X→E
0→E
Autômatos
finitos s0 0000 xx s2 x
Linguagens e s4 s1 000
gramáticas
→D x s2 00
regulares X→D
→E x0 s3 0
Linguagens
livres de 0 → , D x0x s2
s0 s1 s2 X→D
contexto
0 → X, D x0 s4 x
Autômatos
X→D x s4 0x
com pilha e
GLC’s →D →D 0→D 0 → X, D s4 x0x
Máquinas de
s4 x0x
Turing
sr sa s3 s1 x0x
Definições básicas
Variações
x s1 0x
→D X→D
Alfabetos e
linguagens X→E
0→E
Autômatos
finitos s0 0000 xx s2 x
Linguagens e s4 s1 000 xxx s2
gramáticas
→D x s2 00
regulares X→D
→E x0 s3 0
Linguagens
livres de 0 → , D x0x s2
s0 s1 s2 X→D
contexto
0 → X, D x0 s4 x
Autômatos
X→D x s4 0x
com pilha e
GLC’s →D →D 0→D 0 → X, D s4 x0x
Máquinas de
s4 x0x
Turing
sr sa s3 s1 x0x
Definições básicas
Variações
x s1 0x
→D X→D
Alfabetos e
linguagens X→E
0→E
Autômatos
finitos s0 0000 xx s2 x
Linguagens e s4 s1 000 xxx s2
gramáticas
→D x s2 00 xx s4 x
regulares X→D
→E x0 s3 0
Linguagens
livres de 0 → , D x0x s2
s0 s1 s2 X→D
contexto
0 → X, D x0 s4 x
Autômatos
X→D x s4 0x
com pilha e
GLC’s →D →D 0→D 0 → X, D s4 x0x
Máquinas de
s4 x0x
Turing
sr sa s3 s1 x0x
Definições básicas
Variações
x s1 0x
→D X→D
Alfabetos e
linguagens X→E
0→E
Autômatos
finitos s0 0000 xx s2 x
Linguagens e s4 s1 000 xxx s2
gramáticas
→D x s2 00 xx s4 x
regulares X→D
→E x0 s3 0 x s4 xx
Linguagens
livres de 0 → , D x0x s2
s0 s1 s2 X→D
contexto
0 → X, D x0 s4 x
Autômatos
X→D x s4 0x
com pilha e
GLC’s →D →D 0→D 0 → X, D s4 x0x
Máquinas de
s4 x0x
Turing
sr sa s3 s1 x0x
Definições básicas
Variações
x s1 0x
→D X→D
Alfabetos e
linguagens X→E
0→E
Autômatos
finitos s0 0000 xx s2 x
Linguagens e s4 s1 000 xxx s2
gramáticas
→D x s2 00 xx s4 x
regulares X→D
→E x0 s3 0 x s4 xx
Linguagens
livres de 0 → , D x0x s2 s4 xxx
s0 s1 s2 X→D
contexto
0 → X, D x0 s4 x
Autômatos
X→D x s4 0x
com pilha e
GLC’s →D →D 0→D 0 → X, D s4 x0x
Máquinas de
s4 x0x
Turing
sr sa s3 s1 x0x
Definições básicas
Variações
x s1 0x
→D X→D
Alfabetos e
linguagens X→E
0→E
Autômatos
finitos s0 0000 xx s2 x
Linguagens e s4 s1 000 xxx s2
gramáticas
→D x s2 00 xx s4 x
regulares X→D
→E x0 s3 0 x s4 xx
Linguagens
livres de 0 → , D x0x s2 s4 xxx
s0 s1 s2 X→D
contexto
0 → X, D x0 s4 x s4 xxx
Autômatos
X→D x s4 0x
com pilha e
GLC’s →D →D 0→D 0 → X, D s4 x0x
Máquinas de
s4 x0x
Turing
sr sa s3 s1 x0x
Definições básicas
Variações
x s1 0x
→D X→D
Alfabetos e
linguagens X→E
0→E
Autômatos
finitos s0 0000 xx s2 x
Linguagens e s4 s1 000 xxx s2
gramáticas
→D x s2 00 xx s4 x
regulares X→D
→E x0 s3 0 x s4 xx
Linguagens
livres de 0 → , D x0x s2 s4 xxx
s0 s1 s2 X→D
contexto
0 → X, D x0 s4 x s4 xxx
Autômatos
X→D x s4 0x s1 xxx
com pilha e
GLC’s →D →D 0→D 0 → X, D s4 x0x
Máquinas de
s4 x0x
Turing
sr sa s3 s1 x0x
Definições básicas
Variações
x s1 0x
→D X→D
Alfabetos e
linguagens X→E
0→E
Autômatos
finitos s0 0000 xx s2 x
Linguagens e s4 s1 000 xxx s2
gramáticas
→D x s2 00 xx s4 x
regulares X→D
→E x0 s3 0 x s4 xx
Linguagens
livres de 0 → , D x0x s2 s4 xxx
s0 s1 s2 X→D
contexto
0 → X, D x0 s4 x s4 xxx
Autômatos
X→D x s4 0x s1 xxx
com pilha e
GLC’s →D →D 0→D 0 → X, D s4 x0x x s1 xx
Máquinas de
s4 x0x
Turing
sr sa s3 s1 x0x
Definições básicas
Variações
x s1 0x
→D X→D
Alfabetos e
linguagens X→E
0→E
Autômatos
finitos s0 0000 xx s2 x
Linguagens e s4 s1 000 xxx s2
gramáticas
→D x s2 00 xx s4 x
regulares X→D
→E x0 s3 0 x s4 xx
Linguagens
livres de 0 → , D x0x s2 s4 xxx
s0 s1 s2 X→D
contexto
0 → X, D x0 s4 x s4 xxx
Autômatos
X→D x s4 0x s1 xxx
com pilha e
GLC’s →D →D 0→D 0 → X, D s4 x0x x s1 xx
Máquinas de
s4 x0x xx s1 x
Turing
sr sa s3 s1 x0x
Definições básicas
Variações
x s1 0x
→D X→D
Alfabetos e
linguagens X→E
0→E
Autômatos
finitos s0 0000 xx s2 x
Linguagens e s4 s1 000 xxx s2
gramáticas
→D x s2 00 xx s4 x
regulares X→D
→E x0 s3 0 x s4 xx
Linguagens
livres de 0 → , D x0x s2 s4 xxx
s0 s1 s2 X→D
contexto
0 → X, D x0 s4 x s4 xxx
Autômatos
X→D x s4 0x s1 xxx
com pilha e
GLC’s →D →D 0→D 0 → X, D s4 x0x x s1 xx
Máquinas de
s4 x0x xx s1 x
Turing
sr sa s3 s1 x0x xxx s1
Definições básicas
Variações
x s1 0x
→D X→D
Alfabetos e
linguagens X→E
0→E
Autômatos
finitos s0 0000 xx s2 x
Linguagens e s4 s1 000 xxx s2
gramáticas
→D x s2 00 xx s4 x
regulares X→D
→E x0 s3 0 x s4 xx
Linguagens
livres de 0 → , D x0x s2 s4 xxx
s0 s1 s2 X→D
contexto
0 → X, D x0 s4 x s4 xxx
Autômatos
X→D x s4 0x s1 xxx
com pilha e
GLC’s →D →D 0→D 0 → X, D s4 x0x x s1 xx
Máquinas de
s4 x0x xx s1 x
Turing
sr sa s3 s1 x0x xxx s1
Definições básicas
Variações
x s1 0x xxx sa
→D X→D
Máquinas de
Turing
Definições básicas
Variações
Alfabetos e
linguagens
s2 s4 s6 s8
Autômatos #→E →D #→D
finitos
1 → , D
Linguagens e X→D 1 → X, D 1 → X, E
gramáticas #→D X→D
regulares
Linguagens
s0 sa s11 s10 s9 0, 1, X, # → E
livres de
contexto
→D #→D →D
Autômatos
com pilha e 0 → , D 0 → X, D 0 → X, E
GLC’s
Máquinas de
#→E →D #→D
Turing s1 s3 s5 s7
Definições básicas
Variações
0, 1 → D 0, 1 → E 0, 1 → D X→D
(1541 – 1551 de 1593)
Exemplos de Máquinas de Turing
LFA 2018/2
H. Longo
Introdução
Exemplo 8.13
Fundamentos
matemáticos
L = {ai b2i | i ≥ 1}.
Alfabetos e
linguagens a→D
X→D a → X, D X→E X→D
Autômatos
finitos Y→D Y→E Y→D
Linguagens e a → X, D b → Y, D b → Y, E →D
gramáticas
s0 s1 s2 s3 s4
regulares
Linguagens
livres de b→D →D a→D
contexto →D →D b→D →D
Autômatos
com pilha e
GLC’s
sr sa
Máquinas de
Turing
Definições básicas
Variações
H. Longo
Introdução
Alfabetos e
L = {ai b3i | i ≥ 1}.
linguagens
a → X, D
Autômatos
finitos a→D a→E Y→D
Y→D Y→E
Linguagens e
a → X, D b → Y, D b → Y, D b → Y, E X→D
gramáticas s0 s1 s2 s3 s4 s5
regulares
Linguagens
, a → D
livres de →D
contexto →D
, a → D
Autômatos b, → D
com pilha e b→D
GLC’s sr sa
Máquinas de
Turing
Definições básicas
Variações
Alfabetos e
linguagens a→D
Linguagens 0→E
livres de 1→E
contexto →D →D →D b→E
1→D c→E
Autômatos →D
com pilha e b→D d→E
GLC’s
Máquinas de
sa s5 sr
→D 0→D
Turing
Definições básicas
1→D
Variações
b→D
c→D
d→D
H. Longo
Exemplo 8.16
Introdução
Alfabetos e
linguagens
Autômatos
finitos
Linguagens e
gramáticas
regulares
Linguagens
livres de
contexto
Autômatos
com pilha e
GLC’s
Máquinas de
Turing
Definições básicas
Variações
H. Longo
Exemplo 8.16
Introdução
Linguagens
livres de
contexto
Autômatos
com pilha e
GLC’s
Máquinas de
Turing
Definições básicas
Variações
H. Longo
Exemplo 8.16
Introdução
Linguagens
livres de
contexto
Autômatos
com pilha e
GLC’s
Máquinas de
Turing
Definições básicas
Variações
H. Longo
Exemplo 8.16
Introdução
Máquinas de
Turing
Definições básicas
Variações
H. Longo
Exemplo 8.16
Introdução
H. Longo
Exemplo 8.16
Introdução
H. Longo
Autômatos b→D
com pilha e
GLC’s sr s5 sa
a→D →D
Máquinas de
Turing b→D
Definições básicas
Variações
H. Longo
Introdução
Fundamentos
matemáticos
Alfabetos e
linguagens
Linguagens e
gramáticas
regulares
Linguagens
Variações
livres de
contexto
Autômatos
com pilha e
GLC’s
Máquinas de
Turing
Definições básicas
Variações
H. Longo
Introdução
Fundamentos
matemáticos
Alfabetos e
linguagens Máquina com múltiplas fitas.
Autômatos
finitos
Máquina não determinística.
Linguagens e
gramáticas
regulares Decisor.
Linguagens
livres de
contexto
Enumerador (Contador).
Autômatos
com pilha e
GLC’s
Máquinas de
Turing
Definições básicas
Variações
H. Longo
Introdução
Definição 8.18
Fundamentos
matemáticos
Máquina com múltiplas fitas:
Alfabetos e
linguagens M = (S , Σ, Γ1 , Γ2 , . . . , Γk , δ, s0 , sa , sr ), onde:
Autômatos
finitos δ : S × Γk → S × Γk × {E, D}k .
Linguagens e k : número de fitas.
gramáticas
regulares
Linguagens
livres de
contexto
Autômatos
com pilha e
GLC’s
Máquinas de
Turing
Definições básicas
Variações
H. Longo
Introdução
Definição 8.18
Fundamentos
matemáticos
Máquina com múltiplas fitas:
Alfabetos e
linguagens M = (S , Σ, Γ1 , Γ2 , . . . , Γk , δ, s0 , sa , sr ), onde:
Autômatos
finitos δ : S × Γk → S × Γk × {E, D}k .
Linguagens e k : número de fitas.
gramáticas
regulares
δ(si , a1 , . . . , ak ) = (s j , b1 , . . . , bk , E, D, . . . , E):
Linguagens
livres de si : estado corrente.
contexto
Autômatos
Cabeças 1 a k lêem símbolos a1 , . . . , ak .
com pilha e
GLC’s
s j : próximo estado.
Máquinas de Cabeças 1 a k escrevem símbolos b1 , . . . , bk .
Turing
Definições básicas
Variações
LFA 2018/2
H. Longo
Teorema 8.19
Introdução
Fundamentos
Toda máquina de Turing com múltiplas fitas é equivalente a alguma máquina de
matemáticos
Turing com apenas uma fita.
Alfabetos e
linguagens
Autômatos
finitos
Linguagens e
gramáticas
regulares
Linguagens
livres de
contexto
Autômatos
com pilha e
GLC’s
Máquinas de
Turing
Definições básicas
Variações
LFA 2018/2
H. Longo
Teorema 8.19
Introdução
Fundamentos
Toda máquina de Turing com múltiplas fitas é equivalente a alguma máquina de
matemáticos
Turing com apenas uma fita.
Alfabetos e
linguagens
Autômatos Demonstração.
finitos
Linguagens e
Simular a máquina de Turing com k fitas com uma máquina de Turing com
gramáticas uma fita.
regulares
Linguagens
M1 : Máquina com k fitas.
livres de M2 : Máquina com 1 fita.
contexto
Autômatos
com pilha e
GLC’s
Máquinas de
Turing
Definições básicas
Variações
LFA 2018/2
H. Longo
Teorema 8.19
Introdução
Fundamentos
Toda máquina de Turing com múltiplas fitas é equivalente a alguma máquina de
matemáticos
Turing com apenas uma fita.
Alfabetos e
linguagens
Autômatos Demonstração.
finitos
Linguagens e
Simular a máquina de Turing com k fitas com uma máquina de Turing com
gramáticas uma fita.
regulares
Linguagens
M1 : Máquina com k fitas.
livres de M2 : Máquina com 1 fita.
contexto
Armazenar as k entradas da máquina M1 na fita da máquina M2 .
Autômatos
com pilha e Usar o símbolo # para separar as k entradas na fita M2 .
GLC’s Marcar na fita da máquina M2 as posições das cabeças de leitura/gravação.
Máquinas de Usar novos símbolos que devem ser adicionados ao alfabeto da fita.
Turing
Definições básicas
Variações
LFA 2018/2
H. Longo
Linguagens e
gramáticas
regulares
Linguagens
livres de
contexto
Autômatos
com pilha e
GLC’s
Máquinas de
Turing
Definições básicas
Variações
LFA 2018/2
H. Longo
Linguagens e M1 0 1 0 1 0 └┘
...
gramáticas
regulares
Linguagens a a a └┘
...
livres de
contexto
Autômatos b a └┘ ...
com pilha e
GLC’s
Máquinas de M2 # 0 1 0 1 0 # a a a # b a # └┘
...
Turing
Definições básicas
Variações
LFA 2018/2
H. Longo
Introdução
Comportamento de M2 com a entrada w = w1 · · · wn :
Fundamentos
matemáticos
Armazenar as k entradas da máquina M1 na fita da máquina M2 :
Alfabetos e •
linguagens # w1 w2 · · · wn # • # • # · · · #
Autômatos
finitos
Linguagens e
gramáticas
regulares
Linguagens
livres de
contexto
Autômatos
com pilha e
GLC’s
Máquinas de
Turing
Definições básicas
Variações
LFA 2018/2
H. Longo
Introdução
Comportamento de M2 com a entrada w = w1 · · · wn :
Fundamentos
matemáticos
Armazenar as k entradas da máquina M1 na fita da máquina M2 :
Alfabetos e •
linguagens # w1 w2 · · · wn # • # • # · · · #
Autômatos Cabeça de leitura/gravação de M2 move-se do primeiro # ao (k + 1)-ésimo #
finitos
para determinar as posições da cabeças virtuais.
Linguagens e
gramáticas M2 realiza segunda passagem na fita para atualização (conforme função de
regulares
transição).
Linguagens
livres de
contexto
Autômatos
com pilha e
GLC’s
Máquinas de
Turing
Definições básicas
Variações
LFA 2018/2
H. Longo
Introdução
Comportamento de M2 com a entrada w = w1 · · · wn :
Fundamentos
matemáticos
Armazenar as k entradas da máquina M1 na fita da máquina M2 :
Alfabetos e •
linguagens # w1 w2 · · · wn # • # • # · · · #
Autômatos Cabeça de leitura/gravação de M2 move-se do primeiro # ao (k + 1)-ésimo #
finitos
para determinar as posições da cabeças virtuais.
Linguagens e
gramáticas M2 realiza segunda passagem na fita para atualização (conforme função de
regulares
transição).
Linguagens
livres de Se uma das cabeças virtuais de M2 move-se para a direita e encontra um #:
contexto
Autômatos
M1 move a correspondente cabeça para uma posição em branco da fita (ainda não
com pilha e lida).
GLC’s
Máquinas de
M2 desloca o conteúdo da fita (a partir do #) e escreve o símbolo na posição
Turing aberta na fita.
Definições básicas
Variações
LFA 2018/2
H. Longo
Corolário 8.21
Introdução
Uma linguagem é Turing-reconhecível se e somente se alguma máquina de Turing
Fundamentos
matemáticos com múltiplas fitas a reconhece.
Alfabetos e
linguagens
Autômatos
finitos
Linguagens e
gramáticas
regulares
Linguagens
livres de
contexto
Autômatos
com pilha e
GLC’s
Máquinas de
Turing
Definições básicas
Variações
LFA 2018/2
H. Longo
Corolário 8.21
Introdução
Uma linguagem é Turing-reconhecível se e somente se alguma máquina de Turing
Fundamentos
matemáticos com múltiplas fitas a reconhece.
Alfabetos e
linguagens
Demonstração.
Autômatos
finitos ⇒
Linguagens e
gramáticas Linguagem Turing-reconhecível é reconhecida por uma máquina de Turing
regulares
com apenas uma fita.
Linguagens
livres de
contexto Máquina de Turing com apenas uma fita é um caso especial de máquina com
Autômatos múltiplas fitas.
com pilha e
GLC’s
Máquinas de
⇐
Turing
Definições básicas
Conseqüência do teorema anterior.
Variações
H. Longo
Introdução
Fundamentos
Definição 8.22
matemáticos
Máquina não determinística (NT M ):
Alfabetos e
linguagens
M = (S , Σ, Γ, δ, s0 , sa , sr ), onde:
Autômatos
finitos δ : S × Γ → P(S × Γ × {E, D}).
Linguagens e
gramáticas
regulares
Linguagens
livres de
contexto
Autômatos
com pilha e
GLC’s
Máquinas de
Turing
Definições básicas
Variações
H. Longo
Introdução
Fundamentos
Definição 8.22
matemáticos
Máquina não determinística (NT M ):
Alfabetos e
linguagens
M = (S , Σ, Γ, δ, s0 , sa , sr ), onde:
Autômatos
finitos δ : S × Γ → P(S × Γ × {E, D}).
Linguagens e
gramáticas
regulares
Processamento de uma NT M :
Linguagens Subconjuntos de estados e transições organizados como uma árvore.
livres de
contexto Ramos correspondem a diferentes opções de processamentos da máquina (não
Autômatos determinismo).
com pilha e
GLC’s
Se algum ramo leva a um estado de aceitação, a máquina aceita a entrada.
Máquinas de
Turing
Definições básicas
Variações
LFA 2018/2
H. Longo
Introdução
Teorema 8.23
Fundamentos
matemáticos Toda máquina de Turing não determinística (NT M ) é equivalente a alguma
Alfabetos e
linguagens
máquina de Turing determinística (DT M ).
Autômatos
finitos
Linguagens e
gramáticas
regulares
Linguagens
livres de
contexto
Autômatos
com pilha e
GLC’s
Máquinas de
Turing
Definições básicas
Variações
LFA 2018/2
H. Longo
Introdução
Teorema 8.23
Fundamentos
matemáticos Toda máquina de Turing não determinística (NT M ) é equivalente a alguma
Alfabetos e
linguagens
máquina de Turing determinística (DT M ).
Autômatos
finitos
Linguagens e
Esquema da prova
gramáticas
regulares Simular uma NT M qualquer com uma DT M .
Linguagens
livres de DT M deve testar todos os ramos do processamento da NT M .
contexto
LFA 2018/2
H. Longo
Linguagens
livres de
contexto
Autômatos
com pilha e
GLC’s
Máquinas de
Turing
Definições básicas
Variações
LFA 2018/2
H. Longo
Linguagens
livres de
Busca em profundidade em T , por DT M D, de um estado de aceitação:
contexto
D pode descer em um ramo infinito e nunca encontrar estado de aceitação em
Autômatos
com pilha e outro ramo.
GLC’s
Máquinas de
Turing
Definições básicas
Variações
LFA 2018/2
H. Longo
Linguagens
livres de
Busca em profundidade em T , por DT M D, de um estado de aceitação:
contexto
D pode descer em um ramo infinito e nunca encontrar estado de aceitação em
Autômatos
com pilha e outro ramo.
GLC’s
LFA 2018/2
H. Longo
Linguagens
livres de
contexto
Autômatos
com pilha e
GLC’s
Máquinas de
Turing
Definições básicas
Variações
LFA 2018/2
H. Longo
LFA 2018/2
H. Longo
Introdução
Esquema da prova
Fundamentos
matemáticos Fita 3 da DT M :
Alfabetos e
linguagens Cada nó da árvore tem no máximo b filhos.
Autômatos b → tamanho do maior conjunto possível de escolhas numa transição da NT M .
finitos
Linguagens e
gramáticas
regulares
Linguagens
livres de
contexto
Autômatos
com pilha e
GLC’s
Máquinas de
Turing
Definições básicas
Variações
LFA 2018/2
H. Longo
Introdução
Esquema da prova
Fundamentos
matemáticos Fita 3 da DT M :
Alfabetos e
linguagens Cada nó da árvore tem no máximo b filhos.
Autômatos b → tamanho do maior conjunto possível de escolhas numa transição da NT M .
finitos
Linguagens e
Cada nó recebe um endereço sobre o alfabeto Σb = {1, 2, . . . , b}.
gramáticas 231 → 2o filho da raiz, 3o filho deste 2o e 1o filho desse 3o .
regulares
Linguagens
livres de
contexto
Autômatos
com pilha e
GLC’s
Máquinas de
Turing
Definições básicas
Variações
LFA 2018/2
H. Longo
Introdução
Esquema da prova
Fundamentos
matemáticos Fita 3 da DT M :
Alfabetos e
linguagens Cada nó da árvore tem no máximo b filhos.
Autômatos b → tamanho do maior conjunto possível de escolhas numa transição da NT M .
finitos
Linguagens e
Cada nó recebe um endereço sobre o alfabeto Σb = {1, 2, . . . , b}.
gramáticas 231 → 2o filho da raiz, 3o filho deste 2o e 1o filho desse 3o .
regulares
Autômatos
com pilha e
GLC’s
Máquinas de
Turing
Definições básicas
Variações
LFA 2018/2
H. Longo
Introdução
Esquema da prova
Fundamentos
matemáticos Fita 3 da DT M :
Alfabetos e
linguagens Cada nó da árvore tem no máximo b filhos.
Autômatos b → tamanho do maior conjunto possível de escolhas numa transição da NT M .
finitos
Linguagens e
Cada nó recebe um endereço sobre o alfabeto Σb = {1, 2, . . . , b}.
gramáticas 231 → 2o filho da raiz, 3o filho deste 2o e 1o filho desse 3o .
regulares
Máquinas de
Turing
Definições básicas
Variações
LFA 2018/2
H. Longo
Introdução
Esquema da prova
Fundamentos
matemáticos Fita 3 da DT M :
Alfabetos e
linguagens Cada nó da árvore tem no máximo b filhos.
Autômatos b → tamanho do maior conjunto possível de escolhas numa transição da NT M .
finitos
Linguagens e
Cada nó recebe um endereço sobre o alfabeto Σb = {1, 2, . . . , b}.
gramáticas 231 → 2o filho da raiz, 3o filho deste 2o e 1o filho desse 3o .
regulares
LFA 2018/2
H. Longo
Introdução
Esquema da prova
Fundamentos Funcionamento da DT M :
matemáticos
Alfabetos e
1 Fita 1 contém cadeia w e fitas 2 e 3 estão vazias.
linguagens
2 Copiar Fita 1 para Fita 2.
Autômatos
finitos 3 Usar Fita 2 para simular a NT M com entrada w em um ramo do processamento.
Linguagens e
gramáticas
regulares Antes de cada passo da NT M , consultar o próximo símbolo na Fita 3 para
Linguagens
determinar a transição a ser simulada.
livres de
contexto
Se Fita 3 está vazia ou escolha é inválida, abortar esse ramo e ir para o passo 4.
Autômatos Se encontrar configuração de rejeição, ir para o passo 4.
com pilha e
GLC’s Se encontrar configuração de aceitação, aceitar a cadeia w.
Máquinas de
Turing
4 Trocar a cadeia da Fita 3 (próxima cadeia na ordem lexicográfica). Voltar ao
Definições básicas passo 2 (Simular o processamento da NT M no próximo ramo).
Variações
H. Longo
Introdução
Fundamentos
matemáticos Corolário 8.24
Alfabetos e
linguagens
Uma linguagem é Turing-reconhecível se e somente se alguma máquina de Turing
Autômatos não determinística a reconhece.
finitos
Linguagens e
gramáticas
regulares
Linguagens
livres de
contexto
Autômatos
com pilha e
GLC’s
Máquinas de
Turing
Definições básicas
Variações
H. Longo
Introdução
Fundamentos
matemáticos Corolário 8.24
Alfabetos e
linguagens
Uma linguagem é Turing-reconhecível se e somente se alguma máquina de Turing
Autômatos não determinística a reconhece.
finitos
Linguagens e
gramáticas
Demonstração.
regulares
⇒ Qualquer DT M é automaticamente uma NT M .
Linguagens
livres de
contexto
⇐ Conseqüência do Teorema anterior.
Autômatos
com pilha e
GLC’s
Máquinas de
Turing
Definições básicas
Variações
H. Longo
Introdução
Fundamentos
matemáticos
Corolário 8.25
Alfabetos e
linguagens Uma linguagem é decidível se e somente se alguma máquina de Turing não
Autômatos determinística a decide.
finitos
Linguagens e
gramáticas
regulares
Linguagens
livres de
contexto
Autômatos
com pilha e
GLC’s
Máquinas de
Turing
Definições básicas
Variações
H. Longo
Introdução
Fundamentos
matemáticos
Corolário 8.25
Alfabetos e
linguagens Uma linguagem é decidível se e somente se alguma máquina de Turing não
Autômatos determinística a decide.
finitos
Linguagens e
gramáticas Demonstração.
regulares
Máquinas de
Turing
Definições básicas
Variações
H. Longo
Introdução
Fundamentos
matemáticos
Alfabetos e
linguagens
Autômatos Decisor
finitos
Autômatos
com pilha e
GLC’s
Máquinas de
Turing
Definições básicas
Variações
H. Longo
Introdução
Fundamentos
matemáticos Enumerador (Contador)
Alfabetos e Máquina de Turing com uma impressora acoplada.
linguagens
Linguagens e
gramáticas
regulares
Linguagens
livres de
contexto
Autômatos
com pilha e
GLC’s
Máquinas de
Turing
Definições básicas
Variações
H. Longo
Introdução
Fundamentos
matemáticos Enumerador (Contador)
Alfabetos e Máquina de Turing com uma impressora acoplada.
linguagens
Linguagens e Controle
gramáticas
0 1 0 1 0 └┘
...
Linguagens
livres de Impressora
contexto abba
baba
Autômatos
aa
com pilha e
GLC’s
Máquinas de
Turing
Definições básicas
Variações
H. Longo
Introdução
Fundamentos
matemáticos
Alfabetos e
Enumerador (Contador)
linguagens
Começa o processamento com a fita de trabalho vazia.
Autômatos
finitos Se não para, pode imprimir uma lista infinita de cadeias.
Linguagens e
gramáticas A linguagem enumerada por E é a coleção de cadeias eventualmente
regulares
impressas.
Linguagens
livres de
contexto
E pode gerar as cadeias da linguagem em qualquer ordem, com possíveis
Autômatos
repetições.
com pilha e
GLC’s
Máquinas de
Turing
Definições básicas
Variações
LFA 2018/2
H. Longo
Teorema 8.26
Introdução
Uma linguagem é Turing-reconhecível se e somente se algum Enumerador a gera.
Fundamentos
matemáticos
Alfabetos e
linguagens
Autômatos
finitos
Linguagens e
gramáticas
regulares
Linguagens
livres de
contexto
Autômatos
com pilha e
GLC’s
Máquinas de
Turing
Definições básicas
Variações
LFA 2018/2
H. Longo
Teorema 8.26
Introdução
Uma linguagem é Turing-reconhecível se e somente se algum Enumerador a gera.
Fundamentos
matemáticos
Alfabetos e Demonstração.
linguagens
Autômatos
⇐=
finitos
Enumerador E que gera a linguagem L.
Linguagens e
gramáticas
regulares
Máquina de Turing M que reconhece L.
Linguagens Processamento de M com a cadeia w ∈ L:
livres de
contexto
1 Execute E . Compare w com cada cadeia gerada por E .
Autômatos
2 Se w aparece na saída de E , aceite.
com pilha e
GLC’s
Máquinas de
Turing
Definições básicas
Variações
LFA 2018/2
H. Longo
Teorema 8.26
Introdução
Uma linguagem é Turing-reconhecível se e somente se algum Enumerador a gera.
Fundamentos
matemáticos
Alfabetos e Demonstração.
linguagens
Autômatos
=⇒
finitos
Máquina de Turing M que reconhece L.
Linguagens e
gramáticas
regulares
Enumerador E que gera a linguagem L.
Linguagens s1 , s2 , . . . , si 7→ lista de todas as possíveis cadeias em Σ∗ .
livres de
contexto Processamento de E :
Autômatos 1 Ignore a cadeia de entrada.
com pilha e
GLC’s 2 Repita os passos ?? e ?? para i = 1, 2, 3, . . . .
Máquinas de
Turing
3 Execute M por i passos para cada s1 , s2 , . . . , si .
Definições básicas
Variações
4 Se qualquer processamento aceita, imprima a correspondente cadeia s.
LFA 2018/2
H. Longo
Teorema 8.26
Introdução
Uma linguagem é Turing-reconhecível se e somente se algum Enumerador a gera.
Fundamentos
matemáticos
Alfabetos e Demonstração.
linguagens
Autômatos
=⇒
finitos
Se M aceita uma cadeia w, eventualmente w vai aparecer na lista gerada por
Linguagens e
gramáticas
E.
regulares
Aparece na lista infinitas vezes.
Linguagens M é executada desde o início para cada cadeia e repetição do passo ??.
livres de
contexto
Simula a execução de M em paralelo para todas as possíveis cadeias de
Autômatos
com pilha e entrada.
GLC’s
Máquinas de
Turing
Definições básicas
Variações
H. Longo
Apêndice R. P. Grimaldi
Bibliografia Discrete and Combinatorial Mathematics – An Applied Introduction.
Addison Wesley, 1994.
D. J. Velleman
How To Prove It – A Structured Approach.
Cambridge University Press, 1996.
J. E. Hopcroft; J. Ullman.
Introdução à Teoria de Autômatos, Linguagens e Computação.
Ed. Campus.
T. A. Sudkamp.
Languages and Machines – An Introduction to the Theory of Computer Science.
Addison Wesley Longman, Inc. 1998.
J. Carroll; D. Long.
Theory of Finite Automata – With an Introduction to Formal Languages.
Prentice-Hall, 1989.
M. Sipser.
Introduction to the Theory of Computation.
PWS Publishing Company, 1997.
H. R. Lewis; C. H. Papadimitriou
Elementos de Teoria da Computação.
Bookman, 2000.