Consider the statement “Squares neighboring the wumpus are smelly”.

26
First-order logic: a more expressive KR language that can handle facts, objects, relations between objects, and object properties. Consider the statement “Squares neighboring the wumpus are smelly”. In PL, to represent this statement we must use 16 sentences (for 4x4 grid) of the form S[i,j] --> W[i-1,j] v W[i,j-1] v W[i+1,j] v W[i,j+1], because the only entity that PL can represent are facts like “There is a wumpus in [1,3]”. In FOL, we can represent facts, objects, object properties and relations between objects. The above statement refers to two objects, wumpus and square, where object square has the property of being smelly, and the relationship between wumpus and square is that of being next to each other ( neighboring). In FOL, this statement is represented by means of the following formula: square, neighboring(square,wumpus) => smelly(square)

description

First-order logic: a more expressive KR language that can handle facts, objects, relations between objects, and object properties. Consider the statement “Squares neighboring the wumpus are smelly”. - PowerPoint PPT Presentation

Transcript of Consider the statement “Squares neighboring the wumpus are smelly”.

Page 1: Consider the statement “Squares neighboring the wumpus are smelly”.

First-order logic: a more expressive KR language that can handle facts, objects, relations between objects, and object properties.

Consider the statement “Squares neighboring the wumpus are smelly”.

In PL, to represent this statement we must use 16 sentences (for 4x4 grid) of the form S[i,j] --> W[i-1,j] v W[i,j-1] v W[i+1,j] v W[i,j+1], because the only entity that PL can represent are facts like “There is a wumpus in [1,3]”.

In FOL, we can represent facts, objects, object properties and relations between objects. The above statement refers to two objects, wumpus and square, where object square has the property of being smelly, and the relationship between wumpus and square is that of being next to each other (neighboring). In FOL, this statement is represented by means of the following formula:

square, neighboring(square,wumpus) => smelly(square)

Page 2: Consider the statement “Squares neighboring the wumpus are smelly”.

FOL syntax

Given

– for each integer N > 0, a set of predicates of arity N (N is the number of arguments of a predicate),

– for each integer N > 0, a set of functions of arity N,

– a set of constants, and

– a set of variables,

we define

– a set of all terms to include (i) all constants and variables, and (ii) all functions of arity N, f(t1, ..., tn), where t1, ..., tn are terms;

– a set of all atomic sentences to be of the form p(t1, ... ,tn), where p is a predicate of arity N, and t1, ..., tn are terms.

A sentence (or wff) in FOL is:

– each atomic sentence;

– A v B, A & B, not A, A => B, A <=> B, where A and B are sentences; x1 ... xn, A and x1 ... xn, A where A is a sentence;

– True, False are sentences.

Page 3: Consider the statement “Squares neighboring the wumpus are smelly”.

Examples of FOL formulas

The statement “Evil King John ruled England in 1200” consists of: objects: John, England, 1200 properties: evil, king relation: ruled

Its FOL representation is:

king(John) & evil(John) & ruled(John, England, 1200)

Sentences in NL can be represented by means of different formulas. Example:

“Everyone loves his/her mother” objects: X (“everyone”), Y (“mother”) function: mother-of relation: loves, mother-of

representation 1: X, Y mother-of (X, Y) => loves(X, Y)

representation 2: X loves(X, mother-of(X))

Page 4: Consider the statement “Squares neighboring the wumpus are smelly”.

More examples

In the following statements, X and Y are objects referring to mushroom1 and

mushroom2, and mushroom(X), purple(X), and poisonous(X) are predicates.– “All purple mushrooms are poisonous”

X, (mushroom(X) & purple(X)) => poisonous(X)– “No purple mushroom is poisonous”

X, (mushroom(X) & purple(X)) => poisonous(X)– “All mushrooms are either purple or poisonous”

X, (mushroom(X) => purple(X) v poisonous(X))– “All mushrooms are either purple or poisonous, but not both”

X, (mushroom(X) => ((purple(X) & poisonous(X)) v (purple(X) & poisonous(X)))– “All purple mushrooms, except for one, are poisonous”

X, (mushroom(X) & purple(X) & poisonous(X)) & ( Y, (mushroom(Y) & purple(Y) &

& equal (X, Y)) => poisonous(Y))– “There are exactly two purple mushrooms”

X, Y (mushroom(X) & purple(X) & mushroom(Y) & purple(Y) & equal (X, Y) &

& ( Z, mushroom(Z) & purple(Z)) => (equal(X, Z) v equal(Y, Z)))

Page 5: Consider the statement “Squares neighboring the wumpus are smelly”.

More about terms

Terms are logical expressions that refer to objects.

If a term contains no variables, it is called a ground term. If a ground term contains a function symbol, it is called a complex term.

Examples: mushroom1, mushroom2 are ground terms. mother-of(Bob) is a complex term. mother-of(X) is a term (not a ground term).

Semantics of terms: An interpretation specifies a functional relation

represented by a functional symbol whose arguments are terms

representing objects.

Page 6: Consider the statement “Squares neighboring the wumpus are smelly”.

More about atomic sentences

Atomic sentences state facts in the domain.

Examples:

mushroom(x) brother(bob, anna) married(father-of(bob), mother-of(bob))

Semantics of atomic sentences: An atomic sentence is true, if the

relation referred to by the predicate symbol holds between the objects

referred to by the arguments under the given interpretation.

Page 7: Consider the statement “Squares neighboring the wumpus are smelly”.

More about complex sentences

Complex sentences represent connected facts in the domain.

Examples:

– ¬brother(john, anna)

– purple(X) & poisonous(X)

– smelly(X) => next(X, wumpus)

The semantics of complex sentences is the same as in PL (except for

sentences containing quantifiers).

Page 8: Consider the statement “Squares neighboring the wumpus are smelly”.

More about quantifiers

Quantifiers allow reference to sets of objects.

The universal quantifier, , is like a conjunction with possibly infinite number of conjuncts. It allow us to represent sentences like:– “All children have parents” X, (child(X) => has-parent(X))– “In all squares adjacent to the pit, the agent feels breeze” X,Y (next(X, Y) & pit(X) & in(agent, Y) => breeze(Y))

The existential quantifier, , allows us to refer to a particular element (object) from the domain. Example:– “There exists a child who has a cat named Sally” X (child(X) & has-a-cat(X, name(Sally)))

Quantification in FOL is always over objects in the domain, and not over functions or predicates.

Page 9: Consider the statement “Squares neighboring the wumpus are smelly”.

Equivalencies involving quantifiers

Formulas containing an existential quantifier can be converted to formulas

involving universal quantifiers, and vice versa, as follows:

( X, A) ( X, A)

( X, A) ( X, A)

Examples: “Everybody likes ice-cream” “There is no such a person who

does not like ice-cream”

X (likes (X, ice-cream)) X ( likes(X, ice-cream))

“Someone likes beer” “Not everybody does not like beer”

X (likes(X, beer) X ( like (X, beer)

We can nest quantifiers to represent sentences like:

“Everybody loves some sport” ===> X Y (loves (X, Y))

“There is some food which everybody likes” ===> Y X (likes(X, Y))

Page 10: Consider the statement “Squares neighboring the wumpus are smelly”.

Equality in first-order logic

In FOL, atomic sentences can be built by using “=“ to indicate that two terms

refer to the same object. For example:

president(USA) = Donald_Trump

Equality can be viewed as a predicate symbol with a predefined meaning of

identity relation, i.e. a set of all pairs of objects in which both elements of

each pair refer to the same object. For example:

{ ..., <president(USA), Donald_Trump>, <mother-of(Bob), Mary>, ... }

Equality can also be used to indicate that two terms are not the same object.

Example: "Ana has at least two sisters”

x, y (sister(Ana, x) & sister(Ana, y) & not(x = y))

Note that the formula

x, y (sister(Ana, x) & sister(Ana, y))

does not exclude x and y to be the same person.

Page 11: Consider the statement “Squares neighboring the wumpus are smelly”.

The kinship domain example (AIMA, p. 301)

Consider the “kinship” domain (domain is typically used to refer to a limited

world that we want to formally represent).

– Objects in this domain are people.

– A property of people is gender.

– Relationships between people are parenthood, brotherhood, etc.

– To represent objects, object properties and relationships between objects, we will use the following predicates and functions:

unary predicates: male, female; binary predicates: parent, sibling, brother, sister, etc.; functions: mother, father.

“One’s mother is one’s female parent”

m, c mother(c) = m <=> female(m) & parent(m,c)

“One’s husband is one’s male spouse”

w, h husband(h,w) <=> male(h) & spouse(h,w)

“Male and female are disjoint categories”

x male(x) <=> not (female(x))

Page 12: Consider the statement “Squares neighboring the wumpus are smelly”.

Example (cont.)

“Parent and child are inverse relationships”

p, c parent(p,c) <=> child(c,p)

“A grandparent is a parent of one’s parent”

g, c grandparent(g,c) <=> p (parent(g,p) & parent(p,c))

“A sibling is another child of one’s parents”

x, y sibling(x,y) <=> not(x=y) & p (parent(p,x) & parent(p,y))

The representation of any domain starts with deciding on the set of basic

predicates in terms of which all other predicates can be defined.

In the kinship domain, the set of basic predicates include child, spouse, male,

female, and parent. The ultimate goal is to have the set of basic predicates

describing the domain fully specified.

Page 13: Consider the statement “Squares neighboring the wumpus are smelly”.

Answering queries in FOL

Consider a knowledge base representing the “kinship” domain. All of the above

formulas are axioms. More axioms are for example, parent(Anna, Bob) and

parent(Bob, Carl). We want our KB to answer queries by deriving other axioms

from the initial set of axioms, such as “Is Anna a grandparent of Carl?”

The set of axioms can be divided into:

– independent axioms, i.e. axioms that cannot be derived by other axioms, and

– redundant axioms, i.e. axioms that can be derived from other axioms, but having them in the KB makes the inference process more efficient.

Some of the axioms provide predicate definitions by showing for what objects

a given predicate holds. For example, assuming that there are only 3 red

objects in the domain, the definition of predicate red is the following:

x, red(x) <=> (x = apple-1) v (x = pen-4) v (x = ball-2)

Page 14: Consider the statement “Squares neighboring the wumpus are smelly”.

Answering queries (cont.)

Not all predicates can be fully characterized; we may not have enough

information to do this. For example, person(x) may be very hard to define, if we

do not have a complete specification for each person in the domain. This

problem can be solved by providing partial definitions for such predicates.

Example: Instead of defining person(x) by means of x person(x) <=> ...

we can enumerate all partial specifications of the form

x ... => person(x)

x person(x) => ...

To construct proofs in FOL, we need a formal system consisting of axioms and

inference rules. Consider all PL rules, plus the following one, called the

universal elimination rule:

x, A(x) <==> A(t) , where all occurrences of x are substituted with the term t

Example: x likes(x, ice-cream) <==> {x / Ana}, likes(Ana, ice-cream)

Page 15: Consider the statement “Squares neighboring the wumpus are smelly”.

Example

Consider a robot cleaning a lobby, who is unable to do its job if someone is in the

lobby. Assume the robot knows the following:

axiom 1 person(Fred)

axiom 2 location(Fred, lobby)

axiom 3 x,y (person(x) & location(x,y)) => occupied(y)

Can the robot do his job? If occupied(lobby) can be inferred from axioms 1 - 3,

the answer must be “no”.

The inference process is carried out as follows: From 1, 3 and the universal elimination rule with {x / Fred}, we get

axiom 4 y (person(Fred) & location(Fred, y)) => occupied(y) From 2, 4 and the universal elimination rule with {y / lobby}, we get

axiom 5 person(Fred) & location(Fred, lobby)) => occupied(lobby) From 1, 2, 5, the And-introduction and the MP rules, we get

axiom 6 occupied(lobby)

Page 16: Consider the statement “Squares neighboring the wumpus are smelly”.

FOL-based simple reflex agent for the wumpus world

A reflex agent has rules directly connecting its percepts to actions. Assuming

that the time is taken into account, the following is an example percept:

Percept([Stench, Breeze, Glitter, None, None], 5)

If this percept is received, then the agent must grab the gold. The following

formula captures the rule connecting the percept to the action Grab:

s,b,u,c,t Percept([s,b, Glitter,u,c], t) => Action(Grab,t)

An equivalent way to represent this rule is to use an intermediate rule to

interpret the percept first, and then to search for an appropriate action, i.e.

s,b,u,c,t Percept([s,b, Glitter,u,c], t) => At_Gold(t)

t At_Gold(t) => Action(Grab,t)

There are 2 problems with this representation: (1) infinite loops are possible,

and (2) certain actions may never be performed if the percept sequence does

not include related percepts.

Page 17: Consider the statement “Squares neighboring the wumpus are smelly”.

FOL-based agents with an internal state

Consider the following ways to represent internal models:

1 By enumerating declarative knowledge (facts), such as “my car is parked in front of the building”, “I am carrying the gold”, etc.

2 By explaining how the world evolves. This can be done by means of so-called diachronic rules, such as “it was sunny in the morning, but now it is raining”, “an hour ago I was driving to the University, but now I am at the University”. Note that the declarative representation of such diachronic rules require knowledge revision, i.e. weather(sunny, morning) must be replaced by weather(rainy, noon), and at(agent, car) must be replaced by at(agent, University).

Problems with these representations:

The agent can answer queries only about his present state of mind, because all knowledge about previous states are forgotten.

Alternative situations cannot be examined simultaneously.

Page 18: Consider the statement “Squares neighboring the wumpus are smelly”.

FOL-based agents with an internal state (cont.)

For the agent to “remember” previous states or to explore alternative situations,

he must keep many KBs as part of its internal model, where each KB describes

a unique state of the world. The agent can explore alternative situations by

switching between the KBs. Assumption-Based Truth Maintenance Systems

(ATMS) provide a practical way to implement this idea. ATMS, however, cannot

explore alternative situations simultaneously, because it assumes that

alternative worlds are internally consistent. The Contradiction-Tolerant Truth

Maintenance System (CTMS) expands this idea to allow contradictory worlds

to be explored at the same time.

Another solution which also makes its possible to keep track of the previous

states is provided by the so-called situation calculus. The basic idea is to view

the changing world as a sequence of situations, where each next situation

results from the previous one after applying some action to it (see AIMA, page

329 fig. 10.2)

Page 19: Consider the statement “Squares neighboring the wumpus are smelly”.

Example

Assume that the gold is present in a given situation, and the agent grabs it.

We want to state that in any further situation, the agent will have the gold.

Portable (Gold)

s At_Gold => Present (Gold, s)

s, x Present (x, s) & Portable (x) => Holding(x, Result(Grab, s))

To say that the agent is not holding anything after the Release action:

x, s not Holding (x, Result(Release, s)

These are called effect axioms; they describe how the world changes.

Effect axioms alone are not sufficient to keep track of whether the agent is

holding the gold. In addition, we need the so-called frame axioms, which state

how the world stays the same.

Page 20: Consider the statement “Squares neighboring the wumpus are smelly”.

Example (cont.)

The frame axioms stating that (1) if the agent is holding something, and he does

not or cannot release it, then the agent will be holding it in the next state, and

(2) if the agent is not holding something and he does not or cannot grab it, then

the agent will not be holding it in the next state are:

a,x,s Holding(x,s) & (a != Release) => Holding(x, Result(a,s))

a,x,s not Holding(x,s) & (a != Grab V not (Present(x,s) & Portable(x)) =>

=> not Holding(x, Result(a,s))

We can combine the effect and frame axioms to completely describe the

Holding predicate by means of the following successor-state axiom:

a,x,s Holding(x, Result(a,s)) <=> [(a = Grab & Present(x,s) & Portable(x)) V

V (Holding(x,s) & a != Release)]

For each predicate that changes over time, there must be a corresponding

successor-state axiom.

Page 21: Consider the statement “Squares neighboring the wumpus are smelly”.

The WW continued: How the agent knows his location without being able to perceive it directly

In the Wumpus world, the agent knows the following:

His initial location: At(Agent, [1,1], S0) Direction he is facing: Orientation(Agent, S0) = 0 How the world is arranged, i.e. given the location and orientation, what

will be the agent's new position:

x,y LocationToward([x,y], 0) = [x+1, y]

x,y LocationToward([x,y], 90) = [x, y+1]

x,y LocationToward([x,y], 180) = [x-1, y]

x,y LocationToward([x,y], 270) = [x, y-1]

From this location/orientation description, the agent can compute which square

is directly ahead of him:

l,s At(Agent, l, s) =>

=> LocationAhead(Agent, s) = LocationToward(l, Orientation(Agent, s))

Page 22: Consider the statement “Squares neighboring the wumpus are smelly”.

Keeping track of location (cont.)To define if two locations are adjacent to each other, we can say:

l1, l2 Adjacent(l1, l2) <=> d (l1 = LocationToward(l2, d))

To define if the agent is at the boundaries of his world, assuming 4 x 4 cave:

x, y Wall([x,y]) <=> (x = 0 V x = 5 V y = 0 V y = 5)

Now we can define the successor-state axioms for location and orientation. Successor-state axiom for location (note that location can only be affected by

action Forward):

l, a, s At(Agent, l, Result(a, s)) <=>

[ (a = Forward & l = LocationAhead(Agent, s) & not Wall(l)) V

V (a != Forward & At(Agent, l, s) ] Successor-state axiom for orientation (note that orientation is affected by

actions Turn(Left) and Turn(Right)):

a, d, s Orientation(Agent, Result(a, s)) = d <=>

[ (a = Turn(Right) & d = Mod(Orientation(Agent, s) - 90), 360)) V

V (a = Turn(Left) & d = Mod(Orientation(Agent, s) + 90), 360)) V

V (Orientation(Agent, s) = d & not (a = Turn(Right) V a = Turn(Left))) ]

Page 23: Consider the statement “Squares neighboring the wumpus are smelly”.

Definition of predicate Alive

We must also state the successor-state axiom for predicate Alive:

a, s (Alive(Wumpus, Result(a,s)) <=>[ Alive(Wumpus, s) &

& not (a = Shoot & Has(Agent, Arrow, s) & Facing(Agent, Wumpus, s)) ]

More definitions needed:

a, s Has(Agent, Arrow, Result(a,s)) <=>

<=> [ Has(Agent, Arrow, s) & (a != Shoot) ]

Facing(Agent, Wumpus, s) can be defined in terms of the location of the agent

and wumpus, and the orientation of the agent.

Page 24: Consider the statement “Squares neighboring the wumpus are smelly”.

Deducing hidden properties of the world

Assume that the agent knows where he is. Then, he can deduce properties

associated with specific locations by means of the following diagnostic rules:

l, s At(Agent, l, s) & Breeze(s) => Breezy(l)

l, s At(Agent, l, s) & Stench(s) => Smelly(l)

Knowing places which are breezy and smelly, the agent can reason about safe

(unsafe) locations:

l1, s Smelly(l1) => [ l2 At(Wumpus, l2, s) & (l1 = l2 V Adjacent(l1, l2) ]

The same reasoning can be performed with the following causal rules:

l1, l2, s At(Wumpus, l1, s) & Adjacent(l1, l2) => Smelly(l2)

l1, l2, s At(Pit, l1, s) & Adjacent(l1, l2) => Breezy(l2)

Both, causal and diagnostic rules are synchronic rules, because they represent

relations that hold in the same world state.

Page 25: Consider the statement “Squares neighboring the wumpus are smelly”.

Model-based reasoning

KBSs that use causal rules to solve problems are called model-based reasoning

systems. Causal rules are stronger than diagnostic rule. Compare the following

two rules inferring OK(y):

Diagnostic rule:

x, y, g, u, c, s Percept([None, None, g, u, c], s) & At(Agent, x, s) &

& Adjacent(x, y) => OK(y)

Causal rule (note that a location can be O.K. even if it is breezy or smelly):

y, s (not At(Wumpus, y, s) & not Pit(y) <=> OK(y)

The main difference between diagnostic and model-based reasoning is that is

the later requires an explicit model of the domain not just a specification of the

relations in that domain.

Page 26: Consider the statement “Squares neighboring the wumpus are smelly”.

FOL goal-based agents for the Wumpus world

Goal-based agents have an internal state like agents with an internal state, but

they also have an explicitly stated goal, such as

s Holding(Gold,s) => GoalLocation([1,1], s)

To reach the goal, the agent must produce a sequence of actions, the latest of

which matches the goal. This can be done in three possible ways:

1 By applying an inference procedure.

2 By applying a search procedure (for example, best-first search with an appropriate heuristic function)

3 By applying a special-purpose planning procedure to identify the right sequence of actions to achieve the goal.