Buscar

Autômatos e Computabilidade - Autômatos Finitos 1

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 3, do total de 34 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 6, do total de 34 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 9, do total de 34 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Prévia do material em texto

Autômatos e computabilidade
Autômatos finitos 1
Pedro A D Rezende
UnB – IE – CIC
Cadeia vazia: l (ou e) é a cadeia tal que |l| = 0
 
A & C: Autômatos finitos 1
Definições formais: Automaton 
Um automaton (FA) é uma quíntupla 
M = (Q, , q
0
, d, F) 
satisfazendo: 
Q,  conjuntos finitos;
 q
0 

 
Q ; F  Q ;
 d  (QS)Q 
 
A & C: Autômatos finitos 1
Definições formais: Automaton 
Um automaton (FA) é uma quíntupla 
M = ( Q ,  , q
0
 , d , F ) 
satisfazendo: 
Q,  conjuntos finitos;
 q
0 

 
Q ; F  Q ;
 d  (QS)Q 
Estados Alfabeto Estado Transições Estados
inicial finais
 
A & C: Autômatos finitos 1
Definições formais: Automaton 
Um automaton (FA) é uma quíntupla 
M = ( Q ,  , q
0
 , d , F ) 
satisfazendo: 
● Q,  são conjuntos finitos;
 q
0 

 
Q ; F  Q ;
 d  (QS)Q 
Estados Alfabeto Estado Transições Estados
inicial finais
 
A & C: Autômatos finitos 1
Definições formais: Automaton 
Um automaton (FA) é uma quíntupla 
M = ( Q ,  , q
0
 , d , F ) 
satisfazendo: 
● Q,  são conjuntos finitos;
● q
0
Q ; F  Q ;
 d  (QS)Q 
Estados Alfabeto Estado Transições Estados
inicial finais
 
A & C: Autômatos finitos 1
Definições formais: Automaton 
Um automaton (FA) é uma quíntupla 
M = ( Q ,  , q
0
 , d , F ) 
satisfazendo: 
● Q,  são conjuntos finitos;
● q
0
Q ; F  Q ;
● d  (QS)Q 
Estados Alfabeto Estado Transições Estados
inicial finais
 
A & C: Autômatos finitos 1
Trasições 
Num FA M = (Q, , q
0
, d, F) dizemos que 
((q,a),q')  d é uma transição de q por a para q'.
 Ao representar M por um digrafo, dendotamos:
 Q como vértices, d como arestas rotuladas,
 qq' 
transição de q para q' por a
 
A & C: Autômatos finitos 1
Trasições 
Num FA M = (Q, , q
0
, d, F) dizemos que 
((q,a),q')  d é uma transição de q por a para q'.
 Ao representar d por uma tabela, temos:
 Q como vértices, d como arestas rotuladas
 qq' 
transição de q para q' por a
Q \ 
q
0
q
 ... a ...
{q'...}
 
A & C: Autômatos finitos 1
Trasições 
Num FA M = (Q, , q
0
, d, F) dizemos que 
((q,a),q')  d é uma transição de q por a para q'.
 Ao representar M por um digrafo, temos:d
 Q como vértices, d como arestas rotuladas
 qq' 
transição de q para q' por a
 
A & C: Autômatos finitos 1
Trasições 
Num FA M = (Q, , q
0
, d, F) dizemos que 
((q,a),q')  d é uma transição de q por a para q'.
 Ao representar M por um digrafo, temos:d
 Q como vértices, d como arestas rotuladas
 qq' 
transição de q por a para q'
a
 
A & C: Autômatos finitos 1
Determinismo 
Se um FA M = (Q, , q
0
, d, F) satisfaz: 
d  (QS)Q é (também) função d: QS Q,
 dizemos que M é um DFA (FA determinístico).
Caso contrário, M é um NFA (não-determinístico)
OBS: Um DFA é um FA que satisfaz
qQ aS !q'Q [((q,a),q')  d] 
 
A & C: Autômatos finitos 1
Determinismo 
Se um FA M = (Q, , q
0
, d, F) satisfaz: 
d  (QS)Q é (também) função d: QS Q,
 dizemos que M é um DFA (FA determinístico).
Caso contrário, M é um NFA (não-determinístico)
OBS: Um DFA é um FA que satisfaz
qQ aS !q'Q [((q,a),q')  d] 
Q \ 
q
0
q
 ... a ...
 q'
 
A & C: Autômatos finitos 1
Determinismo 
Se um FA M = (Q, , q
0
, d, F) satisfaz: 
d  (QS)Q é (também) função d: QS Q,
 dizemos que M é um DFA (FA determinístico).
Formalmente:
Um DFA é um FA que satisfaz
qQ aS !q'Q [((q,a),q')  d] 
 
A & C: Autômatos finitos 1
Determinismo 
Se um FA M = (Q, , q
0
, d, F) satisfaz 
d  (QS)Q é (também) função d: QS Q,
 dizemos que M é um DFA (FA determinístico).
Caso contrário, M é um NFA (não-determinístico).
OBS: Um DFA é um FA que satisfaz
qQ aS !q'Q [((q,a),q')  d] 
 
A & C: Autômatos finitos 1
Determinismo 
Se um FA M = (Q, , q
0
, d, F) satisfaz: 
d  (QS)Q é (também) função d: QS Q,
 dizemos que M é um DFA (FA determinístico).
Caso contrário, M é um NFA (não-determinístico).
Notação: em FAs, transição de q por a denota
d(q,a) = { rQ | ((q,a),r)  d } 
 
A & C: Autômatos finitos 1
Comportamento 
M = (Q, , q
0
, d, F) induz o comportamento 
d*  (QS*)Q (ou d*: QS* Q se DFA)
 definido indutivamente por:
d*(q,a) = d(q,a)
d*(q,aa) = d(d*(q,a),a)
OBS1: Num digrafo de NFA d*(q,a) descreve uma 
árvore com raiz em q e níveis rotulados por a
 
A & C: Autômatos finitos 1
Comportamento 
M = (Q, , q
0
, d, F) induz o comportamento 
d*  (QS*)Q (ou d*: QS* Q se M é DFA)
 definido indutivamente por:
d*(q,a) = d(q,a)
d*(q,aa) = d(d*(q,a),a)
OBS1: Num digrafo de NFA d*(q,a) descreve uma 
árvore com raiz em q e níveis rotulados por a
 
A & C: Autômatos finitos 1
Comportamento 
M = (Q, , q
0
, d, F) induz o comportamento 
d*  (QS*)Q (ou d*: QS* Q se M é DFA)
 definido indutivamente por:
d*(q,l) = {q} ; d*(q,a) = d(q,a)
d*(q,aa) = d(d*(q,a),a) para aS, aS*
OBS1: Num digrafo de NFA d*(q,a) descreve uma 
árvore com raiz em q e níveis rotulados por a
 
A & C: Autômatos finitos 1
Comportamento 
M = (Q, , q
0
, d, F) induz o comportamento 
d*  (QS*)Q (ou d*: QS* Q se M é DFA)
 definido indutivamente por:
d*(q,l) = {q} ; d*(q,a) = d(q,a)
d*(q,aa) = d(d*(q,a),a)
OBS1: Num grafo de DFA, d*(q,a) descreve um 
caminho com raiz em q e arcos rotulados por a
 
A & C: Autômatos finitos 1
Comportamento 
M = (Q, , q
0
, d, F) induz o comportamento 
d*  (QS*)Q (ou d*: QS* Q se M é DFA)
 definido indutivamente por:
d*(q,l) = {q} ; d*(q,a) = d(q,a)
d*(q,aa) = d(d*(q,a),a)
OBS2: Num grafo de NFA, d*(q,a) descreve uma 
árvore com raiz em q e níveis rotulados por a
 
A & C: Autômatos finitos 1
Modelo computacional para reconhecer LFs 
Dado um FA M, dizemos que M reconhece a
linguagem formal L(M) definida por 
L(M) = { aS* | d*(q
0
,a) F   }
Dado aS*, o comportamento de M a partir de q
0
, 
d*(q
0
,a), determina se aL(M) ou não:
d*(q
0
,a)  F ou  F (DFA) 
d*(q
0
,a)F   ou =  (NFA) 
 
A & C: Autômatos finitos 1
Modelo computacional para reconhecer LFs 
Dado um FA M, dizemos que M reconhece a
linguagem formal L(M) definida por 
L(M) = { aS* | d*(q
0
,a) F   }
Dado aS*, o comportamento de M a partir de q
0
, 
d*(q
0
,a), determina se aL(M) ou não:
d*(q
0
,a)  F ou  F (DFA) 
d*(q
0
,a)F   ou =  (NFA) 
 
A & C: Autômatos finitos 1
Modelo computacional para reconhecer LFs 
Dado um FA M, dizemos que M reconhece a
linguagem formal L(M) definida por 
L(M) = { aS* | d*(q
0
,a) F   }
Dado aS*, o comportamento de M a partir de q
0
, 
d*(q
0
,a), computa se aL(M) ou não
d*(q
0
,a)  F ou  F (DFA) 
d*(q
0
,a)F   ou =  (NFA) 
 
A & C: Autômatos finitos 1
Modelo computacional para reconhecer LFs 
Dado um FA M, dizemos que M reconhece a
linguagem formal L(M) definida por 
L(M) = { aS* | d*(q
0
,a) F   }
Dado aS*, o comportamento de M a partir de q
0
, 
d*(q
0
,a), computa o predicado aL(M), isto é:
d*(q
0
,a)  F ou  F (DFA) 
d*(q
0
,a)F   ou =  (NFA) 
 
A & C: Autômatos finitos 1
Equivalência funcional entre NFAs e DFAs 
Dado qualquer NFA M = (Q, , q
0
, d, F), existe
DFA M' que reconhece a mesma linguagem: 
M' = (2Q, , {q
0
}, d', F')
d' é dada pela tabela de transições deM 
Na 1a. Lista: descrever formalmente d', F' e
mostrar que L(M') = L(M), ou seja
d'*({q
0
},a)  F'  d*(q
0
,a)F  
 
A & C: Autômatos finitos 1
Equivalência funcional entre NFAs e DFAs 
Dado qualquer NFA M = (Q, , q
0
, d, F), existe
DFA M' que reconhece a mesma linguagem: 
M' = (2Q, , {q
0
}, d', F')
d' é dada pela tabela de transições de M 
Na 1a. Lista: descrever formalmente d', F' e
mostrar que L(M') = L(M), ou seja
d'*({q
0
},a)  F'  d*(q
0
,a)F  
 
A & C: Autômatos finitos 1
Equivalência funcional entre NFAs e DFAs 
Dado qualquer NFA M = (Q, , q
0
, d, F), existe
DFA M' que reconhece a mesma linguagem: 
M' = (2Q, , {q
0
}, d', F')
d' determinada pela tabela de transições de M 
Na 1a. Lista: descrever formalmente d', F' e
mostrar que L(M') = L(M), ou seja
d'*({q
0
},a)  F'  d*(q
0
,a)F  
 
A & C: Autômatos finitos 1
Equivalência funcional entre NFAs e DFAs 
Dado qualquer NFA M = (Q, , q
0
, d, F), existe
DFA M' que reconhece a mesma linguagem: 
M' = (2Q, , {q
0
}, d', F')
d' determinada pela tabela de transições de M 
Na 1a. Lista: descrever formalmente d', F' e
mostrar que L(M') = L(M), ou seja
d'*({q
0
},a)  F'  d*(q
0
,a)F  
 
A & C: Autômatos finitos 1
Equivalência funcional entre NFAs e DFAs 
Dado qualquer NFA M = (Q, , q
0
, d, F), existe
DFA M' que reconhece a mesma linguagem: 
M' = (2Q, , {q
0
}, d', F')
d' determinada pela tabela de transições de M 
Na 1a. Lista: descrever formalmente d', F' e
mostrar que L(M') = L(M), ou seja
d'*({q
0
},a)  F'  d*(q
0
,a)F  
 
A & C: Autômatos finitos 1
Linguagens reconhecíveis por FAs 
Dado M
FA
 = { M | M = (Q, , q
0
, d, F) é FA}
define-se a classe das Linguagens Regulares
L
Reg
 = { L* | MM
FA
 [ L = L(M) ] }
L é regular 
def.
L é reconhecível por algum FA
L(M) é infinita  grafo de M contém ciclo 
(caminho fechado, com vértice repetido).
Demonstração: 1a. Lista
 
A & C: Autômatos finitos 1
Linguagens reconhecíveis por FAs 
Dado M
FA
 = { M | M = (Q, , q
0
, d, F) é FA}
define-se a classe das Linguagens Regulares
L
Reg
 = { L* | MM
FA
 [ L = L(M) ] }
L é regular 
def.
L é reconhecível por algum FA
L(M) é infinita  grafo de M contém ciclo 
(caminho fechado, com vértice repetido).
Demonstração: 1a. Lista
 
A & C: Autômatos finitos 1
Linguagens reconhecíveis por FAs 
Dado M
FA
 = { M | M = (Q, , q
0
, d, F) é FA}
define-se a classe das Linguagens Regulares
L
Reg
 = { L* | MM
FA
 [ L = L(M) ] }
L é regular 
def.
L é reconhecível por algum FA
● L(M) é infinita  grafo de M contém ciclo 
(caminho fechado, com vértice repetido).
Demonstração: 1a. Lista
 
A & C: Autômatos finitos 1
Linguagens reconhecíveis por FAs 
Dado M
FA
 = { M | M = (Q, , q
0
, d, F) é FA}
define-se a classe das Linguagens Regulares
L
Reg
 = { L* | MM
FA
 [ L = L(M) ] }
L é regular 
def.
L é reconhecível por algum FA
● L(M) é infinita  grafo de M contém ciclo 
(caminho fechado, com vértice repetido).
Demonstração: 1a. Lista
 
A & C: Autômatos finitos 1
Linguagens reconhecíveis por FAs 
Dado M
FA
 = { M | M = (Q, , q
0
, d, F) é FA}
define-se a classe das Linguagens Regulares
L
Reg
 = { L* | MM
FA
 [ L = L(M) ] }
L é regular 
def.
L é reconhecível por algum FA
● L(M) é infinita  grafo de M contém ciclo 
(caminho fechado, com vértice repetido).
Demonstração: 1a. Lista

Outros materiais