En informática teórica una bisimulación es una relación binaria entre sistemas de transición de estados , asociando sistemas que se comportan de la misma manera en que un sistema simula al otro y viceversa.
Intuitivamente, dos sistemas son bisimilares si, suponiendo que los consideremos como si estuvieran jugando un juego según algunas reglas, coinciden en los movimientos del otro. En este sentido, un observador no puede distinguir cada uno de los sistemas del otro.
Dado un sistema de transición de estados etiquetados ( S , Λ, →) , donde S es un conjunto de estados, es un conjunto de etiquetas y → es un conjunto de transiciones etiquetadas (es decir, un subconjunto de ), una bisimulación es una relación binaria , tal que tanto R como su inverso son simulaciones . De esto se sigue que el cierre simétrico de una bisimulación es una bisimulación, y que cada simulación simétrica es una bisimulación. Así, algunos autores definen la bisimulación como una simulación simétrica. [1]
De manera equivalente, R es una bisimulación si y solo si para cada par de estados en R y todas las etiquetas λ en :
Dados dos estados p y q en S , p es bisimilar a q , escrito , si y sólo si existe una bisimulación R tal que . Esto significa que la relación de bisimilitud ∼ es la unión de todas las bisimulaciones: precisamente cuando para alguna bisimulación R .
El conjunto de bisimulaciones está cerrado bajo unión; [Nota 1] por lo tanto, la relación de bisimilitud es en sí misma una bisimulación. Dado que es la unión de todas las bisimulaciones, es la única bisimulación más grande. Las bisimulaciones también están cerradas bajo cierre reflexivo, simétrico y transitivo; por tanto, la bisimulación más grande debe ser reflexiva, simétrica y transitiva. De esto se deduce que la bisimulación más grande (bisimilaridad) es una relación de equivalencia . [2]
La bisimulación se puede definir en términos de composición de relaciones de la siguiente manera.
Dado un sistema de transición de estados etiquetado , una relación de bisimulación es una relación binaria R sobre S (es decir, R ⊆ S × S ) tal que
y
De la monotonicidad y continuidad de la composición de las relaciones, se deduce inmediatamente que el conjunto de bisimulaciones está cerrado bajo uniones ( uniones en el conjunto de relaciones), y un simple cálculo algebraico muestra que la relación de bisimilitud (la unión de todas las bisimulaciones) es una relación de equivalencia. Esta definición, y el tratamiento asociado de la bisimilitud, se pueden interpretar en cualquier cuanta involutiva .
La bisimilitud también se puede definir en forma teórica de orden , en términos de teoría del punto fijo , más precisamente como el punto fijo más grande de una determinada función definida a continuación.
Dado un sistema de transición de estado etiquetado ( , Λ, →), defina como una función de relaciones binarias a relaciones binarias , de la siguiente manera:
Sea cualquier relación binaria sobre . se define como el conjunto de todos los pares en × tal que:
y
Luego, la bisimilitud se define como el mayor punto fijo de .
La bisimulación también puede considerarse en términos de un juego entre dos jugadores: atacante y defensor.
El "atacante" va primero y puede elegir cualquier transición válida, desde . Eso es, o
Luego, el "defensor" debe intentar igualar esa transición, ya sea desde cualquiera de los dos movimientos del atacante o dependiendo de ellos. Es decir, deben encontrar tal que: o
El atacante y el defensor continúan turnándose alternativamente hasta que:
Según la definición anterior, el sistema es una bisimulación si y sólo si existe una estrategia ganadora para el defensor.
Una bisimulación para sistemas de transición de estados es un caso especial de bisimulación coalgebraica para el tipo de functor de conjunto de potencias covariante . Tenga en cuenta que cada sistema de transición de estado se puede asignar biyectivamente a una función del conjunto de potencias de indexado por escrito como , definido por
Sea -ésima proyección , mapeando a y respectivamente para ; y la imagen delantera de se define eliminando el tercer componente donde es un subconjunto de . De manera similar para .
Usando las notaciones anteriores, una relación es una bisimulación en un sistema de transición si y sólo si existe un sistema de transición en la relación tal que el diagrama
conmuta, es decir, para , las ecuaciones se cumplen donde está la representación funcional de .
En contextos especiales, la noción de bisimulación a veces se refina agregando requisitos o restricciones adicionales. Un ejemplo es el de la bisimulación del tartamudeo , en la que una transición de un sistema puede coincidir con múltiples transiciones del otro, siempre que los estados intermedios sean equivalentes al estado inicial ("tartamudeo"). [3]
Se aplica una variante diferente si el sistema de transición de estados incluye una noción de acción silenciosa (o interna ), a menudo denotada con , es decir, acciones que no son visibles para los observadores externos, entonces la bisimulación se puede relajar para ser una bisimulación débil , en la que si dos estados y son bisimilares y hay una cierta cantidad de acciones internas que conducen desde hacia algún estado, entonces debe existir un estado tal que haya una cierta cantidad (posiblemente cero) de acciones internas que conducen desde hacia . Una relación sobre procesos es una bisimulación débil si se cumple lo siguiente ( siendo , y una transición observable y muda respectivamente):
Esto está estrechamente relacionado [ ¿cómo? ] a la noción de bisimulación " hasta " una relación. [4]
Normalmente, si el sistema de transición de estados proporciona la semántica operativa de un lenguaje de programación , entonces la definición precisa de bisimulación será específica de las restricciones del lenguaje de programación. Por lo tanto, en general, puede haber más de un tipo de relación de bisimulación (respectivamente bisimilitud) dependiendo del contexto.
Dado que los modelos de Kripke son un caso especial de sistemas de transición de estados (etiquetados), la bisimulación también es un tema de la lógica modal . De hecho, la lógica modal es el fragmento de la lógica de primer orden invariante bajo bisimulación ( teorema de van Benthem ).
Se puede comprobar que dos sistemas de transición finitos son bisimilares en tiempo polinómico . [5] Los algoritmos más rápidos son de tiempo cuasilineal y utilizan el refinamiento de la partición mediante una reducción al problema de partición más burdo.
{{cite journal}}
: CS1 maint: multiple names: authors list (link)