logique-proposition

Download Report

Transcript logique-proposition

Agents Logiques
Chap. 7
Plan
• Agents basés sur des connaissances
• Le monde de Wumpus
• Logique en général – modèle et entraînement
(entailment)
• Logique propositionnelle (booléenne)
• Equivalence, validité, satisfiabilité
• Règles d’inférence et preuve de théorème
– Chaînage avant
– Chaînage arrière
– Règle de Résolution
Base de connaissances
• Base de connaissances = ensemble de phrases dans un langage
formel
• Approche déclarative pour construire un agent (ou un système) :
– Tell: lui dire ce qu’il doit savoir
(Approche procédurale: dire comment faire – étape par étape)
• Ensuite, il peut se demander (Ask) ce qu’il a à faire – les réponses
doivent suivre la KB (conséquence logique)
• On peut voir un agent selon son niveau de connaissances
i.e., ce qu’ils savent, indépendamment de comment c’est implanté
• Ou au niveau d’implantation
– i.e., structures de données dans la KB et algorithmes pour les manipuler
An agent simple basé sur
connaissances
•
L’agent doit être capable de:
–
–
–
–
–
Représenter les états, les actions, etc. (un formalisme de représentation)
Intégrer de nouvelles perceptions
Mettre à jour la représentation du monde (modifier KB)
Déduire des propriétés cachées du monde (conséquences)
Déduire des actions appropriées (prendre des décisions – conséquences)
Description de PEAS dans le
monde de Wumpus
•
Mesure de performance
– Or+1000, mort -1000
– -1 par étape, -10 pour utiliser la flèche
•
•
•
Environnement
–
Objets: wumpus, agent, fosses, or
–
–
–
–
–
–
–
Carrés adjacents au wumpus sentent fort (smelly)
Carrés adjacents à une fosse sentent du brises (breezy)
On voit briller (Glitter) ssi l’or est dans le carré
Tirer (Shooting) tue le wumpus si on est face à
Tirer utilise la seule flèche disponible
Saisir (Grabbing) prend l’or si dans le même carré
Relâcher (Releasing) laisse l’or dans le carré
Senseurs: Puanteur (Stench), Brise (Breeze), Éclat
(Glitter), Coup (Bump), Cri (Scream)
Actuateurs: Left turn, Right turn, Forward, Grab, Release,
Shoot
Caractéristiques du monde de
Wumpus
• Observable complètement Non – seulement des
perceptions locales
• Déterministe Oui – Le résultat spécifié exactement
• Épisodique Non – séquentielle au niveau d’actions
• Statique Oui – Wumpus et fosses ne bougent pas
• Discret Oui
• Seul-agent? Oui – Wumpus est le seul agent qui agit
dans l’environnement
Explorer le monde de wumpus
Explorer le monde de wumpus
Explorer le monde de wumpus
Explorer le monde de wumpus
Explorer le monde de wumpus
Explorer le monde de wumpus
Explorer le monde de wumpus
Explorer le monde de wumpus
Logique en général
• Les logiques sont des langages formels pour représenter des
informations tel que des conclusions peuvent être tirées.
• La syntaxe définit les règles pour écrire des phrases du langage
• La sémantique définit le “sens” des phrases
– i.e., définit la vérité d’une phrase dans un monde
• E.g., le langage d’arithmétique
–
–
–
–
x+2 ≥ y est une phrase; x2+y > {} n’est pas une phrase
x+2 ≥ y est vrai ssi le nombrer x+2 n’est pas plus petit que y
x+2 ≥ y est vrai dans un monde où x = 7, y = 1
x+2 ≥ y est faux dans in monde où x = 0, y = 6
• E.g. le français
–
–
–
–
« Mets est une dans » n’est pas une phrase
« Je mange une pomme » est une phrase
« Je me promène » n’est pas vrai maintenant
« Je donne un cours » est vrai
Entraînement/Implication
(Entailment)
• Entraînement signifie qu’une chose suit sémantiquement
une autre (╞ ):
KB ╞ α
• La base de connaissances KB entraîne la phrase α ssi α
est vrai dans tous les mondes où KB est vrai
– E.g., la KB contenant“the Giants won” et “the Reds won”
entraîne “Either the Giants won or the Reds won”
– E.g., x+y = 4 entraîne 4 = x+y
– L’entraînement est une relation entre des phrases (i.e., une
relation syntaxique) qui est basée sur la sémantique
• On ne peut pas créer cette relation n’importe comment
• E.g. x+y = 4 ╞ x-y = 4 ne doit pas être créée.
Modèle
• Les logiciens pensent typiquement en terme de modèles, qui sont
des mondes structurés formellement, par rapport auxquels la vérité
est évaluée.
• On dit que m est un modèle d’une phrase α si α est vrai dans m
• M(α) est l’ensemble de modèles de α
•
• On note KB ╞ α ssi M(KB)  M(α)
•
– E.g. KB = Giants won and Red won
α = Giants won
Entraînement dans le monde de
wumpus
Situation après avoir rien détecté
dans [1,1], bougé à droite et
senti la brise à [2,1]
Considérer les modèles possibles
pour KB en supposant il y a
seulement des puits
3 choix booléens  8 modèles
possibles
Modèles Wumpus
(mondes possibles)
Modèles Wumpus
• KB = règles du monde wumpus + observations
Modèles Wumpus
• KB = règles du monde wumpus + observations
• α1 = "[1,2] est sécuritaire", KB ╞ α1, prouvé par model
checking
Modèles Wumpus
• KB = règles du monde wumpus + observations
Modèles Wumpus
• KB = règles du monde wumpus + observations
• α2 = "[2,2] est sécuritaire", KB ╞ α2
Inférence
• KB ├i α = la phrase α peut être dérivée de KB par une
procédure i
• Adéquation (Soundness): i est adéquate si quand KB ├i
α est vrai, KB╞ α l’est aussi.
• Complétude (Completeness): i est complète si quand
KB╞ α est vrai, KB ├i α l’est aussi
• À venir: nous allons définir une logique (logique du premier ordre)
qui est suffisamment expressive pour exprimer presque tout ce
qu’on veut exprimer, et pour laquelle il existe une procédure
d’inférence à la fois adéquate et complète.
• C’est-à-dire, la procédure peut répondre à toute question
dont la réponse suit logiquement KB
Logique propositionnelle:
Syntaxe
• La logique propositionnelle est la logique la plus simple
pour illustrer les idées de base
• Syntaxe = règle de grammaire
• Les symboles de proposition P1, P2 etc. sont des phrases
–
–
–
–
–
Si S est une phrase, S est une phrase (négation)
Si S1 et S2 sont des phrases, S1  S2 est une phrase (conjonction)
Si S1 et S2 sont des phrases, S1  S2 est une phrase (disjonction)
Si S1 et S2 sont des phrases, S1  S2 est une phrase (implication)
Si S1 et S2 sont des phrases, S1  S2 est une phrase
(biconditionnel)
Logique propositionnelle:
Sémantique
Chaque modèle spécifie la valeur vrai/faux pour un symbole de proposition
E.g. P1,2
false
P2,2
true
P3,1
false
Avec ces symboles, 8 modèles possibles peuvent être énumérés automatiquement
Règles pour évaluer la vérité par rapport à un modèle m:
S
is true iff S is false
S1  S2 is true iff S1 is true and S2 is true
S1  S2 is true iff S1is true or S2 is true
S1  S2 is true iff S1 is false or S2 is true
i.e.,
is false iff S1 is true and S2 is false
S1  S2 is true iff S1S2 is true and S2S1 is true
Processus récursif simple pour évaluer une phrase arbitrairement complexe, e.g.,
P1,2  (P2,2  P3,1) = true  (true  false) = true  true = true
Table de vérité pour les
connecteurs logiques
Pour ce système avec 2 symboles de proposition:
- 4 mondes possibles
Phrase dans le monde de
Wumpus
Supposons que Pi,j est vrai si il y a une fosse à [i, j].
Et Bi,j est vrai si il y a une brise à [i, j].
 P1,1
B1,1
B2,1
• "Pits cause breezes in adjacent squares” (une fosse
cause la brise dans les carrés adjacents)
B1,1 
B2,1 
(P1,2  P2,1)
(P1,1  P2,2  P3,1)
Table de vérité pour inférence
À vérifier
Vérifier pour chaque ligne où KB est vraie (modèle de KB) si la
conclusion est aussi vraie.
Inférence par énumération
• Profondeur d’abord pour énumérer tous les modèles
• Procédure adéquate et complète
• C’est une approche sémantique
• Pour n symboles, complexité en temps O(2n), en espace O(n)
Méthodes de preuve
• Méthodes de preuve divisées grosso modo en 2 catégories:
– Model checking (Vérification de modèles)
• Énumération en utilisant une table de vérité (toujours exponentiel en n)
• Retour en arrière (backtracking) amélioré, e.g., Davis--PutnamLogemann-Loveland (DPLL)
• Recherche heuristique dans l’espace de modèles (adéquate mais non
complet)
e.g., algorithme hill-climbing qui favorise le conflit minimal
– Application de règles d’inférence
• Génération légitime (sound) de phrases nouvelles à partir des
anciennes
• Preuve = une séquence d’applications de règles d’inférence
• Peut utiliser les règles d’inférence comme opérateur dans un algorithme
de recherche standard
• Typiquement, ceci demande à transformer une phrase en une forme
normale (pour simplifier la procédure)
Par ordinateur?
• L’ordinateur a beaucoup de problème pour manipuler la
sémantique
– Il peut faire la vérification dans une table de vérité
– Mais complexité exponentielle
• Une approche syntaxique
– Manipulations des expressions pour tenter d’arriver à la
conclusion
– Procédure d’inférence
• En maths?
(x +1)2 - x - 3 = 0
x 2 + 2x +1- x - 3 = 0
x2 + x - 2 = 0
-1± 1- 4 *1* (-2) -1± 3 ì 1
x=
=
=í
2
2
î -2
-b ± b2 - 4ac
x=
2a
Équivalences logiques
• 2 phrases sont logiquement équivalentes ssi elles sont
vraies dans les mêmes modèles : α ≡ ß ssi α╞ β et β╞ α
Comment vérifier l’équivalence?
• Vérifier dans la table de vérité si 2
expressions ont toujours les mêmes
valeurs de vérité
• A  B et (A)  B ?
• Utilité des équivalences
– Une expression peut être transformée en une
autre équivalente
Validité et satisfiabilité d’une
phrase
Une phrase est valide si elle est vrai dans tous les modèles,
e.g., True,
A A, A  A, (A  (A  B))  B
La validité est reliée à l’inférence via le Théorème de déduction:
KB ╞ α si et seulement si (KB  α) est valide
Une phrase est satisfiable si elle est vraie dans quelques modèles
e.g., A B,
C
Une phrase est insatisfiable si elle est vraie dans aucun modèle
e.g., AA
La satisfiabilité est reliée à l’inférence via la propriété suivante:
KB ╞ α si et seulement si (KB α) est insatisfiable
Méthodes de preuve
• Méthodes de preuve divisées grosso modo en 2 catégories:
– Model checking (Vérification de modèle)
• Énumération en utilisant une table de vérité (toujours exponentiel en n)
• Retour en arrière (backtracking) amélioré, e.g., Davis--PutnamLogemann-Loveland (DPLL)
• Recherche heuristique dans l’espace de modèles (adéquate mais non
complet)
e.g., algorithme hill-climbing qui favorise le conflit minimal
– Application de règles d’inférence
• Génération légitime (sound) de phrases nouvelles à partir des
anciennes
• Preuve = une séquence d’applications de règles d’inférence
• Peut utiliser les règles d’inférence comme opérateur dans un algorithme
de recherche standard
• Typiquement, ceci demande à transformer une phrase en une forme
normale (pour simplifier la procédure)
Règles d’inférence
• Forme générale d’une règle
a
b
– Signification: Si a est accepté, alors on
accepte aussi b
– Une procédure de preuve
• Ensemble de phrases KB0
• Pour une règle d’inférence, si a est dans KB0,
alors on ajoute dans KB0: KB1
• Si dans un KBn, on voit la conclusion C, alors C est
prouvée.
Règles: exemples
• Modus Ponens
a, a  b
b
• Modus Tolens
b, a  b
a
• Et-élimination
ab
a
Exemple de preuve
• KB0 = {A, A B, C, BC D}
a=D
KB1 avec MP: {A, A B, C, BC D, B}
KB2 avec MP: {A, A B, C, BC D, B, D}
Prouvé #
• Recherche
– KB0, KB1, KB2 comme états
– Une application de règle d’inférence = successeur
Résolution
Conjunctive Normal Form (CNF) (forme normale conjonctive)
conjonction de disjonctions de littéraux
= clauses
E.g., (A  B)  (B  C  D)
•
Règle de résolution (pour CNF):
li …  lk,
m1  …  mn
li  …  li-1  li+1  …  lk  m1  …  mj-1  mj+1 ...  mn
où li et mj sont des littéraux complémentaires
(i.e. li =  mj)
E.g., P1,3  P2,2,
P2,2
P1,3
•
Règle de résolution est adéquate et complète
pour la logique de proposition
Résolution
Une démonstration informelle de l’adéquation de la règle de
résolution:
l1  …  li-1  li  li+1  …  lk ≡ (li  …  li-1  li+1  …  lk)  li
m1  …  mj-1  mj  mj+1 ...  mn ≡ mj  (m1  …  mj-1  mj+1 ...  mn)
(li  …  li-1  li+1  …  lk)  li
mj  (m1  …  mj-1  mj+1 ...  mn)
(li  …  li-1  li+1  …  lk)  (m1  …  mj-1  mj+1 ...  mn)
≡ li  …  li-1  li+1  …  lk  m1  …  mj-1  mj+1 ...  mn
Résolution
Une démonstration informelle de l’adéquation de la règle de
résolution:
A  B ≡ (A)  B
B  C ≡ B  C
(A)  B
BC
(A)  C
=AC
Conversion en CNF
B1,1  (P1,2  P2,1)
1. Éliminer , remplacer α  β par (α  β)(β  α).
(B1,1  (P1,2  P2,1))  ((P1,2  P2,1)  B1,1)
2. Éliminer , remplacer α  β par α β.
(B1,1  P1,2  P2,1)  ((P1,2  P2,1)  B1,1)
3. Déplacer  vers l’intérieur en utilisant les règles de
Morgan et double-négation:
(B1,1  P1,2  P2,1)  ((P1,2  P2,1)  B1,1)
4. Appliquer la loi de distributivité ( sur ) et aplatir :
(B1,1  P1,2  P2,1)  (P1,2  B1,1)  (P2,1  B1,1)
Algorithme de Résolution
• Preuve par contradiction/réfutation, i.e., montrer que
KBα est insatisfiable (ou monter que ça mène à la
contradiction ( )
Exemple
• KB = (B1,1  (P1,2 P2,1))  B1,1 α = P1,2
Chaînage avant et arrière
• Forme Horn (plus restreinte)
KB = conjonction de Clauses Horn
– Clause Horn =
• Symbole de proposition; ou
• (conjonction de symboles)  symbole
– E.g., C  (B  A)  (C  D  B)
• Modus Ponens (Pour forme Horn): complet pour KB en forme Horn
α1  …  αn  β
α1, … ,αn,
β
• Peut être utilisé avec chaînage avant (forward chaining) ou
chaînage arrière (backward chaining).
• Ces algorithmes sont très naturels et demandent un temps linéair
•
Chaînage avant
• Idée: Activer une règle dont les prémisses sont
satisfaites dans KB,
– Ajouter son conclusion dans KB, jusqu’à la requête soit trouvée
dans KB
Algorithme
• Chaînage avant est adéquat et complet pour KB
en Horn
Exemple de chaînage avant
Exemple de chaînage avant
Exemple de chaînage avant
Exemple de chaînage avant
Exemple de chaînage avant
Exemple de chaînage avant
Exemple de chaînage avant
Exemple de chaînage avant
Preuve de complétude
•
Chaînage avant dérive toute phrase atomique
qui est entraînée par KB
1. Il atteint un point fixe où aucune phrase atomique
nouvelle est dérivée
2. Considérer cet état final comme un modèle m, qui
assigne true/false aux symboles
3. Chaque clause dans la KB originale est vraie dans m
a1  …  ak  b
4. Donc, m est un modèle de KB
5. Si KB╞ q, q est vraie dans chaque modèle de KB, y
compris m
6. Donc, q peut être dérivée.
Chaînage arrière
Idée: travailler vers arrière à partir de la requête q:
Pour prouver q par chaînage arrière,
Si q est déjà connue, ou
Prouver par chaînage arrière toutes les prémisses d’une règle
d’inférence qui conclut en q
Éviter des boucles : vérifier si un nouveau sous-but est
déjà dans le stack de buts (- comparer avec la
recherche dans un graphe)
Éviter la répétition : vérifier si le nouveau sous-but
1. est déjà prouvé vrai, ou
2. a déjà échoué dans sa preuve
Exemple de chaînage arrière
Exemple de chaînage arrière
Exemple de chaînage arrière
Exemple de chaînage arrière
Exemple de chaînage arrière
Exemple de chaînage arrière
Exemple de chaînage arrière
Exemple de chaînage arrière
Exemple de chaînage arrière
Exemple de chaînage arrière
Chaînage avant vs. arrière
• Ch. avant est une procédure data-driven, automatique,
inconsciente du problème à résoudre,
– e.g., reconnaissances d’objet, décisions routine
• Peut faire beaucoup de travail non pertinent au but
• Ch. arrière est une procédure goal-driven, appropriée
pour la résolution du problème,
– e.g., où sont mes clés? Comment puis-je entrer dans un
programme de doctorat?
• Complexité de Ch. arrière peut être beaucoup moins que
linéaire à la taille de KB
•
Méthodes de preuve
• Méthodes de preuve divisées grosso modo en 2 catégories:
– Model checking (Vérification de modèle)
• Énumération en utilisant une table de vérité (toujours exponentiel en n)
• Retour en arrière (backtracking) amélioré, e.g., Davis--PutnamLogemann-Loveland (DPLL)
• Recherche heuristique dans l’espace de modèles (adéquate mais non
complet)
e.g., algorithme hill-climbing qui favorise le conflit minimal
– Application de règles d’inférence
• Génération légitime (sound) de phrases nouvelles à partir des
anciennes
• Preuve = une séquence d’applications de règles d’inférence
• Peut utiliser les règles d’inférence comme opérateur dans un algorithme
de recherche standard
• Typiquement, ceci demande à transformer une phrase en une forme
normale (pour simplifier la procédure)
Inférence propositionnelle efficace
2 familles d’approches efficaces pour l’inférence
propositionnelle
• Algorithmes de recherche en arrière complète
– Algorithme DPLL (Davis, Putnam, Logemann, Loveland)
• Algorithmes de recherche locale incomplète
– Algorithme WalkSAT
Algorithme DPLL
Déterminer si une phrase de logique propositionnelle en entrée (en
CNF) est satisfiable.
Améliorations sur l’énumération de la table de vérité:
1. Terminaison hâtive
Une clause est vraie si chaque littéral est vrai.
Une phrase est fausse si une de ses clauses est fausse.
2. Heuristique de symbole pur
Symbole pur: toujours apparaître avec le même « signe » dans toutes les
clauses.
e.g., Dans les 3 clauses (A  B), (B  C), (C  A), A et B sont purs, C
n’est pas pur.
Faire un symbole pur vrai.
3. Heuristique de clause unité
Clause unité: seulement un littéral dans la clause
La seule littérale dans la clause doit être vraie.
Algorithme DPLL
Algorithme WalkSAT
• Algorithme incomplet, recherche locale
• Fonction d’évaluation : heuristique de conflit min pour
minimiser le nombre de clauses insatisfaites
• Compromis entre voracité et le caractère aléatoire
Algorithme WalkSAT
Problèmes de satisfiabilité difficiles
• Considérer des phrases 3-CNF aléatoires. e.g.,
(D  B  C)  (B  A  C)  (C  B  E) 
(E  D  B)  (B  E  C)
m = nb. de clauses
n = nb. de symbols
– Problème difficiles semblent apparaître autour de m/n
= 4.3 (point critique)
Problèmes de satisfiabilité difficiles
Problèmes de satisfiabilité difficiles
• Temps médiane pour 100 phrases 3-CNF
aléatoires satisfiables, n = 50
Agent basé sur inférence dans
le monde de wumpus
Un agent du monde wumpus utilisant la logique
propositionnelle :
- Exprimer les observations et les règles du jeu
P1,1
W1,1
Bx,y  (Px,y+1  Px,y-1  Px+1,y  Px-1,y)
Sx,y  (Wx,y+1  Wx,y-1  Wx+1,y  Wx-1,y)
W1,1  W1,2  …  W4,4
W1,1  W1,2
W1,1  W1,3
…
 64 symboles de proposition distincts, 155 phrases
Limitation de capacité d’expression de
logique propositionnelle
• KB contient des phrases "physiques" pour chaque carré
• Pour chaque moment t et chaque place [x,y],
t
Lx,y  FacingRight  Forward  Lx+1,y
t
t
t
• Prolifération rapide de clauses
• Intractable pour des applications réelles
• Vers la logique de prédicats (logique de premier ordre)
Sommaire
•
•
Les agents logiques appliquent des inférences sur une base de
connaissances pour dériver de nouvelles informations (conclusions) et
prendre des décisions
Concepts de base en logique:
–
–
–
–
–
syntaxe: structure formelle de phrases
sémantique: vérité de phrases par rapport aux modèles
entaînement: une phrase nécessairement vrai étant donné une autre
inférence: dériver des phrases à partir des autres phrases
Adéquation (soundness): des dérivations produisent seulement des phrases
impliquée (conséquences logiques)
– complétude: des dérivations peuvent produire toutes les phrases impliquées
(conséquences logiques)
•
•
•
•
Le monde de Wumpus demande la capacité de représenter des
informations partielles et négatives, raisonner pour des cas, etc.
La règle de résolution (et la procédure d’inférence correspondante) est
complète pour la logique de propositions
Chaînage avant et arrière demandent un temps linéaire, sont complets pour
des clauses Horn
Logique propositionnelle manque d’expressivité