Un systรจme (vรฉhicule, instrument) est dit autonome sโil nโest pas contrรดlรฉ par un opรฉrateur humain. Ses actions sont alors gรฉrรฉes par un programme interne, qui ne peut รชtre modifiรฉ pendant son fonctionnement ; il sโagit dโun programme embarquรฉ, devant permettre au systรจme de ยซ prendre lui-mรชme des dรฉcisions ยป. Les systรจmes embarquรฉs font gรฉnรฉralement lโobjet de fortes limitations (par exemple au niveau de leur prix, poids ou puissance) qui dรฉpendent de la tรขche quโils doivent accomplir ; ils nโont par consรฉquent que peu de ressources ร leur disposition, en termes dโespace mรฉmoire et de puissance de calcul. Malgrรฉ cela, ils exigent gรฉnรฉralement une trรจs forte rรฉactivitรฉ. Ces contraintes sont particuliรจrement significatives dans le cadre des systรจmes embarquรฉs contrรดlant des systรจmes spatiaux et aรฉronautiques, tels des drones ou des satellites : leurs ressources peuvent รชtre drastiquement limitรฉes, et leur besoin en rรฉactivitรฉ crucial.
La prise de dรฉcision est lโun des objectifs du domaine de lโintelligence artificielle que lโon nomme planification. Pour produire des dรฉcisions adaptรฉes ร la situation courante, le programme doit rรฉsoudre un problรจme de planification. Des outils ont รฉtรฉ dรฉveloppรฉs pour rรฉsoudre de tels problรจmes ; grรขce ร eux, le systรจme peut calculer des dรฉcisions convenables. Cependant, dans le cas gรฉnรฉral, les problรจmes de planification sont difficiles ร rรฉsoudre โ ils ont une haute complexitรฉ algorithmique. En consรฉquence, prendre des dรฉcisions en rรฉsolvant des problรจmes de planification prend du temps, et ce en particulier sur les systรจmes autonomes, qui ne disposent que dโune puissance limitรฉe. Il est donc impossible de leur assurer une bonne rรฉactivitรฉ si le problรจme est rรฉsolu en ligne, cโest-ร -dire ร chaque fois quโune dรฉcision doit รชtre prise, en nโutilisant que la puissance et la mรฉmoire du systรจme. Une faรงon de rรฉgler ce problรจme est de calculer les dรฉcisions hors ligne, avant la mise en situation du systรจme. Pour ce faire, on anticipe toutes les situations possibles et on rรฉsout le problรจme pour chacune dโelles ; on peut alors fournir au systรจme une table de dรฉcision, contenant un ensemble de ยซ rรจgles de dรฉcision ยป de la forme ยซ dans telle situation, prends telle dรฉcision ยป. Cela garantit une rรฉactivitรฉ maximale au systรจme ; en effet lโexploitation en ligne de ce genre de table ne requiert quโune puissance trรจs limitรฉe.
Concepts et historique
La compilation de connaissances peut รชtre vue comme une forme de ยซfactorisationยป, la phase hors ligne รฉtant dรฉdiรฉe ร lโexรฉcution de calculs ร la fois difficiles et communs ร plusieurs opรฉrations en ligne. Cette idรฉe nโest pas nouvelle, comme lโillustre lโexemple des tables de logarithmes [Mar08], qui รฉtaient utilisรฉes ร une รฉpoque oรน les calculatrices nโรฉtaient pas aussi lรฉgรจres et bon marchรฉ quโaujourdโhui. Elles contenaient des couples โจx, log10(x)โฉ pour un grand nombre de valeurs de x, qui pouvaient รชtre utilisรฉes pour faire des calculs complexes, tels lโextraction de racines .
Prenons un autre exemple, plus proche du sujet : dans lโintroduction, la premiรจre solution que nous proposions pour amรฉliorer la rรฉactivitรฉ du systรจme รฉtait de rรฉsoudre le problรจme au prรฉalable, pour toutes les situations possibles, de maniรจre ร fournir au programme de contrรดle une table de rรจgles de dรฉcision. Bien que naรฏve, cette idรฉe relรจve รฉgalement de la compilation de connaissances ; les trois aspects principaux de la dรฉfinition sont en effet prรฉsents, ร savoir que la phase hors ligne est chargรฉe des calculs difficiles (la rรฉsolution du problรจme pour des situations initiales multiples) et souvent rรฉpรฉtรฉs (une mรชme situation peut รชtre rencontrรฉe de nombreuses fois), et la phase en ligne est simple (regarder dans la table la prochaine dรฉcision ร prendre). Ce que dรฉsigne usuellement (et historiquement) le mot compilation est la traduction dโun programme depuis un langage de haut niveau, facilement comprรฉhensible et modifiable par des รชtres humains, vers du ยซ langage machine ยป, de bas niveau, beaucoup plus efficace dโun point de vue algorithmique. Il sโagit lร encore de prรฉ-traitement โ on transforme quelque chose hors ligne pour faciliter son utilisation en ligne. Ce nโest cependant pas ร proprement parler de la compilation de connaissances, domaine spรฉcifique qui diffรจre de lโรฉtude gรฉnรฉrale du prรฉ-traitement sur deux points. Premiรจrement, comme le souligne Marquis [Mar08], le nom de la ยซ compilation de connaissances ยป limite sa portรฉe aux ยซ bases de connaissances ยป, cโest-ร dire ร des ensembles dโinformations gรฉnรฉralement reprรฉsentรฉes par des formules logiques, et ร leur exploitation, cโest-ร -dire au raisonnement automatisรฉ. La dรฉfinition reste trรจs gรฉnรฉrale โ le terme ยซ informationยป peut recouvrir un grand nombre de choses โ mais exclut notamment la compilation de programmes au sens classique. La seconde diffรฉrence entre compilation standard et compilation de connaissances est une consรฉquence de la prรฉcรฉdente [CD97]. รtant liรฉe ร la reprรฉsentation des connaissances et au raisonnement, la compilation de connaissances ne considรจre la difficultรฉ dโun problรจme que par le prisme de la thรฉorie de la complexitรฉ algorithmique [voir Pap94 pour un survol de la thรฉorie de la complexitรฉ]. Ainsi, les auteurs travaillant sur la compilation ne cherchent pas simplement ร rendre les problรจmes plus faciles, mais drastiquement plus faciles, en les faisant changer de classe de complexitรฉ, par exemple de NP-complet ร P, de PSPACE-complet ร NP, etc.
Un cadre pour la cartographie des langages
Le but de la carte de compilation est de comparer les langages selon leur complexitรฉ spatiale et leur efficacitรฉ (en termes de complexitรฉ au pire cas) pour diverses opรฉrations possibles, comme la requรชte dโinformations sur la forme compilรฉe, ou lโapplication de transformations. La carte facilite la comparaison des fragments sur le plan de la complexitรฉ thรฉorique, permettant ainsi de ne retenir que les meilleurs pour chaque application. Lโobjectif de cette section est de prรฉsenter formellement la carte de compilation, notamment la notion de langage sur laquelle elle repose, et les concepts en permettant la comparaison.
Notations
Avant dโintroduire nos conventions de notation, prรฉcisons que cette thรจse inclut un index des symboles [p. 173]. On note R lโensemble des nombres rรฉels, Z celui des entiers relatifs, N celui des entiers naturels (y compris 0), Nโ celui des entiers naturels non nuls, et B celui des constantes boolรฉennes. Ces derniรจres sont notรฉes โค et โฅ (respectivement pour ยซ vrai ยป et ยซ faux ยป), mais sont souvent identifiรฉes aux entiers 1 et 0, de sorte que :
B โ N โ Z โ R
On utilise SA pour lโensemble des singletons dโun ensemble A. Ainsi, par exemple, SB = { {โค}, {โฅ}} , et SN = โช nโN { {n} } .
Dans une optique de gรฉnรฉralisation, nous considรฉrerons des variables de domaine quelconque โ discret ou continu, fini ou infiniโฆ mais non vide. On note V lโensemble de toutes les variables possibles ; V est bien sรปr non vide, et on le suppose ordonnรฉ par un ordre strict total <V. Quand on considรฉrera des ensembles de variables indicรฉes, comme {x1, x2 . . . , xk}, on supposera toujours implicitement que x1 <V x2 <V . . . <V xk.
Comment lโexprimer : les structures de donnรฉesย
La compilation de connaissances vise ร exprimer les fonctions comme des instances de structures de donnรฉes spรฉcifiques. Une structure de donnรฉes [voir e.g. CL+01, partie III] est une organisation particuliรจre des informations dans la mรฉmoire dโun ordinateur, munie dโalgorithmes de manipulation exploitant les donnรฉes efficacement, en tirant parti de cette organisation. Parmi les structures de donnรฉes bien connues, on peut citer les piles, les files, les tables de hachage, les arbres, les graphesโฆ Un objet mathรฉmatique comme une fonction est un concept abstrait. Pour le reprรฉsenter avec une structure de donnรฉes, il est nรฉcessaire de le modรฉliser, en identifiant les opรฉrations de base par le biais desquelles il est manipulรฉ ; ainsi, les ensembles sont des ยซ choses ยป quโil est possible dโintersecter, dโunir, dโรฉnumรฉrer, etc. Une fois quโun modรจle est dรฉcrit, il est possible de dรฉfinir une structure de donnรฉe lโimplantant efficacement. Celle-ci nโest pas nรฉcessairement unique ; diverses structures donnรฉes peuvent รชtre utilisรฉes pour exprimer un mรชme concept mathรฉmatique. Leur efficacitรฉ peut varier, mais aucune nโest plus ยซ correcte ยป quโune autre. Nous considรฉrons les structures de donnรฉes dโune maniรจre relativement abstraite, sans nous apesantir sur les dรฉtails dโimplantation. Nous utiliserons un attribut important des structures de donnรฉes, la taille mรฉmoire de leurs instances. Pour cela, on munit chaque structure de donnรฉes dโune fonction de taille caractรฉristique abstraite, associant ร chaque instance ฯ de la structure de donnรฉes en question, un entier positif reprรฉsentatif de la place quโelle prend en mรฉmoire. La taille caractรฉristique dโune instance ฯ, que nous notons โฅฯโฅ pour la distinguer du cardinal dโun ensemble (notรฉ |S|), nโest pas directement รฉgale ร sa taille mรฉmoire Mem(ฯ). Le point-clef est que la taille caractรฉristique doit croรฎtre de la mรชme maniรจre que la taille mรฉmoire : โฅฯโฅ โ ฮ(Mem(ฯ)), cโest-ร -dire quโil existe deux constantes positives k1 et k2 telles que lorsque ฯ est suffisamment gros, Mem(ฯ) ยท k1 โฉฝ โฅฯโฅ โฉฝ Mem(ฯ) ยท k2. Par exemple, considรฉrons une structure de donnรฉes destinรฉe ร reprรฉsenter des listes de nombres rรฉels, et une autre destinรฉe ร reprรฉsenter des listes de nombres entiers. Il est probable que les instances de la premiรจre prennent plus de place en mรฉmoire que les instances de la seconde, รฉtant donnรฉ que les nombres rรฉels sont plus coรปteux que les entiers en termes de mรฉmoire. Pourtant, si on utilise dans les deux cas des structures exactement similaires exceptรฉ le type utilisรฉ pour les nombres, elles ont la mรชme taille caractรฉristique, puisquโelles sont รฉquivalentes modulo une simple constante multiplicative.
|
Table des matiรจres
Introduction
Contexte
1 Compilation de connaissances
1.1 Prรฉsentation
1.1.1 Concepts et historique
1.1.2 Exemple de langage-cible : OBDDs
1.2 Un cadre pour la cartographie des langages
1.2.1 Notations
1.2.2 Langage de reprรฉsentation
1.2.3 Comparaison de langages
1.3 Langages boolรฉens
1.3.1 Langages de DAGs
1.3.2 Fragments basรฉ sur des restrictions dโopรฉrateurs
1.3.3 Fragments ยซ historiques ยป
1.3.4 Fragments basรฉs sur des propriรฉtรฉs des nลuds
1.3.5 La famille des graphes de dรฉcision
1.3.6 Ordonner les graphes de dรฉcision
1.3.7 Principes de fermeture
1.4 Carte de compilation des langages boolรฉens
1.4.1 Requรชtes et transformations boolรฉennes
1.4.2 Rรฉsultats de compacitรฉ
1.4.3 Satisfaction de requรชtes et de transformations
1.5 Compilation
1.5.1 Langage dโentrรฉe
1.5.2 Mรฉthodes exactes de compilation
1.5.3 Mรฉthodes non-exactes de compilation
2 Planification
2.1 Dรฉfinition gรฉnรฉrale
2.1.1 Intuition
2.1.2 Description du monde
2.1.3 Dรฉfinition dโun problรจme de planification
2.1.4 Solutions dโun problรจme de planification
2.2 Paradigmes de planification
2.2.1 Planification en avant dans lโespace des รฉtats
2.2.2 Planification par satisfiabilitรฉ
2.2.3 Planification par model-checking
2.2.4 Planification par processus dรฉcisionnels de Markov
2.2.5 Autres paradigmes
2.3 Compilation pour la planification
2.3.1 Planification par satisfiabilitรฉ
2.3.2 Planification par recherche heuristique
2.3.3 Planification par model-checking
2.3.4 Planification par MDPs
3 Problรฉmatique
3.1 Benchmarks utilisรฉs
3.1.1 Problรจme de compรฉtition de drones
3.1.2 Problรจme de gestion de la mรฉmoire dโun satellite
3.1.3 Problรจme de gestion des connections dโun transpondeur
3.1.4 Problรจme de rendez-vous en attitude
3.2 Premiรจre tentative
3.2.1 Notre approche pour le problรจme Drone
3.2.2 Rรฉsultats pour le problรจme Drone
3.3 Vers des langages-cibles plus appropriรฉs
3.3.1 Orientation gรฉnรฉrale
3.3.2 Identification des opรฉrations importantes
3.3.3 Nouvelles requรชtes et transformations
Automates ร intervalles
Introduction
4 Formalisme des automates ร intervalles
4.1 Langage
4.1.1 Dรฉfinition
4.1.2 Automates ร intervalles
4.1.3 Relations avec la famille de BDD
4.1.4 Rรฉduction
4.2 Un sous-langage efficace
4.2.1 Satisfaction dโimportantes requรชtes sur les automates ร intervalles
4.2.2 Convergence
4.3 Carte de compilation dโIA
4.3.1 Prรฉliminaires
4.3.2 Compacitรฉ
4.3.3 Requรชtes et transformations
Conclusion