introdução a teoria da computacao 3 bim- aula

93
FAFIMAN – Depto Informatica Curso: Ciência da Computação Itamar Solopak 2012 [email protected]

Upload: willian-ricardo

Post on 16-Jan-2016

83 views

Category:

Documents


0 download

DESCRIPTION

Introdução a Teoria Da Computacao 3 Bim- Aula

TRANSCRIPT

Page 1: Introdução a Teoria Da Computacao 3 Bim- Aula

FAFIMAN – Depto Informatica

Curso: Ciência da Computação

Itamar Solopak

2012

[email protected]

Page 2: Introdução a Teoria Da Computacao 3 Bim- Aula

EMENTA:Estudo de modelos teóricos da computação, de linguagens formais e

autômatos.

OBJETIVOS:

- Compreender como uma linguagem é desenvolvida

Page 3: Introdução a Teoria Da Computacao 3 Bim- Aula

1. Gramáticas e Linguagens1. Motivação2. Definição Formal3. Alfabeto, Palavra, Linguagem4. Palavra Vazia

2. Autômatos Finitos1. AFD - Autômato Finito Determinístico2. AFND - Autômato Finito Não-Determinístico3. Transformação de AFND para AFD4. Aplicações de AF

3. Expressões Regulares (ER)1. Definições2. Relação ER X AF3. Aplicações de ER

Page 4: Introdução a Teoria Da Computacao 3 Bim- Aula

4. . Gramáticas Regulares4. Gramáticas

1. Definição Formal5. Hierarquia das Gramáticas (Chomsky)6. Gramáticas Regulares (GR)7. Relação GR X AF

5. Gramáticas Livres de Contexto (GLC) e Autômatos com Pilha (AP)5. Aspectos Básicos de GLC

5. Ambigüidade em GLC's6. Autômatos com Pilha7. Relação GLC X AP

Page 5: Introdução a Teoria Da Computacao 3 Bim- Aula

Básica:

BLAUTH, Paulo Menezes. Linguagens Formais e Autômatos - Sagra-Luzzatto, 1998.HOPCROFT, J. E. & ULLMAN, J. D. Introduction to Automata Theory, Languages and Computation - Addison-Wesley, 1979.

LEWIS, Harry R. & PAPADIMITRIOU, Christos H. Elementos de Teoria da Computação -Bookman, 2000.

Complementar:

DIVERIO, Tiaraju Asmuz & BLAUTH, Paulo Menezes. Teoria da Computação - Máquinas Universais e Computabilidade - Sagra-Luzzatto, 1998.HOPCROFT, J. E. & ULLMAN, J. D. Formal Languages and Their Relation to Automata - Addison-Wesley, 1969.SALOMA, Arto. Formal Languages. Academic Press, 1973..

Page 6: Introdução a Teoria Da Computacao 3 Bim- Aula

• Duas Aulas Semanais

• Dificuldade Extrema •Exige Leitura e Pesquisa

Page 7: Introdução a Teoria Da Computacao 3 Bim- Aula

• Ter Conhecimento de como é o desenvolvimento de uma linguagem de programação tornando o profissional apto a enfrentar desafios no mundo real;

• Aumenta o conhecimento sobre a profissão , criando um diferencial competitivo

Page 8: Introdução a Teoria Da Computacao 3 Bim- Aula

• Aulas Expositivas com Exercícios

• Exercícios individuais e em grupo valendo nota

• Trabalho de práticos com implementação e apresentação

•Leituras e Pesquisas

Page 9: Introdução a Teoria Da Computacao 3 Bim- Aula

Origem: Wikipédia, a enciclopédia livre.

Paradigma (do grego parádeigma) literalmentemodelo, é a representação de um padrão a serseguido. É um pressuposto filosófico, matriz, ouseja, uma teoria, um conhecimento que origina oestudo de um campo científico; uma realizaçãocientífica com métodos e valores que sãoconcebidos como modelo;Uma referência inicial como base de modelo paraestudos e pesquisas.

Page 10: Introdução a Teoria Da Computacao 3 Bim- Aula

• Como você enxerga linguagens de programação na sua relação profissional e qual a importância do domínio sobre esta?

•Escrever um texto de no mínimo 15 linhas.•Entrega: 23/02/2012

Page 11: Introdução a Teoria Da Computacao 3 Bim- Aula

Aula 1• Teoria das linguagens formais foi

desenvolvida em 1950 com o objetivo de estudar linguagens Naturais. Entretanto, logo foi verificado a importância desta para o estudo de linguagens artificiais como as LP.

• Enfoque em analise léxica, sintática de linguagens de programação, modelos de sistemas biológicos, desenho de hardware e relacionamento com linguagens naturais

20/09/2012 11Itamar Solopak [email protected]

Page 12: Introdução a Teoria Da Computacao 3 Bim- Aula

Introdução� Algumas características de LN introduziram

dificuldades no Tratamento computacional das mesmas:

LN é extensa, complexa, não tem sintaxe rígida e semântica bem determinada (rica em ambigüidade);

20/09/2012 12Itamar Solopak [email protected]

Page 13: Introdução a Teoria Da Computacao 3 Bim- Aula

Introdução� Linguagens Computacionais são muito mais simples, são

linguagens criadas artificialmente de forma que possam ser tratadas computacionalmente de forma satisfatória;

� As maneiras sistemáticas de descrever uma linguagem de

� programação são:� Um método que permite construir programas estaticamente

corretos - geração (Gramática);

� Um método que permite verificar se um programa escrito está sintaticamente correto - reconhecimento (Autômatos);

20/09/2012 13Itamar Solopak [email protected]

Page 14: Introdução a Teoria Da Computacao 3 Bim- Aula

Sintaxe e Semântica� Linguagens formais Preocupa se com os problemas

sintáticos e semânticos de LP

� Os problemas sintáticos foram reconhecidos antes no estudo das LP, então receberam tratamento antes também

� Os problemas sintáticos tem tratamento mais simples, pois trata da ordem em que os comandos são dispostos

� Uma LP pode ser vista de duas formas (como qualquer modelo matematico)� Entidade Livre, ou seja, sem qualquer significado associado

� Entidade juntamente com interpretação do seu significado(semântica)

20/09/2012 14Itamar Solopak [email protected]

Page 15: Introdução a Teoria Da Computacao 3 Bim- Aula

Sintaxe e Semântica� Sintaxe trata a verificação Gramatical de um programa

� Basicamente manipula símbolos sem se preocupar com seu significado

� Para resolver qualquer problema real, nota-se a necessidade de dar uma interpretação SEMÂNTICA aos símbolos como por exemplo, “estes símbolos representam os números reais”

� Nem sempre os limites entre Sintaxe e Semântica são Claros

20/09/2012 15Itamar Solopak [email protected]

Page 16: Introdução a Teoria Da Computacao 3 Bim- Aula

Resumindo� Sintaxe:

� Define a forma e estrutura de uma linguagemSímbolos, palavras, frases e sentenças (estruturas)� Ex: if X = 10 then y = X;

� Principal formalismo: � Gramáticas Livres de Contexto e Expressões Regulares

� Notação mais utilizada: BNF (Backus-Naur Form)

20/09/2012 16Itamar Solopak [email protected]

Page 17: Introdução a Teoria Da Computacao 3 Bim- Aula

Resumindo� Semântica:

� Descrever o significados das estruturas do programa expressos na sua sintaxe

� Tipos de semântica� Semântica estática: Descreve as características de uma

programa válido

� Semântica dinâmica: Descreve os resultados da execução do programa

� Define um mapeamento da sintaxe do programa para o seu significado

20/09/2012 17Itamar Solopak [email protected]

Page 18: Introdução a Teoria Da Computacao 3 Bim- Aula

Resumindo� A Semântica é complementar a sintaxe. Ela

corresponde à descrição do significado das instruções válidas de uma linguagem. Por exemplo, a sintaxe da instrução if da linguagem C++ é: if () {} e sua semântica é: “se o valor da expressão for verdadeiro, as instruções incorporadas serão executadas pelo programa”.

20/09/2012 18Itamar Solopak [email protected]

Page 19: Introdução a Teoria Da Computacao 3 Bim- Aula

Revisão de Conceitos Matemáticos

Nosso foco não é estudar a teoria dos conjuntos com ênfase e sim utilizá-la em

nossa disciplina, mas...

20/09/2012 19Itamar Solopak [email protected]

Page 20: Introdução a Teoria Da Computacao 3 Bim- Aula

Revisão de Conceitos Matemáticos

�Conjuntos

�Relações

�Funções

20/09/2012 20Itamar Solopak [email protected]

Page 21: Introdução a Teoria Da Computacao 3 Bim- Aula

Revisão de Conceitos Matemáticos

�Exemplo: conjunto M dos números binários que têm 2 dígitos:

M={00,01,10,11}

20/09/2012 21Itamar Solopak [email protected]

Page 22: Introdução a Teoria Da Computacao 3 Bim- Aula

Revisão de Conceitos Matemáticos �Porém, se fosse o conjunto N de todas

as combinações de dígitos binários, poderíamos tentar o seguinte:

N={0,1,00,01,10,11,000,...}

Percebe-se que este conjunto éinfinito;

20/09/2012 22Itamar Solopak [email protected]

Page 23: Introdução a Teoria Da Computacao 3 Bim- Aula

Revisão de Conceitos Matemáticos � União dos conjuntos A e B, denotada por A ∪ B, é o conjunto de

todos os objetos que são membros de A, ou B, ou ambos. A união de {1, 2, 3} e {2, 3, 4} é o conjunto {1, 2, 3, 4}.

� Interseção dos conjuntos A e B, denotada por A ∩ B, é o conjunto de todos os objetos que são membros de ambos A e B. A interseção de {1, 2, 3} e {2, 3, 4} é o conjunto {2, 3}.

� Diferença de Conjuntos de U e A, denotada por U \ A é o conjunto de todos os membros de U que não são membros de A. A diferença de conjuntos {1,2,3} \ {2,3,4} é {1}, enquanto a diferença de conjuntos {2,3,4} \ {1,2,3} é {4}. Quando A é um subconjunto de U, a diferença de conjuntos U \ A é também chamada de DIFERENÇA

20/09/2012 23Itamar Solopak [email protected]

Page 24: Introdução a Teoria Da Computacao 3 Bim- Aula

Revisão de Conceitos Matemáticos �Conjunto das partes de um conjunto A

é o conjunto cujos membros são todos os possíveis subconjuntos de A.

Exemplo, o conjunto das partes de {1, 2} é { {}, {1}, {2}, {1,2} }.

20/09/2012 24Itamar Solopak [email protected]

Page 25: Introdução a Teoria Da Computacao 3 Bim- Aula

Revisão de Conceitos Matemáticos � Produto Cartesiano: de A e B,

denotada por A × B, é o conjunto cujos membros são todos os possíveis pares ordenados

Exemplo: A = {0,1,2} e B={2,3}

A X B ={(0,2), (0,3), (1,2), (1,3), (2,2), (2,3)}

20/09/2012 25Itamar Solopak [email protected]

Page 26: Introdução a Teoria Da Computacao 3 Bim- Aula

Revisão de Conceitos Matemáticos

� Relações e Funções iremos ver sob Demanda, ou seja, quando formos aplicar na pratica dentro da disciplina

20/09/2012 26Itamar Solopak [email protected]

Page 27: Introdução a Teoria Da Computacao 3 Bim- Aula

Conceitos Básicos - Alfabeto� Conjunto finito de símbolos;

� Normalmente descrito por Σ;

� Exemplos:� Σ={a, b}

� Σ={1, 2, 3}

� Σ={00, 11}

20/09/2012 27Itamar Solopak [email protected]

Page 28: Introdução a Teoria Da Computacao 3 Bim- Aula

Conceitos Básicos – Símbolos ou Letras

� é todo elemento pertencente à um alfabeto;

� a é um símbolo de Σ se a ∈ Σ;

� Exemplo: dado o alfabeto Σ={0, 1, 23}� 0 é um símbolo de Σ;

� 1 é um símbolo de Σ;

� 23 é um símbolo de Σ;

� 33 não é um símbolo de Σ;

20/09/2012 28Itamar Solopak [email protected]

Page 29: Introdução a Teoria Da Computacao 3 Bim- Aula

Conceitos Básicos – Símbolos ou Letras

� Essas duas primeiras definições são bastante livres. Embora os símbolos também possam ser

chamados de letras, eles não precisam ter necessariamente um único caractere.

� Além disso, os símbolos de um alfabeto não precisam todos ter o mesmo número de caracteres.

� A única restrição é que o tamanho do símbolo seja finito.

20/09/2012 29Itamar Solopak [email protected]

Page 30: Introdução a Teoria Da Computacao 3 Bim- Aula

Conceitos Básicos – Cadeias ou Palavras

� Seqüência finita de símbolos de um alfabeto

� Exemplos

Σ={0, 1, 23} então uma cadeia valida seria 0123 ou 123, pois todos os elementos pertencem ao Alfabeto.

Σ={a,b,c,..,z} entao, uma cadeia valida seria FAFIMAN ou MANDAGUARI.

FAFIMAN123 é uma cadeia valida?

20/09/2012 30Itamar Solopak [email protected]

Page 31: Introdução a Teoria Da Computacao 3 Bim- Aula

Conceitos Básicos – Cadeias ou PalavrasComprimento de Cadeia ou Tamanho de Palavra:

É o número de símbolos que compõem uma dada cadeia (ou palavra).

O comprimento de uma cadeia x é denotado por |x|, tambemchamado de Modulo.

|FAFIMAN| = 7, outro exemplo |NAOENTENDI|=10

Cadeia nula ou palavra vazia: é um caso especial, ela é denotada por λ (ou ε) e tem tamanho igual a zero.

20/09/2012 31Itamar Solopak [email protected]

Page 32: Introdução a Teoria Da Computacao 3 Bim- Aula

Conceitos Básicos – Exercícios 1)dado o alfabeto Σ={a, b, c, de}, verifique se as cadeias a

seguir são formadas sobre este alfabeto, e se for, verifique qual o comprimento das mesmas:

x = ababac

y = abdec

z = abedc

w = abdceaba

s = d

t = a

2) Criem um Alfabeto valido para a Cadeia G = 23+1=24

20/09/2012 32Itamar Solopak [email protected]

Page 33: Introdução a Teoria Da Computacao 3 Bim- Aula

Conceitos Básicos – Exercícios 1)dado o alfabeto Σ={a, b, c, de}, verifique se as cadeias a

seguir são formadas sobre este alfabeto, e se for, verifique qual o comprimento das mesmas:

x = ababac |6|y = abdec |4|z = abedcw = abdceabas = dt = a |1|2) Criem um Alfabeto valido para a Cadeia G = 23+1=24Σ={1,2,3,4,+,=} ou Σ={23,1,24,+,=} ...

20/09/2012 33Itamar Solopak [email protected]

Page 34: Introdução a Teoria Da Computacao 3 Bim- Aula

Concatenação� Σ={a,b,c,..,z},

� U=abra

� Z=cadabra

� A Concatenação UZ será igual a ABRACADABRA

� A ordem na concatenação tem relevância! Atençao!

� A concatenação ZU será igual a CADABRAABRA

20/09/2012 34Itamar Solopak [email protected]

Page 35: Introdução a Teoria Da Computacao 3 Bim- Aula

Exponenciação� Exponenciação de Alfabetos: Σ k é o conjunto de todas

as cadeias com tamanho k, formadas sobre o alfabeto Σ, onde U é uma cadeia.

� Exemplo: considere U = {abra}

� • Σ 0 = {λ}

� • Σ 1 = {abra}

� • Σ 2 = {abra,abra}

� Exercício: considerando UZ como ficaria UZ 2.

20/09/2012 35Itamar Solopak [email protected]

Page 36: Introdução a Teoria Da Computacao 3 Bim- Aula

Exercícios � 1. O que é alfabeto? � 2. Defina o conceito de cadeia.

� Dados L 1 ={a, ab} e L 2 ={ λ , a, ba}, linguagens sobre {a, b}, determine: �

� a. L 1 ∪ L 2 � b. L 1 ∩ L 2 � c. L 1 – L 2 � d. L 2 – L 1 � e. L 1 .L 2 � f. L 2 .L 1 � g. L 1 2 = L 1 .L 1 � h. L 2 2 = L 2 .L 2 � i. L 1

20/09/2012 36Itamar Solopak [email protected]

Page 37: Introdução a Teoria Da Computacao 3 Bim- Aula

Exercícios � O que é alfabeto?

Alfabeto é um conjunto finito e não vazio de símbolos. Geralmente, o alfabeto

é denotado por ∑. Um exemplo de alfabeto seria ∑ = {0, 1}, ou seja, um

alfabeto que possui dois símbolos, “0” e “1”.

20/09/2012 37Itamar Solopak [email protected]

Page 38: Introdução a Teoria Da Computacao 3 Bim- Aula

Exercícios Defina o conceito de cadeia.

Uma cadeia é uma seqüência formada por símbolos pertencentes à um

mesmo alfabeto. Por exemplo, a partir do alfabeto ∑ = {0, 1} seria possível

formar as cadeias 0, 001 e 110101. Note que diferentes cadeias não precisam

necessariamente ter a mesma quantidade de símbolos.

20/09/2012 38Itamar Solopak [email protected]

Page 39: Introdução a Teoria Da Computacao 3 Bim- Aula

Exercícios Dados L 1 ={a, ab} e L 2 ={λ, a, ba}, linguagens sobre {a, b},

determine:

a. L 1 ∪ L 2 = {a, ab, λ, ba} b. L 1 ∩ L 2 = {a} c. L 1 – L 2 = {ab} d. L 2 – L 1 = {λ, ba} e. L 1 .L 2 = {a, aa, aba, ab, abba} f. L 2 .L 1 = {a, ab, aa, aab, baa, baab} g. L 12 = L 1 .L 1 = {aa, aab, aba, abab} h. L 22 = L 2 .L 2 = {λ, a, ba, aa, aba, baa, baba} i. L 1 = Σ * - {a, ab} = {a, b} * - {a, ab}

20/09/2012 39Itamar Solopak [email protected]

Page 40: Introdução a Teoria Da Computacao 3 Bim- Aula

Trabalho – 12/04� Defina o conceito de linguagem e mostre um exemplo. � Como se pode descrever uma linguagem formal?� Fale sobre aplicações de LFA. De exemplos� O que é fechamento de um alfabeto?� Defina o conceito de subpalavra .� O que é prefixo e sufixo ? Defina com exemplos� O que é Complemento de uma cadeia? Defina com exemplos

� Trabalho individual� Enviar em pdf para [email protected]� Com assunto TRABALHO INTRODUCAO TEORIA DA

COMPUTACAO

20/09/2012Itamar Solopak [email protected] 40

Page 41: Introdução a Teoria Da Computacao 3 Bim- Aula

Entendendo

20/09/2012Itamar Solopak [email protected] 41

abraA,b,r ..

Σ={a,b,c,..,z}, W={abra} Z={cadabra} X={if, then, else, for ...}

Page 42: Introdução a Teoria Da Computacao 3 Bim- Aula

Linguagens formaisComparando as definições:� Linguagem Natural:

� Uma palavra em português equivale à um símbolo;� Uma sentença da língua portuguesa é uma cadeia

Composta por vários símbolos;

� Linguagem Computacional:� Cada programa escrito numa linguagem computacional

corresponde a uma cadeia de símbolos que podem ser:� identificadores;� palavras reservadas;� símbolos especiais e operadores;� constantes numéricas.

20/09/2012Itamar Solopak [email protected] 42

Page 43: Introdução a Teoria Da Computacao 3 Bim- Aula

20/09/2012Itamar Solopak [email protected] 43

Page 44: Introdução a Teoria Da Computacao 3 Bim- Aula

Tipos de formalismo

� Reconhecedores� Recebe uma palavra e retorna um valor dizendo se a

palavra é ou não da linguagem

� Geradores� Defini um conjunto de regras que pode ser combinadas

para gerar palavras

� Denotacional (Gerador?)� Uma expressão que denota de modo geral as palavras da

linguagem

20/09/2012Itamar Solopak [email protected] 44

Page 45: Introdução a Teoria Da Computacao 3 Bim- Aula

Linguagens formais

� Veremos diversos formalismos de cada um dos trestipos

� Alguns formalismos são mais poderosos que os outros� Especificam mais linguagens

� Linguagens são classificadas segundo o formalismo que as reconhecem� De acordo com que se pede, da para saber se é

reconhecedora, geradora ou denotacional

20/09/2012Itamar Solopak [email protected] 45

Page 46: Introdução a Teoria Da Computacao 3 Bim- Aula

Classificação das Linguagens� Hierarquia de Chomsky

� Possui 4 categorias hierárquicas

� As categorias superiores incluem as inferiores

� Cada categoria é reconhecida por certos formalismos

20/09/2012Itamar Solopak [email protected] 46

Page 47: Introdução a Teoria Da Computacao 3 Bim- Aula

Linguagens formais

20/09/2012Itamar Solopak [email protected] 47

Reconhecedoras

Geradoras ..

Page 48: Introdução a Teoria Da Computacao 3 Bim- Aula

Linguagens tipo 3 - Regulares� São as mais Simples e Restritas

� Recebe uma palavra de entrada

� Indica se ela e aceita ou rejeitada

� Ex: Σ={0,1} então cadeias validas seriam � A={00,1,000}, B={0,01,111}, C={110,10,0,00}

� Podemos ter linguagens que so aceitem apenas cadeias que terminem com o símbolo 1 “isto é uma restrição”

� Baseado no conceito de Máquinas de estados Finitos

20/09/2012Itamar Solopak [email protected] 48

Page 49: Introdução a Teoria Da Computacao 3 Bim- Aula

Maquinas de estado Finito�Conjunto Finito de Estados

�Um estado representa a “ situação atual”

�Mudança de Estado

�Depende do estado Atual

�Depende de uma certa Entrada

�Não guarda Histórico de estados

20/09/2012Itamar Solopak [email protected] 49

Page 50: Introdução a Teoria Da Computacao 3 Bim- Aula

Maquina de estado finito�Reconhecedor de Palavras ou Cadeias

�Bons modelos para computadores com capacidade reduzida

�Fazem parte de diversos dispositivos eletro - mecânicos do dia a dia

20/09/2012Itamar Solopak [email protected] 50

Page 51: Introdução a Teoria Da Computacao 3 Bim- Aula

Maquinas de estado Finito - Porta

20/09/2012Itamar Solopak [email protected] 51

Frente Retaguarda

Visão Área de uma porta automática

Page 52: Introdução a Teoria Da Computacao 3 Bim- Aula

Maquinas de estado Finito - Porta� Controlador da porta pode esta em 2 estados distintos

� Aberto (significando porta aberta)� Fechado (significando porta fechada)

� O Controlador passa de um estado para outro dependendo do estimulo

� Entradas possiveis:� Frente: uma pessoa esta em pe sobre o tapete da entrada

� Retaguarda: uma pessoa esta em pe sobre o tapete da saida

� Ambos: existem pessoas nos 2 tapetes

� Nenhum: não tem ninguém sobre nenhum tapete

20/09/2012Itamar Solopak [email protected] 52

Page 53: Introdução a Teoria Da Computacao 3 Bim- Aula

Maquinas de estado Finito - Porta

20/09/2012Itamar Solopak [email protected] 53

Fechado Aberto

NenhumFrenteRetaguardaAmbos

FrenteRetaguardaAmbos

Nenhum

Page 54: Introdução a Teoria Da Computacao 3 Bim- Aula

Maquinas de estado Finito - Porta

20/09/2012Itamar Solopak [email protected] 54

Nenhum Frente Retaguarda Ambos

Fechado Fechado Aberto Aberto Aberto

Aberto Fechado Aberto Aberto Aberto

Tabela de Transição

•Estados a esquerda na tabela•Entradas ficam sempre na parte direita superior

Page 55: Introdução a Teoria Da Computacao 3 Bim- Aula

Maquinas de estado Finito –Interruptor

20/09/2012Itamar Solopak [email protected] 55

LigadoDesligad

o

Pressionar

Pressionar

EstadoInicial

Page 56: Introdução a Teoria Da Computacao 3 Bim- Aula

Maquinas de estado

20/09/2012Itamar Solopak [email protected] 56

q0

Est

ado

Inic

ial

Palavra FAFIMANQualquer outra deve ser Descartada

q1 q2 q3 q4 q5 q6

F A F I M A

q7

N

Estado de Aceitação, Estado Final

Σ={A, B, C,...Z},

Page 57: Introdução a Teoria Da Computacao 3 Bim- Aula

Maquinas de estado

20/09/2012Itamar Solopak [email protected] 57

q0

Est

ado

Inic

ial

Palavra FABRICAQualquer outra deve ser Descartada, utilizando a

maquina de estado para FAFIMAN

q1 q2 q3 q4 q5 q6

F A F I M A

q7

N

Estado de Aceitação, Estado Final

Σ={A, B, C,...Z},

Page 58: Introdução a Teoria Da Computacao 3 Bim- Aula

Exemplos� Lavadora de Roupas/loucas

� Termômetro eletrônico

� Relógios digitais

� Calculadoras

� Maquinas de Vendas automáticas (coca cola)

20/09/2012Itamar Solopak [email protected] 58

Page 59: Introdução a Teoria Da Computacao 3 Bim- Aula

Autômatos Finitos� O Automato finito é uma maquina reconhecedora de

palavras ou cadeias de caracteres que sempre para retornando uma resposta SIM (se reconhece) ou NAO (se não reconhece)

� Podem ser Classificadas em:� Autômatos Finitos Determinísticos - AFD

� Autômatos Finitos Não determinísticos – AFND

20/09/2012Itamar Solopak [email protected] 59

Page 60: Introdução a Teoria Da Computacao 3 Bim- Aula

Autômatos Finitos Determinísticos� Definição formal de um AFD� É uma 5-upla (quintopla) onde :

M = {Q,∑,∂, q0,F}, ondeQ = conjunto finito de estados do autômato∑ = Alfabetos de símbolos de entrada∂ = Função programa ou função de transição (parcial)

∂ : Q X ∑ Q, Significa Dizer que permanecer em um estado e lendo um símbolo do alfabeto faz o autômato passar para outro estado ou permanecer no mesmo.

q0 = Estado inicial (q0 Є Q)F = conjunto de estados final ou de aceitacao (F C Q)

20/09/2012Itamar Solopak [email protected] 60

Page 61: Introdução a Teoria Da Computacao 3 Bim- Aula

Autômatos Finitos Determinísticos

20/09/2012Itamar Solopak [email protected] 61

i Estado inicial

f Estado final

s Restante dos Estados

s a s´ Transicao ∂(s,a)=s´

Representação Gráfica

Page 62: Introdução a Teoria Da Computacao 3 Bim- Aula

AFD - Exercícios

20/09/2012Itamar Solopak [email protected] 62

2) Dados o Autômato abaixo, Defina-o formalmente

3) Utilizando –se do autômato acima, verifique

a) 01 é reconhecido?b) É correto afirmar que qualquer cadeia formada por símbolos 1 em qualquer

quantidade é reconhecida? Explique o porque.c) É correto Afirmar que as únicas cadeias reconhecidas pelo autômato são as

terminadas em 1? Prove sua resposta.

1) Descreva a definição de AFD

Page 63: Introdução a Teoria Da Computacao 3 Bim- Aula

AFD - Exercícios

20/09/2012Itamar Solopak [email protected] 63

4) Desenvolva a representação gráfica para “vendingmachine” que aceita moedas de 5, 10 e 25 centavos. O preço do produto que ela entrega é 30 centavos. Partindo do estado inicial (0 centavos) deveremos reconhecer sequencias que nos levem a estados finais (valor inserido >= 30 centavos)

V=<Σ, S, S0, δ, F> onde:Σ = {5, 10, 25} - cada um destes símbolos (ou letras) representa uma açãoS = {<0c>, <5c>, <10c>, <15c>, <20c>, <25c>, <30c>, <35c>, <40c>, <45c>, <50c>} - cada estado indica quanto foi

depositadoS0= <0c> - estado inicialF = {<30c>, <35c>, <40c>, <45c>, <50c>} - estado onde a entrada é válida e o

produto pode ser liberado

Page 64: Introdução a Teoria Da Computacao 3 Bim- Aula

AFD - Exercícios

20/09/2012Itamar Solopak [email protected] 64

Delta 5 10 25

0C 5C 10C 25C

5C 10C 15C 30C

10C 15C 20C 35C

15C 20C 25C 40C

20C 25C 30C 45C

25C 30C 35C 50C

30C - - -

35C - - -

40C - - -

45C - - -

50C - - -

Page 65: Introdução a Teoria Da Computacao 3 Bim- Aula

AFD - Exercícios

20/09/2012Itamar Solopak [email protected] 65

1) Descreva a definição de AFDUm AFD é uma quíntupla <Σ, S, S0, δ, F>, onde: Σ é o alfabeto de entrada; S é um conjunto finito não vazio de estados; S0 é o estado inicial, S0 ∈ S ; δ é a função de transição de estados, definida δ: S x Σ → S ; F é o conjunto de estados finais, F⊆ S .

Page 66: Introdução a Teoria Da Computacao 3 Bim- Aula

AFD - Exercícios

20/09/2012Itamar Solopak [email protected] 66

2) Dados o Autômato abaixo, Defina-o formalmente

M = <Σ, S, S0, δ, F>, onde: Σ = {0,1}S = {q0,q1,q2}S0= q0F = q1Delta é definido como δ (q0, 0) = q0δ (q0, 1) = q1δ (q1, 0) = q2δ (q1, 1) = q1δ (q2, 0) = q1δ (q2, 1) = q1

Delta 0 1

Q0 Q0 Q1

Q1 Q2 Q1

Q2 Q1 Q1

Tabela de Transição

Page 67: Introdução a Teoria Da Computacao 3 Bim- Aula

AFD - Exercícios

20/09/2012Itamar Solopak [email protected] 67

3) Utilizando –se do autômato acima, verifique

a) 01 é reconhecido?a) Sim, 01 é reconhecido pelo autômato pois ao final da leitura estará em

q1, que é um estado de aceitação.b) É correto afirmar que qualquer cadeia formada por símbolos 1 em qualquer

quantidade é reconhecida? Explique o porque.a) Sim, pois qualquer quantidade de símbolos 1 inseridos na cadeia leva ao

estado de aceitação q1c) É correto Afirmar que as únicas cadeias reconhecidas pelo autômato são as

terminadas em 1? Prove sua resposta.a) Não, pois a cadeia 100 também é uma cadeia valida pois seu estado final

será q1

Page 68: Introdução a Teoria Da Computacao 3 Bim- Aula

Solução do exército 4

20/09/2012Itamar Solopak [email protected] 68

Page 69: Introdução a Teoria Da Computacao 3 Bim- Aula

AFD - Exercícios

20/09/2012Itamar Solopak [email protected] 69

Seja ∑ = {0, 1, 2, 3, 4, 5, 6, 7, 8, 9}, construa AFDs para as seguintes linguagens:

utilize apenas 2 estados para o exercício abaixo

1) {x ∈∑ + | a sequencia descrita por x corresponda a um valor inteiro par} 1) Ou seja para atingir o estado final deve terminar em número par

2) {x ∈∑ + | a sequencia descrita por x corresponda a um valor inteiro divisível por 5}

Page 70: Introdução a Teoria Da Computacao 3 Bim- Aula

Segundo Bimestre

Bem Vindos !!!

20/09/2012Itamar Solopak [email protected] 70

Page 71: Introdução a Teoria Da Computacao 3 Bim- Aula

AFD vs. AFND� Determinísticos

� Transições bem definidas

� Função de Transição de estado leva a um único estado

� Sequencia de estados e única para cada palavra

� Não Determinístico� Transições ambíguas

� Função de Transição leva a vários estados alternativos

� Varias sequencias possiveis

20/09/2012Itamar Solopak [email protected] 71

Page 72: Introdução a Teoria Da Computacao 3 Bim- Aula

AFD vs. AFND� Até agora quando um AF esta em um estado e le o

próximo símbolo de entrada, nos sabemos exatamente qual será seu próximo estado (é bem determinado), ou seja são AFD Autômatos Finitos Determinísticos.

� Maquinas não determinísticas são aquelas que diversas escolhas podem existir para o próximo estado em qualquer ponto de execução.

20/09/2012Itamar Solopak [email protected] 72

Page 73: Introdução a Teoria Da Computacao 3 Bim- Aula

AFD vs. AFND� O próximo estado não é determinado exclusivamente

pelo esta atual e o símbolo de entrada.

� Podemos ter Zero , uma ou mais transições de estado com um único símbolo de entrada.

20/09/2012Itamar Solopak [email protected] 73

Page 74: Introdução a Teoria Da Computacao 3 Bim- Aula

AFND

20/09/2012Itamar Solopak [email protected] 74

Um estado pode ter zero,um ou mais arcos saindo para cada símbolo do alfabeto

Page 75: Introdução a Teoria Da Computacao 3 Bim- Aula

AFND

20/09/2012Itamar Solopak [email protected] 75

Testando a cadeia 110q0

1

q0 q11

q0 q1 Parou

1

0

q0

A cadeia é aceita se um estado final é encontrado!

q2

Page 76: Introdução a Teoria Da Computacao 3 Bim- Aula

AFND

20/09/2012Itamar Solopak [email protected] 76

Transição

Delta 0 1

Q0 Q0 {Q0,Q1}

Q1 Q2 Ø

Q2 Ø Ø

{Q0,Q1}, se torna um CONJUNTO

Page 77: Introdução a Teoria Da Computacao 3 Bim- Aula

Definição formal para AFND� É uma 5-upla (quintopla) onde :

M = {Q,∑,∂, q0,F}, onde

Q = conjunto finito de estados do autômato

∑ = Alfabetos de símbolos de entrada

δ = Q x ∑λ P(Q) é uma função de Transiçãoq0 = Estado inicial (q0 Є Q)

F = conjunto de estados finais ou de aceitação (F C Q)

20/09/2012Itamar Solopak [email protected] 77

Page 78: Introdução a Teoria Da Computacao 3 Bim- Aula

Definição formal para AFND

20/09/2012Itamar Solopak [email protected] 78

Q0, tem duas transições com 0, e duas com 1Q1 não tem transição com 0Q3 não tem transição com 1

Page 79: Introdução a Teoria Da Computacao 3 Bim- Aula

Definição formal para AFND� Uma sequencia de entrada a1,a2..an é aceita por um

autômato finito não determinístico se existe uma sequencia de transições, correspondendo a sequencia de entrada, que leva do estado inicial a algum dos estados finais.

20/09/2012Itamar Solopak [email protected] 79

Page 80: Introdução a Teoria Da Computacao 3 Bim- Aula

Exercício

20/09/2012Itamar Solopak [email protected] 80

Page 81: Introdução a Teoria Da Computacao 3 Bim- Aula

20/09/2012Itamar Solopak [email protected] 81

Q0

aabbab

Q0

b

Q2 Q1b

Q4

Parou!

a

Q4

Q4

Q0

Q0

Q0b

Q0Cadeia Aceita!

Page 82: Introdução a Teoria Da Computacao 3 Bim- Aula

Exercício

20/09/2012Itamar Solopak [email protected] 82

Page 83: Introdução a Teoria Da Computacao 3 Bim- Aula

Solução

20/09/2012Itamar Solopak [email protected] 83

M1 M2

A F T

Aa F T

Aab F F

λ F T

ab T F

abab T F

Aba T F

abaa F F

Page 84: Introdução a Teoria Da Computacao 3 Bim- Aula

Autômatos � Equivalência entre AFD e AFND

20/09/2012Itamar Solopak [email protected] 84

Page 85: Introdução a Teoria Da Computacao 3 Bim- Aula

Transformar AFND em AFD δ 0 1

Q0 {Q0,Q1} {Q0}

Q1 Ǿ {Q2}

*Q2 Ǿ Ǿ

20/09/2012Itamar Solopak [email protected] 85

Page 86: Introdução a Teoria Da Computacao 3 Bim- Aula

Iniciar as transições para 0,1, partindo de Q0

δ 0 1

Ǿ Ǿ Ǿ

Q0 {Q0,Q1} {Q0}

Q1 Ǿ {Q2}

*Q2 Ǿ Ǿ

{Q0,Q1} {Q0,Q1 + Ǿ} {Q0,q2}

20/09/2012Itamar Solopak [email protected] 86

Novo!

Page 87: Introdução a Teoria Da Computacao 3 Bim- Aula

Iniciar as transições para 0,1, partindo de Q0

δ 0 1

Ǿ Ǿ Ǿ

Q0 {Q0,Q1} {Q0}

Q1 Ǿ {Q2}

*Q2 Ǿ Ǿ

{Q0,Q1} {Q0,Q1 + Ǿ} {Q0,q2}

{Q0,Q2} {Q0,Q1+Ǿ} {Q0+Ǿ}

20/09/2012Itamar Solopak [email protected] 87

Existe alguma nova

Transição?

Não! Então vamos

simplificar

Page 88: Introdução a Teoria Da Computacao 3 Bim- Aula

Remover os Ǿ

δ 0 1

Ǿ Ǿ Ǿ

Q0 {Q0,Q1} {Q0}

Q1 Ǿ {Q2}

*Q2 Ǿ Ǿ

{Q0,Q1} {Q0,Q1 } {Q0,q2}

{Q0,Q2} {Q0,Q1} {Q0}

20/09/2012Itamar Solopak [email protected] 88

Para transformar o AFND em AFD vamos simplificar mais ainda veja!

Page 89: Introdução a Teoria Da Computacao 3 Bim- Aula

Simplificando

δ 0 1

Ǿ= A Ǿ Ǿ

Q0 = B {Q0,Q1} {Q0}

Q1 = C Ǿ {Q2}

*Q2= D Ǿ Ǿ

{Q0,Q1} = E {Q0,Q1 } {Q0,q2}

{Q0,Q2} = F {Q0,Q1} {Q0}

20/09/2012Itamar Solopak [email protected] 89

Assim teremos então....

Page 90: Introdução a Teoria Da Computacao 3 Bim- Aula

Simplificando

δ 0 1

A A A

B E B

C A D

*D A A

E E F

F E B

20/09/2012Itamar Solopak [email protected] 90

Removemos então os estados inacessíveis! Alguma transição leva a C? Não, desta forma pode ser removido!A única transição que levava a D era C que foi removida então podemos remover!A única transição que levava a A era D que foi removida então podemos remover!

Page 91: Introdução a Teoria Da Computacao 3 Bim- Aula

Como ficou então

20/09/2012Itamar Solopak [email protected] 91

δ 0 1

B E B

E E F

*F E B

δ 0 1

{Q0} {Q0,Q1} {Q0}

{Q0,Q1} {Q0,Q1} {Q0,Q2}

*{Q0,Q2} {Q0,Q1} {Q0}

Desta forma temos.

Page 92: Introdução a Teoria Da Computacao 3 Bim- Aula

Como ficou então

20/09/2012Itamar Solopak [email protected] 92

δ 0 1

{Q0} {Q0,Q1} {Q0}

{Q0,Q1} {Q0,Q1} {Q0,Q2}

*{Q0,Q2} {Q0,Q1} {Q0}

Page 93: Introdução a Teoria Da Computacao 3 Bim- Aula

Finalizando

20/09/2012Itamar Solopak [email protected] 93

• Tome o diagrama de transição do AFND e crie para cada conjunto um novo estado onde o nome do estado é o próprio conjunto

• Complete as transições dos novos estados acompanhando o comportamento de cada estado individualmente tomando a UNIAO dos estados acessados

• Adicione ao estado final todos os estados que possuem no rotulo o estado final original

• Elimine os estados nunca acessados a partir do estado inicial• Complete o AFD da seguinte forma:

• Q do AFD são os estados resultantes ate este ponto• O alfabeto não é alterado• A construção do Delta já foi mencionada • O estado inicial não se altera• Os Estados finais são a união de todos os estados finais do delta

resultantes