Bisimulação - Bisimulation

Na ciência da computação teórica, uma bissimulação é uma relação binária entre sistemas de transição de estado , associando sistemas que se comportam da mesma forma em que um sistema simula o outro e vice-versa.

Intuitivamente, dois sistemas são bissimilares se, presumindo que os vemos como se estivessem jogando um jogo de acordo com algumas regras, correspondam aos movimentos um do outro. Nesse sentido, cada um dos sistemas não pode ser distinguido do outro por um observador.

Definição formal

Dado um sistema de transição de estado marcado ( , , →), onde é um conjunto de estados, é um conjunto de etiquetas e → é um conjunto de transições marcados (ou seja, um subconjunto de ), um bissimulação é uma relação binária , de tal modo que ambos e seu inverso são simulações . Disto segue que o fechamento simétrico de uma bissimulação é uma bissimulação e que cada simulação simétrica é uma bissimulação. Assim, alguns autores definem a bissimulação como uma simulação simétrica.

Equivalentemente, é uma bissimulação iff para cada par de estados em e todos os rótulos α em :

  • se , então existe tal ;
  • se , então existe tal isso .

Dados dois estados e em , é bisimilar a , escrito , se houver uma bisimulação tal que . Isso significa que a relação de bissimilaridade é a união de todas as bissimulações: exatamente quando para alguma bissimulação .

O conjunto de bissimulações é fechado sob união; portanto, a relação de bissimilaridade é ela própria uma bissimulação. Uma vez que é a união de todas as bissimulações, é a única maior bissimulação. Bisimulações também são fechadas sob fechamento reflexivo, simétrico e transitivo; portanto, a maior bisimulação deve ser reflexiva, simétrica e transitiva. Disto segue que a maior bissimulação - bissimilaridade - é uma relação de equivalência .

Observe que nem sempre é o caso que se simula e simula, então eles são bissimilares. Para e para ser bissimilar, a simulação entre e deve ser o inverso da simulação entre e . Contra-exemplo em CCS : e simulam um ao outro, mas não são bissimilares.


Definições alternativas

Definição relacional

A bisimulação pode ser definida em termos de composição de relações como segue.

Dado um sistema de transição de estado rotulado , uma relação de bissimulação é uma relação binária sobre (ou seja, ⊆ × ) tal que

e

Da monotonicidade e continuidade da composição da relação, segue-se imediatamente que o conjunto das bissimulações é fechado sob uniões (junta-se no poset das relações), e um cálculo algébrico simples mostra que a relação de bissimilaridade - a junção de todas as bissimulações - é uma relação de equivalência. Essa definição e o tratamento associado à bissimilaridade podem ser interpretados em qualquer quantal involutivo .

Definição de ponto fixo

A bissimilaridade também pode ser definida de maneira teórica de ordem , em termos da teoria do ponto fixo, mais precisamente como o maior ponto fixo de uma determinada função definida abaixo.

Dado um sistema de transição de estado rotulado ( , Λ, →), defina como uma função de relações binárias para relações binárias , como segue:

Seja qualquer relação binária terminada . é definido como o conjunto de todos os pares em ×, de modo que:

e

A bissimilaridade é então definida como o maior ponto fixo de .

Definição de jogo Ehrenfeucht – Fraïssé

A bisimulação também pode ser pensada em termos de um jogo entre dois jogadores: atacante e defensor.

O "atacante" vai primeiro e pode escolher qualquer transição válida,, de . Ou seja:

ou

O "Defensor" deve então tentar igualar essa transição, de um ou dependendo do movimento do atacante. Ou seja, eles devem encontrar um tal que:

ou

O atacante e o defensor continuam se alternando até:

  • O defensor não consegue encontrar nenhuma transição válida para coincidir com o movimento do atacante. Nesse caso, o atacante vence.
  • O jogo atinge estados que estão ambos 'mortos' (ou seja, não há transições de nenhum dos estados) Neste caso, o defensor vence
  • O jogo continua indefinidamente, caso em que o defensor vence.
  • O jogo chega a estados já visitados. Isso equivale a uma jogada infinita e conta como uma vitória para o defensor.

Pela definição acima, o sistema é uma bissimulação se e somente se houver uma estratégia de vitória para o defensor.

Definição Coalgebraic

Um bissimulação para sistemas de transição de estado é um caso especial de coalgebraic bissimulação para o tipo de powerset covariante functor . Observe que todo sistema de transição de estado é bijetivamente uma função de para o conjunto de poderes de indexado por escrito como , definido por

Let ser -ésimo projecção mapeamento a e , respectivamente, para ; e a imagem para frente é definida eliminando o terceiro componente

onde é um subconjunto de . Da mesma forma para .

Usando as notações acima, uma relação é uma bissimulação em um sistema de transição se e somente se houver um sistema de transição na relação de modo que o diagrama

Coalgebraic bisimulation.svg

comuta, ou seja , para as equações

segure onde está a representação funcional de .

Variantes de bisimulação

Em contextos especiais, a noção de bissimulação às vezes é refinada pela adição de requisitos ou restrições adicionais. Um exemplo é o da bissimulação da gagueira , em que uma transição de um sistema pode ser combinada com várias transições do outro, desde que os estados intermediários sejam equivalentes ao estado inicial ("gagueja").

Uma variante diferente se aplica se o sistema de transição de estado inclui uma noção de ação silenciosa (ou interna ), muitas vezes denotada como , ou seja, ações que não são visíveis por observadores externos, então a bissimulação pode ser relaxada para ser uma bissimulação fraca , na qual se dois estados e são bissimilares e há um certo número de ações internas que levam de a algum estado, então deve existir um estado tal que haja algum número (possivelmente zero) de ações internas que levam de a . Uma relação em processos é uma bissimulação fraca se o seguinte for válido (com , e sendo uma transição observável e muda, respectivamente):

Isso está intimamente relacionado à bissimulação até uma relação.

Normalmente, se o sistema de transição de estado fornece a semântica operacional de uma linguagem de programação , então a definição precisa de bissimulação será específica para as restrições da linguagem de programação. Portanto, em geral, pode haver mais de um tipo de relação de bissimulação, (bissimilaridade resp.), Dependendo do contexto.

Bissimulação e lógica modal

Visto que os modelos de Kripke são um caso especial de sistemas de transição de estado (rotulados), a bissimulação também é um tópico na lógica modal . Na verdade, a lógica modal é o fragmento da lógica invariante de primeira ordem sob bisimulação ( teorema de van Benthem ).

Algoritmo

Verificar se dois sistemas de transição finitos são bissimilares pode ser feito em tempo polinomial. Os algoritmos mais rápidos são linear-time usando refinamento de partição por meio de uma redução para o problema de partição mais grosseiro.

Veja também

Referências

Leitura adicional

links externos

Ferramentas de software