LA PROGRAMMATION LOGIQUE PAR CONTRAINTES MOTIVATIONS



Documents pareils
Programmation par contraintes. Laurent Beaudou

Cours de Master Recherche

Programmation Par Contraintes

Pourquoi l apprentissage?

Algorithmes de recherche

L apprentissage automatique

Cours 02 : Problème général de la programmation linéaire

Stratégie de recherche adaptative en programmation par contrainte

Exemples de problèmes et d applications. INF6953 Exemples de problèmes 1

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

Amphi 3: Espaces complets - Applications linéaires continues

INF 232: Langages et Automates. Travaux Dirigés. Université Joseph Fourier, Université Grenoble 1 Licence Sciences et Technologies

LE PROBLEME DU PLUS COURT CHEMIN

Bases de Données. Plan

Intelligence Artificielle Planification

Calcul matriciel. Définition 1 Une matrice de format (m,n) est un tableau rectangulaire de mn éléments, rangés en m lignes et n colonnes.

Annexe 6. Notions d ordonnancement.

Cours Optimisation Partie Optimisation Combinatoire. Année scolaire Gérard Verfaillie ONERA/DCSD/CD, Toulouse

DOCM Solutions officielles = n 2 10.

Série TD 3. Exercice 4.1. Exercice 4.2 Cet algorithme est destiné à prédire l'avenir, et il doit être infaillible! Exercice 4.3. Exercice 4.

Cours d Analyse. Fonctions de plusieurs variables

Créer le schéma relationnel d une base de données ACCESS

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

Chapitre 2. Matrices

Processus d Informatisation

Rapport d'analyse des besoins

aux différences est appelé équation aux différences d ordre n en forme normale.

Logique binaire. Aujourd'hui, l'algèbre de Boole trouve de nombreuses applications en informatique et dans la conception des circuits électroniques.

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

RÉSOLUTION DE SYSTÈMES À DEUX INCONNUES

Les diagrammes de modélisation

Capacité d un canal Second Théorème de Shannon. Théorie de l information 1/34

Chapitre 3 LE MODELE RELATIONNEL ET SQL (DDL)

Cours Base de données relationnelles. M. Boughanem, IUP STRI

La (les) mesure(s) GPS

La NP-complétude. Johanne Cohen. PRISM/CNRS, Versailles, France.

Info0804. Cours 6. Optimisation combinatoire : Applications et compléments

Système binaire. Algèbre booléenne

Correction TD algorithmique

Les bases de données Page 1 / 8

Chapitre 1 : Introduction aux bases de données

Structures algébriques

Les droites (d 1 ) et (d 2 ) sont sécantes en A Le point A est le point d intersection des 2 droites

Propagation sur réseau statique et dynamique

Atelier Transversal AT11. Activité «Fourmis» Pierre Chauvet.

Exercices du Cours de la programmation linéaire donné par le Dr. Ali DERBALA

Introduction. I Étude rapide du réseau - Apprentissage. II Application à la reconnaissance des notes.

Francis BISSON ( ) Kenny CÔTÉ ( ) Pierre-Luc ROGER ( ) IFT702 Planification en intelligence artificielle

La programmation linéaire : une introduction. Qu est-ce qu un programme linéaire? Terminologie. Écriture mathématique

(51) Int Cl.: H04L 29/06 ( ) G06F 21/55 ( )

Systèmes décisionnels et programmation avancée

Axiomatique de N, construction de Z

CONCOURS D ENTREE A L ECOLE DE 2007 CONCOURS EXTERNE. Cinquième épreuve d admissibilité STATISTIQUE. (durée : cinq heures)

L analyse d images regroupe plusieurs disciplines que l on classe en deux catégories :

Premiers pas avec Mathematica

Programmation linéaire

Initiation à la Programmation en Logique avec SISCtus Prolog

Chapitre 5 : Flot maximal dans un graphe

PROBLEMES D'ORDONNANCEMENT AVEC RESSOURCES

Utilisation du backtrack intelligent dans un branch-and-bound Application au problème d Open-Shop

Notice Générale - MODULE CLIENTS. I. Description générale du module. II. La liste des clients a. Accès

IFT1215 Introduction aux systèmes informatiques

Coefficients binomiaux

CHAPITRE 5. Stratégies Mixtes

3L8PW = EP - 308A 6L24P = EP -624A

Mathématiques appliquées à l'économie et à la Gestion

Fonctions de plusieurs variables, intégrales multiples, et intégrales dépendant d un paramètre

Programmation d'agents intelligents Vers une refonte des fils de raisonnement. Stage de fin d'études Master IAD 2006

ALGORITHMIQUE ET PROGRAMMATION En C

3. SPÉCIFICATIONS DU LOGICIEL. de l'expression des besoins à la conception. Spécifications fonctionnelles Analyse fonctionnelle et méthodes

Modèle conceptuel : diagramme entité-association

Logique. Plan du chapitre

Gestion de projets. avec. Microsoft Office PROJECT 2003

Economie de l incertain et de l information Partie 1 : Décision en incertain probabilisé Chapitre 1 : Introduction à l incertitude et théorie de

Cours3. Applications continues et homéomorphismes. 1 Rappel sur les images réciproques

Information utiles. webpage : Google+ : digiusto/

Le Langage SQL version Oracle

Backtracking asynchrone agile pour les problèmes de satisfaction de contraintes distribués

Souad EL Bernoussi. Groupe d Analyse Numérique et Optimisation Rabat http ://

QUESTION 1 {2 points}

Corps des nombres complexes, J Paul Tsasa

De même, le périmètre P d un cercle de rayon 1 vaut P = 2π (par définition de π). Mais, on peut démontrer (difficilement!) que

FONCTIONS DE PLUSIEURS VARIABLES (Outils Mathématiques 4)

Le module Supply Chain pour un fonctionnement en réseau

IFT2255 : Génie logiciel

Le langage SQL Rappels

1ère partie Nadine Cullot. Bases de données déductives. Bases de données déductives Introduction et Motivation

Correction de l examen de la première session

Plan. Exemple: Application bancaire. Introduction. OCL Object Constraint Language Le langage de contraintes d'uml

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

M é ca n ism e Pr o lo g. Ex e m p le

LES DÉTERMINANTS DE MATRICES

Formes quadratiques. 1 Formes quadratiques et formes polaires associées. Imen BHOURI. 1.1 Définitions

MPI Activité.10 : Logique binaire Portes logiques

UNIVERSITE PARIS VII - DENIS DIDEROT U.F.R. D'INFORMATIQUE THESE

P r ob lé m a t iq u e d e la g é n é r icit é. Pr in cip e d e la g é n é r icit é e n Ja v a ( 1 /3 )

Optimisation non linéaire Irène Charon, Olivier Hudry École nationale supérieure des télécommunications

TP n 2 Concepts de la programmation Objets Master 1 mention IL, semestre 2 Le type Abstrait Pile

Introduction aux Bases de Données Relationnelles Conclusion - 1

Transcription:

LA PROGRAMMATION LOGIQUE PAR CONTRAINTES MOTIVATIONS De la PL vers la PLC 1) Introduction de la PLC : motivations, exemples 2) Principes de la programmation par contraintes (définition, résolution) 3) La programmation logique avec contraintes (méta-interprète et machine abstraites) 4) Limites

LIMITES DE LA PROGRAMMATION EN LOGIQUE?- 1 + X = 3 FAIL Deux solutions en Prolog : Utilisation des axiomes de Peano plus(0,y,y). plus(s(x),y,s(z)) :- plus(x,y,z). et?- 1 + X = 3 devient?- plus(s(0),y,s(s(s(0)))). >Y = s(s(0)) Retardement de l'évaluation plus(x,y,z) :- freeze(x,freeze(y,z is X+Y)), freeze(y,freeze(z,x is Z-Y)), freeze(x,freeze(x,y is X-Z)).?- sort(x1,x2,x3) :- X1 X2, X2 X3,... Ne permet pas de définir une relation d'ordre sur des variables?- sort(x1,x2,x3). FAIL 2

APPROCHE DE LA PROGRAMMATION PAR CONTRAINTES N-REINES COMMENT ANTICIPER LES IMPASSES? SEND + MORE = MONEY + S M E O N R D E = M O N E Y COMMENT TROUVER L INFORMATION PERTINENTE KNIGHT TOUR (CHEMIN HAMILTONIEN): COMMENT TOUVER LES BONNES HEURISTIQUES? 3

PRINCIPES DE LA PROGRAMMATION AVEC CONTRAINTES Contrainte Une contrainte est une relation logique (une propriété qui doit être vérifiée) entre différentes inconnues. Elle restreint les valeurs que peuvent prendre simultanément les variables. Exemple : "x + 3*y = 12" restreint les valeurs que l'on peut affecter simultanément aux variables x et y. Les inconnues, appelées variables, prennent leurs valeurs dans un ensemble donné, appelé domaine. Une contrainte est relationnelle, déclarative et peut être définie en extension ou en intension : Énumération des tuples de valeurs de la relation : "(x=0 et y=1) ou (x=0 et y=2) ou (x=1 et y=2)" Définition des propriétés mathématiques connues: "x < y" ou encore "A et B => non(c)" Types de contraintes : Les contraintes numériques, entières ou réelles (linéaires ou non linéaires) Les contraintes ensemblistes, contraintes booléennes, univers de Herbrandt 4

PRINCIPES DE LA PROGRAMMATION AVEC CONTRAINTES (suite) Définition d'un CSP Un CSP (Problème de Satisfaction de Contraintes) est un triplet (X,D,C) tel que : X = { X1, X2,..., Xn} est l'ensemble des variables (les inconnues) du problème ; D : fonction qui associe à chaque variable Xi son domaine D(Xi), l'ensemble des valeurs que peut prendre Xi C = {C1, C2,..., Ck} est l'ensemble des contraintes. Exemple: X = {a,b,c,d} D(a) = D(b) = D(c) = D(d) = {0,1} C = { a b, c d, a+c < b } Solution d'un CSP : affectation des variables, de telle sorte que toutes les contraintes soient satisfaites Notion de CSP sur-contraint ou sous-contraint Un CSP qui n'a pas de solution est sur-contraint max-csp (préférences entre les contraintes) Un CSP qui admet beaucoup de solutions différentes est sous-contraint 5

PRINCIPES DE LA PROGRAMMATION AVEC CONTRAINTES (suite) Modélisation sous la forme d'un CSP identifier l'ensemble des variables X (les inconnues du problème) et leurs domaines identifier les contraintes C entre les variables. On ne se soucie pas de savoir comment résoudre le problème : on cherche simplement à le spécifier formellement 6

PRINCIPES DE LA PROGRAMMATION AVEC CONTRAINTES (suite) Les inconnues : les positions des reines sur l'échiquier En numérotant les lignes et les colonnes de l'échiquier : Exemple : modélisation des n-reines 1 2 3 1 2 3 4 4 -> association à chaque reine i de deux variables Li et Ci correspondant respectivement à la ligne et la colonne sur laquelle placer la reine.. ou une variable Xi par colonne dont la valeur sera la position de la reine (numéro de ligne ) 7

PRINCIPES DE LA PROGRAMMATION AVEC CONTRAINTES (suite) Exemple : modélisation des n-reines (suite) Les contraintes : les reines doivent être sur des lignes différentes : {Xi Xj pour i dans {1,2,3,4} les reines doivent être sur des colonnes différentes : aucune contrainte avec la deuxième modélisation! les reines doivent être sur des diagonales différentes : {Xi Xj +/- (i-j) pour i,j dans {1,2,3,4} et i j 8

TECHNIQUES DE RESOLUTION POUR LA PROGRAMMATION AVEC CONTRAINTES L'algorithme "génère et teste" prolog! Principe : énumérer toutes les affectations totales possibles jusqu'à en trouver une qui satisfasse toutes les contraintes L'algorithme "simple retour-arrière" : backtrack chronologique Principe : pour améliorer l'algorithme "génère et teste" on va tester au fur et à mesure de la construction de l'affectation partielle sa consistance : dès lors qu'une affectation partielle est inconsistante, on "backtrack" jusqu'à la plus récente instanciation partielle consistante que l'on peut étendre en affectant une autre valeur à la dernière variable affectée Filtrage par consistance locale et utilisation d heuristiques Principes : Élimination a priori des valeurs qui ne peuvent être dans aucune solution (travail local à chaque contrainte) Choix des variables et valeurs (lors de l énumération) qui devraient permettre de découvrir rapidement les impasses 9

Backtracking vs Generate & Test : exemple Contraintes: X = Y, X 6= Z, Y > Z Domaines : D X = D y = D z = {1, 2}, Generate & Test: Backtracking: X Y Z Test X Y Z Test 1 1 1 fail 1 1 1 fail 1 1 2 fail 2 fail 1 2 1 fail 2 fail 1 2 2 fail 2 1 fail 2 1 1 fail 2 1 succes 1 1 1 fail 2 1 2 fail 2 2 1 succes 10

Filtrage par consistance d arc : exemple Contraintes : x1 < x2, x5 + 3 = x2, x3 > x1, x4 > x2 + 3 Domaines : Dx1 = {2, 6}, Dx2 = {3, 4, 8}, Dx3 = {1, 9}, Dx4 = {6, 7, 8}, Dx5 = {1, 5} 11

LA PROGRAMMATION LOGIQUE PAR CONTRAINTES : DEFINITION THEORIE DU PREMIER ORDRE qui préserve les PROPRIETES DE CALCUL associées aux clauses de Horn Classes de LP langages dont les variables peuvent prendre des valeurs sur des DOMAINES variés EXEMPLE : PROLOG fib(0,1). fib(1,1). fib(n,r):- N 2, N1 is N-1, fib(n1,r1), N2 is N-2, fib(n2,r2), R is R1+R2.?-fib(10,X) 89?-fib(X,89) ERREUR CLP fib(0,1). fib(1,1). fib(n,r1+r2):- N 2, fib(n-1,r1), fib(n-2,r2).?-fib(10,x) 89?-fib(X,89) X=10 12

LA PROGRAMMATION LOGIQUE PAR CONTRAINTES : META-INTERPRETE solve([]). solve([goal RestGoal]):- solve(goal), solve(restgoal). solve(goal):- clause(goal,body), solve(body). PROLOG 13

LA PROGRAMMATION LOGIQUE PAR CONTRAINTES : META-INTERPRETE (suite) CLP (Noyau) solve([],c,c). solve([goal Rest_Goal],Previous_C,New_C):- solve(goal,previous_c,temp_c), solve(rest_goal,temp_c,new_c). solve(goal,previous_c,new_c):- clause(goal,body,current_c), merge_c(previous_c,current_c,temp_c), solve(body,temp_c,new_c). merge_c(previous_c,current_c,temp_c) : Si Previous_C & Current_C n'a pas de solution Fail Sinon simplification de Temp_C instanciation des variables suffisamment contraintes 14

LA PROGRAMMATION LOGIQUE PAR CONTRAINTES : MACHINE ABSTRAITE (1) = (W,t0t1...tn,S) (2)s0 s1...sm, R (m 0) (3) ' = (W,s1...smt1...tn,S R (s0 = t0)) (1) Représente l'état de la machine à un instant donné W : liste des variables de la question initiale, t0t1...tn : liste de termes (buts) à effacer, S : liste des contraintes courantes (contraintes satisfiables) (2) Représente la règle d'inférence (i.e. règle du programme utilisée pour changer d'état) s1...sm : une suite de termes R : les contraintes de la règle (3) Représente le nouvel état ' de la machine après application de la règle (2) si S R (s0 = t0)est satisfiable Solution du système : f = (W,,Contraintes_Finales) 15

LA PROGRAMMATION LOGIQUE PAR CONTRAINTES : LIMITES Exemple : ChatsOiseaux? NOMBRE D'OISEAUX ET DE CHATS QUI TOTALISENT 12 TETES ET 34 PATTES ChatsOiseaux(C,O,P,T) :- P #=4C+2O, T#=C+O. > ChatsOiseaux(C,O,14,5). {C = 2, O =3} > ChatsOiseaux(1,O,P,5). {O = 4, P =12} > ChatsOiseaux(1,1,2,4). fail > ChatsOiseaux(C,O,6,4). {C = -1, O =5} ChatsOiseaux(C,O,P,T) :- P #=4C+2O, T#=C+O, C#>=0,O#>=0,P#>=0,T#>=0. > ChatsOiseaux(C,O,6,4). fail > ChatsOiseaux(C,O,7,3). {C = 1/2, O =5/2} Ajouter enum(c), enum(o) 16

LA PROGRAMMATION LOGIQUE PAR CONTRAINTES : LIMITES (suite) Solution de : an +bn =cn avec a,b,c et n : entiers... et n > 2 17