introdução a teoria da computacao 3 bim- aula
Post on 16-Jan-2016
82 Views
Preview:
DESCRIPTION
TRANSCRIPT
FAFIMAN – Depto Informatica
Curso: Ciência da Computação
Itamar Solopak
2012
isolopak@commandperfect.com.br
EMENTA:Estudo de modelos teóricos da computação, de linguagens formais e
autômatos.
OBJETIVOS:
- Compreender como uma linguagem é desenvolvida
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
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
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..
• Duas Aulas Semanais
• Dificuldade Extrema •Exige Leitura e Pesquisa
• 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
• 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
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.
• 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
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 -isolopak@commandperfect.com.br
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 -isolopak@commandperfect.com.br
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 -isolopak@commandperfect.com.br
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 -isolopak@commandperfect.com.br
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 -isolopak@commandperfect.com.br
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 -isolopak@commandperfect.com.br
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 -isolopak@commandperfect.com.br
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 -isolopak@commandperfect.com.br
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 -isolopak@commandperfect.com.br
Revisão de Conceitos Matemáticos
�Conjuntos
�Relações
�Funções
20/09/2012 20Itamar Solopak -isolopak@commandperfect.com.br
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 -isolopak@commandperfect.com.br
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 -isolopak@commandperfect.com.br
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 -isolopak@commandperfect.com.br
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 -isolopak@commandperfect.com.br
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 -isolopak@commandperfect.com.br
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 -isolopak@commandperfect.com.br
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 -isolopak@commandperfect.com.br
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 -isolopak@commandperfect.com.br
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 -isolopak@commandperfect.com.br
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 -isolopak@commandperfect.com.br
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 -isolopak@commandperfect.com.br
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 -isolopak@commandperfect.com.br
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 -isolopak@commandperfect.com.br
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 -isolopak@commandperfect.com.br
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 -isolopak@commandperfect.com.br
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 -isolopak@commandperfect.com.br
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 -isolopak@commandperfect.com.br
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 -isolopak@commandperfect.com.br
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 -isolopak@commandperfect.com.br
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 isolopak@commandperfect.com.br� Com assunto TRABALHO INTRODUCAO TEORIA DA
COMPUTACAO
20/09/2012Itamar Solopak -isolopak@commandperfect.com.br 40
Entendendo
20/09/2012Itamar Solopak -isolopak@commandperfect.com.br 41
abraA,b,r ..
Σ={a,b,c,..,z}, W={abra} Z={cadabra} X={if, then, else, for ...}
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 -isolopak@commandperfect.com.br 42
20/09/2012Itamar Solopak -isolopak@commandperfect.com.br 43
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 -isolopak@commandperfect.com.br 44
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 -isolopak@commandperfect.com.br 45
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 -isolopak@commandperfect.com.br 46
Linguagens formais
20/09/2012Itamar Solopak -isolopak@commandperfect.com.br 47
Reconhecedoras
Geradoras ..
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 -isolopak@commandperfect.com.br 48
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 -isolopak@commandperfect.com.br 49
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 -isolopak@commandperfect.com.br 50
Maquinas de estado Finito - Porta
20/09/2012Itamar Solopak -isolopak@commandperfect.com.br 51
Frente Retaguarda
Visão Área de uma porta automática
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 -isolopak@commandperfect.com.br 52
Maquinas de estado Finito - Porta
20/09/2012Itamar Solopak -isolopak@commandperfect.com.br 53
Fechado Aberto
NenhumFrenteRetaguardaAmbos
FrenteRetaguardaAmbos
Nenhum
Maquinas de estado Finito - Porta
20/09/2012Itamar Solopak -isolopak@commandperfect.com.br 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
Maquinas de estado Finito –Interruptor
20/09/2012Itamar Solopak -isolopak@commandperfect.com.br 55
LigadoDesligad
o
Pressionar
Pressionar
EstadoInicial
Maquinas de estado
20/09/2012Itamar Solopak -isolopak@commandperfect.com.br 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},
Maquinas de estado
20/09/2012Itamar Solopak -isolopak@commandperfect.com.br 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},
Exemplos� Lavadora de Roupas/loucas
� Termômetro eletrônico
� Relógios digitais
� Calculadoras
� Maquinas de Vendas automáticas (coca cola)
20/09/2012Itamar Solopak -isolopak@commandperfect.com.br 58
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 -isolopak@commandperfect.com.br 59
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 -isolopak@commandperfect.com.br 60
Autômatos Finitos Determinísticos
20/09/2012Itamar Solopak -isolopak@commandperfect.com.br 61
i Estado inicial
f Estado final
s Restante dos Estados
s a s´ Transicao ∂(s,a)=s´
Representação Gráfica
AFD - Exercícios
20/09/2012Itamar Solopak -isolopak@commandperfect.com.br 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
AFD - Exercícios
20/09/2012Itamar Solopak -isolopak@commandperfect.com.br 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
AFD - Exercícios
20/09/2012Itamar Solopak -isolopak@commandperfect.com.br 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 - - -
AFD - Exercícios
20/09/2012Itamar Solopak -isolopak@commandperfect.com.br 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 .
AFD - Exercícios
20/09/2012Itamar Solopak -isolopak@commandperfect.com.br 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
AFD - Exercícios
20/09/2012Itamar Solopak -isolopak@commandperfect.com.br 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
Solução do exército 4
20/09/2012Itamar Solopak -isolopak@commandperfect.com.br 68
AFD - Exercícios
20/09/2012Itamar Solopak -isolopak@commandperfect.com.br 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}
Segundo Bimestre
Bem Vindos !!!
20/09/2012Itamar Solopak -isolopak@commandperfect.com.br 70
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 -isolopak@commandperfect.com.br 71
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 -isolopak@commandperfect.com.br 72
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 -isolopak@commandperfect.com.br 73
AFND
20/09/2012Itamar Solopak -isolopak@commandperfect.com.br 74
Um estado pode ter zero,um ou mais arcos saindo para cada símbolo do alfabeto
AFND
20/09/2012Itamar Solopak -isolopak@commandperfect.com.br 75
Testando a cadeia 110q0
1
q0 q11
q0 q1 Parou
1
0
q0
A cadeia é aceita se um estado final é encontrado!
q2
AFND
20/09/2012Itamar Solopak -isolopak@commandperfect.com.br 76
Transição
Delta 0 1
Q0 Q0 {Q0,Q1}
Q1 Q2 Ø
Q2 Ø Ø
{Q0,Q1}, se torna um CONJUNTO
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 -isolopak@commandperfect.com.br 77
Definição formal para AFND
20/09/2012Itamar Solopak -isolopak@commandperfect.com.br 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
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 -isolopak@commandperfect.com.br 79
Exercício
20/09/2012Itamar Solopak -isolopak@commandperfect.com.br 80
20/09/2012Itamar Solopak -isolopak@commandperfect.com.br 81
Q0
aabbab
Q0
b
Q2 Q1b
Q4
Parou!
a
Q4
Q4
Q0
Q0
Q0b
Q0Cadeia Aceita!
Exercício
20/09/2012Itamar Solopak -isolopak@commandperfect.com.br 82
Solução
20/09/2012Itamar Solopak -isolopak@commandperfect.com.br 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
Autômatos � Equivalência entre AFD e AFND
20/09/2012Itamar Solopak -isolopak@commandperfect.com.br 84
Transformar AFND em AFD δ 0 1
Q0 {Q0,Q1} {Q0}
Q1 Ǿ {Q2}
*Q2 Ǿ Ǿ
20/09/2012Itamar Solopak -isolopak@commandperfect.com.br 85
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 -isolopak@commandperfect.com.br 86
Novo!
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 -isolopak@commandperfect.com.br 87
Existe alguma nova
Transição?
Não! Então vamos
simplificar
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 -isolopak@commandperfect.com.br 88
Para transformar o AFND em AFD vamos simplificar mais ainda veja!
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 -isolopak@commandperfect.com.br 89
Assim teremos então....
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 -isolopak@commandperfect.com.br 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!
Como ficou então
20/09/2012Itamar Solopak -isolopak@commandperfect.com.br 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.
Como ficou então
20/09/2012Itamar Solopak -isolopak@commandperfect.com.br 92
δ 0 1
{Q0} {Q0,Q1} {Q0}
{Q0,Q1} {Q0,Q1} {Q0,Q2}
*{Q0,Q2} {Q0,Q1} {Q0}
Finalizando
20/09/2012Itamar Solopak -isolopak@commandperfect.com.br 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
top related