En informática teórica , un sistema de transición es una máquina de estados que puede tener un número infinito de estados. Se utiliza para describir el comportamiento potencial de sistemas discretos . Consta de estados y transiciones entre ellos, que pueden estar etiquetados con etiquetas elegidas de un conjunto; una misma etiqueta puede aparecer en más de una transición. Si el conjunto de etiquetas es un conjunto único , el sistema queda esencialmente sin etiquetar, y es posible una definición más simple que omita las etiquetas.
Los sistemas de transición coinciden matemáticamente con los sistemas de reescritura abstractos (como se explica más adelante en este artículo) y los grafos dirigidos . Se diferencian de los autómatas de estados finitos en varios aspectos:
- El conjunto de estados no es necesariamente finito, ni siquiera numerable.
- El conjunto de transiciones no es necesariamente finito, ni siquiera numerable.
- No se especifican estados "inicial" ni "final".
Los sistemas de transición pueden representarse como grafos dirigidos.
Definición formal
Formalmente, un sistema de transición es un pardóndees un conjunto de estados y, la relación de transición , es un subconjunto deDecimos que hay una transición de estadopara declararsiy denotarlo.
Un sistema de transición etiquetado es una tupladóndees un conjunto de estados,es un conjunto de etiquetas, y, la relación de transición etiquetada , es un subconjunto deDecimos que hay una transición de estadopara declararcon etiquetasi y solo siy denotarlo
Las etiquetas pueden representar diferentes cosas según el idioma de interés. Los usos típicos de las etiquetas incluyen representar la entrada esperada, las condiciones que deben cumplirse para activar la transición o las acciones realizadas durante la transición. Los sistemas de transición etiquetados se introdujeron originalmente como sistemas de transición con nombre . [ 1 ]
Casos especiales
- Si, para cualquier dadoy, existe una única tuplaen, entonces uno dice quees determinista (para).
- Si, para cualquier dadoy, existe al menos una tuplaen, entonces uno dice quees ejecutable (para).
Formulación de Coalgebra
La definición formal puede reformularse de la siguiente manera. Sistemas de transición de estado etiquetados encon etiquetas dese corresponden uno a uno con las funciones, dóndees el functor de conjunto potencia (covariante) . Bajo esta biyecciónse envía a, definido por
- .
En otras palabras, un sistema de transición de estados etiquetado es una coálgebra para el functor..
Relación entre el sistema de transición etiquetado y el no etiquetado
Existen numerosas relaciones entre estos conceptos. Algunas son sencillas, como observar que un sistema de transición etiquetado, donde el conjunto de etiquetas consta de un solo elemento, es equivalente a un sistema de transición sin etiquetar. Sin embargo, no todas estas relaciones son igualmente triviales.
Comparación con sistemas de reescritura abstracta
Como objeto matemático, un sistema de transición sin etiquetar es idéntico a un sistema de reescritura abstracto (sin indexar) . Si consideramos la relación de reescritura como un conjunto indexado de relaciones, como hacen algunos autores, entonces un sistema de transición etiquetado es equivalente a un sistema de reescritura abstracto donde los índices son las etiquetas. Sin embargo, el enfoque del estudio y la terminología son diferentes. En un sistema de transición, el interés radica en interpretar las etiquetas como acciones, mientras que en un sistema de reescritura abstracto, el enfoque está en cómo los objetos pueden transformarse (reescribirse) en otros. [ 2 ]
Extensiones
En la verificación de modelos , a veces se define un sistema de transición para incluir también una función de etiquetado adicional para los estados, lo que da como resultado una noción que abarca la de la estructura de Kripke . [ 3 ]
Los lenguajes de acción son extensiones de los sistemas de transición, que añaden un conjunto de fluentes F , un conjunto de valores V y una función que mapea F × S a V. [ 4 ]
Véase también
Referencias
- ↑ Robert M. Keller (julio de 1976) " Verificación formal de programas paralelos ", Communications of the ACM , vol. 19 , n.º 7 , págs. 371–384.
- ^ Marc Bezem, JW Klop, Roel de Vrijer ("Terese"), Sistemas de reescritura de términos , Cambridge University Press, 2003, ISBN 0-521-39115-6págs. 7–8.
- ↑ Christel Baier ; Joost-Pieter Katoen (2008). Principios de verificación de modelos . La prensa del MIT. pag. 20.ISBN 978-0-262-02649-9.
- ↑ Micheal Gelfond, Vladimir Lifschitz (1998) "Action Languages", Linköping Electronic Articles in Computer and Information Science , vol. 3 , nr. 16 .
- Modelos de computación