Un solveur de contraintes basé sur les domaines abstraits

Documents pareils
Résolution de contraintes mixtes,

Grandes lignes ASTRÉE. Logiciels critiques. Outils de certification classiques. Inspection manuelle. Definition. Test

Curriculum Vitae - Emmanuel Hebrard. Emmanuel Hebrard

Analyse de sécurité de logiciels système par typage statique

Rappel. Analyse de Données Structurées - Cours 12. Un langage avec des déclaration locales. Exemple d'un programme

Vers une approche Adaptative pour la Découverte et la Composition Dynamique des Services

Quatrième partie IV. Test. Test 15 février / 71

Des réels aux flottants : préservation automatique de preuves de stabilité de Lyapunov

sont appliquées à des fonds documentaires, sont destinées à fournir des informations pertinentes sur la structure globale plutôt que sur le contenu.

Examen Médian - 1 heure 30

Structure d un programme et Compilation Notions de classe et d objet Syntaxe

Programmation en Java IUT GEII (MC-II1) 1

Programmer en JAVA. par Tama

Une méthode d apprentissage pour la composition de services web

A GRASPxELS approach for the Job Shop with generic time-lags and new statistical determination of the parameters

Nouvelles propositions pour la résolution exacte du problème de sac à dos bi-objectif unidimensionnel en variables binaires

IFT2255 : Génie logiciel

RLBS: Une stratégie de retour arrière adaptative basée sur l apprentissage par renforcement pour l optimisation combinatoire

1. Structure d un programme C. 2. Commentaire: /*..texte */ On utilise aussi le commentaire du C++ qui est valable pour C: 3.

Gestion mémoire et Représentation intermédiaire

Ordonnancement en temps réel d un jobshop par métaheuristique hybride : étude comparative

Définition et diffusion de signatures sémantiques dans les systèmes pair-à-pair

Évaluation des logiciels et autres réalisations

Étude de l'analyse statique de programmes synchrones par interprétation abstraite

Objectif du cours. Outline. Complexité des systèmes modernes. La modélisation et UML dans les activités du Génie Logiciel...

Cours de Master Recherche

Génie logiciel (Un aperçu)

Curriculum Vitae 1 er février 2008

L apport des contraintes globales pour la modélisation et la résolution d applications industrielles

ACTIVITÉ DE PROGRAMMATION

Un modèle réactif pour l optimisation par colonies de fourmis : application à la satisfaction de contraintes

Introduction à la Programmation par Contraintes (PPC) Ruslan Sadykov LIX, École Polytechnique

Un environnement de déploiement automatique pour les applications à base de composants

Qualité du logiciel: Méthodes de test

Reconstruction de bâtiments en 3D à partir de nuages de points LIDAR

Efficient Object Versioning for Object- Oriented Languages From Model to Language Integration

Stratégie de recherche adaptative en programmation par contrainte

Langage et Concepts de ProgrammationOrientée-Objet 1 / 40

Mines Nantes 20/05/2014. Institut Mines-Telecom : a national network 12 Engineering Graduate schools & 1 Business school. 2 Institut Mines-Télécom

Langage propre à Oracle basé sur ADA. Offre une extension procédurale à SQL

Un propagateur basé sur les positions pour le problème d Open-Shop.

Approche par groupe de gènes pour les données longitudinales d expression génique avec une application dans un essai vaccinal contre le VIH

Proposition de méthode d implémentation d ITIL

Corrigé des TD 1 à 5

Gouvernance IT : par où commencer? Hubert Lalanne DE, Chief Architect for Industries IBM Software France

Face Recognition Performance: Man vs. Machine

Algorithmique et Programmation, IMA

physicien diplômé EPFZ originaire de France présentée acceptée sur proposition Thèse no. 7178

Classification Automatique de messages : une approche hybride

Logiciel Libre Cours 2 Fondements: Programmation

Synergies entre Artisan Studio et outils PLM

Integrated Music Education: Challenges for Teaching and Teacher Training Presentation of a Book Project

Retour d expériences avec UML

Travaux soutenus par l ANR. Jean-François CAPURON (DGA) Bruno LEGEARD (Smartesting)

REMOTE DATA ACQUISITION OF EMBEDDED SYSTEMS USING INTERNET TECHNOLOGIES: A ROLE-BASED GENERIC SYSTEM SPECIFICATION

Formula Negator, Outil de négation de formule.

UE C avancé cours 1: introduction et révisions

Liste de conférences et revues Thème Com A

Cours de Programmation 2

Conditions : stage indemnisé, aide au logement possible, transport CEA en Ile-de-France gratuit.

Rapport semestriel d activité -coordonnateur Programme SETIN - Edition

High Performance by Exploiting Information Locality through Reverse Computing. Mouad Bahi

Des contraintes globales prêtes à brancher

1/24. I passer d un problème exprimé en français à la réalisation d un. I expressions arithmétiques. I structures de contrôle (tests, boucles)

Exclusion Mutuelle. Arnaud Labourel Courriel : arnaud.labourel@lif.univ-mrs.fr. Université de Provence. 9 février 2011

Environnement logiciel basé sur les modèles pour la conception collaborative de produit

Communications collectives et ordonnancement en régime permanent pour plates-formes hétérogènes

Plan du cours. Historique du langage Nouveautés de Java 7

Corps des nombres complexes, J Paul Tsasa

Solution A La Gestion Des Objets Java Pour Des Systèmes Embarqués

Objets et Programmation. origine des langages orientés-objet

Cours d Algorithmique-Programmation 2 e partie (IAP2): programmation 24 octobre 2007impérative 1 / 44 et. structures de données simples

Java 1.5 : principales nouveautés

EPREUVE OPTIONNELLE d INFORMATIQUE CORRIGE

Propagation sur réseau statique et dynamique

Compte-rendu intermédiaire T0+6. Projet ANR-11-BS BR4CP. Programme Blanc 2011

Scénarios économiques en assurance

Développements algorithmiques au LIAMA et àamap en vue de l'analyse d'une scène forestière

Ordonnancement sous contraintes de Qualité de Service dans les Clouds

Génie Logiciel avec Ada. 4 février 2013

Économétrie, causalité et analyse des politiques

PLAN DE COURS. GPA750 Ordonnancement des systèmes de production aéronautique

PeTEX Plateforme pour e-learning et expérimentation télémétrique

SCHOLARSHIP ANSTO FRENCH EMBASSY (SAFE) PROGRAM APPLICATION FORM

Apprentissage statistique dans les graphes et les réseaux sociaux

Introduction au langage C

Résolution de systèmes linéaires par des méthodes directes

DIPLOME D'ETUDES APPROFONDIES EN ECONOMIE ET FINANCE THEORIE DES MARCHES FINANCIERS. Semestre d hiver

XtremWeb-HEP Interconnecting jobs over DG. Virtualization over DG. Oleg Lodygensky Laboratoire de l Accélérateur Linéaire

as Architecture des Systèmes d Information

Programme Compte bancaire (code)

THÈSE. présentée à TÉLÉCOM PARISTECH. pour obtenir le grade de. DOCTEUR de TÉLÉCOM PARISTECH. Mention Informatique et Réseaux. par.

Préparer un état de l art

Une bibliothèque de templates pour CUDA

M2-Images. Rendu Temps Réel - OpenGL 4 et compute shaders. J.C. Iehl. December 18, 2013

LOG4430 : Architecture logicielle et conception avancée

CURRICULUM VITAE. Informations Personnelles

BILAN du projet PEPS 1 EOLIN (Eolien LMI INSA)

Cours d algorithmique pour la classe de 2nde

Pour signifier qu'une classe fille hérite d'une classe mère, on utilise le mot clé extends class fille extends mère

Transcription:

Un solveur de contraintes basé sur les domaines abstraits Marie Pelleau Antoine Miné Charlotte Truchet Frédéric Benhamou TASC, University of Nantes INRIA, ENS JFPC 2013 12 juin 2013 12 juin 2013 1 / 23

Outline 1 Contexte Programmation par contraintes Interprétation abstraite Comparaison 2 Méthode de résolution abstraite 3 AbSolute 12 juin 2013 2 / 23

Contexte Programmation par contraintes Programmation par contraintes La programmation par contraintes (PPC) formalise et résout des problèmes combinatoires [Montanari, 1974] Programmation déclarative, précise le problème pas la méthode de résolution Utilisée pour résoudre nombreux problèmes industriels En biologie (e.g. structure d ARN secondaire [Perriquet and Barahona, 2009]) En logistique (e.g. problème d ordonancement [Grimes and Hebrard, 2011]) En vérification (e.g. vérification de programmes [Collavizza and Rueher, 2007], vérification de modèles [Lazaar et al., 2012]) En génération de tests (e.g. génération automatique de tests de configuration [Hervieu et al., 2011]) En crytographie (e.g. conception de s-boxes cryptographiques [Ramamoorthy et al., 2011]) En musique [Truchet and Assayag, 2011] 12 juin 2013 3 / 23

Contexte Programmation par contraintes Problème de satisfaction de contraintes (CSP) Definition (CSP) V : ensemble de variables D : ensemble de domaines C : ensemble de contraintes v 2 Example (Continu) V = (v 1, v 2 ) D 1 = [ 1, 14], D 2 = [ 5, 10] C 1 : (v 1 9) 2 + v2 2 25 C 2 : (v 1 + 1) 2 + (v 2 5) 2 100 v 1 12 juin 2013 4 / 23

Contexte Programmation par contraintes Problème de satisfaction de contraintes (CSP) Definition (Solution exacte) Une solution exacte est une instanciation des variables satisfaisant toutes les contraintes v 2 Remarque Calculer les solutions exactes peut être trop coûteux ou intraitable Definition (Solution approximée) L ensemble de solutions est approximé par un ensemble de boîtes contenant uniquement des solutions ou assez petite par rapport à un paramètre r v 1 12 juin 2013 4 / 23

Contexte Programmation par contraintes Méthode de résolution Comment résoudre? Propagation En utilisant les contraintes, supprime des domaines les valeurs ne pouvant pas faire partie d une solution Exploration Coupe une boîte en deux plus petites boîtes 12 juin 2013 5 / 23

Contexte Méthode de résolution continue Programmation par contraintes Paramètre : float r liste de boîtes sols queue de boîtes toexplore boîte e e D push e dans toexplore while toexplore do e pop(toexplore) e Hull-Consistency(e) if e then if maxdim(e) r or issol(e) then sols sols e else coupe e en deux boîtes e1 et e2 push e1 et e2 dans toexplore end end end v 2 v 1 12 juin 2013 6 / 23

Contexte Méthode de résolution continue Programmation par contraintes Paramètre : float r liste de boîtes sols queue de boîtes toexplore boîte e e D push e dans toexplore while toexplore do e pop(toexplore) e Hull-Consistency(e) if e then if maxdim(e) r or issol(e) then sols sols e else coupe e en deux boîtes e1 et e2 push e1 et e2 dans toexplore end end end v 2 v 1 12 juin 2013 6 / 23

Contexte Méthode de résolution continue Programmation par contraintes Paramètre : float r liste de boîtes sols queue de boîtes toexplore boîte e e D push e dans toexplore while toexplore do e pop(toexplore) e Hull-Consistency(e) if e then if maxdim(e) r or issol(e) then sols sols e else coupe e en deux boîtes e1 et e2 push e1 et e2 dans toexplore end end end v 2 v 1 12 juin 2013 6 / 23

Contexte Méthode de résolution continue Programmation par contraintes Paramètre : float r liste de boîtes sols queue de boîtes toexplore boîte e e D push e dans toexplore while toexplore do e pop(toexplore) e Hull-Consistency(e) if e then if maxdim(e) r or issol(e) then sols sols e else coupe e en deux boîtes e1 et e2 push e1 et e2 dans toexplore end end end v 2 v 1 12 juin 2013 6 / 23

Contexte Méthode de résolution continue Programmation par contraintes Paramètre : float r liste de boîtes sols queue de boîtes toexplore boîte e e D push e dans toexplore while toexplore do e pop(toexplore) e Hull-Consistency(e) if e then if maxdim(e) r or issol(e) then sols sols e else coupe e en deux boîtes e1 et e2 push e1 et e2 dans toexplore end end end v 2 v 1 12 juin 2013 6 / 23

Contexte Méthode de résolution continue Programmation par contraintes Paramètre : float r liste de boîtes sols queue de boîtes toexplore boîte e e D push e dans toexplore while toexplore do e pop(toexplore) e Hull-Consistency(e) if e then if maxdim(e) r or issol(e) then sols sols e else coupe e en deux boîtes e1 et e2 push e1 et e2 dans toexplore end end end v 2 v 1 12 juin 2013 6 / 23

Contexte Programmation par contraintes Synthèse Ce que fait la PPC Offre un cadre permettant de modéliser de nombreux problèmes combinatoires Résout des problèmes discrets ou continus A de nombreuses heuristiques pour améliorer la résolution = Résout efficacement de nombreux problèmes combinatoires Ce que ne fait pas la PPC Prend en compte la corrélation des variables restreint au produit cartésien Résout des problèmes mixtes discret-continu Remarque Calcule des sur-approximations d un ensemble de solutions 12 juin 2013 7 / 23

Contexte Interprétation abstraite Interprétation abstraite Remarque Au autre domaine calculant des sur-approximations L interprétation abstraite (IA) est une théorie d approximation de sémantiques [Cousot and Cousot, 1976] Utilisée pour l analyse statique et la vérifications de logiciels Application principale : prouver automatiquement qu un programme n a pas d erreurs d exécution 12 juin 2013 8 / 23

Interprétation abstraite Contexte Interprétation abstraite Étudie les valeurs de variables y 1: int x, y 2: y 1 3: x random(1, 5) 4: while y<3 et x 8 do 5: x x+y 6: y 2*y 7: end 8: x x-1 9: y y+1 x 12 juin 2013 9 / 23

Interprétation abstraite Contexte Interprétation abstraite Étudie les valeurs de variables y 1: int x, y 2: y 1 3: x random(1, 5) 4: while y<3 et x 8 do 5: x x+y 6: y 2*y 7: end 8: x x-1 9: y y+1 Zone interdite x 12 juin 2013 9 / 23

Interprétation abstraite Contexte Interprétation abstraite Étudie les valeurs de variables y 1: int x, y 2: y 1 3: x random(1, 5) 4: while y<3 et x 8 do 5: x x+y 6: y 2*y 7: end 8: x x-1 9: y y+1 Remarque Domaine concret D Calculer le domaine concret peut être indécidable ou trop coûteux x 12 juin 2013 9 / 23

Interprétation abstraite Contexte Interprétation abstraite Étudie les valeurs de variables y 1: int x, y 2: y 1 3: x random(1, 5) 4: while y<3 et x 8 do 5: x x+y 6: y 2*y 7: end 8: x x-1 9: y y+1 x 12 juin 2013 9 / 23

Interprétation abstraite Contexte Interprétation abstraite Étudie les valeurs de variables y 1: int x, y 2: y 1 3: x random(1, 5) 4: while y<3 et x 8 do 5: x x+y 6: y 2*y 7: end 8: x x-1 9: y y+1 x 12 juin 2013 9 / 23

Interprétation abstraite Contexte Interprétation abstraite Étudie les valeurs de variables y 1: int x, y 2: y 1 3: x random(1, 5) 4: while y<3 et x 8 do 5: x x+y 6: y 2*y 7: end 8: x x-1 9: y y+1 x 12 juin 2013 9 / 23

Interprétation abstraite Contexte Interprétation abstraite Étudie les valeurs de variables y 1: int x, y 2: y 1 3: x random(1, 5) 4: while y<3 et x 8 do 5: x x+y 6: y 2*y 7: end 8: x x-1 9: y y+1 x 12 juin 2013 9 / 23

Interprétation abstraite Contexte Interprétation abstraite Étudie les valeurs de variables y 1: int x, y 2: y 1 3: x random(1, 5) 4: while y<3 et x 8 do 5: x x+y 6: y 2*y 7: end 8: x x-1 9: y y+1 x 12 juin 2013 9 / 23

Interprétation abstraite Contexte Interprétation abstraite Étudie les valeurs de variables y 1: int x, y 2: y 1 3: x random(1, 5) 4: while y<3 et x 8 do 5: x x+y 6: y 2*y 7: end 8: x x-1 9: y y+1 x 12 juin 2013 9 / 23

Interprétation abstraite Contexte Interprétation abstraite Étudie les valeurs de variables y 1: int x, y 2: y 1 3: x random(1, 5) 4: while y<3 et x 8 do 5: x x+y 6: y 2*y 7: end 8: x x-1 9: y y+1 x 12 juin 2013 9 / 23

Interprétation abstraite Contexte Interprétation abstraite Étudie les valeurs de variables y 1: int x, y 2: y 1 3: x random(1, 5) 4: while y<3 et x 8 do 5: x x+y 6: y 2*y 7: end 8: x x-1 9: y y+1 Domaine abstrait D x 12 juin 2013 9 / 23

Interprétation abstraite Contexte Interprétation abstraite Étudie les valeurs de variables y 1: int x, y 2: y 1 3: x random(1, 5) 4: while y<3 et x 8 do 5: x x+y 6: y 2*y 7: end 8: x x-1 9: y y+1 Fausse alarme x 12 juin 2013 9 / 23

Interprétation abstraite Contexte Interprétation abstraite Étudie les valeurs de variables y 1: int x, y 2: y 1 3: x random(1, 5) 4: while y<3 et x 8 do 5: x x+y 6: y 2*y 7: end 8: x x-1 9: y y+1 Fausse alarme x 12 juin 2013 9 / 23

Interprétation abstraite Contexte Interprétation abstraite Étudie les valeurs de variables y 1: int x, y 2: y 1 3: x random(1, 5) 4: while y<3 et x 8 do 5: x x+y 6: y 2*y 7: end 8: x x-1 9: y y+1 x 12 juin 2013 9 / 23

Interprétation abstraite Contexte Interprétation abstraite Étudie les valeurs de variables y 1: int x, y 2: y 1 3: x random(1, 5) 4: while y<3 et x 8 do 5: x x+y 6: y 2*y 7: end 8: x x-1 9: y y+1 x 12 juin 2013 9 / 23

Interprétation abstraite Contexte Interprétation abstraite Étudie les valeurs de variables y 1: int x, y 2: y 1 3: x random(1, 5) 4: while y<3 et x 8 do 5: x x+y 6: y 2*y 7: end 8: x x-1 9: y y+1 x 12 juin 2013 9 / 23

Interprétation abstraite Contexte Interprétation abstraite Étudie les valeurs de variables y 1: int x, y 2: y 1 3: x random(1, 5) 4: while y<3 et x 8 do 5: x x+y 6: y 2*y 7: end 8: x x-1 9: y y+1 x Remarque Approximation avec différents domaines abstraits Compromis entre l expressivité et le coût d un domaine abstrait 12 juin 2013 9 / 23

Contexte Comparaison Comparaison La même structure sous-jacente (treillis et points fixes) Le même but : sur-approximer un ensemble Solutions en PPC Environnements en IA Différents points fixes Le plus grand point fixe en PPC Le plus petit point fixe en IA Différents schémas itératifs Uniquement des itérations décroissantes en PPC Itérations croissantes et décroissantes en IA Pas de fonction de précision en IA Plus de représentations pour les domaines en IA qu en CP IA traite naturellement les domaines discret-continus 12 juin 2013 10 / 23

Contexte Comparaison À la frontière de l IA et la PPC AI pour les programmes de contraintes [Codognet and Filé, 1992] Vérification de programmes [Collavizza and Rueher, 2007] Amélioration d un analyseur statique [Ponsini et al., 2011] Génération automatique de tests de configuration [Hervieu et al., 2011] Vérification de modèles [Lazaar et al., 2012] Travaux précédents [Pelleau et al., 2011] Définition des domaines abstraits en PPC Utilisation d un domaine abstrait dans une méthode de résolution Notre contribution Définir une méthode de résolution à l aide des outils de l IA 12 juin 2013 11 / 23

Méthode de résolution abstraite Ce qui existe en IA Intervalles Zones Octagones Polyèdres Domaines abstraits avec : fonctions de transfert ρ (instanciation, test,... ) intersection et union élargissement et rétrécissement 12 juin 2013 12 / 23

Méthode de résolution abstraite Ce qui existe en IA Intervalles Zones Octagones Polyèdres Domaines abstraits avec : fonctions de transfert ρ (instanciation, test,... ) intersection et union élargissement et rétrécissement On a besoin : une consistance 12 juin 2013 12 / 23

Méthode de résolution abstraite Ce qui existe en IA Intervalles Zones Octagones Polyèdres Domaines abstraits avec : fonctions de transfert ρ (instanciation, test,... ) intersection et union élargissement et rétrécissement On a besoin : une consistance un opérateur de coupe 12 juin 2013 12 / 23

Méthode de résolution abstraite Ce qui existe en IA Intervalles Zones Octagones Polyèdres Domaines abstraits avec : fonctions de transfert ρ (instanciation, test,... ) intersection et union élargissement et rétrécissement On a besoin : une consistance un opérateur de coupe une fonction de précision 12 juin 2013 12 / 23

Méthode de résolution abstraite Méthode de résolution abstraite Défini la résolution comme une sémantique concrète Propagation Consistance, en utilisant les fonctions de transfert de test Boucle de propagation, point fixe obtenu avec des itérations locales [Granger, 1992] Exploration Opérateur de coupe dans une disjonction Definition (Complétion disjonctive [Cousot and Cousot, 1992]) Étant donné un domaine abstrait D, une disjonction E = P finite (D ) est un sous-ensemble d éléments incomparables de D Fonction de précision 12 juin 2013 13 / 23

Méthode de résolution abstraite Domaine abstrait des octogones O Definition (Octogone [Miné, 2006]) Soient v 1,..., v n des variables, un octogone est l ensemble des points satisfaisant une conjonction de contraintes de la forme ±v i ± v j c, appelées contraintes octogonales v 2 v 2 v 1 2 v 1 1 v 2 5 v 1 v 2 3 v 2 1 v 1 v 2 2.5 v 1 5 v 1 12 juin 2013 14 / 23

Méthode de résolution abstraite Domaine abstrait des octogones O O = { αv i + βv j i, j 1, n, α, β { 1, 1} } F 12 juin 2013 14 / 23

Méthode de résolution abstraite Domaine abstrait des octogones O O = { αv i + βv j i, j 1, n, α, β { 1, 1} } F τ o (X ( ) = min( max X (v i + βv j ) + X ( v i βv j ) ), i,j,β ( max X (v i + v i ) + X ( v i v i ) ) /2 ) i 12 juin 2013 14 / 23

Méthode de résolution abstraite Domaine abstrait des octogones O O = { αv i + βv j i, j 1, n, α, β { 1, 1} } F τ o (X ( ) = min( max X (v i + βv j ) + X ( v i βv j ) ), i,j,β ( max X (v i + v i ) + X ( v i v i ) ) /2 ) i 12 juin 2013 14 / 23

Méthode de résolution abstraite Domaine abstrait des octogones O O = { αv i + βv j i, j 1, n, α, β { 1, 1} } F τ o (X ( ) = min( max X (v i + βv j ) + X ( v i βv j ) ), i,j,β ( max X (v i + v i ) + X ( v i v i ) ) /2 ) i 12 juin 2013 14 / 23

Méthode de résolution abstraite Domaine abstrait des octogones O O = { αv i + βv j i, j 1, n, α, β { 1, 1} } F τ o (X ( ) = min( max X (v i + βv j ) + X ( v i βv j ) ), i,j,β ( max X (v i + v i ) + X ( v i v i ) ) /2 ) i 12 juin 2013 14 / 23

Méthode de résolution abstraite Domaine abstrait des octogones O O = { αv i + βv j i, j 1, n, α, β { 1, 1} } F τ o (X ( ) = min( max X (v i + βv j ) + X ( v i βv j ) ), i,j,β ( max X (v i + v i ) + X ( v i v i ) ) /2 ) i o (X ) = {X [( ) ] αv i + βv j h, X [( ) ] } αv i βv j h 12 juin 2013 14 / 23

Méthode de résolution abstraite Domaine abstrait des octogones O O = { αv i + βv j i, j 1, n, α, β { 1, 1} } F τ o (X ( ) = min( max X (v i + βv j ) + X ( v i βv j ) ), i,j,β ( max X (v i + v i ) + X ( v i v i ) ) /2 ) i o (X ) = {X [( ) ] αv i + βv j h, X [( ) ] } αv i βv j h 12 juin 2013 14 / 23

Méthode de résolution abstraite Domaine abstrait des octogones O O = { αv i + βv j i, j 1, n, α, β { 1, 1} } F τ o (X ( ) = min( max X (v i + βv j ) + X ( v i βv j ) ), i,j,β ( max X (v i + v i ) + X ( v i v i ) ) /2 ) i o (X ) = {X [( ) ] αv i + βv j h, X [( ) ] } αv i βv j h 12 juin 2013 14 / 23

Méthode de résolution abstraite Domaine abstrait des octogones O O = { αv i + βv j i, j 1, n, α, β { 1, 1} } F τ o (X ( ) = min( max X (v i + βv j ) + X ( v i βv j ) ), i,j,β ( max X (v i + v i ) + X ( v i v i ) ) /2 ) i o (X ) = {X [( ) ] αv i + βv j h, X [( ) ] } αv i βv j h 12 juin 2013 14 / 23

Méthode de résolution abstraite Méthode de résolution continue Paramètre : float r liste de boîtes sols queue de boîtes toexplore boîte e D push e dans toexplore while toexplore do e pop(toexplore) e Hull-Consistency(e) if e then if maxdim(e) r or issol(e) then sols sols e else coupe e en deux boîtes e1 et e2 push e1 et e2 dans toexplore end end end 12 juin 2013 15 / 23

Méthode de résolution abstraite Méthode de résolution abstraite Paramètre : float r liste de boîtes disjunction sols queue de boîtes disjunction toexplore boîte domaine abstrait e D push e dans toexplore while toexplore do e pop(toexplore) e Hull-Consistency(e) ρ (e) if e then if maxdim(e) τ(e) r or issol(e) then sols sols e else coupe e en deux boîtes e1 et e2 push e1 et e2 (e) dans toexplore end end end Sous certaines conditions, cette méthode de résolution abstraite termine, est correcte et complète. 12 juin 2013 15 / 23

AbSolute Implantation Prototype avec Apron [Jeannet and Miné, 2009], une bibliothèque OCaml de domaines abstraits numériques pour l analyse statique Consistance : en utilisant les fonctions de transfert de test Boucle de propagation : à chaque itération, propage toutes les contraintes Exécute toutes les fonctions de transfert de test Coupe : uniquement cartésienne Travaux en cours Pour le moment, ne contient pas toutes les techniques de PPC. Reste à améliorer : Boucle de propagation Opérateur de coupe abstrait Heuristique de choix 12 juin 2013 16 / 23

AbSolute Résultats Expérimentation Problèmes du benchmark COCONUT Même configuration Temps limite 1 heure 12 juin 2013 17 / 23

Resultats AbSolute Résultats nom # vars ctrs Ibex AbSolute Ibex AbSolute b 4 = 0.02 0.10 0.26 0.14 nbody5.1 6 = 95.99 1538.25 27.08 - ipp 8 = 38.83 39.24 279.36 817.86 brent-10 10 = 21.58 263.86 330.73 - KinematicPair 2 59.04 23.14 60.78 31.11 biggsc4 4 800.91 414.94 1772.52 688.56 o32 5 27.36 22.66 40.74 33.17 Itv Oct Temps CPU en secondes pour trouver toutes les solutions 12 juin 2013 18 / 23

AbSolute Résultats Expérimentation Reformulation de problèmes du benchmark MinLPLib Fonction objectif min f (V ) transformée en deux contraintes f (V ) bestval + ɛ et f (V ) bestval ɛ Même configuration Temps limite 1 heure 12 juin 2013 19 / 23

Results AbSolute Résultats name int # vars real ctrs Itv Oct Poly gear4 4 2 = 0.017 0.048 0.415 st_miqp5 2 5 2.636 3.636 - ex1263 72 20 = 473.933 - - antennes_4_3 6 2 520.766 1562.335 - Temps CPU en secondes pour trouver toutes les solutions = AbSolute traite naturellement les problèmes discret-continus 12 juin 2013 20 / 23

Conclusion et Perspectives Conclusion Conclusion La méthode de résolution peut être définie avec les outils et techniques de l IA La méthode de résolution abstraite est modulaire Un solveur hybride PPC IA traite naturellement les problèmes mixtes Besoin d implanter les heuristiques de PPC dans AbSolute 12 juin 2013 21 / 23

Perspectives Conclusion et Perspectives Perspectives Améliorer AbSolute en utilisant les heuristiques et techniques de PPC opérateurs de coupe pour les domaines abstraits propagateurs dédiés boucle de propagation Développer des domaines abstraits pour des contraintes spécifiques Utiliser les méthodes de PPC dans un analyseur statique d IA méthode d itérations décroissantes (alternative au rétrécissement) l opérateur de coupe dans la complétion disjonctive Utiliser l élargissement dans un solveur PPC 12 juin 2013 22 / 23

Questions Merci pour votre attention! Avez-vous des questions? 12 juin 2013 23 / 23

Bibliography Apt, K. R. and Wallace, M. (2007). Constraint logic programming using Eclipse. Cambridge University Press. Berger, N. and Granvilliers, L. (2009). Some interval approximation techniques for minlp. In Proceedings of the The 8th Symposium on Abstraction, Reformulation and Approximation (SARA 09). Chabert, G., Jaulin, L., and Lorca, X. (2009). A constraint on the number of distinct vectors with application to localization. In Proceedings of the 15th International Conference on Principles and Practice of Constraint Programming (CP 09), pages 196 210, Berlin, Heidelberg. Springer-Verlag. Codognet, P. and Filé, G. (1992). Computations, abstractions and constraints in logic programs. 12 juin 2013 23 / 23

Bibliography In Proceedings of the 1992 International Conference on Computer Languages (ICCL 92), pages 155 164. IEEE. Collavizza, H. and Rueher, M. (2007). Exploring different constraint-based modelings for program verification. In Proceedings of the 13th International Conference on Principles and Practice of Constraint Programming (CP 07), volume 4741 of Lecture Notes in Computer Science, pages 49 63. Springer. Cousot, P. and Cousot, R. (1976). Static determination of dynamic properties of programs. In Proceedings of the 2nd International Symposium on Programming, pages 106 130. Cousot, P. and Cousot, R. (1992). Abstract interpretation frameworks. Journal of Logic and Computation, 2(4):511 547. Granger, P. (1992). 12 juin 2013 23 / 23

Bibliography Improving the results of static analyses of programs by local decreasing iterations. In Proceedings of the 12th Conference on Foundations of Software Technology and Theoretical Computer Science. Granvilliers, L. and Benhamou, F. (2006). Realpaver: An interval solver using constraint satisfaction techniques. ACM Transactions on Mathematical Software, 32(1):138 156. Grimes, D. and Hebrard, E. (2011). Models and strategies for variants of the job shop scheduling problem. In Proceedings of the 17th International Conference on Principles and Practice of Constraint Programming (CP 11), volume 6876 of Lecture Notes in Computer Science, pages 356 372. Springer-Verlag. Hervieu, A., Baudry, B., and Gotlieb, A. (2011). 12 juin 2013 23 / 23

Bibliography Pacogen: Automatic generation of pairwise test configurations from feature models. In Proceedings of the 22nd International Symposium on Software Reliability Engineering, pages 120 129. Jeannet, B. and Miné, A. (2009). Apron: A library of numerical abstract domains for static analysis. In Proceedings of the 21th International Conference Computer Aided Verification (CAV 2009), volume 5643 of Lecture Notes in Computer Science, pages 661 667. Springer. Lazaar, N., Gotlieb, A., and Lebbah, Y. (2012). A cp framework for testing cp. Constraints, 17(2):123 147. Miné, A. (2006). The octagon abstract domain. Higher-Order and Symbolic Computation, 19(1):31 100. Montanari, U. (1974). 12 juin 2013 23 / 23

Bibliography Networks of constraints: Fundamental properties and applications to picture processing. Information Science, 7(2):95 132. Pelleau, M., Truchet, C., and Benhamou, F. (2011). Octagonal domains for continuous constraints. In Proceedings of the 17th International Conference on Principles and Practice of Constraint Programming (CP 11), volume 6876 of Lecture Notes in Computer Science, pages 706 720. Springer-Verlag. Perriquet, O. and Barahona, P. (2009). Constraint-based strategy for pairwise rna secondary structure prediction. In Proceedings of the 14th Portuguese Conference on Artificial Intelligence: Progress in Artificial Intelligence (EPIA 09), volume 5816 of Lecture Notes in Computer Science, pages 86 97. Springer-Verlag. Ponsini, O., Michel, C., and Rueher, M. (2011). 12 juin 2013 23 / 23

Bibliography Refining abstract interpretation-based approximations with constraint solvers. In Proceedings of the 4th International Workshop on Numerical Software Verification. Ramamoorthy, V., Silaghi, M. C., Matsui, T., Hirayama, K., and Yokoo, M. (2011). The design of cryptographic s-boxes using csps. In Proceedings of the 17th International Conference on Principles and Practice of Constraint Programming (CP 11), volume 6876 of Lecture Notes in Computer Science, pages 54 68. Springer-Verlag. Team, C. (2010). Choco: an open source java constraint programming library. Research report 10-02-INFO, Ecole des Mines de Nantes. Truchet, C. and Assayag, G., editors (2011). Constraint Programming in Music. ISTE. 12 juin 2013 23 / 23