Vous êtes sur la page 1sur 38

Logique des prdicats et infrence

AIMA chapitres 8 & 9

Aperu
Motivation
Logique des prdicats du 1er ordre
(syntaxe et smantique)
Exemples
Infrence en logique des prdicats du 1er ordre
Le monde du Wumpus en logique du 1er ordre

IA 2004-2005 - C. Pellegrini

avantages et inconv
inconvnient de la logique propositionnelle

La logique propositionnelle est dclarative: les lments syntaxiques


correspondent des faits,

La logique propositionnelle permet d'exprimer de l'information sous forme


partielle, disjonctive ou ngative (contrairement la plupart des
structures ou des bases de donnes)

La logique propositionnelle est compositionnelle: la signification de B1,1 P1,2


est obtenue partir des significations de B1,1 et P1,2

La smantique (signification) en logique propositionnelle est indpendante 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

Motivation

pas reprsentable en logique propositionnelle !

Comment exprimer les phrases suivantes en logique des propositions?


Marcus tait Pompien
Tous les Pompiens taient Romains
Tous les Romains taient soit loyaux envers Csar soit ils le hassaient
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 Csar
Par consquent Marcus hassait Csar

IA 2004-2005 - C. Pellegrini

Logique du 1er ordre


Au lieu des symboles propositionnels P1 , P2 , Q , utiliser des
prdicats et des termes:
exemples
1)
Personne (Marie) Aime(Romo, Juliette)

constantes "prdicats"
(ou simplement prdicats)
sans signification prdtermine

constantes individuelles
(ou simplement constantes)
sans signification prdtermine

2)

Jean donne Fifi Marie


Donne(Jean, Marie, Fifi)

3)

gal(Plus(2,2), 4)

IA 2004-2005 - C. Pellegrini

Autres exemples
3)

Prdicat avec
signification prdfinie

gal(Plus(2,2), 4)

Fonction avec
signification prdfinie

Constantes avec
signification prdfinie

On peut aussi utiliser la notation infixe


2+2 = 4
gal(Mre(Fifi), Lulu), ou
Mre(Fifi) = Lulu
Sqrt(sin(90)) = 1

IA 2004-2005 - C. Pellegrini

Syntaxe: lments de base

Constantes
Prdicats
Fonctions
Variables
Connecteurs
galit
Quantificateurs

RoiJean, 2, UniGE, ...


Frre, >, ...
Sqrt(.), JambeGaucheDe(.), ...
x, y, a, b, ...
, , , ,
=

IA 2004-2005 - C. Pellegrini

Formules
Phrases atomiques = prdicat(terme1, , termen )
ou terme1 = terme2
Terme = fonction(terme1, , termen)
ou constante ou variable
Exemples
1) Frre(RoiJean, RichardCoeurDeLion)
2) > (Longueur(JambeGaucheDe(Richard)),15 )

Phrases complexes = phrases atomiques runies par des connecteurs


S, S1 S2 , S1 S2 , S1 S2 ,
S1 S2
Exemples
1)
Frre(RoiJean, Richard) Frre(Richard, RoiJean)
2) > (1, 2) (1, 2)
3)
> (1, 2) > (1, 2)
IA 2004-2005 - C. Pellegrini

Valeurs de vrit en logique du 1er ordre


Les phrases sont vraies par rapport un modle et une
interprtation,
Le modle contient les objets et les relations qui existent entre
eux,
l'interprtation spcifie les rfrences pour:

symboles de constantes objets


symboles de prdicats relations
symboles de fonctions relations fonctionelles

une phrase atomique prdicat(terme1 , , termen) est vraie ssi les


objets reprsents par terme1 , , termen sont dans la relation
reprsente par le prdicat.

IA 2004-2005 - C. Pellegrini

Quantification
La quantification permet d'exprimer des proprits sur une collection
d'objets sans avoir les dsigner chacun par un nom,
2 types de quantificateurs:

IA 2004-2005 - C. Pellegrini

quantificateur existentiel:

quantificateur universel:

10

Quantification existentielle
Forme gnrale
<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 P


A(RoiJean, UniXX) Intelligent(RoiJean)
A(Richard, UniXX) Intelligent(Richard)
A(Pierre, UniXX) Intelligent(Pierre)

Typiquement est le connecteur principal avec


erreur frquente: utiliser comme connecteur principal avec :
x A(x, UniXX) Intelligent(x)
est vrai aussi si quelqu'un n'est pas UniXX! (cf. tables de vrit de et )
IA 2004-2005 - C. Pellegrini

11

Quantification existentielle (cont.)


x Chien(x)

il y a un chien

variable
lie par

les variables dsignent des emplacements possibles pour des


constantes:
x est une variable libre dans Chien(x)
x est une variable lie dans x Chien(x)

IA 2004-2005 - C. Pellegrini

12

Exemple
y (Mange(Fifi, y) Biscuit(y))
Fifi mange un biscuit
sans les parenthses extrieures il y a ambigut:
y Mange(Fifi, y) Biscuit(y)
pourrait tre interprt comme:
( y Mange(Fifi, y)) Biscuit(y)
variable lie par

variable libre

ou comme:
y (Mange(Fifi, y) Biscuit(y))
variable lie par
IA 2004-2005 - C. Pellegrini

13

Quantification universelle
Forme gnrale
<variables> <phrase>
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 frquente: 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

Lois de Morgan
x

est quivalent

est quivalent

( )

est quivalent

( )

est quivalent

IA 2004-2005 - C. Pellegrini

15

Proprits 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, CrmeGlace)

x Aime(x, CrmeGlace)

x Aime(x, Brocoli)

x Aime(x, Brocoli)

IA 2004-2005 - C. Pellegrini

16

Logique de 1er ordre: syntaxe


La structure des phrases en logique du 1er ordre est dfinie par la grammaire
suivante:
Phrase PhraseAtomique
| Phrase Connecteur Phrase
| Quantificateur Variable Phrase
| Phrase
| (Phrase)
PhraseAtomique Prdicat(Terme,...)
| Terme = Terme
Terme Fonction(Terme, ...)
| Constante
| Variable
Connecteur | | |
Quantificateur |
Constante A | X1 | Jean | ...
Variable a | x | s | ...
Prdicat Avant | EstColor | ...
Fonction Mre | JambeGaucheDe | ...
IA 2004-2005 - C. Pellegrini

17

Calcul des prdicats du 1er ordre


Le calcul des prdicats du 1er ordre permet la quantification de
variables (reprsentant des objets) mais pas la quantification de
prdicats ou de fonctions
exemple: l'expression

"Tous les prdicats n'ont qu'un seul argument"

n'est pas exprimable en calcul des prdicats du 1er ordre


p: Arit(p(x), 1)

n'est pas une expression lgitime

Il faut un calcul des prdicats d'ordre suprieur.

IA 2004-2005 - C. Pellegrini

18

Exemples
Presque toutes les phrases du langage naturel peuvent tre
reprsentes en logique des prdicats du 1er ordre,
il n'y a pas de correspondance unique entre une phrase en langage
naturel et une expression logique,
Exemples:
"La mre de Jean est marie au pre de Jean"
Mari(Pre(Jean), Mre(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) Possde(Jean, Voiture-1) Couleur(Voiture-1, Vert)
2) x Voiture(x) Possde(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"
xy Parent(x,y) PlusVieux(x, y)

IA 2004-2005 - C. Pellegrini

20

10

Exemples (suite)
"Si x est la mre de y, alors x est un parent de y"
x y Mre(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
terme1 = terme2 est vrai tant donn une interprtation si et
seulement si terme1 et terme2 font rfrence au mme objet
exemples:
a)

Pre(Paul) = Jacques
Tlphone(Christian) = 705 76 34

b) dfinition de FrreSoeur en termes de Parent


x,y FrreSoeur(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

Infrence en logique du 1er ordre


Prmisses:
1. Si x est un parent de y, alors x est plus g que y
2. Si x est la mre de y, alors x est un parent de y
3. Lulu est la mre de Fifi

Conclusion:
Lulu est plus g que Fifi

Correspondance en logique du 1er ordre:


Prmisses:
1. xy Parent(x,y) PlusAg(x, y)
2. xy Mre(x,y) Parent(x, y)
3. Mre(Lulu, Fifi)
Conclusion: PlusAg(Lulu, Fifi)

l'infrence est obtenue par des axiomes et des rgles (i.e. par des
transformations syntaxiques) qui tendent ceux de la logique
propositionnelle.
IA 2004-2005 - C. Pellegrini

23

Rgles d'infrence
Rgles identiques celles de la logique propositionnelle
,

Modus ponens (MP)

1 ,2 ,n
1 2 n

introduction du "et" (IE)

Rgle nouvelle

[x/k]

Instantiation universelle (IU)

[x/k] : une phrase o toutes les occurrences de la variable x


sont remplaces par la constante k (not aussi SUBST({x/k}, ))

IA 2004-2005 - C. Pellegrini

24

12

Exemple de preuve
Bob est un buf
Pat est un cochon

1. Boeuf(Bob)
2. Cochon(Pat)

Les bufs courent plus vite


que les cochons

3. x, y Boeuf(x) Cochon(y)

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

25

Unification
C'est le processus qui rend 2 expressions identiques,
en logique propositionnelle 2 expressions sont les mmes
seulement si elles sont syntaxiquement identiques,
la prsence de variables en logique des prdicats 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(PreDe( Platon))
x / PreDe( Platon)

Humain(PreDe( Platon)) Mortel(PreDe( Platon))


IA 2004-2005 - C. Pellegrini

26

13

Unification

(suite)

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

p
Connat(Jean, x)
Connat(Jean, x)
Connat(Jean, x)
Connat(Jean,x)

q
Connat(Jean, Jeanne)
Connat(y, OJ)
Connat(y, Mre(y))
Connat(x, OJ)

{ x/Jeanne }
{ y/Jean, x/OJ }
{ y/Jean, x/Mre(Jean) }
{chec}

Ide: unifier les prmisses des rgles avec des faits connus,
appliquer l'unificateur la conclusion
ex: si on connat q et Connat(Jean, x) Aime(Jean, x)
alors on peut conclure Aime(Jean, Jeanne)
Aime(Jean, OJ)
Aime(Jean, Mre(Jean))
IA 2004-2005 - C. Pellegrini

27

Unification
Unifier

Q(x,Tom) &

Q(x,Tom)

(suite)

Q(Marie, y)
Q(Marie, y)

&

{ y/Tom, x/Marie }

Q(Marie,Tom)

Q(Marie,Tom)

une variable doit tre substitue de manire 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)
IA 2004-2005 - C. Pellegrini

P(A) Q(B, A)
28

14

Unification

(suite)

Si on applique une srie de substitutions, l'effet est identique celui


d'une seule substitution qui est la composition des substitutions
partielles
P(x) Q(y,x)
{x/b, y/z}

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 gnral


Si on veut unifier

Connat(Jean,x) et Connat(y,z)
on peut le faire avec les unificateurs:

= { y/Jean, x/z }
= { y/Jean, x/Jean, z/Jean }
Le 1er est plus gnral (moins spcifique) que le 2me
Il n'existe qu'un seul unificateur le plus gnral (UPG) qui est
unique condition de procder 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 gnralis


p1', p2', , pn' , ( p1 p2 ... pn q )
q
o

pi' = pi

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)

exemple:

IA 2004-2005 - C. Pellegrini

33

Exemple de preuve
Une preuve de PlusVieux(Lulu, Fifi) l'aide du MPG:
1. Mre(Lulu, Fifi)

donn

2. Vivant(Lulu)

donn

3. xy Mre(x,y) Parent(x, y)

donn

4. xy(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 appele chanage avant


(ou "forward chaining")
IA 2004-2005 - C. Pellegrini

34

17

Chanage avant ("forward chaining")


Lorsqu'un nouveau fait p est ajout la base de connaissances:
pour chaque rgle telle que p s'unifie avec un prmisse
et si les autres prmisses sont connus
alors ajouter la conclusion la base de connaissances et
continuer le chanage
le chanage avant est pilot par les donnes ("data-driven")
cd, on infre des proprits et des catgories partir des
squences perceptives

IA 2004-2005 - C. Pellegrini

35

Exemple de chanage avant (propositions)


Activer chaque rgle dont les prmisses sont satisfaites par des
lments 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 chanage avant (prdicats)


Ajouter les lments 1, 2, 3, 4, 5, 7 la BdC dans l'ordre
nombres entre [ ] = unification d'un littral

indique l'application d'une rgle

X indique une rgle 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
cohrence avec la rfrence 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,M1) and Missile(M1)

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 chanage avant

IA 2004-2005 - C. Pellegrini

48

24

Preuve par chanage avant

IA 2004-2005 - C. Pellegrini

49

Preuve par chanage avant

IA 2004-2005 - C. Pellegrini

50

25

Chanage arrire ("backward chaining")


Partir d'un objectif ( prouver) et driver de nouveaux sous-objectifs jusqu'
n'avoir que des sous-objectifs connus comme vrais
semblable la rduction de problme
Preuve par chanage arrire de PlusVieux(Lulu, Fifi) partir des prmisses:
1. Mre(Lulu, Fifi)
2. Vivant(Lulu)
3. xy Mre(x,y) Parent(x, y)
4. xy(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) Mre(Lulu, Fifi)
correspondance (iv) avec (1)
vrai

IA 2004-2005 - C. Pellegrini

51

Chanage arrire

(suite)

Lorsqu'une requte q est pose


si un fait correspondant q' est connu, alors retourner l'unificateur pour
chaque rgle ayant pour conclusion q' et tenter de prouver chaque
prmisse de la rgle par chanage arrire
(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 chanage arrire est dirig par les objectifs ("goal directed" )
le chanage arrire est la base de la programmation logique, par ex. de
Prolog

IA 2004-2005 - C. Pellegrini

52

26

Exemple de chanage arrire (propositions)

IA 2004-2005 - C. Pellegrini

53

Exemple de chanage arrire (propositions)

IA 2004-2005 - C. Pellegrini

54

27

Exemple de chanage arrire (propositions)

IA 2004-2005 - C. Pellegrini

55

Exemple de chanage arrire (propositions)

IA 2004-2005 - C. Pellegrini

56

28

Exemple de chanage arrire (propositions)

IA 2004-2005 - C. Pellegrini

57

Exemple de chanage arrire (propositions)

IA 2004-2005 - C. Pellegrini

58

29

Exemple de chanage arrire (propositions)

IA 2004-2005 - C. Pellegrini

59

Exemple de chanage arrire (propositions)

IA 2004-2005 - C. Pellegrini

60

30

Exemple de chanage arrire (propositions)

IA 2004-2005 - C. Pellegrini

61

Exemple de chanage arrire (propositions)

IA 2004-2005 - C. Pellegrini

62

31

Exemple de chanage arrire (prdicats)


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
Cochon(Pat)
3

{y/Pat, z/Steve}

Escargot(Steve)

{}

Mince(Steve)
4

{z/Steve}

Rampe(Steve)

{}

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 Peroit([Odeur, b, g], t) Odorant(t)


s, b, t Peroit([s, b, clat], t) Or(t)

Reflex

t Or(t) Action(Saisir, t)

Reflex avec tat interne: a-t-on dj 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 1er ordre et qu'il peroive 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 particulire au temps t = 5?
rponse: OUI,

{a/Tirer}

substitution ("binding list")

Soit un phrase S et une substitution ,


S dsigne le rsultat 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
IA 2004-2005 - C. Pellegrini

S
72

36

Dduire des proprits caches


Proprits 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 rgle infre la cause partir de l'effet

y CourantAir(y) x Puit(x) Adjacent(x, y)

solution causale:

la rgle infre l'effet partir de la cause

x, y Puit(x) Adjacent(x, y) CourantAir(y)

aucune solution n'est complte, i.e. la rgle causale ne dit pas si une case
loigne d'un puit peut avoir des courants d'air

Dfinition du prdicat 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 donne et pas ternellement
ex: Tenir(Or, Maintenant) plutt que simplement Tenir(Or)

le calcul de situation est une possibilit pour reprsenter les changements


en logique du 1er ordre
ajouter un argument de situation chaque prdicat non-permanent ( cd non
ternel)
Maintenant dans Tenir(Or, Maintenant) reprsente une situation

les situations sont lies les unes aux


autres par la fonction Result
Result(a,s) est la situation qui rsulte
de l'action a effectue dans la situation s

IA 2004-2005 - C. Pellegrini

74

37

Dcrire les actions


axiome "Effet" dcrit les changements dus une action

s A-Or(s) Tenir(Gold Result(Saisir, s))

axiome "Frame" dcrit les non-changements suite une action

s PossdeFlche(s) PossdeFlche(Result(Saisir, s))

problme " Frame ": trouver un moyen lgant de traiter les nonchangements
par reprsentation: vite les axiomes "frame"
par infrence: vite les copies rptes pour garder une trace des diffrents
tats

problme "Qualification": des descriptions d'actions relles exigeraient


des prcisions sans fin
que faire si l'or est glissant, fix au sol,

problme "Ramification": les actions relles ont de nombreuses


consquences secondaires
IA 2004-2005 - C. Pellegrini

75

38