Vous êtes sur la page 1sur 86

Introduction

Analyses
Algorithmes d’inférences
Apport de l’IA

Chapitre 1 : la logique propositionnelle

Pryde MBOUH GHOGOMU

3GI Ecole Polytechnique

03 mars 2020

1/86

Pryde MBOUH GHOGOMU Chapitre 1 : la logique propositionnelle


Introduction
Analyses
Algorithmes d’inférences
Apport de l’IA

Plan du Chapitre

1 Introduction

2 Analyses

3 Algorithmes d’inférences

4 Apport de l’IA

2/86

Pryde MBOUH GHOGOMU Chapitre 1 : la logique propositionnelle


Introduction
Analyses Agent Logique
Algorithmes d’inférences Concept lié à la logique
Apport de l’IA

Intelligence humaine

Une définition de l’IA : "L’étude des facultés mentales grâce à


des modèles informatiques"
(Charniak et McDermott, 1985)
Les facultés mentales de l’homme lui permettent d’agir en
raisonnant sur ce qu’il connait ;
⇒ En IA : Agents fondés sur les connaissances (KB-Agent).

3/86

Pryde MBOUH GHOGOMU Chapitre 1 : la logique propositionnelle


Introduction
Analyses Agent Logique
Algorithmes d’inférences Concept lié à la logique
Apport de l’IA

KB-Agent

Un agent est une entité qui agit ;


Un agent informatique fait plus qu’un programme informatique
(qui ne résout que quelques problèmes), il est capable de :
fonctionner de manière autonome ;
percevoir l’environnement ;
persister pendant une période prolongée ;
s’adapter au changement ;
créer et poursuivre des objectifs.
Un KB-agent y arrive en actualisant ses connaissances.
⇒ Composant central : Base de Connaissances (KB)

4/86

Pryde MBOUH GHOGOMU Chapitre 1 : la logique propositionnelle


Introduction
Analyses Agent Logique
Algorithmes d’inférences Concept lié à la logique
Apport de l’IA

Base de Connaissances

Base de Connaissances (KB pour Knowledge Base) :


ensemble de toutes les connaissances (énoncés) ;
Énoncé Bien Formé : énoncé exprimé dans une syntaxe
précise.
⇒ Formule Bien Formée (FBF) ;
Axiome : un énoncé non-dérivé des autres énoncés (une
donnée du problème) ;
Inférence : processus de dérivation de nouveaux énoncés à
partir des anciennes. Deux fonctions pour inférer :
ASK() pour interroger KB ;
et TELL() pour renseigner KB.

5/86

Pryde MBOUH GHOGOMU Chapitre 1 : la logique propositionnelle


Introduction
Analyses Agent Logique
Algorithmes d’inférences Concept lié à la logique
Apport de l’IA

fonction KB_AGENT()

Variable Globales :
KB : une base de connaissance
t : un compteur qui indique le nombre de fois que la fonction
est exécutée, initialement t = 0

action : FONCTION KB_AGENT (percept)


Debut
TELL(KB, CREER_ENONCE_PERCEPT (percept, t))
action ← ASK(KB, CREER_REQUETE_ACTION(t))
TELL(KB, CREER_ENONCE_ACTION(action, t))
t← t+1
retourner action
Fin

⇒ Programmation déclarative.
6/86

Pryde MBOUH GHOGOMU Chapitre 1 : la logique propositionnelle


Introduction
Analyses Agent Logique
Algorithmes d’inférences Concept lié à la logique
Apport de l’IA

Analyse de l’énoncé

2 Niveaux d’analyse des énoncés :


1 analyse syntaxique : pour la formulation de l’énoncé cf. FBF
2 analyse sémantique : pour la détermination de la valeur de vérité
d’un énoncé
La valeur de vérité d’un énoncé peut dépendre des différents cas
de figures (différentes interprétations) ;
Une interprétation dans lequel un énoncé α est vrai est appelée
modèle de α.
Notation : M(α) l’ensemble de tous les modèles de α

7/86

Pryde MBOUH GHOGOMU Chapitre 1 : la logique propositionnelle


Introduction
Analyses Agent Logique
Algorithmes d’inférences Concept lié à la logique
Apport de l’IA

Inférence logique

L’énoncé α a pour Conséquence logique l’énoncé β (notation :


α |= β) si et seulement si M(α) ⊆ M(β)
⇒ Dans toutes les interprétations dans lesquelles α est vrai, β
est également vrai.
2 énoncés α et β sont logiquement équivalents s’ils sont vrais
dans les mêmes interprétations ; (notation : α ≡ β)
⇒ α ≡ β si et seulement si α |= β et β |= α
L’écriture KB |= α signifie que dans les interprétations dans
lesquelles tous les énoncés de KB sont vrais, α est également
vrai.
⇒ On peut dériver α de KB à l’aide d’un algorithme d’inférence.
L’écriture KB `i α signifie que α est dérivé de KB par un
algorithme d’inférence i

8/86

Pryde MBOUH GHOGOMU Chapitre 1 : la logique propositionnelle


Introduction
Analyses Agent Logique
Algorithmes d’inférences Concept lié à la logique
Apport de l’IA

Caractéristique d’un algorithme d’inférence

la validité : l’algorithme ne dérive que les énoncés qui sont des


conséquences logiques ;
la complétude : si un énoncé est une conséquence logique alors
l’algorithme peut le dériver ;
le fondement : les modèles sont des abstractions mathématiques
du monde réel :
toute conséquence logique est-elle une vérité (dans la réalité) ?
toute vérité peut-elle être inférée ?

9/86

Pryde MBOUH GHOGOMU Chapitre 1 : la logique propositionnelle


Introduction
Analyse Syntaxique
Analyses
Analyse Sémantique
Algorithmes d’inférences
Exemple
Apport de l’IA

La grammaire BNF (Backus-Naur Form) d’une FBF

FBF → FBF_Atomique | FBF_Complexe


FBF_Atomique → Vrai | Faux | Proposition
FBF_Complexe → (FBF) | ¬FBF | FBF @ FBF
Proposition → P | Q | R | W1,3 | Ok ...

Où @ ∈ {∧, ∨, ⇒, ⇔}
En l’absence des parenthèses :
l’ordre de priorité est le suivant : {¬, ∧, ∨ ⇒, ⇔}
avec le même opérateur, l’ordre de priorité est de gauche à
droite.

10/86

Pryde MBOUH GHOGOMU Chapitre 1 : la logique propositionnelle


Introduction
Analyse Syntaxique
Analyses
Analyse Sémantique
Algorithmes d’inférences
Exemple
Apport de l’IA

Formulation 1/4

La formulation des énoncés en Logique L0 est moins riche qu’en


langage naturel.
Les connecteurs logiques ont des correspondances dans le
langage naturel :
négation : ¬α
Ne ... Pas
il est faux que α
Equivalence : α ⇔ β
α si et seulement si β
α si β et β si α
α condition nécessaire et suffisante de β

11/86

Pryde MBOUH GHOGOMU Chapitre 1 : la logique propositionnelle


Introduction
Analyse Syntaxique
Analyses
Analyse Sémantique
Algorithmes d’inférences
Exemple
Apport de l’IA

Formulation 2/4

Conjonction : α ∧ β
α et β
β et α
à la fois α et β
α bien que β
α quoique β
α mais aussi β
Non seulement α mais β
α et pourtant β
α tandis que β

12/86

Pryde MBOUH GHOGOMU Chapitre 1 : la logique propositionnelle


Introduction
Analyse Syntaxique
Analyses
Analyse Sémantique
Algorithmes d’inférences
Exemple
Apport de l’IA

Formulation 3/4

Disjonction : α ∨ β
α ou β
Ou α ou β
Ou bien α ou bien β
Soit α soit β
α sauf si β
α ou β ou le deux
⇒ Il arrivera les situations ou il faudra distinguer le "ou exclusif" du
"ou inclusif".
Exemple :
la porte est ouverte ou la porte est fermée.

13/86

Pryde MBOUH GHOGOMU Chapitre 1 : la logique propositionnelle


Introduction
Analyse Syntaxique
Analyses
Analyse Sémantique
Algorithmes d’inférences
Exemple
Apport de l’IA

Formulation 4/4

Implication : α ⇒ β
Si α alors β
α condition suffisante de β
β condition nécessaire de α
α alors β
β si α
β lorsque α
α seulement si β
β pourvu que α
Seul β est α

14/86

Pryde MBOUH GHOGOMU Chapitre 1 : la logique propositionnelle


Introduction
Analyse Syntaxique
Analyses
Analyse Sémantique
Algorithmes d’inférences
Exemple
Apport de l’IA

Valeur de vérité

Une interprétation assigne à toutes les propositions d’une FBF


une valeur de vérité (Vrai ou Faux) ;
Il y a 2n interprétations possibles pour une FBF composée de n
propositions différentes ;
Une table de vérité spécifie la valeur de vérité d’une FBF
complexe pour chaque assignation possible de valeur de vérité à
ses composants.

15/86

Pryde MBOUH GHOGOMU Chapitre 1 : la logique propositionnelle


Introduction
Analyse Syntaxique
Analyses
Analyse Sémantique
Algorithmes d’inférences
Exemple
Apport de l’IA

Table de vérité

P Q ¬P P∧Q P∨Q P⇒Q P⇔Q


Vrai Vrai Faux Vrai Vrai Vrai Vrai
Vrai Faux Faux Faux Vrai Faux Faux
Faux Vrai Vrai Faux Vrai Vrai Faux
Faux Faux Vrai Faux Faux Vrai Vrai

∨ est un ou inclusif
P⇒Q n’a de sens que si P est Vrai

16/86

Pryde MBOUH GHOGOMU Chapitre 1 : la logique propositionnelle


Introduction
Analyse Syntaxique
Analyses
Analyse Sémantique
Algorithmes d’inférences
Exemple
Apport de l’IA

Équivalences logiques standard 1/2

Soient α, β et γ les fbfs, on a les équivalences logiques suivantes :


Factorisation (ou Suppression des doublons) :
(α ∨ α) ≡ α
(α ∧ α) ≡ α
Commutativité :
(α ∨ β) ≡ (β ∨ α)
(α ∧ β) ≡ (β ∧ α)
Associativité :
(α ∨ β) ∨ γ ≡ α ∨ (β ∨ γ)
(α ∧ β) ∧ γ ≡ α ∧ (β ∧ γ)
Involution (ou Élimination de la double négation) :
¬(¬α) ≡ α
Contraposition
(α ⇒ β) ≡ (¬β ⇒ ¬α)
17/86

Pryde MBOUH GHOGOMU Chapitre 1 : la logique propositionnelle


Introduction
Analyse Syntaxique
Analyses
Analyse Sémantique
Algorithmes d’inférences
Exemple
Apport de l’IA

Équivalences logiques standard 2/2

Élimination des implications


(α ⇔ β) ≡ (α ⇒ β) ∧ (β ⇒ α)
(α ⇒ β) ≡ ¬α ∨ β
De Morgan
¬(α ∧ β) ≡ ¬α ∨ ¬β
¬(α ∨ β) ≡ ¬α ∧ ¬β
Distributivité :
α ∨ (β ∧ γ) ≡ (α ∨ β) ∧ (α ∨ γ)
α ∧ (β ∨ γ) ≡ (α ∧ β) ∨ (α ∧ γ)
Identité :
α ∨ Faux ≡ α
α ∧ Vrai ≡ α
α ∨ Vrai ≡ Vrai
α ∧ Faux ≡ Faux

18/86

Pryde MBOUH GHOGOMU Chapitre 1 : la logique propositionnelle


Introduction
Analyse Syntaxique
Analyses
Analyse Sémantique
Algorithmes d’inférences
Exemple
Apport de l’IA

Nature d’un énoncé 1/3

Validité : un énoncé est valide (ou est une tautologie) s’il est Vrai
dans toutes les interprétations ;
⇒ Tout énoncé valide est logiquement équivalent à Vrai.
⇒ Si un énoncé est Faux dans au moins une interprétation, il est
invalide.
Satisfiabilité : un énoncé est insatisfiable (ou inconsistant ou
est une contradiction) s’il est Faux dans toutes les
interprétations ;
⇒ Tout énoncé insatisfiable est logiquement équivalent à Faux ;
⇒ Si l’énoncé est Vrai dans (satisfait par) au moins une interprétation,
il est satisfiable (consistant).
⇒ Le problème SAT : problème de détermination de la
satisfiabilité des énoncés en logique propositionnelle.
Contingence : un énoncé est contingent s’il est Vrai dans
certaines interprétations et Faux dans d’autres.
19/86

Pryde MBOUH GHOGOMU Chapitre 1 : la logique propositionnelle


Introduction
Analyse Syntaxique
Analyses
Analyse Sémantique
Algorithmes d’inférences
Exemple
Apport de l’IA

Nature d’un énoncé 2/3

20/86

Pryde MBOUH GHOGOMU Chapitre 1 : la logique propositionnelle


Introduction
Analyse Syntaxique
Analyses
Analyse Sémantique
Algorithmes d’inférences
Exemple
Apport de l’IA

Nature d’un énoncé 3/3

Un énoncé α est valide si et seulement si ¬α n’est pas satisfiable


(on dit aussi ¬α est insatisfiable)
α |= β si et seulement si (α ∧ ¬β) est insatisfiable.
⇐ preuve par réfutation (par l’absurde, par contradiction).

Théorème de la déduction
Soient α et β, 2 énoncés ; on a α |= β si et seulement si l’énoncé (α ⇒ β) est valide.

21/86

Pryde MBOUH GHOGOMU Chapitre 1 : la logique propositionnelle


Introduction
Analyse Syntaxique
Analyses
Analyse Sémantique
Algorithmes d’inférences
Exemple
Apport de l’IA

Règle d’inférence

Les Règles d’inférence en logique L0 sont :


α ⇒ β, α
le Modus ponens :
β
α∧β
l’élimination de la conjonction :
α
α β
s’il existe une équivalence logique entre α et β alors et
β α
La partie supérieure de la règle est appelée prémisse et la partie
inférieure, conclusion.

22/86

Pryde MBOUH GHOGOMU Chapitre 1 : la logique propositionnelle


Introduction
Analyse Syntaxique
Analyses
Analyse Sémantique
Algorithmes d’inférences
Exemple
Apport de l’IA

Forme Normale Conjonctive (CNF) 1/3

Un littéral est une proposition ou la négation d’une proposition.


Soit l un littéral, son littéral complémentaire est ¬l ;
Une clause est la disjonction d’un nombre fini de littéraux.
⇒ Cas particulier :
Une clause unitaire est une clause ne contenant qu’un seul littéral
la clause vide est une disjonction sans termes disjonctifs, notée ∅,
elle est équivalente à Faux ;
Un énoncé est exprimé sous forme normale conjonctive (CNF)
si et seulement s’il est une conjonction d’un nombre fini de
clauses.
⇒ α = C1 ∧ C2 ∧ ... ∧ Cn , où chaque Ci est une clause.

23/86

Pryde MBOUH GHOGOMU Chapitre 1 : la logique propositionnelle


Introduction
Analyse Syntaxique
Analyses
Analyse Sémantique
Algorithmes d’inférences
Exemple
Apport de l’IA

Forme Normale Conjonctive (CNF) 2/3


La grammaire BNF d’une CNF est la suivante :

CNF → Clause1 ∧ ... ∧ Clausen


Clause → Litteral1 ∨ ... ∨ Litteralm
Littéral → Proposition | ¬Proposition
Proposition → P | Q | R | W1,3 | Ok ...

si α = Clause1 ∧ ... ∧ Clausen , la notation Sα = {C1 , C2 , ..., Cn }


est appelé Ensemble de clauses.
la notation k-CNF (lire Forme Normale Conjonctive d’ordre k)
dénote un énoncé CNF dans lequel chaque clause comporte
exactement k littéraux ;
la notation CNFk (m, n) dénote un énoncé k-CNF comptant m
clauses et n propositions, dans lequel :
une proposition ne peut apparaitre 2 fois dans une clause ;
et une clause ne peut apparaitre 2 fois dans l’énoncé.
24/86

Pryde MBOUH GHOGOMU Chapitre 1 : la logique propositionnelle


Introduction
Analyse Syntaxique
Analyses
Analyse Sémantique
Algorithmes d’inférences
Exemple
Apport de l’IA

Forme Normale Conjonctive (CNF) 3/3

Théorème de la CNF
Tout énoncé est logiquement équivalente à une forme normale
conjonctive.

Preuve en appelant les équivalences logiques selon l’ordre suivant :


1 Élimination des implications : On élimine les connecteurs ⇔ et ⇒
2 Transfert des négations devant les littéraux concerné : On
développe le ¬ en utilisant De Morgan et on élimine les ¬¬ par
Involution ;
3 Distributivité et simplifications : On regroupe les ∨ par les lois de
distributivités et on simplifie chaque clause (Factorisation,
Identité).

25/86

Pryde MBOUH GHOGOMU Chapitre 1 : la logique propositionnelle


Introduction
Analyse Syntaxique
Analyses
Analyse Sémantique
Algorithmes d’inférences
Exemple
Apport de l’IA

Principe de résolution

Soient 2 clauses L = (l1 ∨ l2 ∨ ... ∨ lk ) et M = (m1 ∨ m2 ∨ ... ∨ mn )


telles qu’il existe un unique littéral li complémentaire à mj . Une
clause résolvante ou un résolvant R de L et M est la
disjonction des clauses restantes après suppression des littéraux
li et mj .
L : l1 ∨ l2 ∨ ...lk , M : m1 ∨ m2 ∨ ... ∨ mn
R : l1 ∨ ... ∨ li−1 ∨ li+1 ∨ ... ∨ lk ∨ m1 ∨ ... ∨ mj−1 ∨ mj+1 ∨ ... ∨ mn
Le principe de résolution exprime que (L ∧ M) ≡ (L ∧ M ∧ R)
L et M sont appelés des paires réductibles ;
On a une résolution unitaire si l’une des clauses de départ est
une clause unitaire.
Si l’application récursive de cette opération sur un ensemble de
clauses SG produit la clause vide ∅, alors G est inconsistant (G
est insatisfiable).

26/86

Pryde MBOUH GHOGOMU Chapitre 1 : la logique propositionnelle


Introduction
Analyse Syntaxique
Analyses
Analyse Sémantique
Algorithmes d’inférences
Exemple
Apport de l’IA

La Clôture par résolution

La Clôture par résolution RC(S) d’un ensemble de clauses S est


l’ensemble de toutes les clauses dérivables en répétant l’application
du principe de résolution aux clauses de S ou à leurs résolvants.
⇒ La clôture par résolution RC(S) est fini (en appliquant la
factorisation).

Théorème de résolution propositionnelle


Si un ensemble de clauses est insatisfiable, la clôture par résolution
de ces clauses contient la clause vide.

27/86

Pryde MBOUH GHOGOMU Chapitre 1 : la logique propositionnelle


Introduction
Analyse Syntaxique
Analyses
Analyse Sémantique
Algorithmes d’inférences
Exemple
Apport de l’IA

Le monde de wumpus

1,4 2,4 3,4 4,4

1,3 2,3 3,3 4,3


Une grille de 4 × 4 cases
1,2 2,2 3,2 4,2

1,1 2,1 3,1 4,1


Ok
Les règles du Jeu sont :
La case (1,1) ne contient ni puits, ni wumpus ;
Une case contient une brise (resp. odeur) si et seulement si un
puits (resp. wumpus) est présent dans une case directement
adjacente ;
...

28/86

Pryde MBOUH GHOGOMU Chapitre 1 : la logique propositionnelle


Introduction
Analyse Syntaxique
Analyses
Analyse Sémantique
Algorithmes d’inférences
Exemple
Apport de l’IA

Une instance de Jeu 1/2

Axiome : Supposons une instance de jeu où l’agent n’a pas


perçu de brise dans la case (1,1) mais en a perçu dans (2,1).
Requête : α, il n’y a pas de puits dans la case (1,2) ;
Soient les propositions suivantes (1 ≤ n, p ≤ 4) :
Bn,p : il y a une Brise dans la case (n,p) ;
Ln,p : il y a une Lueur (ie de l’or) dans la case (n,p) ;
Pn,p : il y a un Puits dans la case (n,p) ;
On,p : il y a une Odeur dans la case (n,p) ;
Okn,p = la case (n,p) est une case sûre (OK), elle ne contient ni
puits, ni wumpus ;
Wn,p = il y a un wumpus dans la case (n,p)

29/86

Pryde MBOUH GHOGOMU Chapitre 1 : la logique propositionnelle


Introduction
Analyse Syntaxique
Analyses
Analyse Sémantique
Algorithmes d’inférences
Exemple
Apport de l’IA

Une instance de Jeu 2/2

Pour l’instant, nous formulons seulement les énoncés pertinents pour


répondre à la requête :
la Base de Connaissances (KB) :
R1 : ¬P1,1
R2 : B1,1 ⇔ (P1,2 ∨ P2,1 )
R3 : B2,1 ⇔ (P1,1 ∨ P2,2 ∨ P3,1 )
R4 : ¬B1,1
R5 : B2,1
La requête : FBF à dériver
α : ¬P1,2

30/86

Pryde MBOUH GHOGOMU Chapitre 1 : la logique propositionnelle


Introduction
Algorithme d’inférence par table de vérité
Analyses
Algorithme de démonstration directe de théorèmes
Algorithmes d’inférences
Algorithme de résolution par réfutation
Apport de l’IA

Algorithmes d’inférence

Nous verrons ici les algorithmes d’inférence par :


Énumération (ou par Table de Vérité) : qui énumère les
interprétations pour vérifier que la requête doit être vraie dans
toutes les interprétations dans lesquelles KB est vrai afin de
conclure la conséquence logique ;
Démonstration Directe des Théorèmes : qui utilise les règles
d’inférences afin de déduire la requête à partir de KB ;
Preuve par l’absurde (ou résolution par réfutation) : qui se
sert du principe de résolution pour aboutir à une contradiction.

31/86

Pryde MBOUH GHOGOMU Chapitre 1 : la logique propositionnelle


Introduction
Algorithme d’inférence par table de vérité
Analyses
Algorithme de démonstration directe de théorèmes
Algorithmes d’inférences
Algorithme de résolution par réfutation
Apport de l’IA

Fonction EST_TV_DÉRIVABLE() 1/2

Booléen FONCTION EST_TV_DÉRIVABLE (KB, α)


Objectif : Dire par Table de Vérité si KB |= α
Entrées :
KB, un ensemble (une conjonction) de FBF
α, la requête, une FBF

Debut
symboles ← une liste de propositions dans KB et α
retourner EST_TV_VÉRIFIÉ (KB, α, symboles, {})
Fin

32/86

Pryde MBOUH GHOGOMU Chapitre 1 : la logique propositionnelle


Introduction
Algorithme d’inférence par table de vérité
Analyses
Algorithme de démonstration directe de théorèmes
Algorithmes d’inférences
Algorithme de résolution par réfutation
Apport de l’IA

Fonction EST_TV_DÉRIVABLE() 2/2


Booléen FONCTION EST_TV_VÉRIFIÉ (KB, α, symboles, assignation)
Debut
Si VIDE(symboles) Alors //assignation = interprétation
Si EST_VRAI(KB, assignation) Alors //assignation = modèle de KB
retourner EST_VRAI(α, assignation)
Sinon
retourner Vrai // KB |= α n’a de sens que si KB est Vrai
FinSi
Sinon
P ← PREMIER(symboles)
reste ← RESTE(symboles)
retourner EST_TV_VÉRIFIÉ(KB, α, reste, assignation ∪ {P = Vrai})
ET EST_TV_VÉRIFIÉ(KB, α, reste, assignation ∪ {P = Faux})
FinSi
Fin
33/86

Pryde MBOUH GHOGOMU Chapitre 1 : la logique propositionnelle


Introduction
Algorithme d’inférence par table de vérité
Analyses
Algorithme de démonstration directe de théorèmes
Algorithmes d’inférences
Algorithme de résolution par réfutation
Apport de l’IA

Application sur le monde de wumpus 1/3

symboles : [B1,1 , B2,1 , P1,1 , P1,2 , P2,1 , P2,2 , P3,1 ]


EST_TV_VÉRIFIÉ(KB, α, symboles, {})
P = B1,1
reste = [B2,1 , P1,1 , P1,2 , P2,1 , P2,2 , P3,1 ] = symboles
EST_TV_VÉRIFIÉ(KB, α, symboles, {B1,1 = Vrai})
P = B2,1
reste = [P1,1 , P1,2 , P2,1 , P2,2 , P3,1 ] = symboles
assignation = {B1,1 = Vrai, B2,1 = Vrai}
EST_TV_VÉRIFIÉ(KB, α, symboles, assignation)
...
P = P3,1
reste = [] = symboles
assignation = {B1,1 = Vrai, B2,1 = Vrai, ..., P3,1 = Vrai}
EST_TV_VÉRIFIÉ(KB, α, symboles,assignation)
34/86

Pryde MBOUH GHOGOMU Chapitre 1 : la logique propositionnelle


Introduction
Algorithme d’inférence par table de vérité
Analyses
Algorithme de démonstration directe de théorèmes
Algorithmes d’inférences
Algorithme de résolution par réfutation
Apport de l’IA

Application sur le monde de wumpus 2/3

VIDE(symboles)= VRAI
EST_VRAI(KB, assignation) = FAUX car R1 = FAUX ;
⇒ retourner Vrai
P = P3,1
reste = [] = symboles
assignation = {B1,1 = Vrai, B2,1 = Vrai, ...,P2,2 =Vrai,P3,1 = Faux}
EST_TV_VÉRIFIÉ(KB, α, symboles,assignation)
VIDE(symboles)= VRAI
EST_VRAI(KB, assignation) = FAUX car R1 = FAUX ;
⇒ retourner Vrai

35/86

Pryde MBOUH GHOGOMU Chapitre 1 : la logique propositionnelle


Introduction
Algorithme d’inférence par table de vérité
Analyses
Algorithme de démonstration directe de théorèmes
Algorithmes d’inférences
Algorithme de résolution par réfutation
Apport de l’IA

Application sur le monde de wumpus 3/3

B1,1 B2,1 P1,1 P1,2 P2,1 P2,2 P3,1 R1 ... R5 KB α


Vrai Vrai Vrai Vrai Vrai Vrai Vrai Faux ... Vrai Faux -
Vrai Vrai Vrai Vrai Vrai Vrai Faux Faux ... Vrai Faux -
. . . . . . . . . . . .
. . . . . . . . . . . .
. . . . . . . . . . . .
Faux Vrai Faux Faux Vrai Faux Faux Vrai ... Vrai Faux -
Faux Vrai Faux Faux Faux Vrai Vrai Vrai ... Vrai Vrai Vrai
Faux Vrai Faux Faux Faux Vrai Faux Vrai ... Vrai Vrai Vrai
Faux Vrai Faux Faux Faux Faux Faux vrai ... Vrai Vrai Vrai
Faux Vrai Faux Faux Faux Faux Faux Vrai ... Vrai Faux -
. . . . . . . . . . . .
. . . . . . . . . . . .
. . . . . . . . . . . .
Faux faux Faux Faux Faux Faux Faux Vrai ... Faux Faux -

36/86

Pryde MBOUH GHOGOMU Chapitre 1 : la logique propositionnelle


Introduction
Algorithme d’inférence par table de vérité
Analyses
Algorithme de démonstration directe de théorèmes
Algorithmes d’inférences
Algorithme de résolution par réfutation
Apport de l’IA

Caractéristiques de l’algorithme d’inférence par


énumération

Cet algorithme effectue une énumération récursive d’un espace


fini d’assignations à des propositions ;
Il est valide parce qu’il repose essentiellement sur les tables de
vérité des cinq connecteurs logiques ;
Il est complet parce qu’il fonctionne quels que soient KB et α et
qu’il se termine toujours : il n’y a qu’un nombre fini d’assignation
à examiner ;
Si KB et α contiennent n propositions en tout, il existe 2n
interprétations. Ce qui donne une complexité en temps de Θ(2n )
(Complexité exponentielle).

37/86

Pryde MBOUH GHOGOMU Chapitre 1 : la logique propositionnelle


Introduction
Algorithme d’inférence par table de vérité
Analyses
Algorithme de démonstration directe de théorèmes
Algorithmes d’inférences
Algorithme de résolution par réfutation
Apport de l’IA

Fonction EST_DDT_DÉRIVABLE() 1/2

Booléen FONCTION EST_DDT_DÉRIVABLE (KB, α)


Objectif : Dire par Démonstration directe de théorèmes si KB |= α
Entrées :
KB, un ensemble d’énoncé
α l’énoncé qu’on veut prouver
Variables et fonctions utilisées :
prémisse, conclusion : énoncé
ACTION(énoncé) : renvoi l’ensemble des règles d’inférence dont
les prémisses apparient l’énoncé
RÉSULTAT(énoncé, règle) : renvoi la conclusion de la règle

38/86

Pryde MBOUH GHOGOMU Chapitre 1 : la logique propositionnelle


Introduction
Algorithme d’inférence par table de vérité
Analyses
Algorithme de démonstration directe de théorèmes
Algorithmes d’inférences
Algorithme de résolution par réfutation
Apport de l’IA

Fonction EST_DDT_DÉRIVABLE() 2/2

Debut
flag ← Faux
Faire
Si (α est dans KB) Alors
flag ← Vrai
Sinon
Si (il existe une règle d’inférence dans ACTION(KB) telle que sa
conclusion ne soit pas dans KB) Alors
conclusion ← RESULTAT(KB, règle)
Ajouter nouvelle conclusion dans KB
FinSi
FinSi
Tant que ((NON(flag)) ET (la conclusion est nouvelle dans KB))
retourner flag
Fin

39/86

Pryde MBOUH GHOGOMU Chapitre 1 : la logique propositionnelle


Introduction
Algorithme d’inférence par table de vérité
Analyses
Algorithme de démonstration directe de théorèmes
Algorithmes d’inférences
Algorithme de résolution par réfutation
Apport de l’IA

Application sur le monde de wumpus

No Choix règle d’inférence


R1 : ¬P1,1 R3 : B2,1 ⇔ (P1,1 ∨ P2,2 ∨ P3,1 )
R2 : B1,1 ⇔ (P1,2 ∨ P2,1 ) R4 : ¬B1,1 R5 : B2,1
R2 : B1,1 ⇔ (P1,2 ∨ P2,1 )
1 élimination des ⇔
R6 : (B1,1 ⇒ (P1,2 ∨ P2,1 )) ∧ ((P1,2 ∨ P2,1 ) ⇒ B1,1 )
R6 : (B1,1 ⇒ (P1,2 ∨ P2,1 )) ∧ ((P1,2 ∨ P2,1 ) ⇒ B1,1 )
2 élimination des ∧
R7 : ((P1,2 ∨ P2,1 ) ⇒ B1,1 )
R7 : ((P1,2 ∨ P2,1 ) ⇒ B1,1 )
3 contraposition
R8 : ¬B1,1 ⇒ ¬(P1,2 ∨ P2,1 )
R8 : ¬B1,1 ⇒ ¬(P1,2 ∨ P2,1 ), R4 : ¬B1,1
4 modus ponens
R9 : ¬(P1,2 ∨ P2,1 )
R9 : ¬(P1,2 ∨ P2,1 )
5 De Morgan
R10 : ¬P1,2 ∧ ¬P2,1
R10 : ¬P1,2 ∧ ¬P2,1
6 élimination des ∧
R11 : ¬P1,2

40/86

Pryde MBOUH GHOGOMU Chapitre 1 : la logique propositionnelle


Introduction
Algorithme d’inférence par table de vérité
Analyses
Algorithme de démonstration directe de théorèmes
Algorithmes d’inférences
Algorithme de résolution par réfutation
Apport de l’IA

Caractéristiques de l’algorithme d’inférence par


démonstration directe des théorèmes

Ici, la notion de théorème est une assertion dont on se demande


si elle est prouvable ou pas à partir des connaissances (acquises
ou démontrées) ;
Cet algorithme est valide parce qu’il implémente directement la
définition de la relation de conséquence logique ;
en appliquent cet algorithme, on peut déduire plusieurs
théorèmes d’une base de connaissance. On risque donc de faire
du travail inutile car certains théorèmes peuvent ne pas nous
intéresser ;
Un autre inconvénient de l’algorithme est son non-déterministe :
à chaque étape, le choix de la règle d’inférence doit être fait et
l’algorithme ne nous guide pas dans ce choix.

41/86

Pryde MBOUH GHOGOMU Chapitre 1 : la logique propositionnelle


Introduction
Algorithme d’inférence par table de vérité
Analyses
Algorithme de démonstration directe de théorèmes
Algorithmes d’inférences
Algorithme de résolution par réfutation
Apport de l’IA

Algorithme de résolution par réfutation


Booléen FONCTION EST_RESOLUTION_DÉRIVABLE (KB, α)
Objectif : Dire par résolution si KB |= α
Entrées :
KB, un ensemble (une conjonction) de FBF
α, la requête, une FBF
Debut
clauses ← ensemble de clauses de KB ∧ ¬α en CNF
flag ← Faux
Faire
Si Il existe une paire réductible dans clauses qui infère sur un
nouveau résolvant Alors //résolvant ∈/ clauses
Si le résolvant est la clause vide Alors flag ← Vrai
Sinon Ajouter ce résolvant dans clauses
// clauses ← clauses ∪ {résolvant}
Tant que ((NON(flag)) ET (il existe nouveau résolvant))
retourner flag
Fin
42/86

Pryde MBOUH GHOGOMU Chapitre 1 : la logique propositionnelle


Introduction
Algorithme d’inférence par table de vérité
Analyses
Algorithme de démonstration directe de théorèmes
Algorithmes d’inférences
Algorithme de résolution par réfutation
Apport de l’IA

Application sur le monde de wumpus 1/4

KB ∧ ¬α donne les énoncés suivants :


R1 : ¬P1,1
R2 : B1,1 ⇔ (P1,2 ∨ P2,1 )
R3 : B2,1 ⇔ (P1,1 ∨ P2,2 ∨ P3,1 )
R4 : ¬B1,1
R5 : B2,1
¬α : ¬¬P1,2
Conversion en CNF
1 Élimination des implications
R2 ≡ (B1,1 ⇒ (P1,2 ∨ P2,1 )) ∧ ((P1,2 ∨ P2,1 ) ⇒ B1,1 )
≡ (¬B1,1 ∨ (P1,2 ∨ P2,1 )) ∧ (¬(P1,2 ∨ P2,1 ) ∨ B1,1 )
R3 ≡ (B2,1 ⇒ (P1,1 ∨ P2,2 ∨ P3,1 )) ∧ ((P1,1 ∨ P2,2 ∨ P3,1 ) ⇒ B2,1 )
≡ (¬B2,1 ∨ (P1,1 ∨ P2,2 ∨ P3,1 )) ∧ (¬(P1,1 ∨ P2,2 ∨ P3,1 ) ∨ B2,1 )

43/86

Pryde MBOUH GHOGOMU Chapitre 1 : la logique propositionnelle


Introduction
Algorithme d’inférence par table de vérité
Analyses
Algorithme de démonstration directe de théorèmes
Algorithmes d’inférences
Algorithme de résolution par réfutation
Apport de l’IA

Application sur le monde de wumpus 2/4

2 Transfert des négations (De Morgan et Involution)


R2 ≡ (¬B1,1 ∨ (P1,2 ∨ P2,1 )) ∧ ((¬P1,2 ∧ ¬P2,1 ) ∨ B1,1 )
R3 ≡ (¬B2,1 ∨ (P1,1 ∨ P2,2 ∨ P3,1 )) ∧ ((¬P1,1 ∧ ¬P2,2 ∧ ¬P3,1 ) ∨ B2,1 )
¬α ≡ P1,2
3 Distributivité et simplifications
R1 ≡ ¬P1,1
R2 ≡ (¬B1,1 ∨ (P1,2 ∨ P2,1 )) ∧ (¬P1,2 ∨ B1,1 ) ∧ (¬P2,1 ∨ B1,1 )
R3 ≡ (¬B2,1 ∨ (P1,1 ∨ P2,2 ∨ P3,1 )) ∧ (¬P1,1 ∨ B2,1 ) ∧ (¬P2,2 ∨ B2,1 ) ∧
(¬P3,1 ∨ B2,1 )
R4 ≡ ¬B1,1
R5 ≡ B2,1
¬α ≡ P1,2

44/86

Pryde MBOUH GHOGOMU Chapitre 1 : la logique propositionnelle


Introduction
Algorithme d’inférence par table de vérité
Analyses
Algorithme de démonstration directe de théorèmes
Algorithmes d’inférences
Algorithme de résolution par réfutation
Apport de l’IA

Application sur le monde de wumpus 3/4

On obtient les clauses suivantes :


C1 : ¬P1,1
C2 : ¬B1,1 ∨ P1,2 ∨ P2,1
C3 : ¬P1,2 ∨ B1,1
C4 : ¬P2,1 ∨ B1,1
C5 : ¬B2,1 ∨ P1,1 ∨ P2,2 ∨ P3,1
C6 : ¬P1,1 ∨ B2,1
C7 : ¬P2,2 ∨ B2,1
C8 : ¬P3,1 ∨ B2,1
C9 : ¬B1,1
C10 : B2,1
C11 : P1,2

45/86

Pryde MBOUH GHOGOMU Chapitre 1 : la logique propositionnelle


Introduction
Algorithme d’inférence par table de vérité
Analyses
Algorithme de démonstration directe de théorèmes
Algorithmes d’inférences
Algorithme de résolution par réfutation
Apport de l’IA

Application sur le monde de wumpus 4/4

C3 : ¬P1,2 ∨ B1,1

B1,1 : C12
C11 : P1,2

C12 : B1,1


C9 : ¬B1,1

46/86

Pryde MBOUH GHOGOMU Chapitre 1 : la logique propositionnelle


Introduction
Algorithme d’inférence par table de vérité
Analyses
Algorithme de démonstration directe de théorèmes
Algorithmes d’inférences
Algorithme de résolution par réfutation
Apport de l’IA

Caractéristiques de l’algorithme de résolution par


réfutation

1 Cet algorithme est valide et complet car la clôture par résolution


est fini ; en effet, il existe un nombre fini de clauses distinctes
susceptible d’être construites à partir des n propositions qui
apparaissent dans S.
2 le nombre de résolvants à calculer peut être très élevé,
c’est-à-dire de l’ordre de 2n .
3 l’algorithme de résolution par réfutation est non-déterministe : à
chaque étape, le choix des pairs réductibles doit être fait et
l’algorithme ne nous guide pas dans ce choix.
⇒ Il doit donc être complété par une stratégie de choix explicite.

47/86

Pryde MBOUH GHOGOMU Chapitre 1 : la logique propositionnelle


Introduction
Algorithme d’inférence par table de vérité
Analyses
Algorithme de démonstration directe de théorèmes
Algorithmes d’inférences
Algorithme de résolution par réfutation
Apport de l’IA

Graphes de dérivation, graphe de recherche, graphes


de réfutation

On peut représenter l’ensemble des clauses qui peuvent être


produits sous forme d’un graphe appelé : graphe de dérivation
les sommets sont des clauses ;
les arcs lient les paires réductibles aux résolvants.
le graphe de réfutation est une partie du graphe de dérivation
aboutissant à la clause vide
⇒ A partir du graphe de dérivation, on peut extraire plusieurs
graphes de réfutation.
La partie du graphe de dérivation explicitée par une stratégie
précise pour découvrir un graphe de réfutation est appelée
graphe de recherche.

48/86

Pryde MBOUH GHOGOMU Chapitre 1 : la logique propositionnelle


Introduction
Algorithme d’inférence par table de vérité
Analyses
Algorithme de démonstration directe de théorèmes
Algorithmes d’inférences
Algorithme de résolution par réfutation
Apport de l’IA

Quelques stratégies de résolution

1. Stratégie de résolution par réfutation dites « en largeur »


A chaque clause, on associe une profondeur : 0 pour les clauses
initiales, 1 pour les résolvants de celles-ci, ... n pour les résolvants
de deux clauses dont la profondeur est n-1 pour la plus profonde.
On impose comme contrainte, de ne pas produire de clauses de
profondeur p tant qu’il est encore possible d’en produire de
profondeur p-1.
Lorsqu’un résolvant apparaît pour la première fois, on lui donne la
profondeur la plus basse à partir de ses clauses parentes.
En cas d’égalité de profondeur, l’ordre de résolution est indifférent.

49/86

Pryde MBOUH GHOGOMU Chapitre 1 : la logique propositionnelle


Introduction
Algorithme d’inférence par table de vérité
Analyses
Algorithme de démonstration directe de théorèmes
Algorithmes d’inférences
Algorithme de résolution par réfutation
Apport de l’IA

Quelques stratégies de résolution

2. Stratégie de résolution par réfutation dites « de l’ensemble


support »
Soit S un ensemble de clauses. Un ensemble support T est un
sous ensemble de S tel que l’ensemble des clauses restantes S\T
soit satisfiable. On peut par exemple définir T comme l’ensemble
de clauses :
ne contenant pas de littéraux négatifs.
ne contenant pas de littéraux positifs.
issues de la négation de la requête (en supposant que KB est
initialement consistant, si ce n’est pas le cas, le fait que la requête en
résulte est vide de sens).
La stratégie de résolution utilisant l’ensemble support T impose
qu’à chaque résolution, qu’on prenne une clause parente dans T et
qu’on ajoute le résolvant qui en découle à T. On restreint ainsi le
graphe de recherche qui peut être produit.

50/86

Pryde MBOUH GHOGOMU Chapitre 1 : la logique propositionnelle


Introduction
Algorithme d’inférence par table de vérité
Analyses
Algorithme de démonstration directe de théorèmes
Algorithmes d’inférences
Algorithme de résolution par réfutation
Apport de l’IA

Quelques stratégies de résolution

3. Stratégie de résolution par réfutation linéaire


Soit S un ensemble de clauses, dont une clause C0 , telle que
G\{C0 } forme un ensemble consistant de clauses, est appelée
clause centrale de départ. Tous les résolvants autorisés auront C0
pour ancêtre et seront appelés clauses centrales (CC).
La stratégie de résolution par réfutation linéaire n’autorise que les
résolutions entre une clause centrale CC (au départ, il n’y a que
C0 ) et une clause dite clause de bord (CB) qui doit être choisie :
soit parmi les clauses de S (dites clauses d’entrées).
soit parmi les résolvants (donc les clauses centrales) ancêtres de CC.
Habituellement, on prend pour C0 une des clauses issues de la
négation de la requête.

51/86

Pryde MBOUH GHOGOMU Chapitre 1 : la logique propositionnelle


Introduction
Algorithme d’inférence par table de vérité
Analyses
Algorithme de démonstration directe de théorèmes
Algorithmes d’inférences
Algorithme de résolution par réfutation
Apport de l’IA

Quelques stratégies de résolution

4. Autres Stratégies de résolution par réfutation


4.1 Stratégie qui consiste à prendre les deux premières paires
réductibles rencontrées ;
4.2 Stratégie qui consiste à effectuer les résolutions là où l’une des
clauses est une clause unitaire (le cas échéant, la clause contient
le plus petit nombre de littéraux) ;
4.3 Stratégie dirigée par les entrées qui consiste à prendre au moins
une clause d’entrée (qui provient de la KB ou de ¬α) dans les
paires réductibles choisies ;
4.4 Les associations de ces stratégies et bien d’autres ...

52/86

Pryde MBOUH GHOGOMU Chapitre 1 : la logique propositionnelle


Introduction
Algorithmes pour clauses de Horn
Analyses
Algorithme de Backtracking pour L0
Algorithmes d’inférences
Algorithme d’exploration locale
Apport de l’IA

Problèmes NP-complets
Un problème de satisfiabilité (problème SAT) est un problème qui
consiste à déterminer si une formule propositionnelle en CNF
admet ou non un modèle.
Le problème SAT est un problème NP-Complet
⇒ A plus de 2 littéraux par clause, il n’existe pas encore un
algorithme déterministe qui résout tous les problèmes de
satisfiabilité en un temps polynomial.
Le problème SAT est le prototype des problèmes NP
⇒ il a été prouvé que tout problème NP pouvait se ramener à
SAT en temps polynomial.
⇒ On a P ⊆ NP. Cependant il a été montré que :
P = NP ⇔ SAT ∈ P.(Cook, 1971).
Tous les algorithmes d’inférence vus ont dans le pire des cas
une complexité exponentielle qui est fonction du nombre de
variables (taille en entrée)
53/86

Pryde MBOUH GHOGOMU Chapitre 1 : la logique propositionnelle


Introduction
Algorithmes pour clauses de Horn
Analyses
Algorithme de Backtracking pour L0
Algorithmes d’inférences
Algorithme d’exploration locale
Apport de l’IA

Illustration

Si une instruction prend par exemple une microseconde pour


s’exécuter, le tableau suivant donne les temps de calcul selon la
taille en entrée n pour un taux de croissance : T (n) = 2n
PP n 10
PP
20 30 40 50
T(n) PP
P
Θ(2n ) 1 ms 1s 18 mn 13 jours 36 ans
Θ(3n ) 59 ms 58 mn 6 ans 3855 siècles 2.108 siècles
Si aujourd’hui on peut résoudre un problème de taille n en temps
raisonnable, quelle est la taille du problème que l’on peut résoudre si les
machines vont 100 fois ou 1000 fois plus vite ? Soit N la taille du
problème qu’on peut résoudre aujourd’hui :
T(n) aujourd’hui si 100 fois plus vite si 1000 fois plus vite
Θ(2n ) N N+7 N+10
Θ(3n ) N N+4 N+6

54/86

Pryde MBOUH GHOGOMU Chapitre 1 : la logique propositionnelle


Introduction
Algorithmes pour clauses de Horn
Analyses
Algorithme de Backtracking pour L0
Algorithmes d’inférences
Algorithme d’exploration locale
Apport de l’IA

L’apport de l’IA

L’IA se donne pour défis de maitriser la complexité. Elle s’y prend en :


gardant la taille des données petite ;
faisant les approximations (quand c’est possible) ;
utilisant des approches probabilistes : on évite le pire des cas ;
utilisant des heuristiques (probabiliste + approximation) ;
optimisant les algorithmes de recherches ;
Bref, en s’intéressant à l’existence ou non des algorithmes pour des
problèmes typiques issus d’une distribution prédéterminée.

55/86

Pryde MBOUH GHOGOMU Chapitre 1 : la logique propositionnelle


Introduction
Algorithmes pour clauses de Horn
Analyses
Algorithme de Backtracking pour L0
Algorithmes d’inférences
Algorithme d’exploration locale
Apport de l’IA

Clauses de Horn

Une clause définie est une disjonction de littéraux dont


exactement un est positif ;
⇒ elle peut être écrite comme une implication dont la prémisse
est une conjonction de littéraux positifs et dont la conclusion est
le seul littéral positif ; encore appelée Règle (de production).
Une clause but est une clause dépourvue de littéraux positif ;
encore appelée Fait.
Une clause de Horn est une disjonction de littéraux dont un au
plus est positif ;
⇒ Les clauses définies et les clauses buts sont des clauses de
Horn.
ClauseHorn → ClauseDéfinie | ClauseBut
ClauseDéfinie → (Proposition1 ∧ ... ∧ Propositionn ) ⇒ Proposition
ClauseBut → (Proposition1 ∧ ... ∧ Propositionm ) ⇒ Faux
Proposition → P | Q | R | W1,3 | Ok ...
56/86

Pryde MBOUH GHOGOMU Chapitre 1 : la logique propositionnelle


Introduction
Algorithmes pour clauses de Horn
Analyses
Algorithme de Backtracking pour L0
Algorithmes d’inférences
Algorithme d’exploration locale
Apport de l’IA

Clauses de Horn

Les clauses de Horn sont clôturées par résolution :


⇒ le résolvant de deux clauses de Horn est une clause de Horn.
L’inférence avec les clauses de Horn peut être réalisée avec des
algorithmes suivants :
l’algorithme de résolution par réfutation appliqué aux clauses de
Horn ;
chaînage avant
chaînage arrière
⇒ Ces 3 algorithmes s’exécutent en temps polynomial.
⇒ Dans le chaînage avant et le chaînage arrière, la base de
connaissance KB peut être scindée en :
Base de règles (encore appelé mémoire à long terme),
et Base de faits (encore appelé mémoire à court terme).

57/86

Pryde MBOUH GHOGOMU Chapitre 1 : la logique propositionnelle


Introduction
Algorithmes pour clauses de Horn
Analyses
Algorithme de Backtracking pour L0
Algorithmes d’inférences
Algorithme d’exploration locale
Apport de l’IA

Fonction EST_HORN_RÉSOLUTION() 1/3


Booléen FONCTION EST_HORN_RÉSOLUTION (KB, α)
Objectif : Dire par résolution si KB |= α
Entrées :
KB, un ensemble (une conjonction) de FBF
α, la requête, une FBF
Debut
S ← ensemble de clauses de Horn de KB ∧ ¬α en CNF
flag ← Faux
Faire
Choisir P et C tels que :
- P est une clause unitaire positive de S
- C est une clause de S contenant ¬P
Calculer la clause résolvante R
remplacer S par (S\{C}) ∪ {R}
Si le résolvant est la clause vide Alors flag ← Vrai
Tant que ((NON(flag)) ET (il existe nouveau résolvant))
retourner flag
Fin 58/86

Pryde MBOUH GHOGOMU Chapitre 1 : la logique propositionnelle


Introduction
Algorithmes pour clauses de Horn
Analyses
Algorithme de Backtracking pour L0
Algorithmes d’inférences
Algorithme d’exploration locale
Apport de l’IA

Fonction EST_HORN_RÉSOLUTION()2/3

Déroulons l’algorithme de résolution par réfutation appliqué aux


clauses de Horn sur l’ensemble S suivant :
S = {P ∨ ¬R ∨ ¬T , Q, R, T ∨ ¬Q, ¬P ∨ ¬Q ∨ ¬R}
S = {P ∨ ¬R ∨ ¬T , Q, R, T ∨ ¬Q, ¬P ∨ ¬Q ∨ ¬R}
⇒ S = {P ∨ ¬T , Q, R, T ∨ ¬Q, ¬P ∨ ¬Q ∨ ¬R}
⇒ S = {P ∨ ¬T , Q, R, T , ¬P ∨ ¬Q ∨ ¬R}
⇒ S = {P, Q, R, T , ¬P ∨ ¬Q ∨ ¬R}
⇒ S = {P, Q, R, T , ¬Q ∨ ¬R}
⇒ S = {P, Q, R, T , ¬R}
⇒ S = {P, Q, R, T , ∅}
La stratégie de résolution était de choisir sur les premières clauses
vérifiant les conditions.

59/86

Pryde MBOUH GHOGOMU Chapitre 1 : la logique propositionnelle


Introduction
Algorithmes pour clauses de Horn
Analyses
Algorithme de Backtracking pour L0
Algorithmes d’inférences
Algorithme d’exploration locale
Apport de l’IA

Fonction EST_HORN_RÉSOLUTION()3/3

A chaque itération de EST_HORN_RÉSOLUTION(), une


occurrence de littéral disparait, l’ensemble S décroit ;
l’algorithme de résolution par réfutation appliqué aux clauses de
Horn est en Θ(n2 ) (temps polynomial), n étant le nombre
d’occurrence de littéraux présents dans S.
Preuve : la recherche de 2 paires résolvantes se fait en un temps
qui est proportionnel à la longueur de la liste représentant
l’ensemble S (≤ n).
Cette recherche se fait en un nombre de fois borné par n
(puisque à chaque itération n diminue de 1). Donc au total, le
temps sera borné par une fonction de l’ordre de n2 .
Cet algorithme est complet sur les clauses de Horn.

60/86

Pryde MBOUH GHOGOMU Chapitre 1 : la logique propositionnelle


Introduction
Algorithmes pour clauses de Horn
Analyses
Algorithme de Backtracking pour L0
Algorithmes d’inférences
Algorithme d’exploration locale
Apport de l’IA

Fonction EST_CH_AV_DÉRIVABLE() 1/4

Booléen FONCTION EST_CH_AV_DÉRIVABLE (KB, q)


Objectif : Dire par chaînage avant si KB |= q
Entrées :
KB, un ensemble (une conjonction) de FBF
q, la requête, une proposition
Variables :
compteur : une table d’entier où compteur[R] vaut le nombre de
propositions dans les prémisses de la règle R
inféré : une table de booléen où inféré[p] vaut initialement Faux pour
toutes les propositions p
agenda : une liste de proposition, initialement ceux connus pour être
vraies dans KB

61/86

Pryde MBOUH GHOGOMU Chapitre 1 : la logique propositionnelle


Introduction
Algorithmes pour clauses de Horn
Analyses
Algorithme de Backtracking pour L0
Algorithmes d’inférences
Algorithme d’exploration locale
Apport de l’IA

Fonction EST_CH_AV_DÉRIVABLE() 2/4


Debut
flag ← Faux
Tant que (agenda n’est pas vide) ET (flag = Faux) faire
p ← ENLEVER(agenda)
Si (p=q) Alors flag ← Vrai FinSi
Si inféré[p]=Faux Alors
inféré[p] ← Vrai
Pour chaque règle R dans KB où p est dans R.Prémisse faire
décrémenter compteur[R]
FinPour
Si ∃ des Règles Ri / (compteur[Ri ]=0) ET (inféré[Ri .Conclusion] = Faux) Alors
Choisir une règle Rj selon un critère de choix bien défini
AJOUTER(Rj .Conclusion, agenda)
FinSi
FinSi
retourner flag
Fin
62/86

Pryde MBOUH GHOGOMU Chapitre 1 : la logique propositionnelle


Introduction
Algorithmes pour clauses de Horn
Analyses
Algorithme de Backtracking pour L0
Algorithmes d’inférences
Algorithme d’exploration locale
Apport de l’IA

Fonction EST_CH_AV_DÉRIVABLE() 3/4


Soit par exemple KB suivant :
R1 : P ⇒ Q
R2 : L ∧ M ⇒ P
R3 : B ∧ L ⇒ M
R4 : A ∧ P ⇒ L
R5 : A ∧ B ⇒ L
F1 : A
F2 : B
En admettant que la fonction de choix donne la règle qui comporte le
plus grand nombre de prémisses, on obtient la Base de faits qui
évolue comme suit :

63/86

Pryde MBOUH GHOGOMU Chapitre 1 : la logique propositionnelle


Introduction
Algorithmes pour clauses de Horn
Analyses
Algorithme de Backtracking pour L0
Algorithmes d’inférences
Algorithme d’exploration locale
Apport de l’IA

Fonction EST_CH_AV_DÉRIVABLE() 4/4

Le chainage avant est valide : chaque inférence est une


application du modus ponens ;
Le chainage avant est complet pour les clauses de Horn parce
que pour une requête q, on a :
si q est une conséquence logique de KB, alors q sera dérivé ;
sinon, l’algorithme atteindra un point fixe, point au delà duquel
aucune inférence n’est plus possible ; la table inféré contient Vrai
pour chaque proposition inférée et Faux pour tous les autres, q y
compris.
⇒ le chainage avant jusqu’à saturation.
Un inconvénient du chainage avant est de produire toutes les
inférences possible compte tenu des faits connus, même si ces
faits ne sont pas pertinents pour le but à atteindre.
⇒ Une façon d’éviter la production de conclusions non
pertinentes consiste à employer le chainage arrière.
64/86

Pryde MBOUH GHOGOMU Chapitre 1 : la logique propositionnelle


Introduction
Algorithmes pour clauses de Horn
Analyses
Algorithme de Backtracking pour L0
Algorithmes d’inférences
Algorithme d’exploration locale
Apport de l’IA

Fonction EST_CH_AR_DÉRIVABLE() 1/5


Booléen FONCTION EST_CH_AR_DÉRIVABLE (KB, q)
Objectif : Dire par chaînage arrière si KB |= q
Entrées : KB, un ensemble (une conjonction) de FBF
q, la requête, une proposition
Variables : utilisé, une table de booléen où utilisé[R] vaut initialement Faux
pour toutes les règles R
Debut
flag ← Faux
Si q ∈ KB Alors flag ← Vrai
Sinon
Tantque (flag = Faux) ET (∃ une règle R/q=R.condition et utilisé[R]=Faux) faire
utilisé[R] ← Vrai
flag ← EST_PROUVER(R)
FinTantque
FinSi
retourner flag
Fin
65/86

Pryde MBOUH GHOGOMU Chapitre 1 : la logique propositionnelle


Introduction
Algorithmes pour clauses de Horn
Analyses
Algorithme de Backtracking pour L0
Algorithmes d’inférences
Algorithme d’exploration locale
Apport de l’IA

Fonction EST_CH_AR_DÉRIVABLE() 2/5


Booléen FONCTION EST_PROUVER (KB, R)
Objectif : Dire si toutes les prémisses de la Règle sont KB-dérivables

Entrées : KB, un ensemble (une conjonction) de FBF


R, la règle, une clause définie
Variables : compteur, une table d’entier où compteur[R] vaut le nombre de
propositions dans les prémisses de la règle R
Debut
flag ← Vrai
Tant que (flag = Vrai) ET (compteur[R] 6= 0) faire
p ← R.Prémissecompteur [R]
Si (EST_CH_AR_DÉRIVABLE(KB, p) = Faux) Alors flag ← Faux
Sinon Décrémenter compteur[R]
FinSi
FinTantque
Si flag = VRAI Alors AJOUTER(R.conclusion, KB) FinSi
retourner flag
Fin 66/86

Pryde MBOUH GHOGOMU Chapitre 1 : la logique propositionnelle


Introduction
Algorithmes pour clauses de Horn
Analyses
Algorithme de Backtracking pour L0
Algorithmes d’inférences
Algorithme d’exploration locale
Apport de l’IA

Fonction EST_CH_AR_DÉRIVABLE() 3/5


On décrit un Arbre ET-OU par :
Noeud ET : représente la conjonction des prémisses d’une règle ;
⇒ toutes les propositions en partie prémisse P1 et P2 d’une
règle doivent être démontrées pour affirmer la partie conclusion
P3.
Noeud OU : représente l’ensemble des règles pouvant déduire
une même proposition ;
⇒ une proposition Q peut être démontrée de plusieurs façons si
elle se trouve en partie conclusion de plusieurs règles ;

67/86

Pryde MBOUH GHOGOMU Chapitre 1 : la logique propositionnelle


Introduction
Algorithmes pour clauses de Horn
Analyses
Algorithme de Backtracking pour L0
Algorithmes d’inférences
Algorithme d’exploration locale
Apport de l’IA

Fonction EST_CH_AR_DÉRIVABLE() 4/5


L’arbre ET-OU est construit : seules les règles qui participent de
près ou de loin à la démonstration de la proposition Q sont prises
en compte ;
Supposons l’exemple de KB précédent, on obtient l’arbre ET-OU
suivant en admettant que la fonction de choix donne la première
règle rencontrée :

68/86

Pryde MBOUH GHOGOMU Chapitre 1 : la logique propositionnelle


Introduction
Algorithmes pour clauses de Horn
Analyses
Algorithme de Backtracking pour L0
Algorithmes d’inférences
Algorithme d’exploration locale
Apport de l’IA

Fonction EST_CH_AR_DÉRIVABLE() 5/5

Alors que le chainage avant est une forme de raisonnement


piloté par les données, le chainage arrière est une forme de
raisonnement piloté par le but.
le chainage arrière est utile pour répondre à des questions telles
que :
Que vais-je faire maintenant ?
Où sont mes clés ?
le coût du chainage arrière est souvent inférieur à une fonction
linéaire de la taille de la base de connaissance parce que le
processus ne s’occupe que des faits pertinents.

69/86

Pryde MBOUH GHOGOMU Chapitre 1 : la logique propositionnelle


Introduction
Algorithmes pour clauses de Horn
Analyses
Algorithme de Backtracking pour L0
Algorithmes d’inférences
Algorithme d’exploration locale
Apport de l’IA

Un algorithme de Backtracking pour L0

Algorithme DPLL de David-Putnam-Logemann-Loveland.


L’algorithme DPLL permet de dire si un ensemble de clauses est
satisfaisable.
C’est une énumération récursive en profondeur d’abord de
toutes les interprétations possibles ;
DPLL prend comme entrée un énoncé en CNF
⇒ α |= β si et seulement si (α ∧ ¬β) est insatisfiable ;
DPLL incorpore 3 améliorations à l’algorithme d’inférence par
Table de Vérité EST_TV_DÉRIVABLE :
Élagage ;
Heuristique des symboles purs ;
Heuristique des clauses unitaires.

70/86

Pryde MBOUH GHOGOMU Chapitre 1 : la logique propositionnelle


Introduction
Algorithmes pour clauses de Horn
Analyses
Algorithme de Backtracking pour L0
Algorithmes d’inférences
Algorithme d’exploration locale
Apport de l’IA

Élagage

L’élagage évite d’examiner des sous-arbres dans un espace de


recherche.
On peut avoir la valeur de vérité des entités suivantes avant
même que l’interprétation ne soit complet :
Une clause est vraie si l’un quelconque des littéraux est vrai, même
si les autres n’ont pas encore de valeur ;
⇒ la clause (A ∨ B ∨ ¬C) est vraie si A est vrai, et ceci
indépendamment des valeurs de B et C.
Un énoncé est faux si l’une quelconque des clauses est fausse.
Soit S1 un ensemble de clauses, soit S2 un ensemble de clauses
obtenus en supprimant les clauses valides de S1 . S1 a un
modèle si et seulement si S2 en a un.

71/86

Pryde MBOUH GHOGOMU Chapitre 1 : la logique propositionnelle


Introduction
Algorithmes pour clauses de Horn
Analyses
Algorithme de Backtracking pour L0
Algorithmes d’inférences
Algorithme d’exploration locale
Apport de l’IA

Heuristique des symboles purs

Un symbole pur est un symbole (ou proposition) qui apparaît


toujours avec le même "signe" dans toutes les clauses ;
⇒ Dans les 3 clauses (A ∨ ¬B), (¬B ∨ ¬C) et (A ∨ C), les
propositions A et B sont des symboles purs et C est impur.
Dans la détermination de la pureté des propositions, on peut
ignorer les clauses dont on sait déjà qu’elles sont vraies dans
une interprétation partielle construite jusque-là ;
⇒ Soit l’exemple précédent, si une interprétation contient
B = Faux, alors la clause (¬B ∨ ¬C) est vraie, et C devient pur
car n’apparait que comme un littéral positif dans les clauses
restantes.
Afin de rendre les clauses vraies (ou afin de trouver les
modèles), on procède à des assignations où les symboles purs
sont assignés de sorte qu’ils rendent leurs littéraux vrais.

72/86

Pryde MBOUH GHOGOMU Chapitre 1 : la logique propositionnelle


Introduction
Algorithmes pour clauses de Horn
Analyses
Algorithme de Backtracking pour L0
Algorithmes d’inférences
Algorithme d’exploration locale
Apport de l’IA

Heuristique des clauses unitaires

Une clause unitaire est une clause ne contenant qu’un littéral ;


L’heuristique des clauses unitaires consiste à assigner en priorité
les clauses unitaires
⇒ on remplace alors la proposition concernée par la valeur assignée dans toutes
les autres clauses ;
⇒ l’une des conséquences est que toute tentative de prouver (par réfutation) un
littéral qui est déjà dans la base de connaissance réussira immédiatement.
L’assignation d’une clause unitaire peut créer d’autres clauses
unitaires : cette cascade d’assignations forcées s’appelle la
propagation unitaire.
⇒ Dans le contexte de DPLL, une clause unitaire est une clause dans laquelle
on a déjà assigné Faux à tous les littéraux sauf un.
⇒ Exemple : soit l’ensemble de clauses {A ∨ C, ¬C}
On va assigner à C la valeur Faux afin que la clause unitaire ¬C soit vraie. Mais
cette assignation fait de A ∨ C une clause unitaire, entraînant l’assignation de
Vrai à A.
73/86

Pryde MBOUH GHOGOMU Chapitre 1 : la logique propositionnelle


Introduction
Algorithmes pour clauses de Horn
Analyses
Algorithme de Backtracking pour L0
Algorithmes d’inférences
Algorithme d’exploration locale
Apport de l’IA

Fonction EST_DPLL_SATISFIABLE() 1/2

Booléen FONCTION EST_DPLL_SATISFIABLE (s)


Objectif : Dire par DPLL si s est satisfiable
entrée
s, énoncé sous forme CNF
Début
clauses ← l’ensemble des clauses de s
symboles ← une liste des propositions de s
retourner DPLL(clauses, symboles, [])
Fin

74/86

Pryde MBOUH GHOGOMU Chapitre 1 : la logique propositionnelle


Introduction
Algorithmes pour clauses de Horn
Analyses
Algorithme de Backtracking pour L0
Algorithmes d’inférences
Algorithme d’exploration locale
Apport de l’IA

fonction EST_DPLL_SATISFIABLE()2/2

Booléen FONCTION DPLL (clauses, symboles, modèle)


Début
Si chaque clause de clauses est vraie dans modèle Alors retourner Vrai
Si une clause de clauses est fausse dans modèle Alors retourner Faux
P,valeur ← TROUVER-SYMBOLE-PUR(symbole, clauses, modèle)
Si P est non nul Alors
retourner DPLL(clauses, symboles-P, modèle ∪ P=valeur)
P,valeur ← TROUVER-CLAUSE-UNITAIRE(symbole, clauses)
Si P est non nul Alors
DPLL(clauses, symboles-P, modèle ∪ P=valeur)
P ← PREMIER(symboles)
reste ← RESTE(symboles)
retourner DPLL(clauses, reste, modèle ∪ P=Vrai) OU
DPLL(clauses, reste, modèle ∪ P=Faux)
Fin

75/86

Pryde MBOUH GHOGOMU Chapitre 1 : la logique propositionnelle


Introduction
Algorithmes pour clauses de Horn
Analyses
Algorithme de Backtracking pour L0
Algorithmes d’inférences
Algorithme d’exploration locale
Apport de l’IA

Exemple1

Considérons la base de Connaissances précédente du monde de


Wumpus et vérifions si nous pouvons conclure qu’il n’y a pas de puits
en [1,2], soit α = ¬P1,2 .
la Base de Connaissances (KB) :
R1 : ¬P1,1
R2 : B1,1 ⇔ (P1,2 ∨ P2,1 )
R3 : B2,1 ⇔ (P1,1 ∨ P2,2 ∨ P3,1 )
R4 : ¬B1,1
R5 : B2,1
La requête : FBF à dériver
α : ¬P1,2
KB |= α si et seulement si (KB ∧ ¬β) est insatisfiable.

76/86

Pryde MBOUH GHOGOMU Chapitre 1 : la logique propositionnelle


Introduction
Algorithmes pour clauses de Horn
Analyses
Algorithme de Backtracking pour L0
Algorithmes d’inférences
Algorithme d’exploration locale
Apport de l’IA

Exemple1

On obtient les clauses suivantes :


C1 : ¬P1,1
C2 : ¬B1,1 ∨ P1,2 ∨ P2,1
C3 : ¬P1,2 ∨ B1,1
C4 : ¬P2,1 ∨ B1,1
C5 : ¬B2,1 ∨ P1,1 ∨ P2,2 ∨ P3,1
C6 : ¬P1,1 ∨ B2,1
C7 : ¬P2,2 ∨ B2,1
C8 : ¬P3,1 ∨ B2,1
C9 : ¬B1,1
C10 : B2,1
C11 : P1,2

77/86

Pryde MBOUH GHOGOMU Chapitre 1 : la logique propositionnelle


Introduction
Algorithmes pour clauses de Horn
Analyses
Algorithme de Backtracking pour L0
Algorithmes d’inférences
Algorithme d’exploration locale
Apport de l’IA

Exemple1
Illustrons l’algorithme DPLL en opérant les choix guidés par l’ordre
alphabétique des variables. On a les 3 appels de DPLL suivants :
1 On affecte la valeur Faux à B1,1 après le premier appel de la
fonction TROUVER-CLAUSE-UNITAIRE(). Ceci a les
conséquences suivantes :
les clauses C2 et C9 deviennent Vrai
les clauses C3 et C4 sont respectivement équivalentes à ¬P1,2 et
¬P2,1 , qui deviennent ainsi les clauses unitaires.
2 P2,1 est un symbole pur ; la clause C4 devient Vrai.
3 On affecte la valeur Faux à ¬P1,2 après le second appel de la
fonction TROUVER-CLAUSE-UNITAIRE(). Ceci a les
conséquences suivantes :
la clause C3 devient Vrai
la clause C12 devient Faux. ⇒ On sort donc de la fonction DPLL en
renvoyant Faux.
⇒ L’ensemble de clause est donc insatisfiable.
78/86

Pryde MBOUH GHOGOMU Chapitre 1 : la logique propositionnelle


Introduction
Algorithmes pour clauses de Horn
Analyses
Algorithme de Backtracking pour L0
Algorithmes d’inférences
Algorithme d’exploration locale
Apport de l’IA

Exemple2

Avec la base de Connaissances précédente et vérifions si nous


pouvons conclure qu’il n’y a pas de puits en [2,2], soit β = ¬P2,2 .
la Base de Connaissances (KB) :
R1 : ¬P1,1
R2 : B1,1 ⇔ (P1,2 ∨ P2,1 )
R3 : B2,1 ⇔ (P1,1 ∨ P2,2 ∨ P3,1 )
R4 : ¬B1,1
R5 : B2,1
La requête : FBF à dériver
β : ¬P2,2
KB |= β si et seulement si (KB ∧ ¬β) est insatisfiable.

79/86

Pryde MBOUH GHOGOMU Chapitre 1 : la logique propositionnelle


Introduction
Algorithmes pour clauses de Horn
Analyses
Algorithme de Backtracking pour L0
Algorithmes d’inférences
Algorithme d’exploration locale
Apport de l’IA

Exemple2

On obtient les clauses suivantes :


C1 : ¬P1,1
C2 : ¬B1,1 ∨ P1,2 ∨ P2,1
C3 : ¬P1,2 ∨ B1,1
C4 : ¬P2,1 ∨ B1,1
C5 : ¬B2,1 ∨ P1,1 ∨ P2,2 ∨ P3,1
C6 : ¬P1,1 ∨ B2,1
C7 : ¬P2,2 ∨ B2,1
C8 : ¬P3,1 ∨ B2,1
C9 : ¬B1,1
C10 : B2,1
C11 : P2,2

80/86

Pryde MBOUH GHOGOMU Chapitre 1 : la logique propositionnelle


Introduction
Algorithmes pour clauses de Horn
Analyses
Algorithme de Backtracking pour L0
Algorithmes d’inférences
Algorithme d’exploration locale
Apport de l’IA

Exemple2

Illustrons l’algorithme DPLL en choisissant les Variables par


ordre alphabétique et leur valeurs afin de rendre les clauses
Vraies. Cependant :
L’heuristique des degrés suggère de choisir la variable qui
apparait le plus fréquemment dans toutes les clauses restantes ;
Et l’algorithme essaye toujours la valeur Vrai avant la valeur Faux.
On obtient l’arbre d’appel suivant :
Nous avons trouvé un modèle : l’exemple 2 est dont satisfiable.
⇒ il peut y avoir un puits en [2,2].

81/86

Pryde MBOUH GHOGOMU Chapitre 1 : la logique propositionnelle


Introduction
Algorithmes pour clauses de Horn
Analyses
Algorithme de Backtracking pour L0
Algorithmes d’inférences
Algorithme d’exploration locale
Apport de l’IA

Exemple2

Appels 0 1 2 et 3 4
C1 : ¬P1,1
C2 : ¬B1,1 ∨ P1,2 ∨ P2,1 Vrai
C3 : ¬P1,2 ∨ B1,1 ¬P1,2 Vrai
C4 : ¬P2,1 ∨ B1,1 ¬P2,1 Vrai
C5 : ¬B2,1 ∨ P1,1 ∨ P2,2 ∨ P3,1 P1,1 ∨ P2,2 ∨ P3,1
C6 : ¬P1,1 ∨ B2,1 Vrai
C7 : ¬P2,2 ∨ B2,1 Vrai
C8 : ¬P3,1 ∨ B2,1 Vrai
C9 : ¬B1,1 Vrai
C10 : B2,1 Vrai
C11 : P2,2

82/86

Pryde MBOUH GHOGOMU Chapitre 1 : la logique propositionnelle


Introduction
Algorithmes pour clauses de Horn
Analyses
Algorithme de Backtracking pour L0
Algorithmes d’inférences
Algorithme d’exploration locale
Apport de l’IA

Exemple2

83/86

Pryde MBOUH GHOGOMU Chapitre 1 : la logique propositionnelle


Introduction
Algorithmes pour clauses de Horn
Analyses
Algorithme de Backtracking pour L0
Algorithmes d’inférences
Algorithme d’exploration locale
Apport de l’IA

Un algorithme d’exploration locale

L’algorithme WALKSAT est un algorithme d’exploration locale ;


Son principe : à partir d’une assignation aléatoire des variables,
il sélectionne une clause non satisfaite et un symbole à changer
sa valeur de manière à améliorer l’assignation.
Si l’algorithme WALKSAT retourne un modèle alors on peut
conclure que l’énoncé est satisfiable.
Cependant, si WALKSAT retourne echec, cela ne veut pas
forcement dire que l’énoncé n’est pas satisfiable ;
ça peut vouloir dire qu’on n’a pas opéré des bons choix aléatoires
(assignation complète de départ, clause non satisfaite par
l’assignation ou alors proposition de la clause à changer de
valeur) ;
le nombre d’itération max_flips était peut-être insuffisant ;
(Cependant on cours le risque d’avoir une boucle infini si max_flips
est infini - au cas où il n’existe réellement pas un modèle)
84/86

Pryde MBOUH GHOGOMU Chapitre 1 : la logique propositionnelle


Introduction
Algorithmes pour clauses de Horn
Analyses
Algorithme de Backtracking pour L0
Algorithmes d’inférences
Algorithme d’exploration locale
Apport de l’IA

L’algorithme WALKSAT
modèle ou echec FONCTION WALKSAT (s, p, max_flips)
Objectif : Dire par WALKSAT si un ensemble de clauses s est satisfiable
entrée
s : un ensemble des clauses ;
p : la probabilité de choisir un parcours aléatoire, généralement autour de 0,5 ;
max_flips : nombre de bascules autorisées avant de renoncer.
Debut
modèle ← une assignation aléatoire des propositions
Pour i←1 (+1) max_flips faire
Si modèle satisfait s alors retourner modèle
clause ← RAMDOM-CLAUSE-NON-SATISFAITE(modèle)
proposition ← CHOIX-SYMBOLE(clause, p)
modèle ← UPDATE-MODELE-BASCULER (proposition)
FinPour
retourner échec
Fin

85/86

Pryde MBOUH GHOGOMU Chapitre 1 : la logique propositionnelle


Introduction
Algorithmes pour clauses de Horn
Analyses
Algorithme de Backtracking pour L0
Algorithmes d’inférences
Algorithme d’exploration locale
Apport de l’IA

L’algorithme WALKSAT

La fonction CHOIX-SYMBOLE(clause, p) peut s’opérer de 2


façons en fonction de la probabilité p :
1 en minimisant le nombre de clauses non satisfaites par le nouvel
état ;
2 en faisant un "parcours aléatoire" qui choisit le symbole au hasard.
La complexité de l’algorithme WALKSAT(s, p, max_flips) est
max_flips * poly(n) où n est le nombre de propositions présents
dans s et poly un polynôme.

86/86

Pryde MBOUH GHOGOMU Chapitre 1 : la logique propositionnelle

Vous aimerez peut-être aussi