Systèmes décisionnels et programmation avancée M1 SIR Philippe Muller et Mustapha Mojahid, Matthieu Serrurier, Marie-Christine Scheix 2014-2015
Introduction structure du cours intervenants introduction au contenu
Trois parties résolution de problèmes combinatoires systèmes de contraintes programmation logique
Trois intervenants résolution de problèmes combinatoires : Matthieu Serrurier systèmes de contraintes : Philippe Muller programmation logique : Mustapha Mojahid + un renfort en TP : Marie-Christine Scheix
Ce qu on verra... Toujours deux versants modélisation de problèmes résolution de problèmes et mise en pratique en TP systèmes décisionnels programmation avancée
Domaines visés problèmes mal posés ou mal définis domaines en friche problèmes complexes ou très larges problèmes pour lesquels on ne connaît pas d algorithmes efficaces (rapides) ou ne donnant pas de bonnes solutions.
Une méthodologie commune 1 modélisation d un domaine ou d un problème particulier (mathématique ou logique) 2 représentation 3 résolution (algorithmique, raisonnement, optimisation, apprentissage) 4 évolution L étape (3) nécessite des recherches dans des ensembles de possibilités très grands recherche opérationnelle.
Humains, robots, machines, etc : systèmes décisionnels une notion commune : la notion d agent rationnel reçoit de l information d un environnement agit sur l environnement en fonction de l information reçue et traitée (perception) (action) (décision)
Caractéristiques de l agent rationnel perception : nécessite représentation de l environnement action : représentation des actions possibles décision : processus
Exemple chercher son chemin
Un exemple : chercher son chemin
Un exemple : chercher son chemin
Exemple trouver son chemin représentation : graphe / grille actions : déplacements ds une direction décision : arriver au but + optimiser : quelles procédures? analogue à trouver une solution parmi un ensemble de possibles
Résolution de problèmes Exemple simplet : Un berger veut transporter d un côté d une rivière à l autre : une chèvre, un chou, un loup laissés seuls, la chèvre mange le chou laissés seuls, le loup mange la chèvre son bateau ne peut prendre à bord que deux choses en plus de lui-même comment s y prendre pour éviter le carnage? représentation des données? actions possibles? qu est-ce qu une résolution?
Résolution d un problème combinatoire A peine moins simplet : les missionaires et les cannibales
Les cannibales (suite)
Les cannibales (suite)
Les cannibales (suite)
Planification monde des cubes : idéalisation d un problème général nombre d états possibles? augmente très (trop rapidement)
Exemple réel : installation de relais satellites [stage M2 SIR / 2013 Astrium]
Petit Exemple on dispose de deux récipients initialement vides, pouvant respectivement contenir 3 litres et 4 litres d eau. on peut remplir complètement un récipient au robinet, le vider complètement dans l évier, ou bien vider un récipient dans l autre jusqu à remplir le deuxième ou bien vider un récipient dans l autre jusqu à vider le premier. on veut arriver à avoir 2 litres d eau exactement dans le récipient de 4 litres.
Exemple : Die Hard (3L,4L) (0,0) (3,0) remplir 3 (0,3) vider 3 dans 4 (3,3) remplir 3 (2,4) remplir 4 avec 3 (2,0) vider 4 (0,2) vider 3 dans 4
Exercice : ordonnancement modéliser le problème d ordonnancement suivant : on a 4 tâches à réaliser de durées 5, 1, 3, 4 les tâches 2 et 3 ne peuvent être faites en parallèle (mêmes ressources nécessaires), la 3 doit être faite avant la 4. peut-on avoir toutes les tâches commencées finies avant t=7?
Exemple avec optimisation : Pandémie Une épidémie de maladie infectieuse a été observée dans un certain nombre N d endroits. Un ensemble de M équipes de médecins doivent aller enquêter pour identifier la maladie, ce qui leur prend un certain temps t ij qui dépend de l endroit j et de l équipe i. Chaque équipe peut enquêter au maximum à 2 endroits, mais doit alors se déplacer de l endroit j 1 à l endroit j 2, ce qui prend un temps d j1 j 2. Peut-on trouver une solution prenant moins de 20 unités de temps? Bonus : quel est le minimum qu on puisse trouver? Eq / Lieu 1 2 3 4 1 10 12 14 5 2 6 10 10 4 3 12 12 16 6 Lieu 1 / 2 1 2 3 4 1 6 6 8 2 7 8 3 5
Problèmes combinatoires classiques sac à dos ; ex : (12 4 5 7 3 18) dans 20 litres déménagement voyageur de commerce coloriage de graphes etc versions idéalisées de nombreux problèmes réels explosion du nombre de possibilités problème de résolution vs. problème d optimisation
Systèmes de contraintes processus de recherche de solutions dans un cadre plus spécifique uniquement des faits : variables avec domaines restreints + relations entre variables recherche d instances des variables satisfaisant les relations ( contraintes ) applications : partout (emploi du temps, occupation de salles, logistique, etc)
Systèmes de contraintes des variables {V 1, V 2, V 3,...} des domaines de valeurs : V 1 D 1, V 2 D 2,... des contraintes entre variables : ex V 1 V 2, V 3 V 4
Exemple 5 personnes de 5 métiers différents dans 5 maisons de couleurs différentes, avec un animal domestique et une boisson préférée distincte. L anglais habite dans la maison rouge. L espagnol a un chien. Le japonais est peintre. L italien boit du thé. Le norvégien habite la première maison. L habitant de la maison verte boit du café. La maison blanche est juste après la verte. Le sculpteur élève des escargots. Le diplomate habite la maison jaune.
Exemple (suite) On boit du lait dans la 3e maison. La maison du norvégien est à côté de la bleue. Le violoniste boit du jus de fruit. Le renard est dans la maison voisine du docteur. (plus simple : après) Le cheval est la maison voisine de celle du diplomate. (plus simple : après) (indice) Le zèbre est dans la maison verte. Une des personnes boit de l eau. Qui habite où?
Modélisation quelles variables? quels domaines? représentation résolution à la main résolution : variante des algorithmes de recherche (cf cours 1)
Variables et domaines maison, couleur, métier, pays, boisson, animal? 1 maisons {1, 2, 3, 4, 5} (dans l ordre) 2 il y a une valeur seulement de métier, animal, etc par maison 3 toutes les variables peuvent être associées à une valeur de maison : 1, 2, 3, 4, 5 4 donc 5 variables par propriétés = 25 variables, chacune de domaine {1, 2, 3, 4, 5} 5 pas de variables pour la maison
Démarrage contrainte générale : chien chat, chat cheval, etc sur les 5 familles de variables L anglais habite dans la maison rouge. rouge=anglais L espagnol a un chien. espagnol=chien Le japonais est peintre. japonais=peintre L italien boit du thé. italien=thé Le norvégien habite la première maison. norvegien=1
L habitant de la maison verte boit du café. vert=café La maison verte est juste après la blanche. vert=blanche+1 Le sculpteur élève des escargots. sculpteur=escargot Le diplomate habite la maison jaune. jaune=diplomate
Suite On boit du lait dans la 3e maison. lait=3 La maison du norvégien est à côté de la bleue. norvegien bleue = 1 Le violoniste boit du jus de fruit. violoniste=jus Le renard est dans la maison après celle du docteur. renard=docteur+1 Le cheval est la maison après celle du diplomate. cheval=diplomate+1 Le zèbre est dans la maison blanche. zebre=blanche Une des personnes boit de l eau.
Résolution 1 recherche arborescente dans les valeurs possibles 2 propagation des contraintes ex : domaine de norvégien=1 on remplace partout dans les autres 1 1 devient impossible pour espagnol, italien, etc 2 bleu {0, 2} D(bleu) = {2}
animal chien = 4, renard = 1, cheval = 2, escargot = 3, zèbre = 5, color bleu = 2, vert = 5, rouge = 3, blanc = 4, jaune = 1, drink café = 5, jus = 4, lait = 3, thé = 2, eau = 1, nationality angl = 3, ital = 2, jap = 5, norv = 1, espagnol = 4, profession diplomate = 1, docteur = 2, peintre = 5, sculpteur = 3, violiniste = 4 ici : uniquement par propagation de contraintes
Exercices : ordonnancement modéliser le problème d ordonnancement suivant : on a 4 tâches à réaliser de durées 5, 1, 3, 4 les tâches 2 et 3 ne peuvent être faites en parallèle (mêmes ressources nécessaires), la 3 doit être faite avant la 4. peut-on avoir toutes les tâches commencées finies avant t=7? reprendre comme un problème de satisfaction de contraintes
Représentations de connaissances la résolution nécessite des modèles explicites du monde/ de l environnement des agents des contraintes nécessité d une certaine expressivité des formalismes faits/ buts règles/ contraintes générales théorie développement de bases de connaissances ( systèmes experts ) développement de démonstrateurs automatiques / modules de raisonnement
Formalisation et logique en résumé : nécessité d un langage formel de modélisation expressivité calcul des conséquences : raisonnement la logique est l outil idéal pour cette tâche
Brefs rappels de logique termes : variables x i, constantes c j, images de fonctions f (x) propositions atomiques : prédicats P(x), Q(x 1, x 2, x 3 ) littéral : atome ou sa négation P(x), Q(x, y) propositions construites avec,,, : P(x) Q(y) quantificateurs :, x[(oiseau(x) pingouin(x)) vole(x)]
Conséquence logique théorie = axiomes logiques + conséquences conséquence : notion syntaxique, A B conséquence : notion sémantique, A = B une théorie est l ensemble des conséquences de ses axiomes (fermeture)
Démonstration automatique Partir de la négation de la conclusion + théorie montrer incohérence ( ) en propositionnel pur : déjà combinatoire au premier ordre : indécidable en général, nécessite des restrictions indécidable = il ne peut exister (!) d algorithme qui garantit une réponse dans tous les cas. on verra comment s en sortir quand même...
La logique pour de vrai exemple : la tarification des compagnies aérienne tarification très complexe, avec de nombreux facteurs : des millions de tarifs différents facteurs qui peuvent se combiner pour donner des tarifs très différents : âge : moins de 2 ou plus de 65 passager accompagnant quelqu un à plein tarif heures de pointe samedi sur place vol normal aller-retour ou avec plus d étapes.... nécessite test de cohérence
Allons-y si le passager sur un itinéraire a moins de deux ans, il a droit au tarif bébé i, a, p passager(i, p) age(p, a) a 2 tarif baby(i) besoin de raisonner sur des nombres autres contraintes (...) départ d un vol correspond à l arrivée du précédent attente pas trop courte pour avoir la correspondance attente pas trop longue!
Démonstration automatique partir de la négation de la conclusion + théorie incohérence en propositionnel pur : combinatoire au premier ordre : indécidable en général, nécessite des restrictions indécidable = il ne peut exister (!) d algorithme qui garantit une réponse dans tous les cas. la logique sert surtout à exprimer des faits, pas à guider la preuve : x, y( z(parent(x, z) (parent(z, y)))) grandparent(x, y) mais étant donné des parents, on veut trouver les grands-parents? étant donné les GP on veut trouver les parents? les démonstrateurs ne sont pas adaptés à ça (trop lourds)
Systèmes de règles si on se limite à des formules plus contraintes des procédures de démonstration simplifiées on peut avoir quelque chose d utilisable systèmes à base de règles programmation logique
Un type de formule sympathique Clause de Horn : un littéral positif maximum Q ( P 1... P n Q) noté aussi : (P 1... P n Q) antécédents conséquent ( P 1... P n ) (fait brut ) (règle) (contrainte de cohérence)
Limites si on exclut les contraintes de cohérence on ne peut déduire de négations on ne peut déduire ou affirmer de disjonctions P 1 P 2 Q 1 Q 2
Processus de résolution similaire à un problème de recherche vers l arrière on part de la conclusion, et on remonte les antécédents possibles jusqu à trouver une (ou des solution(s) si on laisse continuer) ou bien arriver à un échec.
Exemple de résolution soit la base, avec les constantes a, b, c, d, e 1 Parent(a,b) 2 Pere(a,b) 3 Parent(a,c) 4 Parent(b,e) 5 mere(b,e) 6 Frere(e,d) 7 x, y, z Frere(x,y) Parent(z,x) Parent(z,y) 8 x, y, z Mere(z,y) Parent(z,y) 9 x, y, z Pere(z,y) Parent(z,y) 10 x, y, z Parent(x,y) Parent(y,z) Grandparent(x,z)
but : Grandparent(x,d) empiler le but+ un prédicat spécial reponse(x) répéter tant que le but n est pas reponse : trouver une règle ou un fait qui peut s unifier avec le but empiler les antécédents en instanciant les variables dans l ensemble des buts sinon échec on revient au point de décision précédent ici : on ne peut que choisir la dernière règle, qui peut donner les littéraux parent(y,d) et parent(x,y) quel ordre vaut-il mieux prendre pour les règles et les antécedents?
D autres caractéristique 1 on raisonne sur des relations on peut aussi bien demander Grandparent(a,x)? 2 preuve par échec : si on ne trouve pas P on suppose que c est faux programmation logique
Adaptation 1 représentation et raisonnement pas toujours suffisant 2 évolutivité d un système 3 adaptation au changement 4 peut-on faire de l apprentissage automatiquement? ( en M2)
Exemple : diagnostic
Apprendre les règles Cas Prévisions Température Humidité Vent Sport E1 Soleil Chaude Elevée Faible NON E2 Soleil Chaude Elevée Fort NON E3 Couvert Chaude Elevée Faible OUI E4 Pluie Douce Elevée Faible OUI E5 Pluie Froide Normale Faible OUI E6 Pluie Froide Normale Fort NON E7 Couvert Froide Normale Fort OUI E8 Soleil Douce Elevée Faible NON E9 Soleil Froide Normale Faible OUI E10 Pluie Douce Normale Faible OUI E11 Soleil Douce Normale Fort OUI E12 Couvert Douce Elevée Fort OUI E13 Couvert Chaude Normale Faible OUI E14 Pluie Douce Elevée Fort NON
Apprendre les règles Sport? prévision météo soleil couvert pluie humidité OUI vent forte normale fort faible NON OUI NON OUI
Décision sur un nouveau cas? si Soleil+Température chaude+humidité normale+vent fort? prévision météo soleil humidité normale OUI