Inicio / Calculadoras / Simulador de máquina de estados finitos (FSM) en línea
Herramientas online gratis

Simulador de máquina de estados finitos (FSM) en línea

Simula una máquina de estados finitos determinista: define reglas, estado inicial y cadena de entrada. Obtén la ruta de estados y el estado final al instante.

Empezar a usar

Simulación determinista con verificación de reglas

El simulador comprueba que cada regla tenga exactamente tres campos separados por comas: estado actual, símbolo de entrada y estado siguiente. Los nombres de estado no pueden estar vacíos y deben tener como máximo 50 unidades de código UTF-16. Cada símbolo de entrada es un único punto de código Unicode. Se permiten entre 1 y 200 reglas.

No se permiten transiciones duplicadas para el mismo par estado-símbolo; si introduces una regla repetida, el simulador la rechaza en lugar de sobrescribir la anterior. El estado inicial es obligatorio y también está limitado a 50 unidades de código UTF-16.

Ejemplo práctico

Estas reglas permiten seguir si el último símbolo leído es '1'; la herramienta no decide aceptación. Usa estas reglas:

q0,0,q0
q0,1,q1
q1,0,q0
q1,1,q1

Con estado inicial q0 y la entrada 1011, la ruta de estados visitados es:

q0 -> q1 -> q0 -> q1 -> q1

El estado final es q1. Si la entrada fuera 100, la ruta sería q0 -> q1 -> q0 -> q0 y el estado final q0.

Procesamiento y limitaciones

La cadena de entrada se procesa de izquierda a derecha, un punto de código Unicode a la vez. La longitud máxima de la cadena es de 10000 unidades de código UTF-16. La simulación se realiza completamente en el navegador; no se envían datos a ningún servidor.

Esta herramienta no incluye estados de aceptación, transiciones épsilon, ramas no deterministas, conversión a expresiones regulares, minimización ni diagramas. Solo simula las transiciones deterministas que definas; no decide si una cadena es aceptada o rechazada.

Preguntas frecuentes

¿Qué ocurre si una regla tiene más de una coma?

Las comas son separadores estructurales y no pueden aparecer dentro de nombres de estado ni de símbolos. Si una línea tiene más de dos comas, se considera una regla no válida y el simulador la rechazará.

¿Puedo usar símbolos que no sean caracteres ASCII?

Sí, cada símbolo de entrada puede ser cualquier punto de código Unicode, como letras acentuadas o caracteres de otros alfabetos. Por ejemplo, puedes usar á como símbolo. Ten en cuenta que la cadena de entrada se procesa por punto de código, no por unidad UTF-16.

¿Qué significa el error de transición faltante?

Si durante la simulación se encuentra un par (estado actual, símbolo) que no tiene una regla definida, el proceso se detiene y se muestra un mensaje de error general, sin indicar el carácter ni su posición. Esto te ayuda a depurar tu tabla de transiciones.

Lista de verificación para usar el simulador

  • Verifica que cada regla tenga exactamente tres campos separados por comas.
  • Asegúrate de que no haya reglas duplicadas para el mismo estado y símbolo.
  • Comprueba que el estado inicial esté definido y sea uno de los estados de tus reglas.
  • Para entradas largas, prueba primero con una secuencia corta y compara cada transición con la tabla.
  • Recuerda que la salida muestra la ruta completa de estados visitados y el estado final.

Los nombres de estado y el estado inicial admiten hasta 50 unidades de código UTF-16; la entrada, 10000. Se recortan los espacios de los campos de regla, por lo que un espacio en blanco no sirve como símbolo. Copia exactamente el estado inicial, respetando mayúsculas y sin espacios alrededor. Una entrada vacía conserva el estado inicial. Una transición faltante solo genera un error general, sin posición ni ruta parcial.

El procesamiento se realiza localmente en tu navegador.