• Aucun résultat trouvé

Instanciation de la Machine Abstraite Générique avec le π-Calcul Stochastique

Dans cette section, nous présentons une instanciation de la machine abstraite générique avec une variante du π-calcul stochastique en définissant les fonctions appropriées esp`eces et r´eactions. Cette instanciation inclut également une optimisation pour la simulation de complexes de processus. La sémantique du calcul est directement utilisée pour dériver la fonction r´eactions. Une fonction processus est également définie pour chaque calcul afin de retraduire une espèce en un proces- sus. Cette fonction sera utilisée pour prouver la correction de l’instanciation dans la section 6.5. En général, l’instanciation de la machine pour un calcul donné peut être effectuée de différentes manières, en permettant l’incorporation d’optimisations spécifiques au calcul choisi.

Des instanciations de la machine générique avec le calcul bioambiant et κ sont données dans l’appendice A.

6.4.1

Syntaxe et sémantique du calcul

La syntaxe de la variante du π-calcul stochastique utilisée dans ce chapitre est donnée dans la définition 6.5 et est basée sur (Phillips & Cardelli, 2007). Il est à noter que cette définition est différente de celle utilisée dans le chapitre 5 (définition 5.1 page 62). Un processus P peut être un choix parmi des actions C, une instance X(˜n) d’une définition X avec les paramètres ˜n, une composition de processus parallèles P | Q, ou un processus νx P avec un canal privé x. Un choix C consiste en une compétition entre zéro ou plus actions πi.P, où π est l’action à effectuer avant

d’exécuter le processus P , où i est un indice identifiant l’action. Nous utilisons 0 comme indice par défaut, et nous abrégeons π0 en π. Une action π peut être un délai τ

r avec un taux r, un envoi

!x (˜n)des valeurs sur un canal x, un envoi !x(ν˜n) de valeurs privées ˜n sur un canal x, ou la réception ?x ( ˜m)de valeurs ˜m sur un canal x. Un environnement E consiste en un ensemble de définitions X( ˜m)7→ P, où X est le nom de la définition, ˜mses paramètres, et P le processus correspondant.

Les axiomes de congruence structurelle pour le π-calcul stochastique sont résumés de manière standard dans la définition 6.6, et les règles de réduction sont récapitulées dans la définition 6.7. La notation P r,w

94 Chapitre 6

Définition 6.5 (Syntaxe du π-calcul stochastique).

P ::= C Choix | X(˜n) Instance | P1| P2 Parallèle | νx P Restriction π ::= τr Délai | !x (˜n) Envoi | !x (ν ˜m ) Envoi borné | ?x ( ˜m) Réception C ::= πi1 1.P1+ .. + πNiN.PN Actions E ::= X1( ˜m1)7→ P1, .., XN( ˜mN)7→ PN Environnement

Le choix vide dénote le processus nul 0. Pour chaque définition X( ˜m)7→ P dans l’environnement, nous supposons ˜m⊆ fn(P ), où fn(P ) dénote les noms libres de P . La restriction νx P lie le nom x à P et à la fois !x(ν ˜m ).P et ?x( ˜m).P lient les nom ˜mà P . Nous supposons également que tous les appels récursifs à une définition sont gardés à l’intérieur du préfixe π d’une action de telle sorte que pour une définition X( ˜m)7→ P donnée, tout appel récursif à X dans P ne peut s’effectuer qu’après une action π. Ceci prévient une expansion infinie des définitions des processus.

Définition 6.6(Axiomes de congruence structurelle pour le π-calcul stochastique). La congruence structurelle est réflexive, symétrique et transitive et s’applique dans tout contexte à l’intérieur d’un processus ou d’un choix. Les processus sont supposés égaux au renommage des noms liés et réordonnancement des termes dans un choix près. Nous supposons un environnement global E.

P | 0 ≡ P (6.6) P1| P2 ≡ P2| P1 (6.7) P1| (P2| P3) ≡ (P1| P2)| P3 (6.8) νx 0 ≡ 0 (6.9) νx νy P ≡ νy νx P (6.10) νx (P1| P2) ≡ P1| νx P2 si x /∈ fn(P1) (6.11) X(˜n) ≡ P{˜n/ ˜m} si E(X( ˜m)) = P (6.12)

Définition 6.7 (Réduction en π-calcul stochastique).

τri.P + C −→r,i P (6.13) !x (˜n)i1.P 1+ C1| ?x ( ˜m)i2.P2+ C2 taux(x ),(i1,i2) −→ P1| P2{˜n/ ˜m} (6.14) !x (ν ˜n)i1.P 1+ C1| ?x ( ˜m)i2.P2+ C2 taux(x ),(i1,i2) −→ ν ˜n(P1| P2{˜n/ ˜m}) (6.15) P −→ Pr,w 0 ⇒ νx P −→r,w νx P0 (6.16) P −→ Pr,w 0 ⇒ P | Q −→r,w P0| Q (6.17) Q≡ P −→ Pr,w 0≡ Q0 Q r,w −→ Q0 (6.18)

où un identifiant de réaction w est soit un simple indice i dénotant un délai, ou une paire d’indices (i1, i2)dénotant une interaction.

La Simulation dans le Cadre Générique des Calculs de Processus 95 un taux r. L’identifiant de la réaction w peut être un indice i dénotant un délai τi

r, ou une paire

d’indices (i1, i2)dénotant une interaction entre deux actions avec les indices i1et i2, respectivement.

Un processus peut évoluer de lui-même en exécutant un délai τr. Deux processus peuvent évoluer

simultanément en communicant ou en se liant entre eux. Une communication entre deux processus est effectuée quand un processus envoie des valeurs ˜n sur un canal x, dénoté par !x(˜n), et un processus parallèle reçoit ces valeurs sur le même canal x, dénoté par ?x( ˜m). Une liaison entre deux processus est effectuée quand un processus envoie des valeurs privées ˜n sur un canal x, dénoté par !x (ν ˜n ), qui sont alors partagées entre l’émetteur et le récepteur, représentant la formation d’un complexe entre ces deux processus.

Le comportement stochastique est introduit dans le calcul en associant à chaque délai τrun taux

r et à chaque canal x un taux taux(x), où chaque taux caractérise une probabilité de distribution. Pour les taux distribués exponentiellement par la forme exp(λ), la probabilité qu’une réaction soit effective dans les t unités de temps est donnée par F (t) = 1 − e−λt. La durée moyenne d’une

réaction est alors donnée par 1/λ.

Nous dérivons une sémantique en CMTC pour le π-calcul stochastique directement de sa relation de réduction, en définissant au préalable une forme indicée des processus comme suit, basée sur (Phillips, 2009).

Définition 6.8 (Forme indicée d’un processus). Un processus P est dans une forme indicée si il est de la forme νx1..νxM(C1| .. | CN) où chaque action non-gardée πi est associé à un unique

indice i.

Nous pouvons montrer que tout processus est structurellement congruent à un processus en forme indicée, à un renommage des indices près (la preuve est directe). Nous notons que le seul rôle des indices est de permettre d’identifier de manière unique les actions individuelles, et que renommer ces indices n’a aucun effet sur les réductions qu’un processus peut exécuter (voir (Phillips, 2009) pour plus de détails). La sémantique en CMTC est donnée par la règle suivante, où le processus P est dans une forme indicée.

a =  P {λ,w |Pexp(λ),w−→ P0}λ  > 0 P −→ Pa 0 (6.19)

La positivité stricte de a assure que nous pouvons dériver P a

−→ P0 précisément quand il existe

une réduction de P vers P0 dans le π-calcul stochastique. Nous nous basons implicitement sur le

fait que λ > 0 pour les taux exponentiels exp(λ). Nous dérivons une CMTC de telle sorte que les transitions partant d’un processus P sont données par l’ensemble {P a

−→ P0}pour chaque processus

P0 distinct, c.-à-d. qui n’est pas structurellement congruent.

6.4.2

Extraire les espèces et les réactions des processus

La première étape pour instancier la machine abstraite générique avec le π-calcul stochastique est la spécification d’une espèce. Nous supposons ici qu’une espèce est soit une instance X(˜n), soit un complexe d’instances ν˜n(X1(˜n1) | . . . | XM(˜nM)), où chaque instance correspond à un choix

entre des actions. Notre approche est motivée par l’observation que le choix d’une action est l’unité basique des calculs, où deux choix parallèles interagissent en communicant au travers de canaux partagés. Une approche alternative pourrait supposer que les espèces correspondent directement

96 Chapitre 6 à un choix d’actions, au lieu d’utiliser une instance nommée X(˜n). Notre décision d’utiliser une instance nommée à l’avantage qu’une espèce peut être identifiée explicitement dans un modèle biologique par un nom informatif. Afin de formaliser la notion d’espèce en π-calcul stochastique, nous définissons la forme normale des processus (définition 6.9), et montrons que tout processus est structurellement congruent à une forme normale (proposition 6.1).

Proposition 6.1. Tous les processus du π-calcul stochastique sont congruents à une forme normale donnée par la définition 6.9.

Démonstration. Par induction sur la définition 6.10. En utilisant les congruences structurelles de la définition 6.6, nous augmentons l’environnement de telle sorte que tous les choix sont définis séparément (équation (6.12)), et nous remplaçons les instances qui ne sont pas un choix par leur définition correspondante (équation (6.12)). En utilisant la congruence structurelle dans le cadre de l’équation (6.11), nous modifions la restriction de telle sorte qu’un processus soit une composition parallèle d’espèces, où chaque espèce est soit une instance, soit un complexe.

En utilisant notre forme normale pour les processus (que nous pouvons construire à l’aide de la définition 6.10), nous définissons les fonctions nécessaires à l’instanciation de la machine ab- straite générique avec le π-calcul stochastique (définition 6.11). La fonction esp`eces(P ) convertit un processus en un multi-ensemble d’espèces, la fonction processus(I) convertit un multi-ensemble d’espèces en un processus, et la fonction r´eactions(I, eJ) calcule le multi-ensemble de réactions de l’espèce I avec l’ensemble des espèces eJ. Nous notons que la fonction r´eactions renvoie un multi- ensemble et non un ensemble car une même réaction peut potentiellement être générée de façon multiple, comme dans le processus X 7→ τr.Y + τr.Y. La fonction renvoie le multi-ensemble des

réactions unaires (délais) combiné avec le multi-ensemble des réactions binaires (communications et liaisons).

6.4.3

Exemple

Nous illustrons l’application de la machine abstraite générique au π-calcul stochastique avec l’exemple suivant de formation de complexe :

A = !x (νu).AB(u) AB(u) = !u.A

B = ?x (u).BA(u) BA(u) = ?u.B

Initialement, cent copies des processus A et B sont ajoutées au terme de la machine vide, écrit (100· A | 100 · B) ⊕ (0, ∅, ∅), où la notation 100 · X représente cent copies parallèles du processus X. Ceci donne le terme de la machine (0, S, R), où S et R sont comme suit :

S ={A 7→ 100, B 7→ 100}

R =[({A, B}, taux(x ), {νu (AB(u) | BA(u))}) 7→ (104· λ(taux(x )), t 1)]

La réaction impliquant les espèces A et B est exécutée au temps t1, après qu’une copie des espèces

Aet B ait été supprimée et qu’une copie du complexe ait été ajoutée au terme de la machine : νu (AB(u)| BA(u)) ⊕ ((t1, S, R) {A, B})

La Simulation dans le Cadre Générique des Calculs de Processus 97

Définition 6.9(Forme normale des processus en π-calcul stochastique). Un processus P est dans une forme normale si il est constitué d’une composition parallèle d’espèces I, où une espèce peut être une instance X(˜n) ou un complexe d’instances ν ˜z(X1(˜n1) | . . . | XM(˜nM)), et où chaque

instance X(˜n) correspond à un choix d’actions. Nous supposons que ˜z ∩ ˜n1∩ . . . ∩ ˜nM 6= ∅ et

˜

z⊆ ˜n1∪ . . . ∪ ˜nM afin de minimiser la portée des noms restreints.

P ::= I1| .. | IN Espèces I ::= X(˜n) Instance | ν ˜z (X1(˜n1)| .. | XM(˜nM)) Complexe C ::= πi1 1.P1+ .. + πNiN.PN Choix E ::= X1( ˜m1)7→ C1, .., XN( ˜mN)7→ CN Environnement avec N ≥ 0 et M ≥ 1.

Définition 6.10 (Calcul de la forme normale des processus en π-calcul stochastique). Nous écrivons QiPipour P1| .. | PN, où i ∈ {1, .., N}. Nous écrivons E(X(˜n)) = C pour E(X( ˜m)) = C0

où C = C0

{˜n/ ˜m}. Nous notons que le cas normale(C) nécessite que l’environnement contienne une

unique définition telle que E(X(en)) = C. normale(0) , 0

normale(X(˜n)) , X(˜n) si E(X(˜n)) = C

normale(X(˜n)) , normale(P ) si E(X(˜n)) = P 6= C normale(P1| P2) , normale(P1)| normale(P2)

normale(C) , X(˜n) si E(X(˜n)) = C normale(νx P ) , ins´erer(x, normale(P )) ins´erer(x ,Q iIi) , (ν ˜zQkKk)|QjIj si Ik = ν ˜zkKk ∧x ∈ fn(Ik), x /∈ fn(Ij) ∧\z˜k =∅, ˜z ={x } ∪ [ ˜ zk ∧i ∈ I, j ∈ J , k ∈ K ∧ J ∩ K = ∅, I = J ∪ K

Définition 6.11(Machine abstraite générique instanciée avec le π-calcul stochastique). En util- isant la définition des réductions du calcul pour dériver les réactions. Nous supposons un environ- nement global E contenant toutes les définitions des instances. Nous écrivons i ∈ I si l’identifiant i est présent dans l’espèce I.

esp`eces(P ) , [I1, .., IN] si normale(P ) = (I1| .. | IN)

processus([I1, .., IN]) , (I1| .. | IN)

r´eactions(I, eJ) , unaire(I) ] binaire(I, ( eJ∪ {I})) unaire(I) , [([I], r, esp`eces(P )) | I−→ P ]r,i

binaire(I1, eJ) , [([I1, I2], r, esp`eces(P )) | I2∈ ˜J∧ i1∈ I1∧ i2∈ I2

∧(I1| I2) r,(i1,i2)

98 Chapitre 6 Ceci donne le terme de machine (t1, S1, R1), où actions(νu(AB(u) | BA(u))) = τu.(A| B)et S1

et R1 sont comme suit :

S1={A 7→ 99, B 7→ 99, νu (AB(u) | BA(u)) 7→ 1}

R1=[({A, B}, taux(x ), {νu (AB(u) | BA(u))}) 7→ (9801 · λ(taux(x )), t3),

({νu (AB(u) | BA(u))}, taux(u), {A, B}) 7→ (λ(taux(u)), t2)]

Nous notons que les algorithmes de simulation existants tels que (Phillips & Cardelli, 2007) gèrent Ncopies du complexe νu(AB(u) | BA(u)) en créant un nom unique pour chaque canal restreint u, comme suit :

νu1 . . . νuN(AB(u1)| BA(u1)| . . . | AB(uN)| BA(uN))

Au contraire, notre approche traite ces N instances comme N copies du même complexe νu(AB(u) | BA(u)), donnant moins d’espèces, moins de réactions et donc une simulation plus efficace.