Quand deux simulations ne sont-elles pas une bisimulation?

20

Étant donné un système de transition étiqueté , où est un ensemble d'états, est un ensemble d'étiquettes et est une relation ternaire. Comme d'habitude, écrivez pour . La transition étiquetée indique que le système dans l'état change d'état en avec l'étiquette , ce qui signifie que est une action observable qui provoque le changement d'état.S Λ S × Λ × S p α q ( p , α , q ) p α q p q α α(S,Λ,)SΛ→⊆S×Λ×Spαq(p,α,q)∈→pαqpqαα

Maintenant, une relation est appelée simulation ssi RS×S

(p,q)R, if pαp then q,qαq and (p,q)R.

On dit qu'un LTS simule un autre s'il existe une relation de simulation entre eux.

De même, une relation est une bisimulation ssiRS×S si  p α p  alors  q ,(p,q)R,

 if pαp then q,qαq and (p,q)R and  if qαq then p,pαp and (p,q)R.

On dit que deux LTS sont bisimilaires s'il existe une bisimulation entre leurs espaces d'état.

Il est clair que ces deux notions sont assez liées, mais elles ne sont pas identiques.

Dans quelles conditions est-il possible qu'un LTS en simule un autre et vice versa, mais que les deux LTS ne soient pas bisimilaires?

Dave Clarke
la source

Réponses:

12

Parce qu'un processus CCS vaut mille pixels - et il est facile de voir le LTS sous-jacent - voici deux processus qui se simulent mais ne sont pas bisimilaires:

Q = a b

P=ab+a
Q=ab

R1={(ab+a,ab),(b,b),(0,b),(0,0)} est une simulation.

R2={(ab,ab+a),(b,b),(0,0)} est une simulation.

Q R 2 P P Q P a 0 Q P R1 Q et mais et ne sont pas similaires. Pourquoi pas? Parce que et le seul tel que est ... et n'est pas bisimilaire à .Q R2 PPQPa0Q b 0 bQaQb0b

Pourquoi peuvent-ils alors se simuler? Parce que de , car il peut faire tout fait. Et de parce que même si peut aller dans un -Step à un programme qui ne fait rien, peut encore faire -Step, et qui est tout ce qu'il faut quelque chose Simuler. La principale différence avec la bisimulation est vraiment que, comme l'a dit Charles, vous devez relier les mêmes processus aux deux simulations. (ie tel que et soient des simulations)Q Q Q P P a Q a R R R - 1PQQQPPaQaRRR1

jmad
la source
10

Même s'il y a une simulation dans chaque direction, les simulations d'avant en arrière peuvent ne pas correspondre aux mêmes ensembles d'états. Parfois, vous avez une simulation dans une direction, et une simulation dans l'autre direction, et deux états et qui sont liés par mais pas par ni par aucune autre simulation dans la même direction.R 2R1R2 q R 1 R 2p1qR1R2

L'exemple canonique est deux systèmes qui ont les mêmes traces, mais font des choix différemment. Prenons deux distributeurs de boissons: la première (la méchante) prend une pièce ( c) et décide de manière non déterministe de livrer ou non une tasse de thé ( t). La deuxième machine (la bonne) prend une pièce ( c) et livre une tasse de thé ( t).

choix tôt et tard

La bonne machine simule la mauvaise machine: prenez . Tous les états des transitions sortantes sont couverts, y compris (qui n'a pas de transition sortante, donc c'est trivial). Remarquez comment la bonne machine oublie la différence entre et .R1={(s,s),(p,p),(q,q),(r,p)}rrp

La mauvaise machine simule la bonne machine: prenez . Il se trouve que l'état n'est pas utilisé par cette simulation. En fait, il n'est pas possible pour une simulation d'utiliser , puisque doit correspondre à un état à partir duquel une trace de longueur est possible, donc elle doit être ; doit correspondre à un successeur de avec l'étiquette , donc c'est ou , mais cet état doit également avoir une trace possible de longueur , donc il doit être ; et par le même raisonnement doit correspondre àr r s 2 s p s cR2={(s,s),(p,p),(q,q)}rrs2spscr 1 p q q rpr1pqq , ne laissant aucune possibilité de mapper un état à .r

Une simulation dans une direction doit envoyer quelque part. Une simulation dans l'autre sens doit éviter . Il n'y a donc pas de relation qui soit une simulation dans les deux sens: les systèmes ne sont pas bisimilaires.rrr

La différence entre les deux machines est que la bonne machine est déterministe et (en supposant la vivacité) livre toujours du thé si vous insérez une pièce, alors que la machine maléfique peut sur un coup de tête prendre la pièce mais rester coincée, incapable de livrer du thé.

Ce genre de différence apparaît souvent dans l'étude des systèmes concurrents. La réponse de Jmad montre un processus CCS avec ce LTS.

Pour plus d'informations sur les bisimulations, je recommande les notes de Davide Sangiorgi sur les origines de la bisimulation et de la coinduction . (Il s'agit de l'exercice 1 p. 29, et les notes utilisent le même exemple.)

Gilles 'SO- arrête d'être méchant'
la source
Le fait que deux simulations unidirectionnelles ne soient pas égales à la bisimilarité me suggère que la simulation n'est pas la bonne idée d'approximation en présence de non-déterminisme. Y a-t-il d'autres idées qui ont été envisagées?
Uday Reddy
2

La réponse de Gilles est très bonne et formelle, et en effet, si est simulé par avec une relation , et est simulé par avec l'inverse de , alors est une bisimulation. L T S 2 R L T S 2 L T S 1 R RLTS1LTS2RLTS2LTS1RR

Cependant, si les deux relations ne sont pas inverses l'une de l'autre, vous ne pourrez peut-être pas créer de bisimulation. Par exemple, un exemple simple vient du fait que la relation vide est une simulation pour n'importe quel LTS. Ainsi, nous pouvons avoir est simulé par avec une relation , et est simulé par avec la relation vide, et pourtant n'est pas nécessairement une bisimulation (bien que notez que la relation vide est aussi une bisimulation pour n'importe quel LTS). L T S 2 R L T S 2 L T S 1 RLTS1LTS2RLTS2LTS1R

Charles
la source
Je suppose que ce que j'essaie de dire, c'est qu'en fait, c'est toujours le cas que deux LTS sont bisimilaires, donc la vraie question est plutôt de savoir si une relation particulière est une (bi) simulation.
Charles