LA VIE ARTIFICIELLE: MORPHOGÉNÈSE
Phénomènes de croissance
Le processus par lequel un
embryon se développe pour former un phénotype à partir de
l´ensemble des informations génétiques codées dans son génotype est
la morphogenèse. Elle implique une multiplication
différentielle des cellules selon un programme (dans le temps et
dans l´espace) ainsi qu´une mort ("suicide" des cellules).
La comparaison des développements du membre supérieur
chez l´oiseau, chez le cheval et chez l´homme, fait apparaitre une
strucrure commune: Omoplate, humerus, cubitus et radius, carpes et
métacarpes. Lors du développement du foetus, ces
éléments ont reçus des ordres différents,
spécialisant ainsi un doigt en aile (chez l´oiseau), ou en patte
(chez le cheval) ou en faisant un outil à 5 doigts (chez l´homme).
Certaines cellules émettent des messages que d´autres cellules
interprétent pour modifier l´expression de leurs gènes. On pense
que le génome ainsi que la sélection naturelle et l´adaptation des
organismes à leur milieu expliquent la diversité des formes
de la vie.
Il est admis aujourd´hui par les neurobiologistes que la
conscience est localisée dans l´organisation du système
nerveux et plus particulièrement dans le cerveau qui constitue son
architecture dynamiquement lors du développement intra-uterin (modèle
dit du darwinisme neuronal). On distingue deux classes dans le
vivant: Le non vertébré qui se construit spatialement et le
vertébré qui se construit dans le temps et dans l´espace. Ainsi
un insecte se construit linéairement selon son programme génétique,
la forme segmentée de son corps traduisant bien un processus
semblable à celui d´un automate à états, et son cerveau n´est pas
capable de générer des faits de conscience. Pour les vertébrés (comme
l´homme) la modification de la durée de l´expression d´un gène peut
modifier l´expression des gènes suivants, en particulier le cerveau
se forme globalement tout au long de la formation morphologique
de l´individu.
Historiquement c´est Alan Turing qui, le premier dans les
années 50, imagina un mécanisme expliquant la morphogenèse de
l´hydra, ou hydre d´eau douce, se reproduisant par division.
Pour rendre compte de l´apparition de taches d´ou naitront les
tentacules, il décrivit le phénomène
de réaction-diffusion: Deux produits, qu´il appelait des
morphogènes, l´un étant activateur et l´autre inhibiteur,
mis en interaction, peuvent générer des motifs réguliers. Turing modélisa
ce processus complexe par un système d´équations différentielles linéaires et
indiqua ainsi un lien possible entre physique, biologie et
informatique. Il fonda aussi ce qui devait devenir l´intelligence
artificielle avec son projet de modéliser nos procédures
de pensée [Turing 50].
Récursivité
L´autoréférence caractérise une proposition qui se référe
à elle-même, comme dans la phrase "Cette phrase contient cinq mots".
La phrase "Cette phrase est fausse" introduit un paradoxe, en
effet si elle est vraie, alors elle est fausse ... La récursivité
concerne le développement de l´autoréférence, comme dans le couvercle
de la boîte du fameux fromage "La vache qui rit" (représentant une
vache portant deux boucles d´oreilles qui sont ce même couvercle,
chacun d´eux représentant une vache avec deux boucles d´oreilles, ...).
En mathématique la récursivité est employée pour définir certaines
fonctions: Par exemple la fonction factorielle se définit par:
1) n ! = 1 si n = 0
2) n ! = n * (n - 1) ! si n > 0
Ainsi 3 ! = 3 * 2 !
mais 2 ! = 2 * 1 !
mais 1 ! = 1, donc:
3 ! = 3 * 2 * 1
Il est donc ainsi possible de calculer factorielle de n´importe
quel entier. La fonction factorielle se programme ainsi en langage C:
factorielle(long n)
{
return((n == 0) ? 1 : n * factorielle(n - 1));
}
Son exécution fait appel à la notion de pile, sur une
machine physique, ayant nécessairement une mémoire finie, le calcule
est borné par la taille de la pile.
Appliquons ce processus au problème dit du doublements des
angles: Il s´agit d´un modèle à temps discret dont l´enesmble
des états est représenté par un cercle. Un état peut être repéré par
un nombre x compris entre 0 (angle nul) et 1 (1 tour ou 360 degrés)
qui est identique à l´état 0. La formule de récurrence qui donne l´angle
x(t+1) à l´instant t+1 en fonction de l´angle x(t) à l´instant t
est:
x(t+1) = 2 * x(t)
Partons d´un angle x0 à l´instant 0:
x(0) = x0
à l´instant 1 on a: x(1) = 2 * x(0) = 2 * x0
à l´instant 2 on a: x(2) = 2 * x(1) = 2 * 2 * x0
à l´instant n: x(n) = 2n * x0
Ce qui est une formule parfaitement déterministe. Cependant si
on commet une petite erreur à chaque calcul, elle sera doublée
à chaque iteration.
Cherchons à faire une prévision a 1/2 près
(ce qui est une approximation très grossière):
Si e est l´erreur initiale, après 50 calculs, elle vaut:
E = 250 * e, soit 1/2 = 250 * e
où e = 1 / (251) soit une erreur initiale
inférieure à 10-15 ce qu´aucune expérience physique ne permet pratiquement.
On atteint donc très rapidement une erreur de l´ordre du tour, c´est
à dire des valeurs aléatoires d´angles (pouvant tomber n´importe
où sur le cercle).
Ce modèle très simple décrit un système déterministe mais qui ne permet
pas de prévision réelle à long terme.
Si, au lieu d´avoir une erreur e initiale qui double à chaque pas, on
prend une erreur aléatoire e(t):
x(t+1) = x(t) + e(t) , avec e(t) appartenant à l´intervalle
[-10-15,10-15]
bien que pratiquement indécelable, cette petite erreur produit
un système indéterministe, l´incertitude augmentant à chaque pas.
Si on ne peut pas déceler des erreurs inférieures à 10-15
il sera impossible de décider si le système est déterministe ou non.
Un tel système est dit chaotique, il est caractérisé
par le fait que
des variations infimes des conditions initiales produisent des
trajectoires divergentes imprévisibles.
Un système dynamique est un système dont l´état dépend du temps,
la connaissance de son état à l´instant t suffit pour analyser
son évolution ultérieure. On appelle espace des phases l´espace
de ses états. On a pu montrer que cet espace devait avoir au moins
3 dimensions pour que le système puisse être chaotique.
Soit f une application de l´espace des phases dans lui-même et soit p0 un point
à l´instant initial, calculons récursivement p à chaque instant comme la
transformée de p à l´instant précédent:
p(t+1) = f(p(t))
Partant de p0 on a successivement:
p1=f(p0), p2=f(p1)=f(f(p0)), ...
L´ensemble {p0, p1, ...} s´appelle l´orbite de p0 et
représente la succession des états d´un système soumis à une dynamique
décrite par f.
On appelle point fixe un point qui est sa propre image.
Par exemple si f(p) = 2 * p, le point (0,0,0) est fixe.
Exemples:
1) Si f est l´application identique p(0) = p(1) = ... et l´orbite
n´est autre que le point p0, tous les points sont fixes.
2) Si p0 est un point d´un cercle et si f est la rotation sur
ce cercle d´un angle PI/2, l´orbite est périodique et de période 4.
3) Si entre chaque itération on introduit une petite erreur le
système n´est plus déterministe.
4) Le modèle de Lorenz:
En 1963 le météorologue E.N. Lorenz a obtenu un système de 3
équations différentielles (le système de Lorenz) dont il
étudia la simulation sur ordinateur:
dx / dt = -s * x + s * y
dy / dt = - x * z + r * x - y
dz / dt = - x * y - b * z
s, r et b sont des constantes qui ont une signification
physique lorsque ce système représente la convection d´un gaz,
ou d´un liquide, placé entre deux plaques chauffantes horizontales:
Pour des petites valeurs de r le gaz est immobile (solution stable),
lorsque r dépasse un seuil critique il apparait des mouvements convectifs
en forme de "rouleaux", quand r augmente encore les mouvements
deviennent complexes et irréguliers. Le modèle de Lorenz est capable
de fournir des trajectoires correspondant à ces mouvements aléatoires,
il se forme alors dans l´espace un ensemble de points (x,y,z) qui
attire toutes les trajectoires voisines. De tels ensembles sont
appelés des attracteurs.
Les Objets Fractals
Benoit Mandelbrot [Mandelbrot 75] utilisa les notions
de
dimension fractale, d´
homothétie interne et de
hasard
pour définir ce qu´il appela les objets fractals dans les années 70.
La géométrie fractale
traite d´objets extrêmement complexes dont la dimension peut
être une fraction (comme 1/2 ou 5/3)ou même un irrationnel
(comme log(4)/log(3)): Par exemple une
courbe, objet de dimension 1, extrêmement enroulée sur elle-même
peut occuper une portion du plan et avoir une dimension comprise
entre 1 et 2. Voici par exemple la
courbe de Von Koch
de dimension log(4) / log(3):
De même une surface, objet de dimension 2, extrêmement
plissée peut occuper une portion de volume de l´espace et avoir une
dimension comprise entre 2 et 3. La génération récursive de ces
objets fait apparaitre une ressemblance du détail et du tout
(homothétie interne).
L´utilisation de l´aléatoire dans le processus de génération permet
de briser la trop grande régularité de ces objets. Il est très
étonnant de constater de grandes similitudes entre les formes
fractales et les formes naturelles. Voici par exemple une simulation
de terrain obtenue par la méthode de fractalisation d´une surface
(Carpenter):
(pour plus de détails voir la géométrie fractale)
Les L-Systèmes
Les L-Systèmes furent développés par Lindenmayer et
Prusinkiewicz [Lindenmayer 88] comme approche algorithmique des
processus dynamiques responsables de la croissance de certains
organismes (plantes, coquillages, ...). Ce sont des grammaires
particulières définies à partir d´un alphabet (ensemble de
symboles) et de règles de réécritures permettant,
à partir d´axiomes de construire des mots du langage.
Voici par exemple des motifs de fougères obtenus par de telles grammaires:
(pour plus de détails voir chapitre les L-Systèmes)
Les Biomorphes
Richard Dawkins a créé le célèbre programme "Blind Watchmaker"
("l´horloger aveugle") générant des formes 2D qui ne sont
pas sans rappeler certains organismes vivants: Les
biomorphes.
Dans son principe ce programme est très simple: Il
utilise 2 notions: Celle de GTYPE d´abord qui est représentée
par une chaîne d´entiers codant le développement d´un
individu et qui est transmis à la génération suivante. Celle
de PTYPE ensuite qui représente un individu, sélectionné puis
développé. Une première procédure, dite reproduction,
qui produit un GTYPE enfant à partir d´un GTYPE parent avec
un bruitage aléatoire introduisant des erreurs de copie.
Une deuxième procédure, dite développement, produit
un PTYPE particulier (individu) à partir d´un GTYPE. À chaque
génération les PTYPEs sont sélectionnés selon un critère
esthétique visuel choisi par l´utilisateur du programme
(pratiquement les PTYPEs sont représentés graphiquement sur
l´écran par des motifs 2D, d´une très grande diversité, rappelant
certains insects).
La procédure de développement est implémentée sous la
forme d´une fonction récursive, appelee Tree,
dessinant un arbre dont le nombre de branches et la forme
sont codés sur 15 valeurs entières dans le GTYPE:
Tree(int x, int y, int longueur, int direction)
{
int A, B;
if (direction < 0)
direction += 8;
if (direction >= 8)
direction -= 8;
A = x + (longueur * dx[direction]);
B = y + (longueur * dy[direction]);
move(x, y);
draw(A, B);
if (longueur > 0)
{
Tree( A, B, longueur - 1, direction - 1);
Tree( A, B, longueur - 1, direction + 1);
}
}
Des contraintes, comme des symétries bilatérales ou
radiales, sont ajoutées à cette procédure de base en modifiant
certains gènes. D´autres contraintes, comme des asymétries, des
segmentations ou des variations de gradient, enrichissent encore
les formes obtenues.
Voici quelques exemples de formes sélectionnées par l"horloger
aveugle":
Voir aussi le chapitre suivant et les algorithmes génétiques dans
le cours
L´évolutionnisme en image de synthèse
.
Synthèse d´organismes artificiels
Il y a deux grands principes dans la morphogenèse, d´une part
l´autoréférence et, d´autre part, le codage génétique:
La complexité des formes naturelles résulte de l´application
récursive de règles simples: La division cellulaire, la
duplication du code génétique, son interprétation.
Le très grand nombre de combinaisons
possibles ainsi que la présence d´erreurs (comme les
mutations) assurent la diversité du vivant. Un système capable de
s´autoconserver et de s´autoreproduire fait nécessairement
référence à lui-même: D´une part le feed-back, qui assure
son homéostasie, réalise en effet un bouclage de ses entrées-sorties et,
d´autre part, sa propre description doit faire partie de son être
pour assurer sa descendance. La conscience (de
l´environnement et de soi) est, pour les organismes les plus évolués,
un phénomène émergent d´auto-organisation des éléments dont ils sont
constitués.
Lors de la morphogenèse, l´expression d´un génotype produit
un phénotype, et c´est le codage génétique qui constitue la mémoire
du processus.
La synthèse d´organismes artificiels définit des systèmes
selon ces deux principes: Le codage génétique localisé dans les
GTYPEs s´exprime sous forme de PTYPEs pour un environnement donné
et un procédé de développement donné,
et ce procédé lui-même
est une construction récursive. Les GTYPEs sont par exemple
des chaînes binaires ou même des
programmes
les procédés de développement peuvent être
des grammairse,
enfin les PTYPEs se matérialisent sous forme virtuelle (acteurs
de synthèse, avatars, ...) ou réelle (robots, hybridations de
machines et de vivants, ...).