stringtranslate.com

bisimulación

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.

Definicion formal

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]

Definiciones alternativas

Definición relacional

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, RS × 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 .

Definición de punto fijo

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 .

Definición del juego Ehrenfeucht-Fraïssé

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.

Definición coalgebraica

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 .

Variantes de bisimulación

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.

Bisimulación y lógica modal.

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 ).

Algoritmo

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.

Ver también

Notas

  1. ^ Lo que significa que la unión de dos bisimulaciones es una bisimulación.

Referencias

  1. ^ Jančar, Petr y Srba, Jiří (2008). "Indecidibilidad de la bisimilitud por el forzamiento del defensor" . J. ACM . 55 (1). Nueva York, NY, EE. UU.: Asociación de Maquinaria de Computación: 26. doi :10.1145/1326554.1326559. ISSN  0004-5411. S2CID  14878621.{{cite journal}}: CS1 maint: multiple names: authors list (link)
  2. ^ Milner, Robin (1989). Comunicación y Concurrencia . Estados Unidos: Prentice-Hall, Inc. ISBN 0131149849.
  3. ^ Baier, Christel ; Katoen, Joost-Pieter (2008). Principios de verificación de modelos . Prensa del MIT. pag. 527.ISBN 978-0-262-02649-9.
  4. ^ Damián Pous (2005). "Técnicas actualizadas para bisimulación débil". Proc. 32° ICLP . Apuntes de conferencias sobre informática . 3580 . Springer Verlag: 730–741.
  5. ^ Baier y Katoen (2008), Corolario 7.45, p. 486.

Otras lecturas

enlaces externos

Herramientas de software