ED STIC - Proposition de Sujets de Thèse pour la campagne d'Allocation de thèses 2014 Axe Sophi@Stic : aucun| Titre du sujet : Localisation d'erreurs dans un système de contraintes sur les flottants Mention de thèse : Informatique HDR Directeur de thèse inscrit à l'ED STIC : Rueher Michel Co-encadrant de thèse éventuel : Nom : Collavizza Prénom : Hélène Email : [email protected] Téléphone : 0492965163 Email de contact pour ce sujet : [email protected] Laboratoire d'accueil : I3S Description du sujet : Contexte applicatif: Les programmes embarqués sont de plus en plus utilisés dans des systèmes critiques (e.g. ABS sur les voitures). La sûreté de fonctionnement repose donc sur l’exécution correcte du code. Ces codes font appel à de nombreux calculs arithmétiques et notamment à des calculs effectués à l'aide des nombres flottants. Cette thèse s'inscrit dans un projet qui vise à développer des méthodes et techniques pour renforcer la fiabilité de tels programmes. Le calcul sur les flottants introduit des risques supplémentaires au niveau de ces programmes. En effet, leur spécification est en général écrite par un utilisateur qui raisonne sur des nombres réels alors que les résultats du calcul sur les nombres flottants peuvent être sensiblement différents du fait des problèmes liés aux arrondis (cancellation, Page 1/3 absorption, …). Il peut en résulter une plus grande instabilité des programmes[19], c’est-à-dire que les décisions prises par le programme sur la base de calculs sur flottants peuvent être totalement différentes de celles qui auraient été prises sur la base d'un calcul sur les réels. Dans la pratique, un calcul sur les réels n'est en général pas possible ou trop coûteux (par exemple si on utilise une précision suffisante pour éviter tout problème d'arrondi). L'analyse statique et l'interprétation abstraite (IA) ont été largement utilisées pour détecter des erreurs dans des programmes avec des nombres flottants [17,18]. Une des limites de l'IA réside dans les fausses alarmes dues aux sur-approximations; c'est à dire des erreurs qui ne peuvent pas se produire dans le contexte de calcul effectif, mais uniquement au niveau de son approximation. La combinaison de l'IA et des techniques CSP [1,5] permet non seulement de calculer de telles approximations mais aussi de générer des contre-exemples qui violent certaines propriétés [20,21]; contre-exemples qui peuvent aussi être générés à l'aide de solveurs comme CBMC (http://www.cprover.org/cbmc/), Z3 (http://z3.codeplex.com/) et MathSAT (http://mathsat.fbk.eu/). Toutefois, dans tous les cas de figure, un problème majeur réside dans la localisation des erreurs. Ce problème est équivalent à celui de l'identification dans l'ensemble des contraintes associées au programme et aux contre-exemples d'un sous ensemble de contraintes "pertinent. Sujet proposé: L'objectif du travail proposé est de faciliter la localisation d'erreurs dans un système de contraintes sur les flottants. Dans le cadre de cette thèse, on va rechercher des algorithmes incrémentaux raisonnablement efficaces pour des systèmes de contraintes hybrides comprenant des entiers, des booléens et des nombres flottants. Plus précisément, on s'intéressera au calcul d'un sous-ensemble pertinent de contraintes pour faciliter la localisation des erreurs dans un système de contraintes hybrides. Ce problème a fait l'objet de nombreux travaux, en particulier en recherche opérationnelle et en programmation par contraintes où la mise au point d'un système de contraintes est un problème critique. Un des objectifs sera donc de réutiliser et d'adapter au contexte des nombres flottants les travaux effectués pour des systèmes LP (linear programming), MIP (mixed integer programming), CSP ou SAT. Lorsqu’on recherche des informations utiles pour la localisation des erreurs sur les systèmes de contraintes numériques, on peut s’intéresser à deux types d’informations : 1.Combien de contraintes dans un ensemble de contraintes insatisfiables peuvent être satisfaites ? 2.Où se situe le problème dans le système de contraintes ? Pour répondre à ces questions plus formellement, on peut utiliser les notions de MUS, MSS et MCS introduites dans [22]. Différents algorithmes ont été proposés pour le calcul des IIS/MUS et MCS. Parmi les premiers Page 2/3 travaux, ont peut mentionner les algorithmes Deletion Filter, Additive Method, Additive Deletion Method, Elastic Filter qui on tété développés dans la communauté de recherche opérationnelle [14]. Les trois premiers algorithmes sont des algorithmes itératifs alors que le quatrième utilise des variables d’écart pour identifier dans la première phase du Simplexe les contraintes susceptibles de figurer dans un IIS. Junker [15] a proposé un algorithme générique basé sur une stratégie ”Divide-and-Conquer” pour calculer efficacement les IIS/MUS lorsque la taille des sous-ensembles conflictuels est beaucoup plus petite que celle de l’ensemble total des contraintes. L’algorithme de Liffiton et Sakallah [24] qui calcule d’abord l’ensemble des MCS par ordre de taille croissante, puis l’ensemble des MUS est basé sur la propriété mentionnée ci-dessus. Cet algorithme, que nous avons utilisé dans notre implémentation est décrit dans la section suivante. Plusieurs améliorations [23, 26] de ces algorithmes on été proposées ces dernières années mais elles sont assez étroitement liées à SAT et a priori assez difficilement transposables dans un contexte où nous avons de nombreuses contraintes numériques sur les flottants. La difficulté majeure pour l'adaptation de ces algorithmes aux flottants vient du fait de la pauvreté de la sémantique de l'arithmétique sur les flottants. Références et sujet étendu : http://users.polytech.unice.fr/~rueher/sujet_CR_2014.pdf URL : http://users.polytech.unice.fr/~rueher/sujet_CR_2014.pdf English version: Page 3/3
© Copyright 2024 ExpyDoc