You are on page 1of 6

FACENS - Faculdade de Engenharia de Sorocaba Tópicos em Computação I

Linguagem Regular e Autômatos Finitos

Linguagens Regulares Expressão Regular


• Classe das linguagens mais simples. Uma ER sobre Σ pode ser definida como:

• Reconhecimento de cadeias com pouca • ∅ é uma ER e denota a linguagem vazia


complexidade. • ε é uma ER e denota a linguagem {ε}
• As palavras de uma linguagem regular é • x ∈ Σ é uma ER e denota a linguagem {x}
reconhecida por um AF.
• Se r e s são ER e denotam as linguagens R e S
• Formalismos: – (r+s) é ER ⇒ R ∪ S
– AF: reconhecedor – (rs) é ER ⇒ RS = {uv | u ∈ Rev ∈ S}
– Expressão Regular: geradora – (r∗ ) é ER ⇒ R∗ – (r|s) é ER ⇒ R ou S

Qualquer sı́mbolo x ∈ Σ ou ε é uma ER e denota a linguagem


As linguagens regulares pertencem à classe das linguagens contendo exclusivamente a palavra x ou a palavra vazia respec-
mais simples. As cadeias (palavras) da linguagem regular podem tivamente. Também podemos definir as ER através de união e
ser reconhecidas através de algoritmos com pouco complexidade. concatenação como visto no slide. A união representa de duas
A expressão regular é considerada geradora pois pode-se inferir linguagens R e S é o conjunto de cadeias que estão em R ou
como construir (“gerar”) as palavras da linguagem. em S ou em ambas. O fechamento (ou estrela ou fechamento
de Kleene) de uma linguagem é denotado L∗ e representa o con-
junto de cadeias que podem ser formados tomando-se qualquer
número de cadeias de L.

Expressões Regulares (ER)


Convenções
• Toda linguagem regular pode ser descrita por
uma expressão regular. • concatenação sucessiva tem precedência sobre
a concatenação e a união
• Definida através de:
abc+a ⇒ (((ab)c)+(a))
– conjuntos básicos
– concatenação • a concatenação tem precedência sobre a união.
– união ab+a ⇒ ((ab)+(a))

Uma expressão regular é definida a partir de conjuntos (lingua- A omissão de parênteses em uma ER é usual, respeitando as
gens) básicos e operações de concatenação e união e oferece um convenções citadas no slide acima.
modo declarativo de expressar as cadeias que queremos aceitar.
As expressões regulares são consideradas adequadas para a comu-
nicação homem × homem e, principalmente, para a comunicação
homem × máquina.

Profa. Tiemi Christine Sakata 1


FACENS - Faculdade de Engenharia de Sorocaba Tópicos em Computação I

Exemplos de ER
Autômatos Finitos
ER Linguagem Representada
aa somente a palavra aa • recebe como entrada uma string
ba∗ iniciam com b seguido por 0 ou mais a • não produz saı́da
(a+b)∗ todas as palavras sobre { a, b } • indica se a entrada é aceita ou não
Qual a linguagem correspondente as ER abaixo?
• memória fixa e limitada

1. (a+b)∗ aa(a+b)∗ 3. (a+b)∗ (aa+bb) • também denominado Autômato Finito


Determinı́stico (AFD)
2. a∗ ba∗ ba∗ 4. (a+ε)(b+ba)∗

As linguagem representadas pelas ER citadas no slide acima


são: O autômato finito compartilha com um computador real o
fato de que ele tem uma “unidade central de processamento” de
1. todas as palavras contendo aa como subpalavra capacidade fixa, finita. Recebe sua entrada como uma string e
não produz nenhuma saı́da, exceto uma indicação informando se
a entrada foi ou não considerada aceitável.
2. todas as palavras contendo exatamente dois b

3. todas as palavras que terminam com aa ou bb

4. todas as palavras que não possuem dois a consecutivos

Sistema de Estados Finitos


Autômato Finito
• Modelo matemático com entradas e saı́das.
Máquina composta por três partes:
• Possui um número finito pré-definido de
1. Fita – dispositivo de entrada que contém a
estados.
informação a ser processada
• Cada estado resume somente as informações 2. Unidade de controle – reflete o estado corrente
do passado necessárias para determinar as da máquina. Possui uma unidade de leitura
ações para a próxima entrada. (cabeça da fita) acessando uma célula de cada
• Exemplos: elevador, analisadores léxicos, vez e movimentando-se sempre para a direita
processadores de texto. 3. Programa ou Função de Transição – comanda
as leituras e define o estado da máquina

Nesta disciplina, devemos definir modelos de computação pro-


gressivamente poderosos e dispositivos cada vez mais sofisticados
para aceitar e gerar linguagens. A fita é finita à esquerda e à direita, sendo dividida em células,
Um sistema de estados finitos é um modelo matemático de onde cada uma armazena um sı́mbolo. Os sı́mbolos pertencem
um sistema com entradas e saı́das. Um exemplo clássico é um a um alfabeto de entrada. Não é possı́vel gravar sobre a fita e
elevador. Trata-se de um sistema que não memoriza instruções. não existe uma memória auxiliar. Inicialmente, a palavra a ser
Cada estado sumariza as informações: andar corrente e direção processada ocupa toda a fita.
do movimento. As entradas para o sistema são requisições pen-
dentes.

Profa. Tiemi Christine Sakata 2


FACENS - Faculdade de Engenharia de Sorocaba Tópicos em Computação I

Autômato Finito AFD


• inı́cio → cabeça na célula mais à esquerda a
p q
• após leitura → movimento p/ direita símbolo
estado lido novo
• estado corrente e sı́mbolo lido determinam o estado
anterior
novo estado

a a b c c b a Estado Inicial Estado Final

qi qf
Controle

A unidade de controle possui um número finito e pré-definido Um autômato finito pode ser representado através de um grafo
de estados. A unidade de leitura lê o sı́mbolo de uma célula a (diagrama de estados) como mostra o slide acima. Note na re-
cada vez. Após a leitura, a cabeça da fita move-se uma célula presentação dos estados iniciais e finais.
para a direita. Inicialmente a cabeça da fita está posicionada na
célula mais a esquerda.
O programa é uma função que dependendo do estado corrente
e do sı́mbolo lido, determina o novo estado do autômato.

AFD - Definição Exemplo 1


L = {w | w possui a∗ como subpalavra}
• M = (Σ, Q, δ, q0 , F )
– Σ – alfabeto de sı́mbolos de entrada
M = (Σ, Q, δ, q0 , F )
– Q – conj. de estados possı́veis do autômato Σ = {a} a
o qual é finito Q = {q0 }
– δ – função de transição (δ : Q x Σ → Q) F = {q0 }
q0
– q0 – estado inicial (q0 ∈ Q) δ a
– F – conjunto dos estados finais tal que F q0 q0
está contido em Q

Exemplo 2
Um autômato finito determinı́stico (AFD), ou simplesmente
autômato finito M , é determinado pela quı́ntupla: L = {w | w possui a+ como subpalavra}
M = (Σ, Q, δ, q0 , F )
Σ = {a}
M = (Σ, Q, δ, q0 , F )
Q = {q0 , qf }
a
F = {qf }
δ a
q0 qf
q0 qf a
qf qf

Profa. Tiemi Christine Sakata 3


FACENS - Faculdade de Engenharia de Sorocaba Tópicos em Computação I

Exercı́cio 4
Exercı́cio 1
L = (a ∪ b)∗ L = (a.b)+ δ a b
M = (Σ, Q, δ, q0 , F ) M = (Σ, Q, δ, q0 , F )
q0 q1 -
Σ = {a, b} Σ = { a, b}
a, b Q = {q0 , q1 , qf } q1 - qf
Q = {q0 }
F = {q0 } F = {q0 } qf q1 -

δ a b q0
a
q0 q0 q0
q0 q1 qf
a b

Exercı́cio 2
L = (a ∪ b)+
M = (Σ, Q, δ, q0 , F )
Σ = { a, b}
Q = {q0 , qf } a,b
F = {qf }
δ a b
q0 qf
q0 qf qf a
qf qf qf b
Condições de Parada em AFD
Exercı́cio 3 • após processar o último sı́mbolo da fita,
assume um estado final: o autômato pára e a
L = (a.b)∗
entrada é aceita.
M = (Σ, Q, δ, q0 , F )
Σ = { a, b} • após processar o último sı́mbolo da fita,
Q = {q0 , qf } assume um estado não final: o autômato pára
F = {q0 } e a entrada é rejeitada
b
δ a b • a função programa é indefinida para o
q0 qf argumento (estado corrente e sı́mbolo lido): o
q0 qf -
autômato pára e a entrada é rejeitada
qf - q0 a

Um autômato sempre pára após processar qualquer entrada,


pois como toda palavra é finita e como um novo sı́mbolo de en-
trada é lido a cada aplicação da função programa, não existe
a possibilidade de ciclo (loop) infinito. A parada de processa-
mento pode ocorrer de duas maneiras: aceitando ou rejeitando
uma entrada w

Profa. Tiemi Christine Sakata 4


FACENS - Faculdade de Engenharia de Sorocaba Tópicos em Computação I

Verificação de Validade da cadeia Exercı́cios


Dado o autômato finito M abaixo, verifique se Desenvolver AFDs que reconheçam as seguintes
01001011 ∈ L(M) linguagens sobre Σ = {a, b}
0 0 1. L1 = {w | o prefixo de w é aa}
1 2. L2 = {w | w possui aa ou bb como
q0 q1 subpalavra}

1 3. L3 = {w | w possui um número par de a e b}


q0 0 q0

− 1 q1 →

− 0 q1 →
− 0 q1 →
− 1 q0 →
− 0
− 4. L4 = {w|w possui um número ı́mpar de a}
q0 1 q1

− 1 q0

A linguagem aceita por um autômato finito Construa um autômato finito determinı́stico dada as lingua-
M = (Σ, Q, δ, q0 , F ) denotada por ACEITA(M), ou L(M) gens acima. Defina o formalismo do autômato, sua tabela de
é o conjunto de todas as palavras pertencentes a Σ∗ que são transição e verifique se uma cadeia que pertença a linguagem é
aceitas por M . reconhecida pelo autômato. Em todas as linguagens o alfabeto
Analogamente, REJEITA(M) é o conjunto de todas as é {a,b}.
palavras pertencentes a Σ∗ que são rejeitadas por M. 1. M1 = (Σ, Q, δ, q0 , F )
Σ = {a, b}
• a intersecção dos conjunto ACEITA(M) e REJEITA(M) é Q = {q0 , q1 , q2 }
vazio F = {q2 }
• a união dos conjuntos ACEITA(M) e REJEITA(M) é Σ∗
δ a b
q0 q1 -
q1 q2 -
q2 q2 q2
a,b
Exercı́cio
Dado o diagrama de estado do AFD, monte-o e
verifique se aceita a cadeia aabba. q0
a
q1
a
q2

M = (Σ, Q, δ, q0 , F ) Cadeia: aabba → aceita:


δ a b q0 →
a q1 → a q2 →
Σ = {a, b} − − −b q2 → −b q2 →
a q2

Q = {q0 , q1 } q0 q0 q1
F = {q0 } q1 q1 q0

Solução:

0 0

1
q0 q1

1
q0 →
−a q0 →−a q0 → −b q1 → −b q0 → a q0

A cadeia aabba é aceita pois é esgotada no estado final do
autômato.

Profa. Tiemi Christine Sakata 5


FACENS - Faculdade de Engenharia de Sorocaba Tópicos em Computação I

2. M2 = (Σ, Q, δ, q0 , F )
Σ = {a, b} b b
Q = {q0 , q1 , q2 , q3 }
F = {q3 } a
q0 q1
δ a b a
q0 q1 q2
q1 q3 q2 Cadeia: abbabab → aceita:
q2 q1 q3
q3 q3 q3 q0 →
a q1 →
− −b q1 →
−b q1 →
a q0 →
− −b q0 →
a q1 →
− −b q1

q0
Exercı́cios
a b
δ a b δ a b
b
q1 q2 q0 q0 q1 q0 q2 q1
a q1 q0 q2 q1 q1 q0

a b q2 q0 q3 q2 q4 q5

q3 q3 q3 q3 q3 q5 q4
a,b
q4 q3 q2

Cadeia: babaab → aceita: q5 q2 q3


q0 −
b q2 →
→ −a q1 →
−b q2 → a q1 →
− a q3 →
− −b q3
Construa um AFD a partir das tabelas de transição acima.
3. M3 = (Σ, Q, δ, q0 , F ) Defina o formalismo do AFD e verifique se uma cadeia é reco-
Σ = {a, b} nhecida.
Q = {q0 , q1 , q2 , q3 }
F = {q0 }

δ a b
q0 q2 q1
q1 q3 q0
q2 q0 q3
q3 q1 q2
b
q0 q1
b

a a a a

b
q2 q3
b

Cadeia: ababaa → aceita:


q0 −
a q2 →
→ −b q3 →
a q1 →
− −b q0 →
a q2 →
− a q0

4. M4 = (Σ, Q, δ, q0 , F )
Σ = {a, b}
Q = {q0 , q1 }
F = {q1 }

δ a b
q0 q1 q0
q1 q0 q1

Profa. Tiemi Christine Sakata 6

You might also like