Este artículo necesita citas adicionales para su verificación . ( febrero de 2017 ) |
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 de modo que un sistema simula al otro y viceversa.
Intuitivamente, dos sistemas son bisimilares si, suponiendo que los consideramos como si jugaran un juego de acuerdo con ciertas reglas, sus movimientos son iguales. En este sentido, un observador no puede distinguir a cada uno de los sistemas del otro.
Dado un sistema de transición de estados etiquetado ( 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 recíproca son simulaciones . De esto se deduce que el cierre simétrico de una bisimulación es una bisimulación, y que cada simulación simétrica es una bisimulación. Por ello, 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 solo 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 la unión; [Nota 1] por lo tanto, la relación de bisimilitud es en sí misma una bisimulación. Puesto 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 clausura reflexiva, simétrica y transitiva; por lo tanto, la bisimulación más grande debe ser reflexiva, simétrica y transitiva. De esto se sigue que la bisimulación más grande —la bisimilitud— 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 estado 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 monotonía y continuidad de la composición de relaciones se sigue inmediatamente que el conjunto de bisimulaciones está cerrado bajo uniones ( joins en el conjunto de relaciones), y un cálculo algebraico simple muestra que la relación de bisimilaridad (join de todas las bisimulaciones) es una relación de equivalencia. Esta definición, y el tratamiento asociado de la bisimilaridad, se pueden interpretar en cualquier cuanto involutivo .
La bisimilaridad también puede definirse de manera teórica de orden , en términos de la teoría del punto fijo , más precisamente como el mayor punto fijo de una determinada función definida a continuación.
Dado un sistema de transición de estados etiquetado ( , Λ, →), defina como una función de relaciones binarias sobre a relaciones binarias sobre , de la siguiente manera:
Sea cualquier relación binaria sobre . se define como el conjunto de todos los pares en × tales que:
y
La bisimilaridad se define entonces como el mayor punto fijo de .
La bisimulación también puede pensarse 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 . Es decir, o
El "Defensor" debe entonces intentar igualar esa transición, ya sea desde o desde, dependiendo del movimiento del atacante. Es decir, debe encontrar una manera tal que: o
El atacante y el defensor continúan turnándose 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 funtor de conjunto potencia covariante . Nótese que cada sistema de transición de estados se puede mapear biyectivamente a una función de al conjunto potencia de indexado por escrito como , definido por
Sea -ésima proyección , que se asigna a y respectivamente para ; y la imagen hacia delante 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 solo si existe un sistema de transición en la relación tal que el diagrama
conmuta, es decir, para , las ecuaciones se cumplen donde es la representación funcional de .
En contextos especiales, la noción de bisimulación a veces se perfecciona añadiendo requisitos o restricciones adicionales. Un ejemplo es el de la bisimulación de 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 ("tartamudea"). [3]
Una variante diferente se aplica 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 bisimulación débil , en la que si dos estados y son bisimilares y hay algún número de acciones internas que conducen desde a algún estado , entonces debe existir un estado tal que haya algún número (posiblemente cero) de acciones internas que conducen desde a . 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? ] con la noción de bisimulación " hasta " una relación. [4]
Por lo general, si el sistema de transición de estados proporciona la semántica operacional 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 (o bisimilaridad) según el 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 la bisimulación ( teorema de van Benthem ).
La comprobación de que dos sistemas de transición finitos son bisimilares se puede realizar en tiempo polinomial . [5] Los algoritmos más rápidos son los de tiempo cuasilineal que utilizan refinamiento de partición a través de una reducción al problema de partición más burdo.
{{cite journal}}
: CS1 maint: multiple names: authors list (link)