Você está na página 1de 38

A

SIN132

Autmatos

Contedo
1

Teoria dos autmatos

1.1

Autmatos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

1.1.1

Descrio Informal . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

1.2

Denio formal . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

1.3

Denies variantes de autmatos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

1.4

Teoria de Autmatos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

1.5

Classe de Autmatos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

1.5.1

Autmatos discretos, contnuos e hbridos . . . . . . . . . . . . . . . . . . . . . . . . . .

1.6

Aplicaes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

1.7

Simuladores de autmatos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

1.8

Conexo com a teoria das categorias . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

1.9

Referncias . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

1.10 Softwares . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

Autmatos nitos determinsticos

2.1

Denio Formal . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

2.2

Exemplo

2.3

Propriedades de fechamento

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

2.4

Modos de Gerao e Aceitao . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

2.5

Equivalncia com Expresses Regulares

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

2.5.1

Converso de AFD para expresso regular . . . . . . . . . . . . . . . . . . . . . . . . . .

2.5.2

Converso de expresso regular para AFD . . . . . . . . . . . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

2.6

Vantagens e Desvantagens

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

2.7

Ver tambm . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

2.8

Notas e referncias . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

2.9

Bibliograa . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

2.10 Ligaes externas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

Mquina de estados nitos no determinstica

10

3.1

Explicao intuitiva . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

10

3.2

Denio formal . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

10

3.3

Propriedades dos AFNDs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

11

3.4

Denio formal de computao dos AFNDs . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

11

ii

CONTEDO
3.5

Propriedades do AFND- . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

11

3.6

Implementao . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

12

3.7

Exemplo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

12

3.8

Aplicao de AFND- . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

13

3.9

Notas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

13

3.10 Referncias . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

14

3.11 Softwares . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

14

3.12 Conceitos relacionados . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

14

Autmato com pilha

15

4.1

Operao . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

15

4.2

Denio formal

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

15

Computaes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

15

4.2.1

4.3

Exemplo

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

16

4.4

Entendendo o processo de computao . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

17

4.5

AP e Linguagens livres de contexto . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

17

4.6

Autmato com Pilha Generalizado . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

17

4.7

Softwares . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

18

4.8

Referncias . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

18

Autmato linearmente limitado

19

5.1

ALL e Linguagens sensveis ao contexto . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

19

5.2

Histria . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

19

5.3

Problemas ALL . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

20

5.4

Bibliograa . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

20

5.5

Ligaes externas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

20

Mquina de Turing

21

6.1

Denio . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

21

6.1.1

Descrio informal . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

21

6.1.2

Denio formal . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

21

Detalhes adicionais requeridos para visualizar ou implementar mquinas de Turing . . . . . . . . .

22

6.2.1

Denies alternativas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

22

6.2.2

O estado . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

23

6.2

6.3

Exemplo

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

23

6.4

Mquinas de Turing determinsticas e no-determinsticas . . . . . . . . . . . . . . . . . . . . . .

24

6.5

Mquinas de Turing universais . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

24

6.6

Comparao com mquinas reais . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

24

6.7

Mquinas de Turing fsicas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

25

6.8

Histria . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

25

6.8.1

Contexto histrico: mquinas computacionais . . . . . . . . . . . . . . . . . . . . . . . .

25

6.8.2

O Entscheidungsproblem (o problema de deciso): O dcimo problema de Hilbert de 1900 25

CONTEDO
6.8.3

Alan Turing uma-mquina(-automtica) . . . . . . . . . . . . . . . . . . . . . . . . . . .

26

6.8.4

1937-1970: O computador digital, o nascimento da cincia da computao . . . . . . .

26

6.8.5

1970-presente: a mquina de Turing como um modelo de computao . . . . . . . . . . .

27

Ver tambm . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

27

6.10 Referncias . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

27

6.11 Bibliograa . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

27

6.12 Ligaes externas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

27

Autmato

28

7.1

Autmato determinstico . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

28

7.2

Autmatos no-determinsticos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

28

7.3

Condies de aceitao . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

29

7.4

Exemplo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

30

7.5

Poder expressivo de um autmato . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

30

7.6

Referencias . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

30

7.7

Leitura complementar . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

30

6.9

iii

Autmato hbrido

31

8.1

Exemplos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

31

8.2

Denio Formal . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

31

8.3

Modelos Relacionados . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

31

8.4

Referncias . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

31

8.5

Bibliograa . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

32

8.6

Fontes, contribuidores e licenas de texto e imagem . . . . . . . . . . . . . . . . . . . . . . . . .

33

8.6.1

Texto . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

33

8.6.2

Imagens . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

33

8.6.3

Licena . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

33

Captulo 1

Teoria dos autmatos


vidos na teoria dos autmatos.

1.1.1 Descrio Informal


Um autmato suposto para rodar sobre uma dada
sequncia de entradas em passos de tempo discretos.
Para cada passo, um autmato recebe uma entrada que
obtida a partir de um conjunto de smbolos ou letras, que
chamado de alfabeto. Em qualquer momento, os smbolos que servem de entrada para o autmato formam uma
sequncia nita de smbolos, que chamada de palavra.
Um autmato contm um conjunto nito de estados. Para
cada instante de tempo durante a execuo, o autmato
est em um de seus estados. Para cada medida de tempo
em que o autmato l um smbolo, ele pula ou faz a transio para um prximo estado que decidido por uma
funo que tem o estado atual e o smbolo mais recentemente lido como parmetros. Esta funo chamada de
funo de transio. O autmato l os smbolos da palavra de entrada, um smbolo por vez, e faz a transio de
estado para estado, de acordo com a funo de transio,
at a palavra ser totalmente lida. Uma vez que a palavra
de entrada tiver sido lida, o autmato deve parar e o estado no qual o autmato parou chamado de estado nal.
Dependendo do estado nal, o autmato pode aceitar ou
rejeitar uma palavra de entrada. Existe um subconjunto
de estados do autmato, que denido como o conjunto
de estados de aceitao. Se o estado nal um estado de
aceitao, ento o autmato aceita a palavra. Caso contrrio, a palavra rejeitada. O conjunto de todas as palavras aceitas por um autmato chamado de linguagem
reconhecida pelo autmato.

Um exemplo de autmato. O estudo de propriedades matemticas destes autmatos a teoria dos autmatos

Na Cincia da computao terica, teoria dos autmatos o estudo dos objetos matemticos chamados
mquinas abstratas ou autmatos e os problemas computacionais que podem ser resolvidos usando esses objetos.
Autmato vem da palavra grega que signica
ao sem inuncia externa; automtico.
A gura ao lado ilustra uma mquina de estados nitos,
que pertence a uma variedade bem conhecida de autmato. Este autmato consiste em estados (representados na gura por crculos), e transies (representado por
setas). Quando o autmato recebe um smbolo de entrada, ele faz uma transio (ou salto) para outro estado,
de acordo com sua funo de transio (que tem como
entradas o estado atual e o smbolo recente).
Teoria dos autmatos tambm est profundamente relacionada teoria das linguagens formais. Um autmato
uma representao nita de uma linguagem formal que
pode ser um conjunto innito. Autmatos so frequentemente classicados pela classe das linguagens formais
que so capazes de reconhecer.

Autmatos desempenham um papel importante em teoria


da computao, elaborao de compiladores, parsing e
Resumindo, um autmato um objeto matemtico que
vericao formal.
tem uma palavra de entrada e decide se aceita ou rejeita
esta palavra. Como todos os problemas computacionais
so redutveis para o problema de aceitao de palavras
1.1 Autmatos
(todas as instncias do problema podem ser representadas
por um tamanho nito de smbolos), a teoria dos autmaSegue uma denio introdutria de um tipo de autma- tos desempenha um importante papel na teoria computatos, que ajuda ao abordar os conceitos essenciais envol- cional.
1

CAPTULO 1. TEORIA DOS AUTMATOS

1.2 Denio formal

autmato. H estudos das muitas variaes de autmatos. A principal variante, descrita acima, chamada de
Autmatos Um autmato representado formalmente autmato nito determinstico. Seguem variaes populares da denio dos diferentes componentes de autpor uma 5-tupla (Q,,,q0,F), onde:
matos.
Q um conjunto nito de estados.
um conjunto nito de smbolos, chamado Entrada
de alfabeto do autmato.
(ou g) a funo de transio, isto , : Q
x Q.
q0 o estado inicial, isto , o estado do autmato antes de qualquer entrada ser processada,
onde q0 Q.
F um conjunto de estados de Q (isto , F
Q) chamado de estados de aceitao.
Palavra de entrada Um autmato l uma string nita de
smbolos a1 ,a2 ,...., a , onde a , que chamada de
palavra de entrada. O conjunto de todas as palavras
denotado por *.
Execuo A execuo de um autmato sobre uma palavra de entrada w = a1 ,a2 ,...., a *, uma sequncia de estados q1 ,q2 ,...., q , onde q Q tal que q0 o
estado inicial e q = (q1,a) para 0 < i n. Em outras palavras, no comeo o autmato est no estado
inicial q0 , e ento o autmato l smbolos da palavra
de entrada sequencialmente. Quando o autmato l
o smbolo ai ele pula para o estado q = (q1,a).
Diz-se que qn o estado nal da execuo.
Palavra de aceitao Uma palavra w * aceita pelo
autmato se q F.
Linguagem reconhecida Um autmato pode reconhecer uma linguagem. A linguagem L * reconhecida por um autmato o conjunto de todas as palavras que so aceitas pelo autmato.
Linguagens reconhecveis As linguagens reconhecveis so o conjunto de linguagens que so reconhecidas por algum autmato. Para a denio
acima de autmatos, as linguagens reconhecveis so
linguagens regulares. Para diferentes denies de
autmatos, a denio de linguagens reconhecveis
diferente.

1.3 Denies variantes de autmatos


Autmatos so denidos para estudar mquinas teis sobre formalismo matemtico. Ento, a denio de um
autmato aberta a variaes de acordo com a mquina
do mundo real, que ns queremos modelar usando o

Entrada nita: Um autmato que aceita apenas


sequncias nitas de smbolos. A denio introdutria acima engloba apenas palavras nitas.
Entrada innita: Um autmato que aceita palavras
innitas (-palavras). Estes autmatos so chamados de -autmatos.
Entrada palavra rvore: A entrada pode ser uma rvore de smbolos ao invs de uma sequncia de smbolos. Neste caso, aps ler cada smbolo, o autmato l todos os smbolos sucessores na rvore de
entrada. Diz-se que o autmato faz uma cpia dele
mesmo para cada sucessor, e cada cpia executa um
smbolo sucessor do estado de acordo com a relao
de transio do autmato. Este autmato chamado
de autmato rvore.
Entrada rvore innita: As duas extenses acima
podem ser combinadas, ento o autmato l uma estrutura de rvore com (in)nitos desvios. Este autmato chamado de autmato rvore innita.
Estados
Estados nitos: Um autmato que contm apenas
um nmero nito de estados. A denio introdutria apenas descreve autmatos com nmeros nitos
de estados.
Estados innitos: Um autmato que pode no ter um
nmero nito de estados, ou at mesmo um nmero
contvel de estados. Por exemplo, o autmato nito
quantum ou autmato topolgico tem um nmero
innito incontvel de estados.
Pilha de memria: Um autmato pode tambm conter uma memria extra no formato de pilha, em que
smbolos podem ser colocados e retirados. Este tipo
de autmato chamado de Autmato Pushdown
(Autmato com pilha).
Funo de transio
Determinstica: Para um dado estado atual e um smbolo de entrada, se um autmato pode pular para um
estado apenas ento ele um autmato determinstico.

1.5. CLASSE DE AUTMATOS

No-Determinismo: Um autmato que, aps ler Teoria dos autmatos tambm estuda se existe algum alum smbolo de entrada, pode pular para qual- goritmo efetivo ou no para resolver problemas semequer estado, decidido por sua relao de transi- lhantes seguinte lista:
o. Note que o termo funo de transio substitudo por relao de transio: O autmato no Um autmato aceita alguma palavra de entrada?
determinsticamente decide pular para uma das op(vericao de vazio vacuidade)
es permitidas. Este autmato chamado de autmato no-determinstico.
possvel transformar um dado autmato nodeterminstico em um autmato determinstico sem
Alternamento: Esta ideia muito semelhante ao
mudar a linguagem reconhecvel? (determinizao)
autmato rvore, mas ortogonal. O autmato pode
Para uma dada linguagem formal, qual o menor
executar suas cpias mltiplas sobre o mesmo smautmato que a reconhece? (minimizao).
bolo a ser lido. Este autmato chamado de
autmato nito alternado. A condio de aceitao
deve satisfazer todas as execues de tais cpias para
aceitar a entrada.
1.5 Classe de Autmatos
Condio de aceitao

Segue uma lista incompleta de tipos de autmatos.

Aceitao de palavras nitas: Como descrito na de1.5.1


nio informal acima.
Aceitao de palavras innitas: Um -autmato
no pode ter estados nais, j que palavras innitas nunca terminam. Preferencialmente, aceitao
da palavra decidida analisando as sequncias innitas dos estados visitados durante a execuo.

Autmatos discretos, contnuos e hbridos

Geralmente teoria dos autmatos descreve os estados de


mquinas abstratas, mas existem autmatos analgicos,
contnuos ou hbridos (discreto-contnuo), que usam dados analgicos, tempo contnuo, ou ambos.

Aceitao probabilstica: Um autmato no precisa


estritamente aceitar ou rejeitar uma entrada. Ele 1.6 Aplicaes
pode aceitar a entrada com uma probabilidade entre zero e um. Por exemplo, autmato nito quantum, autmato geomtrico e autmato mtrico tm Cada modelo em teoria dos autmatos desempenha papis importantes em muitas reas aplicadas. Autmatos
aceitao probabilstica.
nitos so usados em processamento de texto, compiladores e projeto de hardware. Gramticas livres de conDiferentes combinaes das variaes acima produzem texto (GLCs) so usadas em linguagens de programao e
mais classe de autmato.
inteligncia articial. Originalmente, GLCs eram usadas
no estudo de linguagens humanas. Autmatos celulares
so usados no campo da biologia, o exemplo mais comum
o de Jogo da Vida de John Conway. Outros exemplos
1.4 Teoria de Autmatos
que podiam ser explicados usando teoria dos autmatos
em biologia incluem crescimento de pinhas e molusco e
Teoria de autmatos um assunto que estuda as propripadres de pigmentao. Indo mais longe, uma teoria que
edades de vrios tipos de autmatos. Por exemplo, as
sugere que todo o universo computado por algum tipo
questes a seguir so relacionadas a um dado tipo de autde autmato discreto defendida por cientistas. A idia
matos.
vem do trabalho de Konrad Zuse, e foi popularizada na
Amrica por Edward Fredkin.
Qual classe de linguagens formais reconhecvel por
algum tipo de autmato? (linguagens reconhecveis)

1.7 Simuladores de autmatos

Certos autmatos so fechados sobre a unio, interseo ou complemento de linguagens formais? (proSimuladores de autmatos so ferramentas pedaggicas
priedades de fechamento)
usadas para ensinar, aprender e pesquisar teoria dos aut Quo expressivo um tipo de autmato em ter- matos. Um simulador de autmato tem como entrada a
mos de reconhecer classe de linguagens formais? E, descrio de um autmato e ento simula seu funcionaquanto ao poder relativo de expressividade? (hie- mento para uma string arbitrria como entrada. A descrirarquia de linguagem)
o do autmato pode ser inserida de vrias formas. Um

4
autmato pode ser denido por uma linguagem simblica
ou sua especicao pode ser inserida em uma forma predenida ou seu diagrama de transio pode ser projetado
no clicar e arrastar do mouse. Simuladores de autmatos
bem conhecidos incluem Turings World, JFLAP, VAS,
TAGS e SimStudio.[1]

1.8 Conexo com a teoria das categorias


Pode-se denir muitas categorias diferentes de
autmatos[2] seguindo a classicao de autmatos
em diferentes tipos, descrita na seo anterior. A
categoria matemtica dos autmatos determinsticos,
mquinas sequenciais ou autmatos sequenciais, e
mquinas de Turing com homomorsmos de autmatos,
que dene as setas entre autmatos uma categoria
fechada cartesiana,[3][4] que tem ambos, co-limites e
limites categricos. Um homomorsmo de autmato
mapeia uma 5-tupla de um autmato A em uma 5-tupla
de outro autmato A .[5] Homomorsmo de autmatos
tambm pode ser considerado como transformaes
de autmatos ou homomorsmos semigrupo, quando o
espao do estado, S, do autmato denido como um semigrupo S . Monoides so tambm considerados como
um ambiente propcio para autmatos em categorias
monoides.[6][7][8]
Categorias de autmatos variveis
Pode-se tambm denir um autmato varivel, no sentido de Norbert Wiener em seu livro Human Use of
Human Beings pelos endomorsmos A-->A. Ento,
pode-se mostrar que estes homomorsmos de autmatos variveis formam um grupo matemtico. No caso do
no-determinstico, ou outros tipos complexos de autmatos, o ltimo conjunto de endomorsmo pode tornarse, contudo, um grupide de autmato varivel. Portanto,
no caso mais geral, categorias de autmatos variveis de
qualquer tipo so categorias de grupides[9] ou categorias
grupides. Alm disso, a categoria de autmatos reversveis ento uma 2-categoria, e tambm uma subcategoria
da 2-categoria de grupides, ou a categoria grupide.

1.9 Referncias
John E. Hopcroft, Rajeev Motwani, Jerey D. Ullman
Introduo Teoria de Autmatos, Linguagens e Computao (2 Edio).
[1] Chakraborty, P., Saxena, P. C., Katti, C.
P. 2011.
Fifty Years of Automata Simulation:
A Review.
ACM Inroads, 2(4):5970.
http://dl.acm.org/citation.cfm?id=2038893&dl=ACM&
coll=DL&CFID=65021406&CFTOKEN=86634854

CAPTULO 1. TEORIA DOS AUTMATOS

[2] Jir Admek and Vera Trnkov. 1990. Automata and


Algebras in Categories. Kluwer Academic Publishers:
Dordrecht and Prague
[3] S. Mac Lane, Categories for the Working Mathematician,
Springer, New York (1971)
[4] http://planetmath.org/encyclopedia/
CartesianClosedCategory.html Cartesian closed category
[5] http://planetmath.org/encyclopedia/
SequentialMachine3.html The Category of Automata
[6] http://www.csee.wvu.edu/~{}jworthing/asl2010.pdf James Worthington.2010.Determinizing, Forgetting, and
Automata in Monoidal Categories. ASL North American
Annual Meeting,March 17, 2010
[7] Aguiar, M. and Mahajan, S.2010. Monoidal Functors,
Species, and Hopf Algebras.
[8] Meseguer, J., Montanari, U.: 1990 Petri nets are monoids.
Information and Computation 88:105155
[9] http://en.wikipedia.org/wiki/Groupoid#Category_of_
groupoids Category of groupoids

John E. Hopcroft, Rajeev Motwani, Jerey D. Ullman. Introduction to Automata Theory, Languages,
and Computation (2nd Edition). [S.l.]: Pearson Education, 2000. ISBN 0-201-44124-1
Michael Sipser. Introduction to the Theory of Computation. [S.l.]: PWS Publishing, 1997. ISBN 0534-94728-X Part One: Automata and Languages,
chapters 12, pp. 29122. Section 4.1: Decidable
Languages, pp. 152159. Section 5.1: Undecidable
Problems from Language Theory, pp. 172183.
James P. Schmeiser, David T. Barnard. Producing a
top-down parse order with bottom-up parsing. [S.l.]:
Elsevier North-Holland, 1995.

1.10 Softwares
SCTMF - Software para Criao e Teste de Modelos
Formais.
JFlap - Software americano para testes com interface grca.
Auger - Ambiente para construo e simulao de
autmatos nitos.
Simulador de Automatos - O Simulador de Autmatos uma ferramenta para a criao, simulao
e converso de modelos formais, desenvolvida com
o objetivo de auxiliar o aprendizado de Linguagens
Formais e Autmatos.

Captulo 2

Autmatos nitos determinsticos


Start

1
0

S0

S2

S1
1

vido seu fator determinstico, ele pode ser implementado atravs de Hardware e Software para resolver diversos problemas especcos. Por instncia, DFAs so utilizados para modelar softwares que validam entradas de
usurio tal como o seu e-mail em um servidor de correio
eletrnico. [4]

AFDs reconhecem exatamente o conjunto de Linguagens


Regulares[1] que so, dentre outras coisas, teis para a realizao de Anlise lexica e reconhecimento de padres.
Uma AFD pode ser construdo a partir de um Autmato
nito no determinstico atravs de uma Construo do
conjunto das partes.

An example of a deterministic nite automaton that accepts only


binary numbers that are multiples of 3. The state S0 is both the
start state and an accept state.

Na Teoria dos autmatos, um sub-tpico da Cincia


da computao terica, um autmato nito determinstico tambm chamado mquina de estados - 2.1 Denio Formal
nita determinstica (AFD) uma Mquina de estados nita que aceita ou rejeita cadeias de smbolos ge- Um Autmato Finito Determinstico A uma 5-tuple,
rando um nico ramo de computao para cada cadeia de (Q, , , q0, F) consistindo de:
entrada.[1] 'Deterministica' refere-se unicidade do processamento. O primeiro conceito similar ao de aut um conjunto nito de estados (Q)
matos nitos foi apresentado por McCulloch e Pitts em
um conjunto nito de smbolos de entrada chamado
1943.[2][3] Modelo esse que foi produzido na busca por
Alfabeto ()
estruturas mais simples para a reproduo de mquinas
de estado nitas.
uma funo de transio ( : Q Q)
A gura direita representa um autmato nito determi um estado inicial (q0 Q) e
nstico atravs de um Diagrama de transio de estados.
Nesse autmato h trs estados: S0, S1 e S2 (represen um conjunto de estados de aceitao (F Q)
tados gracamente por crculos). A entrada constituda
por uma sequncia nita de caracteres 1s e 0s. Para cada
estado da mquina, existe um arco de transio levando Seja w = a1 a2 ... an uma cadeia de smbolos sobre o
a um outro estado para ambos caracteres 0 e 1. Isso sig- alfabeto , O autmato M aceita a cadeia w se somente
nica que, em um dado estado, aps a leitura de cada se existe uma sequncia de estados, r0 ,r1 , ..., rn, em Q
smbolo a mquina determinstica transita para um nico com as seguintes condies:
estado referente aresta associada ao smbolo. Por exem1. r0 = q0
plo, esteja o autmato atualmente no estado S0 e o smbolo de entrada para aquela instncia um '1', ento ele
2. ri+1 = (ri, ai+1), para i = 0, ..., n1
salta deterministicamente para o estado S1. Todo AFD
possui um estado inicial (denotado gracamente por uma
3. rn F.
seta de origem annima) onde a sua computao comea
e um conjunto de estados de aceitao (denotados gra- Em outras palavras, a primeira condio arma que a mcamente por um crculo de borda dupla) o qual indica a quina se inicia no estado inicial q . A segunda condio
0
aceitao da cadeia de entrada.
diz que, dado cada smbolo da entrada w, a mquina tranUm Autmato nito determinstico normalmente de- sita de estado em estadoo de acordo com a funo de trannido como um conceito matemtico abstrato, mas de- sio . A terceira e ltima condio diz que a mquina
5

CAPTULO 2. AUTMATOS FINITOS DETERMINSTICOS

aceita w se somente se o ltimo smbolo da entrada leva o "*" uma Kleene star, e.g., 1* indica que h uma ocorautmato a parar em um estado f tal que f F. Caso con- rncia no-negativa de 1s nesse trecho da expresso.
trrio, diz-se que a mquina rejeita a entrada. O conjunto
de cadeias que M aceita chamado Linguagem reconhecida por M e simbolicamente representado por L(M).
2.3 Propriedades de fechamento
Um autmato nito determinstico que no possui estado
inicial ou estados de aceitao conhecido como um Sis- AFDs so fechadas sob as seguintes operaes (o que imtema de Transies ou Semiautmato.
plica que se uma linguagem for obtida atravs da aplicaPara uma melhor compreenso introdutria denio o de uma dessas funes sobre uma ou mais linguagens,
existe uma AFD que reconhece a linguagem resultante):
formal de autmatos, veja Teoria dos autmatos.

2.2 Exemplo
O exemplo a seguir representa um AFD M, com um alfabeto binrio, que requer que sua entrada contenha um
nmero par de 0s.

Unio
Interceo
Concatenao
Negao
Estrela
Quociente
Substituio
Homomorsmo
Sendo AFDs equivalentes a Autmatos nitos no determinsticos (AFN), essas operaes de fechamento podem
ser provadas atravs do uso das propriedades dos AFNs.

The state diagram for M

2.4 Modos de Gerao e Aceitao

M = (Q, , , q0 , F) onde
Q = {S 1 , S 2 },
= {0, 1},
q0 = S 1 ,
F = {S 1 }, e
denido da pela seguinte Tabela de transio de
estados:

O estado S 1 indica que houve um nmero par de ocorrncias do smbolo 0 at ento na entrada, enquanto que S 2
signica que esse valor foi impar. Um 1 na entrada no
altera o estado atual do autmato. Quando a entrada
completamente lida, o estado atual vai indicar se a cadeia
de entrada possui um nmero par de 0s ou no. Caso a cadeia possua de fato uma quantidade par, M vai encerrarse no estado S 1 , um estado de aceitao, tal que a entrada
vai ser aceita. Caso contrrio, se o autmato encontrar-se
no estado S 2 , a mquina rejeita a cadeia.

Uma AFD que representa uma dada linguagem regular


pode ser usada tanto em um modo de aceitao para validar que uma cadeia de entrada pertence a uma linguagem
L como em Modo de gerao para gerar uma lista de todas as linguagens que pertencem a L.
No modo de aceitao, o autmato processa uma cadeia
de entrada do caracter mais esquerda ao mais direita,
lendo um smbolo por vez. A computao da entrada se
inicia no estado inicial e continua ao lerse o primeiro smbolo da cadeia de entrada, seguindo o estado de transio
que corresponde quele smbolo (de acordo com a funo
de transio do autmato). O sistema segue as transies
at que todos os smbolos da entrada tenham sido lidos,
o que indica o nal da computao. Se aps o processamento da entrada a mquina encontrar-se em um estado
de aceitao, a cadeia aceita e diz-se que ela pertence
a L. Ao contrrio, a cadeia no pertence a L e diz-se que
ela foi rejeitada pelo autmato.

O modo de gerao (criao) similar, exceto que, em


vez de validar uma cadeia de entrada, seu objetivo produzir uma lista de todas as cadeias de caracteres dentro
da linguagem. Em vez de seguir uma nica transio de
A linguagem reconhecida por M a Linguagem regular cada estado, o modo de criao segue todas elas. Na prdada pela Expresso regular 1*( 0 (1*) 0 (1*) )*, tal que tica, isso pode ser alcanado por um paralelismo massivo

2.5. EQUIVALNCIA COM EXPRESSES REGULARES

(fazer com que o programa se ramique em dois ou mais


processos cada vez que este se deparar com uma deciso) ou ento por Recurso. Como antes, a computao
comea no estado inicial e procede a seguir cada transio disponvel, sem perder de vista que processos foram
tomados. Toda vez que o autmato se encontra em um
estado de aceitao este sabe que a sequncia de processos tomada forma uma cadeia de caracteres vlida na linguagem e adiciona essa cadeia na lista que o programa
est gerando. Se a linguagem que o automato descreve
innita (exemplo: contm um nmero innito de cadeias, como: todas as cadeias binrias com um nmero
mpar de zeros), ento a computao nunca ir parar.
Sabendo-se que linguagens regulares, em geral, so innitas, autmatos no modo de criao tendem a ser muitas
vezes uma construo terica.

2.5.1 Converso de AFD para expresso


regular
O procedimento de converso de um AFD em uma expresso regular consiste em duas etapas; 1. converter o
AFD em um AFNG, e em seguida; 2. converter o AFNG
em uma expresso regular.
Converso AFD -> AFNG Adicione um novo estado inicial com uma transio epsilon para o estado inicial original Adicione um novo estado de aceitao Para cada
estado de aceitao antigo: Adicione uma transio epsilon desse estado ao novo estado de aceitao Se quaisquer
setas tm mltiplos rtulos Substitua cada uma dessas setas por uma nica seta cujo rtulo a unio dos rtulos
anteriores Se no h setas entre qualquer par de estados
Adicione uma seta com rtulo vazio entre esse par de estados

Esse procedimento transforma um AFD de q estados em


um AFNG de q + 2 estados, de forma que a mesma linguagem L descrita por ambos autmatos, sendo assim
os AFDs e AFNGs equivalentes em poder de descrio.
Uma vez que o AFNG encontra-se nesse formato, podeExpresses regulares e autmatos nitos determinsticos mos prosseguir com o procedimento recursivo que con(AFD) so equivalentes em poder de descrio. Ambas verte um AFNG em uma expresso regular.
representaes descrevem exatamente a classe de linguagens regulares. possvel, a partir de um autmato nito
determinstico, obter a expresso regular que o autmato 2.5.2 Converso de expresso regular para
descreve.

2.5 Equivalncia com Expresses


Regulares

AFD

De forma a provar a equivalncia entre AFDs e expresses regulares, preciso demonstrar que possvel con- Para concluir a prova de que expresses regulares e AFDs
verter um AFD em uma expresso regular e que tambm descrevem a mesma classe de linguagens (as linguagens
possvel converter uma expresso regular em um AFD. regulares), uma vez mostrado que um AFD pode ser conO procedimento que converte autmatos nitos deter- vertido em uma expresso regular, agora mostrado que
minsticos utiliza outro tipo de autmato, denominado uma expresso regular pode ser convertida em um AFD.
autmato nito no determinstico generalizado. O pro- Fazemos isso convertendo uma expresso regular qualcedimento constitudo em duas etapas, a converso de quer para um autmato nito no determinstico (AFN),
autmato nito determinstico para um autmato nito uma vez que esse tipo de autmato tambm reconhece a
no determinstico generalizado (AFNG), e enm, de um classe de linguagens regulares (e por sua vez, descreve a
AFNG para uma expresso regular. Um AFNG extre- mesma classe que os AFDs).
mamente semelhante a um autmato nito no determinstico (AFN), no entanto, a diferena consiste principalmente em que o AFNG capaz de ler blocos de smbolos
de entrada, ao invs de apenas um nico smbolo de entrada. A funo de transio de um AFNG caracteriza-se
da seguinte forma:
: (Q {qaceita }) (Q {qinicio }) R
De tal forma que:
Q o conjunto de estados;

Seja uma expresso regular R que descreve uma determinada linguagem L . Descrevemos seis casos a serem
tratados na converso para um autmato determinstico.
Caso 1: R = a para algum a .
Ento, L(R) = a . Descrevemos formalmente o seguinte
AFN N tal que L(N ) = R :
N = ({q1 , q2 }, , , q1 , {q2 }) , de forma que a funo de
transio descrita com as transies: (q1 , a) = {q2 } e
(r, b) = para r = q1 ou b = a .
Caso 2: R =

Ento, L(R) = {} . Seja ento a descrio formal do


qaceita , qinicio so estados de aceitao e iniciais, AFN N que reconhece essa expresso regular:
respectivamente
N = ({q1 }, , , q1 , {q2 }) tal que (r, b) = para qual R a coleo de todas as expresses regulares sobre quer r, b .
o alfabeto do AFNG.

Caso 3: R = .

CAPTULO 2. AUTMATOS FINITOS DETERMINSTICOS

Ento, L(R) = . Seja ento a descrio formal do AFN


N que reconhece essa expresso regular:

Q = {q0 } Q1

N = ({q1 }, , , q1 , ) tal que (r, b) = para qualquer


r, b .

F = F1 {q0 }

Caso 4: R = R1 R2
Sejam os AFN N1 = (Q1 , , 1 , q1 , F1 ) e N2 =
(Q2 , , 2 , q2 , F2 ) que reconhecem respectivamente as
linguagens descritas por R1 e R2 . O seguinte AFN
N = (Q, , , q0 , F ) reconhece R1 R2 :
Q = {q0 } Q1 Q2
F = F1 F2

1 (q, a)

2 (q, a)
=

{q1 , q2 }

q
q
q
q

Q1
Q2
= q0 a =
= q0 a =

Os estados de N so compostos de todos os estados que


esto contidos no conjunto de estados de N2 ou N1 em
adio de um novo estado inicial denominado q0 . Alm
disso, os estados de aceitao de N so todos os estados
de aceitao de N2 ou N1 , de forma que N aceita uma
cadeia que pertena tanto linguagem descrita por N1
como N2 . Essa construo tambm a prova de que
as linguagens regulares so fechadas sob a operao de
unio.

1 (q, a)

1 (q, a)
= 1 (q, a) {q1 }

{q1 }

q
q
q
q
q

/ F1 q Q1
F1 a =
F1 a =
= q0 a =
= q0 a =

Os estados de aceitao de N so todos os estados de


aceitao de N1 com adio do novo estado inicial q0 .
Essa construo tambm a prova de que as linguagens
regulares so fechadas sob a operao do fecho de Kleene
(ou estrela).
Uma vez que possvel construir um autmato nito no
determinstico a partir de uma determinada expresso regular, possvel convert-lo em um autmato nito determinstico correspondente, de forma que a expresso
regular convertida num AFD. Dessa forma concluda
a prova de que expresses regulares e AFDs so equivalentes em poder de descrio uma vez que possvel obter
a expresso regular a partir do AFD e vice-versa.

2.6 Vantagens e Desvantagens

AFDs so equivalentes em poder de expresso a


Autmatos nitos no determinsticos (NFDs). Isso se
Sejam os AFN N1 = (Q1 , , 1 , q1 , F1 ) e N2 = d porque, primeiramente qualquer AFD tambm um
(Q2 , , 2 , q2 , F2 ) que reconhecem respectivamente as AFN, ento AFNs podem expressar o que AFDs exlinguagens descritas por R1 e R2 . O seguinte AFN pressam. Alm disso, dado um AFN, atravs de uma
N = (Q, , , q1 , F2 ) reconhece R1 R2 :
Construo do conjunto das partes possvel construir
um AFD que reconhece a mesma linguagem que um de Q = Q1 Q2
terminado AFN, apesar de o AFD poder precisar de um

nmero muito maior de estados que o AFN (mais preci1 (q, a)


q Q1 q
/ F1

samente, o nmero de estados de um AFD construdo a

(q, a)
q F1 a =
partir de um AFN equivale ao conjunto das partes dos
1
=

estados do AFN que o gerou).

(q,
a)

{q
}
q

a
=

1
2
1

2 (q, a)
q Q2
Por outro lado, autmatos de estado nito de potncia
so estritamente limitados nas linguagens que podem reO estado inicial de N o estado inicial de N1 . Os estados conhecer. Muitas linguagens simples, incluindo qualquer
de N so compostos de todos os estados que esto conti- problema que requeira mais que espao constante para
dos no conjunto de estados de N2 ou N1 . Alm disso, os resolver, no podem ser reconhecidos por um AFD. O
estados de aceitao de N so apenas os estados de acei- exemplo clssico de uma linguagem simplesmente destao de N2 . Esse autmato construdo aceita as cadeias crita que nenhum AFD reconhece a linguagem de colque possam ser divididas em duas partes de forma que a chetes, ou seja, linguagem que consiste em colchetes deprimeira parte seja aceita por N1 e a segunda por N2 . vidamente emparelhados como a palavra "(()())". NeEssa construo tambm a prova de que as linguagens nhum DFA pode reconhecer a linguagem de colchetes
regulares so fechadas sob a operao de concatenao. porque no h um limite para a recursividade, ou seja,
sempre se pode incorporar outro par de suportes dentro.
Caso 6: R = R1
Seria necessria uma quantidade innita de estados para
Seja o AFN N1 = (Q1 , , 1 , q1 = 0, F1 ) que reco- reconhec-la. Outro exemplo mais simples a linguagem
nhece a linguagem descrita por R1 . O seguinte AFN consistindo de cadeias de smbolos da forma an bn um
nmero nito de as, seguido por um nmero igual de bs.
N = (Q, , , q, F ) reconhece R1 :
Caso 5: R = R1 R2

2.10. LIGAES EXTERNAS

2.7 Ver tambm


Autmato nito determinstico acclico
Autmato nito no determinstico
Lgica de segunda ordem
Turing machine
Autmato com pilha
Linguagem Regular
Expresso regular

2.8 Notas e referncias


[1] Hopcroft 2001:
[2] McCulloch and Pitts (1943):
[3] Rabin and Scott (1959):
[4] Gouda, Prabhakar, Application of Finite automata

2.9 Bibliograa
Hopcroft, John E.; Motwani, Rajeev; Ullman, Jeffrey D.. In: John E.. Introduction to Automata
Theory, Languages, and Computation. 2 ed. [S.l.]:
Addison Wesley, 2001. ISBN 0-201-44124-1 Pgina
visitada em 19 November 2012.
Lawson, Mark V.. Finite automata. [S.l.]: Chapman and Hall/CRC, 2004. ISBN 1-58488-255-7
(1943) A logical calculus of the ideas imminent in
nervous activity. Bulletin of Mathematical Biophysics: 541544.
(1959) Finite automata and their decision problems.. IBM J. Res. Develop.: 114125.
Sakarovitch, Jacques. Elements of automata theory.
Cambridge: Cambridge University Press, 2009.
ISBN 978-0-521-84425-3

Sipser, Michael. Introduction to the Theory of Computation. Boston: PWS, 1997. ISBN 0-534-94728-X.
Section 1.1: Finite Automata, pp. 3147. Subsection Decidable Problems Concerning Regular Languages of section 4.1: Decidable Languages, pp.
152155.4.4 DFA can accept only regular language

2.10 Ligaes externas


DFA Simulator - an open source graphical editor
and simulator of DFA

Captulo 3

Mquina de estados nitos no


determinstica
Na teoria da computao, uma mquina de estados nita no-determinstica ou um autmato nito nodeterminstico (AFND) uma mquina de estados nita
onde para cada par de estado e smbolo de entrada pode
haver vrios prximos estados possveis. Isso o distingue do autmato nito determinstico (AFD), onde o prximo estado possvel univocamente determinado. Embora AFD e AFND possuam denies distintas, pode
ser mostrado na teoria formal que eles so equivalentes e, deste modo, para qualquer AFND dado, podese construir um AFD equivalente e vice-versa: essa a
construo do conjunto das partes. Ambos os tipos de
autmatos reconhecem apenas linguagens regulares. Mquinas de estados nitas no-determinsticas so s vezes
estudadas com o nome de subshifts de tipo nito.

transies epsilon), o qual permite uma transio para


um novo estado sem ler nenhum smbolo de entrada. Por
exemplo, se est no estado 1, com o prximo smbolo de
entrada um a, pode-se se mover para o estado 2 sem ler
nenhum smbolo de entrada. Assim, tem-se uma ambiguidade: o sistema est no estado 1 ou no estado 2 antes de ler a entrada a? Por causa desta ambiguidade,
mais conveniente falar de um conjunto de possveis estados que o sistema pode estar. Assim, antes de ler um
smbolo de entrada a, o AFND-epsilon pode estar em
qualquer um dos estados do conjunto {1,2}. Equivalentemente, pode-se imaginar que o AFND est nos estados
1 e 2 'ao mesmo tempo': isso d uma ideia informal da
construo do conjunto das partes: o AFD equivalente
a um AFND denido como aquele que est no estado
q={1,2}. Transies para novo estados sem ler smbolos
Mquinas de estados nitas no-determinsticas so generalizadas pelo autmato probabilstico, o qual atribui de entrada so chamadas de transies lambda ou transies epsilon. Elas so comumente rotuladas com as letras
uma probabilidade para cada transio de estado, e por
gregas
ou .
vrias outras maneiras, tais como autmatos com pilha e
A noo de aceitao de uma entrada similar quela
AFNs com transies .
Autmatos nitos no-determinsticos foram introduzi- em um AFD. Quando o ltimo smbolo de entrada lido,
dos em 1959 por Michael O. Rabin e Dana Scott,[1] que diz-se que o AFND aceita se e somente se existe algum
tambm mostraram sua equivalncia com autmatos ni- conjunto de transies que ir lev-lo a um estado de aceitao. Do mesmo modo, ele rejeita, se, no importando
tos determinsticos.
quais transies sejam aplicadas, ele no terminar num
estado de aceitao.

3.1 Explicao intuitiva


3.2 Denio formal

Um AFND, similarmente a um AFD, l uma cadeia de


smbolos de entrada. Para cada smbolo da entrada h
uma transio para um novo estado, at que todos os sm- Dois tipos similares de AFNDs so comumente denidos: o AFND e o AFND com transies . O tipo cobolos de entrada sejam lidos.
mum denido como uma 5-upla, M = (Q, , , q0 , F )
Ao contrrio de um AFD, h um no-determinismo onde, , consistindo de
para cada smbolo de entrada, seu prximo estado pode
ser um de dois ou mais estados possveis. Assim, na
um conjunto nito de estados Q ;
denio formal, o prximo estado um elemento do
conjunto das partes dos estados. Este elemento, um con um conjunto nito de smbolos de entrada , denojunto, representa algum subconjunto de todos os possminando o alfabeto;
veis estados que podem ser considerados.
uma funo de transio : Q P(Q) ;
Uma extenso do AFND o AFND-lambda (tambm
um estado inicial q0 Q ;
conhecido como AFND-epsilon ou como AFND com
10

3.4. DEFINIO FORMAL DE COMPUTAO DOS AFNDS


um conjunto distinto de estados F como estados de
aceitao (ou estados nais), F Q .

Aqui, P(Q) denota o conjunto das partes de Q

11

3.4 Denio formal de computao dos AFNDs


Seja N = (Q, , , q0 , F ) um AFND e w uma
cadeia do alfabeto.

Diz-se que N aceita w se podemos escrever w como


O AFND com transies (tambm conhecido como w = y1 y2 ...yn onde cada yi e existe uma sequnAFN-epsilon ou AFN-lambda) denido por uma 5-upla cia de estados r0 r1 ..rn em Q seguindo as trs condies
extremamente semelhante, porm, a funo de transio a seguir:
substituda por uma que permite a cadeia vazia como
uma entrada possvel. Desse modo, sua funo de transi1. r0 = q0 ;
o dada por:
2. ri+1 (ri , yi+1 ) para i = 0, 1, ..., n 1 ;
: Q ( {}) P(Q)
Pode-se mostrar que AFND comum e um AFND com
transies so equivalentes e, assim, dado qualquer
AFND comum, pode-se construir um AFND com transies que reconhece a mesma linguagem e vice-versa.

3. rn F .

3.5 Propriedades do AFND-

3.3 Propriedades dos AFNDs


A mquina comea no estado inicial especicado e l uma
cadeia de smbolos do seu alfabeto. O autmato usa a
funo de transio de estado para determinar o prximo estado usando o estado atual e o smbolo que acabou de ser lido, o que inclui a cadeia vazia, no caso dos
AFNDs com transies . Entretanto, o prximo estado
de um AFND no depende somente do evento atual, mas
tambm de um nmero arbitrrio de eventos subsequentes de entradas. At esses eventos subsequentes ocorrerem, no possvel determinar onde a mquina de estados
est".[2]

Para todo p, q Q, escreve-se pq se e somente se q


pode ser alcanado a partir de p atravs de zero ou mais

transies . Em outras palavras, pq se e somente se


existe q1 , q2 , qk Q onde k 0 tal que

q1 T (p, ), q2 T (q1 , ), qk T (qk1 , ), q T (qk , )


Para qualquer p Q , o conjunto de estados que podem
ser alcanados a partir de p chamado de fecho-epsilon
ou fecho- de p, e escrito como

E({p}) = {q Q : pq}
Para qualquer subconjunto P Q , dene-se o fecho-
de P como

O conjunto de todas as cadeias que so aceitas por um

E({p})
AFND a linguagem que o AFND aceita. Esta lingua- E(P ) =
pP
gem deve ser uma linguagem regular.
Para todo AFND pode ser encontrada um AFD que aceite
a mesma linguagem. Portanto, possvel converter um
AFND existente em um AFD com o propsito de implementar (talvez) uma mquina mais simples. Isto pode ser
realizado usando a construo do conjunto das partes, o
que pode levar a um aumento exponencial no nmero de
estados necessrios. Uma prova formal desta construo
do conjunto das partes pode ser encontrada aqui (em ingls).

As transies so transitivas, de modo que pode ser demonstrado que, para todo q0 , q1 , q2 Q e P Q , se
q1 E({q0 }) e q2 E({q1 }) , ento q2 E({q0 }) .
Igualmente, se q1 E(P ) e q2 E({q1 }) ento q2
E(P )

Seja x uma cadeia sobre o alfabeto {} . Um AFND M aceita a cadeia x se existe tanto uma representao
de x na forma x1 x2 ...xn , onde xi { } , como
uma sequncia de estados p0 , p1 , ..., pn , onde pi Q ,
Muitas vezes, pode ser mais fcil construir um AFND do
seguindo as seguintes condies:
que um AFD equivalente, tanto pelo entendimento como
pelo tamanho da construo. AFNDs so comumente
1. p0 E({q0 }) ;
introduzidos no incio de cursos de informtica terica
para desenvolver a ideia de no-determinismo em mode2. pi+1 E((pi , xi+1 )) para i = 0, 1, ..., n 1 ;
los computacionais mais poderosos, como as mquina de
Turing.
3. pn F .

12

CAPTULO 3. MQUINA DE ESTADOS FINITOS NO DETERMINSTICA

3.6 Implementao
Existem vrias maneiras de implementar um AFND:
Converter para o AFD equivalente. Em alguns casos isso pode causar um aumento exponencial no tamanho do autmato e, assim, espao proporcional
auxiliar ao nmero de estados do AFND (como o
armazenamento do estado exige no mximo um bit
para cada estado no AFND).
Manter uma estrutura do conjunto de dados de todos os estados em que a mquina poderia estar. Na
leitura do ultimo simbolo de entrada, se um desses
estados um estado nal, a mquina aceita a cadeia. No pior dos casos, isso pode exigir espao auxiliar proporcional ao nmero de estados do AFND;
se a estrutura de conjunto usa um bit por estado do
AFND, ento esta soluo exatamente equivalente
a anterior.

Explicitamente propague tokens atravs da estrutura de transio do AFND e combine sempre que
um token alcanar um estado nal. Isto, s vezes, til quando o AFND pode codicar contextos adicionais sobre os eventos que desencadearam da transio. (Para uma implementao que
usa esta tcnica acompanhe as referncias e olhe os
Tracematches.[3] )

3.7 Exemplo
Exemplo 1: O seguinte exemplo explica um AFND
M, com um alfabeto binrio, que determina se uma
entrada contm um nmero par de 0s ou um nmero
par de 1s (Note que 0 ocorrncias um nmero para
de occorrncias). Seja M= (Q, , T, s0 , F) onde
= {0, 1},
Q= {s0 , s1 , s2 , s3 , s4 },

Criar mltiplas cpias. Para cada n maneiras de de E({s0 }) = { s0 , s1 , s3 }


cidir, o AFND cria at n1 cpias da mquina. Durante sua computao, caso o AFND se depare com
F= {s1 , s3 }, and
uma situao na qual existam mltiplas maneiras de
A funo de transio T pode ser denida por esta
se prosseguir, isto , a funo de transio leve a
tabela de transio de estados:
mais de um estado, pode-se considerar que o AFND
divide-se em mltiplas cpias e cada uma dessas cpias ca responsvel pela computao de uma das O diagrama de estados para M :
transies possveis. Quando alguma cpia da mquina chega a uma situao na qual no h transio
possvel, diz-se que essa cpia do AFND morre,
no mais fazendo parte da computao. Se forma
semelhante, caso alguma das cpias do AFND esteja em um estado de aceitao ao nal da computao da cadeia de entrada, diz-se que o AFND

2
1
aceita a dada cadeira. Isso tambm requer armazenamento linear com respeito ao nmero de estados
do AFND, como tambm pode haver uma mquina
para cada estado do AFND. Dessa forma, pode-se
pensar no no-determinismo dos AFNDs como uma
0
computao paralela, na qual o AFND (anlogo a
0
0
1
um processo) pode se bifurcar (de forma anloga
chamada de sistema Fork).

4
3
rvore de possibilidades. Derivada da ideia de ramos de computao, nessa forma, representamos a
computao a partir de uma rvore de possibilida1
des cuja raiz corresponde ao incio da computao. :
A cada smbolo de entrada lido, analisa-se a transio e se criam ns lhos adequadamente, isto , M pode ser visto como a unio de dois AFDs: um com
caso haja 2 estados possveis em uma dada transi- os estados {S 1 , S 2 } e o outro com os estados {S 3 , S 4 }.
o, a rvore ramica no nvel atual e criam-se 2
renovos lhos. Analogamente, se houver apenas uma A linguagem de M pode ser descrita pela linguagem


gular
dada
por
esta
expresso
regular
(1
(01
01
)
)

transio possvel, a rvore no ramicada no dado


(0
(10
10
)
)
.
momento e se no houver transio possvel, o ramo
morre e no mais levado em conta na computa Exemplo 2:
o.

3.9. NOTAS
Criar o diagrama do AFND da linguagem L = {w | w termina em 00} com 3 estados. Resposta: O estado inicial
de no aceitao e ca em loop recebendo 1s e 0s at
que ele adivinha de forma no determinstica que um 0
recebido o penltimo 0 da cadeia, e assim, passa para
o segundo estado, que por sua vez, recebe o ltimo zero
e passa para o estado nal de aceitao, que no tem nenhuma transio partindo dele, e caso recebe um outro
smbolo, o ramo da computao morre.
(Exemplo de exercco no resolvido do Sipser).
Exemplo 3:
Criar o diagrama do AFND da linguagem U = { w | w 0*
} com 1 estado. Resposta: O estado inicial o estado de
aceitao e tem apenas 1 transio, que para ele mesmo,
no caso de ler o smbolo 0 da entrada. Caso outro smbolo
seja lido, o ramo da computao morre. Neste caso, o no
determinismo est associado a no ter uma transio para
todos os smbolos do alfabeto. Fazendo um comparativo
com o AFD, seria necessrio criar um outro estado que
alcanado caso o estado inicial leia 1 da entrada, e que
possui um loop para ele mesmo ao receber 0s e 1s.
(Exemplo de exerccio no resolvido do Sipser).
Exemplo 4:
Criar do diagrama do AFND da linguagem A = { w | w =
{0}} com 2 estados. Resposta: O estado inicial estado
de no aceitao e tem uma transio para o estado nal
de aceitao ao ler o smbolo 0 da entrada. O estado nal
de aceitao no possui transies para nenhum outro estado. Caso o estado inicial leia o smbolo 1 da entrada ou
o estado nal ler 0 ou 1, o ramo da computao morre.

13
matemtico necessrio para estabelecer muitas propriedades importantes na teoria da computao. Por exemplo, muito mais fcil provar as propriedades que seguem
usando AFNDs do que AFDs:
A unio de duas linguagens regulares regular:
A ideia da prova parte do princpio de que, tendo duas
linguagens regulares e os AFNDs que as reconhecem, podemos tomar os dois AFNDs e combin-los com um terceiro AFND que aceita sua entrada de qualquer um dos
dois AFNDs prvios a aceita. A prova formal pode ser
encontrada aqui.
A concatenao de duas linguagens regulares regular:
Sendo dois AFNDs iniciais A1 e A2 , a ideia da prova
consiste em construir um novo AFND Aconcat usando a
estrutura de A1 e A2 na construo. O novo AFND possui como estado inicial, o estado inicial do AFND A1 e
possui toda a estrutura de A1 , com os estados de aceitao de A1 transformados em estados de no-aceitao
possuidores de transies para o estado inicial de A2 .
O novo AFND, por conseguinte, tambm possui toda a
estrutura de A2 , e seus estados de aceitao so os mesmos de A2 . Dessa forma, a entrada sempre poder ser
quebrada em duas partes no-deterministicamente, e s
ser aceita se puder ter a primeira parte aceita por A1 e a
segunda por A2 .
O Fecho de Kleene de uma linguagem regular regular:

(Exemplo de exerccio no resolvido do Sipser).


Exemplo 5:

Sendo o AFND inicial A1 , construdo um novo AFND


A que modica a estrutura de A1 para fazer com que os
estados de aceitao deste possuam, cada um, uma transio para o estado inicial de A1 . Adicionalmente, criase um novo estado de aceitao que passa a ser o estado
inicial de A , este possuindo uma transio para o estado inicial antigo (estado inicial de A1 ).

Criar o diagrama do AFND da linguagem B = { w | w


= vazio } com 1 estado. Resposta: S h 1 estado que
o estado de aceitao. No h nenhuma transio. Se o
estado receber qualquer smbolo, o ramo da computao
morre.
importante notar que a construo de A a partir da
mera adio do estado inicial de A1 ao conjunto dos es(Exemplo de exerccio no resolvido do Sipser).
tados de aceitao no provaria o que proposto, pois h
casos nos quais certas cadeias indesejadas seriam aceitas. Um exemplo de linguagem cuja computao nessa
3.8 Aplicao de AFND-
construo leva a uma falha a linguagem 1(01) .
AFNDs e AFDs so equivalentes tal que se uma linguagem reconhecida por um AFND, ela tambm reconhecida por um AFD e vice versa. O estabelecimento de
tal equivalncia importante e til. til porque construir um AFND que reconhece uma dada linguagem
algumas vezes mais fcil do que construir um AFD para
aquela linguagem. Isso importante porque AFNDs podem ser usadas para reduzir a complexidade do trabalho

3.9 Notas
[1] Rabin and Scott (1959)
[2] FOLDOC Free Online Dictionary of Computing, Finite
State Machine

14

CAPTULO 3. MQUINA DE ESTADOS FINITOS NO DETERMINSTICA

[3] Allan, C., Avgustinov, P., Christensen, A. S., Hendren,


L., Kuzins, S., Lhotk, O., de Moor, O., Sereni, D., Sittampalam, G., and Tibble, J. 2005. Adding trace matching with free variables to AspectJ. In Proceedings of
the 20th Annual ACM SIGPLAN Conference on Object
Oriented Programming, Systems, Languages, and Applications (San Diego, CA, USA, October 1620, 2005).
OOPSLA '05. ACM, New York, NY, 345-364.

3.10 Referncias
M. O. Rabin and D. Scott, Finite Automata and
their Decision Problems, IBM Journal of Research
and Development, 3:2 (1959) pp. 115125.
Michael Sipser, Introduction to the Theory of Computation. PWS, Boston. 1997. ISBN 0-534-94728X. (see section 1.2: Nondeterminism, pp.4763.)
John E. Hopcroft and Jerey D. Ullman,
Introduction to Automata Theory, Languages,
and Computation, Addison-Wesley Publishing, Reading Massachusetts, 1979. ISBN 0-201-02988-X.
(ver captulo 2)
Martin, John C. - Introduction to languages and the
theory of computation (2 Edio)

3.11 Softwares
Auger - Software brasileiro com interface grca
para construo e simulao de autmatos nitos e
converso para outros modelos formais.
Simulador de Autmatos - Software para criao,
teste e converso de Modelos Formais. Com interface grca.
SCTMF - Software para Criao e Teste de Modelos
Formais.
JFlap - Software americano para testes com interface grca.

3.12 Conceitos relacionados


Linguagens formais
Teoria da computao
Teoria dos grafos

Captulo 4

Autmato com pilha


Na teoria dos autmatos, um autmato com pilha um 4.2 Denio formal
autmato nito com uma memria auxiliar em forma de
pilha.
Um autmato de pilha formalmente denido por uma
6-tupla:

4.1 Operao

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

Autmatos com pilha diferem da denio normal de Onde:


mquinas de estados nitos de duas maneiras:
Q um conjunto nito de estados.
1. Eles podem fazer uso da informao que est no
topo da pilha para decidir qual transio deve ser
efetuada;
2. Eles podem manipular a pilha ao efetuar uma transio.

um conjunto nito de smbolos, denominado


alfabeto de entrada.
um conjunto nito de smbolos, denominado
alfabeto da pilha.
(Q ) (Q ) a relao de
transio.

Autmatos com pilha escolhem uma transio analisando


q0 Q o estado inicial.
o smbolo atual na cadeia de entrada, o estado atual e o
F Q o conjunto de estados nais (ou de aceitatopo da pilha. Mquinas de estados nitos convencionais
o).
apenas analisam o smbolo na cadeia de entrada e o estado atual. Autmatos com pilha adicionam a pilha como
recurso auxiliar, deste modo, dado um smbolo da cadeia Um elemento (p,a,,q,) uma transio de M. Ela sigde entrada, o estado atual e um smbolo no topo da pilha, nica que M, estando no estado p, com o smbolo a na
uma transio selecionada.
cadeia de entrada e com o smbolo no topo da pilha,
Mquinas de estados nitos apenas escolhem um novo pode consumir o smbolo a, transitar para o estado q e
estado como resultado da sua transio, j os autmatos desempilhar substituindo-o por . O * e o * denocom pilha tambm podem manipular a pilha, como resul- tam o fecho de Kleene do alfabeto de entrada e da pitado de sua transio. A manipulao feita atravs do lha, respectivamente. Portanto, estes componentes so
desempilhamento de um smbolo da pilha ou atravs do utilizados para formalizar que o autmato de pilha pode
empilhamento de um novo smbolo ao topo da mesma. consumir qualquer quantidade de smbolos da cadeia de
Alternativamente, um autmato com pilha pode ignorar entrada e da pilha.
a pilha e deix-la como est.
Os autmatos com pilha compreendem a classe das 4.2.1 Computaes
linguagens livres de contexto, de acordo com a Hierarquia
de Chomsky e, portanto, so modelos de computao A m de formalizar a descrio semntica dos autmaequivalentes s gramticas livres de contexto.
tos com pilha, introduziremos uma descrio da situaUm autmato nito com acesso a duas pilhas possui ca- o atual. Qualquer 3-upla (p, w, ) Q
pacidade de computao equivalente ao de uma mquina chamada de uma descrio instantnea (ID) de M ,
de Turing.[carece de fontes?]
que inclui o estado atual, a parta da cadeia de entrada
15

16

CAPTULO 4. AUTMATO COM PILHA


Aqui M representa os fechos reexivos e transitivos da
relao origina M signicando qualquer nmero de passos consecutivos (zero, um ou mais).
Para cada nico autmato com pilha, essas duas linguagens no devem ter relao: eles podem ser iguais, mas
normalmente no o caso. Uma especicao do autmato deve tambm incluir o modo de aceitao pretendido. Entretanto, todos as condies de aceitao de um
autmato com pilha denem uma mesma famlia de linguagem
Teorema Para todo autmato com pilha M possvel construir um outro autmato com pilha M tal que
L(M ) = N (M ) , e vice versa, para cada autmato com
pilha M possvel construir um autmato com pilha M
tal que N (M ) = L(M )

4.3 Exemplo
Um passo do autmato com pilha.

que ainda no foi lida e o contedo da memria (o cabealho escrito primeiro). A funo de transio dene a relao origina M de M na descrio instantnea
(ID). Para instrues (p, a, A, q, ) existe um passo
(p, ax, A) M (q, x, ) , para todo x e todo
.

A seguir a descrio formal do AP, que reconhece a


linguagem {0n 1n | n 0} por estado nal:

Em geral, autmatos com pilha so no determinsticos, o que signica dizer que dada uma descrio instantnea (p, w, ) podem haver diversos passos possveis. Qualquer um desses passos pode ser escolhido dun n
rante uma computao. Com a denio acima, em cada AP para {0 1 | n 0} (por estado nal).
passo um smbolo nico (localizado no topo da pilha)
retirado e substitudo por quantos smbolos forem ne- M = (Q, , , , p, Z, F ) , onde
cessrio. Como consequncia, nenhum passo denido
Q = {p, q, r}
quando a pilha est vazia.
Computaes dos autmatos com pilha so sequncias de = {0, 1}
passos. A computao comea no estado inicial q0 com o = {A, Z}
smbolo inicial da pilha Z na pilha e uma cadeia w na ta
de entrada e, portanto, com a descrio inicial (q0 , w, Z) F = {r}
. H duas maneiras de aceitar: O autmato com pilha consiste nas seis instrues seguintes:
aceita tanto por estado nal, o que signica que depois de
(p, 0, Z, p, AZ) , (p, 0, A, p, AA) , (p, , Z, q, Z) ,
ler sua entrada, o autmato atinge um estado de aceitao
(p, , A, q, A) , (q, 1, A, q, ) , e (q, , Z, r, Z) .
(in F ), quanto por pilha vazia ( ), o que signica que
aps ler a cadeia de entrada, o autmato esvazia sua pilha. Ou seja, no estado p para cada smbolo 0 que for lido, um
O primeiro modo de aceitao usa a memria interna, os A colocado na pilha. Empilhar um smbolo A no topo
de um outro A formalizado como trocar o smbolo A
estados, e o segundo modo a memria externa, a pilha.
por AA . No estado q , para cada smbolo 1 lido, um A
Denio formal:
a desempilhado. Em um outro momento, o autmato
se move do estado p para o estado q , enquanto ele pode
1. L(M ) = {w |(q0 , w, Z) M (f, , ) com mover do estado q para o estado de aceitao r somente
quando a pilha possuir um nico Z .
f F e } (Estado nal)
Representamos a instruo (p, a, A, q, ) como uma
2. N (M ) = {w |(q0 , w, Z) M (q, , ) com ponte que sai do estado p para o estado q rotulada por
q Q} (Pilha vazia)
a; A/ (leia a ; substitui A por ).

4.6. AUTMATO COM PILHA GENERALIZADO

4.4 Entendendo o processo de computao

17
e substitui-la pelo lado direito de uma regra gramatical.
Onde a gramtica gera um smbolo terminal, o PDA l
um smbolo de entrada quando o smbolo mais alto na
pilha. De certa forma, a pilha do PDA contm os dados no transformados da gramtica, correspondente a
um percurso pr-ordem de uma rvore de derivao.
Tecnicamente, dada uma gramtica livre de contexto, o
AP construdo da seguinte forma:
1. (1, , A, 1, ) para cada regra A (expand)

Computao de aceitao para 0011

2. (1, a, a, 1, ) para cada smbolo de terminal a


(match)

A seguir ilustramos como o AP acima computa sobre diComo resultado, obtemos um autmato com pilha de um
ferentes cadeias de entrada.
nico estado. O estado aqui 1 , aceitando a linguagem
(a) Cadeia de entrada = 0011. H vrias computaes, livre de contexto por pilha vazia. O smbolo inicial da
dependendo do momento em que feita a mudana do pilha igual ao axioma da gramtica livre do contexto.
estado p para o estado q . Apenas uma dessas computaO inverso, encontrar uma gramtica para um AP dado,
es aceita.
no to simples. O truque codicar dois estados do
AP em smbolos no-terminais da gramtica.
(p, 0011, Z) (q, 0011, Z) (r, 0011, Z)
(p, 0011, Z) (p, 011, AZ) (q, 011, AZ)
(iii) (p, 0011, Z)

(p, 011, AZ)

(p, 11, AAZ) (q, 11, AAZ) (q, 1, AZ)


(q, , Z) (r, , Z) . Computao de aceitao: termina em um estado de aceitao e a
cadeia de entrada lida totalmente.

Teorema Para cada autmato com pilha M possvel construir uma gramtica livre do contexto G tal que
N (M ) = L(G) .

4.6 Autmato com Pilha Generalizado

Um Autmato com Pilha Generalizado APG um AP


(b) Cadeia de entrada = 00111. Novamente, h vrias que escreve uma cadeia inteira de um tamanho qualquer
computaes, mas nenhuma delas uma computao de conhecido na pilha ou remove uma cadeia inteira da pilha
em um nico passo.
aceitao.
Um APG formalmente denido como uma 6-upla:
(p, 00111, Z) (q, 00111, Z) (r, 00111, Z)
(p, 00111, Z) (p, 0111, AZ) (q, 0111, AZ)
(iii) (p, 00111, Z) (p, 0111, AZ)
(p, 111, AAZ)

(q, 111, AAZ)


(q, 11, AZ) (q, 1, Z) (r, 1, Z) .
O estado nal o de aceitao, mas a entrada
no aceita pois a cadeia no terminou de ser
lida completamente.

4.5 AP e Linguagens livres de contexto


Toda gramtica livre de contexto pode ser transformada
em um autmato com pilha equivalente. O processo
de derivao da gramtica simulada de uma forma
mais esquerda. Onde a gramtica reescreve um noterminal, o AP toma o no-terminal do topo da pilha pilha

M = (Q, , , , q0 , F )
onde Q, , , q0 e F so denidos da mesma forma que
um AP.
: Q P (Q )
a funo de transio.
Regras de computao para um APG so as mesmas que
para AP, exceto que a's e b's so agora cadeias ao
invs de smbolos.
APGs e APs so equivalentes, ou seja, se uma linguagem
reconhecida por um AP, ela tambm reconhecida por
um APG, e vice-versa.
Podemos formular uma prova analtica da equivalncia
entre APGs e APs usando a seguinte simulao:
Faa (q1 , w, x1 x2 ...x ) (q2 , y1 y2 ...y ) ser uma transio do APG

18

CAPTULO 4. AUTMATO COM PILHA

Onde q1 , q2 Q , w , x1 , x2 , . . . , xm ,
m 0 , y1 , y2 , . . . , yn , n 0 .
Construa as seguintes transies para o AP:

(q1 , w, x1 ) (p1 , )

(p1 , , x2 ) (p2 , )

..
.

(p -, , x ) (p , )

(p , , ) (p , y )

(p , , ) (p , y -)

..
.

(p -, , ) (q2 , y1 )

4.7 Softwares
Simulador de Autmatos- Software para criao,
teste e converso de Modelos Formais. Com interface grca.
SCTMF- Software para Criao e Teste de Modelos
Formais.
JFlap- Software americano para testes com interface
grca.

4.8 Referncias
Michael Sipser. Introduo Teoria da Computao. Traduo brasileira de Introduction to the
Theory of Computation (PWS Publishing Company, 2nd edition, 2005), por Ruy de Queiroz, reviso Newton Vieira, Cengarle Learning, 2007 ISBN
978-85-221-0499-4.
Jean-Michel Autebert, Jean Berstel, Luc Boasson, Context-Free Languages and Push-Down Automata, in: G. Rozenberg, A. Salomaa (eds.), Handbook of Formal Languages, Vol. 1, SpringerVerlag, 1997, 111-174.

Captulo 5

Autmato linearmente limitado


Um Autmato linearmente limitado uma Mquina
de Turing com memria limitada e o mecanismo reconhecedor de Linguagens sensveis ao contexto. Sua ta
limitada e portanto nita. Ele s consegue resolver problemas que usem uma quantidade de memria que possa
caber dentro da ta usada para entrada. Se por acaso utilizarmos um alfabeto de ta maior que o alfabeto de entrada ento teremos um incremento da memria disponvel por at um fator constante, por isso se tivermos uma
entrada de tamanho n a quantidade de memria disponvel ser linear em relao a n. Apesar de suas restries
os ALLs so bastantes potentes, podemos citar que os
decisores para o problema da aceitao de um AFD para
uma dada entrada, para o problema da vacuidade de um
dado AFD, para o problema da aceitao de uma gramtica livre de contexto e para a vacuidade de uma dada
gramtica livre de contexto so todos ALLs.

para direita. Como tem carter no determinstico os estados podem ter mais de uma sada com o mesmo smbolo, quando isso ocorre uma cpia do ALL criada e
executada simultaneamente, a primeira cpia que parar
em um estado nal aceita, e as outras so excludas.
A transio representada por (smbolo lido, smbolo a
ser escrito, direo para qual o cabeote de leitura/escrita
deve ir).
Uma caracterstica importante dos ALLs que um ALL
pode ter somente um nmero limitado de conguraes
dado que a entrada tem tamanho n.
Dado que a entrada tem tamanho n, seja M um ALL com
q estados e s smbolos no alfabeto da ta ento podemos dizer que existem exatamente q*n*s^n conguraes distintas de M.

No se sabe se a verso no determinstica desta mquina


O Autmato Linearmente Limitado um formalismo aumenta ou no o poder computacional das Mquinas de
[carece de fontes?]
reconhecedor no determinstico, o qual pode ser denido Turing com Memria Limitada.
por uma ctupla (, S, , S0 , F, V, <, >), [1][2] e [3] onde:

5.1 ALL e Linguagens sensveis ao


contexto

o alfabeto de smbolos de entrada;


S o conjunto de estados possveis, o qual nito;
o programa ou funo de transio

Autmatos linearmente limitados so aceitadores para a


:
S ( V {<, >}) classe de linguagens sensveis ao contexto. A nica resS ( V {<, >}) {E, D}
2
a qual uma funo trio colocada nas gramticas para tais linguagens que
no h produo dque mapeia uma cadeia para uma caparcial;
deia mais curta. Assim, nenhuma derivao de uma caS0 o estado inicial da mquina, S0 S;
deia em uma linguagem sensvel ao contexto pode conter
uma forma sentencial mais do que a cadeia em si. Uma
F o conjunto de estados nais, F S;
vez que existe uma correspondncia um-para-um entre
autmatos linearmente limitados e tais gramticas, no
V o alfabeto auxiliar (pode ser vazio);
mais do que a ta ocupada pela cadeia original neces< o smbolo especial marcador de incio da ta;
sria para a cadeia a ser reconhecida pelo autmato.

> o smbolo especial marcador de m da ta.


O ALL possui uma ta de entrada a qual tem tamanho
nito e delimitada pelos smbolos <e >, possui tambm um cabeote de Leitura/Escrita, o qual tem a posio inicial sempre na primeira clula a direita do smbolo
, sempre que o cabeote l um smbolo ele deve escrever outro na mesma clula e mover-se para esquerda ou

5.2 Histria
Em 1960, Myhill introduziu um modelo de autmato hoje
conhecida como autmato linearmente limitado determinstico. [1] Pouco depois, Landweber provou que as linguagens aceitas por um ALL determinstico so sempre

19

20

CAPTULO 5. AUTMATO LINEARMENTE LIMITADO

sensveis ao contexto. [2] Em 1964, Kuroda introduziu


o modelo mais geral (no determinstico) de autmatos
linearmente limitados, e mostrou que as linguagens aceitas por eles so precisamente as linguagens sensvel ao
contexto. [3]

Peter S. Landweber: Three Theorems on Phrase


Structure Grammars of Type 1, Information and
Control 6(2): 131-136 (1963)
Sige-Yuki Kuroda: Classes of languages and linearbounded automata, Information and Control, 7(2):
207223 (1964)

5.3 Problemas ALL


Em seu artigo seminal, Kuroda armou tambm dois desaos de pesquisa, que posteriormente se tornaram notoriamente conhecidos como os problemas ALL": O primeiro problema ALL se a classe de linguagens aceitas pelo ALL igual classe de linguagens aceitas pelo
ALL determinstico. Este problema pode ser formulado
de forma sucinta na linguagem da teoria da complexidade
computacional como:
Primeiro problema ALL: verdade que
NSPACE(O(n)) = DSPACE(O(n))?
O segundo problema ALL se a classe de linguagens
aceitas por um ALL fechada sob complementao.
Segundo problema ALL: verdade que
NSPACE(O(n)) = co-NSPACE(O(n))?
Como j observado por Kuroda, uma resposta negativa
ao segundo problema ALL implicaria uma resposta negativa ao primeiro problema. Mas o segundo problema
ALL tem uma resposta armativa, o que est implicado
pelo teorema Immerman-Szelepcsnyi, provado apenas
mais de 20 anos depois que o problema foi levantado.
Ainda em 2011, o primeiro problema ALL permanece
em aberto.

5.4 Bibliograa
COHEN, D. I. A. Introduction to Computer Theory.
New York: John Wiley & Sons, 1997.
MENEZES, P. B. Linguagens Formais e Autmatos.
Porto Alegre: Sagra Luzzatto, 2005.
VIEIRA, N. J. Introduo aos Fundamentos da
Computao - Linguagens e Mquinas. So Paulo:
Pioneira Thomson e Learning, 2006.
Michael Sipser, Introduction to the Theory of Computation. PWS, Boston. 1997.
John Myhill: Linearly Bounded Automata, WADD
Technical Note 60-165, Wright-Patterson Air Force
Base, Wright Air Development Division, Ohio, junho 1960.

5.5 Ligaes externas


SCTMF - Software para Criao e Teste de Modelos
Formais.
Linear Bounded Automata by Forbes D. Lewis
Linear Bounded Automata slides, part of Contextsensitive Languages by Arthur C. Fleck
Linear-Bounded Automata, part of Theory of Computation syllabus, by David Matuszek

Captulo 6

Mquina de Turing
2. Um cabeote, que pode ler e escrever smbolos na
ta e mover-se para a esquerda e para a direita.
3. Um registrador de estados, que armazena o estado da
mquina de Turing. O nmero de estados diferentes
sempre nito e h um estado especial denominado
estado inicial com o qual o registrador de estado
inicializado.
Representao artstica de uma mquina de Turing

4. Uma tabela de ao (ou funo de transio) que


diz mquina que smbolo escrever, como mover
o cabeote ( para esquerda e para direita) e
qual ser seu novo estado, dados o smbolo que ele
acabou de ler na ta e o estado em que se encontra.
Se no houver entrada alguma na tabela para a combinao atual de smbolo e estado ento a mquina
pra.

A mquina de Turing um dispositivo terico conhecido como mquina mundial, que foi concebido pelo
matemtico britnico Alan Turing (1912-1954), muitos
anos antes de existirem os modernos computadores digitais (o artigo de referncia foi publicado em 1936). Num
sentido preciso, um modelo abstrato de um computador,
que se restringe apenas aos aspectos lgicos do seu funcionamento (memria, estados e transies) e no sua Note que cada parte da mquina nita; sua quantidade
implementao fsica. Numa mquina de Turing pode-se de ta potencialmente ilimitada que d uma quantidade
modelar qualquer computador digital.
ilimitada de espao de armazenamento.
Turing tambm se envolveu na construo de mquinas
fsicas para quebrar os cdigos secretos das comunicaes alems durante a II Guerra Mundial, tendo utilizado 6.1.2 Denio formal
alguns dos conceitos tericos desenvolvidos para o seu
Mquina de Turing com uma ta
Mais formodelo de computador universal.
malmente, uma mquina de Turing (com uma ta)
usualmente denida como uma Tupla M
=
(Q, , , s, b, F, ) , onde

6.1 Denio

Q um conjunto nito de estados

6.1.1

Descrio informal

um alfabeto nito de smbolos


o alfabeto da ta (conjunto nito de smbolos)

Uma mquina de Turing consiste em:


1. Uma ta que dividida em clulas, uma adjacente
outra. Cada clula contm um smbolo de algum
alfabeto nito. O alfabeto contm um smbolo especial branco (aqui escrito como ) e um ou mais
smbolos adicionais. Assume-se que a ta arbitrariamente extensvel para a esquerda e para a direita,
isto , a mquina de Turing possui tanta ta quanto
necessrio para a computao. Assume-se tambm que clulas que ainda no foram escritas esto
preenchidas com o smbolo branco.
21

s Q o estado inicial
b o smbolo branco (o nico smbolo que
se permite ocorrer na ta innitamente em qualquer
passo durante a computao)
F Q o conjunto dos estados nais
: Q Q {, } uma funo parcial chamada funo de transio, onde o movimento para a esquerda e o movimento para a
direita.

22
Denies na literatura s vezes diferem um pouco, para
tornar argumentos ou provas mais fceis ou mais claras,
mas isto sempre feito de maneira que a mquina resultante tem o mesmo poder computacional. Por exemplo, mudar o conjunto {, } para {, , P } , onde
P permite ao cabeote permanecer na mesma clula da
ta em vez de mover-se para a esquerda ou direita, no
aumenta o poder computacional da mquina (Fonte - Michael Sipser - Int Teoria da Computao).
Mquina de Turing com k tas Uma mquina de Turing com k tas tambm pode ser descrita como uma 7upla M = (Q, , 1 , 2 , ..., k , s, b, F, ) , onde
Q um conjunto nito de estados

CAPTULO 6. MQUINA DE TURING


A ta pode ser nita, e automaticamente estendida
com espaos em branco, conforme necessrio (o
qual o mais prximo da denio matemtica),
mas isso mais comum para pensar sobre isso como
innitamente alongado em ambos os lados e sendo
preenchida com espaos em branco, exceto sobre o
fragmento nito dado explicitamente onde a cabea
da ta est. (Isto no , claro, implementvel na prtica.) A ta no pode ser xada em comprimento,
desde que no corresponderia denio dada e limitaria seriamente o alcance das computaes que
a mquina pode realizar quelas do autmato linearmente limitado.

6.2.1 Denies alternativas

um alfabeto nito de smbolos

Para tornar as provas e argumentos mais fceis ou mais


i , i = 1, ..., k o alfabeto da ta i (conjunto nito claras, encontramos na literatura denies levemente dide smbolos)
ferentes, mas isso sempre feito de tal maneira que a
mquina resultante tenha o mesmo poder computacio k o nmero de tas
nal. Por exemplo, modicando o conjunto {L, R} para
{L, R, N } , onde N (Nada ou Sem operao) permi s Q o estado inicial
tiria a mquina car sobre a mesma clula da ta em vez
b o smbolo branco
de mover para a esquerda ou para direita, no aumenta o
poder computacional das mquinas.
F Q o conjunto dos estados nais
A conveno mais comum representa cada instruo de
: Q Q {, } uma funo parTuring na tabela de Turing por uma de nove 5-uplas,
cial chamada funo de transio, onde o mopela conveno de Turing/Davis (Turing (1936) em Unvimento para a esquerda e o movimento para a
decidable, p. 126-127 e Davis (2000) p. 152):
direita.
Note que uma mquina de turing com k tas no mais
poderosa que uma mquina de Turing tradicional.

6.2 Detalhes adicionais requeridos


para visualizar ou implementar
mquinas de Turing

(denio 1): (q, S , S /E/N, L/R/N, q )


( estado atual q , smbolo escaneado S , smbolo de impresso S /apagar E/nada N ,
move_um_quadrado_da_ta esquerda L/ direita R/ nada N , novo
estado q )

Outros autores (Minsky (1967) p. 119, Hopcroft e UllNas palavras de Van Emde Boas (1990), p. 6: O objeto man (1979) p. 158, Stone (1972) p. 9) adotam uma condo conjunto terico [sua descrio formal sete-tupla si- veno diferente, com um novo estado q listado imedimilar ao acima] fornece apenas informao parcial sobre atamente depois do smbolo escaneado S :
como a mquina agir e com o que suas computaes se
parecero.
(denio 2): (q, S , q , S /E/N, L/R/N)
Por exemplo,
( estado atual q , smbolo escaneado S , novo estado q , smbolo
Sero necessrias muitas decises sobre com o que
de impresso S /apagar E/nada N
os smbolos realmente se parecem, e uma forma de
, move_um_quadrado_da_ta escontra-prova de smbolos de escrita e leitura indequerda L/direita R/nada N )
nidamente.
As operaes shift left e shift right podem deslocar
a cabea da ta sobre a ta, mas quando realmente
construir uma mquina de Turing, isso mais prtico para fazer a ta deslizar para frente e para trs
sob a cabea em vez disso.

Para o restante desse artigo a denio 1 (a conveno


de Turing/Davis) ser utilizada.
Na tabela seguinte, o modelo original de Turing permitiu apenas as primeiras trs linhas, que ele chamou N1,

6.3. EXEMPLO
N2, N3 (cf Turing em Undecidable, p. 126). Ele permitiu a rasura do quadrado escaneado nomeando o 0th
smbolo S0 = apagar ou branco, etc. Entretanto, ele
no permitiu a no impresso, ento toda linha de instruo inclui smbolo de impresso S " ou apagar (cf nota
de rodap 12 em Post (1947), Undecidable p. 300). As
abreviaes so de Turing(Undecidable p. 119). Posteriormente ao paper original de Turing em 19361937, os
modelos de mquina tm permitido todos os nove tipos
possveis de 5-tuplas:

23
composto a descrio instantnea e segue a convenso
de Turing de colocar o estado atual (rtulo-instruo,
m-congurao) para a esquerda do smbolo escaneado
(p. 149).
Exemplo: estado total do problema do castor ocupado de 3 estados e 2 smbolos aps 3 movimentos
(pegando de exemplo run na gura abaixo):
1A1

Qualquer tabela de Turing (lista de instrues) pode ser


construda a partir das nove 5-tuplas acima. Por razes
tcnicas, as trs no-impresso ou instrues N (4, 5,
6) pode geralmente ser dispensadas. Para exemplos, veja
exemplos de mquina de Turing.

Isso signica: aps trs movimentos, a ta tem ...


000110000 ... sobre esta, a cabea est escaneando o 1
mais a direita, e o estado A. Brancos (nesse caso, representado por 0"s) pode ser parte do estado total como
mostrado aqui: B01; a ta possui um nico 1 sobre esta,
Menos frequentemente, o uso de 4-tuplas so encontra- mas a cabea est escaneando o 0 (branco) para sua esdos: estes representam uma outra atomizao das instru- querda e o estado B.
es de Turing (cf Post (1947), Boolos & Jerey (1974,
1999), Davis-Sigal-Weyuker (1994)); tambm veja mais Estado no contexto de mquinas de Turing devem ser
esclarecidas quanto ao que est sendo descrito: (i) a insem Mquina de PostTuring.
truo atual, ou (ii) a lista de smbolos sobre a ta juntamente com a instruo atual, ou (iii) a lista de smbolos
sobre a ta juntamente com a instruo atual posicionada
6.2.2 O estado
pela esquerda do smbolo escaneado ou pela direita do
A palavra estado utilizada em contexto de mquinas smbolo escaneado.
de Turing pode ser uma fonte de confuso, como isso O bigrafo de Turing, Andrew Hodges (1983: 107), tem
pode signicar duas coisas. A maioria dos comentaris- notado e discutido esta confuso.
tas depois de Turing utilizaram estado para denotar o
nome/designador da instruo atual para ser realizada
i.e. , os contedos do registro de estado. Mas Turing
6.3 Exemplo
(1936) fez uma distino forte entre um registro do que
ele chamou de m-congurao da mquina, (seu estado
interno) e o estado de progresso da mquina (ou pes- A mquina de Turing a seguir tem um alfabeto {, 1},
soa) atravs da computao - o estado atual do sistema onde representa o smbolo branco. Ela espera uma stotal. O que Turing chamou a frmula do estado inclue rie de 1s na ta, com o cabeote inicialmente no 1 mais
ambos a instruo atual e todos os smbolos sobre a ta: esquerda, e duplica os 1s com um no meio. Por exemplo, 111 torna-se 111111. O conjunto dos estados
{s1, s2, s3, s4, s5} e o estado inicial s1. A tabela de
ao dada a seguir.
Anteriormente em seu paper, Turing estendeu isto ainda
mais: ele d um exemplo onde ele posicionou um smbolo da congurao atual m o rtulo da instruo
abaixo do quadrado escaneado, juntamente com todos
os smbolos sobre a ta (Undecidable, p. 121); Isto ele
chama a congurao completa" (Undecidable, p. 118).
Para imprimir a congurao completa sobre uma linha, ele posiciona o estado-rtulo/m-congurao para a
esquerda do smbolo escaneado.
Uma variante disto vista em Kleene (1952), onde
Kleene mostra como escrever o nmero de Gdel de uma
situao da mquina: ele posiciona o smbolo da mcongurao q4 sobre o quadrado escaneado em grosseiramente o centro dos 6 quadrados no-brancos sobre a
ta ( veja a imagem da ta de Turing nesse artigo) e coloca
isso para a direita do quadrado escaneado. Mas Kleene
refere-se ao prprio q4 " como o estado da mquina
(Kleene, p. 374-375). Hopcroft e Ullman chamam este

Est. Smb. Smb. Est. Act. Lido Escr. Mv. Novo -------- ----- --- ---- s1 1 s2 s2 1 1 s2 s2 s3 s3
1 s4 s3 1 1 s3 s4 1 1 s4 s4 s5 s5 1 1
s5 s5 1 s1
A primeira linha desta tabela pode ser lida como: Se a
mquina estiver no estado s1 e o smbolo lido pelo cabeote for 1, ento escreva o smbolo , mova uma posio
para a direita e mude o estado para s2.
Uma computao nesta mquina de Turing pode ser, por
exemplo: (a posio do cabeote indicada mostrando-se
a clula em negrito)
Passo Estado Fita ----- ------ ---------- 1 s1 11 2 s2 1 3
s2 1 4 s3 1 5 s4 11 6 s5 11 7 s5 11 8 s1
111 9 s2 11 10 s3 11 11 s3 11 12 s4 111
13 s4 111 14 s5 111 15 s1 1111
O comportamento desta mquina pode ser descrito como
um lao (loop): Ele inicia em s1, substitui o primeiro 1

24
com um , ento usa o s2 para mover para a direita, passando pelos 1s e pelo primeiro encontrado. S3 ento
passa pela prxima seqncia de 1s (inicialmente h nenhuma) e substitui o primeiro que encontra por um 1.
S4 move de volta para a esquerda, passando pelos 1s at
encontrar um e vai para o estado s5. S5 ento move para
a esquerda, passando pelos 1s at achar o que foi originalmente escrito por s1. Ele substitui o por 1, move
uma posio para a direita e entra no estado s1 novamente
para outra execuo do lao. Isso continua at s1 achar
um (este o que ca entre as duas cadeias de 1s),
situao na qual a mquina pra.

6.4 Mquinas de Turing determinsticas e no-determinsticas


Se a tabela de ao tem no mximo uma entrada para cada
combinao de smbolo e estado ento a mquina uma
mquina de Turing determinstica (MTD). Se a tabela
de ao contm mltiplas entradas para uma combinao
de smbolo e estado ento a mquina uma mquina de
Turing no-determinstica (MTND ou MTN).

6.5 Mquinas de Turing universais


Artigo principal Mquina de Turing universal
Toda mquina de Turing computa uma certa funo computvel parcial a partir da cadeia dada formada pelos smbolos do alfabeto. Neste sentido ela comporta-se como
um computador com um programa xo. No entanto,
como Alan Turing descreveu, podemos codicar a tabela
de ao de qualquer mquina de Turing em uma cadeia
de smbolos. Portanto podemos tentar construir uma mquina de Turing que espera em sua ta uma cadeia descrevendo a tabela de ao seguida por uma cadeia descrevendo a ta de entrada, e ento computa a ta que a
mquina de Turing codicada teria computado.

6.6 Comparao com mquinas reais


Frequentemente diz-se que as mquinas de Turing, ao
contrrio de autmatos mais simples, so to poderosas
quanto mquinas reais, e so capazes de executar qualquer operao que um programa real executa. O que
est faltando neste enunciado que praticamente qualquer programa particular executando em uma mquina
particular e dada uma entrada nita , na verdade, nada
alm de um autmato nito determinstico, j que a mquina em que executa pode estar apenas em uma quantidade nita de conguraes. Mquinas de Turing poderiam de fato ser equivalentes a uma mquina que tenha

CAPTULO 6. MQUINA DE TURING


uma quantidade ilimitada de espao de armazenamento.
Podemos questionar ento por que as mquinas de Turing so modelos teis de computadores reais. H vrias
maneiras de responder a isto:
1. A diferena est apenas na habilidade de uma mquina de Turing de manipular uma quantidade ilimitada de dados. No entanto, dada uma quantidade
nita de tempo, uma mquina de Turing (como uma
mquina real) pode apenas manipular uma quantidade nita de dados.
2. Como uma mquina de Turing, uma mquina real
pode ter seu espao de armazenamento aumentado
conforme a necessidade, atravs da aquisio de
mais discos ou outro meio de armazenamento. Se
o suprimento destes for curto, a mquina de Turing
pode se tornar menos til como modelo. Mas o fato
que nem as mquinas de Turing nem as mquinas reais precisam de quantidades astronmicas de
espao de armazenamento para fazer a maior parte
das computaes que as pessoas normalmente querem que sejam feitas. Frequentemente o tempo de
processamento requerido o maior problema.
3. Mquinas reais so muito mais complexas que uma
mquina de Turing. Por exemplo, uma mquina de
Turing descrevendo um algoritmo pode ter algumas
centenas de estados, enquanto o autmato nito determinstico equivalente em uma dada mquina real
tem quadrilhes.
4. Mquinas de Turing descrevem algoritmos independentemente de quanta memria eles utilizam. H
um limite mximo na quantidade de memria que
qualquer mquina que conhecemos tem, mas este
limite pode crescer arbitrariamente no tempo. As
mquinas de Turing nos permitem fazer enunciados
sobre algoritmos que (teoricamente) valero eternamente, independentemente dos avanos na arquitetura de computadores convencionais.
5. Mquinas de Turing simplicam o enunciado de algoritmos. Algoritmos executando em mquinas abstratas equivalentes a Turing so normalmente mais
gerais que suas contrapartes executando em mquinas reais, porque elas tm tipos com preciso arbitrria disponveis e nunca precisam tratar condies
inesperadas (incluindo, mas no somente, acabar a
memria).
Uma maneira em que mquinas de Turing so pobres modelos para programas que muitos programas reais, tais
como sistemas operacionais e processadores de texto, so
escritos para receber entradas irrestritas atravs da execuo, e portanto no param. Mquinas de Turing no
modelam tal computao contnua bem (mas ainda podem modelar pores dela, tais como procedimentos individuais).

6.8. HISTRIA
Outra limitao de mquinas de Turing que elas no
modelam a organizao estrita de um problema especco. Por exemplo, computadores modernos so na verdade instncias de uma forma mais especca de mquina
de computao, conhecido como mquina de acesso aleatrio. A principal diferena entre esta mquina e a mquina de Turing que esta utiliza uma ta innita, enquanto a mquina de acesso aleatrio utiliza uma sequncia indexada numericamente (tipicamente um campo inteiro). O resultado desta distino que h otimizaes
computacionais que podem ser executadas baseadas nos
ndices em memria, o que no possvel numa mquina
de Turing geral. Assim, quando mquinas de Turing so
utilizadas como base para tempo de execues restritos,
um falso limite inferior pode ser provado em determinados tempos de execuo de algoritmos (graas premissa falsa de simplicao da mquina de Turing). Um
exemplo disto uma ordenao por contagem, o que
aparentemente viola o limite inferior theta(n log n) em
algoritmos de ordenao.

6.7 Mquinas de Turing fsicas

25

6.8.1 Contexto histrico: mquinas computacionais


Robin Gandy (1919-1995), um estudante de Alan Turing
(1912-1954) e seu amigo ao longo da vida, traa a linhagem da noo de mquina de calcular at a Babbage
(em cerca de 1834) e, na verdade, prope a Tese de Babbage":

A anlise de Gandy da Mquina Analtica de Babbage


descreve as seguintes cinco operaes (cf. p. 52-53):
1. As funes aritmticas +, -, , onde - indica subtrao apropriada x - y = 0 se y x
2. Qualquer seqncia de operaes uma operao
3. Iterao de uma operao (repetir n vezes uma operao P)
4. Iterao condicional (repetir n vezes uma operao
P condicional sobre o sucesso do teste T)
5. Transferncia condicional (i.e. condicional goto).

No difcil simular uma mquina de Turing num computador moderno (exceptuando pela quantidade de memria limitada existente nos computadores actuais). O
site de busca Google, em comemorao aos 100 anos de
Alan Turing, publicou um doodle dia 23 de junho de
2012, em forma de uma mquina de Turing.[1]

Gandy arma que as funes que podem ser calculadas por (1), (2), e (4) so precisamente as que so
Turing computveis . " (p. 53). Ele cita outras propostas de mquinas de calcular universais includas
as de Percy Ludgate (1909), Leonardo Torres y Quevedo (1914), Maurice d'Ocagne (1922), Louis Cougnal
possvel construir uma mquina de Turing com base pu(1933), Vannevar Bush (1936), Howard Aiken ( 1937).
ramente mecnica. O matemtico Karl Scherer construiu
No entanto:
essa mquina em 1986, usando conjuntos de construo
de metal, plstico e alguma madeira. A mquina, com 1,5
m de altura, usa puxes de os para ler, movimentar e escrever informao, a qual , por sua vez, representada por
rolamentos. A mquina encontra-se atualmente em exibio na entrada do Departamento de Cincia de Com- 6.8.2 O Entscheidungsproblem (o problema de deciso): O dcimo proputadores da Universidade de Heidelberg, na Alemanha.
O conceito de mquina de Turing foi usado como ferramenta educativa na obra de co cientca The Diamond
Age (1995), escrita por Neal Stephenson. A personagem
principal, Nell, possui um livro interactivo que a ensina
a pensar criativa e logicamente apresentando-lhe puzzles
numa histria, os quais, sendo mquinas de Turing, se tornam cada vez mais complexos medida que a narrativa
se desenvolve. Estes puzzles comeam por ser simples
aparelhos mecnicos e evoluem para processos econmicos abstractos, atingindo um ponto em que se assiste
interao entre completos reinos ccionais.

6.8 Histria

blema de Hilbert de 1900


Com relao aos problemas de Hilbert propostos pelo famoso matemtico David Hilbert em 1900, um aspecto do
problema #10 tinha cado utuando por quase 30 anos
antes de ser enquadrado com preciso. A expresso original de Hilbert para o 10 problema a seguinte:

Em 1922, essa noo de " Entscheidungsproblem


desenvolveu-se um pouco, e H. Behmann armou que

26

CAPTULO 6. MQUINA DE TURING

At o Congresso Internacional de Matemticos em 1928,


Hilbert fez suas perguntas bastante precisas. Primeiro,
a matemtica completa ... Segundo, a matemtica
consistente ... E terceiro, a matemtica decidvel ? "
(Hodges p. 91, Hawking p. 1121). As duas primeiras
questes foram respondidas em 1930 por Kurt Gdel na
mesma reunio onde Hilbert fez seu discurso de aposentadoria (para desgosto de Hilbert); o terceiro- o Entscheidungsproblem teve que esperar at meados de 1930.
O problema era que uma resposta primeiro exigia uma
denio precisa de prescrio denitiva geral aplicvel, que o professor de Princeton Alonzo Church viria a
chamar de " mtodo efetivo ", e em 1928 no existia tal
denio. Mas ao longo dos prximos 6-7 anos Emil Post
desenvolveu sua denio de um trabalhador passando
de um cmodo para um outro cmodo escrevendo e apagando marcas em uma lista de instrues (Post 1936), assim como Church e os seus dois alunos Stephen Kleene
e J. B. Rosser pelo uso do lambda-clculo de Church e a
teoria da recurso de Gdel (1934). O artigo de Church
(publicado 15 de abril de 1936) mostrou que o Entscheidungsproblem era de fato indecidvel e superou Turing
por quase um ano (o artigo de Turing foi submetido em
28 de maio de 1936 e publicado em janeiro de 1937).
Nesse meio tempo, Emil Post apresentou um breve artigo no outono de 1936, Turing, pelo menos, tinha prioridade sobre Post. Enquanto Church arbitrou o artigo
de Turing, Turing teve tempo para estudar o artigo de
Church e adicionar um Apndice onde ele provava que
o lambda-clculo de Church e suas mquinas calculariam
as mesmas funes.

Enquanto Gandy acredita que a declarao de Newman


acima era enganosa, esta opinio no era compartilhada
por todos. Turing tinha um interesse ao longo da vida
por mquinas: Alan tinha sonhado de inventar mquinas de escrever quando menino; [sua me] Sra. Turing
teve uma mquina de escrever, e ele poderia muito bem
ter comeado perguntando a si mesmo o que signicava
chamar uma mquina de escrever 'mecnica'" (Hodges,
p. 96). Enquanto em Princeton em busca de seu PhD,
Turing construiu um multiplicador com lgica booleana
(veja abaixo). Sua tese de doutorado, intitulada Sistemas de Lgica Baseado em ordinais, contm a seguinte
denio de uma funo computvel":

Quando Turing retornou ao Reino Unido, ele acabou se


tornando juntamente responsvel por quebrar os cdigos secretos alemes criados por mquinas de criptograa chamadas de O Enigma, ele tambm se envolveu no
projeto da ACE ( Automatic Computing Engine ), a proposta ACE [de Turing] foi efetivamente independente,
e as suas razes no estava no EDVAC [iniciativa dos
EUA], mas em sua prpria mquina universal "(Hodges
p. 318). Argumentos continuam sobre a origem e a natureza do que tem sido chamado por Kleene (1952) Tese
de Turing . Mas o que Turing provou com seu modelo de
mquina-computacional aparece em seu artigo On Computable Numbers, With an Application to the Entscheidungsproblem (1937):

De Turing exemplo (a sua segunda prova): Se algum


perguntar por um procedimento geral para nos dizer:
Ser que esta mquina imprime 0, a pergunta indeE Post s havia proposto uma denio de calculabilidade cidvel.
e criticou a denio de Church, mas no tinha provado
nada.

6.8.3

Alan
Turing
automtica)

6.8.4 1937-1970: O computador digital,


o nascimento da cincia da compuuma-mquina(tao

Na primavera de 1935, Turing como aluno de mestrado


em Kings College Cambridge , Reino Unido , aceitou o
desao; ele tinha sido estimulado pelas palestras do lgico M. H. A. Newman e aprendeu com elas do trabalho
de Gdel e o Entscheidungsproblem ... Newman usou a
palavra mecnico ... Em seu obiturio de Turing em
1955 Newman escreveu:

Gandy arma que:

Em 1937, enquanto em Princeton trabalhando em sua


tese de doutorado, Turing construiu um multiplicador
(lgico-booleano) digital do nada, fazendo seus prprios
rels eletromecnicos (Hodges p. 138). A tarefa de Alan
foi para encarnar o projeto lgico de uma mquina de Turing em uma rede de rel-operacinados interruptores ...
(Hodges p. 138). Embora Turing pudesse estar inicialmente curioso e experimentando, trabalhos muito srios, no mesmo sentido, estavam sendo desenvolvidos na
Alemanha ( Konrad Zuse (1938)), e nos Estados Unidos
( Howard Aiken ) e George Stibitz (1937); os frutos do
seus trabalhos foram usados pelos militares do Eixo e dos
Aliados na Segunda Guerra Mundial (cf Hodges p. 298299).No incio e meados da dcada de 1950, Hao Wang

6.11. BIBLIOGRAFIA
e Marvin Minsky reduziram a mquina de Turing a uma
forma mais simples (um precursor da mquina de PostTuring de Martin Davis); simultaneamente pesquisadores europeus estavam reduzindo o novssimo computador
eletrnico a um computador como objeto terico equivalente ao que estava sendo chamado de mquina de Turing. No nal dos anos 1950 e incio dos anos 1960,
os desenvolvimentos, coincidentemente paralelamente,
Melzak e Lambek (1961), Minsky (1961), e Shepherdson e Sturgis (1961) continuaram o trabalho europeu e
reduziram a mquina de Turing para uma mquina mais
amigvel, como um computador de modelo abstrato chamado de counter machine ; Elgot e Robinson (1964),
Hartmanis (1971), Cook e Reckhow (1973) levaram este
trabalho ainda mais com a mquina de registo e de acesso
aleatrio mquina modelos, mas basicamente todos so
apenas mquinas multi-ta de Turing com um conjunto
de instrues aritmticas.

6.8.5

1970-presente: a mquina de Turing


como um modelo de computao

Hoje, o contador, registrador e mquinas de acesso aleatrio e seu pai a mquina de Turing continuam a ser os
modelos de escolha para os tericos que investigam questes da teoria da computao . Em particular, a teoria da
complexidade computacional faz uso da mquina de Turing:
Dependendo dos objetos um gosta de manipular os clculos (nmeros como inteiros no negativos ou cordas alfanumricos), dois modelos tm obtido uma posio dominante na teoria da complexidade baseada em mquina:

27

6.11 Bibliograa
Rolf Herken: The Universal Turing Machine - A
Half-Century Survey, Springer Verlag, ISBN 3-21182637-8
Paul Strathern: Turing and the Computer - The
big idea, Anchor Books/Doubleday, ISBN 0-38549243-X
Turing, A., On Computable Numbers, With an Application to the Entscheidungsproblem, Proceedings
of the London Mathematical Society, Series 2, Volume 42, 1936; reimpresso em M. David (ed.), The
Undecidable, Hewlett, NY: Raven Press, 1965;
Boolos, G. and Jerey, R., Computability and Logic, 2 ed., Cambridge: Cambridge University Press,
1980.
Rogozhin, Yurii, A Universal Turing Machine with
22 States and 2 Symbols, Romanian Journal Of Information Science and Technology, 1(3), 259-265,
1998. (surveys known results about small universal
Turing machines)

6.12 Ligaes externas


Turing Machines (em ingls) Enciclopdia de Filosoa de Stanford
The Church-Turing Thesis (em ingls) Enciclopdia
de Filosoa de Stanford
Turing Machine Simulator (em ingls) simulador de
mquina de Turing

6.9 Ver tambm


Formiga de Langton, uma representao simples da
mquina de Turing em duas dimenses
Tese de Church-Turing, que diz que mquinas de
Turing podem executar qualquer computao que
pode ser executada
brainfuck, uma linguagem Turing completa, desenhada para desaar e confundir os programadores

6.10 Referncias
[1] Google. Doodles www.google.com. Visitado em 23 de
junho de 2012.

Captulo 7

Autmato
Na teoria de autmatos, um ramo da teoria da computa Acc a condio de aceitao, formalmente um subo, um autmato uma variao do autmato nito
conjunto de Q
que roda sobre cadeias innitas como entrada, ao invs
de nitas. Uma vez que um -autmato no para, eles Uma entrada para A uma string innita sobre o alfabeto
tm uma variedade de condies de aceitao, em vez de , i.e. uma sequencia innita = (a1 ,a2 ,a3 ,...). A exesimplesmente um conjunto de estados de aceitao.
cuo de A em tal entrada uma sequencia innita =
(r
0 ,r1 ,r2 ,...) de estados, denidos da seguinte forma:
-autmatos so teis para a especicao de comportamento de sistemas que no so esperados para terminar, como hardware, sistemas operacionais e sistemas de
controle. Para tais sistemas, voc pode querer especicar uma propriedade, como para cada pedido, uma conrmao, eventualmente, segue, ou sua negao existe
um pedido que no seguido por uma conrmao. O
ltimo uma propriedade das palavras innitas: nada se
pode dizer de uma sequncia nita que satisfaz esta propriedade.
Classes de -autmatos incluem o autmatos de Bchi,
'Rabin de autmatos, 'autmatos de Streett, 'autmatos
de paridade e Muller autmatos, determinstico ou no
determinstico. Essas classes de -autmatos diferem
apenas em termos de condicionar a aceitao. Todos eles
reconhecem precisamente a linguagens regulares , excepto pelos autmatos do Bchi determinsticos, que so
estritamente mais fracos do que todos os outros. Embora
todos estes tipos de autmatos reconhecem o mesmo conjunto de linguagens , eles ainda diferem em conciso de
representao para uma dada linguagem .

r0 = q0 .
r1 = (r0 ,a1 ).
r2 = (r1 ,a2 ).
...
rn = (rn,an).
A nalidade principal de um autmato denir um
subconjunto do conjunto de todas as entradas: O conjunto de entradas aceitas. Considerando que, no caso de
um simples autmato nito cada corrida termina com um
estado rn e a entrada aceita se e somente se rn um estado de aceitao, a denio do conjunto de entradas
aceitas mais complicado para autmatos . Aqui devemos olhar para a execuo completa de . A entrada
aceita se a execuo correspondente est em Acc. Oconjunto de entradas de palavras aceitas chamado de linguagem reconhecida por um autmato, que denotado
como L(A).

A denio de Acc como subconjunto de Q puramente


formal e no adequado pra prtica porque normalmente
tais conjuntos so innitos. A diferena entre vrios tiFormalmente, um autmato determinstico uma tu- pos de autmatos (Bchi, Rabin etc.) consiste em
pla A = (Q,,,q0 ,Acc) que consiste nos seguintes com- como eles codicam determinados subconjuntos Acc de
ponentes:
Q como conjuntos nitos, e portanto em quais subconjuntos eles podem codicar.

7.1 Autmato determinstico

Q um conjunto nito. Os elementos de Q so chamados de estados de A.


um conjunto nito chamado de alfabeto de A.

7.2 Autmatos
determinsticos

no-

: Q Q uma funo, chamada de funo de


Formalmente, um autmato no-determinstico
transio de A.
uma tupla A = (Q,,,Q0 ,Acc) que consiste dos seguintes
q0 um elemento de Q, chamado de estado inicial. componentes:
28

7.3. CONDIES DE ACEITAO

29

Q um conjunto nito. Os elementos de Q so cha- exemplo, se uma placa de rede recebe pedidos de ping
mados de estados de A.
innitos, ento pode deixar de responder a alguns dos pedidos, mas deve responder a um subconjunto innito de
um conjunto nito chamado de alfabeto de A.
solicitaes de ping recebidas. Isto motiva a seguinte de um subconjunto de Q Q e chamado de nio: Para qualquer execuo , deixe Inf() ser o conjunto de estados que ocorrem frequente e innitamente
relao de transio de A.
em . Esta noo de certos estados a ser visitado innitas
Q0 um subconjunto de Q, conjunto inicial de esta- vezes ser til na denio das condies de aceitao a
dos.
seguir.
Acc a condio de aceitao, um subconjunto de
Q .
Ao contrrio de um autmato determinstico que tem
uma funo de transio , a verso no-determinstica
tem uma transio relao . Note-se que pode ser
considerada como uma funo : Q P(Q) de Q
para o conjunto das partes P(Q). Assim, dado o estado
qn e o smbolo an, o prximo estado qn no necessariamente determinada de forma exclusiva, uma vez que
h um conjunto de estados possveis prximos. A execuo de A sobre a entrada = (a1 ,a2 ,a3 ,...) qualquer
sequencia innita = (r0 ,r1 ,r2 ,...) de estados que satifaz
as seguinte condies
r0 um elemento de Q0 .
r1 um elemento de (r0 ,a1 ).
r2 um elemento de (r1 ,a2 ).
...
rn um elemento de (rn,an).

Um autmato de Bchi um autmato A que usa


as seguintes condies de aceitao, para algum subconjunto F de Q:
condio de Bchi A aceita exatamente
aquelas execues de pelas quais
Inf() F no vazia, i.e. existe um
estado de aceitao que ocorre frequente
e innitamente in .
Uma vez que F nito, isso equivalente a
condio que n aceita por uma quantidade
innita de nmeros naturais n.
Um autmato de Rabin um autmato A que
usa a seguinte condio de aceitao, para algum
conjunto de pares (Ei,Fi) de conjunto de estados:
Condio de Rabin A aceita exatamente
aquelas execues pelas quais existem
um par (Ei,Fi) em tal que Ei Inf()
vazio e Fi Inf() no vazio.

Um autmato de Streett um autmato A que


Um autmato no-determinstico pode admitir muiusa as seguinte condio de aceitao, para algum
tas execues diferentes em qualquer dada entrada, ou
conjunto de pares (Ei,Fi) de conjuntos de estados:
mesmo nenhuma. A entrada aceita se, pelo menos,
uma das execues possveis aceitar. Se uma execuo
Condio de Streett A aceita exatamente
aceita, depende apenas de Acc, como por autmato
aquelas execues pelas quais para
determinstico. Cada autmato determinstico pode ser
todos os pares (Ei,Fi) em , Ei Inf()
considerada como um autmato no-determinstico tono vazio ou Fi Inf() vazio.
mando para ser o grafo de . As denies de execues e de aceitao para autmatos determinsticos so,
ento, os casos especiais dos casos no determinsticos.
A condio de Streett a negao da condio de Rabin.
Portanto, um autmato determinstico de Streett aceita
exatamente o complemento d linguagem aceita pelo autmato determinstico de Rabin composto pelos mesmos
7.3 Condies de aceitao
dados com todos os Li e Ui trocados.
Condio de aceitao pode ser um conjunto innito de
palavras mega. Assim, as pessoas em sua maioria estudam as condies de aceitao que so apenas nitamente
representveis. A seguir listamos uma variedade de condies de aceitao popular.
Antes de discutir a lista, vamos fazer seguinte observao. No caso de sistemas innitamente em funcionamento, muitas vezes tem-se interesse em se certo comportamento repetido muitas vezes innitamente. Por

Um autmato de paridade um autmato A cujo


conjunto de estados Q = {0,1,2,...,k} para algum
nmero natural k, e que tem a seguinte condio de
aceitao:
Condio de paridade A aceita se e somente se ainda o menor nmero em
Inf().

30

CAPTULO 7. AUTMATO

Um Autmato de Muller um autmato A que


usa as seguinte condio de aceitao, para um subconjunto F de P(Q) (o conjunto das partes de Q):

7.5 Poder expressivo de um autmato

Uma linguagem sobre um alfabeto nito o conjunto


de palavras sobre , i.e. um subconjunto de . Uma
Condio de Muller A aceita exatamente
linguagem sobre conhecida por um autmato
aquelas execues pelas quais Inf()
A (com o mesmo alfabeto) se o conjunto de todas as
um elemento de F.
palavras aceitas por A. O expressivo poder da classe do
autmatos medido pela classe de todas as linguagens
, que podem ser reconhecidas por algum autmato na
Cada autmato de Bchi pode ser considerado um aut- classe.
mato de Muller. suciente substituir F por F' consistindo de todos os subconjuntos de Q que contm pelo Os autmatos no determinsticos de Bchi, paridade,
menos um elemento de F. Similarmente cada autmato Rabin, Streett e Muller, respectivamente, todos reconhede Rabin, Streett ou Paridade pode tambm ser conside- cem exatamente a mesma classe de linguagens . Esses so conhecidos como fechamento de -Kleene para
rado um autmato de Muller.
linguagens regulares ou como as linguagens regulares.
Usando provas diferentes tambm pode ser mostrado que
os autmatos determinsticos de paridade, Rabin, Streett
e Muller reconhencem as linguagens regulares. Daqui
7.4 Exemplo
decorre que a classe das linguagens regulares fechada
sob complementao. No entanto, o exemplo acima mostra que a classe de autmatos determinsticos de Bchi
estritamente mais fraco.

0
q

0
0

7.6 Referencias
Farwer, Berndt (2002), "-Automata, in Grdel,
Erich; Thomas, Wolfgang; Wilke, Thomas, Automata, Logics, and Innite Games, Lecture Notes in
Computer Science, Springer, pp. 321, ISBN 9783-540-00388-5.
Automata on Innite Words Slides for a tutorial by
Paritosh K. Pandya.

Um exemplo de um autmato no determinstico de bchi

A seguinte linguagem L sobre o alfabeto = {0,1} que


pode ser conhecida por um autmato no determinstico
de Bchi: L consiste de todas as palavras em em que
1 ocorre apenas um nmero nito de vezes. Um autmato
no determinstico de Bchi que reconhece L precisa apenas de dois estados q0 (o estado inicial) e q1 . consiste
das triplas (q0 ,0,q0 ), (q0 ,1,q0 ), (q0 ,0,q1 ) e (q1 ,0,q1 ). F =
{q1 }. Para qualquqer entrada em que 1 ocorre apenas
um quantidade nita de vezes, existe uma execuo que
ca no estado q0 enquanto tiverem 1s para ler, e vai para
o estado q1 depois. Essa execuo bem sucessida. Se
existe innitos 1s, ento existe apenas uma possvel execuo: A que sempre ca no estado q0 . (Uma vez que a
mquina tenha deixado q0 e alcanado q1 , no pode retornar. Se outro 1 lido, no h nenhum estado sucessor.)
Observe que a lnguagem acima no pode ser reconhecida
por um autmato determinstico de Bchi, que pode ser
demonstrado utilizando o facto de que existem apenas um
nmero nito de estados no autmato.

7.7 Leitura complementar


Perrin, Dominique; Pin, Jean-ric (2004), Innite
Words: Automata, Semigroups, Logic and Games,
Elsevier, ISBN 978-0-12-532111-2
Thomas, Wolfgang (1990), Automata on innite
objects, in van Leeuwen, Jan, Handbook of Theoretical Computer Science, vol. B, MIT Press, pp.
133191, ISBN 978-0-262-22039-2

Captulo 8

Autmato hbrido
Na teoria dos autmatos, um autmato hbrido um
modelo matemtico para descrever precisamente sistemas onde processos computacionais digitais interagem
com processos fsicos analgicos. Um autmato hbrido
uma mquina de estados nitos com um conjunto nito
de variveis contnuas, cujos valores so descritos por um
conjunto de equaes diferenciais comuns. Esta especicao combinada de comportamentos discretos e contnuos permite que sistemas dinmicos que compreendem
dois componentes digitais e analgicos a serem modelados e analisados.

arestas em E so chamadas de interruptores de controle.


Trs funes de rotulagem de vrtices init, inv, and
ow que atribuem a cada modo de controle v V
trs predicados. Cada condio inicial init (v) um
predicado cujas variveis livres so de X . Cada
condio invariante inv (v) um predicado cujas
variveis livres so de X . Cada uxo condio de
uxo ow (v) um predicado cujas variveis livres
so de X X .
Uma funo de rotulagem de arestas jump ,que atribui a cada interruptor de controle e E um predicado. Cada condio de salto jump (e) um predicado cujas variveis livres so de X X .

8.1 Exemplos
Um exemplo simples o sistema sala-termostatoaquecedor, onde a temperatura da sala evolui de acordo
com duas leis, as da termodinmica, e do estado do aquecedor (ligado / desligado); o termostato julga a temperatura, executa computaes precisas e modica o aquecedor para ligado e desligado. Em geral, os autmatos
hbridos tm sido usados para modelar e analisar uma
grande variedade de sistemas embarcados, incluindo sistemas de controle de veculos, sistemas de controle de
trfego areo, robs mveis, e processos de sistemas da
biologia..

Um conjunto nito de eventos , e uma funo de


rotulagem de arestas event: E que atribui a
cada interruptor de controle um evento.

8.3 Modelos Relacionados

Autmatos hbridos ocorrem de vrias maneiras: o automato hbrido Alur-Henzinger um modelo popular,
que foi desenvolvido primeiramente para a anlise algo8.2 Denio Formal
rtmica do modelo de vericao de sistemas hbridos.
A ferramenta de vericao modelo HyTech baseado
Um autmato hbrido Alur-Henzinger H compreende os nesse modelo. O modelo Autmato Entrada/Sada Hbrido foi desenvolvida mais recentemente. Este modelo
seguintes componentes:[1]
permite a modelagem composicional e a anlise de sistemas hbridos. Outro formalismo que til para imple Um conjunto nito X = {x1 , ..., xn } de variveis
mentaes do modelo dos autmatos hbridos o autde nmeros reais. O nmero n chamado de dimenmato hbrido preguioso linear.
so de H . Faa X ser o conjunto {x 1 , ..., x n } de
variveis pontuais que representam as primeiras derivadas durante a transformao contnua, e faa X
ser o conjunto {x1 , ..., xn } de variveis preparadas 8.4 Referncias
que representam valores na concluso de transformao discreta.
Um multigrafo nito direcionado (V, E) . Os vrtices em V so chamados de modos de controle. As
31

[1] Henzinger, T.A. The Theory of Hybrid Automata. Proceedings of the Eleventh Annual IEEE Symposium on Logic in Computer Science (LICS), pages 278-292, 1996.

32

8.5 Bibliograa
Rajeev Alur, Costas Courcoubetis, Nicolas Halbwachs, Thomas A. Henzinger, Pei-Hsin Ho, Xavier Nicollin, Alfredo Olivero, Joseph Sifakis, and Sergio
Yovine The algorithmic analysis of hybrid systems.
Theoretical Computer Science, volume 138(1), pages 334, 1995.
Nancy Lynch, Roberto Segala, Frits Vaandrager,
Hybrid I/O Automata. Information and Computation, volume 185(1), pages 103157, 2003.

CAPTULO 8. AUTMATO HBRIDO

8.6. FONTES, CONTRIBUIDORES E LICENAS DE TEXTO E IMAGEM

33

8.6 Fontes, contribuidores e licenas de texto e imagem


8.6.1

Texto

Teoria dos autmatos Fonte: http://pt.wikipedia.org/wiki/Teoria%20dos%20aut%C3%B4matos?oldid=38936301 Contribuidores: LeonardoG, LeonardoRob0t, OS2Warp, Olavom, Ccero, Khullah, Chlewbot, Leonardo.stabile, Njr, Chentz, JAnDbot, Kaktus Kid, Vitor
Mazuco, Maurcio I, Salebot, JotaCartas, Rubinbot, Michelmenega, Dayane C., FMTbot, ChuispastonBot, WikitanvirBot, MerlIwBot,
Leoenciwiki, Legobot e Annimo: 19
Autmatos nitos determinsticos Fonte: http://pt.wikipedia.org/wiki/Aut%C3%B4matos%20finitos%20determin%C3%ADsticos?
oldid=39702024 Contribuidores: LeonardoG, Santana-freitas, Olavom, SallesNeto BR, Leonardo.stabile, Njr, VolkovBot, Luckas-bot, Diego Queiroz, Mobyduck, BenzolBot, Rjbot, ZroBot, Rodrigolopes, Legobot, Mgtmc, Gpp40 e Annimo: 12
Mquina de estados nitos no determinstica Fonte: http://pt.wikipedia.org/wiki/M%C3%A1quina%20de%20estados%20finitos%
20n%C3%A3o%20determin%C3%ADstica?oldid=40404793 Contribuidores: Hgfernan, Obscuro, Jprisco, Fernando S. Aldado, Leonardo.stabile, Njr, He7d3r, Master, Rei-bot, Castelobranco, EuTuga, VolkovBot, LeoBot, Fabiano Tatsch, Eamaral, Salebot, Diego Queiroz, Xqbot, Rjbot, ZroBot, Henrique, Vanessalarize, J. A. S. Ferreira, Addbot, Dhudupires, Vmrc e Annimo: 3
Autmato com pilha Fonte: http://pt.wikipedia.org/wiki/Aut%C3%B4mato%20com%20pilha?oldid=36151100 Contribuidores: Leonardo.stabile, Njr, Reynaldo, TXiKiBoT, ChristianH, Luckas-bot, Ptbotgourou, Diego Queiroz, Mobyduck, Ripchip Bot, ZroBot, KLBot2,
Deboracgcorreia, Kascyo, JYBot e Annimo: 4
Autmato linearmente limitado Fonte: http://pt.wikipedia.org/wiki/Aut%C3%B4mato%20linearmente%20limitado?oldid=34731604
Contribuidores: Master, TXiKiBoT, Fabiano Tatsch, MystBot, Vanthorn, Diego Queiroz, Xqbot, Faustino.F, Michelmenega, QuarkAWB,
Aleph Bot, ZroBot, KLBot2, Jphmf e Annimo: 1
Mquina de Turing Fonte: http://pt.wikipedia.org/wiki/M%C3%A1quina%20de%20Turing?oldid=41343848 Contribuidores: Patrick,
LeonardoG, Muriel Gottrop, Angeloleithold, E2mb0t, Heitor, LeonardoRob0t, Alexg, Rafael.afonso, Campani, Nuno Tavares, NTBot,
Rodrigo Rocha, RobotQuistnix, Leslie, Clara C., OS2Warp, Adailton, Zwobot, Nomad, YurikBot, Ccero, Lus Felipe Braga, Villarinho,
Leonardo.stabile, Njr, Thijs!bot, Escarbot, JAnDbot, Kid A, Ricvelozo, TXiKiBoT, VolkovBot, BOTijo, Kaktus Kid, Lopima, LeoBot,
Marcelopge, Thrasherbermensch, Luckas-bot, Eamaral, Xqbot, RibotBOT, Michelmenega, TobeBot, Rjbot, Arthyole, Ci.cp, EmausBot,
JackieBot, ZroBot, Sygmn, Nelson Teixeira, Stuckkey, Antero de Quintal, Legobot, Luiz Vasconcelos Filho, Zicane, Mariama Seram,
Astrogildaadroalda e Annimo: 44
Autmato Fonte: http://pt.wikipedia.org/wiki/Aut%C3%B4mato%20%CF%89?oldid=34731615 Contribuidores: Cambraia, Zdtrlik,
KLBot2 e Mapmf
Autmato hbrido Fonte: http://pt.wikipedia.org/wiki/Aut%C3%B4mato%20h%C3%ADbrido?oldid=34731602 Contribuidores: Yanguas, Magioladitis, Reporter, So Silvestre, KLBot2 e Rui Fonte

8.6.2

Imagens

Ficheiro:Buchi_non_deterministic_example.svg
Fonte:
http://upload.wikimedia.org/wikipedia/commons/0/02/Buchi_non_
deterministic_example.svg Licena: CC BY 3.0 Contribuidores: Obra do prprio Artista original: Ashutosh y0078
Ficheiro:Commons-logo.svg Fonte: http://upload.wikimedia.org/wikipedia/commons/4/4a/Commons-logo.svg Licena: Public domain
Contribuidores: This version created by Pumbaa, using a proper partial circle and SVG geometry features. (Former versions used to be
slightly warped.) Artista original: SVG version was created by User:Grunt and cleaned up by 3247, based on the earlier PNG version,
created by Reidab.
Ficheiro:Computer.svg Fonte: http://upload.wikimedia.org/wikipedia/commons/d/d7/Computer.svg Licena: Public domain Contribuidores: The Tango! Desktop Project Artista original: The people from the Tango! project
Ficheiro:DFA_example_multiplies_of_3.svg
Fonte:
http://upload.wikimedia.org/wikipedia/commons/9/94/DFA_example_
multiplies_of_3.svg Licena: Public domain Contribuidores: Obra do prprio Artista original: Self-made
Ficheiro:DFAexample.svg Fonte: http://upload.wikimedia.org/wikipedia/commons/9/9d/DFAexample.svg Licena: Public domain
Contribuidores: Obra do prprio Artista original: Cepheus
Ficheiro:NFAexample.svg Fonte: http://upload.wikimedia.org/wikipedia/commons/0/0e/NFAexample.svg Licena: Public domain Contribuidores: Combination of en:Image:NFAexample.png and Image:DFAexample.svg Artista original: Interiot
Ficheiro:NoFonti.svg Fonte: http://upload.wikimedia.org/wikipedia/commons/b/b5/NoFonti.svg Licena: CC BY-SA 2.5 Contribuidores: Image:Emblem-important.svg Artista original: RaminusFalcon
Ficheiro:Pda-example.svg Fonte: http://upload.wikimedia.org/wikipedia/commons/3/3c/Pda-example.svg Licena: CC BY-SA 3.0
Contribuidores: Obra do prprio Artista original: Jochgem
Ficheiro:Pda-steps.svg Fonte: http://upload.wikimedia.org/wikipedia/commons/2/2e/Pda-steps.svg Licena: CC BY-SA 3.0 Contribuidores: Obra do prprio Artista original: Jochgem
Ficheiro:Pushdown-step.svg Fonte: http://upload.wikimedia.org/wikipedia/commons/c/c0/Pushdown-step.svg Licena: CC BY-SA 3.0
Contribuidores: Obra do prprio Artista original: Jochgem
Ficheiro:Turing_Machine.png Fonte: http://upload.wikimedia.org/wikipedia/commons/b/b7/Turing_Machine.png Licena: Public domain Contribuidores: ? Artista original: ?
Ficheiro:Wikitext.svg Fonte: http://upload.wikimedia.org/wikipedia/commons/c/ce/Wikitext.svg Licena: Public domain Contribuidores: Obra do prprio Artista original: Anomie

8.6.3

Licena

Creative Commons Attribution-Share Alike 3.0

Você também pode gostar