linguagens formais e autômatosra100621/class/2017.1/lfa_files/02-ling… · obs: alfabetos s~ao...

30
Linguagens Formais e Autˆomatos Vinicius de Novaes Pereira Unip [email protected] 8 de mar¸ co de 2017 Vinicius de Novaes Pereira (CC e SI) Linguagens Regulares: Autˆomatos Finitos Determin´ 8 de mar¸co de 2017 1 / 27

Upload: others

Post on 13-Oct-2020

1 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Linguagens Formais e Autômatosra100621/class/2017.1/LFA_files/02-ling… · OBS: alfabetos s~ao nitos, lingagens podem n~ao ser nitas. Vinicius de Novaes Pereira (CC e SI) Linguagens

Linguagens Formais e Automatos

Vinicius de Novaes Pereira

Unip

[email protected]

8 de marco de 2017

Vinicius de Novaes Pereira (CC e SI) Linguagens Regulares: Automatos Finitos Determinısticos8 de marco de 2017 1 / 27

Page 2: Linguagens Formais e Autômatosra100621/class/2017.1/LFA_files/02-ling… · OBS: alfabetos s~ao nitos, lingagens podem n~ao ser nitas. Vinicius de Novaes Pereira (CC e SI) Linguagens

Vinicius de Novaes Pereira (CC e SI) Linguagens Regulares: Automatos Finitos Determinısticos8 de marco de 2017 2 / 27

Page 3: Linguagens Formais e Autômatosra100621/class/2017.1/LFA_files/02-ling… · OBS: alfabetos s~ao nitos, lingagens podem n~ao ser nitas. Vinicius de Novaes Pereira (CC e SI) Linguagens

Section 1

Conceitos Centrais

Vinicius de Novaes Pereira (CC e SI) Linguagens Regulares: Automatos Finitos Determinısticos8 de marco de 2017 3 / 27

Page 4: Linguagens Formais e Autômatosra100621/class/2017.1/LFA_files/02-ling… · OBS: alfabetos s~ao nitos, lingagens podem n~ao ser nitas. Vinicius de Novaes Pereira (CC e SI) Linguagens

Alfabetos

Um alfabeto e um conjunto de fınitos e nao-vazio.Usamos Σ para denotar um alfabeto.Exemplos:

Σ = {0, 1} e o alfabeto binario.

Σ = {a, b, . . . , z} e o conjuntos de todas as letrasminusculas.

Vinicius de Novaes Pereira (CC e SI) Linguagens Regulares: Automatos Finitos Determinısticos8 de marco de 2017 3 / 27

Page 5: Linguagens Formais e Autômatosra100621/class/2017.1/LFA_files/02-ling… · OBS: alfabetos s~ao nitos, lingagens podem n~ao ser nitas. Vinicius de Novaes Pereira (CC e SI) Linguagens

Strings

Uma string e uma sequencia finita de sımbolos de algumalfabeto.Exemplos:

01101 e uma string do alfabeto Σ = {0, 1}.abbaab e uma string do alfabeto Σ = {a, b, c}.

Uma string pode ser vazia denotamos a string vaziapor ε.Strings sao tambem conhecidas como palavras oucadeias.

Vinicius de Novaes Pereira (CC e SI) Linguagens Regulares: Automatos Finitos Determinısticos8 de marco de 2017 4 / 27

Page 6: Linguagens Formais e Autômatosra100621/class/2017.1/LFA_files/02-ling… · OBS: alfabetos s~ao nitos, lingagens podem n~ao ser nitas. Vinicius de Novaes Pereira (CC e SI) Linguagens

Strings

O comprimento de uma string e a quantidade deposicoes que ela tem.

|01101| = 5

|ε| = 0

Vinicius de Novaes Pereira (CC e SI) Linguagens Regulares: Automatos Finitos Determinısticos8 de marco de 2017 5 / 27

Page 7: Linguagens Formais e Autômatosra100621/class/2017.1/LFA_files/02-ling… · OBS: alfabetos s~ao nitos, lingagens podem n~ao ser nitas. Vinicius de Novaes Pereira (CC e SI) Linguagens

Potencia de um alfabeto

Potencia de um alfabeto Σn e toda string no alfabeto Σcom tamanho nExemplo sobre Σ = {0, 1}:

Σ0 = {ε}Σ1 = {0, 1}Σ2 = {00, 01, 10, 11}Σ3 = {000, 001, 010, 011, 100, 101, 110, 111}

Vinicius de Novaes Pereira (CC e SI) Linguagens Regulares: Automatos Finitos Determinısticos8 de marco de 2017 6 / 27

Page 8: Linguagens Formais e Autômatosra100621/class/2017.1/LFA_files/02-ling… · OBS: alfabetos s~ao nitos, lingagens podem n~ao ser nitas. Vinicius de Novaes Pereira (CC e SI) Linguagens

Estrela de Klenee - Σ∗

Denotamos por Σ∗ o conjunto de todas as strings quepodem ser formadas pelo alfabeto Σ, inclusive a string ε.Denotamos por Σ+ o conjunto de Σ+ excluindo a stringvazia ε.

Vinicius de Novaes Pereira (CC e SI) Linguagens Regulares: Automatos Finitos Determinısticos8 de marco de 2017 7 / 27

Page 9: Linguagens Formais e Autômatosra100621/class/2017.1/LFA_files/02-ling… · OBS: alfabetos s~ao nitos, lingagens podem n~ao ser nitas. Vinicius de Novaes Pereira (CC e SI) Linguagens

Concatenacao de strings

Se x e y sao strings entao xy e a concatenacao de xcom y.Exemplo com x = 100 e y = 111:

xy = 100111.

yx = 111100.

xε = εx = 100.

Vinicius de Novaes Pereira (CC e SI) Linguagens Regulares: Automatos Finitos Determinısticos8 de marco de 2017 8 / 27

Page 10: Linguagens Formais e Autômatosra100621/class/2017.1/LFA_files/02-ling… · OBS: alfabetos s~ao nitos, lingagens podem n~ao ser nitas. Vinicius de Novaes Pereira (CC e SI) Linguagens

LinguagensUm conjunto de strings escolhido a partir de um alfabetoΣ.Um subconjunto de Σ∗.Exemplo de linguagens:

A linguagem de todas as strings em {0, 1} com n0’s seguidos por n 1’s, para algum n ≥ 0:{ε, 01, 0011, 000111, . . . }Conjunto de strings em {0, 1} com um numero igualde 0’s e 1’s: {ε, 01, 10, 0101, 1010, 0011, 1100, . . . }Conjunto da representacao binaria de numeroprimos: {10, 11, 101, 111, 1011, . . . }Σ∗ e uma linguagem sobre o alfabeto Σ∅ e uma linguagem sobre qualquer alfabeto{ε} e uma linguagem sobre qualquer alfabeto

OBS: alfabetos sao finitos, lingagens podem nao serfinitas.

Vinicius de Novaes Pereira (CC e SI) Linguagens Regulares: Automatos Finitos Determinısticos8 de marco de 2017 9 / 27

Page 11: Linguagens Formais e Autômatosra100621/class/2017.1/LFA_files/02-ling… · OBS: alfabetos s~ao nitos, lingagens podem n~ao ser nitas. Vinicius de Novaes Pereira (CC e SI) Linguagens

Representacao de linguagensSendo uma linguagem um conjunto, podemos definirlinguagens da seguinte maneira:

{w | algo sobre w}

{w | w consiste em um numero igual de 0’s e 1’s}{w | w e um numero inteiro binario primo}

{w | w e um programa em C sintaticamente correto}Outras formas

{0n1n | n ≥ 0}{0i1j | 0 ≤ i ≤ j}

Vinicius de Novaes Pereira (CC e SI) Linguagens Regulares: Automatos Finitos Determinısticos8 de marco de 2017 10 / 27

Page 12: Linguagens Formais e Autômatosra100621/class/2017.1/LFA_files/02-ling… · OBS: alfabetos s~ao nitos, lingagens podem n~ao ser nitas. Vinicius de Novaes Pereira (CC e SI) Linguagens

Section 2

Automatos Finitos Determinısticos

Vinicius de Novaes Pereira (CC e SI) Linguagens Regulares: Automatos Finitos Determinısticos8 de marco de 2017 11 / 27

Page 13: Linguagens Formais e Autômatosra100621/class/2017.1/LFA_files/02-ling… · OBS: alfabetos s~ao nitos, lingagens podem n~ao ser nitas. Vinicius de Novaes Pereira (CC e SI) Linguagens

Linguagens Regulares

Linguagens regulares sao aquelas que podem serdescritas por um automato finito.Mas o que e um automato finito?

Vinicius de Novaes Pereira (CC e SI) Linguagens Regulares: Automatos Finitos Determinısticos8 de marco de 2017 11 / 27

Page 14: Linguagens Formais e Autômatosra100621/class/2017.1/LFA_files/02-ling… · OBS: alfabetos s~ao nitos, lingagens podem n~ao ser nitas. Vinicius de Novaes Pereira (CC e SI) Linguagens

Automato Finito Determinıstico

Vinicius de Novaes Pereira (CC e SI) Linguagens Regulares: Automatos Finitos Determinısticos8 de marco de 2017 12 / 27

Page 15: Linguagens Formais e Autômatosra100621/class/2017.1/LFA_files/02-ling… · OBS: alfabetos s~ao nitos, lingagens podem n~ao ser nitas. Vinicius de Novaes Pereira (CC e SI) Linguagens

Definicao de um Automato FinıtoDeterminıstico

A = (Q,Σ, δ, q0, F )

1 Um conjunto de estados finito, Q2 Um conjunto de sımbolos de entrada Σ3 Uma funcao de transicao δ : Q× Σ→ Q.4 Um estado inicial q05 Um conjunto de estados finais F ⊂ Q

Vinicius de Novaes Pereira (CC e SI) Linguagens Regulares: Automatos Finitos Determinısticos8 de marco de 2017 13 / 27

Page 16: Linguagens Formais e Autômatosra100621/class/2017.1/LFA_files/02-ling… · OBS: alfabetos s~ao nitos, lingagens podem n~ao ser nitas. Vinicius de Novaes Pereira (CC e SI) Linguagens

Exemplo

{w | w e da forma x01y para string x e y que consistemapenas de 0’s e 1’s}{x01y | x e y que consistem apenas de 0’s e 1’s}

Vinicius de Novaes Pereira (CC e SI) Linguagens Regulares: Automatos Finitos Determinısticos8 de marco de 2017 14 / 27

Page 17: Linguagens Formais e Autômatosra100621/class/2017.1/LFA_files/02-ling… · OBS: alfabetos s~ao nitos, lingagens podem n~ao ser nitas. Vinicius de Novaes Pereira (CC e SI) Linguagens

Exemplo{w | w e da forma x01y para string x e y que consistemapenas de 0’s e 1’s}{x01y | x e y que consistem apenas de 0’s e 1’s}

A = (Q,Σ, δ, q0, F )

Q = {q0, q1, q2}Σ = {0, 1}δ : {q0, q1, q2} × {0, 1} → {q0, q1, q2}δ(q0, 0) = q2, δ(q0, 1) = q0, δ(q1, 0) = q1,δ(q1, 1) = q1, δ(q2, 0) = q2, δ(q2, 1) = q1.q0 e o estado inicialF = {q1}

Vinicius de Novaes Pereira (CC e SI) Linguagens Regulares: Automatos Finitos Determinısticos8 de marco de 2017 15 / 27

Page 18: Linguagens Formais e Autômatosra100621/class/2017.1/LFA_files/02-ling… · OBS: alfabetos s~ao nitos, lingagens podem n~ao ser nitas. Vinicius de Novaes Pereira (CC e SI) Linguagens

Exemplo

{w | w e da forma x01y para string x e y que consistemapenas de 0’s e 1’s}{x01y | x e y que consistem apenas de 0’s e 1’s}

Escrever pela definicaoTedioso e difıcil...

Vinicius de Novaes Pereira (CC e SI) Linguagens Regulares: Automatos Finitos Determinısticos8 de marco de 2017 16 / 27

Page 19: Linguagens Formais e Autômatosra100621/class/2017.1/LFA_files/02-ling… · OBS: alfabetos s~ao nitos, lingagens podem n~ao ser nitas. Vinicius de Novaes Pereira (CC e SI) Linguagens

Diagrama de Transicoes de A

A = (Q,Σ, δ, q0, F )

Para cada estado Q existe um vertice

δ(qi, a) = qj ↔ tem um arco de qi para qj com onome a

Tem um arco apontando para q0, este arco nao temorigem

Os vertices de estado final (em F ) sao marcadospor um cırculo.

Vinicius de Novaes Pereira (CC e SI) Linguagens Regulares: Automatos Finitos Determinısticos8 de marco de 2017 17 / 27

Page 20: Linguagens Formais e Autômatosra100621/class/2017.1/LFA_files/02-ling… · OBS: alfabetos s~ao nitos, lingagens podem n~ao ser nitas. Vinicius de Novaes Pereira (CC e SI) Linguagens

Tabela de transicoes

Uma tabela de transicoes e uma representacao tabular dafuncao de transicaoO estado inicial tem uma seta e os estados finais temuma estrela

0 1

→ q0 q2 q0∗q0 q1 q1q0 q2 q1

Vinicius de Novaes Pereira (CC e SI) Linguagens Regulares: Automatos Finitos Determinısticos8 de marco de 2017 18 / 27

Page 21: Linguagens Formais e Autômatosra100621/class/2017.1/LFA_files/02-ling… · OBS: alfabetos s~ao nitos, lingagens podem n~ao ser nitas. Vinicius de Novaes Pereira (CC e SI) Linguagens

Funcao de transicao estendida

A funcao de transicao estendida δ : Σ∗ ×Q → Q recebeuma string e retorna um estado.Segue as seguintes regras:

δ(q, ε) = q

δ(q, w) = δ(δ(q, x), a), se w = xa, sendo a umsımbolo do alfabeto.

Vinicius de Novaes Pereira (CC e SI) Linguagens Regulares: Automatos Finitos Determinısticos8 de marco de 2017 19 / 27

Page 22: Linguagens Formais e Autômatosra100621/class/2017.1/LFA_files/02-ling… · OBS: alfabetos s~ao nitos, lingagens podem n~ao ser nitas. Vinicius de Novaes Pereira (CC e SI) Linguagens

Linguagem de um Automato FinitoDeterminıstico

Seja A = (Q,Σ, δ, q0, F ), a linguagem L definida por A e

L(A) = {q | δ(q0, w) esta em F}

Vinicius de Novaes Pereira (CC e SI) Linguagens Regulares: Automatos Finitos Determinısticos8 de marco de 2017 20 / 27

Page 23: Linguagens Formais e Autômatosra100621/class/2017.1/LFA_files/02-ling… · OBS: alfabetos s~ao nitos, lingagens podem n~ao ser nitas. Vinicius de Novaes Pereira (CC e SI) Linguagens

Exercıcios

Automato Finito Determinıstico que aceita:1 string que termina em 002 string que tem tres 0’s consecutivos3 string que tem 011 como substring4 string que tem 011 como substring5 tem um numero par de 1’s e um numero par de 0’s

Vinicius de Novaes Pereira (CC e SI) Linguagens Regulares: Automatos Finitos Determinısticos8 de marco de 2017 21 / 27

Page 24: Linguagens Formais e Autômatosra100621/class/2017.1/LFA_files/02-ling… · OBS: alfabetos s~ao nitos, lingagens podem n~ao ser nitas. Vinicius de Novaes Pereira (CC e SI) Linguagens

Exercıcios

Explique informalmente as linguagens0 1

→ A A B∗B B A

0 1

→ ∗A B A∗B C AC B A

Vinicius de Novaes Pereira (CC e SI) Linguagens Regulares: Automatos Finitos Determinısticos8 de marco de 2017 22 / 27

Page 25: Linguagens Formais e Autômatosra100621/class/2017.1/LFA_files/02-ling… · OBS: alfabetos s~ao nitos, lingagens podem n~ao ser nitas. Vinicius de Novaes Pereira (CC e SI) Linguagens

Mais um Exercıcio

Automato Finito Determinıstico que aceita:1 nao tem 00 como substring2 e construıdo concatenando 01’s e 010’s e nenhum

outra string

Vinicius de Novaes Pereira (CC e SI) Linguagens Regulares: Automatos Finitos Determinısticos8 de marco de 2017 23 / 27

Page 26: Linguagens Formais e Autômatosra100621/class/2017.1/LFA_files/02-ling… · OBS: alfabetos s~ao nitos, lingagens podem n~ao ser nitas. Vinicius de Novaes Pereira (CC e SI) Linguagens

Section 3

Automatos FinitosNao-Determinısticos

Vinicius de Novaes Pereira (CC e SI) Linguagens Regulares: Automatos Finitos Determinısticos8 de marco de 2017 24 / 27

Page 27: Linguagens Formais e Autômatosra100621/class/2017.1/LFA_files/02-ling… · OBS: alfabetos s~ao nitos, lingagens podem n~ao ser nitas. Vinicius de Novaes Pereira (CC e SI) Linguagens

Definicao

A = (Q,Σ, δ, q0, F )

1 Um conjunto de estados finito, Q2 Um conjunto de sımbolos de entrada Σ3 Uma funcao de transicao δ : Q× Σ→ 2Q.4 Um estado inicial q05 Um conjunto de estados finais F ⊂ Q

Vinicius de Novaes Pereira (CC e SI) Linguagens Regulares: Automatos Finitos Determinısticos8 de marco de 2017 24 / 27

Page 28: Linguagens Formais e Autômatosra100621/class/2017.1/LFA_files/02-ling… · OBS: alfabetos s~ao nitos, lingagens podem n~ao ser nitas. Vinicius de Novaes Pereira (CC e SI) Linguagens

Vinicius de Novaes Pereira (CC e SI) Linguagens Regulares: Automatos Finitos Determinısticos8 de marco de 2017 25 / 27

Page 29: Linguagens Formais e Autômatosra100621/class/2017.1/LFA_files/02-ling… · OBS: alfabetos s~ao nitos, lingagens podem n~ao ser nitas. Vinicius de Novaes Pereira (CC e SI) Linguagens

Vinicius de Novaes Pereira (CC e SI) Linguagens Regulares: Automatos Finitos Determinısticos8 de marco de 2017 26 / 27

Page 30: Linguagens Formais e Autômatosra100621/class/2017.1/LFA_files/02-ling… · OBS: alfabetos s~ao nitos, lingagens podem n~ao ser nitas. Vinicius de Novaes Pereira (CC e SI) Linguagens

Vinicius de Novaes Pereira (CC e SI) Linguagens Regulares: Automatos Finitos Determinısticos8 de marco de 2017 27 / 27