Simulador de autómatas finitos
¿Qué hace la app?
Es un simulador visual de autómatas finitos deterministas. Puedes construir un autómata desde cero (agregar estados, transiciones, marcar el estado inicial y los estados finales) y después probar cadenas para ver si el autómata las acepta.
Lo mejor es que puedes ver cómo se procesa la cadena paso a paso, con los estados por los que va pasando el autómata, como en el video de abajo:
Algunas cosas que puedes hacer:
- Agregar y nombrar estados fácilmente
- Definir transiciones entre estados usando símbolos del alfabeto
- Marcar el estado inicial y los estados de aceptación
- Probar distintas cadenas y ver cómo las procesa el autómata
- Ver claramente si una cadena es aceptada o rechazada
¿Por qué la construí?
Me pareció buena idea hacer algo que me habría gustado tener cuando empecé a aprender sobre autómatas.
A veces entiendes la teoría, pero cuando intentas verla en acción te encuentras con papers difíciles de seguir o con simuladores muy limitados. Esta herramienta intenta resolver eso de forma visual e interactiva.
¿Qué usé para construirla?
Usé algunas herramientas modernas de desarrollo web, principalmente:
- Vite para construir la app con HTML y JavaScript
- Vercel para desplegarla
- Algo de CSS con Tailwind para el estilo y la maquetación
¿Para quién es?
Es sobre todo para estudiantes de programación y ciencias de la computación que estén viendo autómatas. Pero también puede servirle a profesores que quieran mostrar cómo funcionan de una forma más visual.
¿Qué se puede mejorar?
Todavía hay varias funciones que me gustaría agregar, como:
- Soporte para autómatas no deterministas (AFND)
- Exportar e importar autómatas en formato JSON
- Guardar ejemplos o simulaciones anteriores
- Agregar modo oscuro
Si tienes sugerencias o quieres colaborar, escríbeme. El proyecto es open source, así que también puedes contribuir aquí: https://automata-simulation.vercel.app
Frequently asked questions
¿Qué es un simulador de autómatas finitos determinísticos (DFA) y para qué sirve?
Es una herramienta visual en la que puedes construir un DFA desde cero, agregando estados, transiciones, un estado inicial y estados finales, ademas puedes probar cadenas de caracteres paso a paso para ver exactamente cómo las procesa el autómata y si acepta o rechaza cada una.
¿Existe alguna herramienta gratuita para visualizar la teoría de los autómatas?
Sí, este es un simulador de DFA de código abierto y basado en navegador, diseñado para estudiantes y profesores de informática que desean ver los conceptos de los autómatas en acción, en lugar de limitarse a leer la teoría o utilizar simuladores excesivamente limitados.
Comments