• Nenhum resultado encontrado

Linguagens Formais e Autômatos

N/A
N/A
Protected

Academic year: 2019

Share "Linguagens Formais e Autômatos"

Copied!
36
0
0

Texto

(1)

DCC013

Linguagens Formais

e Autômatos

(2)

 Tipos de Gramáticas – segundo a hierarquia de

Chomsky existem quatro tipos:

 Tipo 0 ou Irrestritas:

◼ P = { → | (NT)+, (NT)* }

 Tipo 1 ou Sensível ao Contexto

◼ P = { → | ||||, (NT)+, (NT)+}.Exceto S→

 Tipo 2 ou Livre de Contexto

◼ P = { A→ | AN, (NT)+}. Exceto S→

Tipo 3 ou Regular

◼ A→aB ou A→Ba ou A→a, ou seja:

◼ P = { A→aX ou A → Xa | AN, aT, XN{}}

Linguagens Regulares - Preliminares

(3)

 Tipo 3  Tipo 2  Tipo 1  Tipo 0  T+

(GR) (GLC) (GSC) (GI)

Linguagens Regulares - Preliminares

3

 Esquematicamente:

Regulares(3)

Livres de Contexto(2)

(4)

 Exemplo

G = ({S, A, B}, {a, b}, P, S), onde P = { S → aB | bA

A → a | aS | bAA

B → b | bS | aBB }

1) Qual o tipo de G? 2) L(G)?

Linguagens Regulares - Preliminares

4

Livre de contexto;

(5)

 Exemplo

G = ({S, B}, {a, b}, P, S), onde P = { S → aS | bB | a | b

B → bB | b }

1) Qual o tipo de G? 2) L(G)?

Linguagens Regulares - Preliminares

5

Regular

(6)

 Exemplos (L(G) = {w|w{a,b}*, |w| mod 2 = 1})

1) Qual o tipo de G1? 2) Qual o tipo de G2? 3) Qual o tipo de G3?

Linguagens Regulares - Preliminares

6

GLC(2)

G2

S → aSa | aSb | bSa | bSb | a | b G1

S → SSS | a | b

G3

S → aA | bA | a | b A → aS | bS

4) Como L(G)=L(G1)=L(G2)=L(G3), qual é tipo de L(G)?

GLC(2) GR(3)

(7)

 O autômato finito (AF) é uma máquina abstrata

que reconhece linguagens regulares;

 Modelo matemático com entradas e saídas. Se é

fornecido ao AF uma sequência de símbolos como entrada, ele responderá se esta sequência pertence a linguagem ou não;

 O AF pode assumir um número finito de estados;

 Um estado resume os estados anteriores pelos

quais passou e os símbolos que já foram lidos na entrada.

Linguagens Regulares

Gramáticas

Regulares e Autômatos Finitos

(8)

 Um autômato finito, pode ser vista como uma

máquina composta basicamente por três partes:

Fita: Dispositivo de entrada que contém a

informação a ser processada. A fita é finita à esquerda e à direita;

Unidade de Controle: Reflete o estado corrente da

máquina. Possui uma unidade de leitura (cabeça de leitura), que acessa uma unidade da fita de cada vez. Após cada leitura a cabeça move-se uma célula para a direita;

Programa ou Função de Transição: Função que

comanda as leituras e define o estado da máquina.

Linguagens Regulares

Gramáticas

Regulares e Autômatos Finitos

(9)

 Autômato Finito como uma máquina com

controle finito (fita, controle e função de transição):

Linguagens Regulares

Gramáticas

Regulares e Autômatos Finitos

9

Fita

a a b c c b a a

q

Controle

Cabeçote de leitura

Estado corrente

(10)

 Def. formal de autômato finito determinístico

(AFD). Um AFD é um quíntupla (, Q, , q0, F):

 Q  : conjunto finito de estados

 : alfabeto de entrada (simplesmente alfabeto)  q0  Q: estado inicial

 F  Q: conjunto de estados finais

  : função de transições,  :Q → Q

Linguagens Regulares

Gramáticas

Regulares e Autômatos Finitos

(11)

 A função programa de um AFD pode ser

representada como um grafo orientado finito

Linguagens Regulares

Gramáticas

Regulares e Autômatos Finitos

11

Uma transição

Estado inicial Estado final

p q

Estado anterior

Novo estado

a

q0

qf

(12)

 Exemplo: autômato finito determinístico

M1 = ({a, b}, {q0, q1, q2, qf}, 1, q0, {qf})

 L(M1) = {w | w possui aa ou bb como

subpalavra}

Linguagens Regulares

Gramáticas

Regulares e Autômatos Finitos

12

1 a b

* q0 q1 q2 qf q1 qf q1 qf q2 q2 qf qf

q1 b q2

(13)

 Exemplo: M2 = ({0, 1}, { q1, q2, q3}, 2, q1, {q2}).

 L(M2) = {w | w contém pelo menos um 1 e um

número par de 0s segue o último 1}

Linguagens Regulares

Gramáticas

Regulares e Autômatos Finitos

13

2 0 1

q1 q2 q3

q1 q3 q2

q2 q2

* q1

1

0

0 1

0

q2 q3

(14)

 Exemplo: M3 = ({0, 1}, { q1, q2}, 3, q1, {q2})

 L(M3) = {w | w termina com um 1}

Linguagens Regulares

Gramáticas

Regulares e Autômatos Finitos

14

3 0 1

q1 q2

q1 q1

q2 q2 *

3

q1

0

0 1

(15)

 Exemplo: M4 = ({a, b}, {s, q1, q2, r1, r2}, 4, s, {r1,

q1})

 L(M4) = {w | w começa e termina com o mesmo

símbolo}

Linguagens Regulares

Gramáticas

Regulares e Autômatos Finitos

15

q2

b

b a

a

4 s

r1 q1

r2

a a b b

(16)

 Exemplo: N = ({a, b}, {q0, q1, q2}, , q0, {q2})

 Transições: (q0, a) = q1,

(q1, a) = q1,

(q1, b) = q2.

 Logo, L(N) = {anb | n1}

Linguagens Regulares

Gramáticas

Regulares e Autômatos Finitos

16

q0

a

a b

q2 q1

(17)

 Exemplo: Que linguagem aceita A2?

Linguagens Regulares

Gramáticas

Regulares e Autômatos Finitos

17

A2

q2

1

0 0

1

q1

q0

q3

0 0

(18)

 Exemplo: Que linguagem aceita A3?

Linguagens Regulares

Gramáticas

Regulares e Autômatos Finitos

18

q0 0

1 1

q3 q2

A3

q1 1

0

0

(19)

 Definição Formal de Computação:

Sejam 𝐴 = 𝑄, , 𝛿, 𝑞0, 𝐹 um AFD e 𝑤 = 𝑤1𝑤2𝑤3 … 𝑤𝑛 uma palavra sobre .

Dizemos que A aceita 𝑤 se existe uma sequência de estados de

𝑄, 𝑟 = 𝑟0, 𝑟1, … , 𝑟𝑛, tal que:

1. 𝑟0 = 𝑞0; e

2. 𝛿 𝑟𝑖, 𝑤𝑖+1 = 𝑟𝑖+1 para todo 0 ≤ 𝑖 ≤ 𝑛 − 1; e 3. 𝑟𝑛 ∈ 𝐹.

 A sequência 𝑟 é chamada de trajetória de 𝐴 sobre

𝑤. Ou computação de 𝑤 sobre A.

 A linguagem aceita por um AFD A é

◼ 𝐿 𝐴 = 𝑤|𝐴 aceita 𝑤

Linguagens Regulares

Gramáticas

Regulares e Autômatos Finitos

(20)

 Extensão da função  para o domínio 𝑄 × Σ∗

1. መ𝛿 𝑞, 𝜀 = 𝑞;

2. መ𝛿 𝑞, 𝑎𝑢 = መ𝛿 𝛿 𝑞, 𝑎 , 𝑢 para 𝑎 ∈ Σ e 𝑢 ∈ Σ∗.

 መ𝛿 𝑞, 𝑢 = 𝑝 significa que M, iniciando no estado 𝑞, e

tendo a sequência 𝑢 na fita de entrada, entrará no estado 𝑝, após o cabeçote mover-se para a direita

𝑢 células;

 Uma sentença é aceita por 𝑀 se መ𝛿 𝑞0, 𝑢 = 𝑝 para

algum 𝑝 ∈ 𝐹, ou seja

𝐿 𝑀 = 𝑢| መ𝛿 𝑞0, 𝑢 = 𝑝 ∈ 𝐹

Linguagens Regulares

Gramáticas

Regulares e Autômatos Finitos

(21)

 Exemplo: Seja 𝐴2 = 𝑄, Σ, 𝛿, 𝑞0, 𝐹 , onde:

Q = 𝑞0, 𝑞1, 𝑞2, 𝑞3 , Σ = 0,1 , F = 𝑞0 𝛿 𝑞0, 0 = 𝑞2

𝛿 𝑞1, 0 = 𝑞3 𝛿 𝑞2, 0 = 𝑞0 𝛿 𝑞3, 0 = 𝑞1 𝛿 𝑞0, 1 = 𝑞1 𝛿 𝑞1, 1 = 𝑞0 𝛿 𝑞2, 1 = 𝑞3 𝛿 𝑞3, 1 = 𝑞2

Linguagens Regulares

Gramáticas

Regulares e Autômatos Finitos

(22)

 Exemplo: Reconhecimento da cadeia 𝑤

Linguagens Regulares

Gramáticas

Regulares e Autômatos Finitos

22

𝑤 = 110101

መ𝛿 𝑞0, 𝟏10101 ⊢ መ𝛿 𝛿 𝑞0, 1 , 10101 ⊢ መ𝛿 𝑞1, 𝟏0101 ⊢ መ𝛿 𝛿 𝑞1, 1 , 0101 ⊢ መ𝛿 𝑞0, 𝟎101 ⊢ መ𝛿 𝛿 𝑞0, 0 , 101 ⊢ መ𝛿 𝑞2, 𝟏01 ⊢ መ𝛿 𝛿 𝑞2, 1 , 01 ⊢ መ𝛿 𝑞3, 𝟎1 ⊢ መ𝛿 𝛿 𝑞3, 0 , 1 ⊢ መ𝛿 𝑞1, 𝟏 ⊢ መ𝛿 𝛿 𝑞1, 1 , 𝜀 ⊢ መ𝛿 𝑞0, 𝜀 ⊢ 𝑞0

(23)

 Exemplo: Reconhecimento da cadeia 𝑤

Linguagens Regulares

Gramáticas

Regulares e Autômatos Finitos

23

𝑤 = 1011

መ𝛿 𝑞0, 1011 ⊢ መ𝛿 𝛿 𝑞0, 1 , 011 ⊢ መ𝛿 𝑞1, 011 ⊢ መ𝛿 𝛿 𝑞1, 0 , 11 ⊢ መ𝛿 𝑞3, 11 ⊢ መ𝛿 𝛿 𝑞3, 1 , 1 ⊢ መ𝛿 𝑞2, 1 ⊢ መ𝛿 𝛿 𝑞2, 1 , 𝜀 ⊢ መ𝛿 𝑞3, 𝜀 ⊢ 𝑞3

(24)

 Discussão: o que é Determinismo?

Linguagens Regulares

Gramáticas

Regulares e Autômatos Finitos

24

4 2 1

0

3 0

1 1

1

1 0

0

Para todo AFD A e para

toda palavra 𝑤 ∈ Σ∗ ,

(25)

Definição: Linguagens Regulares ou do Tipo

3.

 Uma linguagem aceita por um autômato finito é

uma Linguagem Regular ou do Tipo 3.

Exercício. Desenvolver AFDs que reconheçam

as seguintes linguagens sobre  = {a, b}:

1.{w | termina com aa}

2.{w | w possui aaa como subpalavra}

3.{w | w possui um número ímpar de a e b}

4.{w | w possui número par de a e ímpar de b ou vice-versa}

5.{w | o quinto símbolo da esquerda para a direita de w é a}

Linguagens Regulares

Gramáticas

Regulares e Autômatos Finitos

(26)

Exercício. Desenvolver AFDs que reconheçam as

seguintes linguagens sobre  = {a, b}:

6.{w | w possui aa ou bb como subpalavra}

7.{w | w não contém dois ou mais 1’s consecutivos}

8.{w | |w| mod 3 = 0}

 Desenvolver AFDs para as linguagens:

1.Identificadores de linguagens de programação

2.Inteiros com ou sem sinal (+ ou -)

3.Reais com ou sem sinal (+ ou -). Pode haver ou não

dígitos após a , (vírgula). Ex: 45; 58,6; -54.; +.859

Linguagens Regulares

Gramáticas

Regulares e Autômatos Finitos

(27)

Autômato Finito Não-Determinístico (AFND ou AFN)

 Não-determinismo é uma importante

generalização dos AF’s, essencial para a teoria da computação e para a teoria das linguagens formais.

 Qualquer AFND pode ser simulado por um

autômato finito determinístico

 Em AFNDs, a função programa leva de um par

(estado, símbolo) a um conjunto de estados possíveis.

Linguagens Regulares

Gramáticas

Regulares e Autômatos Finitos

(28)

Autômato Finito Não-Determinístico

 Pode-se entender que o AFN assume

simultaneamente todas as alternativas de estados possíveis {p1, p2, ..., pn} a partir do estado atual q  Q e do símbolo recebido a

 

;

Linguagens Regulares

Gramáticas

Regulares e Autômatos Finitos

28

Exemplo de transições não determinística

q

p2 pn

a

p1

a a

(29)

Def.: Autômato Finito Não-Determinístico.

 Um AFN é uma quíntupla

𝑀 = Σ, 𝑄, 𝛿, 𝑞0, 𝐹 , onde:  Σ : alfabeto de símbolos de entrada;

 𝑄 ≠ ∅ : conjunto finito de estados;

 𝛿 : função programa ou função de transição

𝛿: 𝑄 × Σ → 2 𝑄

 𝑞0 ∈ 𝑄: estado inicial;

 𝐹 ⊂ 𝑄 - conjunto de estados finais.

Linguagens Regulares

Gramáticas

Regulares e Autômatos Finitos

(30)

Autômato Finito Não-Determinístico

 Portanto, os componentes do AFND são os

mesmos do AFD, com exceção da função programa:

Linguagens Regulares

Gramáticas

Regulares e Autômatos Finitos

30

p

p

2

p

n

a

p

1

a

a

(31)

Autômato Finito Não-Determinístico

 Exemplo: AFND M5 = ({a, b}, {q0, q1, q2, qf}, 5, q0,

{qf}):

 M5 reconhece a linguagem L(M5) = {w | w possui

aa ou bb como sub-palavra}

Linguagens Regulares

Gramáticas

Regulares e Autômatos Finitos

31

5 a b

q0 q1 q2 qf

{q0, q1} {qf}

-{qf}

{q0, q2} -{qf} {qf}

*

M5 q1 q2

(32)

Autômato Finito Não-Determinístico

 Exemplo: AFN

𝑀6 = 𝑎, 𝑏 , 𝑞0, 𝑞1, 𝑞2, 𝑞𝑓 , 𝛿6, 𝑞0, 𝑞𝑓 :

 M6 reconhece a linguagem :

𝐿 𝑀6 = 𝑤𝑎𝑎𝑎|𝑤 ∈ 𝑎, 𝑏 ∗

𝐿 𝑀6 = 𝑤|𝑤 ∈ 𝑎, 𝑏 ∗ e 𝑤 termina com 𝑎𝑎𝑎

Linguagens Regulares

Gramáticas

Regulares e Autômatos Finitos

32

q0

a a

qf q1

M6

q2 a

(33)

Autômato Finito Não-Determinístico

 Exemplo: AFN M7 = ({a, b}, {q0, q1, qf}, 7, q0,

{qf}):

M7 reconhece a linguagem :

𝐿 𝑀7 = 𝑢𝑎𝑎𝑤|𝑢, 𝑤 ∈ 𝑎, 𝑏 ∗

Linguagens Regulares

Gramáticas

Regulares e Autômatos Finitos

33

M7 q0

a a

qf q1

a b

a

(34)

Autômato Finito Não-Determinístico

 Não determinismo:

Linguagens Regulares

Gramáticas

Regulares e Autômatos Finitos

34

q0 início

a ---q0 b ---a ---a ---b ---a ---X X q1 q0

q0 q1

q0 q1 qf

q0 qf

q0 qf

X Aceita q0 a a qf q1 a b a b

M7 :

X = Rejeita

computação de M7

sobre a entrada

(35)

Autômato Finito Não-Determinístico

 Não determinismo: computação de M7 sobre a

entrada ababb:

Linguagens Regulares

Gramáticas

Regulares e Autômatos Finitos

35

q0 início

a ---q0 b ---a ---b ---b ---X q1 q0

q0 q1 q0 q0 X q0 a a qf q1 a b a b

M7 :

X

(36)

 No não determinismo:

 para rejeitar uma cadeia de entrada – em uma

computação – todas as trajetórias devem ser rejeitadas.

 para aceitar uma cadeia de entrada – em uma

computação – basta apenas uma trajetória que a aceita.

Aceitar: consome toda a cadeia de entrada e para

num estado final;

Rejeitar: consome toda a cadeia de entrada e para

num estado não final; ou a cadeia não é consumida (sem transição para uma entrada).

Linguagens Regulares

Gramáticas

Regulares e Autômatos Finitos

Referências

Documentos relacionados

O objetivo deste texto é descrever a experiência da Superintendência de Distribuição Leste da CEMIG com a automação das subestações do sistema elétrico de

A pesquisa foi desenvolvida na Universidade Federal de Uberlândia – Campus Monte Carmelo, com o objetivo de compreender como ocorre o processo de adaptação ao ensino

 Desmembrar as formas sentenciais de comprimento 3 ou mais em uma cascata de produções, cada uma com uma forma sentencial consistindo em 2

A aplicação da Análise Preliminar de Riscos foi importante para conhecer os riscos em potencial das atividades realizadas pela empresa nos setores de descarga,

Neste estudo foram estipulados os seguintes objec- tivos: (a) identifi car as dimensões do desenvolvimento vocacional (convicção vocacional, cooperação vocacio- nal,

[r]

excessivamente (em adultos, há um sentimento subjetivo de inquietação); dificuldade em engajar-se numa atividade silenciosamente; fala excessivamente; responde

João Luiz Bastos – Universidade Federal de Santa Catarina – Brasil José Maria Pacheco de Souza – Universidade de São Paulo – Brasil Marly Augusto Cardoso – Universidade de