David Madore's WebLog: Calculs sur ordinateur : Sage et compagnie

[Index of all entries / Index de toutes les entréesLatest entries / Dernières entréesXML (RSS 1.0) • Recent comments / Commentaires récents]

↓Entry #1624 [older| permalink|newer] / ↓Entrée #1624 [précédente| permalien|suivante] ↓

(vendredi)

Calculs sur ordinateur : Sage et compagnie

Pfiou, déjà quinze jours que je n'ai rien posté ici ? Mais — outre qu'à chaque fois que je commence à écrire une entrée mon poussinet m'appelle pour faire dodo — j'ai un alibi : j'étais occupé à m'arracher les cheveux pour faire marcher des programmes de calcul pour faire un peu de géométrie algébrique effective, notamment Sage et Macaulay2.

En l'occurrence il s'agissait de vérifier des calculs dans un article que je référais rapportais, mais le prétexte était aussi d'apprendre à mieux me servir de ces programmes. Sage, en fait, est une sorte de méta-programme : il ne fait pas énormément lui-même, il a surtout pour fonction de rassembler sous une interface commune divers autres programmes auxquels il délègue les calculs difficiles (notamment Singular, qui devait faire tout le boulot sérieux sur les bases de Gröbner que je confiais à Sage), et j'espère d'ailleurs que Macaulay2 arrivera lui aussi prochainement sous l'ombrelle Sage, de sorte que je n'aurai plus qu'un programme à utiliser pour ce genre de choses (parce que c'est un peu fastidieux, entre les Sage, Macaulay2, Singular, mais aussi parfois GP/Pari, Gap4, Maxima, Axiom et quelques autres, de se rappeler qui a besoin d'un ; à la fin de la ligne, qui utilise % pour rappeler le résultat précédent, qui utilise = ou := ou : pour l'affectation, et ainsi de suite). Sage est basé sur Python, sans doute pas mon langage de programmation préféré, mais, du moins, un vrai langage de programmation, ce qui est toujours plus agréable que les succédanés que certains logiciels nous servent.

Tous les programmes que j'ai cités ci-dessus ont la vertu d'être des logiciels libres. Malheureusement ce n'est pas du tout le cas de celui qui fait aujourd'hui référence en matière de calculs informatiques en algèbre et géométrie algébrique (et qui, même si Sage fait des progrès très rapides et très spectaculaires, domine tous les autres à peu près autant qu'un moine Shaolin m'éclaterait en combat singulier), à savoir Magma. Celui-ci, non seulement il n'est pas libre, mais il est même vendu très cher (neither Free as in Free Speech nor Free as in Free Beer—more like Free as in Free Tibet!, comme on dit). Je trouve ça d'ailleurs plus qu'un peu choquant, vu que le coup bas ne vient pas d'une compagnie à but très lucratif (on a sinon la résignation du moins l'habitude que les Springer, les Elsevier et d'autres, ou dans un autre genre les Wolfram Research, se fassent de l'argent à partir des subventions à la recherche en mathématiques) mais d'une université, en l'occurrence celle de Sydney[#].

En l'occurrence, ce n'est pas qu'une préférence abstraite pour le logiciel libre ni un souci d'argent qui me font m'agacer de Magma, c'est aussi une troisième raison, une inquiétude scientifique pour la reproductibilité des calculs. Car si un théorème dépend du résultat d'un calcul (comme c'était le cas dans l'article que je rapportais), et si ce calcul n'est faisable qu'avec un unique logiciel dont, de plus, le code source n'est pas visible, peut-on avoir complètement confiance en l'exactitude du théorème ? Il ne suffit pas que les algorithmes annoncés être utilisés par le logiciel soient publiés et validés, encore faut-il qu'ils soient correctement implémentés et exempts de bugs, et cela on ne peut pas s'en assurer même en théorie. Je proposerais donc comme critère pour qu'un calcul puisse être considéré comme tenant lieu de démonstration inconditionnelle (lorsqu'il repose, évidemment, sur des algorithmes garantis et qui prouvent effectivement la conclusion annoncée) qu'il puisse être reproduit sur au moins deux logiciels développés de façon complètement indépendante, dont au moins un ait un code source publié. Certes je n'irai pas relire le code complet du logiciel, mais je n'ai pas non plus lu la démonstration du théorème de Hironaka, je fais confiance à des spécialistes pour ça, et je ne me prive pas de l'utiliser : il m'importe cependant de pouvoir lire au moins en théorie tout ce sur quoi mes démonstrations reposent, que ce soit d'autres démonstrations ou des logiciels ; la vérification par un second logiciel tiendrait, dans cette analogie, lieu de vérification d'une démonstration par un rapporteur — cela ne valide pas les logiciels tout entiers, mais ça valide au moins le calcul précis qu'on a fait refaire.

(Dans l'article que je rapportais, fort heureusement, j'ai pu refaire dans Sage et Macaulay2 la totalité des calculs que les auteurs prétendaient avoir effectués avec Magma : ce fut au prix de pas tout à fait du sang mais du moins beaucoup de larmes et de sueur.)

Comme exemple de calcul qu'on peut faire avec ce genre de programmes, voici un exemple dont je ne suis pas peu fier : l'équation cartésienne du bord des composantes hyperboliques de période 3 dans l'ensemble de Mandelbrot (c'est-à-dire la cardioïde du plus gros « ensemble satellite », celui qui est situé autour de −1.755 sur l'axe réel, plus les deux plus gros bulbes symétriques sur la cardioïde mère, situés autour de −0.123±0.745i). Il s'agit de la courbe d'équation suivante (où x désigne la partie réelle et y la partie imaginaire du paramètre) :

x12 + 6x10y2 + 15x8y4 + 20x6y6 + 15x4y8 + 6x2y10 + y12 + 8x11 + 40x9y2 + 80x7y4 + 80x5y6 + 40x3y8 + 8xy10 + 28x10 + 116x8y2 + 184x6y4 + 136x4y6 + 44x2y8 + 4y10 + 60x9 + 192x7y2 + 216x5y4 + 96x3y6 + 12xy8 + (6015/64)x8 + (3199/16)x6y2 + (3709/32)x4y4 + (127/16)x2y6 − (129/64)y8 + (927/8)x7 + (1117/8)x5y2 − (35/8)x3y4 − (225/8)xy6 + (232639/2048)x6 + (116925/2048)x4y2 − (5315/2048)x2y4 − (20673/2048)y6 + (186941/2048)x5 − (9283/1024)x3y2 + (56637/2048)xy4 + (3851/64)x4 − (11473/512)x2y2 + (6615/512)y4 + (64071/2048)x3 − (32193/2048)xy2 + (3552255/262144)x2 − (1528065/262144)y2 + (250047/65536)x + (15752961/16777216) = 0

Si vous croyez que c'est facile de calculer ça, même avec un ordinateur, trouvez-moi la courbe limite correspondante pour les points de période 4 — je serai très impressionné.

[#] Remarquez, si je commence à dire du mal des universités qui ont des politiques honteuses quand il s'agit de se servir de leur droit d'auteur pour éviter que quelque chose d'utile au public ou à la recherche puisse leur échapper, j'en aurais un rayon à sortir… j'ai déjà parlé du OED ?

↑Entry #1624 [older| permalink|newer] / ↑Entrée #1624 [précédente| permalien|suivante] ↑

[Index of all entries / Index de toutes les entréesLatest entries / Dernières entréesXML (RSS 1.0) • Recent comments / Commentaires récents]