• Aucun résultat trouvé

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 eption

tente 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. Les

10

o tets alloués à pointer sont automatiquement restitués au système de gestion de la mémoire. Cela se voit au fait

que 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 polynmes

R

. On her he un simpli ateur anonique pour la relation d'équivalen e modulo

A

. L'idéal

A

est présenté, en un sens qui reste à pré iser, par un système d'équations polynomiales

A

. Les équations de

A

sont interprétées omme un système de réé riture. Pour xer les idées, supposons que l'équation en quatre

indéterminées

x y− z t = 0

fasse partie de

A

. 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éé rire

l'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

ou

x−−−→ z t

y ·

Dans le premier as, l'idéal

A

est l'idéal engendré par

A

, la forme normale d'un polynme de

R

est un polynmede

R

etonaboutit àla théoriedes bases de Gröbner. Dans lese ond as,l'idéal

A

estl'idéalengendrépar

A

maissaturéparlesdénominateursdesmembresdroits des règles de réé riture, la forme normale d'un polynme de

R

est une fra tion rationnelle et onaboutit à la théoriedes systèmes triangulaires.C'est à ette dernière appro he que je

m'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éé riture

A

toute fra tion rationnelle

p/q

appartenant au orps des fra tions de

R

, équivalente à

f

modulo l'idéal déni par le système de réé riture

A

, dont le numérateur et le dénominateur sont irrédu tibles par

A

.

On rappellequ'une ongruen e

f = p/q mod A

n'a de sens que si

q

est réguliermodulo

A

. 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 de

f

modulo

A

;

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éal

A

1. dé idersi

f = 0

dans

R/A

,

2. dé idersi

f

est diviseur de zéro dans

R/A

.

Rappelons qu'un élément

a

d'un anneau

R

divise zéro si

a6= 0

ets'ilexiste

b∈ R

,

b 6= 0

tel que

a b = 0

. Les quali atifs  non diviseur de zéro  et  régulier  sont synonymes. Un élément

a ∈ R

est inversible s'il admet un inverse dans

R

, 'estàdire s'il existe

b ∈ R

tel que

a b = 1

. Tout élément inversible est régulier (puisque si

a b = 1

et

a c = 0

alors

0 = (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

A = (p)

engendré par un seul élément dans un anneau de polynmes en une indéterminée età oe ients dans un orps

K

.