Máquinas de Estado Finito

Slides:



Advertisements
Presentaciones similares
Introducción ¿Qué es un Algoritmo?
Advertisements

Autómatas Finitos.
Autómata Finito Un autómata finito (AF) es un modelo de computación muy restringido, sin embargo tiene una gran aplicación en reconocimiento de patrones.
DIAGRAMA DE ACTIVIDAD Roberto Certain Leonardo Molina.
Funciones y sus Propiedades Básicas
ALGORITMOS Y LENGUAJES Estructuras de Control CONDICIONAL
UML para programadores Java
Enlaces con variables en la URL en PHP Programación en Internet II.
LÓGICA DE PROGRAMACIÓN
¿Cómo hacer para que una máquina comprenda el LN?
Matemática Básica (CC.)
DIAGRAMAS DE FLUJO Y PSEUDOCÓDIGO
Concepto de programa. Directorio Concepto de programa. Analisis del problema. Resolucion del problema. Desarroollo de un programa. Partes constitutivas.
Maestría en Bioinformática Bases de Datos y Sistemas de Información Fundamentos de Matemática Ing. Alfonso Vicente, PMP
UNIVERSIDAD NACIONAL AUTÓNOMA DE MÉXICO FACULTAD DE INGENIERIA DIVISIÓN DE INGENIERÍA ELÉCTRICA COMPUTACIÓN PARA INGENIEROS NOTA IMPORTANTE: Para complementar.
ALGORÍTMICA Dpto. Ingeniería de Sistemas y Automática
Traducción dirigida por la Sintaxis
DIAGRAMAS DE CLASES Completando los diagramas de interacción, es posible identificar la especificación de las clases que participarán en la solución indicando.
Introducción a la Programación
PARADIGMA Es un esquema de pensamiento que nos lleva a concebir las cosas de una manera determinada. el término paradigma puede indicar el concepto de esquema.
CLASIFICACION DE LAS MAQUINAS DE TURING
METODOLOGIA DE LA PROGRAMACION
MODELANDO EL DOMINIO Capítulo 2 del libro guía Gloria Lucía Giraldo G. UNIVERSIDAD NACIONAL DE COLOMIBIA DISEÑO Y CONSTRUCCIÓN DE PRODUCTOS DE SOFTWARE.
ANALISIS SINTACTICO El análisis gramatical es la tarea de determinar la sintaxis, o estructura, de un programa. Por esta razón también se le conoce como.

ALGORITMOS es un conjunto preescrito de instrucciones o reglas bien definidas, ordenadas y finitas que permite realizar una actividad mediante pasos.
Complejidad Problemas NP-Completos
HILOS Y COMUNICACIÓN ENTRE PROCESOS
Programación de Computadores
Programación II Profesor A.S. MOLINA, Carlos
ALGORITMOS.
Máquinas de estados finitos
Diseño de un Controlador de Luces de un Semáforo
Análisis y Diseño Orientado a Objetos utilizando UML CAPITULO V DISEÑO DE SISTEMAS ORIENTADOS A OBJETOS.
Switch en PHP Programación en Internet II. Switch en PHP Programación en Internet II Universidad de Guadalajara | Centro Universitario de la Costa Elegir.
Problemas, algoritmos y programas: Modelar: Simular o programar su solución en un computador. Algoritmos: Es un conjunto finito, y no ambiguo de etapas.
INGENIERIA EN SISTEMAS COMPUTACIONALES
TIPOS DE DATOS ABSTRACTOS
Análisis de Sistemas Secuenciales
PROGRAMACIÓN DE RECURSOS.
UNIDAD VI: CIRCUITOS LÓGICOS SECUENCIALES
Ecuaciones Algebraicas
RESTRICCIONES Ing. Carolina Moreno Departamento de Sistemas Facultad de Electrónica y Telecomunicaciones Universidad del Cauca.
PENSAMIENTO ANALÍTICO SISTÉMICO DAISY KATERINE RODRÍGUEZ DURÁN
Unidad 1: FUNDAMENTOS DE COMPUTACIÓN Y PSEUDOLENGUAJE
- 1 - Sistema Embebidos: Propiedades de los Lenguajes y SDL Agustín J. González 1s06 Se ha tomado como base el material generado por Peter Marwedel de.
El modelo de análisis tiene como objetivo generar una arquitectura de objetos que sirva como base para el diseño posterior del sistema. Dependiendo del.
Diseño lógico secuencial con VHDL
Villahermosa, Tab. 21 septiembre MATERIA: Investigacion de operaciones TEMA: Lineas de espera ALUMNOS: Maria isabel vega chanona HORA: 11:00 am a.
Ecuaciones Algebraicas
Términos algoritmo diseñar algoritmo implementar algoritmo
ELEMENTOS DE COMPUTACIÓN Profesor: Guillermo Figueroa
Límites y continuidad Podríamos empezar diciendo que los límites son importantes en el cálculo, pero afirmar tal cosa sería infravalorar largamente su.
Operadores Lógicos Y (Conjunción): Tanto P como Q (Ambas). O (Disyunción): Puede ser que P o Q o ambas (mínimo 1)
ALGORITMO QUE ES ??.
Ingeniería de Requisitos
Elaboración de algoritmos usando lógica de programación
PROGRAMACIÓN ESTRUCTURADA LOS DIAGRAMAS DE ESTADO
LIC. JOSEPH RUITON RICRA
¿QUE ES EL DIAGRAMA DE ESTADO ?
DIAGRAMA DE ESTADO.
PROGRAMACION DE Pilas o Stacks
* Cuando nos permite desarrollar un programa que necesitamos para tomar un conjunto de buenas prácticas para hacer eso. Esto se debe a que podemos ahorrar.
UNIDAD 2: “Características del Modelado UML” CONTENDIDO Elaborado por: Ingeniero Harold Cabrera Meza Actualizado por: Ingeniero Nilson Albeiro Ferreira.

ESTE TERMINO SE DEFINE COMO : UN PROCESO EN EL CUAL SE NOS DESCRIBE UN PROBLEMA (EN LENGUAJE NATURAL), LUEGO DE ESTO SE PLANTEAN POSIBLES RESOLUCIONES.
Máquinas de estado con VHDL
Programación I Prof. Carolina Cols. Algoritmo es una lista bien definida, ordenada y finita de operaciones que permite hallar la solución a un problema.
Prof. Jonathan Silva Ingeniería Civil – Informática I Ingeniería Civil Informática I Clase 3 – Diseño de Programas.
UNIVERSIDAD TECNOLÓGICA DE PANAMÁ Facultad de Ingeniería de Sistemas Computacionales Programa de Lic. en Informática Educativa Computación.
Transcripción de la presentación:

Máquinas de Estado Finito Mtra. Carolina Galaviz Inzunza

Definición Las máquinas de estado finito son una herramienta muy útil para especificar aspectos relacionados con tiempo real, dominios reactivos o autónomos, computación reactiva, protocolos, circuitos, arquitecturas de software, etc. Posee sintaxis y semántica formales y que sirve para representar aspectos dinámicos que no se expresan en otros diagramas. Las máquinas de estados finitos son sencillas para especificar: sistemas de control, compilación, comparación de patrones, diseño de hardware, otras aplicaciones no relacionadas con la computación..

Sintaxis S= Estados = Extensiones A=trazas Sk= Estado inicial Traza: el conjunto de todos los caminos (de ejes) alcanzables desde el estado inicial.

Ejemplo: Lámpara   Una lámpara puede estar encendida o apagada dependiendo de la acción del switch. Nota: se debe poner una flecha para indicar cual es el estado inicial S= Estados = acciones A=trazas Sk= Estado inicial

Deadlock Formalmente hablando, una FSM S , Σ, A ⊆ S × Σ × S , sk tiene deadlock, si existe algún nodo s ∈ S , tal que no existen un evento e y un nodo t ∈ S tal que ( s, e, t ) ∈ A . En otras palabras, si existe algún nodo que no posea “salida” para ningún evento.

Ejemplo de DeadLock Diseño de cascada, desarrollo de software. Partido de futbol. Ya no vuelven a iniciar

Extensiones: Condiciones: Son expresiones booleanas que determinan si una transición entre estados puede realizarse. Se escriben entre corchetes. Acciones: Inmediatamente después de ejecutar una transición y antes de arribar al siguiente estado, la máquina de estado ejecuta una acción. Básicamente, para nosotros, las acciones serán asignaciones de valores a variables. En algunos contextos, dentro de las acciones, también se lanzan eventos (para luego sincronizar otras máquinas). Se escriben entre corchetes. Variables: Sus valores posibles deben pertenecer a un dominio finito. Pueden utilizarse estructuras como arreglos o tipos abstractos de datos en general (cómo por ejemplo conjuntos o pilas). Las variables pueden usarse dentro de las expresiones booleanas de las condiciones y su valor puede cambiarse utilizando acciones, generalmente asignaciones. A su vez, salvo explicitado lo contrario, las variables son compartidas por todas las FSMs de la composición (es decir pueden verse como globales a todas las máquinas de estado).

Ejemplo: Uso de condiciones, variables y acciones. Un local de ropa puede estar vacío o lleno según la cantidad de personas que hay en su interior. Inicialmente está vacío, pero luego de ingresar la primer persona esta lleno. A partir de ahí, la gente puede ingresar o salir. Cuando sale el último, vuelve a estar vacío. Todas las variables se deben definir de antemano: contador : [0, 99999999] (por simplicidad, permitiremos decir N . Sin embargo, debemos resaltar que esto no es del todo correcto: el dominio debe tener un número finito de valores).

MEF Temporizadas Muchas veces los disparadores de los eventos que provocan los cambios de estado de las máquinas son iniciados por el paso del tiempo. Por ej. el cambio de luz de los semáforos Un rociador automático de césped que se enciende y riega cada 2 horas por 10 minutos. En todos estos casos la decisión de que ocurran los eventos es disparada por el tiempo. Para poder representar este funcionamiento utilizando MEFs se hace necesario extenderlas agregando un componente extra denominado “timer”. Declaración: nombreTimer: timer. En -unidad de tiempo-. (por ej. segundos). Las únicas operaciones permitidas por el timer es “resetearlo” (es decir colocar su cuenta en 0) y chequear su valor (es decir, ver el tiempo transcurrido desde su último “reset”). Una vez que el timer es “reseteado” empieza a contar el tiempo transcurrido hacia adelante, y eso es todo lo que sabe hacer

Ejemplo: MEF temporizadas Descripción: inicialmente un rociador esta apagado y empieza la cuenta regresiva de t , pasan 120 minutos entonces el rociador empieza a funcionar durante 10 minutos, una vez que transcurren 10 minutos se cierra el grifo y vuelve a iniciar la cuenta regresiva.

No Determinismo Si dado un estado y dado un evento, existe más de una transición válida (cuya condición, si existe, se satisface), hacia distintos estados, se asumirá un comportamiento no determinístico: es decir, cualquiera de los estados posibles podrá ser alcanzado, sin orden alguno.

  Abusos de Notación Existen ocasiones que explotar los estados, se forma una especie de abanico, en estos casos se dice que hay un abuso de notación, esto se puede evitar si se diseñan MEF más optimas. Ver ejemplos. Sin hablar Hablando

Ejemplo: Planta Quimica

Ejemplo: Pacman Esta MEF plasma los estados del fantasma rojo del PACMAN.

Ejemplo: Máquina de peluches

Ejemplo: Funcionamiento Acordeón

Ejemplo: Báscula

Ejemplo: Movie Rental

Ejemplo: Cajero, Retirar Saldo