A apresentação está carregando. Por favor, espere

A apresentação está carregando. Por favor, espere

Informática Teórica Engenharia da Computação. Autômatos Finitos É um dos modelos computacionais que estudaremos. É um dos modelos computacionais que estudaremos.

Apresentações semelhantes


Apresentação em tema: "Informática Teórica Engenharia da Computação. Autômatos Finitos É um dos modelos computacionais que estudaremos. É um dos modelos computacionais que estudaremos."— Transcrição da apresentação:

1 Informática Teórica Engenharia da Computação

2 Autômatos Finitos É um dos modelos computacionais que estudaremos. É um dos modelos computacionais que estudaremos. Porém com uma quantidade extremamente limitada de memória. Porém com uma quantidade extremamente limitada de memória. O que um computador pode fazer com uma memória tão pequena? O que um computador pode fazer com uma memória tão pequena? Na verdade, interagimos com tais computadores o tempo todo, pois eles residem no coração de vários dispositivos eletromecânicos. Na verdade, interagimos com tais computadores o tempo todo, pois eles residem no coração de vários dispositivos eletromecânicos.

3 Autômatos Finitos O controlador para uma porta automática é um exemplo de tal dispositivo. O controlador para uma porta automática é um exemplo de tal dispositivo. As lavadoras de louça/roupa, termômetros eletrônicos, relógios digitais, calculadoras e máquinas de venda automática.... As lavadoras de louça/roupa, termômetros eletrônicos, relógios digitais, calculadoras e máquinas de venda automática.... Os autômatos também são chamados de máquinas de estados finitos. Os autômatos também são chamados de máquinas de estados finitos.

4 Autômatos Finitos: exemplo Controlador para uma porta automática de entrada EstadoNenhumFrenteAtrásAmbos Fechado AbertoFechado AbertoFechadoAberto Sinal de entrada Esse controlador é um computador com apenas 1 bit de memória, capaz de registrar em quais dos dois estados o controlador está.

5 Autômatos Finitos Ao começar a descrever a teoria matemática de autômatos finitos, fazemos isso no nível abstrato, sem referˆência a qualquer aplicação específica. Ao começar a descrever a teoria matemática de autômatos finitos, fazemos isso no nível abstrato, sem referˆência a qualquer aplicação específica. A seguir vamos ver alguns exemplos usando um diagrama de estados e identificar os conceitos de: estado inicial, estado de aceitação ou final, transição. A seguir vamos ver alguns exemplos usando um diagrama de estados e identificar os conceitos de: estado inicial, estado de aceitação ou final, transição.

6 Autômatos Finitos Uma máquina M 1 que recebe cadeias de bits como entrada e aceita somente aquelas que começam com um ou mais zeros seguidos de um ou mais 1s apenas. Uma máquina M 1 que recebe cadeias de bits como entrada e aceita somente aquelas que começam com um ou mais zeros seguidos de um ou mais 1s apenas.

7 Autômatos Finitos O autômato recebe os símbolos da cadeia de entrada um por um da esquerda para a direita. O autômato recebe os símbolos da cadeia de entrada um por um da esquerda para a direita. Após ler cada símbolo, M 1 move de um estado para outro ao longo da transição que tem aquele símbolo como seu rótulo. Após ler cada símbolo, M 1 move de um estado para outro ao longo da transição que tem aquele símbolo como seu rótulo. Quando ele lê o último símbolo, M 1 produz sua saída. Quando ele lê o último símbolo, M 1 produz sua saída. A saída é aceite se M 1 está agora no estado de aceitação e rejeite se ele não está. A saída é aceite se M 1 está agora no estado de aceitação e rejeite se ele não está.

8 Autômatos Finitos Um AF M 2 que recebe cadeias de bits e aceita aquelas que possuem 10 como subcadeia Um AF M 2 que recebe cadeias de bits e aceita aquelas que possuem 10 como subcadeia

9 Autômatos Finitos q0q0 q1q1 q3q ,1 M2M2

10 Autômatos Finitos M 3 M 3 q0q0 q1q L(M 3 )={w | w termina em 1}

11 Autômatos Finitos M 4 M L(M 4 )={w | w é a cadeia vazia ou termina em 0} q0q0 q1q1 1

12 Autômatos Finitos M5M5M5M5 q0q0 q2q2 q1q1 q3q3 a b b b a a b L(M 5 )={w | w é uma cadeia sobre o alfabeto {a,b} e começa e termina com o mesmo símbolo} q4q4 a b a

13 Autômatos Finitos q0q0 q2q2 q1q1 q3q3 a b b b a a a,b Os estados q 1 e q 2 servem para memorizar o símbolo anterior. Esse AF aceita as cadeias sobre o alfabeto {a,b} que possuem aa ou bb como subcadeias.

14 Autômatos Finitos q0q0 q1q1 q3q ,0 Esse AF aceita qualquer cadeia binárias que termina com o símbolo 1 ou que termina com um número par de 0s seguindo o último 1.

15 Autômatos Finitos Descrição Formal A definição formal define precisamente as partes de um autômato finito: A definição formal define precisamente as partes de um autômato finito: conjunto de estados, conjunto de estados, alfabeto de entrada, alfabeto de entrada, regras para movimentação, regras para movimentação, estado inicial estado inicial e estados de aceitação˜. e estados de aceitação˜. Em linguagem matemática, uma lista de cinco elementos é frequentemente chamada 5-upla. Em linguagem matemática, uma lista de cinco elementos é frequentemente chamada 5-upla.

16 Definição Formal Um autômato finito é uma 5-upla (Q,,, q 0, F), onde Um autômato finito é uma 5-upla (Q,,, q 0, F), onde 1. Q é um conjunto finito denominado os estados, 1. Q é um conjunto finito denominado os estados, 2. é um conjunto finito denominado alfabeto, 2. é um conjunto finito denominado alfabeto, 3. : Q Q é a função de transição, 3. : Q Q é a função de transição, 4. q 0 Q é o estado inicial, e 4. q 0 Q é o estado inicial, e 5. F Q é o conjunto de estados de aceitação (ou finais). 5. F Q é o conjunto de estados de aceitação (ou finais).

17 Autômatos Finitos Definição formal Se A é o conjunto de todas as cadeias que a máquina M aceita, dizemos que A é a linguagem da máquina M e escrevemos L(M) = A. Se A é o conjunto de todas as cadeias que a máquina M aceita, dizemos que A é a linguagem da máquina M e escrevemos L(M) = A. Dizemos que M reconhece A ou que M aceita as cadeias de A. Dizemos que M reconhece A ou que M aceita as cadeias de A. Agora, vamos definir formalmente os AFs dos exemplos anteriores. Agora, vamos definir formalmente os AFs dos exemplos anteriores.

18 Autômatos Finitos M 3 M 3 q0q0 q1q L(M 3 )={w | w termina em 1} Na descrição formal, M 3 ={{q 0,q 1 }, {0,1},,q 0,{q 1 }}. Definimos.

19 Autômatos Finitos M 4 M L(M 4 )={w | w é a cadeia vazia ou termina em 0} Note que, em razão do estado inicial também ser um estado de aceitação, M 4 aceita a cadeia vazia. q0q0 q1q1 1

20 Autômatos Finitos M5M5M5M5 q0q0 q2q2 q1q1 q3q3 a b b b a a b L(M 5 )={w | w começa e termina no mesmo símbolo} q4q4 a b a

21 Definição Formal de computação Seja M= (Q,,, q 0, F) um autômato finito e suponha que w = w 1 w 2...w n seja uma cadeia onde cada w i é um membro do alfabeto. Seja M= (Q,,, q 0, F) um autômato finito e suponha que w = w 1 w 2...w n seja uma cadeia onde cada w i é um membro do alfabeto. M aceita w se uma sequência de estados r 0, r 1...r n em Q existe com três condições: M aceita w se uma sequência de estados r 0, r 1...r n em Q existe com três condições: 1. r 0 = q 0, 2. (r i,w i+1 ) = r i+1, para i = 0,...,n-1; e 3. r n F. Dizemos que M reconhece a linguagem A se A = {w | M aceita w}.

22 Definição Linguagem Regular Uma linguagem é chamada de uma linguagem regular se algum autômato finito a reconhece. Uma linguagem é chamada de uma linguagem regular se algum autômato finito a reconhece.

23 Projetando Autômatos Finitos Suponha que lhe é dada alguma linguagem e você deseja projetar um AF que a reconheça. Suponha que lhe é dada alguma linguagem e você deseja projetar um AF que a reconheça. Faça de conta que você é o autômato. Você recebe uma cadeia de entrada e tem que determinar se ela é um membro da linguagem que o AF é suposto reconhecer. Faça de conta que você é o autômato. Você recebe uma cadeia de entrada e tem que determinar se ela é um membro da linguagem que o AF é suposto reconhecer. Você vai vendo os símbolos na cadeia um por um. Depois de cada símbolo você tem que decidir se a cadeia vista até então está na linguagem. A razão é que você, como a máquina, não sabe quando o final da cadeia está vindo, portanto você tem que estar sempre pronto com a resposta. Você vai vendo os símbolos na cadeia um por um. Depois de cada símbolo você tem que decidir se a cadeia vista até então está na linguagem. A razão é que você, como a máquina, não sabe quando o final da cadeia está vindo, portanto você tem que estar sempre pronto com a resposta.

24 Projetando Autômatos Finitos: Exemplo Suponha que alfabeto seja {0,1} e que a linguagem consista de todas as cadeias com um número ímpar de 1s. Suponha que alfabeto seja {0,1} e que a linguagem consista de todas as cadeias com um número ímpar de 1s. Faça de conta que você é o autômato M, que reconhece essa linguagem. Você recebe uma cadeia de entrada de 0s e 1s. Faça de conta que você é o autômato M, que reconhece essa linguagem. Você recebe uma cadeia de entrada de 0s e 1s. Você precisa lembrar a cadeia inteira vista até então para determinar se o número de 1s é ímpar? Você precisa lembrar a cadeia inteira vista até então para determinar se o número de 1s é ímpar?

25 Projetando Autômatos Finitos: Exemplo Basta lembrar se o número de 1s visto até então é par ou ímpar e manter essa informação à medida que lê novos símbolos. Basta lembrar se o número de 1s visto até então é par ou ímpar e manter essa informação à medida que lê novos símbolos. Você representa essa informação como uma lista finita de possibilidades: Você representa essa informação como uma lista finita de possibilidades: 1. par até agora, e 2. ímpar até agora.

26 Projetando Autômatos Finitos: Exemplo Aí então você atribui um estado a cada uma das possibilidades: Aí então você atribui um estado a cada uma das possibilidades: 0 q par q ímpar 1 1 0

27 Projetando Autômatos Finitos: Outro exemplo Para reconhecer a linguagem de todas as cadeias binárias que contem 001 como uma subcadeia. Para reconhecer a linguagem de todas as cadeias binárias que contem 001 como uma subcadeia. Você inicialmente saltaria sobre todos os 1s. Você inicialmente saltaria sobre todos os 1s. Se você chegar num 0, então você pode ter acabado de ver o primeiro dos três símbolos no padrão 001 Se você chegar num 0, então você pode ter acabado de ver o primeiro dos três símbolos no padrão 001 Se nesse ponto você vê um 1, houve muito poucos 0s, portanto você volta a saltar sobre 1s. Mas, se você vê um 0 nesse ponto, você deve lembrar que você acabou de ver dois símbolos do padrão. Se nesse ponto você vê um 1, houve muito poucos 0s, portanto você volta a saltar sobre 1s. Mas, se você vê um 0 nesse ponto, você deve lembrar que você acabou de ver dois símbolos do padrão. Agora você precisa encontrar um 1. Agora você precisa encontrar um 1. Se você o encontrar, logo você conseguiu achar o padrão. Continue lendo a cadeia de entrada até que o final. Se você o encontrar, logo você conseguiu achar o padrão. Continue lendo a cadeia de entrada até que o final.

28 Projetando Autômatos Finitos: Outro exemplo Portanto, existem 4 possibilidades: Portanto, existem 4 possibilidades: 1. não tem visto quaisquer símbolos do padrão, 2. acaba de ver um 0, 3. acaba de ver 00, ou 4. acaba de ver o padrão inteiro 001. q q0q q 00 q ,1 0 0

29 PARA FIXAR Fazer o exercício 1.6 Fazer o exercício 1.6


Carregar ppt "Informática Teórica Engenharia da Computação. Autômatos Finitos É um dos modelos computacionais que estudaremos. É um dos modelos computacionais que estudaremos."

Apresentações semelhantes


Anúncios Google