Problème de cadre - Frame problem
En intelligence artificielle , le problème du cadre décrit un problème lié à l'utilisation de la logique du premier ordre (FOL) pour exprimer des faits sur un robot dans le monde. Représenter l'état d'un robot avec la FOL traditionnelle nécessite l'utilisation de nombreux axiomes qui impliquent simplement que les choses dans l'environnement ne changent pas arbitrairement. Par exemple, Hayes décrit un « monde de blocs » avec des règles sur l'empilement de blocs. Dans un système FOL, des axiomes supplémentaires sont nécessaires pour faire des inférences sur l'environnement (par exemple, qu'un bloc ne peut pas changer de position à moins qu'il ne soit physiquement déplacé). Le problème du cadre est le problème de trouver des collections adéquates d'axiomes pour une description viable d'un environnement de robot.
John McCarthy et Patrick J. Hayes ont défini ce problème dans leur article de 1969, Some Philosophical Problems from the Standpoint of Artificial Intelligence . Dans cet article, et dans beaucoup d'autres qui ont suivi, le problème mathématique formel était un point de départ pour des discussions plus générales sur la difficulté de la représentation des connaissances pour l'intelligence artificielle. Des problèmes tels que la manière de fournir des hypothèses par défaut rationnelles et ce que les humains considèrent comme du bon sens dans un environnement virtuel. Plus tard, le terme a acquis un sens plus large en philosophie , où il est formulé comme le problème de limiter les croyances qui doivent être mises à jour en réponse aux actions. Dans le contexte logique, les actions sont généralement spécifiées par ce qu'elles changent, avec l'hypothèse implicite que tout le reste (le cadre) reste inchangé.
La description
Le problème de trame se pose même dans des domaines très simples. Un scénario avec une porte, qui peut être ouverte ou fermée, et une lumière, qui peut être allumée ou éteinte, est représenté statiquement par deux propositions et . Si ces conditions peuvent changer, elles sont mieux représentées par deux prédicats et qui dépendent du temps ; ces prédicats sont appelés fluents . Un domaine dans lequel la porte est fermée et la lumière éteinte à l'instant 0, et la porte ouverte à l'instant 1, peut être directement représenté en logique par les formules suivantes :
Les deux premières formules représentent la situation initiale ; la troisième formule représente l'effet de l'exécution de l'action d'ouverture de la porte au temps 1. Si une telle action avait des conditions préalables, telles que le déverrouillage de la porte, elle aurait été représentée par . En pratique, on aurait un prédicat pour spécifier quand une action est exécutée et une règle pour spécifier les effets des actions. L'article sur le calcul de situation donne plus de détails.
Si les trois formules ci-dessus sont une expression directe en logique de ce qui est connu, elles ne suffisent pas à en tirer correctement les conséquences. Bien que les conditions suivantes (représentant la situation attendue) soient cohérentes avec les trois formules ci-dessus, elles ne sont pas les seules.
En effet, un autre ensemble de conditions qui est cohérent avec les trois formules ci-dessus est :
Le problème du cadre est que spécifier uniquement quelles conditions sont modifiées par les actions n'implique pas que toutes les autres conditions ne sont pas modifiées. Ce problème peut être résolu en ajoutant les soi-disant « axiomes du cadre », qui spécifient explicitement que toutes les conditions non affectées par les actions ne sont pas modifiées lors de l'exécution de cette action. Par exemple, puisque l'action exécutée à l'instant 0 est celle d'ouvrir la porte, un axiome de cadre indiquerait que l'état de la lumière ne change pas de l'instant 0 à l'instant 1 :
Le problème de cadre est qu'un tel axiome de cadre est nécessaire pour chaque paire d'action et de condition de telle sorte que l'action n'affecte pas la condition. En d'autres termes, le problème est de formaliser un domaine dynamique sans spécifier explicitement les axiomes du cadre.
La solution proposée par McCarthy pour résoudre ce problème consiste à supposer qu'une quantité minimale de changements de conditions se sont produites ; cette solution est formalisée à l'aide du cadre de circonscription . Le problème de tir de Yale montre cependant que cette solution n'est pas toujours correcte. Des solutions alternatives ont ensuite été proposées, impliquant la complétion de prédicat, l'occlusion fluide, les axiomes des états successeurs , etc. ils sont expliqués ci-dessous. À la fin des années 1980, le problème du cadre défini par McCarthy et Hayes était résolu. Même après cela, cependant, le terme « problème de cadre » était toujours utilisé, en partie pour désigner le même problème mais dans des contextes différents (par exemple, des actions simultanées), et en partie pour désigner le problème général de représentation et de raisonnement avec des domaines.
Solutions
Les solutions suivantes décrivent comment le problème du cadre est résolu dans divers formalismes. Les formalismes eux-mêmes ne sont pas présentés dans leur intégralité : ce qui est présenté sont des versions simplifiées qui suffisent à expliquer la solution complète.
Solution d'occlusion fluide
Cette solution a été proposée par Erik Sandewall , qui a également défini un langage formel pour la spécification des domaines dynamiques ; par conséquent, un tel domaine peut d'abord être exprimé dans cette langue, puis automatiquement traduit en logique. Dans cet article, seule l'expression en logique est affichée, et uniquement dans le langage simplifié sans nom d'action.
La logique de cette solution est de représenter non seulement la valeur des conditions dans le temps, mais aussi si elles peuvent être affectées par la dernière action exécutée. Cette dernière est représentée par une autre condition, appelée occlusion. Une condition est dite occluse à un moment donné si une action vient d'être exécutée qui rend la condition vraie ou fausse en tant qu'effet. L'occlusion peut être vue comme une « permission de changer » : si une condition est occluse, elle est dispensée d'obéir à la contrainte d'inertie.
Dans l'exemple simplifié de la porte et de la lumière, l'occlusion peut être formalisée par deux prédicats et . La raison en est qu'une condition ne peut changer de valeur que si le prédicat d'occlusion correspondant est vrai au moment suivant. À son tour, le prédicat d'occlusion n'est vrai que lorsqu'une action affectant la condition est exécutée.
En général, chaque action rendant une condition vraie ou fausse rend également le prédicat d'occlusion correspondant vrai. Dans ce cas, est vrai, rendant l'antécédent de la quatrième formule ci-dessus faux pour ; par conséquent, la contrainte qui ne tient pas pour . Par conséquent, peut changer de valeur, ce qui est également imposé par la troisième formule.
Pour que cette condition fonctionne, les prédicats d'occlusion doivent être vrais uniquement lorsqu'ils sont rendus vrais en tant qu'effet d'une action. Ceci peut être réalisé soit par la circonscription, soit par la complétion du prédicat. Il est à noter que l'occlusion n'implique pas nécessairement un changement : par exemple, exécuter l'action d'ouvrir la porte alors qu'elle était déjà ouverte (dans la formalisation ci-dessus) rend le prédicat vrai et rend vrai ; cependant, n'a pas changé de valeur, comme c'était déjà le cas.
Solution de complétion de prédicat
Cet encodage est similaire à la solution d'occlusion fluide, mais les prédicats supplémentaires indiquent le changement, pas l'autorisation de changer. Par exemple, représente le fait que le prédicat changera de temps en . En conséquence, un prédicat change si et seulement si le prédicat de changement correspondant est vrai. Une action entraîne un changement si et seulement si elle rend vraie une condition qui était auparavant fausse ou vice versa.
La troisième formule est une façon différente de dire que l'ouverture de la porte provoque l'ouverture de la porte. Précisément, il précise que l'ouverture de la porte change l'état de la porte si elle avait été préalablement fermée. Les deux dernières conditions indiquent qu'une condition change de valeur à temps si et seulement si le prédicat de changement correspondant est vrai à temps . Pour compléter la solution, les moments dans lesquels les prédicats de changement sont vrais doivent être aussi peu nombreux que possible, et cela peut être fait en appliquant la complétion de prédicat aux règles spécifiant les effets des actions.
Solution des axiomes de l'état successeur
La valeur d'une condition après l'exécution d'une action peut être déterminée par le fait que la condition est vraie si et seulement si :
- l'action rend la condition vraie ; ou alors
- la condition était auparavant vraie et l'action ne la rend pas fausse.
Un axiome de l'État successeur est une formalisation logique de ces deux faits. Par exemple, si et sont deux conditions utilisées pour indiquer que l'action exécutée à l'instant était d'ouvrir ou de fermer la porte, respectivement, l'exemple courant est codé comme suit.
Cette solution est centrée sur la valeur des conditions plutôt que sur les effets des actions. En d'autres termes, il existe un axiome pour chaque condition, plutôt qu'une formule pour chaque action. Les conditions préalables aux actions (qui ne sont pas présentes dans cet exemple) sont formalisées par d'autres formules. Les axiomes des états successeurs sont utilisés dans la variante du calcul de situation proposée par Ray Reiter .
Solution de calcul fluide
Le calcul fluide est une variante du calcul de situation. Il résout le problème du cadre en utilisant des termes logiques du premier ordre , plutôt que des prédicats, pour représenter les états. La conversion de prédicats en termes dans la logique du premier ordre s'appelle la réification ; le calcul fluide peut être vu comme une logique dans laquelle les prédicats représentant l'état des conditions sont réifiés.
La différence entre un prédicat et un terme en logique du premier ordre est qu'un terme est une représentation d'un objet (éventuellement un objet complexe composé d'autres objets), tandis qu'un prédicat représente une condition qui peut être vraie ou fausse lorsqu'elle est évaluée sur un ensemble de termes donné.
Dans le calcul fluide, chaque état possible est représenté par un terme obtenu par composition d'autres termes, chacun représentant les conditions qui sont vraies dans l'état. Par exemple, l'état dans lequel la porte est ouverte et la lumière allumée est représenté par le terme . Il est important de noter qu'un terme n'est pas vrai ou faux en soi, car c'est un objet et non une condition. En d'autres termes, le terme représente un état possible, et ne signifie pas en soi qu'il s'agit de l'état actuel. Une condition distincte peut être énoncée pour spécifier qu'il s'agit en fait de l'état à un instant donné, par exemple, signifie que c'est l'état à l'instant .
La solution au problème du cadre donné dans le calcul fluide est de spécifier les effets des actions en indiquant comment un terme représentant l'état change lorsque l'action est exécutée. Par exemple, l'action d'ouvrir la porte au temps 0 est représentée par la formule :
L'action de fermer la porte, qui rend une condition fausse au lieu de vraie, est représentée d'une manière légèrement différente :
Cette formule fonctionne à condition que des axiomes appropriés soient donnés à propos de et , par exemple, un terme contenant deux fois la même condition n'est pas un état valide (par exemple, est toujours faux pour chaque et ).
Solution de calcul d'événement
Le calcul des événements utilise des termes pour représenter les fluents, comme le calcul fluent, mais a également des axiomes contraignant la valeur des fluents, comme les axiomes de l'état successeur. Dans le calcul des événements, l'inertie est imposée par des formules indiquant qu'un fluent est vrai s'il a été vrai à un moment donné précédent et qu'aucune action le changeant en faux n'a été effectuée entre-temps. La complétion du prédicat est toujours nécessaire dans le calcul des événements pour obtenir qu'un fluent est rendu vrai uniquement si une action le rendant vrai a été effectuée, mais aussi pour obtenir qu'une action n'a été effectuée que si cela est explicitement indiqué.
Solution logique par défaut
Le problème du cadre peut être considéré comme le problème de la formalisation du principe selon lequel, par défaut, « tout est présumé rester dans l'état dans lequel il se trouve » ( Leibniz , « An Introduction to a Secret Encyclopædia », c . 1679). Ce défaut, parfois appelé loi d'inertie du sens commun , a été exprimé par Raymond Reiter dans la logique du défaut :
(si est vrai dans la situation , et on peut supposer que cela reste vrai après l'exécution de l'action , alors nous pouvons conclure que reste vrai).
Steve Hanks et Drew McDermott ont fait valoir, sur la base de leur exemple de tir de Yale , que cette solution au problème du cadre n'est pas satisfaisante. Hudson Turner a cependant montré qu'il fonctionnait correctement en présence de postulats supplémentaires appropriés.
Solution de programmation de jeux de réponses
La contrepartie de la solution logique par défaut dans le langage de programmation de jeux de réponses est une règle à forte négation :
(si est vrai au temps , et on peut supposer que reste vrai au temps , alors nous pouvons conclure que reste vrai).
Solution de logique de séparation
La logique de séparation est un formalisme pour raisonner sur des programmes informatiques utilisant des spécifications pré/post de la forme . La logique de séparation est une extension de la logique de Hoare orientée vers le raisonnement sur les structures de données mutables dans la mémoire de l'ordinateur et d'autres ressources dynamiques, et elle a un connecteur spécial *, prononcé "et séparément", pour prendre en charge un raisonnement indépendant sur les régions de mémoire disjointes.
La logique de séparation utilise une interprétation stricte des spécifications pré/post, qui disent que le code ne peut accéder qu'aux emplacements mémoire garantis par la précondition. Cela conduit à la validité de la règle d'inférence la plus importante de la logique, la règle du cadre
La règle frame permet d'ajouter à une spécification des descriptions de mémoire arbitraire en dehors de l'empreinte (mémoire accédée) du code : cela permet à la spécification initiale de se concentrer uniquement sur l'empreinte. Par exemple, l'inférence
capture ce code qui trie une liste x ne déstrie pas une liste séparée y, et il le fait sans mentionner y du tout dans la spécification initiale au-dessus de la ligne.
L'automatisation de la règle du cadre a conduit à des augmentations significatives de l'évolutivité des techniques de raisonnement automatisé pour le code, finalement déployées industriellement sur des bases de code avec des dizaines de millions de lignes.
Il semble y avoir une certaine similitude entre la solution logique de séparation au problème du cadre et celle du calcul fluide mentionné ci-dessus.
Langages de description d'action
Les langages de description d'actions éludent le problème du cadre plutôt que de le résoudre. Un langage de description d'action est un langage formel avec une syntaxe spécifique pour décrire des situations et des actions. Par exemple, que l'action ouvre la porte si elle n'est pas verrouillée s'exprime par :
- cause si
La sémantique d'un langage de description d'actions dépend de ce que le langage peut exprimer (actions simultanées, effets retardés, etc.) et est généralement basée sur des systèmes de transition .
Puisque les domaines sont exprimés dans ces langages plutôt que directement en logique, le problème de cadre ne se pose que lorsqu'une spécification donnée dans une logique de description d'action doit être traduite en logique. En règle générale, cependant, une traduction est donnée à partir de ces langages pour répondre à la programmation ensembliste plutôt qu'à la logique du premier ordre.
Voir également
- Problème de liaison
- Bon sens
- Raisonnement de bon sens
- Raisonnement irrévocable
- Logique linéaire
- Logique de séparation
- Logique non monotone
- Problème de qualification
- Problème de ramification
- Symbole de mise à la terre
- Problème de prise de vue Yale
Remarques
Les références
- Doherty, P.; Gustafsson, J.; Karlsson, L.; Kvarnström, J. (1998). "TAL : Spécification et didacticiel du langage de logique d'action temporelle" . Transactions électroniques sur l'intelligence artificielle . 2 (3-4): 273-306.
- Gelfond, M.; Lifschitz, V. (1993). "Représenter l'action et le changement par des programmes logiques" . Journal de programmation logique . 17 (2–4) : 301–322. doi : 10.1016/0743-1066(93)90035-f .
- Gelfond, M.; Lifschitz, V. (1998). "Langages d'action" . Transactions électroniques sur l'intelligence artificielle . 2 (3-4): 193-210.
- Hanks, S.; McDermott, D. (1987). « Logique non monotone et projection temporelle ». Intelligence Artificielle . 33 (3) : 379-412. doi : 10.1016/0004-3702 (87) 90043-9 .
- Lévesque, H. ; Pirri, F.; Reiter, R. (1998). "Les fondements du calcul de situation" . Transactions électroniques sur l'intelligence artificielle . 2 (3-4): 159-178.
- Libérateur, P. (1997). "La complexité de la langue A" . Transactions électroniques sur l'intelligence artificielle . 1 (1–3) : 13–37.
- Lifschitz, V. (2012). "Le problème du cadre, hier et aujourd'hui" (PDF) . Université du Texas à Austin .Présenté à Celebration of John McCarthy's Accomplishments , Stanford University , 25 mars 2012.
- McCarthy, J.; Hayes, PJ (1969). "Quelques problèmes philosophiques du point de vue de l'intelligence artificielle" . Intelligence des machines . 4 : 463–502. CiteSeerX 10.1.1.85.5082 .
- McCarthy, J. (1986). "Applications de la circonscription à la formalisation des savoirs de sens commun" . Intelligence Artificielle . 28 : 89–116. CiteSeerX 10.1.1.29.5268 . doi : 10.1016/0004-3702 (86) 90032-9 .
- Miller, R.; Shanahan, M. (1999). « Le calcul des événements dans la logique classique - axiomatisations alternatives » . Transactions électroniques sur l'intelligence artificielle . 3 (1) : 77-105.
- Pirri, F.; Reiter, R. (1999). "Quelques contributions à la métathéorie du Calcul de Situation". Journal de l'ACM . 46 (3) : 325-361. doi : 10.1145/316542.316545 . S2CID 16203802 .
- Reiter, R. (1980). "Une logique pour le raisonnement par défaut" (PDF) . Intelligence Artificielle . 13 (1–2) : 81–132. CiteSeerX 10.1.1.250.9224 . doi : 10.1016/0004-3702(80)90014-4 .
- R., Raymond (1991). « Le problème du cadre dans le calcul de situation : une solution simple (parfois) et un résultat d'exhaustivité pour la régression des objectifs ». Dans Lifschitz, Vladimir (éd.). Intelligence artificielle et théorie mathématique du calcul : articles en l'honneur de John McCarthy . New York : Presse académique. p. 359-380. CiteSeerX 10.1.1.137.2995 .
- Sandewall, E. (1972). « Une approche du problème du cadre et de sa mise en œuvre ». Intelligence des machines . 7 : 195-204.
- Sandewall, E. (1994). Caractéristiques et Fluents . (vol. 1). New York : Oxford University Press. ISBN 978-0-19-853845-5.
- Sandewall, E. ; Shoham, Y. (1995). "Raisonnement temporel non monotone". À Gabbay, DM ; Hogger, juge en chef ; Robinson, JA (éd.). Manuel de logique en intelligence artificielle et programmation logique . (vol. 4). Presses de l'Université d'Oxford. p. 439-498. ISBN 978-0-19-853791-5.
- Sandewall, E. (1998). "La logique robotique cognitive et sa métathéorie : traits et fluents revisités" . Transactions électroniques sur l'intelligence artificielle . 2 (3-4): 307-329.
- Shanahan, M. (1997). Résoudre le problème du cadre : une enquête mathématique sur la loi d'inertie du sens commun . Presse MIT. ISBN 9780262193849.
- Thielscher, M. (1998). "Introduction au calcul fluide" . Transactions électroniques sur l'intelligence artificielle . 2 (3-4): 179-192.
- Toth, JA (1995). "Revue de livre. Kenneth M. et Patrick J. Hayes, rédacteurs en chef" . Agents de raisonnement dans un monde dynamique : le problème du cadre. Intelligence Artificielle . 73 (1–2) : 323–369. doi : 10.1016/0004-3702 (95) 90043-8 .
- Turner, H. (1997). « Représenter les actions dans les programmes logiques et les théories par défaut : une approche de calcul de situation » (PDF) . Journal de programmation logique . 31 (1–3) : 245–298. doi : 10.1016/s0743-1066(96)00125-2 .
Liens externes
- Zalta, Edward N. (éd.). "Le problème du cadre" . Encyclopédie de philosophie de Stanford .
- Quelques problèmes philosophiques du point de vue de l'intelligence artificielle ; l'article original de McCarthy et Hayes qui proposait le problème.