Sunteți pe pagina 1din 49

9. Logica de ordinul intai.

First-order logic

December 6, 2016
Outline

First order logic


Sintaxa si semantica FOL
Propozitii atomice
Propozitii complexe
Cuantificatorul universal
Cuantificatorul existential
Egalitatea

Baze de cunostinte in FOL


Pro si contra Logicii propozitionale

(B1,1 = (P1,2 P2,1 )) ((P1,2 P2,1 ) = B1,1 )

Este declarativa: componentele sintactice (propozitiile) sunt


legate de fapte, semantica este bazata pe o relatie de adevar
intre propozitii si lumi posibile
permite informatii partiale, disjunctive si negate:
Citesc MaJoc, W1,1 W2,1
este compozitionala: intelesul pt B1,1 P1,2 este derivat din
intelesul pt B1,1 si pt P1,2
intelesul este independent de context: (spre deosebire de
limbajul natural: Look!)
Cons: logica propozitionale este foarte limitata expresiv: nu se
poate spune gropile cauzeaza racoare in patratele adiacente
decat scriind o propozitie pt fiecare patrat
First-order logic

In timp ce logica propozitionala presupune ca lumea contine fapte


(facts), first-order logic presupune ca lumea contine:
Obiecte : oameni, case, numere, teorii, culori, razboaie,
secole, oferte comerciale,... substantive, fraze
substantivale
Relatii : unare - este rosu, rotund, prim, ..., n-are este frate
a, mai mare decat, inauntru, parte din, are culoarea,
intamplat dupa, ... verbe, fraze verbale]
Functii : tata a, cel mai bun prieten, sfarsitul a, ...o singura
valoare pentru un anumit input
Exemple: unu plus unu este egal cu doi, celulele vecine
wumpus-ului sunt urat mirositoare, Maleficul rege John a condus
Anglia in 1200
Logici

Limbaj Ontological Commitment Epistemological Commitm


Ce exista in lume Ce crede un agent despre fapte
Logica propozitionala fapte true/false/unknown
Logica predicatelor fapte, obiecte, relatii true/false/unknown
de ordinul intai
Logica temporala fapte, obiecte, relatii, momente true/false/unknown
Logica probabilitatilor fapte degree of belief [0,1]
Logica fuzzy fapte si grade de adevar [0, 1] known interval value
Modele pentru FOL: Exemplu
crown

on head
person brother
person
brother king

R $
J
left leg left leg

Obiecte: Richard, John, piciorul stang al lui Richard, piciorul stang


al lui John, coroana
Relatii: tuple - binare: brotherhood, onHead; unare: person, king,
crown
Functii: leftLegOf
Sintaxa FOL: elemente de baza I

Constante KingJohn, 2, Emag , . . .


Simboluri Predicate Brother , >, Person, King , Crown . . .
Functii Sqrt, LeftLegOf , . . .
Interpretarea

Considerand interpretarea (ce obiecte, relatii si functii sunt referite


de simbolurile constante, predicate si functii):
Richard Richard Regele Leu (1189-1199)
John regele John (1199-1215)
Brother relatia de frate
Brother (Richard, John) este adevarata doar daca Regele Leu si
regele John sunt in relatie de frate in model (frati)
O alta interpretare: Richard coroana, John piciorul
stang al regelui John.
Observatie: in logica propozitionala poate exista un model in
care ambele Inorat si Senin sunt false.
Eliminarea modelelor care sunt inconsistente cu cunostintele
noastre trebuie sa fie realizata de baza de cunostinte.
Adevarul in logica predicatelor de ordinul intai

Propozitiile sunt adevarate relativ la un model si o interpretare


Un model contine unul sau mai multe obiecte (elementele
domeniului si relatiile dintre elemente)
Trebuie sa legam propozitiile la un model pentru a stabili
adevarul lor interpretarea care specifica ce obiecte, relatii si
functii sunt referite de simbolurile constante, predicate si
functii
simbolurile constante obiecte
simbolurile predicate relatii
simbolurile functii relatii functionale (functii)
Entailmentul si validitatea sunt definite in termeni de toate
modelele posibile si toate interpretarile posibile
Sintaxa FOL: elemente de baza II

Constants KingJohn, 2, Emag , . . .


Predicates Brother , >, Person, King , Crown . . .
Functions Sqrt, LeftLegOf , . . .
Variables x, y , a, b, . . .
Connectives , , , ,
Equality =
Quantifiers ,
FOL: Backus Naur Form (BNF )
Termeni

Un termen = expresie logica care se refera la un obiect


Simboluri constante
obiecte fara nume: Simboluri functii si o lista de termeni ca
argumente: LeftLeg (John)
Propozitii atomice

Propozitii atomice = predicate(term1 , . . . , termn )


or term1 = term2

Term = function(term1 , . . . , termn )


or constant or variable

E.g., Brother (John, Richard)


> (Length(LeftLegOf (Richard)), Length(LeftLegOf (John)))
Propozitii complexe

Propozitiile complexe sunt formate din propozitii atomice si


conectori

S, S1 S2 , S1 S2 , S1 S2 , S1 S2

E.g. Brother (John, Richard) = Brother (Richard, John)


>(1, 2) (1, 2)
>(1, 2) >(1, 2)
Cuantificatorul universal

hvariablesihsentencei
Everyone at Berkeley is smart: x At(x, Berkeley ) Smart(x)
x P este adevarat intr-un model m daca si numai daca P
este adevarat cu x fiind toate obiectele posibile din model
Poate fi considerat ca fiind echivalent cu conjunctia instantierilor
lui P

(At(John, Berkeley ) Smart(John))


(At(Richard, Berkeley ) Smart(Richard))
(At(Berkeley , Berkeley ) Smart(Berkeley ))
...
Exemplu pt

x King (x) Person(x)


In model, x Richard Regele Leu, Regele John, piciorul stang al
lui Richard, piciorul stang al lui John, coroana:
(Richard Inima de Leu este rege Regele RIchard este o persoana
Regele John este rege Regele John este o persoana
Piciorul stang al lui Richard este rege Piciorul stang al lui Richard este o pe
Piciorul drept al lui Richard este rege Piciorul drept al lui Richard este o pe
Coroana este rege Coroana este o persoana
Toate sunt adevarate, dar numai a doua spune intr-adevar ceva
despre calitatea cuiva de a fi o persoana (daca consideram ca doar
Regele John este rege).
Observatie: implicatia este falsa doar cand premisele sunt
adevarate si concluzia falsa.
Greseala tipica

In general, este conectorul principal care apare impreuna cu


Greseala tipica: utilizarea drept conector impreuna cu :

x At(x, Berkeley ) Smart(x)


Greseala tipica

In general, este conectorul principal care apare impreuna cu


Greseala tipica: utilizarea drept conector impreuna cu :

x At(x, Berkeley ) Smart(x)

inseamna Everyone is at Berkeley and everyone is smart


Cuantificatorul existential

hvariablesihsentencei
Cineva la Stanford este destept : x At(x, Stanford) Smart(x)
x P este adevarata intr-un model m daca si numai daca
P este adevarata cu x fiind un obiect posibil din model
Este echivalent cu disjunctia dintre instantierile lui P

(At(John, Stanford) Smart(KingJohn))


(At(Richard, Stanford) Smart(Richard))
(At(Stanford, Stanford) Smart(Stanford))
...
O alta greseala comuna

In general, este conectorul principal de utilizat cu


Greseala: utilizarea cu :

x At(x, Stanford) = Smart(x)

este adevarata daca exista cineva care nu e la Stanford!


Quiz

Cum se exprima propozitia: Regele John are o coroana pe cap?


1. x Crown(x) OnHead (x, John)
2. x Crown(x) OnHead (x, John)
3. x Crown(x) OnHead (x, John)
Quiz

Cum se exprima propozitia: Regele John are o coroana pe cap?


1. x Crown(x) OnHead (x, John) CORECT
2. x Crown(x) OnHead (x, John) Regele John este o
coroana Regele John este pe capul lui John este adevarata,
premisele fiind false
3. x Crown(x) OnHead (x, John) Daca ceva este coroana,
atunci se afla pe capul lui John
Proprietati ale cuantificatorilor

x y este la fel cu y x Fratii sunt rude:


x y Brother (x, y ) Rude(x, y )
Se poate scrie un singur cuantificator cu mai multe variabile:
x, y Brother (x, y ) Rude(x, y )
x y este la fel cu y x
Cineva citeste ceva
x y nu e la fel cu y x
1. x y Loves(x, y )
2. y x Loves(x, y )
3. Everyone in the world is loved by at least one person ??
4. There is a person who loves everyone in the world ??
Proprietati ale cuantificatorilor

x y este la fel cu y x Fratii sunt rude:


x y Brother (x, y ) Rude(x, y )
Se poate scrie un singur cuantificator cu mai multe variabile:
x, y Brother (x, y ) Rude(x, y )
x y este la fel cu y x
Cineva citeste ceva
x y nu e la fel cu y x
1. x y Loves(x, y )
2. y x Loves(x, y )
3. Everyone in the world is loved by at least one person 2
4. There is a person who loves everyone in the world 1
Dualitatea cuantificatorilor: fiecare poate fi exprimat prin
intermediul celuilalt
x Likes(x, IceCream) x Likes(x, IceCream)
x Likes(x, Broccoli ) x Likes(x, Broccoli )
Exemple

Brothers are siblings x, y Brother (x, y ) Sibling (x, y ). ?


Exemple

Brothers are siblings x, y Brother (x, y ) Sibling (x, y ).


Sibling is symmetric x, y Sibling (x, y ) Sibling (y , x). ?
Exemple

Brothers are siblings x, y Brother (x, y ) Sibling (x, y ).


Sibling is symmetric x, y Sibling (x, y ) Sibling (y , x).
Ones mother is ones female parent
x, y Mother (x, y ) (Female(x) Parent(x, y )).?
Exemple

Brothers are siblings x, y Brother (x, y ) Sibling (x, y ).


Sibling is symmetric x, y Sibling (x, y ) Sibling (y , x).
Ones mother is ones female parent
x, y Mother (x, y ) (Female(x)Parent(x, y )).
A first cousin is a child of a parents sibling
x, y FirstCousin(x, y )
p, ps Parent(p, x) Sibling (ps, p) Parent(ps, y )
Egalitatea

term1 = term2 este adevarat intr-o anumita interpretare daca si


numai daca term1 si term2 se refera la acelasi obiect
E.g., 2 = 2
father (John) = Henry
x, y Brother (x, Richard) Brother (y , Richard) (x = y )
- Richard are cel putin doi frati
E.g., Sibling (frati si surori)
x, y Sibling (x, y ) [(x = y ) m, f (m = f )
Parent(m, x) Parent(f , x) Parent(m, y ) Parent(f , y )]
Closed-world assumption

Propozitiile atomice necunoscute ca fiind true sunt considerate


fapte false
Unique names assumption = fiecare simbol constant refera un
obiect distinct
Brother (John, Richard) Brother (Geoffrey , Richard) (John =
Geoffrey ) x Brother (x, Richard) (x = John x = Geoffrey )
Interactiunea cu baze de cunostinte FOL: Tell, Ask

Sa presupunem ca in lumea wumpus, agentul foloseste logica


predicatelor de ordinul intai si percepe un miros si racoare, dar
nu si stralucire, lovitura de perete sau urlet la momentul
t = 5:
Tell (KB, Percept([Smell , Breeze, None, None, None], 5))
Ask(KB, a BestAction(a, 5))
Se poate extrage din KB o anumita actiune t = 5?
Actiuni disponibile: Turn(Left), Turn(Right), Forward, Shoot,
Grab, Climb
Interactiunea cu baze de cunostinte FOL: Tell, Ask

Sa presupunem ca in lumea wumpus, agentul foloseste logica


predicatelor de ordinul intai si percepe un miros si racoare, dar
nu si stralucire, lovitura de perete sau urlet la momentul
t = 5:
Tell (KB, Percept([Smell , Breeze, None, None, None], 5))
Ask(KB, a BestAction(a, 5))
Se poate extrage din KB o anumita actiune t = 5?
Actiuni disponibile: Turn(Left), Turn(Right), Forward, Shoot,
Grab, Climb
Raspuns: Yes, {a/Shoot} substitutie (binding list)
Ask(KB, S) returneaza toate substitutiile astfel incat
KB |= S
Wumpus world in FOL - perceptii si actiuni

Perception
t, s, g , m, c Percept([s, Breeze, g , m, c], t) = Breeze(t)
t, s, b, m, c Percept([s, b, Glitter , m, c], t) = Glitter (t)
Reflex: t AtGold(t) = BestAction(Grab, t)
Reflex cu stare interna: are aurul deja?
t AtGold(t) Holding (Gold , t) = Action(Grab, t)
Deducerea proprietatilor ascunse
Pozitia agentului la momentul t: At(Agent, s, t)
x, s1 , s2 , t At(Agent, s1 , t) At(Agent, s2 , t) s1 = s2
Deducerea proprietatilor ascunse
Pozitia agentului la momentul t: At(Agent, s, t)
x, s1 , s2 , t At(Agent, s1 , t) At(Agent, s2 , t) s1 = s2
Proprietati ale pozitiilor
x, t At(Agent, x, t) Breeze(t) = Breezy (x)
Deducerea proprietatilor ascunse
Pozitia agentului la momentul t: At(Agent, s, t)
x, s1 , s2 , t At(Agent, s1 , t) At(Agent, s2 , t) s1 = s2
Proprietati ale pozitiilor
x, t At(Agent, x, t) Breeze(t) = Breezy (x)
Adiacenta a doua celule x, y , a, b Adjacent([x, y ], [a, b])
(x = a (y = b 1 y = b + 1)) (y = b (x =
a 1 x = a + 1))
Deducerea proprietatilor ascunse
Pozitia agentului la momentul t: At(Agent, s, t)
x, s1 , s2 , t At(Agent, s1 , t) At(Agent, s2 , t) s1 = s2
Proprietati ale pozitiilor
x, t At(Agent, x, t) Breeze(t) = Breezy (x)
Adiacenta a doua celule x, y , a, b Adjacent([x, y ], [a, b])
(x = a (y = b 1 y = b + 1)) (y = b (x =
a 1 x = a + 1))
Celulele sunt cu vant in vecinatatea gropilor:
Deducerea proprietatilor ascunse
Pozitia agentului la momentul t: At(Agent, s, t)
x, s1 , s2 , t At(Agent, s1 , t) At(Agent, s2 , t) s1 = s2
Proprietati ale pozitiilor
x, t At(Agent, x, t) Breeze(t) = Breezy (x)
Adiacenta a doua celule x, y , a, b Adjacent([x, y ], [a, b])
(x = a (y = b 1 y = b + 1)) (y = b (x =
a 1 x = a + 1))
Celulele sunt cu vant in vecinatatea gropilor:
Diagnostic ruleinfer cause from effect
y Breezy (y ) = x Pit(x) Adjacent(x, y )
y Breezy (y ) = x Pit(x) Adjacent(x, y )
Deducerea proprietatilor ascunse
Pozitia agentului la momentul t: At(Agent, s, t)
x, s1 , s2 , t At(Agent, s1 , t) At(Agent, s2 , t) s1 = s2
Proprietati ale pozitiilor
x, t At(Agent, x, t) Breeze(t) = Breezy (x)
Adiacenta a doua celule x, y , a, b Adjacent([x, y ], [a, b])
(x = a (y = b 1 y = b + 1)) (y = b (x =
a 1 x = a + 1))
Celulele sunt cu vant in vecinatatea gropilor:
Diagnostic ruleinfer cause from effect
y Breezy (y ) = x Pit(x) Adjacent(x, y )
y Breezy (y ) = x Pit(x) Adjacent(x, y )
Definitie pentru predicatul Breezy
y Breezy (y ) [x Pit(x) Adjacent(x, y )]
Deducerea proprietatilor ascunse
Pozitia agentului la momentul t: At(Agent, s, t)
x, s1 , s2 , t At(Agent, s1 , t) At(Agent, s2 , t) s1 = s2
Proprietati ale pozitiilor
x, t At(Agent, x, t) Breeze(t) = Breezy (x)
Adiacenta a doua celule x, y , a, b Adjacent([x, y ], [a, b])
(x = a (y = b 1 y = b + 1)) (y = b (x =
a 1 x = a + 1))
Celulele sunt cu vant in vecinatatea gropilor:
Diagnostic ruleinfer cause from effect
y Breezy (y ) = x Pit(x) Adjacent(x, y )
y Breezy (y ) = x Pit(x) Adjacent(x, y )
Definitie pentru predicatul Breezy
y Breezy (y ) [x Pit(x) Adjacent(x, y )]
Causal ruleinfer effect from cause
x Pit(x) (y Adjacent(x, y ) Breezy (y ))
Deducerea proprietatilor ascunse
Pozitia agentului la momentul t: At(Agent, s, t)
x, s1 , s2 , t At(Agent, s1 , t) At(Agent, s2 , t) s1 = s2
Proprietati ale pozitiilor
x, t At(Agent, x, t) Breeze(t) = Breezy (x)
Adiacenta a doua celule x, y , a, b Adjacent([x, y ], [a, b])
(x = a (y = b 1 y = b + 1)) (y = b (x =
a 1 x = a + 1))
Celulele sunt cu vant in vecinatatea gropilor:
Diagnostic ruleinfer cause from effect
y Breezy (y ) = x Pit(x) Adjacent(x, y )
y Breezy (y ) = x Pit(x) Adjacent(x, y )
Definitie pentru predicatul Breezy
y Breezy (y ) [x Pit(x) Adjacent(x, y )]
Causal ruleinfer effect from cause
x Pit(x) (y Adjacent(x, y ) Breezy (y ))
Obs: regula cauzala nu spune daca celulele mai indepartate
sunt cu vant sau nu
Axioma starii urmatoare: cuantificare peste timp

t HaveArrow (t + 1) HaveArrow (t) Action(Shoot, t))


Utilizarea FOL

Kinship domain
Numbers, set and lists
Wumpus world
Quiz

1. Care dinte urmatoarele translatari in FOL sunt corecte sintactic si


semantic pentru Niciun caine nu musca niciun copil al stapanului? (No
dog bites a child of its owner
1.1 x Dox(x) Bites(x, Child(Owner (x)))
1.2 x, y Dog (x) Child(y , Owner (x)) Bites(x, y )
1.3 x Dog (x) (y Child(y , Owner (x)) Bites(x, y ))
1.4 x Dog (x) (y Child(y , Owner (x)) Bites(x, y ))

2. Translatati in FOL:Everyones DNA is unique and is derived from their


parents DNA. (DNA oricui este unic si este derivat din cel al parintilor).
Hint: puteti folosi functia DNA si predicatul DerivedFrom(u,v,w) care
inseamna ca u este derivat din v si w.
Quiz
1. Care dinte urmatoarele translatari in FOL sunt corecte sintactic si
semantic pentru Niciun caine nu musca niciun copil al stapanului? (No
dog bites a child of its owner
1.1 x Dox(x) Bites(x, Child(Owner (x))) child nu e o
functie
1.2 x, y Dog (x) Child(y , Owner (x)) Bites(x, y ) CORECT
1.3 x Dog (x) (y Child(y , Owner (x)) Bites(x, y ))
CORECT
1.4 x Dog (x) (y Child(y , Owner (x)) Bites(x, y ))
implicatie impreuna cu cuantificator existential

2. Translatati in FOL:Everyones DNA is unique and is derived from their


parents DNA. (DNA oricui este unic si este derivat din cel al parintilor).
Hint: puteti folosi functia DNA si predicatul DerivedFrom(u,v,w) care
inseamna ca u este derivat din v si w.
x, y ((x = y ) (DNA(x) =
DNA(y ))) DerivedFrom(DNA(x), DNA(Mother (x)), DNA(Father (x)))
Kowledge engineering in FOL

1. Identificarea taskului
2. Asamblarea cunostintelor relavante
3. Alegerea unui vocabular de predicate, functii si constante
4. Reprezentarea cunosntilor generale despre domeniului
5. Reprezentarea descrierii unei anumite probleme specifice
6. Interogare
7. Debug baza de cunsotinte
Exemplu: Domeniul circuitelor logice
Leul si unicornul

Raymond Smullyan: Leul minte Luni Marti si Miercuri si spune


adevarul in restul zilelor. Unicornul minte Joi, Vineri si SAmbata si
spune adevarul in rest. Alice ii intalneste pe cei doi si acestia ii
spun urmatoarele:
Leul: Ieri a fost una dintre zilele mele de minciuna
Unicornul: Ieri a fost una dintre zilele mele de minciuna
Ce zi a fost ieri?
Rezumat

First order logic


Sintaxa si semantica FOL
Propozitii atomice
Propozitii complexe
Cuantificatorul universal
Cuantificatorul existential
Egalitatea

Baze de cunostinte in FOL

S-ar putea să vă placă și