Beruflich Dokumente
Kultur Dokumente
Cada una de estas dos celdas debe contener el nombre del siguiente estado en el que
va la máquina, es decir, cada uno es "ON" o "OFF".
Dado que hay dos posibilidades para cada celda hay 4 combinaciones en total. Cada
uno de estos puede ser pensado como un programa que puede ser cableado en Cíclope.
Aquí hay un programa de este tipo.
Ejemplo 1:
Cuando la luz está apagada, una pulsación de tecla la encenderá. Cuando está
encendido, al presionar la tecla se desactiva. Este programa hará que Cyclops cambie
repetidamente la lámpara de salida de encendido y apagado cada vez que se presiona
la tecla "1".
Esta computadora muy simple, que ejecuta este programa muy simple, de hecho se
fabrica realmente, aunque no como un dispositivo de computación. Más bien es un
interruptor de la luz del interruptor como usted consigue en muchas lámparas de
escritorio. Presione el botón, y si la luz está apagada, entonces se enciende. Empuje de
nuevo y la luz se apaga. Hace muchos años, tales interruptores estaban conectados a
cables largos de los techos y cada vez que se tira del cable, la luz del techo cambiaría
su estado.
Ahora puede que nunca haya pensado en un mecanismo como un ordenador primitivo,
pero sí puede calcularlo. Podemos usarlo para calcular si un número dado n es impar o
incluso examinando el efecto de n pulsaciones de la clave. Primero restablecemos la
máquina apagando la luz. Luego pulsamos el botón n veces. Si, cuando terminamos, la
luz está encendida, entonces n es impar. Si termina apagado, el número es par. En total
hay cuatro diferentes "programas" que Cyclops se puede dar. Uno fue dado en el
Aunque lo describimos de forma abstracta, esta máquina en particular puede tener una
interpretación muy familiar. Imagine que usted es el operador de un paseo de parque de
diversiones y tiene que llenar coches de cuatro plazas de una sucesión de parejas y
clientes individuales.
Sus instrucciones son esperar hasta que el coche esté lleno antes de dejarlo ir. Sin
embargo, si llega una pareja, en lugar de dividirlos, dejar que el coche ir con sólo 3
pasajeros y poner a la pareja en la siguiente.
La entrada consiste en los clientes que llegan en 1 y 2. Los cuatro estados, de A a D,
corresponden a las cuatro situaciones posibles que puede tener con el coche actual. El
estado A es Donde tienes un coche completamente vacío y los estados B, C y D son
donde hay uno, dos o tres pasajeros esperando en el coche. Examine la tabla de estado
para ver que usted está de acuerdo en que describe con precisión la situación.
Ambos ejemplos 1 y 2 sirven para otro propósito que el cálculo. El hecho de que un
interruptor de luz pueda distinguir entre números pares e impares no es el propósito
para el cual se hizo, y el operador del paseo en tren fantasma ciertamente no se ve a sí
mismo como un engranaje en alguna computadora gigante, pero bastante débil.
En lo que sigue, nos concentraremos en las máquinas de estado finito como dispositivos
para realizar algún tipo de cálculo. La naturaleza física de los estados no nos afectará,
sólo el movimiento abstracto de estado a estado.
En la práctica, las máquinas de estado finito se implementan electrónicamente de una
de dos maneras. Podemos construir un chip electrónico, incorporando la lógica de la
máquina. Esto se hace cuando la máquina es parte de un equipo que está diseñado p
ara reaccionar a la entrada externa de alguna manera definida. O podemos incorporar
la máquina de estado finito dentro de algún programa de computadora, donde la
computadora simula a máquina.
De hecho, una computadora misma es una máquina de estado finito. El conjunto de
estados es el conjunto de todas las combinaciones posibles de bits de memoria interna.
Esto es enorme, pero finito.
4.3. Máquinas Mealy
Para ser de cualquier uso en computación, una máquina de estado finito debe tener
alguna forma de salida. Hay varias maneras de proporcionar esa salida. Una manera
obvia es hacer que la máquina lo imprima (en una pantalla, o en papel, o tal vez como
una secuencia de tonos). Necesitamos un alfabeto de salida, O, que puede o no ser el
mismo que el alfabeto de entrada. Cada vez que la máquina lee un carácter de la
entrada, sale un carácter así como cambia su estado.
Para describir la salida de tal máquina podemos tener una función adicional que asigna
a cada combinación de estado y carácter de entrada, un carácter de salida. En otras
palabras, tenemos una función P: S I O. Cuando la máquina está en estado s y lee
el carácter c, la salida es P (s, c).
Una máquina de este tipo se conoce como Mealy Machine. Podemos describir una
máquina Mealy por un par de mesas. La tabla de estados proporciona el nuevo estado,
para cada combinación de estado y carácter y la tabla de salida proporciona el carácter
que se emite en cada etapa. El estado inicial se indica poniendo una flecha corta delante
de ese estado en la columna de la izquierda.
Ejemplo 3: La siguiente máquina Mealy hace eco de la entrada después de un retardo
de dos pasos. Los dos primeros caracteres de salida son ambos 0. A continuación, la
salida en cada etapa es la entrada de dos pasos anteriores. Los últimos dos caracteres
de entrada se ignoran.
I = O = {0, 1}; S = {A, B, C, D} con s0 = A.
El significado de estos estados será el siguiente:
A significa que los siguientes dos caracteres de salida deben ser 0, 0
B significa que los siguientes dos caracteres de salida deben ser 0, 1
C significa que los siguientes dos caracteres de salida deben ser 1, 0
D significa que los siguientes dos caracteres de salida deben ser 1, 1
Dar una interpretación a los estados no es una parte de la descripción de la máquina.
Uno puede "operar" la máquina sin pensarlo sin ese conocimiento. Sin embargo, al
diseñar máquinas de estado finito y comprender su función, es muy importante poder
adjuntar un significado a cada estado.
Las tablas de transición y salida de esta máquina son las siguientes (indicamos el hecho
de que A es el estado inicial colocando una flecha delante de él):
continuación:
El efecto es imprimir dos 0 iniciales y luego repetir la entrada con un retardo de dos
pasos. Por supuesto porque la salida tiene la misma longitud que la entrada, los dos
últimos caracteres de entrada serán ignorados.
4.4. Máquinas Moore
Una disposición alternativa para la salida es hacer que la máquina imprima un cierto
carácter de salida cuando entra en un estado. Estas máquinas se llaman máquinas de
Moore. La salida está conectada a los estados en lugar de a las transiciones.
Formalmente, la salida de una máquina de Moore se describe por una función P: S →
O, donde como antes, O es el alfabeto de salida.
Ejemplo 4
La siguiente máquina Moore es también una máquina de retardo de dos pasos, que se
comporta de forma equivalente a la máquina Mealy en el ejemplo 3.
I = O = {0, 1}; S = {A, B, C, D} con s0 = A.
Utilizando la misma cadena de entrada que antes obtenemos la misma salida. La única
diferencia es que la salida responde sólo al estado que se está introduciendo.
Es una tarea relativamente rutinaria convertir una máquina Mealy en una máquina
Moore y viceversa.
4.5. Acceptores de Estado Finito
Incluso la máquina de Moore es más de lo que necesitamos aquí. Nuestro enfoque en
las máquinas de estado finito será como aceptantes para los idiomas. Dado un lenguaje,
en un alfabeto dado, nos gustaría encontrar una máquina que decida si una cadena
dada pertenece o no al lenguaje.
Aquí la salida es un simple "SI" o "NO". No nos interesan los resultados parciales.
Esperamos a que la máquina lea toda la cadena de entrada y sólo entonces estamos
interesados en la respuesta. En un aceptor de estado finito (FSA), la salida se determina
seleccionando un subconjunto de estados como estados de aceptación. Si la máquina
termina en un estado de aceptación, después de haber leído toda la cadena, decimos
que la cadena ha sido aceptada por la máquina. De lo contrario es rechazado.
Cada máquina de Moore con el conjunto de salida {0,1} puede considerarse como FSA
tomando los estados de aceptación como aquellos para los cuales la salida es un "1". Y
cada FSA se puede considerar como una máquina de Moore con el alfabeto de salida
{0, 1} simplemente suponiendo que la máquina imprime un "1" cada vez que entra en
un estado de aceptación y "0" cuando entra en cualquier otro estado.
La ligera modificación a la forma en que lo presentamos como aceptor de estado finito
es reemplazar los 1 en la columna final por * y los 0 por espacios en blanco, de modo
que los estados aceptantes son aquellos con un asterisco en contra de ellos.
Ejemplo 5
Escribiendo la máquina de Moore en el ejemplo 4 como un aceptor de estado finito
tenemos:
Como dijimos anteriormente, nuestro enfoque principal estará en los aceptantes de los
estados finitos. Ahora que corresponde a cada FSA hay un lenguaje, el conjunto de
todas las cadenas de entrada que son aceptadas por la máquina. Decimos que una FSA
acepta un lenguaje, L, si acepta cada cadena en L y rechaza todas las demás.
Una pregunta importante es "¿puede cada idioma ser aceptado por una FSA?" La
respuesta es "no". Sólo para ciertos idiomas existe una FSA correspondiente. ¿Cuáles?
Tendremos que esperar hasta un capítulo posterior para obtener una respuesta.
Ejemplo 6
El lenguaje aceptado por la FSA anterior es el conjunto de todas las cadenas cuyo tercer
último símbolo es un
"1". Este lenguaje puede ser descrito por la expresión regular (0 + 1) * 1 (00 + 01 + 10
+ 11).
4.6. Diagramas de estado
A menudo es conveniente representar gráficamente una máquina de estados finitos.
Esto se hace por .Dibujando un pequeño círculo para cada estado, con el nombre del
estado dentro y flechas de dibujo .Conectando los estados para representar las
transiciones. El carácter de entrada que da lugar a una.La transición se escribe al lado
de la flecha correspondiente. Se indica el estado inicial mediante el dibujo .Una flecha
corta apuntando a ella. La salida se representa de las siguientes maneras:
Máquinas Mealy:
La salida se escribe junto al carácter de entrada para cada transición de la siguiente
manera:
Esto indica que si la máquina está en el estado A y recibe la entrada "1" entonces emite
un "0" y
Se mueve al estado G.
Máquinas Moore:
La salida se adjunta al nombre del estado de la siguiente manera:
Ejemplo 9
La siguiente tabla y diagrama representan la misma FSA.
El estado F actúa claramente como un agujero negro. Por lo tanto, podemos simplificar
el diagrama
Borrarlo. Se supone que cualquier transición que no se muestre conduzca a este agujero
negro.
Otra simplificación es combinar las flechas que comienzan y terminan con el mismo
estado.
NOTAS:
(1) No confunda la notación 0,1 con la notación 0/1 que utilizamos para las máquinas
Mealy.
Algunos libros usan 0,1 en tales situaciones, por lo que existe cierto peligro de confusión.
Para nosotros, 0/1
Significa "leer 0 y escribir 1", mientras que 0,1 significa "leer 0 o 1".
(2) Obsérvese que E no es un agujero negro porque es un estado de aceptación.
(3) Omitimos un agujero negro en un diagrama de estado pero debe ser incluido en una
tabla de estado.