L1-S1 2018-2019 PHYS 102 : PHYSIQUE EXPERIMENTALE
Pour trouver l'image de A on trace deux rayons particuliers issus de A. Page 51. 51. Le premier est confondu avec l'axe optique : il se réfléchit sans
NOTIONS de BASE sur les INCERTITUDES et le TRAITEMENT des
de la notion de doute doute qui est un concept fondamental pour un On confond souvent dans le langage scientifique "erreur" et "incertitude" même si on ...
NOTIONS de BASE sur les INCERTITUDES et le TRAITEMENT des
de la notion de doute doute qui est un concept fondamental pour un On confond souvent dans le langage scientifique "erreur" et "incertitude" même si on ...
Processus dapprentissage savoirs complexes et traitement de l
14 nov. 2013 environnements didactiques opératoires et féconds pour le praticien de l'enseignement et de la médiation scientifiques.
Lintroduction de la notion daire
19 nov. 2013 qui a pour consigne de trouver l'aire des trois premières figures et un encadrement pour la quatrième. Je les sollicite cependant à ne chercher ...
Chapitre 6. Procédures délaboration dune épreuve dévaluation
Pour mener à bien l'évaluation des apprentissages il faut répondre à plusieurs 4.2 Choisir les modalités du jugement et de la notation à rendre sur les ...
LE PROCESSUS DE CROISSANCE SPIRITUELLE DE LEADERS
recours à des pratiques spirituelles et des maîtres spirituels pour cultiver la conscience supérieure elles montrent que la spiritualité est une notion
Etudes dassociations pan-génomiques chez la canne à sucre
Un grand merci à Jean Daugrois pour avoir partagé avec moi ses connaissances sur la pathologie de la canne
THÈSE DE DOCTORAT
Analyse des erreurs d"arrondi sur les
nombres`a virgule flottante par programmation par contraintesRémy GARCIA
Laboratoire d"Informatique, de Signaux et Systèmes de Sophia Antipolis (I3S)UMR7271 UCA CNRS
Présentée en vue de l"obtention
du grade de docteur enInformatique d"Université Côte d"AzurDirigée par :Claude MICHEL, Ingénieur de
Recherche, Université Côte d"Azur
Co-encadrée par :Michel RUEHER, Profes-
seur Émérite, Université Côte d"Azur Soutenue le :8 Septembre 2021Devant le jury, composé de :Jean-Paul COMET, Professeur, Université
Côte d"Azur
Sylvie PUTOT, Professeur, École Polytech-
niqueAndreas PODELSKI, Professeur, Université
de FreiburgMatthieu MARTEL, Professeur, Université
de Perpignan Via Domitia ANALYSE DES ERREURS D"ARRONDI SUR LES NOMBRES ÀVIRGULE FLOTTANTE PAR PROGRAMMATION PAR
CONTRAINTESFloating-point numbers round-off error analysis by constraint programmingRémy GARCIA
Jury :
Président du jury
Jean-Paul COMET, Professeur, Université Côte d"AzurRapporteurs
Sylvie PUTOT, Professeur, École Polytechnique
Andreas PODELSKI, Professeur, Université de FreiburgExaminateurs
Matthieu MARTEL, Professeur, Université de Perpignan Via DomitiaDirecteur de thèse
Claude MICHEL, Ingénieur de Recherche, Université Côte d"AzurCo-encadrant de thèse
Michel RUEHER, Professeur Émérite, Université Côte d"AzurUniversité Côte d"AzurRémy GARCIA
Analyse des erreurs d"arrondi sur les nombres à virgule flottante par programma- tion par contraintes xi+133p.Ce document a été préparé avec L
ATEX2e et la classethese-ISSSversion v. 2.10.
Impression : sommaire.tex - 25/8/2021 - 19:13
Révision pour la classe : these-ISSS.cls,v 2.10 2020/06/24 14:16:37 mpelleau Analyse des erreurs d"arrondi sur les nombres à virgule flottante par programmation par contraintesRésumé
Les nombres à virgule flottante sont utilisés dans de nombreuses applications pour effectuerdes calculs, souvent à l"insu de l"utilisateur. Les modèles mathématiques de ces applications
utilisent des nombres réels qui ne sont souvent pas représentables sur un ordinateur. En ef- fet, une représentation binaire finie n"est pas suffisante pour représenter l"ensemble continu et infini des nombres réels. Le problème est que le calcul avec des nombres à virgule flot-tante introduit souvent une erreur d"arrondi par rapport à son équivalent sur les nombres réels.
Connaître l"ordre de grandeur de cette erreur est essentiel afin de comprendre correctement le comportement d"un programme. De nombreux outils en analyse d"erreurs calculent une sur- approximation des erreurs. Ces sur-approximations sont souvent trop grossières pour évaluer efficacement l"impact de l"erreur sur le comportement du programme. D"autres outils calculent une sous-approximation de l"erreur maximale,i.e.,la plus grande erreur possible en valeur absolue. Ces sous-approximations sont soit incorrectes, soit inatteignables. Dans cette thèse, nous proposons un système de contraintes capable de capturer et de raisonner sur l"erreur pro- duite par un programme qui effectue des calculs avec des nombres à virgule flottante. Nous proposons également un algorithme afin de chercher l"erreur maximale. Pour cela, notre al- gorithme calcule à la fois une sur-approximation et une sous-approximation rigoureuses de l"erreur maximale. Une sur-approximation est obtenue à partir du système de contraintes pourles erreurs, tandis qu"une sous-approximation atteignable est produite à l"aide d"une procédure
générer-et-tester et d"une recherche locale. Notre algorithme est le premier à combiner à la fois
une sur-approximation et une sous-approximation de l"erreur. Nos méthodes sont implémen- tées dans un solveur, appelé FErA. Les performances sur un ensemble de problèmes communs sont compétitives : l"encadrement rigoureux produit est précis et se compare bien par rapport aux autres outils de l"état de l"art.Mots-clés :programmation par contraintes, nombres à virgule flottante, erreur d"arrondi, analyse
d"erreurs, contraintes sur les erreurs, optimisation vi Floating-point numbers round-off error analysis by constraint programmingAbstract
Floating-point numbers are used in many applications to perform computations, often without the user"s knowledge. The mathematical models of these applications use real numbers that are often not representable on a computer. Indeed, a finite binary representation is not sufficient to represent the continuous and infinite set of real numbers. The problem is that computing with floating-point numbers often introduces a rounding error compared to its equivalent over real numbers. Knowing the order of magnitude of this error is essential in order to correctly under- stand the behaviour of a program. Many error analysis tools calculate an over-approximation of the errors. These over-approximations are often too coarse to effectively assess the impact of the error on the behaviour of the program. Other tools calculate an under-approximation of the maximum error,i.e.,the largest possible error in absolute value. These under-approximations are either incorrect or unreachable. In this thesis, we propose a constraint system capable of capturing and reasoning about the error produced by a program that performs computations with floating-point numbers. We also propose an algorithm to search for the maximum error. For this purpose, our algorithm computes both a rigorous over-approximation and a rigor- ous under-approximation of the maximum error. An over-approximation is obtained from the constraint system for the errors, while a reachable under-approximation is produced using a generate-and-test procedure and a local search. Our algorithm is the first to combine both an over-approximation and an under-approximation of the error. Our methods are implemented in a solver, called FErA. Performance on a set of common problems is competitive: the rigorous enclosure produced is accurate and compares well with other state-of-the-art tools. Keywords:constraint programming, floating-point numbers, round-off error, error analysis, con- straints over errors, optimization viRemerciements
Je tiens tout d"abord à remercier Sylvie PUTOTet Andreas PODELSKId"avoir accepté de rap-porter cette thèse. Je remercie également Matthieu MARTELet Jean-Paul COMETd"avoir participé
à mon jury de thèse.
Merci à Claude MICHELet Michel RUEHER, mes encadrants de thèse. Je tiens en particulierà les remercier pour les conseils, la patience, et la liberté qu"ils m"ont accordé depuis le début.
Je tiens aussi à remercier Laurent MICHELpour le temps qu"il a passé à m"expliquer le fonc- tionnement du solveur Objective-CP et pour son enthousiasme constant dans ses explications tant théoriques que techniques. Je remercie les permanents de l"équipe MDSC : Jean-Charles RÉGIN, Arnaud MALAPERT, Marie PELLEAU, Cinzia DIGIUSTO, Enrico FORMENTI, Adrien RICHARD, Kévin PERROT, Bruno MARTIN, Sandrine JULIA, Joëlle DESPEYROUX, et Elisabetta DEMARIA, pour leur ac- cueil et les nombreuses discussions que nous avons pu avoir pendant ma thèse. Merci à Benjamin MIRAGLIO, Jonathan BEHAEGEL, Heytem ZITOUN, Ophélie GUINAU- DEAU, Ingrid GRENET(et Reiki), Assia KAMAL-IDRISSI, Piotr KRASNOWSKI, Laetitia LA- VERSA, Nicolas ISOART, Arthur FINKELSTEIN, Laetitia GIBART, Sara RIVA, Samvel DERSAR- KISSIAN, Giulia ROCCO, François DORÉ, Amélie GRUEL, Loïc GERMERIE, et aux autres docto-rants et stagiaires que j"aurai pu oublier d"avoir rendu ces années passées en thèse plus agréables
et mémorables. Merci à Hélène COLLAVIZZA, Erick GALLESIO, Pascal URSO, Stéphane LAVIROTTE, et Ju- lien PROVILLARDavec qui j"ai eu le plaisir d"enseigner pendant mon doctorat. Merci aux différentes équipes de l"ADSTIC, et en particulier à Lyes KHACEF, Adrien RUSSO, et Amina GHRISSIpour tout ce qu"ils ont fait depuis notre arrivée dans l"association. Je souhaite aussi bon courage à la prochaine équipe. Je remercie aussi mes amis, que je ne nommerai pas, au risque d"en oublier certains, pour tous les moments partagés ensemble. Je tiens tout de même à remercier Tiphaine GILSONpour ces longues années d"amitié et Mircea MOSCUpour ses blagues inimitables. Merci à Diana RESMERITApour ces quatre ans de colocation extraordinaires, les apéros, les séances de sports, les discussions, les ragots, et tout le reste.Je remercie bien sûr ma famille, et en particulier mes parents et mon frère, pour le support et
le soutient inconditionnel qu"ils m"accordent depuis toujours.Je remercie finalement toutes les personnes que j"ai croisées, à l"université et en dehors, et qui
ont permis à ces années de thèse d"être inoubliables.Table des matières
1 Introduction
11.1 Contexte
21.2 Problématique : l"analyse d"erreurs en programmation par contraintes
31.3 Contributions
31.4 Organisation du manuscrit
4Notations5
État de l"art
2 Nombres à virgule flottante
92.1 Représentation
112.1.1 Formats
112.1.2 Nombres normalisés
112.1.3 Nombres dénormalisés
122.1.4 Nombres spéciaux
122.2 Arithmétique des nombres à virgule flottante
132.2.1 Opérateur d"arrondi
132.2.2ulpetufp. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .15
2.2.3 Propriétés
162.3 Erreurs et nombres à virgule flottante
172.3.1 Les différentes erreurs
172.3.2 Phénomènes liés à l"erreur
192.4 Conclusion
213 Programmation par contraintes
233.1 Filtrage
273.2 Recherche
313.3 Contraintes sur les nombres à virgule flottante
333.3.1 Filtrage des domaines sur les nombres à virgule flottante
333.3.2 Stratégies de recherche dédiées aux nombres à virgule flottante
353.4 Conclusion
364 Analyse de programmes
374.1 Interprétation abstraite
394.2 Optimisation globale
444.3 Approches basées sur la satisfiabilité modulo théories
484.4 Assistant de preuves
494.5 Test avec stratégie d"exploration
514.6 Autres outils
56ix x TABLE DES MATIÈRES
4.7 Conclusion
56Contributions
5 Un système de contraintes pour les erreurs d"arrondi
615.1 Problématique
635.2 Modélisation
645.2.1 Variables et domaines d"un CSP
655.2.2 Contraintes d"un CSP
665.2.3 Solution d"un CSP
675.3 Quantifier la déviation du calcul entreRetF. . . . . . . . . . . . . . . . . . . .68
5.3.1 Modèle de l"erreur d"arrondi
705.4 Filtrage dédié aux erreurs d"arrondi
725.4.1 Liens entre domaines de valeurs et domaines d"erreurs
755.5 Contraintes sur les erreurs
775.6 Conclusion
796 Un algorithme pour encadrer rigoureusement les erreurs d"arrondi
816.1 Définition du problème
836.2 Algorithme pour encadrer rigoureusement l"erreur maximale d"un programme
856.2.1 Propriétés et limites
866.2.2 Gestion des boîtes
886.3 Conclusion
927 Implémentation et expérimentation
937.1 Système de contraintes pour les erreurs d"arrondi
957.2 Algorithme pour encadrer rigoureusement les erreurs d"arrondi
987.3 Expérimentation
987.3.1 Comparaison des critères d"arrêts
997.3.2 Comparaison avec les autres outils de l"état de l"art
997.3.3 Évolution des bornes pendant la résolution
1037.4 Conclusion
1088 Conclusion et Perspectives
1098.1 Conclusion
1098.2 Perspectives
110Bibliographie
113Liste des figures
125Liste des tableaux
127Liste des définitions
129x
TABLE DES MATIÈRES xi
Liste des exemples
131xi
CHAPITRE1Introduction
De nombreuses applications en ingénierie, mathématique, ou physique utilisent les nombres àvirgule flottante pour effectuer des calculs, souvent à l"insu de l"utilisateur. Ces applications vont
du logiciel embarqué dans une voiture [Yamada, 1998
], au machine learning [ en passant par les modèles représentant des phénomènes physiques [Lee, 2014
]. Les nombres uti-lisés dans les modèles mathématique de ces applications sont souvent des nombres réels et ne sont
pas représentable sur un ordinateur. En effet, une représentation binaire finie n"est pas suffisante
pour représenter l"ensemble continu et infini des nombres réels. C"est pourquoi les nombres à vir-
gule flottante, qui sont une approximation discrète et finie des nombres réels, sont utilisés à leur
place. Tous les nombres réels n"ont pas d"équivalent exact dans l"ensemble des nombres flottants.
Le nombre réel
13 (aussi écrit0,333...) avec un nombre infini de décimales, est approximé par le nombre flottant0,33333334331. Comme les nombres à virgule flottante sont basés sur une re- présentation binaire, un nombre fini de décimales tel que 110(aussi écrit0,1) est représenté par le nombre flottant0,10000000151. De plus, le résultat d"une opération sur deux nombres flottants
n"est pas toujours un nombre flottant, et doit donc être approximé vers un flottant proche. Par
exemple, l"opération1 +1×10-10donne1,0000000001sur les réels, mais est approximé par le nombre flottant1,0en machine1. Cette approximation d"un réel vers un flottant est mise en placeà travers un opérateur d"arrondi et s"applique sur chaque valeur et opération élémentaire d"un pro-
gramme qui concerne les nombres à virgule flottante. Cette différence entre la valeur exacte d"un
nombre sur les réels ou d"un calcul sur les réels et sa valeur approximée sur les flottants est appe-
lée une erreur. Une erreur peut être négligeable et même compensée par d"autres erreurs dans un
programme, mais une accumulation d"erreurs peut avoir des conséquences désastreuses. En par- ticulier dans un système cyber-physique : un programme informatique qui contrôle et commande des entités physiques. De telles conséquences peuvent entrainer la mort d"êtres humains [ Gene- ral Accounting Office, 1992 ] ou des pertes financières importantes [Quinn, 1983
] sur les marchés boursiers.Pendant la première guerre du Golfe, en 1991, l"armée américaine a installée des missiles
Patriot [
General Accounting Office, 1992
] afin d"intercepter les missiles Scud ennemis. Le logicielinstallé dans ces missiles utilisait un entier pour compter le temps en dixième de seconde. Cet
entierétaitensuitemultipliépar 110est un nombre à virgule flottante. Mais comme 110
n"est pas un nombre flottant, arrondir sa valeur
introduit une erreur de conversion. Cette erreur, certes négligeable, a des répercussions dans la
suite du programme. En effet, le flottant représentant le temps en secondes était initialement stocké
sur 24 bits, mais le logiciel avait été mis à jour pour avoir une représentation plus précise du temps
sur48bits. Cesaméliorationsn"ontpar contrepasétéeffectuéesdansl"ensemble ducode.Ainsi, la
différence entre deux mesures du temps, l"une sur 24 bits et l"autre sur 48 bits, introduit une erreur1. pour un nombre flottant sur 32 bits, avec un arrondi au plus proche pair.
12 CHAPITRE1 - Introductionnon négligeable pour l"estimation de la trajectoire du missile à intercepter. Une telle erreur est
proportionnelle à l"entier qui compte le temps en dixième de seconde. En laissant fonctionner ce
logiciel 100 heures, la mesure du temps a dérivé d"un tiers de seconde, sous-estimant la trajectoire
du missile Scud2en approche de 600 mètres. L"erreur dans le calcul de la trajectoire a causé la
mort de 28 soldats américains et fait une centaine de blessés.En 1982, la bourse de Vancouver [
Quinn, 1983
] a lancé un index boursier accumulant lesvaleurs de l"ensemble des 1 400 actions listées chez eux. Le résultat de cette somme était calculé
jusqu"à la quatrième décimale et affiché jusqu"à la troisième. Par contre, au lieu d"arrondir ce
quotesdbs_dbs47.pdfusesText_47[PDF] M'expliquer petit paragraphe !
[PDF] m'expliquer un exercice sur les conversions et les puissances de 10
[PDF] M'sieur, j'ai oublié mes affaires!
[PDF] m'a confortée ou conforté
[PDF] m'accueillir conjugaison
[PDF] m'accueillir en anglais
[PDF] m'aider
[PDF] m'aidez
[PDF] m'aiguiller définition
[PDF] m'aiguiller synonyme
[PDF] m'éclaircir définition
[PDF] m'éclaircir ou m'éclairer
[PDF] m'éclaircir sur ce point
[PDF] m'éclairer synonyme