Agents that Reason Logically Logical agents have knowledge base, from which they draw conclusions TELL: provide new facts to agent ASK: decide on appropriate action
Sample: Wumpus World Show original wumpus game goal is to shoot wumpus example of logical reasoning index.shtml index.shtml Our version: Kill the wumpus.
A Wumpus Agent Agent does not perceive its own location (unlike sample game), but it can keep track of where it has been Percepts: Stench – wumpus is nearby Breeze – pit is nearby
Wumpus Agent Actuators: Forward, Turn Left, Turn Right Shoot (shoots arrow forward until hits wumpus or wall) Environment: 4x4 grid, start at (1,1) facing right
Wumpus Agent Death Agent dies if it enters a pit or square with wumpus Goal: kill wumpus
Some complex reasoning examples Start in (1,1) Breeze in (1,2) and (2,1) Probably a pit in (2,2) Smell in (1,1) – where can you go? Pick a direction – shoot Walk in that direction Know where wumpus is
The use of logic A logic: formal language for representing information, rules for drawing conclusions Two kinds of logics: Propositional Logic (Chap 7) Represents facts First Order Logic (Chap 8) Represents facts, objects, and relations
Soundness Rules of inference allow us to derive new sentences entailed by a knowledge base Rules of inference must be sound: sentences inferred by a KB should be entailed by that KB What is a non-sound inference? Video
Entailment At any given time, we have a knowledge base of information If Jan likes ice cream, we would share tastes If we share tastes, I would like to know Jan better Jan likes ice cream The knowledge base KB entails means is true in all worlds where KB is true e.g. if = “I would like to know Jan better” KB
Propositional Logic: Semantics
Inference by Enumeration
Enumeration Solution: is entailed by KB?
Enumeration is too computationally intense For n proposition symbols, enumeration takes 2 n rows (exponential) Inference rules allow you to deduce new sentences from the KB Can use inference rules as operators in a standard search algorithm Think of testing if something as true as searching for it
Modus Ponens (Implication-Elimination) And-Elimination And-Introduction “Or Introduction” Common inference rules for propositional logic
Double-Negation Elimination Unit Resolution Resolution Common inference rules for propositional logic
Example of using logic in Wumpus World Stench Agent StartBreeze KB contains:
KB also contains knowledge of environment No stench no wumpus nearby Stench wumpus nearby
We can determine where wumpus is! Method 1: Truth table At least 14 symbols currently: S 1,1, S 2,1, S 1,2, S 2,2, W 1,1, W 2,1, W 1,2, W 2,2, W 3,1, W 1,3, B 1,1, B 2,1, B 1,2, B 2,2 2 14 rows, ouch!
We can determine where wumpus is! Method 2: Inference Modus Ponens And-Elimination
Inference continued... Modus Ponens and And-Elimination again: One more Modus Ponens:
Inference continued... Unit Resolution: Wumpus is in (1,3)!!! Shoot it. Shoot where?
Determining action based on knowledge Propositional logic cannot answer well the question “What action should I take?” It only answers “Should I take action X?”
Propositional logic seems inefficient Rule: “Shoot if the wumpus is in front of you” 16 x 4 = 64 rules for the 4x4 grid Ditto for pits First order logic is much more efficient
First-Order Logic: Better choice for Wumpus World Propositional logic represents facts First-order logic gives us Objects Relations: how objects relate to each other Functions: return value for given input
Syntax and Semantics First-order logic has the following: Constants: represent objects book, A, cs327 Predicates: represent relations OlderSibling(Lisa,Bart) OlderSibling(Maggie,Lisa) OlderSibling(Maggie,Bart) Functions FatherOf(Luke) = Anakin
Syntax and Semantics Atomic Sentences Father(Luke,Anakin) Siblings(SonOf(Anakin), DaughterOf(Anakin)) Complex Sentences and, or, not, implies, equivalence Equality
Universal Quantification “For all, for every”: Examples: Usually use with Common mistake to use
Existential Quantification “There exists”: Typically use with Common mistake to use
First-Order Logic in Wumpus World Suppose an agent perceives a stench, breeze, at time t = 5: Percept([Stench,Breeze],5) [Stench,Breeze] is a list Then want to query for an appropriate action. Find an a (ask the KB):