Constantes Prédicats Fonctions Variables Connecteurs Égalité Quantificateurs

38
1 Logique des pr Logique des pr é é dicats et inf dicats et inf é é rence rence AIMA chapitres 8 & 9 IA 2004-2005 - © C. Pellegrini 2 Aper Aper ç ç u 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

Transcript of Constantes Prédicats Fonctions Variables Connecteurs Égalité Quantificateurs

1

Logique des prLogique des préédicats et infdicats et inféérencerence

AIMA chapitres 8 & 9

IA 2004-2005 - © C. Pellegrini 2

AperAperççu u

• Motivation

• Logique des prédicats du 1er ordre (syntaxe et sémantique)

• Exemples

• Inférence en logique des prédicats du 1er ordre

• Le monde du Wumpus en logique du 1er ordre

2

IA 2004-2005 - © C. Pellegrini 3

avantages et inconvavantages et inconvéénient de la logique propositionnellenient 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 B1,1 ∧ P1,2

est obtenue à partir des significations de B1,1 et P1,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 4

Motivation Motivation

• Comment exprimer les phrases suivantes en logique des propositions?

• 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

pas r

epré

sent

able

en

logi

que

prop

ositi

onne

lle !

3

IA 2004-2005 - © C. Pellegrini 5

Logique du 1Logique du 1erer ordreordre

• Au lieu des symboles propositionnels P1 , P2 , Q …, utiliser desprédicats et des termes:

• exemples1) Personne (Marie) Aime(Roméo, Juliette)

2) “Jean donne Fifi à Marie”Donne(Jean, Marie, Fifi)

3) Égal(Plus(2,2), 4)

constantes "prédicats"(ou simplement “prédicats”)

sans signification prédéterminée

constantes individuelles(ou simplement “constantes”)

sans signification prédéterminée

IA 2004-2005 - © C. Pellegrini 6

Autres exemplesAutres exemples

3) Égal(Plus(2,2), 4)

• On peut aussi utiliser la notation infixée2+2 = 4

Égal(Mère(Fifi), Lulu), ouMère(Fifi) = LuluSqrt(sin(90)) = 1

Prédicat avecsignification prédéfinie

Fonction avecsignification prédéfinie

Constantes avecsignification prédéfinie

4

IA 2004-2005 - © C. Pellegrini 7

Syntaxe: Syntaxe: ééllééments de basements 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 8

Formules Formules

Phrases atomiques = prédicat(terme1, … , termen )ou terme1 = terme2

Terme = fonction(terme1, … , termen)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, S1 ∧ S2 , S1 ∨ S2 , S1 ⇒ S2 , S1 ⇔ S2

Exemples1) Frère(RoiJean, Richard) ⇒ Frère(Richard, RoiJean)2) > (1, 2) ∨ ≤ (1, 2)3) > (1, 2) ∧ ¬ > (1, 2)

5

IA 2004-2005 - © C. Pellegrini 9

Valeurs de vValeurs de vééritritéé en logique du 1en logique du 1erer ordreordre

• 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(terme1 , …, termen) est vraie ssi les objets représentés par terme1 , …, termen sont dans la relationreprésentée par le prédicat.

IA 2004-2005 - © C. Pellegrini 10

Quantification 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: ∀

6

IA 2004-2005 - © C. Pellegrini 11

Quantification existentielleQuantification existentielle• Forme générale

∃ <variables> <phrase>

• exemple: "Il y a quelqu'un d'intelligent à UniXX"∃ x A(x, UniXX) ∧ Intelligent(x)

• ∃ x P est équivalent à la disjonction d'instantiations de PA(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 12

Quantification existentielle Quantification existentielle (cont.)(cont.)

∃x Chien(x) “il y a un chien”

• 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)

variableliée par ∃

7

IA 2004-2005 - © C. Pellegrini 13

Exemple 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)

• ou comme:∃ y (Mange(Fifi, y) ∧ Biscuit(y))

variable liée par ∃ variable libre

variable liée par ∃

IA 2004-2005 - © C. Pellegrini 14

Quantification universelleQuantification universelle• Forme générale

∀ <variables> <phrase>

• exemple: "Toute personne à UniGE est intelligente"∀ x A(x, UniGE) ⇒ Intelligent(x)

• ∀ x P est équivalent à la conjonctions d'instantiations de PA(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"

8

IA 2004-2005 - © C. Pellegrini 15

Lois de MorganLois de Morgan

¬∃ x φ est équivalent à ∀ x ¬φ

¬∀ x φ est équivalent à ∃ x ¬φ

¬ (φ ∨ ψ) est équivalent à ¬φ ∧ ¬ψ

¬ (φ ∧ ψ) est équivalent à ¬φ ∨ ¬ψ

IA 2004-2005 - © C. Pellegrini 16

PropriPropriééttéés des quantificateurss 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)

9

IA 2004-2005 - © C. Pellegrini 17

Logique de 1Logique de 1erer ordre: syntaxeordre: syntaxe• La structure des phrases en logique du 1er 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 | X1 | Jean | ...Variable → a | x | s | ...Prédicat → Avant | EstColoré | ...Fonction → Mère | JambeGaucheDe | ...

IA 2004-2005 - © C. Pellegrini 18

Calcul des prCalcul des préédicats du 1dicats du 1erer ordreordre

• Le calcul des prédicats du 1er 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 1er ordre

∀p: Arité(p(x), 1) n'est pas une expression légitime

Il faut un calcul des prédicats d'ordre supérieur.

10

IA 2004-2005 - © C. Pellegrini 19

Exemples 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 20

Exemples Exemples (suite)(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)

11

IA 2004-2005 - © C. Pellegrini 21

Exemples Exemples (suite)(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 22

ÉÉgalitgalitéé

• terme1 = terme2 est vrai étant donné une interprétation si et seulement si terme1 et terme2 font référence au même objet

• exemples:

a) Père(Paul) = JacquesTé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)]

12

IA 2004-2005 - © C. Pellegrini 23

InfInféérence en logique du 1rence en logique du 1erer ordreordrePrémisses:

1. Si x est un parent de y, alors x est plus âgé que y2. Si x est la mère de y, alors x est un parent de y3. 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 24

RRèègles d'infgles d'inféérencerence

• Règles identiques à celles de la logique propositionnelle

Modus ponens (MP)α ⇒ β, αβ

Instantiation universelle (IU)∀x αα [x/k]

• Règle nouvelle

α[x/k] : une phrase α où toutes les occurrences de la variable x sont remplacées par la constante k (noté aussi SUBST({x/k}, α))

α1 ,α2 ,…αnα1 ∧ α2 ∧ … ∧ αn

introduction du "et" (IE)

13

IA 2004-2005 - © C. Pellegrini 25

Exemple de preuveExemple 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 4. Boeuf(Bob) ∧ Cochon(Pat)

IU 3 {x/Bob, y/Pat} 5. Boeuf(Bob) ∧ Cochon(Pat) ⇒PlusRapide(Bob,Pat)

MP 4 & 5 6. PlusRapide(Bob,Pat)

IA 2004-2005 - © C. Pellegrini 26

Unification 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))

14

IA 2004-2005 - © C. Pellegrini 27

Unification Unification (suite) (suite)

• Une substitution σ unifie les phrases atomiques p et q ssi pσ = qσ

p q σConnaît(Jean, x) Connaît(Jean, Jeanne)Connaît(Jean, x) Connaît(y, OJ)Connaît(Jean, x) Connaît(y, Mère(y))Connaît(Jean,x) Connaît(x, OJ)

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))

{ x/Jeanne }{ y/Jean, x/OJ }{ y/Jean, x/Mère(Jean) }{échec}

IA 2004-2005 - © C. Pellegrini 28

Unification Unification (suite)(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)

15

IA 2004-2005 - © C. Pellegrini 29

Unification Unification (suite)(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

P(x) ∧ Q(y,x)

P(b) ∧ Q(z,b)

{x/b, y/z}

P(A) ∧ Q(f(B),A)

{b/A, z/f(B)}

{x/A, y/f(B)}

IA 2004-2005 - © C. Pellegrini 30

Unificateur le plus gUnificateur le plus géénnééralral

• 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 1er 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 }

16

IA 2004-2005 - © C. Pellegrini 31

Algorithme d'unificationAlgorithme d'unification

IA 2004-2005 - © C. Pellegrini 32

Algorithme d'unificationAlgorithme d'unification

17

IA 2004-2005 - © C. Pellegrini 33

Modus Modus ponensponens ggéénnééralisraliséé

p1', p2', … , pn' , ( p1 ∧ p2 ∧ ... ∧ pn ⇒ q )qσ

où pi' = pi σ ∀ i

exemple: p1' = PlusRapide(Bob,Pat)p2' = PlusRapide(Pat,Steve)

p1 ∧ p2 ⇒ 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 34

Exemple de preuveExemple 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")

18

IA 2004-2005 - © C. Pellegrini 35

ChaChaîînage avant ("nage avant ("forwardforward chainingchaining")")

Lorsqu'un nouveau fait p est ajouté à la base de connaissances:

pour chaque règle telle que p s'unifie avec un prémisseet si les autres prémisses sont connus

alors ajouter la conclusion à la base de connaissances etcontinuer 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 36

Exemple de chaExemple de chaîînage avantnage avant (propositions)(propositions)

• Activer chaque régle dont les prémisses sont satisfaites par des éléments de la base de connaissances

19

IA 2004-2005 - © C. Pellegrini 37

IA 2004-2005 - © C. Pellegrini 38

20

IA 2004-2005 - © C. Pellegrini 39

IA 2004-2005 - © C. Pellegrini 40

21

IA 2004-2005 - © C. Pellegrini 41

IA 2004-2005 - © C. Pellegrini 42

22

IA 2004-2005 - © C. Pellegrini 43

IA 2004-2005 - © C. Pellegrini 44

23

IA 2004-2005 - © C. Pellegrini 45

Exemple de chaExemple de chaîînage avantnage avant (pr(préédicats)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 46

Exemple d'une base de connaissancesExemple 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)

24

IA 2004-2005 - © C. Pellegrini 47

Exemple d'une base de connaissances Exemple d'une base de connaissances (suite)(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,M1) and Missile(M1)

… all of its missiles were sold to it by Colonel WestMissile(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 48

Preuve par chaPreuve par chaîînage avantnage avant

25

IA 2004-2005 - © C. Pellegrini 49

Preuve par chaPreuve par chaîînage avantnage avant

IA 2004-2005 - © C. Pellegrini 50

Preuve par chaPreuve par chaîînage avantnage avant

26

IA 2004-2005 - © C. Pellegrini 51

ChaChaîînage arrinage arrièère ("re ("backwardbackward chainingchaining")")

• 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: (i) PLusVieux(Lulu, Fifi)correspondance (i) avec partie droite de (4)

sous-objectif: (ii) Parent(Lulu, Fifi) (iii) Vivant(Lulu)correspondance (iii) avec (2) vraicorrespondance (ii) avec partie droite de (3)

sous-objectif: (iv) Mère(Lulu, Fifi)correspondance (iv) avec (1) vrai

IA 2004-2005 - © C. Pellegrini 52

ChaChaîînage arrinage arrièère re (suite)(suite)

Lorsqu'une requête q est poséesi 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

27

IA 2004-2005 - © C. Pellegrini 53

Exemple de chaExemple de chaîînage arrinage arrièèrere (propositions)(propositions)

IA 2004-2005 - © C. Pellegrini 54

Exemple de chaExemple de chaîînage arrinage arrièèrere (propositions)(propositions)

28

IA 2004-2005 - © C. Pellegrini 55

Exemple de chaExemple de chaîînage arrinage arrièèrere (propositions)(propositions)

IA 2004-2005 - © C. Pellegrini 56

Exemple de chaExemple de chaîînage arrinage arrièèrere (propositions)(propositions)

29

IA 2004-2005 - © C. Pellegrini 57

Exemple de chaExemple de chaîînage arrinage arrièèrere (propositions)(propositions)

IA 2004-2005 - © C. Pellegrini 58

Exemple de chaExemple de chaîînage arrinage arrièèrere (propositions)(propositions)

30

IA 2004-2005 - © C. Pellegrini 59

Exemple de chaExemple de chaîînage arrinage arrièèrere (propositions)(propositions)

IA 2004-2005 - © C. Pellegrini 60

Exemple de chaExemple de chaîînage arrinage arrièèrere (propositions)(propositions)

31

IA 2004-2005 - © C. Pellegrini 61

Exemple de chaExemple de chaîînage arrinage arrièèrere (propositions)(propositions)

IA 2004-2005 - © C. Pellegrini 62

Exemple de chaExemple de chaîînage arrinage arrièèrere (propositions)(propositions)

32

IA 2004-2005 - © C. Pellegrini 63

Exemple de chaExemple de chaîînage arrinage arrièèrere (pr(préédicats)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)

{y/Pat, z/Steve}

Cochon(Pat) Escargot(Steve)

1

Mince(Steve) Rampe(Steve)

{z/Steve}23 { }

4 { } 5 { }

IA 2004-2005 - © C. Pellegrini 64

Un autre exempleUn autre exemple

33

IA 2004-2005 - © C. Pellegrini 65

Un autre exempleUn autre exemple

IA 2004-2005 - © C. Pellegrini 66

Un autre exempleUn autre exemple

34

IA 2004-2005 - © C. Pellegrini 67

Un autre exempleUn autre exemple

IA 2004-2005 - © C. Pellegrini 68

Un autre exempleUn autre exemple

35

IA 2004-2005 - © C. Pellegrini 69

Un autre exempleUn autre exemple

IA 2004-2005 - © C. Pellegrini 70

Un autre exempleUn autre exemple

36

IA 2004-2005 - © C. Pellegrini 71

Base de connaissances pour le monde du Base de connaissances pour le monde du WumpusWumpus

• 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 72

Interagir avec une base de connaissancesInteragir avec une base de connaissances

Supposons que l'agent pour le monde du Wumpus utilise une base de connaissances en logique du 1er 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σ

37

IA 2004-2005 - © C. Pellegrini 73

DDééduire des propriduire des propriééttéés cachs cachééeses

• 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 74

Garder une trace des changementsGarder 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 1er 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

38

IA 2004-2005 - © C. Pellegrini 75

DDéécrire les actionscrire 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 non-changements– 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