¿Por qué se usaría una máquina de estado finito?

Hola,

Una respuesta PRO:

“Son una buena herramienta de modelado para ciertos tipos de problemas. Las máquinas de estados finitos son útiles cuando:

  • Tiene una entidad cuyo comportamiento cambia en función de algún estado interno.
  • Ese estado puede dividirse rígidamente en una de un número relativamente pequeño de opciones distintas.
  • La entidad responde a una serie de entradas o eventos a lo largo del tiempo.

En los juegos , son más conocidos por ser utilizados en IA , pero también son comunes en implementaciones de manejo de entrada de usuario , navegación en pantallas de menú , análisis de texto y protocolos de red “(libgdx / gdx-ai)

Una respuesta CON (la perspectiva está relacionada con los juegos):

10 razones por las que la era de las máquinas de estados finitos ha terminado

Espero eso ayude.

¿Sabía que casi todas las piezas de software empresarial utilizan máquinas de estados finitos? Contabilidad, ERP, fabricación, ventas, marketing, servicio al cliente, y hacia los verticales: servicios financieros, atención médica, distribución, gestión de inversiones, gestión de propiedades, aviación, hotelería … La lista continúa.

Cada vez que un elemento de datos obtiene un estado, y proporcionamos diferentes funciones en función de ese estado, estamos utilizando máquinas de estado.

¿Alguna vez compraste un artículo en Amazon? Su compra pasa por una serie de estados.

“en el carrito de compras”
“intento de compra”
“pago autorizado”
“asignado al almacén”
“embalaje”
“enviado al cliente”
“pago cargado”

Hay una docena de rampas en el flujo básico. Pero el gráfico es finito.

El concepto de autómata de estado finito es uno de los conceptos más útiles, más importantes y más valiosos que aprenderá en informática. Sin excepción.

Vale la pena señalar que todas las computadoras y programas reales son máquinas de estado finito (FSM), porque solo tienen una cantidad finita de memoria disponible (a diferencia de las máquinas Turing que tienen almacenamiento ilimitado).

Los programadores usan los conceptos de FSM constantemente, en micro y macro. ¿Tiene un valor booleano que indica si una operación está completa? Ese booleano es parte de un FSM, lo que indica que el estado es “completo” o “incompleto”.

De manera más general, los programadores usan explícitamente máquinas de estado finito para simplificar el diseño y la depuración. Si programa un juego, puede implementar un FSM con estados “en pausa”, “juego terminado”, “nivel de juego n”, etc., y programar el FSM con transiciones de “en pausa” a “nivel de juego n”, “jugar nivel n “a” juego terminado “, etc. Luego almacena el estado del FSM en una variable (tal vez una enumeración). En cualquier momento que conozca el estado exacto del juego, al señalar en el FSM cada transición de estado, sabe que no puede haber estados ilegales, al poner su lógica de limpieza en el FSM puede estar seguro de que cada variable correctamente representa el estado común, etc.

De hecho, una enumeración solo puede tomar un rango finito de valores, en la práctica, cuando se utiliza una enumeración, a menudo es una variable de estado que se utiliza en algún tipo de FSM en su código, incluso si no la reconoce como tal.

Esta es una pregunta interesante, pero ¿por qué las máquinas de estados finitos? Creo que la pregunta aquí es si es posible tener una máquina de estado infinito, que simplemente sería un no no. Bueno, a menos que pueda predecir todos y cada uno de los posibles estados y sus muchos subestados o si su computadora puede mapear la lógica de los estados no planificados para manejar (para cada estado 1: puede que tenga n subestados).

La programación es un arte abstracto del pensamiento, y las máquinas de estados juegan un papel importante en esto, y dado que es casi imposible diseñar algo que pueda tener un número infinito de estados / posibilidades (todo debe tener un inicio y una parada, ¿verdad?).

Realmente no puedo decir por qué uno usaría máquinas de estados finitos, ya que hay muchas más razones para usarlas (circuitos, programas, etc.) que puedo mencionar aquí. Tal vez solo tal vez si la inteligencia artificial fuera tan buena como el cerebro, estaríamos viendo implementaciones únicas que pueden tener un número infinito de estados. Puedes echar un vistazo a este enlace si aún no has investigado sobre máquinas de estados finitos

Máquinas de estado finito

Espero que esto ayude de alguna manera.

Por expresiones regulares.

Curiosamente, una máquina de estado infinito se puede convertir en una máquina de estado finito a través de un proceso de finalización. Pasé por esto hace mucho tiempo en la universidad, así que no puedo recordarlo por completo. Sin embargo, podríamos definir estados de arbitraje para una máquina en cualquier número de combinaciones y podrían convertirse en un FSM.

Esto significa que el pensamiento aleatorio como el que ocurre en la mente humana se puede convertir en un FSM y se puede generar artificialmente.

Entonces, en términos generales, si puede definir algo como FSM, puede hacerlo con una computadora.