Diseñar máquina de estados finitos

-3

Necesito diseñar una máquina de estados finitos que detecte cualquier secuencia de botones no válida para un conjunto de instrucciones. El escenario es una fábrica donde la persona debe presionar POWER, WELD, y luego POWER y ese es el único conjunto válido de secuencias de botones para que la máquina funcione correctamente. Las instrucciones que tengo indican que el usuario debe presionar ENCENDIDO para comenzar la máquina, SÓLO para soldar la pieza y, finalmente, ENCENDER nuevamente para apagar la máquina. Así, por ejemplo, una secuencia de botones o POWER, POWER, WELD producirá un error. Al diseñar la máquina de estados finitos para este escenario para capturar solo fallas, traté de enumerar todas las posibilidades de falla:

P P W

P P P

W W W

W P P

P W W

W W P

W P W

Creo que me estoy perdiendo uno, pero no estoy seguro? Ahora, cuando lo diseñé, tengo cuatro burbujas de estado, con las salidas FAIL = 0, FAIL = 0, FAIL = 0 y FAIL = 1 para la última burbuja. ¿Cómo puedo implementar todos estos casos sin dibujar tantas líneas de burbuja en burbuja y tener un desastre? ¡Gracias!

    
pregunta Charles Witiker

2 respuestas

2

Basado en comentarios (la herramienta de dibujo no separó la R y la W; W va a 4 y la R a S):

    
respondido por el Ignacio Vazquez-Abrams
0

Consulte esta tabla de transición de estado (la notación se explica en enlace )

            |    POWER          WELD
            | -----------------------
  ->INITIAL |        P          FAIL
          P |     FAIL            PW
         PW |      PWP          FAIL
        PWP |     FAIL          FAIL
       FAIL |     FAIL          FAIL

Estado INICIAL es el estado inicial. El estado PWP está aceptando el estado: si termina en este estado después de leer toda la secuencia de entrada (debe presionar exactamente 3 botones en el orden definido (alimentación, soldadura, alimentación)), está aceptando la secuencia.

De lo contrario, si ocurre algo no deseado (botón incorrecto, número incorrecto de pulsaciones de botones), indique el estado de las transiciones de la máquina al estado FAIL , donde permanecerá hasta siempre. Si terminas en este estado después de leer toda la entrada, sabes que el usuario presionó los botones incorrectos en el orden incorrecto o lo que sea.

    
respondido por el Fanick

Lea otras preguntas en las etiquetas