Você está na página 1de 79

Problemas de decisão em teoria de linguagens regulares

Gerson Benjamim Hungulu

Orientado por
Prof. Doutor José Carlos Espírito Santo

13 de Janeiro de 2020

Gerson B Hungulu (Uminho) 13 de Janeiro de 2020 1/1


Ordem da apresentação

Gerson B Hungulu (Uminho) 13 de Janeiro de 2020 2/1


Ordem da apresentação

Gerson B Hungulu (Uminho) 13 de Janeiro de 2020 3/1


Problemas de decisão

Problemas de decisão, segundo sudkamp, consiste num conjunto de


perguntas cujas respostas são "sim" ou "não"
Por exemplo, o problema para determinar se, para todo n ∈ N,
n é ou não primo consiste nas seguintes perguntas: 1 é um
número primo, 2 é um número primo, ...

SudKamp afirma, ainda, que um problema de decisão geralmente


consiste em um número infinito de questões relacionadas.

A solução é um procedimento (1) completo, (2) mecânico e (3)


determinista.

Um problema de decisão é decidível se existir uma solução, caso


contrário, é indecidível.

Gerson B Hungulu (Uminho) 13 de Janeiro de 2020 4/1


Problemas de decisão

Problemas de decisão, segundo sudkamp, consiste num conjunto de


perguntas cujas respostas são "sim" ou "não"
Por exemplo, o problema para determinar se, para todo n ∈ N,
n é ou não primo consiste nas seguintes perguntas: 1 é um
número primo, 2 é um número primo, ...

SudKamp afirma, ainda, que um problema de decisão geralmente


consiste em um número infinito de questões relacionadas.

A solução é um procedimento (1) completo, (2) mecânico e (3)


determinista.

Um problema de decisão é decidível se existir uma solução, caso


contrário, é indecidível.

Gerson B Hungulu (Uminho) 13 de Janeiro de 2020 4/1


Problemas de decisão

Problemas de decisão, segundo sudkamp, consiste num conjunto de


perguntas cujas respostas são "sim" ou "não"
Por exemplo, o problema para determinar se, para todo n ∈ N,
n é ou não primo consiste nas seguintes perguntas: 1 é um
número primo, 2 é um número primo, ...

SudKamp afirma, ainda, que um problema de decisão geralmente


consiste em um número infinito de questões relacionadas.

A solução é um procedimento (1) completo, (2) mecânico e (3)


determinista.

Um problema de decisão é decidível se existir uma solução, caso


contrário, é indecidível.

Gerson B Hungulu (Uminho) 13 de Janeiro de 2020 4/1


Problemas de decisão

Problemas de decisão, segundo sudkamp, consiste num conjunto de


perguntas cujas respostas são "sim" ou "não"
Por exemplo, o problema para determinar se, para todo n ∈ N,
n é ou não primo consiste nas seguintes perguntas: 1 é um
número primo, 2 é um número primo, ...

SudKamp afirma, ainda, que um problema de decisão geralmente


consiste em um número infinito de questões relacionadas.

A solução é um procedimento (1) completo, (2) mecânico e (3)


determinista.

Um problema de decisão é decidível se existir uma solução, caso


contrário, é indecidível.

Gerson B Hungulu (Uminho) 13 de Janeiro de 2020 4/1


Problemas de decisão

Problemas de decisão, segundo sudkamp, consiste num conjunto de


perguntas cujas respostas são "sim" ou "não"
Por exemplo, o problema para determinar se, para todo n ∈ N,
n é ou não primo consiste nas seguintes perguntas: 1 é um
número primo, 2 é um número primo, ...

SudKamp afirma, ainda, que um problema de decisão geralmente


consiste em um número infinito de questões relacionadas.

A solução é um procedimento (1) completo, (2) mecânico e (3)


determinista.

Um problema de decisão é decidível se existir uma solução, caso


contrário, é indecidível.

Gerson B Hungulu (Uminho) 13 de Janeiro de 2020 4/1


Problemas de decisão

Problemas de decisão, segundo sudkamp, consiste num conjunto de


perguntas cujas respostas são "sim" ou "não"
Por exemplo, o problema para determinar se, para todo n ∈ N,
n é ou não primo consiste nas seguintes perguntas: 1 é um
número primo, 2 é um número primo, ...

SudKamp afirma, ainda, que um problema de decisão geralmente


consiste em um número infinito de questões relacionadas.

A solução é um procedimento (1) completo, (2) mecânico e (3)


determinista.

Um problema de decisão é decidível se existir uma solução, caso


contrário, é indecidível.

Gerson B Hungulu (Uminho) 13 de Janeiro de 2020 4/1


Problemas de decisão

Problemas de decisão, segundo sudkamp, consiste num conjunto de


perguntas cujas respostas são "sim" ou "não"
Por exemplo, o problema para determinar se, para todo n ∈ N,
n é ou não primo consiste nas seguintes perguntas: 1 é um
número primo, 2 é um número primo, ...

SudKamp afirma, ainda, que um problema de decisão geralmente


consiste em um número infinito de questões relacionadas.

A solução é um procedimento (1) completo, (2) mecânico e (3)


determinista.

Um problema de decisão é decidível se existir uma solução, caso


contrário, é indecidível.

Gerson B Hungulu (Uminho) 13 de Janeiro de 2020 4/1


Problemas de decisão

Problemas de decisão, segundo sudkamp, consiste num conjunto de


perguntas cujas respostas são "sim" ou "não"
Por exemplo, o problema para determinar se, para todo n ∈ N,
n é ou não primo consiste nas seguintes perguntas: 1 é um
número primo, 2 é um número primo, ...

SudKamp afirma, ainda, que um problema de decisão geralmente


consiste em um número infinito de questões relacionadas.

A solução é um procedimento (1) completo, (2) mecânico e (3)


determinista.

Um problema de decisão é decidível se existir uma solução, caso


contrário, é indecidível.

Gerson B Hungulu (Uminho) 13 de Janeiro de 2020 4/1


Problemas de decisão

Problemas de decisão, segundo sudkamp, consiste num conjunto de


perguntas cujas respostas são "sim" ou "não"
Por exemplo, o problema para determinar se, para todo n ∈ N,
n é ou não primo consiste nas seguintes perguntas: 1 é um
número primo, 2 é um número primo, ...

SudKamp afirma, ainda, que um problema de decisão geralmente


consiste em um número infinito de questões relacionadas.

A solução é um procedimento (1) completo, (2) mecânico e (3)


determinista.

Um problema de decisão é decidível se existir uma solução, caso


contrário, é indecidível.

Gerson B Hungulu (Uminho) 13 de Janeiro de 2020 4/1


Linguagens regulares e autómato finito

Linguagens regulares são todas linguagens representadas por uma


expressão regular;

Stephen Kleene
Noam Chomsky
(1909-1994)
Autómato finito é um modelo matemático de computação de um
sistema com entradas e saídas discretas.

Gerson B Hungulu (Uminho) 13 de Janeiro de 2020 5/1


Linguagens regulares e autómato finito

Linguagens regulares são todas linguagens representadas por uma


expressão regular;

Stephen Kleene
Noam Chomsky
(1909-1994)
Autómato finito é um modelo matemático de computação de um
sistema com entradas e saídas discretas.

Gerson B Hungulu (Uminho) 13 de Janeiro de 2020 5/1


Exemplos de problemas tratados na dissertação

A linguagem aceite por um dado autómato é vazia ou infinita?


Uma expressão regular representa a linguagem vazia, ou representa a
linguagem infinita?

Gerson B Hungulu (Uminho) 13 de Janeiro de 2020 6/1


Exemplos de problemas tratados na dissertação

A linguagem aceite por um dado autómato é vazia ou infinita?


Uma expressão regular representa a linguagem vazia, ou representa a
linguagem infinita?

Gerson B Hungulu (Uminho) 13 de Janeiro de 2020 6/1


Exemplos de problemas tratados na dissertação

A linguagem aceite por um dado autómato é vazia ou infinita?


Uma expressão regular representa a linguagem vazia, ou representa a
linguagem infinita?

Gerson B Hungulu (Uminho) 13 de Janeiro de 2020 6/1


Ordem da apresentação

Gerson B Hungulu (Uminho) 13 de Janeiro de 2020 7/1


Conceitos de Teoria de Linguagens e Teoria de Grafos

Um alfabeto A é um conjunto finito de símbolos, como por exemplo,


o alfabeto da língua portuguesa, o alfabeto binário ({0, 1});

Uma sequência finita de símbolos de A diz-se uma palavra em A;

A∗ é o conjunto de todas as palavras em A;

Uma linguagem L sobre um alfabeto A é um subconjunto de A∗ ;

O conjunto das expressões regulares sobre A (ER(A)) é o conjunto


das palavras sobre o alfabeto A ∪ {∅, , (, ), +,. ,∗ } definido
indutivamente por:
1 ∅,  ∈ ER(A);
2 ∀a ∈ A, a ∈ ER(A);
3 ∀r , s ∈ ER(A), (r + s), (r .s), (r ∗ ) ∈ ER(A).

Gerson B Hungulu (Uminho) 13 de Janeiro de 2020 8/1


Conceitos de Teoria de Linguagens e Teoria de Grafos

Um alfabeto A é um conjunto finito de símbolos, como por exemplo,


o alfabeto da língua portuguesa, o alfabeto binário ({0, 1});

Uma sequência finita de símbolos de A diz-se uma palavra em A;

A∗ é o conjunto de todas as palavras em A;

Uma linguagem L sobre um alfabeto A é um subconjunto de A∗ ;

O conjunto das expressões regulares sobre A (ER(A)) é o conjunto


das palavras sobre o alfabeto A ∪ {∅, , (, ), +,. ,∗ } definido
indutivamente por:
1 ∅,  ∈ ER(A);
2 ∀a ∈ A, a ∈ ER(A);
3 ∀r , s ∈ ER(A), (r + s), (r .s), (r ∗ ) ∈ ER(A).

Gerson B Hungulu (Uminho) 13 de Janeiro de 2020 8/1


Conceitos de Teoria de Linguagens e Teoria de Grafos

Um alfabeto A é um conjunto finito de símbolos, como por exemplo,


o alfabeto da língua portuguesa, o alfabeto binário ({0, 1});

Uma sequência finita de símbolos de A diz-se uma palavra em A;

A∗ é o conjunto de todas as palavras em A;

Uma linguagem L sobre um alfabeto A é um subconjunto de A∗ ;

O conjunto das expressões regulares sobre A (ER(A)) é o conjunto


das palavras sobre o alfabeto A ∪ {∅, , (, ), +,. ,∗ } definido
indutivamente por:
1 ∅,  ∈ ER(A);
2 ∀a ∈ A, a ∈ ER(A);
3 ∀r , s ∈ ER(A), (r + s), (r .s), (r ∗ ) ∈ ER(A).

Gerson B Hungulu (Uminho) 13 de Janeiro de 2020 8/1


Conceitos de Teoria de Linguagens e Teoria de Grafos

Um alfabeto A é um conjunto finito de símbolos, como por exemplo,


o alfabeto da língua portuguesa, o alfabeto binário ({0, 1});

Uma sequência finita de símbolos de A diz-se uma palavra em A;

A∗ é o conjunto de todas as palavras em A;

Uma linguagem L sobre um alfabeto A é um subconjunto de A∗ ;

O conjunto das expressões regulares sobre A (ER(A)) é o conjunto


das palavras sobre o alfabeto A ∪ {∅, , (, ), +,. ,∗ } definido
indutivamente por:
1 ∅,  ∈ ER(A);
2 ∀a ∈ A, a ∈ ER(A);
3 ∀r , s ∈ ER(A), (r + s), (r .s), (r ∗ ) ∈ ER(A).

Gerson B Hungulu (Uminho) 13 de Janeiro de 2020 8/1


Conceitos de Teoria de Linguagens e Teoria de Grafos

Um alfabeto A é um conjunto finito de símbolos, como por exemplo,


o alfabeto da língua portuguesa, o alfabeto binário ({0, 1});

Uma sequência finita de símbolos de A diz-se uma palavra em A;

A∗ é o conjunto de todas as palavras em A;

Uma linguagem L sobre um alfabeto A é um subconjunto de A∗ ;

O conjunto das expressões regulares sobre A (ER(A)) é o conjunto


das palavras sobre o alfabeto A ∪ {∅, , (, ), +,. ,∗ } definido
indutivamente por:
1 ∅,  ∈ ER(A);
2 ∀a ∈ A, a ∈ ER(A);
3 ∀r , s ∈ ER(A), (r + s), (r .s), (r ∗ ) ∈ ER(A).

Gerson B Hungulu (Uminho) 13 de Janeiro de 2020 8/1


Conceitos de Teoria de Linguagens e Teoria de Grafos

Autómato finito determinista Autómato finito não determinista


(AFD) A0 (AFN) A1

q4 q1 0 q2
0,1

1 0
1 0,1
q3 start q0

0 1 0 1

start q0 q1 q2 q3 q4
0 0 1

Gerson B Hungulu (Uminho) 13 de Janeiro de 2020 9/1


Conceitos de Teoria de Linguagens e Teoria de Grafos

AFD A0
Produz saídas: aceite ou
0,1 q4 rejeitada
Quando recebe uma palavra
1 0100 o processo
1 0,1 1 Inicia em q0 ;
q3 2 Lê 0 e transita para q1 ;
3 Lê 1 e transita para q3 ;
4 Lê 0 e transita para q1 ;
1 0 5 Lê 0 e transita para q2 ;
6 Aceitar ...
start q0 q1 q2
0 0

Gerson B Hungulu (Uminho) 13 de Janeiro de 2020 10 / 1


Conceitos de Teoria de Linguagens e Teoria de Grafos

Definição formal de AFD


Um AFD é um quíntuplo A = (Q, A, δ, i, F ) onde
Q é um conjunto finito de estados;
A é um alfabeto, chamado o alfabeto (de entrada) de A;
δ : Q × A → Q é uma função, designada função de transição de A;
i ∈ Q é o estado inicial de A;
F ⊆ Q é o conjunto de estados finais/de aceitação de A.

Linguagem aceite por um AFD A


L(A) = {u ∈ A∗ | δ ∗ (q, u) ∈ F }

Gerson B Hungulu (Uminho) 13 de Janeiro de 2020 11 / 1


Conceitos de Teoria de Linguagens e Teoria de Grafos

Definição formal de AFD


Um AFD é um quíntuplo A = (Q, A, δ, i, F ) onde
Q é um conjunto finito de estados;
A é um alfabeto, chamado o alfabeto (de entrada) de A;
δ : Q × A → Q é uma função, designada função de transição de A;
i ∈ Q é o estado inicial de A;
F ⊆ Q é o conjunto de estados finais/de aceitação de A.

Linguagem aceite por um AFD A


L(A) = {u ∈ A∗ | δ ∗ (q, u) ∈ F }

Gerson B Hungulu (Uminho) 13 de Janeiro de 2020 11 / 1


Conceitos de Teoria de Linguagens e Teoria de Grafos

Nesta apresentação os grafos são grafos dirigidos.

Formas de representação de grafos


Por listas de adjacência
Por uma matriz de adjacência

Definição do grafo de um autómato A


Seja A = (Q, A, δ, i, F ) um AFD. G(A) = (V , E ) é o grafo de A onde:
V = Q,
E = {(q, q 0 ) ∈ Q × Q | ∃x ∈ A, δ(q, x) = q 0 }.

Gerson B Hungulu (Uminho) 13 de Janeiro de 2020 12 / 1


Conceitos de Teoria de Linguagens e Teoria de Grafos

Nesta apresentação os grafos são grafos dirigidos.

Formas de representação de grafos


Por listas de adjacência
Por uma matriz de adjacência

Definição do grafo de um autómato A


Seja A = (Q, A, δ, i, F ) um AFD. G(A) = (V , E ) é o grafo de A onde:
V = Q,
E = {(q, q 0 ) ∈ Q × Q | ∃x ∈ A, δ(q, x) = q 0 }.

Gerson B Hungulu (Uminho) 13 de Janeiro de 2020 12 / 1


Conceitos de Teoria de Linguagens e Teoria de Grafos

G(A0 )

q4 Listas de adjacência de G(A0 )

q0 q1 q4
q1 q2 q3
q3
q2 q4
q3 q1 q4
q4 q4
q0 q1 q2

Gerson B Hungulu (Uminho) 13 de Janeiro de 2020 13 / 1


Conceitos de Teoria de Linguagens e Teoria de Grafos

Breadth-first-search (BFS)
Recebe um grafo e um vértice fonte;
Aos vértices são atribuídos cores (WHITE, GRAY, BLACK) e um valor
que os distância com o vértice fonte;
Vértices descobertos são pintados de cinza(GRAY);
Todos os vértices visitados estarão pintados de preto (BLACK).

Gerson B Hungulu (Uminho) 13 de Janeiro de 2020 14 / 1


Conceitos de Teoria de Linguagens e Teoria de Grafos

Breadth-first-search (BFS)

Gerson B Hungulu (Uminho) 13 de Janeiro de 2020 15 / 1


Conceitos de Teoria de Linguagens e Teoria de Grafos

BFS
q4

q3 Q q0
0

q0 q1 q2

Gerson B Hungulu (Uminho) 13 de Janeiro de 2020 16 / 1


Conceitos de Teoria de Linguagens e Teoria de Grafos

BFS
q4

q3 Q q1 q4
1 1

q0 q1 q2

Gerson B Hungulu (Uminho) 13 de Janeiro de 2020 17 / 1


Conceitos de Teoria de Linguagens e Teoria de Grafos

BFS
q4

q3 Q q2 q3
2 2

q0 q1 q2

Gerson B Hungulu (Uminho) 13 de Janeiro de 2020 18 / 1


Conceitos de Teoria de Linguagens e Teoria de Grafos

BFS
q4

q3 Q q3
2

q0 q1 q2

Gerson B Hungulu (Uminho) 13 de Janeiro de 2020 19 / 1


Conceitos de Teoria de Linguagens e Teoria de Grafos

BFS
q4

q3 Q ∅

q0 q1 q2

Gerson B Hungulu (Uminho) 13 de Janeiro de 2020 20 / 1


Conceitos de Teoria de Linguagens e Teoria de Grafos

Depth-first search (DFS)


Recebe um grafo;
Aos vértices são atribuídos cores (WHITE, GRAY, BLACK), um
tempo de descoberta e de finalização;
Todos os vértices visitados estarão pintados de preto (BLACK);
Classifica as arestas.

Gerson B Hungulu (Uminho) 13 de Janeiro de 2020 21 / 1


Conceitos de Teoria de Linguagens e Teoria de Grafos

Depth-first search (DFS)


1: procedure DFS(G )
2: for each vertex u ∈ V [G ] do . "pinta" WHITE todos vértices
3: color [u] ← WHITE
4: π[u] ← NIL
5: time ← 0
6: for each vertex u ∈ V [G ] do . descobre os vértices fontes u
7: if color [u] = WHITE then
8: DFS-VISIT(u)

Gerson B Hungulu (Uminho) 13 de Janeiro de 2020 22 / 1


Conceitos de Teoria de Linguagens e Teoria de Grafos

Depth-first search (DFS)


1: procedure DFS-VISIT(u)
2: color [u] ← GRAY . o vértice WHITE u foi descoberto
3: time ← time + 1
4: d[u] ← time
5: for each v ∈ Adj[u] do . explora arestas (u, v )
6: if color [v ] = WHITE then
7: π[v ] ← u
8: DFS-VISIT(v )
9: color [u] ← BLACK . "pinta" BLACK o vértice u
10: f [u] ← time ← time + 1

Gerson B Hungulu (Uminho) 13 de Janeiro de 2020 23 / 1


Ordem da apresentação

Gerson B Hungulu (Uminho) 13 de Janeiro de 2020 24 / 1


Problema da linguagem Vazia

Teorema 1
Sejam A um AFD e n ∈ N o número de estados de A.
L(A) 6= ∅ se, e só se, A aceita alguma palavra de comprimento menor que
n.

Teorema 2
Seja A = (Q, A, δ, i, F ) um AFD. L(A) 6= ∅ se, e só se, existir em A um
estado final acessível.

Gerson B Hungulu (Uminho) 13 de Janeiro de 2020 25 / 1


Problema da linguagem Vazia

Teorema 1
Sejam A um AFD e n ∈ N o número de estados de A.
L(A) 6= ∅ se, e só se, A aceita alguma palavra de comprimento menor que
n.

Teorema 2
Seja A = (Q, A, δ, i, F ) um AFD. L(A) 6= ∅ se, e só se, existir em A um
estado final acessível.

Gerson B Hungulu (Uminho) 13 de Janeiro de 2020 25 / 1


Problema da linguagem Vazia

Algoritmo para decidir se um AFD A aceita ou não a linguagem vazia

Gerson B Hungulu (Uminho) 13 de Janeiro de 2020 26 / 1


Problema da linguagem Vazia

Ilustração do funcionamento do algoritmo com o autómato A0

q4
Grafo G 0 produzido pelo
BFS(G , q0 ) onde G = G(A0 )
V = {q0 , q1 , q2 , q3 , q4 }
q3
F = {q2 , q3 }
A0 não aceita a linguagem vazia:
acessivel:= true .
q0 q1 q2

Complexidade de tempo
VAZIA é decidível em tempo O(n2 ), onde n = #Q.
Gerson B Hungulu (Uminho) 13 de Janeiro de 2020 27 / 1
Problema da linguagem Infinita

Teorema 1
Sejam A um AFD e n ∈ N, o número de estados de A.
L(A) é infinita se, e só se, A aceita alguma palavra de comprimento l, para
algum l satisfazendo n ≤ l < 2n.

Gerson B Hungulu (Uminho) 13 de Janeiro de 2020 28 / 1


Problema da linguagem Infinita

Teorema 2
Sejam A = (Q, A, δ, i, F ) e A0 = (Q 0 , A, δ 0 , i, F 0 ) AFD onde:
Q 0 = {q ∈ Q | q é acessível e co-acessível em A}
F 0 = F ∩ Q0
δ 0 = δ|Q 0 ×A = δ ∩ ((Q 0 × A) × Q 0 )
Qualquer que seja u ∈ A∗ , u ∈ L(A0 ) se, e só se, u ∈ L(A)

Teorema 3
Seja A AFD acessível e co-acessível. Seja G(A) o grafo do autómato A.
L(A) é infinita se, e só se, G(A) é cíclico.

Gerson B Hungulu (Uminho) 13 de Janeiro de 2020 29 / 1


Problema da linguagem Infinita

DFS-ACESSIVEL
1: procedure DFS-ACESSIVEL(G , Q 0 )
2: for each vertex u 0 ∈ V [G ] do . "pinta" WHITE todos vértices
3: 0
color [u ] ← WHITE
4: π[u 0 ] ← NIL
5: time ← 0
6: for each q ∈ Q 0 do . descobre os vértices fontes q
7: if color [q] = WHITE then
8: DFS-VISIT(q)
9: 0
G := APAGAR(G ) . apaga vértices que não são BLACK

Gerson B Hungulu (Uminho) 13 de Janeiro de 2020 30 / 1


Problema da linguagem Infinita

DFS-CICLICO

Gerson B Hungulu (Uminho) 13 de Janeiro de 2020 31 / 1


Problema da linguagem Infinita

Algoritmo para inverter um grafo


1: procedure INVERTER(G )
2: V [(G )−1 ] := V [(G )]
3: E [(G )−1 ] := ∅
4: (Adj)−1 := ∅
5: for u ∈ V [(G )−1 ] do
6: for v ∈ Adj[u] do . adiciona o inverso de (u, v )
7: E [(G )−1 ] := E [(G )−1 ] ∪ {(v , u)}
8: (Adj[v ])−1 := (Adj[v ])−1 ∪ {u}
9: G −1 := (V [(G )−1 ], E [(G )−1 ], (Adj)−1 )
10: return(G −1 )

Gerson B Hungulu (Uminho) 13 de Janeiro de 2020 32 / 1


Problema da linguagem Infinita

Algoritmo para decidir se um AFD A aceita ou não uma linguagem


infinita
1: procedure INFINITA(A)
2: G := G(A)
3: i := estado inicial de A
4: F := conjunto de estados finais de A
5: G0 := DFS-ACESSIVEL(G , {i})
6: G1 :=INVERTER(G0 )
7: G2 := DFS-ACESSIVEL(G1 , F )
8: for each u ∈ V [G2 ] do . "pinta" WHITE cada vértice u de G2
9: color [u] ←WHITE
10: time ← 0
11: for each u ∈ V [G2 ] do . descobre os vértices fontes u
12: if color [u] = WHITE then
13: return(DFS-CICLICO(u))

Gerson B Hungulu (Uminho) 13 de Janeiro de 2020 33 / 1


Problema da linguagem Infinita

Ilustração do funcionamento do algoritmo com o autómato A0

q4

Produção do grafo G0 pelo q3


DFS-ACESSIVEL(G , {q0 }) onde
G = G(A0 )

q0 q1 q2
1/

Gerson B Hungulu (Uminho) 13 de Janeiro de 2020 34 / 1


Problema da linguagem Infinita

Ilustração do funcionamento do algoritmo com o autómato A0

q4 2/

Produção do grafo G0 pelo q3


DFS-ACESSIVEL(G , {q0 }) onde
G = G(A0 )

q0 q1 q2
1/

Gerson B Hungulu (Uminho) 13 de Janeiro de 2020 35 / 1


Problema da linguagem Infinita

Ilustração do funcionamento do algoritmo com o autómato A0

B q4 2/

Produção do grafo G0 pelo q3


DFS-ACESSIVEL(G , {q0 }) onde
G = G(A0 )

q0 q1 q2
1/

Gerson B Hungulu (Uminho) 13 de Janeiro de 2020 36 / 1


Problema da linguagem Infinita

Ilustração do funcionamento do algoritmo com o autómato A0

B q4 2/3

Produção do grafo G0 pelo


q3
DFS-ACESSIVEL(G , {q0 }) onde
G = G(A0 )

q0 q1 q2
1/

Gerson B Hungulu (Uminho) 13 de Janeiro de 2020 37 / 1


Problema da linguagem Infinita

Ilustração do funcionamento do algoritmo com o autómato A0

B q4 2/3

Produção do grafo G0 pelo


q3
DFS-ACESSIVEL(G , {q0 }) onde
G = G(A0 )

q0 q1 q2
1/ 4/

Gerson B Hungulu (Uminho) 13 de Janeiro de 2020 38 / 1


Problema da linguagem Infinita

Ilustração do funcionamento do algoritmo com o autómato A0

B q4 2/3

Produção do grafo G0 pelo


q3 5/
DFS-ACESSIVEL(G , {q0 }) onde
G = G(A0 )

q0 q1 q2
1/ 4/

Gerson B Hungulu (Uminho) 13 de Janeiro de 2020 39 / 1


Problema da linguagem Infinita

Ilustração do funcionamento do algoritmo com o autómato A0

B q4 2/3

apf
Produção do grafo G0 pelo
q3 5/
DFS-ACESSIVEL(G , {q0 }) onde
G = G(A0 )

q0 q1 q2
1/ 4/

Gerson B Hungulu (Uminho) 13 de Janeiro de 2020 40 / 1


Problema da linguagem Infinita

Ilustração do funcionamento do algoritmo com o autómato A0

B q4 2/3

apf
Produção do grafo G0 pelo
q3 5/
DFS-ACESSIVEL(G , {q0 }) onde
G = G(A0 )
B

q0 q1 q2
1/ 4/

Gerson B Hungulu (Uminho) 13 de Janeiro de 2020 41 / 1


Problema da linguagem Infinita

Ilustração do funcionamento do algoritmo com o autómato A0

B q4 2/3

apf
Produção do grafo G0 pelo
q3 5/6
DFS-ACESSIVEL(G , {q0 }) onde
G = G(A0 )
B

q0 q1 q2
1/ 4/

Gerson B Hungulu (Uminho) 13 de Janeiro de 2020 42 / 1


Problema da linguagem Infinita

Ilustração do funcionamento do algoritmo com o autómato A0

B q4 2/3

apf
Produção do grafo G0 pelo apf
q3 5/6
DFS-ACESSIVEL(G , {q0 }) onde
G = G(A0 )
B

q0 q1 q2
1/ 4/ 7/

Gerson B Hungulu (Uminho) 13 de Janeiro de 2020 43 / 1


Problema da linguagem Infinita

Ilustração do funcionamento do algoritmo com o autómato A0

B q4 2/3

apf
Produção do grafo G0 pelo apf
q3 5/6
DFS-ACESSIVEL(G , {q0 }) onde
G = G(A0 )
B

q0 q1 q2
1/ 4/ 7/

Gerson B Hungulu (Uminho) 13 de Janeiro de 2020 44 / 1


Problema da linguagem Infinita

Ilustração do funcionamento do algoritmo com o autómato A0

B q4 2/3

apf

Produção do grafo G0 pelo apf


q3 5/6
DFS-ACESSIVEL(G , {q0 }) onde
G = G(A0 )
B

q0 q1 q2
1/ 4/ 7/8

Gerson B Hungulu (Uminho) 13 de Janeiro de 2020 45 / 1


Problema da linguagem Infinita

Ilustração do funcionamento do algoritmo com o autómato A0

B q4 2/3

apf

Produção do grafo G0 pelo apf


q3 5/6
DFS-ACESSIVEL(G , {q0 }) onde
G = G(A0 )
B

q0 q1 q2
1/ 4/9 7/8

Gerson B Hungulu (Uminho) 13 de Janeiro de 2020 46 / 1


Problema da linguagem infinita

Ilustração do funcionamento do algoritmo com o autómato A0

B q4 2/3

apf

Produção do grafo G0 pelo apf


q3 5/6
DFS-ACESSIVEL(G , {q0 })
onde G = G(A0 )
B

q0 q1 q2
1/10 4/9 7/8

Gerson B Hungulu (Uminho) 13 de Janeiro de 2020 47 / 1


Problema da linguagem infinita

Ilustração do funcionamento do algoritmo com o autómato A0

B q4 2/3

apf
apf
Grafo G1 produzido pelo q3 5/6
procedimento inverter
B

q0 q1 q2
1/10 4/9 7/8

Gerson B Hungulu (Uminho) 13 de Janeiro de 2020 48 / 1


Problema da linguagem infinita

Ilustração do funcionamento do algoritmo com o autómato A0

q4

Produção do grafo G2 pelo


q3 1/
DFS-ACESSIVEL(G1 , F )
onde F = {q2 , q3 }

q0 q1 q2

Gerson B Hungulu (Uminho) 13 de Janeiro de 2020 49 / 1


Problema da linguagem infinita

Ilustração do funcionamento do algoritmo com o autómato A0

q4

Produção do grafo G2 pelo q3 1/6


DFS-ACESSIVEL(G1 , F )
onde F = {q2 , q3 }
B

q0 q1 q2
C
3/4 2/5 7/8

Gerson B Hungulu (Uminho) 13 de Janeiro de 2020 50 / 1


Problema da linguagem infinita

Ilustração do funcionamento do algoritmo com o autómato A0

Grafo G2 produzido pelo q3 1/6


DFS-ACESSIVEL(G1 , F )
onde F = {q2 , q3 }
B

q0 q1 q2
C
3/4 2/5 7/8

Gerson B Hungulu (Uminho) 13 de Janeiro de 2020 51 / 1


Problema da linguagem infinita

Ilustração do funcionamento do algoritmo com o autómato A0

DFS-CICLICO(q2 ) q3
pesquisando G2

q0 q1 q2

Gerson B Hungulu (Uminho) 13 de Janeiro de 2020 52 / 1


Problema da linguagem infinita

Ilustração do funcionamento do algoritmo com o autómato A0

q3 5/6
DFS-CICLICO(q2 )
pesquisando G2 B
q1 não é WHITE:
back_edge:= true q0 q1 q2
3/4 2/7 1/8

Complexidade de tempo
INFINITA é decidível em tempo O(n2 ), onde n = #Q.

Gerson B Hungulu (Uminho) 13 de Janeiro de 2020 53 / 1


Ordem da apresentação

Gerson B Hungulu (Uminho) 13 de Janeiro de 2020 54 / 1


Problemas de decisão sobre Expressões Regulares
Teorema
Qualquer que seja r ∈ ER(A), vazia(r ) = V se, e só se, L(r ) = ∅.

Predicado Vazia
vazia : ER(A) → {V , F }
vazia(∅) = V
vazia() = vazia(a) = F
vazia(r1 + r2 ) = vazia(r1 ) ∧ vazia(r2 )
vazia(r1 .r2 ) = vazia(r1 ) ∨ vazia(r2 )
vazia(r ∗ ) = F

Complexidade de tempo
O predicado vazia é decidível em tempo O(n).

Gerson B Hungulu (Uminho) 13 de Janeiro de 2020 55 / 1


Problemas de decisão sobre Expressões Regulares
Teorema
Qualquer que seja r ∈ ER(A), epsilon(r ) = V se, e só se, L(r ) = {}.

Predicado Epsilon
epsilon : ER(A) → {V , F }
epsilon(∅) = epsilon(a) = F
epsilon() = V
epsilon(r1 + r2 ) = epsilon(r1 ) ∧ epsilon(r2 )
epsilon(r1 .r2 ) = epsilon(r1 ) ∧ epsilon(r2 )
epsilon(r ∗ ) = epsilon(r ) ∨ vazia(r )

Complexidade de tempo
O predicado epsilon é decidível em tempo O(n).

Gerson B Hungulu (Uminho) 13 de Janeiro de 2020 56 / 1


Problemas de decisão sobre Expressões Regulares
Teorema
Qualquer que seja r ∈ ER(A), infinita(r ) = V se, e só se, L(r ) é infinita.

Predicado Infinita
infinita : ER(A) → {V , F }
infinita(∅) = infinita() = infinita(a) = F
infinita(r1 + r2 ) = infinita(r1 ) ∨ infinita(r2 )

F se vazia(r1 ) ∨ vazia(r2 )
infinita(r1 .r2 ) =
infinita(r1 ) ∨ infinita(r2 ) se não

∗ F se vazia(r ) ∨ epsilon(r )
infinita(r ) =
V se não

Complexidade de tempo
O predicado infinita é decidível em tempo O(n).

Gerson B Hungulu (Uminho) 13 de Janeiro de 2020 57 / 1


Ordem da apresentação

Gerson B Hungulu (Uminho) 13 de Janeiro de 2020 58 / 1


Conclusões

Os fundamentos da teoria de grafos tiveram grande utilidade na


execução deste trabalho;

É mais eficiente decidir se uma determinada expressão regular


representa a linguagem vazia, ou representa linguagem infinita, do que
decidir se um dado AFD aceita a linguagem vazia, ou aceita a
linguagem infinita, pelo facto de que num caso o tempo ser O(n) e no
outro O(n2 ).

Gerson B Hungulu (Uminho) 13 de Janeiro de 2020 59 / 1


Conclusões

Os fundamentos da teoria de grafos tiveram grande utilidade na


execução deste trabalho;

É mais eficiente decidir se uma determinada expressão regular


representa a linguagem vazia, ou representa linguagem infinita, do que
decidir se um dado AFD aceita a linguagem vazia, ou aceita a
linguagem infinita, pelo facto de que num caso o tempo ser O(n) e no
outro O(n2 ).

Gerson B Hungulu (Uminho) 13 de Janeiro de 2020 59 / 1


Problemas de decisão em teoria de linguagens regulares

Gerson Benjamim Hungulu

Orientado por
Prof. Doutor José Carlos Espírito Santo

13 de Janeiro de 2020

Gerson B Hungulu (Uminho) 13 de Janeiro de 2020 60 / 1

Você também pode gostar