logique de 1er ordre 03_2015

Transcription

logique de 1er ordre 03_2015
08/03/2015
Logique du premier ordre
(Logique de prédicats)
1
Logique propositionnelle:
pours et contres
 Logique propositionnelle est déclarative
 Logique propositionnelle permet d’exprimer des informations
partielles/disjonctives/négatives
 Logique propositionnelle est compositionnelle:
– Le sens du tout est composé des sens des parties
– Sens de B1,1  P1,2 est dérivé du sens de B1,1 et de P1,2
 Sens dans logique propositionnelle est hors-contexte
(context-independent)
– (différent de la langue naturelle où le sens est dépendant du contexte)
 Logique propositionnelle est limitée en capacité d’expression
– (pas comme en langue naturelle)
– E.g., « ne permet essentiellement que d’exprimer des opérations
booléennes sur des propositions”
2
1
08/03/2015
Logique du premier ordre
• Logique propositionnelle suppose que le
monde contient des faits,
• Logique du premier ordre suppose que le
monde contient:
– Objets (D): personnes, maisons, nombres,
couleurs, match de baseball, guerre, …
– Relations (Dn{vrai, faux}): rouge, rond,
nombre-premier, est frère de, est plus grand
que, est partie de, …
– Fonctions (DnD): père de, meilleur ami de, un
de plus que, …
3
Fonction vs. prédicat
Jean
Marie
Philippe
•Fonction: père_de(Philippe) = Jean
•Prédicat: est_père_de(Jean, Philippe) = vrai
•Les noms importent peu. C’est la définition qui est
importante.
4
2
08/03/2015
Syntaxe de LPO: éléments de
base
•
•
•
•
•
•
•
Constantes Ali, 2, ISSAT,...
Prédicats
Frère, >,...
Fonctions
Sqrt, EstEtudiantDe,...
Variables
x, y, a, b,... (minuscule)
Connecteurs , , , , 
Égalité
=
Quantificateurs , 
5
Phrases atomiques
Phrase atomique = prédicat (terme1,...,termen)
| terme1 = terme2
Terme
=
prédicat
fonction (terme1,...,termen)
| constante
| variable
phrase
• E.g., Frère(Ali,Bilel)
Age(Ali)
> Age(Bilel)
fonction
constante
terme
6
3
08/03/2015
Phrases complexes
• Les phrases complexes sont composées des
phrases atomiques avec des connecteurs
S, S1  S2, S1  S2, S1  S2, S1  S2,
E.g.
Frère(Ali,Bilel) Frère(Bilel,Ali)
>(1,2)  ≤ (1,2)
>(1,2)   >(1,2)
7
Valeur de vérité en LPO
• Les phrases sont vraies par rapport à un modèle et à
une interprétation
• Un modèle contient des objets (éléments du domaine) et
des relations entre eux
• Une interprétation spécifie les référés pour
Symboles de constante
→
objets (la personne John)
symboles de prédicat
→
relations (relation de père-fils)
symboles de fonction
→
relation fonctionnelle (père-de)
• Une phrase atomique prédicat(terme1,...,termen) est
vraie ssi les objets référés par terme1,...,termen
sont en relation référée par prédicat
8
4
08/03/2015
Quantificateur Universel
• <variables> <phrase>
Everyone at ISSAT is smart (Tout le monde dans ISSAT
est intelligent):
x At(x,ISSAT)  Informaticien(x)
• x P est vraie dans un modèle m ssi P est vraie avec
chaque objet qu’on peut assigner à x dans son domaine
• Grosso modo: équivalent à la conjonction des
instantiations de P


 ...
At(Ali,ISSAT)  Informaticien(Ali)
At(Bilel,ISSAT)  Informaticien(Bilel)
At(Fatma,ISSAT)  Informaticien(Fatma)
9
Une erreur commune à éviter
• typiquement,  est le connecteur principal avec 
• Erreur commune: utiliser  comme connecteur
principal avec :
– Correct
Tout le monde dans ISSAT est intelligent):
x At(x,ISSAT)  Informaticien(x)
– Incorrect
x At(x,ISSAT)  Informaticien (x)
signifie “chaque personne est dans l’ISSAT et chque
personne est Informaticien »
10
5
08/03/2015
Illustration
Personne
Informaticien
ISSAT
x At(x,ISSAT)  Informaticien(x)
(Sous-ensemble)
x At(x,ISSAT)  Informaticien(x)
11
Quantification existentielle
• <variables> <phrase>
• Someone at ISSAT is smart (Quelqu’un à ISSAT est
intelligent):
– x At(x,ISSAT)  Informaticien (x)
• x P est vraie dans un modèle m ssi P est vraie avec x
associée à un certain objet possible dans le modèle
• Grosso modo: équivalent à la disjonction d’instanciations
de P
At(Bilel,ISSAT)  Informaticient(Bilel)
 At(Salah,ISSAT)  Informaticien (Salah)
 At(ALI,ISSAT)  Informaticien (ALI)
 ...
12
6
08/03/2015
Une autre erreur commune à
éviter
• Typiquement,  est généralement utilisé avec 
• Erreur commune: utiliser  comme le
connecteur principal avec :
– Correct
x At(x,ISSAT)  Informaticien (x)
– Incorrect
x At(x,ISSAT)  Informaticien (x)
est vraie s’il existe quelqu’un qui n’est pas
Informaticien !
13
Illustration
Personne
Informaticien
x
x
ISSAT
x At(x,ISSAT)  Informaticien (x)
(intersection non vide)
x At(x,ISSAT)  Informaticien (x)
14
7
08/03/2015
Quelques exemples
•
Toute personne est mortel. Socrate est une personne.
x Personne(x)  Mortel(x)
Personne(Socrate)
•
Socrate est mortel.
•
IA est un cours à ISSAT.
Mortel(Socrate)
Cours(IA)  Donné_à(IA, ISSAT)
ou Cours(IA,ISSAT)
•
Tous ceux qui suivent le cours IA sont des étudiants à ISSAT.
–Ceux qui suivent le cours IA: x Suivre(x,IA)  Cours(IA)
–Étudiants à ISSAT: Étudiant(x,ISSAT)
–Toute la phrase: x Suivre(x,IA)  Cours(IA)  Étudiant(x,ISSAT)
•
Certains dans le cours IA sont des étudiants à ISSAT.
•
Propriété: Jean est un étudiant.
x Suivre(x,IA)  Cours(IA)  Étudiant(x,ISSAT)
–Étudiant(Jean)
–Ou x Étudiant(Jean, x)
•
Négation: Aucun est irremplaçable.
–x Personne(x)  Remplaçable(x)
–x Personne(x)  Remplaçable(x) ?
15
Propriétés des quantificateurs
• x y est équivalent à y x
• x y est équivalent à y x
• x y n’est pas équivalent às y x
• x y Aimer(x,y)
– “il existe une personne qui aime toutes lespersonnes du monde”
• y x Aimer(x,y)
– “toute personne dans le monde est aimée par au moins une personne”
• Dualité de quantificateurs: chacun peut être exprimé en utilisant
l’autre: x P = x P, x P = x P
– x Adore(x,IceCream)
– x Adore(x,Broccoli)
x Adore(x,IceCream)
x Adore(x,Broccoli)
16
8
08/03/2015
Exercice
• Voici des paquets de groupe de phrases à
vous de vous exercer puis vérifier vos
traductions :
a) Quiconque sait lire est instruit
b) Les dauphins ne sont pas instruits
c) Certains dauphins sont intelligents
d) Certains êtres intelligents ne savent pas lire
e) Flipper est un dauphin
f) Le frère de Flipper est intelligent
17
a) Tous les chiens à poils ras sont frileux
b) Un chien est frileux seulement s'il est à poils ras
c) Aucun chien à poils ras n'est frileux
d) Certains chiens à poils ras sont frileux
18
9
08/03/2015
FBF
• Le langage est constitué de l'ensemble des
Formules Bien Formées (appelées aussi : FBFs)
ou expressions bien formées défini comme suit :
– atomes sont des fbfs
– si F et G sont des fbfs alors (¬G), (F ∧ G), (F ∨ G),
(F → G) et (F ↔ G) sont des fbfs
– si G est une fbf et X une variable alors (∃X)G et
(∀X)G sont des fbfs.
– toutes les fbfs sont obtenues par application des 3
règles ci-dessus.
19
• Soient A(X,Y), B(X), C(X,Y), D(X) des fbfs.
Essayez de déterminer si les formules
suivantes appartiennent à la logique des
prédicats :
a) (∃X ∀Y A(X, Y) → ∀X ¬D(X))
b) (∀X ∃Y (A(X,Y) ∧ D(B(X)))
20
10
08/03/2015
Substitution
• Remplacer une variable par un terme (constante,
variable, ou fonction) x/Terme
–
–
–
{x/Hillary, y/Bill}
{x/y, z/Bill}
{x/Mère_de(z), y/Père_de(z)}
• Contraintes
–
x ne doit pas apparaître dans Terme
•
–
{x/Mère_de(x)} X
Une variable ne peut pas être substituée 2 fois
•
{x/Jean, x/Philippe} X
• Sert à instancier une expression générale (contenant des
variables)
21
Application d’une substitution
• x/Terme: Remplacer toutes occurrences de la variable
par le Terme
e.g. FilsDe(x,z) {x/y, z/Bill} : FilsDe(y,Bill)
FilsDe(x,y) {x/y, z/Bill} : FilsDe(y,y)
(FilsDe(x,z)  President(z,c)  Pays(c) ) {x/y, z/Bill}:
FilsDe(y,Bill)  President(Bill,c)  Pays(c)
• Composition des substitutions
σ1 ● σ2: appliquer σ1 ensuite σ2
= appliquer σ2 sur σ1 et faire l’union avec σ2
e.g. {y/z, x/Bill} ● {z/Hillary, v/Chelsea}
= {y/Hillary, x/Bill}  {z/Hillary, v/Chelsea}
= {y/Hillary, x/Bill, z/Hillary, v/Chelsea}
22
11
08/03/2015
Pourquoi substitution?
• Tout homme est mortel.
• Socrate est un homme.
• Donc, Socrate est mortel.
x Homme(x)  Mortel(x)
Homme(Socrate)
Mortel(Socrate)
σ={x/Socrate}
Homme(Socrate)  Mortel(Socrate)
Homme(Socrate)
Mortel(Socrate)
23
Calcul
des
prédicats
Ecriture
sous
forme clausale
• Algorithme d’écriture d’une formule sous forme prénexe :
b. Accoler tous les connecteurs ¬ aux atomes:
- Utiliser les formules: ¬(¬A) ≡ A
Lois de Morgan: ¬(A∧B) ≡ ¬A∨¬B
¬(A∨B) ≡ ¬A∧¬B
¬ (∀X) G(X) ≡ (∃X) ¬ G(X)
¬ (∃X) G(X) ≡ (∀X) ¬ G(X)
2014/2015
Yaroub Elloumi
24
12
08/03/2015
Calcul
des
prédicats
Ecriture
sous
forme clausale
e. Faire passer les quantificateurs devant
- utiliser les équivalences qui suivent, où Q représente une
formule qui n’invoque pas d’occurrences libres de la variable x
 (∀X) G(X) ∨ H ≡ (∀X) (G(X) ∨ H)
 (∀X) G(X) ∧ H ≡ (∀X) (G(X) ∧ H)
 (∃X) G(X) ∨ H ≡ (∃X) (G(X) ∨ H)
 (∃X) G(X) ∧ H ≡ (∃X) (G(X) ∧ H)
 H ∨ (∀X) G(X) ≡ (∀X) (H∨ G(X) )
 H ∧ (∀X) G(X) ≡ (∀X) (H∧ G(X) )
 H ∨ (∃X) G(X) ≡ (∃X) (H∨ G(X) )

2014/2015
H ∧ (∃X) G(X) ≡ (∃X)Yaroub
(H∧Elloumi
G(X) )
25
Exercice
• soit à traduire le groupes de phrases
suivantes :
a) Marcus était un homme
b) Marcus était un pompéien
c) Tous les pompéiens étaient des romains
d) César était souverain
e) Tous les romains étaient soient fidèles à César, soient
le haïssaient
f) Chacun est fidèle à quelqu'un
g) Les gens n'essayent d'assassiner que les souverains
auxquels ils ne sont pas fidèles
26
h) Marcus a essayé d'assassiner César
13
08/03/2015
Ingénierie de connaissances
dans LPO
1. Identifier la tâche
2. Assembler les connaissances pertinentes
3. Décider sur le vocabulaire de prédicats, de
fonctions et de constantes
4. Encoder les connaissances générales dans le
domaine
5. Encoder une description de l’instance
spécifique du problème
6. Poser des questions à la procédure d’inférence
et obtenir des réponses
7. Debugger la base de connaissances
27
14