4.2 Méthode symboliquenumérique
4.2.2 L'implantation
Un premier jet de la méthode dé rite idessus a été omplètement programmé dans le
adreduprojetLÉPISME.LaGnuS ienti Libraryaétéutiliséepourinterpolerles hiers
de mesures disponibles pour les variables observées (des splines d'ordre
3
ont été utilisées), évaluer numériquementles dérivées et appliquerla méthode des moindres arrés linéaires.François Lemaire a réalisé un prototype d'interfa e en langage JAVA à partir d'un
pre-mier jet dû à Thibaut Henin. Nata ha Skrzyp zak a étudié [98℄ de façon approfondie le
langage SBML qui onstitue un standard de des ription de modèles biologiques. C'est une
variantede XML.L'utilisationde e standarddevraitnous permettred'améliorer
l'interopé-rabilité de nos logi iels ave eux des autres et en parti ulier des éditeurs de modèles tels
que CellDesigner.
La méthode est assez ompliquée : elle en haîne plusieurs étapes : élimination
dié-rentielle, simpli ation heuristique des relations entréessorties, estimation des blo s de
paramètres par moindres arrés linéaires, résolution de systèmes d'équations algébriques,
moindres arrés non linéaires. Pour ha une de es étapes, plusieurs méthodes sont souvent
disponibles(à ommen erpar le hoixentre laméthode purementnumériqueoulaméthode
mixtesymboliquenumérique).
Idéalement, le logi iel devrait pouvoir être assemblé à la demande par son utilisateur
en séle tionnant les méthodes qu'il souhaite utiliser. Idéalement, le logi iel devrait dé rire
synthétiquementàl'utilisateurlanaturedesproblèmesren ontrésen asd'é he pourl'aider
dansson hoix.C'estbiensûrbeau oupplusfa ileàdirequ'àfaireetl'implantationa tuelle
du logi iel n'ore pas ette souplesse.
Les bibliothèques BLAD omportent toutefois un mé anisme qui rend possible e type
d'implantation : au début de toute suite d'appels aux bibliothèques BLAD, il est possible
de spé ier des limites en temps de al ul et en espa e mémoire à ne pas dépasser avant la
n de la suited'appels. Dansle as où es bornessontatteintes, une ex eptionest levée qui
permetauprogrammeappelantnonseulementde reprendrelamain maisausside ré upérer
un environnementde travailpropre:toutes lesressour es onsomméespar lesbibliothèques
BLADlorsde lasuite d'appelssontlibérées.Cettefon tionnalitéest indispensable:eneet,
ilest impossiblede prévoiràl'avan ele tempsde al ul oul'espa emémoire onsommé par
lesalgorithmes onnusd'éliminationalgébriqueet diérentielle(à ladiéren e de
l'élimina-tion de Gauss par exemple, pour laquelle on dispose de bornes de omplexitéqui dé rivent
dèlement le omportement de l'algorithme) et personne ne voudrait utiliser une fon tion
pro hes serésolvent instantanément.
Le programme C idessous montre sur un exemple minimal omment les bibliothèques
BLAD(il sut de ba0 en l'o uren e) permettentde mettreen ÷uvre e mé anisme.
/* File out_of_time. */
#in lude "ba0.h"
int main ()
{ stru t ba0_mark M;
stru t ba0_ex eption_ ode ode;
void* pointer; ba0_restart (5, 128); ba0_re ord (&M); BA0_PUSH_EXCEPTION ( ode); if (ba0_ex eption_is_raised ( ode)) { if (ba0_mesgerr == BA0_ERRALR)
ba0_fprintf (stderr, "error: the program ran out of time\n");
else if (ba0_mesgerr == BA0_ERROOM)
ba0_fprintf (stderr, "error: the program ran out of memory\n");
pointer = ba0_allo (10); printf ("%x\n", pointer); ba0_restore (&M); ba0_terminate (ba0_init_level); return 1; } pointer = ba0_allo (10); printf ("%x\n", pointer); do { } while (true); ba0_restore (&M); ba0_terminate (ba0_init_level); return 0; }
Les deux paramètres fournis à ba0_restart spé ient les bornes à ne pas dépasser :
5
se ondes et
128
Mo.Un point de traitement d'ex eption est posé (une sorted'équivalentde try en C++). Ensuite vient la suite d'instru tions à exé uter dans le as où une ex eptiontente de remonter (une sorte d'équivalent de at h). Le traitement d'ex eption onsiste i i
simplement à tester la nature de l'ex eption, à imprimer un message sur l'erreur standard
et àarrêter le pro essus ave un ode de retour indiquantune n anormale. Le programme
Au bout d'à peu près
5
se ondes l'ex eption BA0_ERRALR est automatiquement levée et les instru tions de traitement d'ex eptions sont exé utées. Les10
o tets alloués à pointer sont automatiquement restitués au système de gestion de la mémoire. Cela se voit au faitque lesdeux valeurs a hées sont identiques. Voi il'a hage obtenuà l'exé ution :
$./out_of_time
f630f008
error: the program ran out of time
f630f008
On trouve dans le ode des bibliothèques BLAD plusieurs endroits où des points de
traitement d'ex eptions sont posés et où des ex eptions sont levées. Parmi es ex eptions,
ertaines sonttrès fa ilesàtraiteràl'intérieurde labibliothèque(unnombrepremier
mal- han eux ou un diviseur de zéro est dé ouvert, un algorithme heuristique é houe ...) et
d'autres impossibles à traiter (typiquement, des dépassements des bornes en temps et en
espa e attribuées aux al uls). À l'extérieur de la bibliothèque, les rles sont inversés : les
ex eptions fa ilesà traiterne lesont plus du tout alors que les dépassements des bornes en
Algèbre diérentielle et simpli ation
anonique
Ce hapitre aurait pu s'intituler l'algèbre ommutative et diérentielle ra ontée par
l'algorithme d'Eu lide . Les idées qui y sont exposées sont le résultat d'au moins dix ans
de travail (1990 2000) dans plusieurs équipes. Les arti les de Mi kael Kalkbrener [54℄ et
de DanielLazard [58℄ sont lesarti les fondateurs dans ledomainepurement algébrique.
La lari ation et la orre tion des idées initiales a ensuite été faite par des étudiants de
Daniel Lazard : RenaudRioboo,Mar Moreno Maza et Philippe Aubry[71, 69,1, 70℄. J'ai
adaptéleursrésultatsau as diérentielen ollaborationave FrançoisLemaire[62℄ etMar
MorenoMaza.La onstru tiondes formesnormalesestdue àFrançoisLemaireetàmoi[12℄.
La présentation queje fais i i du as diérentielest originale.
Soit
A
un idéal d'un anneau de polynmesR
. On her he un simpli ateur anonique pour la relation d'équivalen e moduloA
. L'idéalA
est présenté, en un sens qui reste à pré iser, par un système d'équations polynomialesA
. Les équations deA
sont interprétées omme un système de réé riture. Pour xer les idées, supposons que l'équation en quatreindéterminées
x y− z t = 0
fasse partie deA
. Il y a deux grandes façons de l'interpréter omme une règle de réé riture. Soit on la regarde omme une règle permettant de réé rirel'un des monmes en l'opposé de l'autre soiton la regarde omme une règle permettant de
réé rirel'une des variablesen une fra tion rationnelle :
x y −−−→ z t
oux−−−→ z t
y ·
Dans le premier as, l'idéal
A
est l'idéal engendré parA
, la forme normale d'un polynme deR
est un polynmedeR
etonaboutit àla théoriedes bases de Gröbner. Dans lese ond as,l'idéalA
estl'idéalengendréparA
maissaturéparlesdénominateursdesmembresdroits des règles de réé riture, la forme normale d'un polynme deR
est une fra tion rationnelle et onaboutit à la théoriedes systèmes triangulaires.C'est à ette dernière appro he que jem'intéressedans e hapitrepar e que 'est laseule qui sesoitgénéralisée de façon
universitaire.
On a utilisé l'expression forme normale idessus sans la dénir pré isément. Ce
hapitresepropose justementd'en onstruire ladénitionpetit àpetit. Pour lemoment,on
se ontentera de ladénition suivante.
Dénition 2 (dénition impré ise des formes normales)
On appelle forme normale d'un polynme
f ∈ R
par un système de réé ritureA
toute fra tion rationnellep/q
appartenant au orps des fra tions deR
, équivalente àf
modulo l'idéal déni par le système de réé ritureA
, dont le numérateur et le dénominateur sont irrédu tibles parA
.On rappellequ'une ongruen e
f = p/q mod A
n'a de sens que siq
est réguliermoduloA
. Voi ilespropriétés désirées :1. la forme normale d'un polynme
f
doit être unique et ne dépendre que de la lasse d'équivalen e def
moduloA
;2. laforme normaled'un polynme
f
doit être al ulable.Les deux problèmes lefs sont, étantdonnés un élément
f ∈ R
et l'idéalA
1. dé idersi
f = 0
dansR/A
,2. dé idersi
f
est diviseur de zéro dansR/A
.Rappelons qu'un élément
a
d'un anneauR
divise zéro sia6= 0
ets'ilexisteb∈ R
,b 6= 0
tel que
a b = 0
. Les quali atifs non diviseur de zéro et régulier sont synonymes. Un élémenta ∈ R
est inversible s'il admet un inverse dansR
, 'estàdire s'il existeb ∈ R
tel que
a b = 1
. Tout élément inversible est régulier (puisque sia b = 1
eta c = 0
alors0 = (a c) b = (a b) c = c
).La ré iproque est fausse.5.1 Un polynme en une indéterminée
Il s'agit du as d'un idéal