66
1 ACH2043 INTRODUÇÃO À TEORIA DA COMPUTAÇÃO Aula 3 Autômatos Finitos Determinísticos e Não Determinísticos Profa. Ariane Machado Lima

Aula 3 Autômatos Finitos Determinísticos e Não Determinísticos

  • Upload
    others

  • View
    8

  • Download
    0

Embed Size (px)

Citation preview

Page 1: Aula 3 Autômatos Finitos Determinísticos e Não Determinísticos

1

ACH2043INTRODUÇÃO À TEORIA DA COMPUTAÇÃO

Aula 3

Autômatos Finitos Determinísticose Não Determinísticos

Profa. Ariane Machado Lima

Page 2: Aula 3 Autômatos Finitos Determinísticos e Não Determinísticos

2

Autômatos Finitos Determinísticos (AFD)

Dado um estado atual e um símbolo de entrada sabemos exatamente para onde ir (está determinado)

Note que para um AFD deve haver, saindo de cada estado, uma aresta para CADA símbolo do alfabeto

Page 3: Aula 3 Autômatos Finitos Determinísticos e Não Determinísticos

3

Exercício das aulas 1 e 2 - AFD Imagine um site de e-commerce em que:

– Há uma página “Inicial” de entrada

– Várias páginas “Intermediárias”

– as 5 últimas páginas para finalizar a compra são:

– Carrinho (visualização do conteúdo selecionado para compra)

– Endereço (seleção do endereço de entrega)

– Frete (seleção do tipo de envio)

– Pagamento (seleção do tipo de pagamento e pagamento propriamento dito)

– Fim (tela do “Parabéns por ter comprado conosco”)

Poderíamos modelar AF para isso? Como seria o seu “esquema gráfico”?

Vamos experimentar desenhar no JFLAP

Page 4: Aula 3 Autômatos Finitos Determinísticos e Não Determinísticos

4

Exercício das aulas 1 e 2 - AFD Imagine um site de e-commerce em que:

– Há uma página “Inicial” de entrada

– Várias páginas “Intermediárias”

– as 5 últimas páginas para finalizar a compra são:

– Carrinho (visualização do conteúdo selecionado para compra)

– Endereço (seleção do endereço de entrega)

– Frete (seleção do tipo de envio)

– Pagamento (seleção do tipo de pagamento e pagamento propriamento dito)

– Fim (tela do “Parabéns por ter comprado conosco”)

Poderíamos modelar AF para isso? Como seria o seu “esquema gráfico”?

Vamos experimentar desenhar no JFLAP Q

Page 5: Aula 3 Autômatos Finitos Determinísticos e Não Determinísticos

5

Exercício das aulas 1 e 2 - AFD Imagine um site de e-commerce em que:

– Há uma página “Inicial” de entrada

– Várias páginas “Intermediárias”

– as 5 últimas páginas para finalizar a compra são:

– Carrinho (visualização do conteúdo selecionado para compra)

– Endereço (seleção do endereço de entrega)

– Frete (seleção do tipo de envio)

– Pagamento (seleção do tipo de pagamento e pagamento propriamento dito)

– Fim (tela do “Parabéns por ter comprado conosco”)

PodQ?eríamos modelar AF para isso? Como seria o seu “esquema gráfico”?

Vamos experimentar desenhar no JFLAP Q

Page 6: Aula 3 Autômatos Finitos Determinísticos e Não Determinísticos

6

Exercício das aulas 1 e 2 - AFD Imagine um site de e-commerce em que:

– Há uma página “Inicial” de entrada

– Várias páginas “Intermediárias”

– as 5 últimas páginas para finalizar a compra são:

– Carrinho (visualização do conteúdo selecionado para compra)

– Endereço (seleção do endereço de entrega)

– Frete (seleção do tipo de envio)

– Pagamento (seleção do tipo de pagamento e pagamento propriamento dito)

– Fim (tela do “Parabéns por ter comprado conosco”)

PodQ?eríamos modelar AF para isso? Como seria o seu “esquema gráfico”?

Vamos experimentar desenhar no JFLAP Qq0F

Page 7: Aula 3 Autômatos Finitos Determinísticos e Não Determinísticos

7

Exercício das aulas 1 e 2 - AFD Imagine um site de e-commerce em que:

– Há uma página “Inicial” de entrada

– Várias páginas “Intermediárias”

– as 5 últimas páginas para finalizar a compra são:

– Carrinho (visualização do conteúdo selecionado para compra)

– Endereço (seleção do endereço de entrega)

– Frete (seleção do tipo de envio)

– Pagamento (seleção do tipo de pagamento e pagamento propriamento dito)

– Fim (tela do “Parabéns por ter comprado conosco”)

PodQ?eríamos modelar AF para isso? Como seria o seu “esquema gráfico”?

Vamos experimentar desenhar no JFLAP Qq0F

Page 8: Aula 3 Autômatos Finitos Determinísticos e Não Determinísticos

8

Exercício das aulas 1 e 2 - AFD Imagine um site de e-commerce em que:

– Há uma página “Inicial” de entrada

– Várias páginas “Intermediárias”

– as 5 últimas páginas para finalizar a compra são:

– Carrinho (visualização do conteúdo selecionado para compra)

– Endereço (seleção do endereço de entrega)

– Frete (seleção do tipo de envio)

– Pagamento (seleção do tipo de pagamento e pagamento propriamento dito)

– Fim (tela do “Parabéns por ter comprado conosco”)

PodQ?eríamos modelar AF para isso? Como seria o seu “esquema gráfico”?

Vamos experimentar desenhar no JFLAP Qq0F

Page 9: Aula 3 Autômatos Finitos Determinísticos e Não Determinísticos

9

Exercício das aulas 1 e 2 - AFD

– O que seria Σ ?

Page 10: Aula 3 Autômatos Finitos Determinísticos e Não Determinísticos

10

Exercício das aulas 1 e 2 - AFD

– O que seria Σ ?

– Σ = {produto, home, carrinho, end, calcular_frete, pagar, ok}produto, home, carrinho, end, calcular_frete, pagar, ok}}

Page 11: Aula 3 Autômatos Finitos Determinísticos e Não Determinísticos

11

Exercício das aulas 1 e 2 - AFD

– O que seria Σ ?

– Σ = {produto, home, carrinho, end, calcular_frete, pagar, ok}produto, home, carrinho, end, calcular_frete, pagar, ok}}

Page 12: Aula 3 Autômatos Finitos Determinísticos e Não Determinísticos

12

Exercício das aulas 1 e 2 - AFD

– O que seria Σ ?

– Σ = {produto, home, carrinho, end, calcular_frete, pagar, ok}produto, home, carrinho, end, calcular_frete, pagar, ok}}

– δ está correta para um AFD?

Page 13: Aula 3 Autômatos Finitos Determinísticos e Não Determinísticos

13

Exercício das aulas 1 e 2 - AFD

– O que seria Σ ?

– Σ = {produto, home, carrinho, end, calcular_frete, pagar, ok}produto, home, carrinho, end, calcular_frete, pagar, ok}}

– δ está correta para um AFD?• Q x Σ está completamente definido?

Page 14: Aula 3 Autômatos Finitos Determinísticos e Não Determinísticos

14

Exercício das aulas 1 e 2 - AFD

– O que seria Σ ?

– Σ = {produto, home, carrinho, end, calcular_frete, pagar, ok}produto, home, carrinho, end, calcular_frete, pagar, ok}}

– δ está correta para um AFD?• Q x Σ está completamente definido? AINDA NÃO

• Preciso completar essa TABELA:

Page 15: Aula 3 Autômatos Finitos Determinísticos e Não Determinísticos

15

Exercício das aulas 1 e 2 - AFD

– O que seria Σ ?

– Σ = {produto, home, carrinho, end, calcular_frete, pagar, ok}produto, home, carrinho, end, calcular_frete, pagar, ok}}

– δ está correta para um AFD?• Q x Σ está completamente definido? AINDA NÃO

• Preciso completar essa TABELA:

?

Page 16: Aula 3 Autômatos Finitos Determinísticos e Não Determinísticos

16

Exercício das aulas 1 e 2 - AFD

– O que seria Σ ?

– Σ = {produto, home, carrinho, end, calcular_frete, pagar, ok}produto, home, carrinho, end, calcular_frete, pagar, ok}}

– δ está correta para um AFD?• Q x Σ está completamente definido? AINDA NÃO

• Preciso completar essa TABELA:

Inicial ?

Page 17: Aula 3 Autômatos Finitos Determinísticos e Não Determinísticos

17

Exercício das aulas 1 e 2 - AFD

– O que seria Σ ?

– Σ = {produto, home, carrinho, end, calcular_frete, pagar, ok}produto, home, carrinho, end, calcular_frete, pagar, ok}}

– δ está correta para um AFD?• Q x Σ está completamente definido? AINDA NÃO

• Preciso completar essa TABELA:

Inicial Intermediária ?

Page 18: Aula 3 Autômatos Finitos Determinísticos e Não Determinísticos

18

Exercício das aulas 1 e 2 - AFD

– O que seria Σ ?

– Σ = {produto, home, carrinho, end, calcular_frete, pagar, ok}produto, home, carrinho, end, calcular_frete, pagar, ok}}

– δ está correta para um AFD?• Q x Σ está completamente definido? AINDA NÃO

• Preciso completar essa TABELA:

Inicial Intermediária ?Carrinho

Page 19: Aula 3 Autômatos Finitos Determinísticos e Não Determinísticos

19

Exercício das aulas 1 e 2 - AFD

– O que seria Σ ?

– Σ = {produto, home, carrinho, end, calcular_frete, pagar, ok}produto, home, carrinho, end, calcular_frete, pagar, ok}}

– δ está correta para um AFD?• Q x Σ está completamente definido? AINDA NÃO

• Preciso completar essa TABELA:

Inicial Intermediária Inválido Inválido Inválido InválidoCarrinho

Page 20: Aula 3 Autômatos Finitos Determinísticos e Não Determinísticos

20

Inicial Intermediária Inválido Inválido Inválido InválidoCarrinho

Page 21: Aula 3 Autômatos Finitos Determinísticos e Não Determinísticos

21

Page 22: Aula 3 Autômatos Finitos Determinísticos e Não Determinísticos

22

Page 23: Aula 3 Autômatos Finitos Determinísticos e Não Determinísticos

23

Exercício aula 2 – slide 27 – ex 2 Descreva o diagrama de estados de um AFD que aceita cadeias binárias (compostas

por 0’s e 1’s) que comecem e terminem com zero, com tamanho pelo menos 1

0, 00, 010, 000000, 0101110, ...

Page 24: Aula 3 Autômatos Finitos Determinísticos e Não Determinísticos

24

Exercício aula 2 – slide 27 – ex 2 Descreva o diagrama de estados de um AFD que aceita cadeias binárias (compostas

por 0’s e 1’s) que comecem e terminem com zero, com tamanho pelo menos 1

0, 00, 010, 000000, 0101110, ...

Simulação no JFlap

Page 25: Aula 3 Autômatos Finitos Determinísticos e Não Determinísticos

25

Qual a complexidade (tempo) de análise de uma cadeia por um AFD?

Page 26: Aula 3 Autômatos Finitos Determinísticos e Não Determinísticos

26

Qual a complexidade (tempo) de análise de uma cadeia por um AFD?

O(n) – n sendo o tamanho da cadeia de entrada

Page 27: Aula 3 Autômatos Finitos Determinísticos e Não Determinísticos

27

Qual a complexidade (tempo) de análise de uma cadeia por um AFD?

O(n) – n sendo o tamanho da cadeia de entrada

Page 28: Aula 3 Autômatos Finitos Determinísticos e Não Determinísticos

28

Exercício

Projete um AFD (diagrama de estados) que, dado Σ = {produto, home, carrinho, end, calcular_frete, pagar, ok}0,1,2,<RESET>}, aceita a cadeia de entrada se a soma dos RESET>}, aceita a cadeia de entrada se a soma dos números for igual a 0 módulo 3 (ou seja, se a soma for um múltiplo de 3). <RESET>}, aceita a cadeia de entrada se a soma dos RESET> zera o contador. Cadeia vazia também é aceita.

Page 29: Aula 3 Autômatos Finitos Determinísticos e Não Determinísticos

29

Exercício - solução

Page 30: Aula 3 Autômatos Finitos Determinísticos e Não Determinísticos

30

Autômatos finitos Pode ser mais conveniente projetar o autômato usando a

definição formal ao invés do diagrama de estados

Ex: generalização do autômato anterior para aceitar somas múltiplas de i, mantendo o mesmo alfabeto (linguagem Ai)

Page 31: Aula 3 Autômatos Finitos Determinísticos e Não Determinísticos

31

Autômatos finitos Pode ser mais conveniente projetar o autômato usando a

definição formal ao invés do diagrama de estados

Ex: generalização do autômato anterior para aceitar somas múltiplas de i, mantendo o mesmo alfabeto (linguagem Ai)

Page 32: Aula 3 Autômatos Finitos Determinísticos e Não Determinísticos

32

Autômatos Finitos Não Determinísticos (AFN)

Um estado pode ter 0 ou mais transições (setas saindo) para cada símbolo de Σ

Um estado pode ter setas rotuladas por ε ou λ (string vazia)

Page 33: Aula 3 Autômatos Finitos Determinísticos e Não Determinísticos

33

Autômatos Finitos Não Determinísticos (AFN)

Um estado pode ter 0 ou mais transições (setas saindo) para cada símbolo de Σ

Um estado pode ter setas rotuladas por ε ou λ (string vazia)

Como ficaria a função de transição neste caso???

Page 34: Aula 3 Autômatos Finitos Determinísticos e Não Determinísticos

34

Autômatos Finitos Não Determinísticos (AFN)

Σε = Σ U {produto, home, carrinho, end, calcular_frete, pagar, ok}ε}

Conjunto potência

Page 35: Aula 3 Autômatos Finitos Determinísticos e Não Determinísticos

35

Autômatos Finitos Não Determinísticos (AFN)

Que linguagem este AFN reconhece?

Page 36: Aula 3 Autômatos Finitos Determinísticos e Não Determinísticos

36

Autômatos Finitos Não Determinísticos (AFN)

Que linguagem este AFN reconhece?

Sequências binárias que contenham 11 ou 101

Page 37: Aula 3 Autômatos Finitos Determinísticos e Não Determinísticos

37

AFN como fica a tabela da função de transição

Ø ØØØ

Ø Ø

Page 38: Aula 3 Autômatos Finitos Determinísticos e Não Determinísticos

38

AFN como fica a tabela da função de transição

Exercício: que linguagem esse AFN descreve?

Ø ØØØ

Ø Ø

Page 39: Aula 3 Autômatos Finitos Determinísticos e Não Determinísticos

39

Funcionamento de um AFN

Sempre que o autômato se depara com um não-determinismo (símbolo repetido ou ε) faz uma cópia de si (um clone), exatamente no ponto onde pausou, e cada cópia segue com uma alternativa, em paralelo, a partir daquele ponto.

Se alguma cópia aceitar a cadeia, então o AFN aceita a cadeia

As várias cópias são como várias threads ou processos executados em paralelo...

Page 40: Aula 3 Autômatos Finitos Determinísticos e Não Determinísticos

40

Por causa do ε

Árvore decomputações

Page 41: Aula 3 Autômatos Finitos Determinísticos e Não Determinísticos

41

Por causa do ε

Árvore decomputações

Page 42: Aula 3 Autômatos Finitos Determinísticos e Não Determinísticos

42

Árvore decomputações

Page 43: Aula 3 Autômatos Finitos Determinísticos e Não Determinísticos

43

Por causa do ε

Árvore decomputações

Page 44: Aula 3 Autômatos Finitos Determinísticos e Não Determinísticos

44

Por causa do ε Como q2 tem uma transição no vazio,assim que ele é alcançado a transiçãoé feita sem consumir nenhum símbolo da entrada.

Note que é possível sair de q1 e ir paraq3, passando por q2, consumindo apenas o símbolo “1” da entrada. Mas, devido à restrição da função de transição δ(q2,1) = Ø, issosó pode ser feito se a transição no vazio for feita assim que o estado q2 for alcançado (δ(q2,ε) = {produto, home, carrinho, end, calcular_frete, pagar, ok}q3})

Page 45: Aula 3 Autômatos Finitos Determinísticos e Não Determinísticos

45

Por causa do ε

Árvore decomputações

Page 46: Aula 3 Autômatos Finitos Determinísticos e Não Determinísticos

46

Por causa do ε

Árvore decomputações

Page 47: Aula 3 Autômatos Finitos Determinísticos e Não Determinísticos

47

Por causa do ε

Árvore decomputações

Page 48: Aula 3 Autômatos Finitos Determinísticos e Não Determinísticos

48

Por causa do ε

Árvore decomputações

Page 49: Aula 3 Autômatos Finitos Determinísticos e Não Determinísticos

49

Por causa do ε

Árvore decomputações

Page 50: Aula 3 Autômatos Finitos Determinísticos e Não Determinísticos

50

Por causa do ε

Árvore decomputações

Page 51: Aula 3 Autômatos Finitos Determinísticos e Não Determinísticos

51

Por causa do ε

Árvore decomputações

Page 52: Aula 3 Autômatos Finitos Determinísticos e Não Determinísticos

52

Por causa do ε

Árvore decomputações

Page 53: Aula 3 Autômatos Finitos Determinísticos e Não Determinísticos

53

Por causa do ε

Árvore decomputações

Page 54: Aula 3 Autômatos Finitos Determinísticos e Não Determinísticos

54

Por causa do ε

Árvore decomputações

Page 55: Aula 3 Autômatos Finitos Determinísticos e Não Determinísticos

55

Por causa do ε

Árvore decomputações

Page 56: Aula 3 Autômatos Finitos Determinísticos e Não Determinísticos

56

Por causa do ε

Exercício: façam no papel e no JFlap a simulação para a entrada 1111

Page 57: Aula 3 Autômatos Finitos Determinísticos e Não Determinísticos

57

Logo, quem são mais eficientes? (em termos de tempo...)

Page 58: Aula 3 Autômatos Finitos Determinísticos e Não Determinísticos

58

Qual a complexidade (tempo) de análise de uma cadeia por um AFN?

Page 59: Aula 3 Autômatos Finitos Determinísticos e Não Determinísticos

59

Por causa do ε

O(n * |Q|)

Cada “nó” dessa árvore poderia ter no máximo |Q| filhos, e poderíamos descartar nós repetidos em um mesmo nível

Qual a complexidade (tempo) de análise de uma cadeia por um AFN?

Page 60: Aula 3 Autômatos Finitos Determinísticos e Não Determinísticos

60

Logo, quem são mais eficientes? (em termos de tempo...)

AFD’s são mais eficientes que AFN’s (tempo)

Page 61: Aula 3 Autômatos Finitos Determinísticos e Não Determinísticos

61

Exercício

Desenhe um AFN para a linguagem formada por sequências formadas apenas por zeros, mas que contenham o nr de zeros sendo um múltiplo de 2 ou múltiplo de 3

Page 62: Aula 3 Autômatos Finitos Determinísticos e Não Determinísticos

62

Exercício

Desenhe um AFN para a linguagem formada por sequências formadas apenas por zeros, mas que contenham o nr de zeros sendo um múltiplo de 2 ou múltiplo de 3

Page 63: Aula 3 Autômatos Finitos Determinísticos e Não Determinísticos

63

Exercício - Resposta

L = ?

Page 64: Aula 3 Autômatos Finitos Determinísticos e Não Determinísticos

64

Exercício - Resposta

L = {produto, home, carrinho, end, calcular_frete, pagar, ok} w | w є 0* e |w| = 2*i, i = 0, 1, …} U {produto, home, carrinho, end, calcular_frete, pagar, ok} w | w є 0* e |w| = 3*i, i = 0, 1, …}

Page 65: Aula 3 Autômatos Finitos Determinísticos e Não Determinísticos

65

Exercício

Desenhe um AFN para a linguagem formada por sequências binárias que contenham 1 na antepenúltima posição

Resolução no primeiro vídeo da aula 4

Page 66: Aula 3 Autômatos Finitos Determinísticos e Não Determinísticos

66

Lista de Exercícios do Sipser (2a ed)

Exercícios 1.1, 1.2, 1.3, 1.6 e 1.7

No 1.7:

* : 0 ou mais vezes

+ : 1 ou mais vezes

Ex: 1*(001+)*