Você está na página 1de 15

Sistemas de Informação

Computabilidade e
Complexidade
(ENG10014)

Profa. Juliana Pinheiro Campos


E-mail: jupcampos@gmail.com
COMPUTABILIDADE E COMPLEXIDADE

Expressões Regulares (ER)

 Expressões regulares são uma outra forma de


denotar linguagens regulares.
 Elas oferecem um modo declarativo de expressar
as strings que queremos aceitar.
 As operações regulares estudadas (união,
concatenação e estrela) são utilizadas para
montar as expressões regulares.
 O valor de uma expressão regular é uma
linguagem.
COMPUTABILIDADE E COMPLEXIDADE

Expressões Regulares (ER)

 Ex: (0 + 1)0* é uma expressão regular que denota


a linguagem que consiste em todos os strings que
começam com um 0 ou um 1 seguido por
qualquer numero de 0’s.
• Os símbolos 0 e 1 são abreviações para os conj. {0} e {1}.
• A parte (0 + 1) significa {0} U {1}. O valor dessa parte é a
linguagem {0,1}.
• A parte 0* significa {0}* e seu valor é a linguagem
constituída de todas as cadeias contendo qualquer número
de 0s.
• O valor da expressão (0 + 1)0* consiste na concatenação de
(0+1) com 0*
COMPUTABILIDADE E COMPLEXIDADE

Expressões Regulares (ER)

 Definição Formal: Dizemos que R é uma


expressão regular se R for:
• a para algum a no alfabeto Σ
•ε
•Ø
• (R1 + R2), onde R1 e R2 são ER
• (R1.R1), onde R1 e R2 são ER
• (R1*), onde R1 é uma ER.
COMPUTABILIDADE E COMPLEXIDADE

Expressões Regulares (ER)

 Precedência de operadores: a operação estrela é


feita primeiro, seguida por concatenação e,
finalmente união, a menos que parênteses sejam
usados para mudar a ordem usual.
 Ex: 01* + 1 é agrupada como (0(1)*) + 1, mas
poderíamos usar parênteses para alterar essa
linguagem.
• Essa ER denota a linguagem que consiste na
palavra 1 ou qualquer palavra que começa
com 0 e depois tem qualquer nº de 1's.
COMPUTABILIDADE E COMPLEXIDADE

Expressões Regulares (ER)

 Teorema: Uma linguagem é regular se e somente


se alguma ER a descreve.
 A prova desse teorema mostra que:
1) A partir de uma ER é possível projetar um
AFN que reconheça a linguagem descrita por
essa ER.
2) A partir de um AFD é possível encontrar a ER
que descreve a linguagem aceita por esse
AFD.
COMPUTABILIDADE E COMPLEXIDADE

Expressões Regulares (ER)


 1) ER → AFN
• Deve-se considerar os 6 casos da descrição
formal de uma ER:
ER AFN equivalente
a

Ø
COMPUTABILIDADE E COMPLEXIDADE

Expressões Regulares (ER)

 1) ER → AFN
Para os outros 3 casos: R1 + R2, R1R2 e R1*,
usamos as construções dadas nas provas de
que a classe de linguagens regulares é
fechada sob as operações regulares.
• Ex: AFN para ab*
COMPUTABILIDADE E COMPLEXIDADE

Expressões Regulares (ER)

 2) AFD → ER
a) Transforma o AFD em AFNG (autômato finito
não determinístico generalizado)
• AFNG são AFNs nos quais as setas podem ter ER
como rótulos; o estado inicial tem transição para
todos os outros estados, mas nenhuma transição
chegando de qualquer estado; existe um único
estado final que recebe transição de todos os
outros estados; o estado inicial e de aceitação não
são os mesmos.
COMPUTABILIDADE E COMPLEXIDADE

Expressões Regulares (ER)

 2) AFD → ER
• Para transformar um AFD em AFNG:
– Adicione um novo estado inicial com seta ε para o
estado inicial antigo.
– Adicione um novo estado final com setas ε
chegando dos estados de aceitação antigos.
– Se quaisquer setas têm múltiplos rótulos,
substituímos cada uma por uma única seta cujo
rótulo é a união dos rótulos anteriores.
– Setas com rótulos Ø entre estados que não tenham
setas podem ser omitidas.
COMPUTABILIDADE E COMPLEXIDADE

Expressões Regulares (ER)

 2) AFD → ER
b) Transforma AFNG em ER usando a técnica
de eliminação de estados.

Elimina-se estado por estado (exceto inicial e
final) reparando os rótulos do autômato de forma
que seja reconhecida a mesma linguagem.
Quando restar apenas o estado inicial e o final, a
ER equivalente é o rótulo da seta existente entre
eles.
COMPUTABILIDADE E COMPLEXIDADE

Expressões Regulares (ER)

 2) AFD → ER
• Exemplo de remoção do estado qrem. O novo rótulo é
uma ER que descreve todas as cadeias que levariam o
AFD de qi para qj, seja diretamente ou passando por
qrem.
COMPUTABILIDADE E COMPLEXIDADE

Expressões Regulares (ER)

 2) AFD → ER
• Exemplo: ER equivalente ao AFD A

AFNG equivalente a A
COMPUTABILIDADE E COMPLEXIDADE

Expressões Regulares (ER)

 2) AFD → ER

Após eliminação do estado q0

Após eliminação do estado q1

ER que descreve linguagem aceita pelo AFD A: a*b (a + b)*


COMPUTABILIDADE E COMPLEXIDADE

Referências

 Sipser, M.; Introdução à Teoria da Computação.


Ed. Thomson, 2007. ISBN: 9878522104994.
 Hopcroft, J. E.; Motwani, R.; Ullman, J. D.;
Introdução à teoria de autômatos: linguagens e
computação. 2ed, Ed. Campus, 2002. ISBN:
8535210725.
 Vieira, N. J.; Introdução aos Fundamentos da
Computação: Linguagens e Máquinas. Ed.
Thomson, 2006. ISBN: 8522105081.

Você também pode gostar