Cíl2Capítulo 2. Autómatos FinitosAutómatos Finitoscbarrico/Disciplinas/TeoriaComputacao... ·...

58
C í l 2 Capítulo 2. Autómatos Finitos Autómatos Finitos 2 1 A it d dt i í ti (DFA) 2.1. Aceitadores determinísticos (DFA) 2.2. Autómatos finitos não-determinísticos (NFA) 2.3. Equivalência entre os DFA e os NFA 2.4 Autómatos finitos transdutores (Mealy e Moore) © ADC/TCI/Cap.2/2000-10/LEI/DEIFCTUC 65

Transcript of Cíl2Capítulo 2. Autómatos FinitosAutómatos Finitoscbarrico/Disciplinas/TeoriaComputacao... ·...

Page 1: Cíl2Capítulo 2. Autómatos FinitosAutómatos Finitoscbarrico/Disciplinas/TeoriaComputacao... ·  · 2010-02-28Um aceitador determinístico (DFA- Deterministic Finite Acce pp)ter)

C í l 2Capítulo 2.

Autómatos FinitosAutómatos Finitos2 1 A it d d t i í ti (DFA)2.1. Aceitadores determinísticos (DFA)

2.2. Autómatos finitos não-determinísticos (NFA)

2.3. Equivalência entre os DFA e os NFA

2.4 Autómatos finitos transdutores (Mealy e Moore)

© ADC/TCI/Cap.2/2000-10/LEI/DEIFCTUC65

Page 2: Cíl2Capítulo 2. Autómatos FinitosAutómatos Finitoscbarrico/Disciplinas/TeoriaComputacao... ·  · 2010-02-28Um aceitador determinístico (DFA- Deterministic Finite Acce pp)ter)

A partir de um alfabeto, podem-se definir muitas linguagens

As linguagens podem ser definidas por uma gramática

Dada uma cadeia de caracteres, como saber se pertence a , puma dada linguagem ?

A resposta pode ser obtida por um autómato chamado aceitador: ele tem um estado “aceitar” ao qual é levado por qualquerele tem um estado aceitar ao qual é levado por qualquer cadeia (de uma dada linguagem), que se apresente à sua entrada Por isso se chama aceitador (accepter)entrada. Por isso se chama aceitador (accepter).

© ADC/TCI/Cap.2/2000-10/LEI/DEIFCTUC66

Page 3: Cíl2Capítulo 2. Autómatos FinitosAutómatos Finitoscbarrico/Disciplinas/TeoriaComputacao... ·  · 2010-02-28Um aceitador determinístico (DFA- Deterministic Finite Acce pp)ter)

Linguagens

óGramáticas GGeram as

AutómatosReconhecem asGeram as

cadeias de LReconhecem as

cadeias de L

© ADC/TCI/Cap.2/2000-10/LEI/DEIFCTUC67

Page 4: Cíl2Capítulo 2. Autómatos FinitosAutómatos Finitoscbarrico/Disciplinas/TeoriaComputacao... ·  · 2010-02-28Um aceitador determinístico (DFA- Deterministic Finite Acce pp)ter)

2 1 Aceitadores determinísticos (DFA)2.1. Aceitadores determinísticos (DFA)

Definição 2.1. DFADefinição 2.1. DFA

Um aceitador determinístico (DFA- Deterministic Finite Accepter) ( p )é definido pelo quinteto

M = (Q , , , q0 , F )

Q : conjunto finito de estados internos : alfabeto de entrada (conjunto finito de caracteres) : Q x Q é a função total chamada função de transiçãoq0 Q é o estado inicialF Q é o conjunto de estados finais

© ADC/TCI/Cap.2/2000-10/LEI/DEIFCTUC68

Page 5: Cíl2Capítulo 2. Autómatos FinitosAutómatos Finitoscbarrico/Disciplinas/TeoriaComputacao... ·  · 2010-02-28Um aceitador determinístico (DFA- Deterministic Finite Acce pp)ter)

Exemplo 1Exemplo 1

1

off oninício

1

1

Q j d d i { ff}Q , conjunto de estados internos: {on, off} , alfabeto de entrada: {1} f ã d t i ã ff 1 1 ff , função de transição: off 1 on; on 1 offq0, é o estado inicial: offF o estado final: {on}F, o estado final: {on}

© ADC/TCI/Cap.2/2000-10/LEI/DEIFCTUC69

Page 6: Cíl2Capítulo 2. Autómatos FinitosAutómatos Finitoscbarrico/Disciplinas/TeoriaComputacao... ·  · 2010-02-28Um aceitador determinístico (DFA- Deterministic Finite Acce pp)ter)

cadeia de entrada a a b b a b

Não tem

q0

dispositivo de memória nem

q1q2 cadeia de saída !!!

estado seguinteá d d estado seguinte,movida,

símbolo na saída

carácter de entradaestado actual símbolo na saída

© ADC/TCI/Cap.2/2000-10/LEI/DEIFCTUC70

Page 7: Cíl2Capítulo 2. Autómatos FinitosAutómatos Finitoscbarrico/Disciplinas/TeoriaComputacao... ·  · 2010-02-28Um aceitador determinístico (DFA- Deterministic Finite Acce pp)ter)

2.1.1.Representação de um autómato por um grafo

estadoVértices qi estadoVértices qi

estado inicialq0

estado aceitador ou finalqf

[*] átA

estado aceitador ou finalqf

[*] caráterArestas

© ADC/TCI/Cap.2/2000-10/LEI/DEIFCTUC71

Page 8: Cíl2Capítulo 2. Autómatos FinitosAutómatos Finitoscbarrico/Disciplinas/TeoriaComputacao... ·  · 2010-02-28Um aceitador determinístico (DFA- Deterministic Finite Acce pp)ter)

E l 2 01Exemplo 2

i í i

0

q2

01

qinício1

q20

q1q0

1

M= (Q, , , q0, F) Q = {q0,q1,q2}, = {0,1}, F = {q2} e é definida por

Entradas

Estados 0 1q0 q1 q0q1q2

q2q0q1

q0

© ADC/TCI/Cap.2/2000-10/LEI/DEIFCTUC72

Page 9: Cíl2Capítulo 2. Autómatos FinitosAutómatos Finitoscbarrico/Disciplinas/TeoriaComputacao... ·  · 2010-02-28Um aceitador determinístico (DFA- Deterministic Finite Acce pp)ter)

Exemplo 3

q0 q111Início q0

11Início q1

10 000

10 000

q2 q311

q2 q311

EstadosEntradas

0 1Estados 0 1q0q

q2 q1q q

q0 q11

0 000

Início

q1q2q3 q2q1

q3q3q0

q0

q211

0 000

q3q3 q2q1 1

© ADC/TCI/Cap.2/2000-10/LEI/DEIFCTUC73

Page 10: Cíl2Capítulo 2. Autómatos FinitosAutómatos Finitoscbarrico/Disciplinas/TeoriaComputacao... ·  · 2010-02-28Um aceitador determinístico (DFA- Deterministic Finite Acce pp)ter)

A linguagem de um DFA MA linguagem de um DFA M

li i ( h id ) M éa linguagem aceite (ou reconhecida) por M é o

conjunto de todas as cadeias que, começando no estado inicial alcançam umcomeçando no estado inicial, alcançam um dos estados finais depois de toda a cadeia

ter sido lida.

Qual a linguagem do DFA do exemplo 3 ?

© ADC/TCI/Cap.2/2000-10/LEI/DEIFCTUC74

Page 11: Cíl2Capítulo 2. Autómatos FinitosAutómatos Finitoscbarrico/Disciplinas/TeoriaComputacao... ·  · 2010-02-28Um aceitador determinístico (DFA- Deterministic Finite Acce pp)ter)

E l 4Exemplo 4

I í i q q

0 01

Início q0 q1

1Exemplo 5

1

0 1

Início q0 q11

0 0 11Exemplo 6

0

Início q0 q1 q21 0

0 0,11

© ADC/TCI/Cap.2/2000-10/LEI/DEIFCTUC75

Page 12: Cíl2Capítulo 2. Autómatos FinitosAutómatos Finitoscbarrico/Disciplinas/TeoriaComputacao... ·  · 2010-02-28Um aceitador determinístico (DFA- Deterministic Finite Acce pp)ter)

Exemplo 7p

M = ({q0, q1, q2}, {a,b}, , q0, {q2})0 1 2 0 2

: Q x Q

bFunção de transição: a b

q q q

Função de transição:

(q0, a) = q1 q0 q1 q2

q1 q0 q2

(q0, a) q1 (q0, b) = q2 (q1, a) = q0 q1 q0 q2

q2 q2 q2

(q1, ) q0 (q1, b) = q2 (q2, a) = q2(q2 ) q2 (q2, b) = q2

© ADC/TCI/Cap.2/2000-10/LEI/DEIFCTUC76

Page 13: Cíl2Capítulo 2. Autómatos FinitosAutómatos Finitoscbarrico/Disciplinas/TeoriaComputacao... ·  · 2010-02-28Um aceitador determinístico (DFA- Deterministic Finite Acce pp)ter)

aa

aq0q1 q0

q0

bb b

q0

q2q2 q2q2

a b a b

q2q2

a,b a,b

© ADC/TCI/Cap.2/2000-10/LEI/DEIFCTUC77

Page 14: Cíl2Capítulo 2. Autómatos FinitosAutómatos Finitoscbarrico/Disciplinas/TeoriaComputacao... ·  · 2010-02-28Um aceitador determinístico (DFA- Deterministic Finite Acce pp)ter)

Função de transição estendida *:ç ç

* : Q * Q

O seu segundo argumento é uma cadeia em vez de um carácter,carácter,

o seu valor de saída dá o estado do autómato depois de ler a cadeia toda,,

é uma forma compacta de descrever um conjunto de transições resultantes da leitura de uma cadeia de entrada.

Por exemplo

ç

p

(q0, a) = q1 e (q1, b) = q2 então * (q0, ab) = q2

© ADC/TCI/Cap.2/2000-10/LEI/DEIFCTUC78

Page 15: Cíl2Capítulo 2. Autómatos FinitosAutómatos Finitoscbarrico/Disciplinas/TeoriaComputacao... ·  · 2010-02-28Um aceitador determinístico (DFA- Deterministic Finite Acce pp)ter)

Definição recursiva da função de transição estendidaç ç ç

1 * (q )= q1. * (q,)= q2. * (q,wa)= ( * (q, w), a)

para todo o q Q, w *, a .

Para o exemplo anterior teremos :

* (q0, ab) = ( * (q0, a), b)

* (q0, a) = * (q0, a) = ( *(q0, ), a)= (q0, a) = q1

* (q0, ab) = ( q1, b) = q2

© ADC/TCI/Cap.2/2000-10/LEI/DEIFCTUC79

Page 16: Cíl2Capítulo 2. Autómatos FinitosAutómatos Finitoscbarrico/Disciplinas/TeoriaComputacao... ·  · 2010-02-28Um aceitador determinístico (DFA- Deterministic Finite Acce pp)ter)

Linguagens e DFA’s

Definição 2.2. Linguagem aceite por um DFA

A linguagem aceite por um DFA M =(Q, , , q0, F) é o conjunto d t d d i it M ide todas as cadeias em aceites por M, i.e.,

L(M) { * * ( ) F }L(M) = {w * : * (q0, w)F }

As funções de transição e * são funções totais.

Em cada passo define-se um e um só movimento, e por isso o autómato chama-se determinístico.

O autómato processa todas as w em *, aceitando-as ou não.© ADC/TCI/Cap.2/2000-10/LEI/DEIFCTUC

80

Page 17: Cíl2Capítulo 2. Autómatos FinitosAutómatos Finitoscbarrico/Disciplinas/TeoriaComputacao... ·  · 2010-02-28Um aceitador determinístico (DFA- Deterministic Finite Acce pp)ter)

Complemento da linguagem de um DFA

Quando o DFA não aceita uma cadeia, pára num estado não final, de modo quefinal, de modo que

Compl (L(M)) = {w * : * (q0, w) F }

C d h DFA i C l(L(M)) ??Como desenhar o DFA que aceita o Compl(L(M)) ??

© ADC/TCI/Cap.2/2000-10/LEI/DEIFCTUC81

Page 18: Cíl2Capítulo 2. Autómatos FinitosAutómatos Finitoscbarrico/Disciplinas/TeoriaComputacao... ·  · 2010-02-28Um aceitador determinístico (DFA- Deterministic Finite Acce pp)ter)

2 1 2 Linguagens regulares2.1.2. Linguagens regulares

Uma linguagem diz-se regular se e só se existir um DFA MUma linguagem diz se regular se e só se existir um DFA M que a aceite, i. e.

L = L ( M )

A família das linguagens regulares é composta por todas as g g g p plinguagens que são aceites por um qualquer DFA.

Uma forma de demonstrar que uma linguagem é regular é encontrar um DFA que a aceite.

O conjunto das linguagens regulares constitui uma família.© ADC/TCI/Cap.2/2000-10/LEI/DEIFCTUC

82

Page 19: Cíl2Capítulo 2. Autómatos FinitosAutómatos Finitoscbarrico/Disciplinas/TeoriaComputacao... ·  · 2010-02-28Um aceitador determinístico (DFA- Deterministic Finite Acce pp)ter)

Construir um DFA que aceite a linguagem L em = {0 1} talConstruir um DFA que aceite a linguagem L em {0, 1} tal que

Exemplo 8L contém apenas “010” e “1”L contém apenas 010 e 1 .

E l 9Exemplo 9L é o conjunto de todas as cadeias que terminam com “00”

Exemplo 10pL é o conjunto de todas as cadeias sem “1”s consecutivos

nem “0”s consecutivos.

© ADC/TCI/Cap.2/2000-10/LEI/DEIFCTUC83

Page 20: Cíl2Capítulo 2. Autómatos FinitosAutómatos Finitoscbarrico/Disciplinas/TeoriaComputacao... ·  · 2010-02-28Um aceitador determinístico (DFA- Deterministic Finite Acce pp)ter)

2.2. Aceitadores finitos não-determinísticos (NFA)

A partir de um estado são possíveis zero, uma ou maisp p ,transições com o mesmo símbolo do alfabeto.

Uma entrada é aceite se houver para ela um caminho que leva a um estado final (aceitador).

© ADC/TCI/Cap.2/2000-10/LEI/DEIFCTUC84

Page 21: Cíl2Capítulo 2. Autómatos FinitosAutómatos Finitoscbarrico/Disciplinas/TeoriaComputacao... ·  · 2010-02-28Um aceitador determinístico (DFA- Deterministic Finite Acce pp)ter)

D fi i ã 2 4 NFADefinição 2.4. NFA

Um aceitador não-determinístico (NFA – Nondeterministic Fi it A t ) é d fi id l i t tFinite Accepter) é definido pelo quinteto

M (Q F)M= (Q, , , q0, F)

em que a função de transição é definida porem que a função de transição é definida por

: Q ({ }) 2Q : Q ({ }) 2Q

© ADC/TCI/Cap.2/2000-10/LEI/DEIFCTUC85

Page 22: Cíl2Capítulo 2. Autómatos FinitosAutómatos Finitoscbarrico/Disciplinas/TeoriaComputacao... ·  · 2010-02-28Um aceitador determinístico (DFA- Deterministic Finite Acce pp)ter)

3 diferenças em relação ao DFA:

1) o contradomínio de é a potência de conjuntos de Q, e não Q, precisamente porque o resultado de pode ser umQ, precisamente porque o resultado de pode ser um subconjunto de Q.

2) pode ser argumento de , ou seja, pode dar-se uma transição sem consumir um símbolo de entrada ( o ç (mecanismo de leitura pode ficar parado em alguns movimentos).

3) O conjunto (qi, a) pode ser vazio, significando que não há qualquer transição nesta situação.

© ADC/TCI/Cap.2/2000-10/LEI/DEIFCTUC86

Page 23: Cíl2Capítulo 2. Autómatos FinitosAutómatos Finitoscbarrico/Disciplinas/TeoriaComputacao... ·  · 2010-02-28Um aceitador determinístico (DFA- Deterministic Finite Acce pp)ter)

2 2 1 R t ã d NFA f

OS NFA d f l DFA

2.2.1.Representação de um NFA por um grafo

OS NFA podem representar-se por grafos tal como o DFA.

Diferenças:Diferenças:

q1 q2a

i) Do mesmo vértice podem partir

a

diversas arestas com a mesma etiqueta

aq3( q1, a) = { q2, q3 } q4

ii) Algumas arestas podem ser etiquetadas por

iii) Nem todas as transições de um vértice são definidas

© ADC/TCI/Cap.2/2000-10/LEI/DEIFCTUC87

Page 24: Cíl2Capítulo 2. Autómatos FinitosAutómatos Finitoscbarrico/Disciplinas/TeoriaComputacao... ·  · 2010-02-28Um aceitador determinístico (DFA- Deterministic Finite Acce pp)ter)

Uma cadeia é aceite pelo NFAUma cadeia é aceite pelo NFA

se houver alguma sequência de movimentos possíveis que coloquem o autómato num estado final no fim da cadeia. q

Caso contrário é rejeitada.

O não-determinismo permite escolher entre diversos caminhos possíveis para uma cadeia de entrada.

© ADC/TCI/Cap.2/2000-10/LEI/DEIFCTUC88

Page 25: Cíl2Capítulo 2. Autómatos FinitosAutómatos Finitoscbarrico/Disciplinas/TeoriaComputacao... ·  · 2010-02-28Um aceitador determinístico (DFA- Deterministic Finite Acce pp)ter)

Que linguagem é aceite pelo NFA ?Exemplo 11 Que linguagem é aceite pelo NFA ?Exemplo 11

a aq1 q2

q3a

a a

q0q0

a a

q4 q5aa

© ADC/TCI/Cap.2/2000-10/LEI/DEIFCTUC89

Page 26: Cíl2Capítulo 2. Autómatos FinitosAutómatos Finitoscbarrico/Disciplinas/TeoriaComputacao... ·  · 2010-02-28Um aceitador determinístico (DFA- Deterministic Finite Acce pp)ter)

q1 q2q3

a a

a

q0 L(M) = {a 3}

q0

a aL(M) { 2n 1}

q4 q5

L(M) = {a 2n: n 1}

a

© ADC/TCI/Cap.2/2000-10/LEI/DEIFCTUC90

Page 27: Cíl2Capítulo 2. Autómatos FinitosAutómatos Finitoscbarrico/Disciplinas/TeoriaComputacao... ·  · 2010-02-28Um aceitador determinístico (DFA- Deterministic Finite Acce pp)ter)

a aq1 q2

q3a

a a

qq0

a a

q4 q5aa

L(M) = {a 3} {a 2n: n 1}

© ADC/TCI/Cap.2/2000-10/LEI/DEIFCTUC91

Page 28: Cíl2Capítulo 2. Autómatos FinitosAutómatos Finitoscbarrico/Disciplinas/TeoriaComputacao... ·  · 2010-02-28Um aceitador determinístico (DFA- Deterministic Finite Acce pp)ter)

Exemplo 120

0 1

(q0, 1) = {q1} (q0, 0) =

q1 q2q0

1

0, 1 (q1, 0) = {q0, q2} (q1, 1) = {q2} ( ) { }1

(q0, ) = { q0, q2} (q2, 0) = ( 1)

As 3 categorias de não determinismo:

(q2, 1) =

As 3 categorias de não determinismo:

- de q1 partem duas arestas etiquetadas por 0

- de q0 parte uma aresta etiquetada

- de q2 não é definida qualquer transição, (q2, 0) =

- existe sempre a transição (qi, ) = { qi}, para todo o i© ADC/TCI/Cap.2/2000-10/LEI/DEIFCTUC

92

existe sempre a transição (qi, ) { qi}, para todo o i

Page 29: Cíl2Capítulo 2. Autómatos FinitosAutómatos Finitoscbarrico/Disciplinas/TeoriaComputacao... ·  · 2010-02-28Um aceitador determinístico (DFA- Deterministic Finite Acce pp)ter)

Função de transição estendida * em NFA

Define-se de modo análogo ao caso do DFA

* (qi, w) = Qj

sendo Qj o conjunto de todos os estados em que o autómato se pode encontrar partindo de q e tendo lido a cadeia wpode encontrar, partindo de qi e tendo lido a cadeia w.

Definição 2 5

A função de transição estendida (NFA) * define-se de

Definição 2.5.

ç ç ( )modo que * (qi, w) contém qj se e só se existir um caminho no grafo de transição desde qi até qj com etiqueta w, para i jtodos os qi, qj Q e todas as w *.

© ADC/TCI/Cap.2/2000-10/LEI/DEIFCTUC93

Page 30: Cíl2Capítulo 2. Autómatos FinitosAutómatos Finitoscbarrico/Disciplinas/TeoriaComputacao... ·  · 2010-02-28Um aceitador determinístico (DFA- Deterministic Finite Acce pp)ter)

Linguagens e NFA’sLinguagens e NFA’s

D fi i ã 2 2 Li it NFA

A li L i NFA M (Q F) é

Definição 2.2. Linguagem aceite por um NFA

A linguagem L aceite por um NFA M =(Q, , , q0, F) é o conjunto de todas as cadeias em * aceites por M, i.e.,

L(M) = { w * : * ( q0 , w ) F }

Uma cadeia w pode levar a vários estados depois de lida; se

0

Uma cadeia w pode levar a vários estados, depois de lida; se pelo menos um deles é final, a cadeia é aceite.

© ADC/TCI/Cap.2/2000-10/LEI/DEIFCTUC94

Page 31: Cíl2Capítulo 2. Autómatos FinitosAutómatos Finitoscbarrico/Disciplinas/TeoriaComputacao... ·  · 2010-02-28Um aceitador determinístico (DFA- Deterministic Finite Acce pp)ter)

Que linguagem aceita ?Exemplo 13

0

0 1

Que linguagem aceita ?

q1 q2q0

1

0, 1

1

Aceita :

Não aceita : 1

10 1010

1111011

101010 1101

L ( M ) = { (10) n : n 0 }

© ADC/TCI/Cap.2/2000-10/LEI/DEIFCTUC95

Page 32: Cíl2Capítulo 2. Autómatos FinitosAutómatos Finitoscbarrico/Disciplinas/TeoriaComputacao... ·  · 2010-02-28Um aceitador determinístico (DFA- Deterministic Finite Acce pp)ter)

Porquê o não determinismo? servem para modelizar algoritmos em que tem que se fazer escolhas (search-and-

backtracking, por exemplo)

serve para definir linguagens compostas por conjuntos bastante diferentes (como no exemplo que aceita a linguagem {a3}{a2n : n 0}.

o não-determinismo é um mecanismo apropriado para descrever de forma simples e concisa linguagens complicadas. Na definição de uma gramática existe um elemento g g p ç gde não-determinismo, como em S aSb | em qualquer ponto se pode escolher a primeira ou a segunda produção; podemos assimem qualquer ponto se pode escolher a primeira ou a segunda produção; podemos assim especificar um grande número de cadeias usando apenas duas regras.

há uma razão de ordem técnica: alguns resultados são mais facilmente estabelecidos há uma razão de ordem técnica: alguns resultados são mais facilmente estabelecidos para NFA do que para DFA.

Como veremos não há nenhuma diferença essencial entre NFA’s e DFA’s. Por conseguinte o facto de se permitir o não determinismo simplifica por vezes os argumentos formais sem afectar a generalidade da conclusão.

© ADC/TCI/Cap.2/2000-10/LEI/DEIFCTUC96

Page 33: Cíl2Capítulo 2. Autómatos FinitosAutómatos Finitoscbarrico/Disciplinas/TeoriaComputacao... ·  · 2010-02-28Um aceitador determinístico (DFA- Deterministic Finite Acce pp)ter)

2 3 Equivalência entre DFA’s e NFA’s2.3. Equivalência entre DFA s e NFA s

D fi i ã 2 7 A tó t ( it d ) i l tDefinição 2.7. Autómatos (aceitadores) equivalentes

Dois aceitadores M1 e M2 são equivalentes se

L(M1) = L(M2)

isto é, se ambos aceitam a mesma linguagem.

Existem geralmente muitos aceitadores para uma dada linguagem e por isso qualquer DFA ou NFA tem muitoslinguagem, e por isso qualquer DFA ou NFA tem muitos aceitadores equivalentes.

© ADC/TCI/Cap.2/2000-10/LEI/DEIFCTUC97

Page 34: Cíl2Capítulo 2. Autómatos FinitosAutómatos Finitoscbarrico/Disciplinas/TeoriaComputacao... ·  · 2010-02-28Um aceitador determinístico (DFA- Deterministic Finite Acce pp)ter)

DFA d id i i ( i ) d os DFA podem-se considerar casos especiais (restritos) de NFA.

se uma linguagem é aceite por um DFA então existe um NFA que também a aceitaque também a aceita.

se uma linguagem é aceite por um NFA existirá um DFA que se uma linguagem é aceite por um NFA, existirá um DFA que a aceite ?

Será que o não-determinismo eliminou esta possibilidade ?

SIM !!!De facto não eliminou ! SIM !!!

© ADC/TCI/Cap.2/2000-10/LEI/DEIFCTUC98

Page 35: Cíl2Capítulo 2. Autómatos FinitosAutómatos Finitoscbarrico/Disciplinas/TeoriaComputacao... ·  · 2010-02-28Um aceitador determinístico (DFA- Deterministic Finite Acce pp)ter)

Determinação do DFA equivalente a um NFADeterminação do DFA equivalente a um NFA

Depois de um NFA ler uma cadeia w, não se sabe precisamente em que estado está, mas sabe-se apenas que está num estado entre um conjunto Qw de estados possíveis

Q { }Qw={qi, qj, ..., qk }.

D i d DFA l d i t tDepois de um DFA ler a mesma cadeia tem que estar num estado bem definido, qw.

Como encontrar uma correspondência entre estas duas situações ?Como encontrar uma correspondência entre estas duas situações ?

© ADC/TCI/Cap.2/2000-10/LEI/DEIFCTUC99

Page 36: Cíl2Capítulo 2. Autómatos FinitosAutómatos Finitoscbarrico/Disciplinas/TeoriaComputacao... ·  · 2010-02-28Um aceitador determinístico (DFA- Deterministic Finite Acce pp)ter)

Truque:

- cria-se um (super) estado no DFA equivalente a Qw, isto é, etiqueta-se, no DFA, um estado por Qw.

Mas resultará isso num autómato finito ?

Qual o número máximo de estados do DFA que se podem obter t ?por este processo ?

Se no NFA existem no total Q estados, o número máximo de estados que se podem obter no DFA é igual à potência de q p g pconjuntos de Q, isto é 2|Q|, e portanto finito.

© ADC/TCI/Cap.2/2000-10/LEI/DEIFCTUC100

Page 37: Cíl2Capítulo 2. Autómatos FinitosAutómatos Finitoscbarrico/Disciplinas/TeoriaComputacao... ·  · 2010-02-28Um aceitador determinístico (DFA- Deterministic Finite Acce pp)ter)

Exemplo 14Tabela de transições

a b

NFATabela de transições

q0 q1q2 q1q2 q2

q2

DFAVários estados (q q ) noVários estados (q1, q2) no NFA resultam um super-

estado (q12) no DFAb a

a,b

(q )

a,b

Nota: o JFLAP não introduz o estado vazio,

© ADC/TCI/Cap.2/2000-10/LEI/DEIFCTUC101

Page 38: Cíl2Capítulo 2. Autómatos FinitosAutómatos Finitoscbarrico/Disciplinas/TeoriaComputacao... ·  · 2010-02-28Um aceitador determinístico (DFA- Deterministic Finite Acce pp)ter)

Q QQ

NFA

Q

DFA

© ADC/TCI/Cap.2/2000-10/LEI/DEIFCTUC102

Page 39: Cíl2Capítulo 2. Autómatos FinitosAutómatos Finitoscbarrico/Disciplinas/TeoriaComputacao... ·  · 2010-02-28Um aceitador determinístico (DFA- Deterministic Finite Acce pp)ter)

Exemplo 15T b l d t i õ

a bNFATabela de transições

q01 q2q3

q2q3

DFAO estado inicial do DFA é

composto pelo estado inicial do NFA t d l á iNFA e por todos os alcançáveis a

partir deste com a transição b a,b

a,b

© ADC/TCI/Cap.2/2000-10/LEI/DEIFCTUC103

Page 40: Cíl2Capítulo 2. Autómatos FinitosAutómatos Finitoscbarrico/Disciplinas/TeoriaComputacao... ·  · 2010-02-28Um aceitador determinístico (DFA- Deterministic Finite Acce pp)ter)

Exemplo 16Exemplo 16

Construir um NFA que aceite a linguagem L composta pelasConstruir um NFA que aceite a linguagem L composta pelas cadeias em = {0,1} que contenham

três 0’s seguidos

ou

três 1’s seguidos ,

como por exemplo

000, 111, 10100010, 00111101000

© ADC/TCI/Cap.2/2000-10/LEI/DEIFCTUC104

Page 41: Cíl2Capítulo 2. Autómatos FinitosAutómatos Finitoscbarrico/Disciplinas/TeoriaComputacao... ·  · 2010-02-28Um aceitador determinístico (DFA- Deterministic Finite Acce pp)ter)

três 0’s seguidos

1 00,1

1,00

00

qfq1

q2

q0

qf

0 1três 1’s seguidos

0,10,1g

1 1qf

q011 1 1

q0q1 q2

© ADC/TCI/Cap.2/2000-10/LEI/DEIFCTUC105

Page 42: Cíl2Capítulo 2. Autómatos FinitosAutómatos Finitoscbarrico/Disciplinas/TeoriaComputacao... ·  · 2010-02-28Um aceitador determinístico (DFA- Deterministic Finite Acce pp)ter)

três 0’s seguidos ou três 1’s seguidostrês 0 s seguidos ou três 1 s seguidos

Juntam se os dois autómatosJuntam-se os dois autómatos

0 11,0

00

0,1

q0,10,1

00

q0

qfq1

q2

qf1q0 1 1 1

qfq0

q1 q2

1

© ADC/TCI/Cap.2/2000-10/LEI/DEIFCTUC106

Page 43: Cíl2Capítulo 2. Autómatos FinitosAutómatos Finitoscbarrico/Disciplinas/TeoriaComputacao... ·  · 2010-02-28Um aceitador determinístico (DFA- Deterministic Finite Acce pp)ter)

Finalmente ...

1 00,1

1,00

00

q3q1

q2

q0

q3

1 1 11

1q4 q5

E i i DFA blExperimentar construir um DFA para o mesmo problema ...

© ADC/TCI/Cap.2/2000-10/LEI/DEIFCTUC107

Page 44: Cíl2Capítulo 2. Autómatos FinitosAutómatos Finitoscbarrico/Disciplinas/TeoriaComputacao... ·  · 2010-02-28Um aceitador determinístico (DFA- Deterministic Finite Acce pp)ter)

Vamos agora procurar um DFA equivalente

P i b l d i õ

Vamos agora procurar um DFA equivalente.

Para isso construa-se a tabela de transições:

N 0 1

q0 , q1 q0 , q4

q1 q2 -

q0

1 2

q2 q3 -

q3 q3 q3

q - qq4 - q5

q5 - q3

© ADC/TCI/Cap.2/2000-10/LEI/DEIFCTUC108

Page 45: Cíl2Capítulo 2. Autómatos FinitosAutómatos Finitoscbarrico/Disciplinas/TeoriaComputacao... ·  · 2010-02-28Um aceitador determinístico (DFA- Deterministic Finite Acce pp)ter)

Para as transições no DFA etiquetam-se os seus estados comPara as transições no DFA, etiquetam se os seus estados comíndices agrupando os índices dos estados do NFA co-alcançáveis pelas mesmas transições :alcançáveis pelas mesmas transições :

D 0 1Dq0 q01 q04

q q qq01 q012 q04

q04 q01 q045

q012 q0123 q04

q045 q01 q0345q034q0123 q0123

q0345 q013 q0345q0345 q013 q0345

q013 q0123 q034

q q q© ADC/TCI/Cap.2/2000-10/LEI/DEIFCTUC

109

q034 q013 q0345

Page 46: Cíl2Capítulo 2. Autómatos FinitosAutómatos Finitoscbarrico/Disciplinas/TeoriaComputacao... ·  · 2010-02-28Um aceitador determinístico (DFA- Deterministic Finite Acce pp)ter)

O DFA que aceita as cadeias contendo 000 e/ou 111 é:O DFA que aceita as cadeias contendo 000 e/ou 111 é:

00 0q01 q012 q0123

0

11 1

q100

q0 q0341 0

11

q04q045

q03451

q

01

01

1

q04 q013

1

Todos os que contenham q3 são aceitadores© ADC/TCI/Cap.2/2000-10/LEI/DEIFCTUC

110

Page 47: Cíl2Capítulo 2. Autómatos FinitosAutómatos Finitoscbarrico/Disciplinas/TeoriaComputacao... ·  · 2010-02-28Um aceitador determinístico (DFA- Deterministic Finite Acce pp)ter)

adoptando etiquetas mais intuitivas e simplificandoadoptando etiquetas mais intuitivas e simplificando

0

0

00 00

0 00,1

1

F10

11

0

111 11

© ADC/TCI/Cap.2/2000-10/LEI/DEIFCTUC111

Page 48: Cíl2Capítulo 2. Autómatos FinitosAutómatos Finitoscbarrico/Disciplinas/TeoriaComputacao... ·  · 2010-02-28Um aceitador determinístico (DFA- Deterministic Finite Acce pp)ter)

E l 17Exemplo 17

NFANFA

Construa a tabela detabela de transições

DFADFA

Calculado com o JFLAP)

© ADC/TCI/Cap.2/2000-10/LEI/DEIFCTUC112

Calculado com o JFLAP)

Page 49: Cíl2Capítulo 2. Autómatos FinitosAutómatos Finitoscbarrico/Disciplinas/TeoriaComputacao... ·  · 2010-02-28Um aceitador determinístico (DFA- Deterministic Finite Acce pp)ter)

2 4 Redução do número de estados em DFA’s2.4. Redução do número de estados em DFA s

Ver Linz (62 65) ou Hopcroft et all (159 164)Ver Linz (62-65) ou Hopcroft et all.(159-164)

(Implementado no JFLAP)( p )

© ADC/TCI/Cap.2/2000-10/LEI/DEIFCTUC113

Page 50: Cíl2Capítulo 2. Autómatos FinitosAutómatos Finitoscbarrico/Disciplinas/TeoriaComputacao... ·  · 2010-02-28Um aceitador determinístico (DFA- Deterministic Finite Acce pp)ter)

2.5. Autómatos finitos transdutores

Têm entrada, estado e saída

Ficheiro de entrada

S

M

S k

Unidade de Controlo

Memm kUnidade de Controlo

qk

óri

m k

qk ia

Ficheiro de saída

y k

© ADC/TCI/Cap.2/2000-10/LEI/DEIFCTUC114

Page 51: Cíl2Capítulo 2. Autómatos FinitosAutómatos Finitoscbarrico/Disciplinas/TeoriaComputacao... ·  · 2010-02-28Um aceitador determinístico (DFA- Deterministic Finite Acce pp)ter)

2.5.1. Máquinas de Mealy 1

A saída depende do estado actual e da entrada actual

yk = f (sk, qk)

Definição: Uma Máquina de Mealy é definida pelo sextetoDefinição: Uma Máquina de Mealy é definida pelo sexteto

M = (Q , ,, , , q0 ) Se está no estado (Q , , , , , q0 )

Q : conjunto finito de estados internos

qi e aparece a entrada 1, envia 0

para a saída e : alfabeto de entrada (conjunto finito de caracteres) : alfabeto de saída (conjunto finito de caracteres) : Q x Q é a função de transição de estado

passa ao estado qj

: Q x Q é a função de transição de estado : Q x é a função de saídaq0 Q é o estado inicial 1/0

arestas

qi qjEntrada/Saída

1/0

© ADC/TCI/Cap.2/2000-10/LEI/DEIFCTUC115

(1) G. H. Mealy, A Method for Synthesizing Sequential Circuits, Bell System Tech. J. vol 34, pp. 1045–1079, Sept 1955.

Page 52: Cíl2Capítulo 2. Autómatos FinitosAutómatos Finitoscbarrico/Disciplinas/TeoriaComputacao... ·  · 2010-02-28Um aceitador determinístico (DFA- Deterministic Finite Acce pp)ter)

E l 1/1Exemplo:

Que faz ?

1/1

10110001…q11/λ

q00/11/0

Máquina0/λ q2

????????0/00/0

© ADC/TCI/Cap.2/2000-10/LEI/DEIFCTUC116

Page 53: Cíl2Capítulo 2. Autómatos FinitosAutómatos Finitoscbarrico/Disciplinas/TeoriaComputacao... ·  · 2010-02-28Um aceitador determinístico (DFA- Deterministic Finite Acce pp)ter)

Máquina de MealyMáquina de Mealy

Logo que a entrada varia pode variar a saída:

(http://www2.ele.ufes.br/~ailson/digital2/cld/chapter8/chapter08.doc4.html)

g q pfuncionamento assíncrono

© ADC/TCI/Cap.2/2000-10/LEI/DEIFCTUC117

(Nota: também existem em versão síncrona, diferentes destas)

Page 54: Cíl2Capítulo 2. Autómatos FinitosAutómatos Finitoscbarrico/Disciplinas/TeoriaComputacao... ·  · 2010-02-28Um aceitador determinístico (DFA- Deterministic Finite Acce pp)ter)

2.5.2. Máquinas de Moore2q

A saída depende apenas do estado (e não da entrada)yk = f (qk)

Definição: Uma Máquina de Moore é definida pelo sextetoDefinição: Uma Máquina de Moore é definida pelo sexteto

M = (Q , ,, , , q0 ) Se está no estado ( íd 1)

(Q , , , , , q0 )

Q : conjunto finito de estados internos

qi (e saída 1) e aparece a entrada 1, transita para o

: alfabeto de entrada (conjunto finito de caracteres) : alfabeto de saída (conjunto finito de caracteres) : Q x Q é a função de transição de estado

estado qj e a saída passa a 0

: Q x Q é a função de transição de estado : Q é a função de saídaq0 Q é o estado inicial

Estado/Saída

1

(2) E. F. Moore, Gedanken-experiments on Sequential Machines pp 129 – 153 Automata Studies Annals of

qi /1 qj /0Entrada

1

© ADC/TCI/Cap.2/2000-10/LEI/DEIFCTUC118

Machines, pp 129 153, Automata Studies, Annals ofMathematical Studies, no. 34, Princeton University Press, Princeton, N. J., 1956.

Page 55: Cíl2Capítulo 2. Autómatos FinitosAutómatos Finitoscbarrico/Disciplinas/TeoriaComputacao... ·  · 2010-02-28Um aceitador determinístico (DFA- Deterministic Finite Acce pp)ter)

Exemplo

1

Exemplo

3/11

Que faz ?

11/λ

4/110

010110001…

0/λ

/

110

Má i0 2/λ 5/01 0

1

Máquina

6/00

1????????

0© ADC/TCI/Cap.2/2000-10/LEI/DEIFCTUC

119

Page 56: Cíl2Capítulo 2. Autómatos FinitosAutómatos Finitoscbarrico/Disciplinas/TeoriaComputacao... ·  · 2010-02-28Um aceitador determinístico (DFA- Deterministic Finite Acce pp)ter)

Máquina de MooreMáquina de Moore

(http://www2.ele.ufes.br/~ailson/digital2/cld/chapter8/chapter08.doc4.html)

A saída só pode variar depois de uma mudança de estado:

( p g p p )

A saída só pode variar depois de uma mudança de estado: funcionamento síncrono

© ADC/TCI/Cap.2/2000-10/LEI/DEIFCTUC120

Page 57: Cíl2Capítulo 2. Autómatos FinitosAutómatos Finitoscbarrico/Disciplinas/TeoriaComputacao... ·  · 2010-02-28Um aceitador determinístico (DFA- Deterministic Finite Acce pp)ter)

E i lê i á i d M l d MEquivalência entre as máquinas de Mealy e de Moore

Dada uma máquina de Mealy é possível encontrar uma máquina de Moore que, para as mesmas entradas, dá as mesmas saídas. E i (I d íd d d i i i l á i dE vice-versa. (Ignorando a saída do estado inicial na máquina de Moore).

A de Moore equivalente tem um maior número de estados.

Utilidade das máquinas de Mealy e de Moore

Projectar circuitos lógicos Projectar circuitos lógicos

Existe software que simula estas máquinas e gera o circuito lógico a partir do autómato. (ver por ex. http://www.seas.upenn.edu/~ee201/foundation/foundation_impl4.html ou http://www xilinx com/univ/xse42 html )

© ADC/TCI/Cap.2/2000-10/LEI/DEIFCTUC121

http://www.xilinx.com/univ/xse42.html )

Page 58: Cíl2Capítulo 2. Autómatos FinitosAutómatos Finitoscbarrico/Disciplinas/TeoriaComputacao... ·  · 2010-02-28Um aceitador determinístico (DFA- Deterministic Finite Acce pp)ter)

Bibliografia

An Introduction to Formal Languages and Automata Peter Linz 3rdAn Introduction to Formal Languages and Automata, Peter Linz, 3rd Ed., Jones and Bartelett Computer Science, 2001

Introduction to Automata Theory, Languages and Computation, 2nd Ed., John Hopcroft, Rajeev Motwani, Jeffrey Ullman, Addi W l 2001Addison Wesley, 2001.

Elements for the Theory of Computation, Harry Lewis and Christos P di it i 2 d Ed P ti H ll 1998Papadimitriou, 2nd Ed., Prentice Hall, 1998.

Introduction to the Theory of Computation, Michael Sipser, PWS P bli hi C 1997Publishing Co, 1997.

Wikipédia (enciclopédia livre) http://en.wikipedia.org ou http://pt.wikipedia.org )

© ADC/TCI/Cap.2/2000-10/LEI/DEIFCTUC122