Logique des prédicats et inférence AIMA chapitres 8 & 9 Aperçu Motivation Logique des prédicats du 1 er ordre (syntaxe et sémantique) Exemples Inférence en logique des prédicats du 1 er ordre Le monde du Wumpus en logique du 1 er ordre IA 2004-2005 - C. Pellegrini 2 1
avantages et inconvénient nient de la logique propositionnelle La logique propositionnelle est déclarative: les éléments syntaxiques correspondent à des faits, La logique propositionnelle permet d'exprimer de l'information sous forme partielle, disjonctive ou négative (contrairement à la plupart des structures ou des bases de données) La logique propositionnelle est compositionnelle: la signification de B 1,1 P 1,2 est obtenue à partir des significations de B 1,1 et P 1,2 La sémantique (signification) en logique propositionnelle est indépendante du contexte (contrairement au langage naturel par exemple) La logique propositionnelle a un pouvoir expressif limité (contrairement au langage naturel par exemple) ex: on ne peut pas dire "les puits provoquent des courants d'air dans les cases adjacentes" sans écrire une phrase pour chaque case. IA 2004-2005 - C. Pellegrini 3 Motivation Comment exprimer les phrases suivantes en logique des propositions? pas représentable en logique propositionnelle! Marcus était Pompéien Tous les Pompéiens étaient Romains Tous les Romains étaient soit loyaux envers César soit ils le haïssaient Chacun est loyal envers quelqu'un Les gens tentent d'assassiner uniquement les souverains envers lesquels ils ne sont pas loyaux Marcus a tenté d'assassiner César Par conséquent Marcus haïssait César IA 2004-2005 - C. Pellegrini 4 2
Logique du 1 er ordre Au lieu des symboles propositionnels P 1, P 2, Q, utiliser des prédicats et des termes: exemples 1) Personne (Marie) Aime(Roméo, Juliette) constantes "prédicats" (ou simplement prédicats ) sans signification prédéterminée constantes individuelles (ou simplement constantes ) sans signification prédéterminée 2) Jean donne Fifi à Marie Donne(Jean, Marie, Fifi) 3) Égal(Plus(2,2), 4) IA 2004-2005 - C. Pellegrini 5 Autres exemples 3) Égal(Plus(2,2), 4) Prédicat avec signification prédéfinie Fonction avec signification prédéfinie Constantes avec signification prédéfinie On peut aussi utiliser la notation infixée 2+2 = 4 Égal(Mère(Fifi), Lulu), ou Mère(Fifi) = Lulu Sqrt(sin(90)) = 1 IA 2004-2005 - C. Pellegrini 6 3
Syntaxe: éléments de base Constantes RoiJean, 2, UniGE,... Prédicats Frère, >,... Fonctions Sqrt(.), JambeGaucheDe(.),... Variables x, y, a, b,... Connecteurs,,,, Égalité = Quantificateurs IA 2004-2005 - C. Pellegrini 7 Formules Phrases atomiques = prédicat(terme 1,, terme n ) ou terme 1 = terme 2 Terme = fonction(terme 1,, terme n ) ou constante ou variable Exemples 1) Frère(RoiJean, RichardCoeurDeLion) 2) > (Longueur(JambeGaucheDe(Richard)),15 ) Phrases complexes = phrases atomiques réunies par des connecteurs S, S 1 S 2, S 1 S 2, S 1 S 2, S 1 S 2 Exemples 1) Frère(RoiJean, Richard) Frère(Richard, RoiJean) 2) > (1, 2) (1, 2) 3) > (1, 2) > (1, 2) IA 2004-2005 - C. Pellegrini 8 4
Valeurs de véritv rité en logique du 1 er ordre Les phrases sont vraies par rapport à un modèle et à une interprétation, Le modèle contient les objets et les relations qui existent entre eux, l'interprétation spécifie les références pour: symboles de constantes objets symboles de prédicats relations symboles de fonctions relations fonctionelles une phrase atomique prédicat(terme 1,, terme n ) est vraie ssi les objets représentés par terme 1,, terme n sont dans la relation représentée par le prédicat. IA 2004-2005 - C. Pellegrini 9 Quantification La quantification permet d'exprimer des propriétés sur une collection d'objets sans avoir à les désigner chacun par un nom, 2 types de quantificateurs: quantificateur existentiel: quantificateur universel: IA 2004-2005 - C. Pellegrini 10 5
Forme générale <variables> <phrase> Quantification existentielle exemple: "Il y a quelqu'un d'intelligent à UniXX" x A(x, UniXX) Intelligent(x) x P est équivalent à la disjonction d'instantiations de P A(RoiJean, UniXX) Intelligent(RoiJean) A(Richard, UniXX) Intelligent(Richard) A(Pierre, UniXX) Intelligent(Pierre) Typiquement est le connecteur principal avec erreur fréquente: utiliser comme connecteur principal avec : x A(x, UniXX) Intelligent(x) est vrai aussi si quelqu'un n'est pas à UniXX! (cf. tables de vérité de et ) IA 2004-2005 - C. Pellegrini 11 Quantification existentielle (cont.) x Chien(x) il y a un chien variable liée par les variables désignent des emplacements possibles pour des constantes: x est une variable libre dans Chien(x) x est une variable liée dans x Chien(x) IA 2004-2005 - C. Pellegrini 12 6
Exemple y (Mange(Fifi, y) Biscuit(y)) Fifi mange un biscuit sans les parenthèses extérieures il y a ambiguïté: y Mange(Fifi, y) Biscuit(y) pourrait être interprété comme: ( y Mange(Fifi, y)) Biscuit(y) variable liée par variable libre ou comme: y (Mange(Fifi, y) Biscuit(y)) variable liée par IA 2004-2005 - C. Pellegrini 13 Forme générale <variables> <phrase> Quantification universelle exemple: "Toute personne à UniGE est intelligente" x A(x, UniGE) Intelligent(x) x P est équivalent à la conjonctions d'instantiations de P A(RoiJean, UniGE) Intelligent(KingJohn) A(Richard, UniGE) Intelligent(Richard) A(Pierre, UniGE) Intelligent(Pierre) Typiquement est le connecteur principal avec erreur fréquente: utiliser comme connecteur principal avec : x A(x, UniGE) Intelligent(x) signifie: "tout le monde est à UniGE et tout le monde est intelligent" IA 2004-2005 - C. Pellegrini 14 7
Lois de Morgan x φ est équivalent à x φ x φ est équivalent à x φ (φ ψ) est équivalent à φ ψ (φ ψ) est équivalent à φ ψ IA 2004-2005 - C. Pellegrini 15 Propriétés s des quantificateurs x y est équivalent à y x x y est équivalent à y x x y n'est pas identique à y x x y Aime(x, y) "Il y a quelqu'un qui aime tout le monde" y x Aime(x, y) "Chacun est aimé au moins par une personne" Dualité des quantificateurs: chacun peut être exprimé à l'aide de l'autre: x Aime(x, CrêmeGlacée) x Aime(x, CrêmeGlacée) x Aime(x, Brocoli) x Aime(x, Brocoli) IA 2004-2005 - C. Pellegrini 16 8
Logique de 1 er ordre: syntaxe La structure des phrases en logique du 1 er ordre est définie par la grammaire suivante: Phrase PhraseAtomique Phrase Connecteur Phrase Quantificateur Variable Phrase Phrase (Phrase) PhraseAtomique Prédicat(Terme,...) Terme = Terme Terme Fonction(Terme,...) Constante Variable Connecteur Quantificateur Constante A X 1 Jean... Variable a x s... Prédicat Avant EstColoré... Fonction Mère JambeGaucheDe... IA 2004-2005 - C. Pellegrini 17 Calcul des prédicats du 1 er ordre Le calcul des prédicats du 1 er ordre permet la quantification de variables (représentant des objets) mais pas la quantification de prédicats ou de fonctions exemple: l'expression "Tous les prédicats n'ont qu'un seul argument" n'est pas exprimable en calcul des prédicats du 1 er ordre p: Arité(p(x), 1) n'est pas une expression légitime Il faut un calcul des prédicats d'ordre supérieur. IA 2004-2005 - C. Pellegrini 18 9
Exemples Presque toutes les phrases du langage naturel peuvent être représentées en logique des prédicats du 1er ordre, il n'y a pas de correspondance unique entre une phrase en langage naturel et une expression logique, Exemples: "La mère de Jean est mariée au père de Jean" Marié(Père(Jean), Mère(Jean)) "Jean vit dans une maison jaune" 1) Vit(Jean, Maison-1) Couleur(Maison-1, Jaune) 2) x Maison(x) Couleur(x, Jaune) Vit(Jean, x) IA 2004-2005 - C. Pellegrini 19 Exemples (suite) "Si la voiture appartient à Jean, alors elle est verte" 1) Possède(Jean, Voiture-1) Couleur(Voiture-1, Vert) 2) x Voiture(x) Possède(Jean, x) Couleur(x, Vert) "Certaines personnes aiment les serpents" 1) x (Personne(x) Aime(x, Serpent)) 2) x y (Personne(x) Serpent(y)) Aime(x,y) "Tous les étudiants passent des examens" 1) x Étudiant(x) Passe-examen(x) 2) x (Étudiant(x) y Examen(y) Passe(x,y)) "Si x est parent de y, alors x est plus vieux que y" x y Parent(x,y) PlusVieux(x, y) IA 2004-2005 - C. Pellegrini 20 10
Exemples (suite) "Si x est la mère de y, alors x est un parent de y" x y Mère(x,y) Parent(x, y) "Chacun est loyal envers quelqu'un" x y Personne(x) Personne(y) LoyalEnvers(x,y) ou y x Personne(x) Personne(y) LoyalEnvers(x,y)? "il existe quelqu'un envers qui chacun est loyal" phrase ambiguë!! "Les gens tentent d'assassiner les dirigeants envers lesquels ils ne sont pas loyaux" x y Personne(x) Dirigeant(y) TenterAssassiner(x,y) LoyalEnvers(x,y) ou "la seule chose que les gens tentent de faire est d'assassiner ceux envers qui ils ne sont pas loyaux" une autre phrase ambiguë!! IA 2004-2005 - C. Pellegrini 21 Égalité terme 1 = terme 2 est vrai étant donné une interprétation si et seulement si terme 1 et terme 2 font référence au même objet exemples: a) Père(Paul) = Jacques Téléphone(Christian) = 705 76 34 b) définition de FrèreSoeur en termes de Parent x,y FrèreSoeur(x,y) [ (x = y) m,f (m = f) Parent(m, x) Parent(f, x) Parent(m, y) Parent(f, y)] IA 2004-2005 - C. Pellegrini 22 11
Inférence en logique du 1 er ordre Prémisses: 1. Si x est un parent de y, alors x est plus âgé que y 2. Si x est la mère de y, alors x est un parent de y 3. Lulu est la mère de Fifi Conclusion: Lulu est plus âgé que Fifi Correspondance en logique du 1er ordre: Prémisses: 1. x y Parent(x,y) PlusAgé(x, y) 2. x y Mère(x,y) Parent(x, y) 3. Mère(Lulu, Fifi) Conclusion: PlusAgé(Lulu, Fifi) l'inférence est obtenue par des axiomes et des règles (i.e. par des transformations syntaxiques) qui étendent ceux de la logique propositionnelle. IA 2004-2005 - C. Pellegrini 23 Règles d'inférence Règles identiques à celles de la logique propositionnelle α β, α β Modus ponens (MP) α 1,α 2, α n α 1 α 2 α n introduction du "et" (IE) Règle nouvelle x α α [x/k] Instantiation universelle (IU) α[x/k] : une phrase α où toutes les occurrences de la variable x sont remplacées par la constante k (noté aussi SUBST({x/k}, α)) IA 2004-2005 - C. Pellegrini 24 12
Exemple de preuve Bob est un bœuf 1. Boeuf(Bob) Pat est un cochon 2. Cochon(Pat) Les bœufs courent plus vite 3. x, y Boeuf(x) Cochon(y) que les cochons PlusRapide(x, y) Bob coure plus vite que Pat IE 1 & 2 IU 3 {x/bob, y/pat} MP 4 & 5 4. Boeuf(Bob) Cochon(Pat) 5. Boeuf(Bob) Cochon(Pat) PlusRapide(Bob,Pat) 6. PlusRapide(Bob,Pat) IA 2004-2005 - C. Pellegrini 25 Unification C'est le processus qui rend 2 expressions identiques, en logique propositionnelle 2 expressions sont les mêmes seulement si elles sont syntaxiquement identiques, la présence de variables en logique des prédicats complique ce fait: Humain(x) = Humain(Socrate) si et seulement si x=socrate il faut parfois substituer une fonction à une variable: ex: Humain(x) Mortel(x) Humain(PèreDe( Platon)) x / PèreDe( Platon) Humain(PèreDe( Platon)) Mortel(PèreDe( Platon)) IA 2004-2005 - C. Pellegrini 26 13
Unification (suite) Une substitution σ unifie les phrases atomiques p et q ssi pσ = qσ p q σ Connaît(Jean, x) Connaît(Jean, Jeanne) { x/jeanne } Connaît(Jean, x) Connaît(y, OJ) { y/jean, x/oj } Connaît(Jean, x) Connaît(y, Mère(y)) { y/jean, x/mère(jean) } Connaît(Jean,x) Connaît(x, OJ) {échec} Idée: unifier les prémisses des règles avec des faits connus, appliquer l'unificateur à la conclusion ex: si on connaît q et Connaît(Jean, x) Aime(Jean, x) alors on peut conclure Aime(Jean, Jeanne) Aime(Jean, OJ) Aime(Jean, Mère(Jean)) IA 2004-2005 - C. Pellegrini 27 Unification (suite) Unifier Q(x,Tom) & Q(Marie, y) Q(x,Tom) & Q(Marie, y) { y/tom, x/marie } Q(Marie,Tom) Q(Marie,Tom) une variable doit être substituée de manière consistante pour toutes ses occurrences dans les expressions à unifier P(x) Q(B,x) P(A) Q(z, x) { x/a, z/b } P(A) Q(B,A) P(A) Q(B, A) IA 2004-2005 - C. Pellegrini 28 14
Unification (suite) Si on applique une série de substitutions, l'effet est identique à celui d'une seule substitution qui est la composition des substitutions partielles {x/b, y/z} P(x) Q(y,x) P(b) Q(z,b) {x/a, y/f(b)} {b/a, z/f(b)} P(A) Q(f(B),A) IA 2004-2005 - C. Pellegrini 29 Unificateur le plus généralg Si on veut unifier Connaît(Jean,x) et Connaît(y,z) on peut le faire avec les unificateurs: σ = { y/jean, x/z } σ = { y/jean, x/jean, z/jean } Le 1 er est plus général (moins spécifique) que le 2 ème Il n'existe qu'un seul unificateur le plus général (UPG) qui est unique à condition de procéder au renommage des variables UPG = { y/jean, x/z } IA 2004-2005 - C. Pellegrini 30 15
Algorithme d'unification IA 2004-2005 - C. Pellegrini 31 Algorithme d'unification IA 2004-2005 - C. Pellegrini 32 16
Modus ponens généralisé p 1 ', p 2 ',, p n ', ( p 1 p 2... p n q ) qσ où p i ' = p i σ i exemple: p 1 ' = PlusRapide(Bob,Pat) p 2 ' = PlusRapide(Pat,Steve) p 1 p 2 q = PlusRapide(x, y) PlusdRapide(y, z) PlusRapide(x, z) σ = { x/bob, y/pat, z/steve } qσ = PlusRapide(Bob, Steve) IA 2004-2005 - C. Pellegrini 33 Exemple de preuve Une preuve de PlusVieux(Lulu, Fifi) à l'aide du MPG: 1. Mère(Lulu, Fifi) donné 2. Vivant(Lulu) donné 3. x y Mère(x,y) Parent(x, y) donné 4. x y(parent(x,y) Vivant(x)) PlusVieux(x, y) donné 5. Parent(Lulu, Fifi) 1,3, MPG 6. PlusVieux(Lulu, Fifi) 5,2,4, MPG cette application du MPG est appelée chaînage avant (ou "forward chaining") IA 2004-2005 - C. Pellegrini 34 17
Chaînage avant ("forward chaining") Lorsqu'un nouveau fait p est ajouté à la base de connaissances: pour chaque règle telle que p s'unifie avec un prémisse et si les autres prémisses sont connus alors ajouter la conclusion à la base de connaissances et continuer le chaînage le chaînage avant est piloté par les données ("data-driven") càd, on infère des propriétés et des catégories à partir des séquences perceptives IA 2004-2005 - C. Pellegrini 35 Exemple de chaînage avant (propositions) Activer chaque régle dont les prémisses sont satisfaites par des éléments de la base de connaissances IA 2004-2005 - C. Pellegrini 36 18
IA 2004-2005 - C. Pellegrini 37 IA 2004-2005 - C. Pellegrini 38 19
IA 2004-2005 - C. Pellegrini 39 IA 2004-2005 - C. Pellegrini 40 20
IA 2004-2005 - C. Pellegrini 41 IA 2004-2005 - C. Pellegrini 42 21
IA 2004-2005 - C. Pellegrini 43 IA 2004-2005 - C. Pellegrini 44 22
Exemple de chaînage avant (prédicats) Ajouter les éléments 1, 2, 3, 4, 5, 7 à la BdC dans l'ordre nombres entre [ ] = unification d'un littéral indique l'application d'une règle X indique une règle non applicable 1. Boeuf(x) Cochon(y) PlusRapide(x, y) 2. Cochon(y) Escargot(z) PlusRapide(y, z) 3. PlusRapide(x, y) PlusRapide(y, z) PlusRapide(x, z) 4. Boeuf(Bob) [1a, X] 5. Cochon(Pat) [1b, ] 6. PlusRapide(Bob, Pat) [3a, X], [3b, X] [2a,X] 7. Escargot(Steve) [2b, ] 8. PlusRapide(Pat, Steve) [3a, X], [3b, ] 9. PlusRapide(Bob, Steve) [3a, X], [3b, X] IA 2004-2005 - C. Pellegrini 45 Exemple d'une base de connaissances Soit l'énoncé suivant (conservé dans la version en anglais pour la cohérence avec la référence AIMA) The law says that it is a crime for an American to sell weapons to hostile nations. The country Nono, an enemy of America, has some missiles, and all of its missiles were sold to it by Colonel West, who is American. Prouver que le Colonel West est un criminel (au sens de la loi) IA 2004-2005 - C. Pellegrini 46 23
Exemple d'une base de connaissances (suite)... it is a crime for an American to sell weapons to hostile nations: American(x) Weapon(y) Sells(x,y,z) Hostile(z) Criminal(x) Nono has some missiles, i.e., x Owns(Nono,x) Missile(x): Owns(Nono,M 1 ) and Missile(M 1 ) all of its missiles were sold to it by Colonel West Missile(x) Owns(Nono,x) Sells(West,x,Nono) Missiles are weapons: Missile(x) Weapon(x) An enemy of America counts as "hostile : Enemy(x,America) Hostile(x) West, who is American American(West) The country Nono, an enemy of America Enemy(Nono,America) IA 2004-2005 - C. Pellegrini 47 Preuve par chaînage avant IA 2004-2005 - C. Pellegrini 48 24
Preuve par chaînage avant IA 2004-2005 - C. Pellegrini 49 Preuve par chaînage avant IA 2004-2005 - C. Pellegrini 50 25
Chaînage arrière re ("backward chaining") Partir d'un objectif (à prouver) et dériver de nouveaux sous-objectifs jusqu'à n'avoir que des sous-objectifs connus comme vrais semblable à la réduction de problème Preuve par chaînage arrière de PlusVieux(Lulu, Fifi) à partir des prémisses: 1. Mère(Lulu, Fifi) 2. Vivant(Lulu) 3. x y Mère(x,y) Parent(x, y) 4. x y(parent(x,y) Vivant(x)) PlusVieux(x, y) objectif: sous-objectif: sous-objectif: (i) PLusVieux(Lulu, Fifi) correspondance (i) avec partie droite de (4) (ii) Parent(Lulu, Fifi) (iii) Vivant(Lulu) correspondance (iii) avec (2) vrai correspondance (ii) avec partie droite de (3) (iv) Mère(Lulu, Fifi) correspondance (iv) avec (1) vrai IA 2004-2005 - C. Pellegrini 51 Chaînage arrière re (suite) Lorsqu'une requête q est posée si un fait correspondant q' est connu, alors retourner l'unificateur pour chaque règle ayant pour conclusion q' et tenter de prouver chaque prémisse de la règle par chaînage arrière (quelques complications dans la conservation des unificateurs) (encore plus de complications pour éviter les boucles infinies) deux cas: 1) trouver une solution, 2) trouver toutes les solutions le chaînage arrière est dirigé par les objectifs ("goal directed" ) le chaînage arrière est à la base de la programmation logique, par ex. de Prolog IA 2004-2005 - C. Pellegrini 52 26
Exemple de chaînage arrière re (propositions) IA 2004-2005 - C. Pellegrini 53 Exemple de chaînage arrière re (propositions) IA 2004-2005 - C. Pellegrini 54 27
Exemple de chaînage arrière re (propositions) IA 2004-2005 - C. Pellegrini 55 Exemple de chaînage arrière re (propositions) IA 2004-2005 - C. Pellegrini 56 28
Exemple de chaînage arrière re (propositions) IA 2004-2005 - C. Pellegrini 57 Exemple de chaînage arrière re (propositions) IA 2004-2005 - C. Pellegrini 58 29
Exemple de chaînage arrière re (propositions) IA 2004-2005 - C. Pellegrini 59 Exemple de chaînage arrière re (propositions) IA 2004-2005 - C. Pellegrini 60 30
Exemple de chaînage arrière re (propositions) IA 2004-2005 - C. Pellegrini 61 Exemple de chaînage arrière re (propositions) IA 2004-2005 - C. Pellegrini 62 31
Exemple de chaînage arrière re (prédicats) 1. Cochon(y) Escargot(z) PlusRapide(y, z) 2. Mince(z) Rampe(z) Escargot(z) 3. Cochon(Pat) 4. Mince(Steve) 5. Rampe(Steve) PlusRapide(Pat,Steve) 1 {y/pat, z/steve} Cochon(Pat) 3 { } Escargot(Steve) 2 {z/steve} Mince(Steve) Rampe(Steve) 4 { } 5 { } IA 2004-2005 - C. Pellegrini 63 Un autre exemple IA 2004-2005 - C. Pellegrini 64 32
Un autre exemple IA 2004-2005 - C. Pellegrini 65 Un autre exemple IA 2004-2005 - C. Pellegrini 66 33
Un autre exemple IA 2004-2005 - C. Pellegrini 67 Un autre exemple IA 2004-2005 - C. Pellegrini 68 34
Un autre exemple IA 2004-2005 - C. Pellegrini 69 Un autre exemple IA 2004-2005 - C. Pellegrini 70 35
Base de connaissances pour le monde du Wumpus Perception b, g, t Perçoit([Odeur, b, g], t) Odorant(t) s, b, t Perçoit([s, b, Éclat], t) Or(t) Reflex t Or(t) Action(Saisir, t) Reflex avec état interne: a-t-on déjà l'or? t Or(t) Tenir(Or,t) Action(Saisir,t) Tenir(Or,t) ne peut pas être observé directement conserver une trace des changements est essentiel IA 2004-2005 - C. Pellegrini 71 Interagir avec une base de connaissances Supposons que l'agent pour le monde du Wumpus utilise une base de connaissances en logique du 1 er ordre et qu'il perçoive une odeur et un courant d'air (mais pas d'éclat) au temps t = 5: Tell (KB, Percept([Odeur, CourantAir, Rien], 5)) Ask (KB, a Action(a, 5)) i.e., est-ce que KB induit une action particulière au temps t = 5? réponse: OUI, {a/tirer} substitution ("binding list") Soit un phrase S et une substitution σ, Sσ désigne le résultat d'introduire σ dans S, c-à-d: S = PlusIntelligent(x, y) σ = {x/hillary, y/bill} Sσ = PlusIntelligent(Hillary, Bill) Ask (KB, S) retourne quelques/tous les σ tels que KB Sσ IA 2004-2005 - C. Pellegrini 72 36
Déduire des propriétés s cachées Propriétés de positions: l, t At(Agent, l, t) Odeur(t) Odorant(l) l, t At(Agent, l, t) Air(t) CourantAir(l) Les cases proches d'un puit ont des courants d'air, 2 solutions: solution diagnostique: la règle infère la cause à partir de l'effet y CourantAir(y) x Puit(x) Adjacent(x, y) solution causale: la règle infère l'effet à partir de la cause x, y Puit(x) Adjacent(x, y) CourantAir(y) aucune solution n'est complète, i.e. la règle causale ne dit pas si une case éloignée d'un puit peut avoir des courants d'air Définition du prédicat CourantAir: y CourantAir(y), [ x Puit(x) Adjacent(x, y)] IA 2004-2005 - C. Pellegrini 73 Garder une trace des changements Les faits existent dans une situation donnée et pas éternellement ex: Tenir(Or, Maintenant) plutôt que simplement Tenir(Or) le calcul de situation est une possibilité pour représenter les changements en logique du 1 er ordre ajouter un argument de situation à chaque prédicat non-permanent ( càd non éternel) Maintenant dans Tenir(Or, Maintenant) représente une situation les situations sont liées les unes aux autres par la fonction Result Result(a,s) est la situation qui résulte de l'action a effectuée dans la situation s IA 2004-2005 - C. Pellegrini 74 37
Décrire les actions axiome "Effet" décrit les changements dus à une action s A-Or(s) Tenir(Gold Result(Saisir, s)) axiome "Frame" décrit les non-changements suite à une action s PossèdeFlèche(s) PossèdeFlèche(Result(Saisir, s)) problème " Frame ": trouver un moyen élégant de traiter les nonchangements par représentation: évite les axiomes "frame" par inférence: évite les copies répétées pour garder une trace des différents états problème "Qualification": des descriptions d'actions réelles exigeraient des précisions sans fin que faire si l'or est glissant, fixé au sol, problème "Ramification": les actions réelles ont de nombreuses conséquences secondaires IA 2004-2005 - C. Pellegrini 75 38