• Aucun résultat trouvé

Le concept essentiel de la théorie de la viabilité est le noyau de viabilité qui rassemble l’ensemble des états du système à partir desquels il existe au moins une fonction de contrôle qui assure le respect des contraintes jusqu’à un horizon de temps. Pour diverses applications de la théorie, des algorithmes ont été développés pour approcher le noyau de viabilité. [Saint-Pierre, 1994] fait une approximation du noyau de viabilité par une séquence de noyau de viabilité discret. [Deffuant et al., 2007] ont développé un algorithme qui calcule une approximation progressive du noyau de viabilité en utilisant une méthode de classification basée sur des machines à vecteur de support. Cette technique permet de trouver les contrôles viables à chaque pas de temps en évitant une augmentation exponentielle du temps de calcul en fonction de la taille de l’espace de contrôles. Les exemples d’application de cet algorithme sont inspirés de l’écologie. [Coquelin et al., 2007] proposent une approxima-tion numérique du noyau de viabilité en utilisant les outils de la program-mation dynamique. L’approche est illustrée en 2D avec la méthode des k plus proches voisins et en 4D sur un modèle dynamique complexe pour le processus de digestion anaérobie. Tous ces algorithmes d’approximation du noyau de viabilité, même dans le cas d’un système continu, utilisent une grille pour définir un système discret et calculent le noyau exact du système. Par ailleurs, un algorithme de calcul de noyau de viabilité développé et ap-pliqué à la croissance de forme biologique était jusque là inédit pour cette théorie tandis que la croissance de tissu sous certaines conditions où il y a une contrainte sur les ressources des cellules est un problème de viabilité.

Nous allons donc calculer le noyau de viabilité de l’ensemble des tissus atteints au bout de 4 cycles de division. En d’autres termes, nous allons déterminer dans cet ensemble, les tissus à partir desquels, il existe une évo-lution respectant les contraintes de ressources jusqu’à un certain nombre de cycles sans acquérir de nouveaux gènes dans leur génome.

7.2.1 Variables et paramètres

Pour calculer un noyau de viabilité, il faut définir les variables d’états du système, les variables de décision (ou contrôles) de leur dynamique, les contraintes et l’horizon de temps. Les paramètres sont des paramètres d’éner-gie, les mêmes que nous avions déjà définis.

Espace d’états

L’espace d’état est constitué par l’ensemble atteignable de tissus à 4 cycles de division : 1029 tissus de 16 cellules.

Contrôles

La dynamique de croissance des tissus est assurée par leur génome. Ce génome doit pouvoir assurer un développement viable jusqu’à l’horizon de temps sans avoir besoin d’acquérir de nouveaux gènes.

Contraintes

Les contraintes expriment les conditions dans lesquelles l’état d’un sys-tème est considéré comme viable. La contrainte sur les tissus est que le niveau d’énergie soit au dessus d’un certain seuil pour répondre à la nécessité d’une ressource suffisante en énergie pour la maintenance du tissu. Le cycle de divi-sion au cours duquel cette contrainte n’est pas respectée peut être considéré comme un seuil critique au bout duquel les besoins énergétiques des cellules ne sont plus satisfaits. On peut dire alors que le tissu a atteint ses limites. Autrement, pour lui permettre de poursuivre sa croissance, il faudrait soit lui apporter un supplément d’énergie en dehors de sa consommation normale, soit le débarrasser d’un certain nombre de cellules. Exemple de contrainte : considérer que lorsque le niveau d’énergie ne permet plus de maintenir 50% des cellules du tissu, celui-ci n’est plus viable.

Horizon de temps

C’est l’horizon au bout duquel on arrête de faire évoluer et de calculer l’ensemble des tissus viables. Nous l’exprimons en termes de nombre de cycles de division cellulaire.

7.2.2 Dynamique

Nous devons simuler la croissance d’un ensemble de tissus à l’aide de leur génome pour en déterminer les évolutions viables. La complexité de ce pro-blème relève du fait que nous soyons en multivoque contrairement au calcul classique de noyau de viabilité où on fait évoluer des points du plan. Dans le cadre du calcul de noyau de viabilité de tissus, un état est un ensemble de

sant évoluer tous ces points pour un certain horizon de temps. A chaque cycle t, c’est l’ensemble des tissus que compte le noyau de viabilité courant (V iabt) qu’il faut faire évoluer pour calculer le noyau du cycle suivant (V iabt+1). Ce qui pose une complexité au niveau algorithmique et pour la visualisation. Nous avons choisi un stockage persistant des états pour permettre, si besoin, de reprendre un calcul à partir d’un noyau précédemment calculé. Les tissus sont donc lus et modifiés directement à partir de fichiers.

Le pas de temps dans le calcul du noyau de viabilité correspond au temps nécessaire pour parcourir l’espace de tissus, choisir chaque tissu, le faire évo-luer en parcourant ses cellules et en leur appliquant chacune une action. Ce calcul est moins coûteux que le calcul d’ensembles atteignables où nous faisons évoluer un tissu en parcourant ses cellules et en leur appliquant cha-cune toutes les actions possibles. Donc nous sommes passés d’une croissance exponentielle du nombre de tissus en fonction du nombre de cellules à une croissance linéaire en fonction du nombre de cycles.

7.2.3 Algorithme

Nous décrivons les étapes de l’algorithme à la figure 7.17. Un vecteur

identifie le nom des fichiers définissant les tissus de l’espace d’état. Ainsi, tant que le nombre de cycles n’est pas atteint :

— Parcourir le vecteur pour charger le fichier correspondant au tissu à faire évoluer.

— Simuler le tissu. Si son niveau d’énergie respecte les contraintes, nous l’ajoutons dans le noyau de viabilité courant. Un vecteur contient les noms des tissu viables. Si les contraintes ne sont pas respectées, il est enlevé du noyau de viabilité et un autre tissu est choisi.

— Si nous avons fini de parcourir l’espace d’état, cela veut dire que nous avons fait évoluer tous les tissus d’un cycle de division. Dans ce cas, nous vidons le vecteur de tissus pour y transvaser le contenu du vecteur des tissus viables. Enfin, nous incrémentons le nombre de cycles.

— Nous arrêtons le calcul du noyau de viabilité dans 3 cas :

1. Nous avons atteint le nombre de cycles définissant l’horizon de temps. Le noyau de viabilité est le noyau calculé au cycle de divi-sion courant.

2. Le noyau de viabilité reste invariable entre deux cycles de division suffisamment éloignés.

3. Le noyau de viabilité courant calculé est vide. Dans ce cas, le noyau de viabilité est le noyau calculé au cycle de division précédent. 1. Initialisation

V iab0 = {L0}, t = 0 2. Boucle

V iabt+1 = {Lt∈ V iabt| E(Lt+1) > E énergie de maintenance}, t = t + 1

3. Condition d’arrêt

— t = t (l’horizon de temps) ou — V iabt= ∅