• Aucun résultat trouvé

Analyse statique pour le calcul d’atteignabilité

2.2 Les Frappes de Processus standards

2.2.4 Analyse statique pour le calcul d’atteignabilité

Nous présentons brièvement et informellement dans cette section l’analyse statique par interprétation abstraite développée par Paulevé et al. (2012) et inspirée des méthodes d’interprétation abstraite de programmes (Cousot & Cousot, 1977). Celle-ci permet de répondre à des questions d’atteignabilité, c’est-à-dire déterminer s’il est possible d’activer

Chapitre 2 — État de l’art de la modélisation 35

un processus depuis un état initial donné. Sa complexité polynomiale dans la taille du modèle permet une analyse très efficace de réseaux de régulation de très grande taille modélisés en Frappes de Processus.

L’étude de la dynamique des réseaux de régulation biologique se heurte généralement à la taille des modèles, et à la complexité qu’elle engendre. Les model checkers tradition- nels doivent en effet généralement calculer l’intégralité des comportements possibles de réseau, généralement sous la forme d’un graphe des états, afin de pouvoir produire des conclusions sur la dynamique (Richard et al., 2006). Si une telle approche a le mérite de l’exhaustivité, elle n’est cependant pas applicable à des modèles dépassant quelques di- zaines de composants, et donc totalement exclue pour tout modèle de plus d’une centaine de composants.

La forme particulière des actions des Frappes de Processus standards permet cepen- dant de contourner en partie ces problèmes de complexité en approchant la dynamique des modèles. L’analyse statique développée par Paulevé et al. (2012) utilise en effet cette propriété pour résoudre efficacement des problèmes d’atteignabilité, c’est-à-dire des pro- blèmes qui s’énoncent de la forme suivante : « Est-il possible d’activer un processus depuis un état donné en jouant un certain nombre d’actions ? » Ou, autrement dit : « Étant donnés un état s et un processus ai, existe-t-il un scénario δ ∈ Sce(s) dans cet état tel

que ai ∈ s · δ ? »

La méthode développée pour répondre à ce type de question se base sur deux consta- tations :

– on peut vérifier localement que le processus actif d’une sorte peut bondir d’un niveau vers un autre en n’observant que les actions frappant cette sorte ;

– le jeu d’une action est conditionnée par au plus un processus d’une autre sorte que la cible de cette action.

De la première constatation découle le fait que l’atteignabilité d’un processus peut être résolue localement, en observant les actions frappant une sorte donnée, ce qui simplifie la recherche. Une fois ce problème résolu localement pour une sorte, la deuxième constatation permet de déplacer ce problème à d’autres sortes afin dans le but d’activer les processus requis pour jouer chaque action nécessaire (c’est-à-dire les frappeurs de ces actions).

Il existe donc un lien de causalité récursif entre l’activation locale d’un processus, les actions requises pour le faire, et de nouveau l’activation des processus nécessaires pour jouer ces actions, etc. Afin de réduire la complexité de la méthode, une approximation de la dynamique est effectuée à chaque étape : pour chaque résolution d’atteignabilité locale au sein d’une sorte, un ensemble de processus requis appartenant à d’autres sortes est produit, mais l’ordre dans lequel ces processus sont nécessaires est abstrait. Cela permet donc de déplacer l’atteignabilité locale d’un processus à plusieurs atteignabilités indépendantes dans d’autres sortes.

Cette approche permet de décliner une approximation supérieure (sur-approximation) et une approximation inférieure (sous-approximation) de l’ensemble de toutes les dynamiques possibles du modèle. La sur-approximation consiste à ne pas s’intéresser à l’ordre dans lequel les processus requis sont activables — et donc à l’ordre dans lequel les actions résolvant l’atteignabilité locale sont jouables. Cela autorise effectivement davantage de comportements, car en pratique un processus peut ne pas être activable après certaines actions. La sous-approximation, à l’inverse, stipule que tous les processus requis doivent être activables dans tous les ordres possibles, bien qu’en pratique, tous les ordres ne soient pas intéressants pour la résolution.

36 2.2 — Les Frappes de Processus standards

Chacune de ces approximations est représentée à l’aide d’un graphe de causalité locale, qui est unique à chaque problème d’atteignabilité, et qui formalise les liens de causalité évo- qués précédemment. Enfin, Paulevé et al. (2012) donnent une propriété qui, sous certaines conditions dépendant du graphe de causalité locale correspondant à la sous-approximation, stipule que le processus donné est atteignable depuis l’état donné ; de même, une propriété complémentaire est donnée pour le graphe de causalité locale correspondant à la sur- approximation, qui permet d’obtenir la conclusion inverse. Si aucune des deux propriétés n’est vraie, la méthode est dite non conclusive, et il est nécessaire de raffiner le problème ou le modèle.

Le calcul des deux graphes de causalité locales est polynomial dans la taille des Frappes de Processus standards sur lesquelles la méthode est appliquée, et la vérification des deux propriétés l’est dans la taille des graphes obtenus. Ainsi, cette méthode est plus efficace que les approches par force brute car elle évite l’explosion combinatoire propre à l’analyse de la dynamique. Son implémentation produit des résultats en quelques dixièmes de seconde sur des modèles de plusieurs centaines de composants, et s’avère toujours conclusive sur les exemples étudiés.

Une partie de cette analyse statique a par la suite été exploitée dans le but d’approximer efficacement des ensembles de coupes, c’est-à-dire des ensembles de processus nécessaires à une certaine atteignabilité (Paulevé, Andrieux & Koeppl, 2013). Son utilisation dans ce cadre s’est avérée efficace sur des modèles de plusieurs milliers de composants.