Autómatas finitos con salidas



Documentos relacionados
Autómatas finitos no deterministas (AFnD)

Autómatas de Estados Finitos

UNIVERSIDAD AUTÓNOMA DE BAJA CALIFORNIA SUR. Ciencias de la ingeniería

Autómatas Finitos y Lenguajes Regulares

Serafín Moral Departamento de Ciencias de la Computación. Modelos de Computación ITema 2: Autómatas Finitos p.1/88

Teoría de Autómatas y Lenguajes Formales. Capítulo 1: Introducción. Teoría de Autómatas y Lenguajes formales es un repaso a la informática teórica.

TEORÍA DE AUTÓMATAS Y LENGUAJES FORMALES

Clase 08: Autómatas finitos

Máquinas Secuenciales, Autómatas y Lenguajes Formales. Tema 4: Autómatas finitos deterministas. Holger Billhardt holger.billhardt@urjc.

Clase 09: AFN, AFD y Construcción de Thompson

2.Teoría de Autómatas

Proyecto Unico - Parte 1 - Solución

Tema 2: Autómatas finitos

Tema 1: Introducción. Teoría de autómatas y lenguajes formales I

Área Académica: Licenciatura en Sistemas Computacionales

PROGRAMACIÓN ALGORITMOS y DIAGRAMAS

Máquinas de estado finito y expresiones regulares

Definición(2) La base (r) de un sistema de numeración especifica el número de dígitos o cardinal* de dicho conjunto ordenado. Las bases más utilizadas

SSL Guia de Ejercicios

Teoría de Autómatas y Compiladores [ICI-445] Capítulo 2: Autómatas Finitos

Unidad de Promoción y Desarrollo Guadiana OBJETIVO GENERAL

UNIVERSIDAD TECNOLOGICA DE PEREIRA FACULTAD DE INGENIERIAS

Teoría de la Computación y Lenguajes Formales

Capítulo 4 Representación interna de los Datos

UNIDAD I. ALGORITMOS

Programación Digital I

2: Autómatas finitos y lenguajes regulares.

Sistema electrónico digital (binario) que procesa datos siguiendo unas instrucciones almacenadas en su memoria.

NIVEL 14: ESTRUCTURAS DE ACCESO DIRECTO

TEMA I: LOS CONCEPTOS FUNDAMENTALES DE LA TEORÍA DE LA COMPUTABILIDAD

SISTEMAS DE NUMERACIÓN

IDENTIDAD EN PRECISIÓN VARIABLE

Definición formal de autómatas finitos deterministas AFD

Máquina de estado finito con salida sin salida

Modelos de Computación I

UNIVERSIDAD SAN MARCOS

Ingeniería en Computación. Autómatas y Lenguajes Formales. Unidad de competencia III: Conocer, utilizar y manipular expresiones regulares

Autómata finito y Expresiones regulares A* C. B

Informática Básica. Definiciones. Conceptos generales e historia

Introducción a la Teoría de Automátas

Introducción a Autómatas Finitos

Introducción al análisis numérico

LENGUAJES DE PROGRAMACION I. Propósito del curso :

descripción del argumento identificador tipo longitud condición restricción

Tema 3 Constantes, Variables y Tipos

Algoritmos y Diagramas de flujo

Capacidad : Número de valores diferentes que puede representar un código. Depende del número de dígitos usados.

Microsoft Access 2003 (Completo)

Ejercicios Representación de la información

UNIVERSIDAD AUTÓNOMA DE BAJA CALIFORNIA SUR INGENIERÍA EN TECNOLOGÍA COMPUTACIONAL. ASIGNATURA Programación I. Básica ETAPA DE FORMACIÓN.

Tema 3.- Gramáticas formales

UNIVERSIDAD DE OCCIDENTE UDO

Método de simplificación de funciones lógicas utilizando el método de Quine McCluskey

Nombre de la asignatura: Lenguajes y Autómatas I. Créditos: Aportación al perfil

La herramienta ArtEM: Aritmética Entera y Modular

Repaso. Lenguajes formales

2. SISTEMAS Y CÓDIGOS DE NUMERACIÓN

Lógica de Predicados

1. Cadenas EJERCICIO 1

UNIVERSIDAD INTERAMERICANA DE PUERTO RICO RECINTO METROPOLITANO

Autómatas y Lenguajes Formales. Tema 3.2: Autómatas Finitos No Deterministas. Luis Peña luis.pena@urjc.es

TEMA 5. GRAMÁTICAS REGULARES.

MICROSOFT ACCESS 2007

TEMA 5: INTRODUCCIÓN A LA INGENIERÍA DEL SOFTWARE. Definición de Ingeniería del Software

Capítulo 5 IDENTIFICADORES, VARIABLES Y CONSTANTES. Presentación resumen del libro: "EMPEZAR DE CERO A PROGRAMAR EN lenguaje C"

Teoría de conjuntos. Tema 1: Teoría de Conjuntos.

Fundamentos de Computación

CAPITULO II. ENTIDADES PRIMITIVAS PARA EL DESARROLLO DE ALGORITMOS

AUTÓMATAS DE PILA. Nota: Si existe transición de tipo (2), sólo se garantiza que AP es determinístico si s A, δ( e i, s, X) está indefinida.

MODELOS DE COMPUTACION I Preguntas Tipo Test. 1. El lema de bombeo puede usarse para demostrar que un lenguaje determinado es regular.

AUTÓMATAS, GRAMÁTICAS Y LENGUAJES

Ingeniería Informática

En efecto, todo natural, todo número entero, acepta una escritura en forma de fracción:

Los números naturales

Teoría de la Computación para Ingeniería de Sistemas: un enfoque práctico. Prof. Hilda Contreras

Centro Asociado Palma de Mallorca. Tutor: Antonio Rivero Cuesta

Teoría de la Computación

Teoría de Autómatas y Lenguajes Formales.

ÍNDICE AUTORES...13 PRÓLOGO...19 INTRODUCCIÓN...21 SIMBOLOGÍA Y NOMENCLATURA...25 PROGRAMAS UTILIZADOS...29

CURSOSO. Aritmética: Númerosnaturalesyenteros. Númerosracionalesyfraciones. MATEMÁTICAS. AntonioF.CostaGonzález

DESARROLLO DE UN ENTORNO DE SIMULACIÓN PARA AUTÓMATAS DETERMINISTAS CAROLINA GONZÁLEZ NARANJO CÉSAR AUGUSTO MONTOYA ROMÁN

Análisis de problemas

TEORIA DE AUTOMATAS.

Lenguajes No Regulares

DISEÑO CURRICULAR ALGORITMOS, ESTRUCTURAS Y PROGRAMACIÓN I

Conceptos básicos de programación. Arquitectura de Computadoras. Conceptos básicos de programación

1. EJERCICIOS TEMAS 1 Y 2.

Tema: Compilador Micro C

2. ENTIDADES PRIMITIVAS PARA EL DESARROLLO DE ALGORITMOS

CLAVE ASIGNATURA REQUISITOS HORA/SEMANA CREDITOS TI-8 PROGRAMACION II 80% DE ASISTENCIA 4 6

4. El código BCD utiliza para codificar cada símbolo decimal: a) 4 bits b) 6 bits c) 8 bits d) ninguna de las anteriores es correcta

ESTRUCTURA Y TECNOLOGÍA DE COMPUTADORES PRÁCTICAS DE LÓGICA CABLEADA

La Jerarquía de Chomsky

autómatas finitos y lenguajes regulares LENGUAJES FORMALES Y

Denominación de la materia. N créditos ECTS = 36 carácter = MIXTO PROGRAMACIÓN

Indice del curso básico programación desde cero Visual Basic Nivel I (CU00302A)

b) Las teclas pueden generar varios impulsos tanto al pulsar como al soltar (rebotes durante t < 100 ms, p. ej.). El usuario pulsa la tecla así

Programación en Capas con Visual C#: desarrollo rápido de aplicaciones

Qué es una computadora?

Transcripción:

Agnatura: Teoría de la Computación Unidad : Lenguajes Regulares Tema 2: Autómatas con salidas Autómatas finitos con salidas Importancia y aplicación de los autómatas finitos Los Autómatas finitos constituyen un modelo útil para muchos tipos importantes de hardware y software. Por ejemplo:. Software para el diseño y la verificación del comportamiento de circuitos digitales. 2. El analizador léxico de un compilador típico, es decir es el componente del compilador que descompone el texto inicial en unidades lógicas tales como identificadores, palabras reservadas y gnos de puntuación. 3. Software para explorar grandes corpus de texto, como conjuntos de páginas Web, o para descubrir las apariciones de ciertas palabras, frases u otros patrones. 4. Software para comprobar la corrección de cualquier tipo de stemas que tengan un número finito de estados diferentes (Por ejemplo: protocolos de comunicación, protocolos de procesamiento de información). La ventaja de tener solo un número finito de estados es que el stema se puede implementar con un número fijo de recursos. Por ejemplo podría hacerse una implementación de hardware con un circuito, o mediante un programa sencillo a partir de un conjunto limitados de datos. Los guientes son ejemplos de subproblemas aplicados al problema de la compilación de un lenguaje de compilación o cualquier lenguaje formal que pueden ser reconocidos por AF:. Se quiere reconocer las palabras reservadas del lenguaje de programación C. Por ejemplo: main, for, while, if, else, etc. 2. Se quiere reconocer los nombres de variables válidos en el lenguaje de programación C 3. Se quiere reconocer las expreones numéricas llamadas literales numéricas con la separación de la parte entera y la parte decimal separada por coma,. Por ejemplo, son válidos los guientes literales: 57, +, -2665e+7, 3,4, -,4E-7,,2E-2, e, E-6, - 34225,33. La letra e y E se refiere a un exponente y va seguido de un número entero. Con base a estos ejemplos, elabore un AF para reconocer el lenguaje de estas literales numéricas. Además, suponga que no existe límite en el número de dígitos consecutivos en ninguna parte de la expreón (límite de preción). 4. Se quiere reconocer cadenas alfanuméricas de fechas en formato dd-mm-aaaa En las seones anteriores se hizo una revión teórica de los autómatas finitos. Se presentaron los diferentes tipos de autómatas: determinista, no determinista y con tranciones nula. En este tema se presentan los autómatas finitos con salida, los cuales son autómatas finitos que son capaz de generar una salida adicional, en lugar de tener la salida binaria Prof. Hilda Contreras Teoría de la Computación - Pregrado

acepto o no acepto al problema de deción sobre una cadena w en Σ* que está en el lenguaje L. Estos tipos de autómatas son muy utilizados en la vida real en problemas de cálculo matemático, transformación, traducción, contador, definición de protocolos, etc. Ellos proveen un valor agregado de mayor utilidad práctica que los autómatas finitos. Sin embargo, todas estas máquinas (AFD, AFND, AFND-ε, y AF con salida) son equivalentes, en el sentido de que reconocen el mismo tipo de lenguajes, pues poseer este valor agregado no los hace más o menos poderosa que los AF (todos reconocen el tipo de lenguajes regulares según la jerarquía de Chomsky). Definición de un Autómata con Salida: Un AF con salida esta definido como: AFS = (Q, Σ,, q, δ, λ) Q es el conjunto finito de estados Σ es el alfabeto del lenguaje es el alfabeto de salida q es el estado inicial δ es la función de tranción λ es la función de salida (estado o tranción) No existe el conjunto de estados finales F, porque ahora la respuesta no es 'acepta' o 'no acepta' no que es una cadena formada por los símbolos del alfabeto de salida a través de una función de transformación de salida λ. Existen 2 tipos de autómatas finitos con salida, según la función de tranción de salida que se aplique: A) La Máquina de Moore: una salida asociada a cada estado B) La Máquina de Mealy: una salida asociada a cada tranción Autómata con salida de Moore : La función de tranción de salida esta asociada al estado actual, es decir λ: Q En la Máquina de Moore una entrada de longitud n aa2 an, la salida de M es de longitud n+, tal que λ(q)λ(q) λ(qn) es la secuencia de estados de q,q, qn tal que δ(qi-,ai) = qi para i n. Nota: Para es estado inicial se defina que la λ(q) = ε Entonces, un AFD puede ser visto como un caso particular de la Máquina de Moore donde el alfabeto de salida es {,} y el estado q es de aceptación y solo λ(q) =. Ejemplo: Realizar un autómata para determinar o calcular el reduo de la divión entera de 3 (modulo 3) de un número decimal expresado en binario. Si m se divide entre 3 y su resultado es x y su reduo es p, entonces es claro que x * 3 + p = m X * 3 es múltiplo de 3, y p llamado el módulo de 3 y es un valor entero, tal que p pertenece a los poble valores {,, 2 }. El nombre Máquina de Moore viene de su promotor: Edward F. Moore, pionero en el estudio de Autómatas, 956. Prof. Hilda Contreras Teoría de la Computación - Pregrado 2

Moore resolvió este problema en los años 5 y determinó que para tres reduos pobles necetaba 3 estados. Decimal de m Binario de m 2 2 3 4 5 2 6 7 Decimal de p inicio 2 q q q 2 El autómata con salida definido por AFS = (Q, Σ,, q, δ, λ), donde los conjuntos Q = {q,q,q2}, Σ = {,} y = {,,2}. La función de tranción de salida esta definida por la formula λ(qi) = i, es decir: λ q q q2 2 Para el número decimal, expresado en binario como el autómata con salida de Moore anterior se ejecuta como un AFD salvo que en cada paso de tranción se ejecuta la función de salida también, comportándose de la guiente forma: δˆ(q,) = δ(δˆ(q,),) = = δ(δ(δ(δ(δˆ(q,ε),),),),) δˆ(q,ε) = q = δ(δ(δ(δ(q,),),),) λ(q) = = δ(δ(δ(q,),),) λ(q) = = δ(δ(q2,),) λ(q2) = 2 = δ(q2,) λ(q2) = 2 = q2 λ(q2) = 2 La salida que es el resultado del autómata anterior corresponde a λ(q2) = 2 (q2 es el estado que alcanza el autómata al terminar de procesar la cadena de entrada), es decir 2 es el reduo de la divión entera de entre 3. Sin embargo, el autómata muestra toda la secuencia de salida: 222, el último símbolo del alfabeto de salida es el que soluciona el problema. Autómata con salida de Mealy 2 : La función de tranción de salida esta asociada con la tranción, es decir λ: Q x Σ En la Máquina de Mealy para una entrada de longitud n aa2 an, la salida de M es de longitud n, tal que λ(q,a), λ(q,a2) λ(qn-,an) donde q,q, qn es la secuencia de estados de tal que δ(qi-,ai) = qi para i n. Nota: la entrada de la cadena vacía en cualquier estado λ(q, ε) = ε 2 El nombre "Máquina de Mealy" viene dado por G. H. Mealy, un pionero de las máquinas de estados, quien escribió Un Método para ntetizar Circuitos Secuenciales, 955 Prof. Hilda Contreras Teoría de la Computación - Pregrado 3

Ejemplo: Realizar un autómata para reconocer las cadenas binarias que terminan en o en, y que de cómo salida las palabras o no cuando respectiva la cadena sea aceptada o no. inicio q /no /no /no q /no / AFS = (Q, Σ,, q, δ, λ), donde los conjuntos Q = {q,q,q2}, Σ = {,} y = {, no }. La función de tranción de salida esta definida por la guiente tabla: λ q no no q no q2 no q 2 / Para la cadena el autómata con salida de Mealy anterior se ejecuta como un AFD salvo que en cada paso de tranción se ejecuta la función de salida también, comportándose de la guiente forma: δˆ(q,) = δ(δˆ(q,),) = = δ(δ(δ(δ(δˆ(q,ε),),),),) δˆ(q,ε) = q = δ(δ(δ(δ(q,),),),) λ(q,) = no = δ(δ(δ(q,),),) λ(q,) = no = δ(δ(q2,),) λ(q2,) = no = δ(q,) λ(q,) = = q La salida que es el resultado del autómata anterior corresponde a λ(q,) = (última tranción del autómata al terminar de procesar la cadena de entrada), es decir es el reduo de reconocer la cadena de entrada ( pertenece). Sin embargo, el autómata muestra toda la secuencia de salida: nonono, el último símbolo del alfabeto de salida es el reconocimiento de la cadena. Transformación de un Autómata de Mealy a un Autómata de Moore: Hay un procedimiento para obtener una Máquina de Moore a partir de una Máquina de Mealy. Conste en el guiente algoritmo que permite obtener una máquina de Moore M2 a partir de una máquina de Mealy M. M = (Q, Σ,, δ, λ, q) un autómata de Mealy M2 = (Qx, Σ,, δ, λ, [q, b]) un autómata de Moore Los estados de M2 son pares Q x, por ejemplo [q,b] con q en Q y b en δ ([q,b],a) = [ δ(q,a), λ(q,a) ] λ(q,b) = b Prof. Hilda Contreras Teoría de la Computación - Pregrado 4

Por ejemplo: el autómata de Mealy anterior se transforma en un Moore utilizando esta definición. Q = {q, q, q2}, = {, no}, Σ = {, } Q x = { [q,], [q,no], [q,], [q,no], [q2,], [q2,no] } δ ([q,],) = [q,no] δ ([q,],) = [q2,no] δ ([q,no],) = [q,] δ ([q,no],) = [q2,no] δ ([q,],) = [q,] no inicio [q,] [q,no] δ ([q,],) = [q2,no] δ ([q2,no],) = [q,no] no [q2,no] [q,] δ ([q2,no],) = [q2,] δ ([q2,],) = [q,no] [q2,] δ ([q2,],) = [q2,] Ejercicios:.- Construir autómatas con salida para solucionar los guientes problemas: a) Máquina expendedora de boletos que muestre como salida el mondo introducido y el resto. Asuma que la máquina reconoce solo las monedas de,.5 y.25 b) Dado un número en binario (a partir de los dígitos menos gnificativos) calcule la función incremento o sucesor en binario. Puede traducirse este autómata a un circuito lógico? c) Dado un número en binario (a partir de los dígitos menos gnificativos) multiplique por 2 en binario (condere en que conste multiplicar un número por su base). d) Dado una cadena en el alfabeto binario {,} muestre su traducción o codificación sobre el alfabeto {a,b}, tal que una a es equivalente a 2 unos seguidos y una b es equivalente a dos ceros seguidos (Ejemplo sencillo de la codificación de caracteres, por ejemplo el ASCII). Referencias [] John E. Hopcroft, Rajeev Motwani, Jeffrey D. Ullman., Introducción a la Teoría de Autómatas y Lenguajes Formales. PrenticeHall, Edición antigua. Prof. Hilda Contreras Teoría de la Computación - Pregrado 5