x anime
Transcription
x anime
First-Order Logic Chapter 8 Outline – Why FOL? – Syntax and semantics of FOL – Knowledge engineering in FOL – Application with Jess Pros and cons of propositional logic • Exemple 1 – – – • Exemple 2 – – – • Si le train arrive en retard et il n’y a pas de taxis à la gare alors l’invité arrive en retard. L’invité n’est pas en retard. Le train est arrivé en retard. Exemple 3 – – • Si il pleut et l’invité a oublié son parapluie alors l’invité est trempé L’invité n’est pas trempé Il pleut Si je suis un humain alors je suis mortel Socrate est un humain Exemple 4 – – – – J’espère voir un lion pendant ce voyage J’ai vu ce matin un lion blessé J’ai envie d’aller au zoo de Vincennes pour y voir un lion Le roi des animaux ☺ Propositional logic is declarative ? ☺ Propositional logic allows partial/disjunctive/negated information ? ☺ Propositional logic is compositional ? ☺ Meaning in propositional logic is context-independent ? Propositional logic has very limited expressive power ? Illustration • Ecrire les connaissances d’un agent gestionnaire de feux de signalisation à un carrefour. 1. Définir les faits nécessaires en logique des propositions, 2. Ecrire en logique des propositions les expressions correspondants aux situations suivantes a. b. c. Il n’y a qu’un feu vert à la fois Un piéton est prioritaire L’axe le plus dense est favorisé 3. Que permettrait de modéliser la logique des prédicats ? 4. Répondre aux questions précédentes en logique des prédicats First-order logic • Whereas propositional logic assumes the world contains facts, • first-order logic (like natural language) assumes the world contains – Objects: people, houses, numbers, colors, baseball games, wars, … – Relations: red, round, prime, brother of, bigger than, part of, comes between, … – Functions: father of, best friend, one more than, plus, … Syntax of FOL: Basic elements • • • • • • • Constants Predicates Functions Variables Connectives Equality Quantifiers KingJohn, 2, NUS,... Brother, >,... Sqrt, LeftLegOf,... x, y, a, b,... ¬, ⇒, ∧, ∨, ⇔ = ∀, ∃ Atomic sentences • Atomic sentences – predicate (term1,...,termn) or term1 = term2 • Term = function (term1,...,termn) or constant or variable • Complex sentences are made from atomic sentences using connectives – ¬S, S1 ∧ S2, S1 ∨ S2, S1 ⇒ S2, S1 ⇔ S2, Truth in first-order logic • Sentences are true with respect to a model and an interpretation • Model contains objects (domain elements) and relations among them • • Interpretation specifies referents for constant symbols → objects predicate symbols → relations function symbols → functional relations • An atomic sentence predicate(term1,...,termn) is true iff the objects referred to by term1,...,termn are in the relation referred to by predicate Universal quantification • ∀<variables> <sentence> Everyone at NUS is smart: ∀x At(x,NUS) ⇒ Smart(x) • ∀x P is true in a model m iff P is true with x being each possible object in the model • Roughly speaking, equivalent to the conjunction of instantiations of P ∧ ∧ ∧ ... At(KingJohn,NUS) ⇒ Smart(KingJohn) At(Richard,NUS) ⇒ Smart(Richard) At(NUS,NUS) ⇒ Smart(NUS) Existential quantification • ∃<variables> <sentence> • Someone at NUS is smart: • ∃x At(x,NUS) ∧ Smart(x)$ • ∃x P is true in a model m iff P is true with x being some possible object in the model • Roughly speaking, equivalent to the disjunction of instantiations of P At(KingJohn,NUS) ∧ Smart(KingJohn) ∨ At(Richard,NUS) ∧ Smart(Richard) ∨ At(NUS,NUS) ∧ Smart(NUS) ∨ ... Properties of quantifiers • ∀x ∀y is the same as ∀y ∀x • ∃x ∃y is the same as ∃y ∃x • ∃x ∀y is not the same as ∀y ∃x • ∃x ∀y Loves(x,y) – “There is a person who loves everyone in the world” • ∀y ∃x Loves(x,y) – “Everyone in the world is loved by at least one person” • Quantifier duality: each can be expressed using the other • ∀x Likes(x,IceCream) ¬∃x ¬Likes(x,IceCream) • ∃x Likes(x,Broccoli) ¬∀x ¬Likes(x,Broccoli) Illustration • • • • • • • • Tous les hommes sont méchants Seulement les hommes sont méchants Il existe des hommes méchants Il existe un homme qui n’est pas méchant Il n’existe pas d’homme méchant. Il existe un homme qui aime toutes les femmes Chaque chat connaît un chien qui le déteste Tous les poissons, sauf les requins, sont gentils avec les enfants. Illustration ∀x (E(x) (∃y (C(y) ∧ ∃z (M(z) ∧ T (x, y, z)))) • Avec E(x): x est étudiant, C(y): y est un cours, M(z): z est un mauvais enseignant, T (x, y, z): x suit le cours y enseigné par z. ∀x ∀y ∀z ∀w(T (x) ∧C(y, x) ∧C(w, x) ∧C(z, x) ∧D(z, y) ∧D(y,w)) G(f(g(y), g(z)), g(w)) • Avec T (x) : x est un triangle, C(x, y) : y est le côté de x, D(x, y) : x est différent de y, G(x, y) : x est plus grand que y, f(x, y) : somme de x et de y, g(x) : longueur de x. Interacting with FOL KBs • Principe de résolution – Objectif : Montrer automatiquement qu’une formule close est un théorème. – Mise en œuvre • Mise sous forme Prénexe : mise en tête des quantificateurs, • Skolémisation : Suppression des quantificateurs • Mise sous forme normale conjonctive • Résolution Principe de résolution mise sous forme prénexe • Théorème – Pour tout ϕ ∈ L1 , il existe ϕp sous forme prénexe telle que ϕ |=| ϕp • Méthode – – – – Transformer les et <--> en ∧, ∨, Traiter la négation, Rebatiser si nécessaires les variables liées, Déplacer les quantificateurs à droite, • Exemple ∀x(A(x)∧∃x∀yB(x,y)) ∀x((∀yP(y))→Q(x)) ∀x(P(x)→(∀yQ(y))) Principe de résolution Skolémisation • Une variable universelle reste une variable ∀x P(x) => P(x) • Une variable existentielle devient une constante : ∃x P(x) => P(a) a est une nouvelle constante • Une variable existentielle devient une fonction des variables existentielles qui précèdent (l’arité dépends du nombre de variables) ∀x,y ∃t P(x,y,t) => P(x,y,f(x,y)) Exemple ∃X ∃Y ∀Z ∀T ∃V P(X,Y,Z,T,V) ∃x∀yP(x,y) ∀x∃y A(x,y) ∀x∀y∃z∃tP(x,y,z,t) Principe de résolution Forme normale conjonctive • Définition – ϕ∈ L0 est sous forme normale conjonctive (ou FNC) ssi ϕ = (C1 ∧. . . ∧ Cn), • avec Ci = (Li1∨. . . ∨ Lip) et Lij = a, a ∈ P ou Lij = = ¬a, a ∈ P. • Les Lij sont appelés des littéraux. • Convention – Une FNC peut s’écrire sous cette forme • • • • Une ligne est appelée clause L11 L12 L13 L21 L22 L23 ............. Ln1 . . . . . . Lnp avec Lij = atome ou ¬ atome Principe de résolution Résolution • Soit ϕ ∈ L1 , elle peut être décrite par un ensemble de clauses C: • Si C ∧ ( B ∨ C ) est contradictoire, alors C est contradictoire. • Définition Deux formules atomiques sont unifiables s’il existe une substitution des variables par des termes qui rend les deux formules identiques. On note [x | y] la substitution de x par y Principe de résolution Résolution • Suppression de clauses – Clauses isolées, C1 = {¬ P (x, a) , Q (x, y) }, C2 = { ¬ Q (x, y) , R (y, b) }, C3 = { ¬R (a, y) } – Clauses contenant 2 littéraux identiques non unifiables mais de signes opposés C1 = {¬ P (x , a) , P (x , y) }, C2 = { P (u , a) }, C3 = { ¬ P (u , b) } (contre exemple) – Clauses généralisées C = { P (x , y) , Q (y) }, C’ = { P (a , v) , Q(v) , R(u , v) } Principe de résolution Stratégies • Objectif : limiter le nombre de résolvantes engendrables à partir de l’ensemble des clauses de départ. – Stratégie complète : permet d'obtenir la clause vide si l'énoncé de départ est contradictoire (malgré la suppression de clauses intermédiaires apportée par la stratégie). – Stratégie incomplète dans le cas contraire (la restriction dans le choix des clauses a pour conséquence l'impossibilité d'obtenir la clause vide). • Stratégie – unitaire: (incomplète en général) une des anciennes clauses contient toujours un seul littéral. Cette stratégie est complète lorsque l’énoncé de départ ne contient que des clauses de Horn – du donné: (incomplète en général) une des anciennes clauses est toujours une des clauses de départ. Elle devient complète dans le cas des clauses de Horn. – du support: (complète) une des anciennes clauses provient de la négation de la conclusion ou en est issue. – linéaire: (complète) une des anciennes clauses est la résolvante précédente, l'autre est soit une de ses ancêtres, soit une clause de départ. Knowledge engineering in FOL 1. Identify the task 2. Assemble the relevant knowledge 3. Decide on a vocabulary of predicates, functions, and constants 4. Encode general knowledge about the domain 5. Encode a description of the specific problem instance 6. Pose queries to the inference procedure and get answers 7. Debug the knowledge base Illustration • Dans une pièce on a un singe, une chaise et des bananes accrochées au plafond : le singe peut il attraper les bananes ? 1. Identify the task 2. Assemble the relevant knowledge 3. Decide on a vocabulary of predicates, functions, and constants • Connaissances gérant le "monde" à coder : attraper : Pour atteindre un objet proche il faut être habile transitivité : Si on est sur un grand objet qui est sous un autre objet => on est proche de ce dernier placer sous : Déplacer un objet vers un autre loin du sol c'est le placer dessous monter : Si X peut bouger et qu'il est à côté d'un objet => il peut monter dessus déplacer : Si X est animé et proche de l'objet Y qui est sur le sol => X peut déplacer Y vers tout objet Z aller vers : X animé peut aller vers un objet situé sur le sol s'approcher : Si on va vers un objet => on est proche de celui-ci descendre : X animé, placé sur Y, peut se placer à côté de Y • habile(X) : X est habile • anime(X) : X est animé • sur(X,Y) : X est sur Y • sous(X,Y) : X est sous Y • aller_vers(X,Y) : X va vers Y • deplacer(X,Y,Z) : X peut déplacer Y vers Z • grand(X) : X est grand • proche(X,Y) : X est proche de Y • atteindre(X,Y) : X peut atteindre Y Illustration Dans une pièce on a un singe, une chaise et des bananes accrochées au plafond : le singe peut il attraper les bananes ? 1.Encode general knowledge about the domain 2.Encode a description of the specific problem instance 3.Pose queries to the inference procedure and get answers ∀x,y habile(X) ∧proche(X,Y) => attraper(X,Y) R1 : ∀x,y habile(X) ∧proche(X,Y) => attraper(X,Y) R2 : ∀x,y,z sur(X,Y) ∧ sous(Y,Z) => proche(X,Z) R3 : ∀x,y,z deplacer(X,Y,Z) ∧ ¬proche(Z,sol) => sous(Y,Z) R4 : ∀x,y anime(X) ∧proche(X,Y) => sur(X,Y) R5 : ∀x,y,z anime(X) ∧proche(X,Y) ∧¬anime(Y) ∧¬anime(Z) ∧sur(Y,sol) => deplacer(X,Y,Z) R6 : ∀x,y anime(X) ∧ sur(Y,sol) => aller_vers(X,Y) R7 : ∀x,y aller_vers(X,Y) => proche(X,Y) R8 : ∀x,y anime(X) ∧ sur(X,Y) => proche(X,Y) • Données : – – – – – – – habile(singe) sur(singe, sol) non proche(bananes, sol) grand(chaise) anime(singe) non anime(bananes) non anime(chaise) • Question : – Attraper(singe, bananes) ? – Attraper(X, bananes) Summary • First-order logic: – objects and relations are semantic primitives – syntax: constants, functions, predicates, equality, quantifiers • Increased expressive power: sufficient to define wumpus world