csc384: intro to artificial intelligencesheila/384/w14/lectures/csc384w14-lecture-06... · 03...

115
1 Sheila McIlraith, CSC384, University of Toronto, Winter 2014 Planning This material is covered in R&N 3 rd edition chapter 10 This material is covered in R&N 2 nd edition chapters 10.3, 11.1, 11.2, 11.4

Upload: phungdan

Post on 28-Feb-2019

224 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: CSC384: Intro to Artificial Intelligencesheila/384/w14/Lectures/csc384w14-Lecture-06... · 03 Establish datum point at bullseye (0.25, 1.00) 001 B VMC1 0.10 0.43 01 Install 0.30-diameter

1 Sheila McIlraith, CSC384, University of Toronto, Winter 2014

Planning

• This material is covered in R&N 3rd edition chapter 10

• This material is covered in R&N 2nd edition chapters

10.3, 11.1, 11.2, 11.4

Page 2: CSC384: Intro to Artificial Intelligencesheila/384/w14/Lectures/csc384w14-Lecture-06... · 03 Establish datum point at bullseye (0.25, 1.00) 001 B VMC1 0.10 0.43 01 Install 0.30-diameter

2 Sheila McIlraith, CSC384, University of Toronto, Winter 2014

4. A drawing or diagram made to scale

showing the structure or arrangement

of something.

5. In perspective rendering, one of

several imaginary planes

perpendicular to the line of vision

between the viewer and the object

being depicted.

6. A program or policy stipulating a

service or benefit: a pension plan.

Synonyms: blueprint, design, project,

scheme, strategy

plan n.

1. A scheme, program, or method

worked out beforehand for the

accomplishment of an objective: a

plan of attack.

2. A proposed or tentative project or

course of action: had no plans for the

evening.

3. A systematic arrangement of elements

or important parts; a configuration or

outline: a seating plan; the plan of a

story.

Page 3: CSC384: Intro to Artificial Intelligencesheila/384/w14/Lectures/csc384w14-Lecture-06... · 03 Establish datum point at bullseye (0.25, 1.00) 001 B VMC1 0.10 0.43 01 Install 0.30-diameter

3 Sheila McIlraith, CSC384, University of Toronto, Winter 2014

4. A drawing or diagram made to scale

showing the structure or arrangement

of something.

5. In perspective rendering, one of

several imaginary planes

perpendicular to the line of vision

between the viewer and the object

being depicted.

6. A program or policy stipulating a

service or benefit: a pension plan.

Synonyms: blueprint, design, project,

scheme, strategy

plan n.

1. A scheme, program, or method

worked out beforehand for the

accomplishment of an objective: a

plan of attack.

2. A proposed or tentative project or

course of action: had no plans for the

evening.

3. A systematic arrangement of elements

or important parts; a configuration or

outline: a seating plan; the plan of a

story.

Page 4: CSC384: Intro to Artificial Intelligencesheila/384/w14/Lectures/csc384w14-Lecture-06... · 03 Establish datum point at bullseye (0.25, 1.00) 001 B VMC1 0.10 0.43 01 Install 0.30-diameter

4 Sheila McIlraith, CSC384, University of Toronto, Winter 2014

Processes:

Opn A BC/WW Setup Runtime LN Description001 A VMC1 2.00 0.00 01 Orient board

02 Clamp board

03 Establish datum point at bullseye (0.25, 1.00)001 B VMC1 0.10 0.43 01 Install 0.30-diameter drill bit

02 Rough drill at (1.25, -0.50) to depth 1.00

03 Finish drill at (1.25, -0.50) to depth 1.00001 C VMC1 0.10 0.77 01 Install 0.20-diameter drill bit

02 Rough drill at (0.00, 4.88) to depth 1.00

03 Finish drill at (0.00, 4.88) to depth 1.00 [...]

001 T VMC1 2.20 1.20 01 Total time on VMC1[...]

004 A VMC1 2.00 0.00 01 Orient board

02 Clamp board 03 Establish datum point at bullseye (0.25, 1.00)004 B VMC1 0.10 0.34 01 Install 0.15-diameter side-milling tool

02 Rough side-mill pocket at (-0.25, 1.25) length 0.40, width 0.30, depth 0.50

03 Finish side-mill pocket at (-0.25, 1.25)

length 0.40, width 0.30, depth 0.50 04 Rough side-mill pocket at (-0.25, 3.00)

length 0.40, width 0.30, depth 0.50

05 Finish side-mill pocket at (-0.25, 3.00) length 0.40, width 0.30, depth 0.50

004 C VMC1 0.10 1.54 01 Install 0.08-diameter end-milling tool

[...]004 T VMC1 2.50 4.87 01 Total time on VMC1

005 A EC1 0.00 32.29 01 Pre-clean board (scrub and wash)

02 Dry board in oven at 85 deg. F

005 B EC1 30.00 0.48 01 Setup 02 Spread photoresist from 18000 RPM spinner

005 C EC1 30.00 2.00 01 Setup

02 Photolithography of photoresist using phototool in "real.iges"

005 D EC1 30.00 20.00 01 Setup

02 Etching of copper005 T EC1 90.00 54.77 01 Total time on EC1

006 A MC1 30.00 4.57 01 Setup 02 Prepare board for soldering

006 B MC1 30.00 0.29 01 Setup

02 Screenprint solder stop on board006 C MC1 30.00 7.50 01 Setup

02 Deposit solder paste at (3.35,1.23) on board using nozzle [...]

31 Deposit solder paste at (3.52,4.00) on board using nozzle

006 D MC1 0.00 5.71 01 Dry board in oven at 85 deg. F to solidify solder paste006 T MC1 90.00 18.07 01 Total time on MC1

[...]

011 A TC1 0.00 35.00 01 Perform post-cap testing on board011 B TC1 0.00 29.67 01 Perform final inspection of board

011 T TC1 0.00 64.67 01 Total time on TC1

999 T 319.70 403.37 01 Total time to manufacture

[a representation] of future behavior …

usually a set of actions, with temporal and

other constraints on them, for execution by

some agent or agents.

- Austin Tate

[MIT Encyclopedia of the Cognitive Sciences, 1999]

A portion of a manufacturing process plan

Page 5: CSC384: Intro to Artificial Intelligencesheila/384/w14/Lectures/csc384w14-Lecture-06... · 03 Establish datum point at bullseye (0.25, 1.00) 001 B VMC1 0.10 0.43 01 Install 0.30-diameter

5 Sheila McIlraith, CSC384, University of Toronto, Winter 2014

Modes of Planning

• Mixed Initiative Planning

• Automated Plan Generation

Page 6: CSC384: Intro to Artificial Intelligencesheila/384/w14/Lectures/csc384w14-Lecture-06... · 03 Establish datum point at bullseye (0.25, 1.00) 001 B VMC1 0.10 0.43 01 Install 0.30-diameter

6 Sheila McIlraith, CSC384, University of Toronto, Winter 2014

Why Planning

• Intelligent agents must operate in the world. They are not

simply passive reasoners (Knowledge Representation,

reasoning under uncertainty) or problem solvers

(Search), they must also act on the world.

• We want intelligent agents to act in “intelligent ways”.

Taking purposeful actions, predicting the expected effect

of such actions, composing actions together to achieve

complex goals.

Page 7: CSC384: Intro to Artificial Intelligencesheila/384/w14/Lectures/csc384w14-Lecture-06... · 03 Establish datum point at bullseye (0.25, 1.00) 001 B VMC1 0.10 0.43 01 Install 0.30-diameter

7 Sheila McIlraith, CSC384, University of Toronto, Winter 2014

Why Planning

E.g. if we have a robot we want the robot to decide

what to do; how to act to achieve our goals

Page 8: CSC384: Intro to Artificial Intelligencesheila/384/w14/Lectures/csc384w14-Lecture-06... · 03 Establish datum point at bullseye (0.25, 1.00) 001 B VMC1 0.10 0.43 01 Install 0.30-diameter

8 Sheila McIlraith, CSC384, University of Toronto, Winter 2014

A Planning Problem

• How to change the world to suit our needs

• Critical issue: we need to reason about what

the world will be like after doing a few

actions, not just what it is like now

GOAL: Steven has coffee CURRENTLY: robot in mailroom, has no coffee, coffee not made, Steven in office, etc. TO DO: goto lounge, make coffee,…

Page 9: CSC384: Intro to Artificial Intelligencesheila/384/w14/Lectures/csc384w14-Lecture-06... · 03 Establish datum point at bullseye (0.25, 1.00) 001 B VMC1 0.10 0.43 01 Install 0.30-diameter

9 Sheila McIlraith, CSC384, University of Toronto, Winter 2014

Example Planning Applications

Page 10: CSC384: Intro to Artificial Intelligencesheila/384/w14/Lectures/csc384w14-Lecture-06... · 03 Establish datum point at bullseye (0.25, 1.00) 001 B VMC1 0.10 0.43 01 Install 0.30-diameter

10 Sheila McIlraith, CSC384, University of Toronto, Winter 2014

• Autonomous planning, scheduling, control

• NASA: JPL and Ames

• Remote Agent Experiment (RAX)

• Deep Space 1

• Mars Exploration Rover (MER)

Autonomous Agents for Space Exploration

Page 11: CSC384: Intro to Artificial Intelligencesheila/384/w14/Lectures/csc384w14-Lecture-06... · 03 Establish datum point at bullseye (0.25, 1.00) 001 B VMC1 0.10 0.43 01 Install 0.30-diameter

11 Sheila McIlraith, CSC384, University of Toronto, Winter 2014

Other Autonomous Systems

Page 12: CSC384: Intro to Artificial Intelligencesheila/384/w14/Lectures/csc384w14-Lecture-06... · 03 Establish datum point at bullseye (0.25, 1.00) 001 B VMC1 0.10 0.43 01 Install 0.30-diameter

12 Sheila McIlraith, CSC384, University of Toronto, Winter 2014

Other Autonomous Systems

But many of these currently lack any substantial type

of “System 2” deliberative thinking, and in particular

the type of deliberative thinking that we study here.

Page 13: CSC384: Intro to Artificial Intelligencesheila/384/w14/Lectures/csc384w14-Lecture-06... · 03 Establish datum point at bullseye (0.25, 1.00) 001 B VMC1 0.10 0.43 01 Install 0.30-diameter

13 Sheila McIlraith, CSC384, University of Toronto, Winter 2014

• Sheet-metal bending machines - Amada Corp

• Software to plan the sequence of bends [Gupta and Bourne, J. Manufacturing Sci. and Engr., 1999]

Manufacturing Automation

Page 14: CSC384: Intro to Artificial Intelligencesheila/384/w14/Lectures/csc384w14-Lecture-06... · 03 Establish datum point at bullseye (0.25, 1.00) 001 B VMC1 0.10 0.43 01 Install 0.30-diameter

14 Sheila McIlraith, CSC384, University of Toronto, Winter 2014

E.g., Bridge Baron - Great Game Products

• 1997 world champion of computer bridge [Smith, Nau, Throop, AI

Magazine, 1998]

• 2004: 2nd place

(North— Q) … …

PlayCard(P3; S, R3) PlayCard(P2; S, R2) PlayCard(P4; S, R4)

FinesseFour(P4; S)

PlayCard(P1; S, R1)

StandardFinesseTwo(P2; S)

LeadLow(P1; S)

PlayCard(P4; S, R4’)

StandardFinesseThree(P3; S)

EasyFinesse(P2; S) BustedFinesse(P2; S)

FinesseTwo(P2; S)

StandardFinesse(P2; S)

Finesse(P1; S)

Us:East declarer, West dummy

Opponents:defenders, South & North

Contract:East – 3NT

On lead:West at trick 3 East:KJ74

West: A2

Out: QT98653

(North— 3)

East— J

West— 2

North— 3 South— 5 South— Q

Games

Page 15: CSC384: Intro to Artificial Intelligencesheila/384/w14/Lectures/csc384w14-Lecture-06... · 03 Establish datum point at bullseye (0.25, 1.00) 001 B VMC1 0.10 0.43 01 Install 0.30-diameter

15 Sheila McIlraith, CSC384, University of Toronto, Winter 2014

Scheduling with Action Choices & Resource Requirements

• Problems in supply chain management

• HSTS (Hubble Space Telescope scheduler)

• Workflow management

Air Traffic Control

• Route aircraft between runways and terminals. Crafts must be kept safely separated. Safe distance depends on craft and mode of transport. Minimize taxi and wait time.

Character Animation

• Generate step-by-step character behaviour from high-level spec

Plan-based Interfaces

• E.g. NLP to database interfaces

• Plan recognition, Activity Recognition

Other Applications (cont.)

Page 16: CSC384: Intro to Artificial Intelligencesheila/384/w14/Lectures/csc384w14-Lecture-06... · 03 Establish datum point at bullseye (0.25, 1.00) 001 B VMC1 0.10 0.43 01 Install 0.30-diameter

16 Sheila McIlraith, CSC384, University of Toronto, Winter 2014

Other Applications (cont.) Web Service Composition

• Compose web services, and monitor their execution

• Many of the web standards have a lot of connections to plan representation languages

• BPEL; BPEL-4WS allow workflow specifications

• OWL-S allows process specifications

Grid Services/Scientific Workflow Management

Genome Rearrangement

• The relationship between different organisms can be measured by the number of “evolution events” (rearrangements) that separate their genomes

• Find shortest (or most likely) sequence of rearrangements between a pair of genomes

Page 17: CSC384: Intro to Artificial Intelligencesheila/384/w14/Lectures/csc384w14-Lecture-06... · 03 Establish datum point at bullseye (0.25, 1.00) 001 B VMC1 0.10 0.43 01 Install 0.30-diameter

PLANNING

17 Sheila McIlraith, CSC384, University of Toronto, Winter 2014

Page 18: CSC384: Intro to Artificial Intelligencesheila/384/w14/Lectures/csc384w14-Lecture-06... · 03 Establish datum point at bullseye (0.25, 1.00) 001 B VMC1 0.10 0.43 01 Install 0.30-diameter

18 Sheila McIlraith, CSC384, University of Toronto, Winter 2014

Planning

• Reasoning about what the world will be like after doing a few

actions is similar to what we have already examined.

• Only now we want to reason about dynamic environments.

• in(robby,Room1), lightOn(Room1) are true: will they be true after

robby performs the action turnOffLights?

• in(robby,Room1) is true: what does robby need to do to make

in(robby,Room3) true?

• Reasoning about the effects of actions, and computing what

actions can achieve certain effects is at the heart of decision

making.

Page 19: CSC384: Intro to Artificial Intelligencesheila/384/w14/Lectures/csc384w14-Lecture-06... · 03 Establish datum point at bullseye (0.25, 1.00) 001 B VMC1 0.10 0.43 01 Install 0.30-diameter

19 Sheila McIlraith, CSC384, University of Toronto, Winter 2014

Planning under Uncertainty

One of the major complexities in planning that we will deal

with later is planning under uncertainty.

• Our knowledge of the world will almost certainly be

incomplete. We may wish to model that probabilistic.

• Sensing is subject to noise (especially in robots).

• Actions and effectors are also subject to error

(uncertainty in their effects).

Page 20: CSC384: Intro to Artificial Intelligencesheila/384/w14/Lectures/csc384w14-Lecture-06... · 03 Establish datum point at bullseye (0.25, 1.00) 001 B VMC1 0.10 0.43 01 Install 0.30-diameter

20 Sheila McIlraith, CSC384, University of Toronto, Winter 2014

Classical Planning

For now we restrict our attention to the deterministic case.

We will examine:

• Complete initial state specifications

• deterministic effects of actions.

• finding sequences of actions that can achieve a desired set

of effects.

This will in some ways be a lot like search, but we will see

that representation also plays an important role.

Page 21: CSC384: Intro to Artificial Intelligencesheila/384/w14/Lectures/csc384w14-Lecture-06... · 03 Establish datum point at bullseye (0.25, 1.00) 001 B VMC1 0.10 0.43 01 Install 0.30-diameter

21 Sheila McIlraith, CSC384, University of Toronto, Winter 2014

What we’ll cover

• Representing and reasoning about actions (including

planning) in the situation calculus, a (mostly) first-order

logical language for reasoning about action and change,

and as a consequence, planning as deductive plan

synthesis.

• Planning in STRIPS

• Planning as Search

• SAT-based Planning (to be discussed but not part of the

syllabus)

.

Page 22: CSC384: Intro to Artificial Intelligencesheila/384/w14/Lectures/csc384w14-Lecture-06... · 03 Establish datum point at bullseye (0.25, 1.00) 001 B VMC1 0.10 0.43 01 Install 0.30-diameter

22 Sheila McIlraith, CSC384, University of Toronto, Winter 2014

Situation Calculus

• First we look at how to model dynamic worlds within first-

order logic.

• The situation calculus is an important formalism developed

for this purpose.

• Situation Calculus is a (mostly) first-order language.

• Include in the domain of individuals a special set of objects

called situations. Of these S0 is a special distinguished

constant which denotes the “initial” situation.

Page 23: CSC384: Intro to Artificial Intelligencesheila/384/w14/Lectures/csc384w14-Lecture-06... · 03 Establish datum point at bullseye (0.25, 1.00) 001 B VMC1 0.10 0.43 01 Install 0.30-diameter

23 Sheila McIlraith, CSC384, University of Toronto, Winter 2014

Situation Calculus Building Blocks

• Situations

• Fluents

• Actions

Page 24: CSC384: Intro to Artificial Intelligencesheila/384/w14/Lectures/csc384w14-Lecture-06... · 03 Establish datum point at bullseye (0.25, 1.00) 001 B VMC1 0.10 0.43 01 Install 0.30-diameter

24 Sheila McIlraith, CSC384, University of Toronto, Winter 2014

Situations

• Situations are the history of actions from s0. You can think of them as indexing “states” of the world, but two different situations can have the same state. (E.g., “scratch, eat” may lead to the same state of the world as “eat, scratch” When dealing with dynamic environments, the world has different properties at different points in time.

E.g.,

in(robby,room1, s0), in(robby,room3,s0) in(robby,room3,s1), in(robby,room1,s1).

• Different things are true in situation s1 than in the initial situation s0.

• Contrast this with the previous kinds of knowledge we

examined.

Page 25: CSC384: Intro to Artificial Intelligencesheila/384/w14/Lectures/csc384w14-Lecture-06... · 03 Establish datum point at bullseye (0.25, 1.00) 001 B VMC1 0.10 0.43 01 Install 0.30-diameter

25 Sheila McIlraith, CSC384, University of Toronto, Winter 2014

Fluents

• Previously, we were encoding a property of a term as a

relation in first-order logic. The distinction here is that

properties that change from situation to situation (called

fluents) take an extra situation argument.

E.g.,

clear(b) clear(b,s)

“clear(b)” is no longer statically true, it is true contingent on

what situation we are talking about

Page 26: CSC384: Intro to Artificial Intelligencesheila/384/w14/Lectures/csc384w14-Lecture-06... · 03 Establish datum point at bullseye (0.25, 1.00) 001 B VMC1 0.10 0.43 01 Install 0.30-diameter

26 Sheila McIlraith, CSC384, University of Toronto, Winter 2014

Blocks World Example.

clear(c,s0)

on(c,a,s0)

clear(b,s0)

handempty(s0)

C

A B

robot hand

Page 27: CSC384: Intro to Artificial Intelligencesheila/384/w14/Lectures/csc384w14-Lecture-06... · 03 Establish datum point at bullseye (0.25, 1.00) 001 B VMC1 0.10 0.43 01 Install 0.30-diameter

27 Sheila McIlraith, CSC384, University of Toronto, Winter 2014

Actions

• Actions are also part of language

• A set of “primitive” action objects in the (semantic)

domain of individuals.

• In the syntax they are represented as functions mapping

objects to primitive action objects.

Examples:

• pickup(X) function mapping blocks to actions

• pickup(c) = “the primitive action object corresponding

to ‘picking up block c’

• stack(X,Y)

•stack(a,b) = “the primitive action object corresponding

to ‘stacking a on top of b’

Page 28: CSC384: Intro to Artificial Intelligencesheila/384/w14/Lectures/csc384w14-Lecture-06... · 03 Establish datum point at bullseye (0.25, 1.00) 001 B VMC1 0.10 0.43 01 Install 0.30-diameter

28 Sheila McIlraith, CSC384, University of Toronto, Winter 2014

Actions applied to situation new situation

• Remember that actions are terms in the language.

• In order to talk about the situation that results from executing an action in a particular situation, there is a “generic” action application function do(A,S).

do maps a primitive action A and a situation S to a new situation.

• The new situation is the situation that results from applying A to S.

Example:

do(pickup(c), s0) = the new situation that is the result of applying action “pickup(c)” to the initial situation s0.

Page 29: CSC384: Intro to Artificial Intelligencesheila/384/w14/Lectures/csc384w14-Lecture-06... · 03 Establish datum point at bullseye (0.25, 1.00) 001 B VMC1 0.10 0.43 01 Install 0.30-diameter

29 Sheila McIlraith, CSC384, University of Toronto, Winter 2014

What do Actions do?

• Actions affect the situation by changing what is true.

• on(c,a,s0); clear(a,do(pickup(c),s0))

• We want to represent the effects of actions, this is done in

the situation calculus with two components:

• Action Precondition Axioms

• Action Effect Axioms

Page 30: CSC384: Intro to Artificial Intelligencesheila/384/w14/Lectures/csc384w14-Lecture-06... · 03 Establish datum point at bullseye (0.25, 1.00) 001 B VMC1 0.10 0.43 01 Install 0.30-diameter

30 Sheila McIlraith, CSC384, University of Toronto, Winter 2014

Specifying the effects of actions

Action preconditions:

Certain things must hold for actions to have a predictable

effect.

• pickup(c) this action is only applicable to situations S

when “clear(c,S) handempty(S)” is true.

Action effects:

• Actions make certain things true and certain things false.

• holding(c, do(pickup(c), S))

• X.handempty(do(pickup(X),S))

Page 31: CSC384: Intro to Artificial Intelligencesheila/384/w14/Lectures/csc384w14-Lecture-06... · 03 Establish datum point at bullseye (0.25, 1.00) 001 B VMC1 0.10 0.43 01 Install 0.30-diameter

31 Sheila McIlraith, CSC384, University of Toronto, Winter 2014

Specifying the effects of actions

Action effects are conditional on their precondition being true.

S,X.

ontable(X,S) clear(X,S) handempty(S)

holding(X, do(pickup(X),S))

handempty( do(pickup(X),S))

ontable(X, do(pickup(X,S))

clear(X, do(pickup(X,S)).

Green indicates a situation term

Page 32: CSC384: Intro to Artificial Intelligencesheila/384/w14/Lectures/csc384w14-Lecture-06... · 03 Establish datum point at bullseye (0.25, 1.00) 001 B VMC1 0.10 0.43 01 Install 0.30-diameter

32 Sheila McIlraith, CSC384, University of Toronto, Winter 2014

Plan Generation

There are many ways to generate plans. Here we show how

to do it by representing actions in the situation calculus (as

you have just seen) and generating a plan via deductive

plan synthesis.

This is not the approach taken by state-of-the-art planners, as

we will see later, but it is where the field started and is still

used for specifying, studying and advancing research for

more complex tasks in reasoning about action and change

…so for now, back to resolution!

Page 33: CSC384: Intro to Artificial Intelligencesheila/384/w14/Lectures/csc384w14-Lecture-06... · 03 Establish datum point at bullseye (0.25, 1.00) 001 B VMC1 0.10 0.43 01 Install 0.30-diameter

33 Sheila McIlraith, CSC384, University of Toronto, Winter 2014

Reasoning with the Situation Calculus.

1. clear(c,s0)

2. on(c,a,s0)

3. clear(b,s0)

4. ontable(a,s0)

5. ontable(b,s0)

6. handempty(s0)

Query:

Z.holding(b,Z)

7. (holding(b,Z), ans(Z))

Does there exists a situation in which

we are holding b? And if so what is the

name of that situation.

C

A B

Page 34: CSC384: Intro to Artificial Intelligencesheila/384/w14/Lectures/csc384w14-Lecture-06... · 03 Establish datum point at bullseye (0.25, 1.00) 001 B VMC1 0.10 0.43 01 Install 0.30-diameter

34 Sheila McIlraith, CSC384, University of Toronto, Winter 2014

Resolution

Convert “pickup” action axiom into clause form:

S,Y. ontable(Y,S) clear(Y,S) handempty(S)

holding(Y, do(pickup(Y),S))

handempty(do(pickup(Y),S))

ontable(Y,do(pickup(Y,S))

clear(Y,do(pickup(Y,S)).

8. (ontable(Y,S), clear(Y,S), handempty(S),

holding(Y,do(pickup(Y),S))

9. (ontable(Y,S), clear(Y,S), handempty(S),

handempty(do(pickup(X),S)))

10. (ontable(Y,S), clear(Y,S), handempty(S),

ontable(Y,do(pickup(Y,S)))

11. (ontable(Y,S), clear(Y,S), handempty(S),

clear(Y,do(pickup(Y,S)))

Page 35: CSC384: Intro to Artificial Intelligencesheila/384/w14/Lectures/csc384w14-Lecture-06... · 03 Establish datum point at bullseye (0.25, 1.00) 001 B VMC1 0.10 0.43 01 Install 0.30-diameter

35 Sheila McIlraith, CSC384, University of Toronto, Winter 2014

Resolution

12. R[8d, 7]{Y=b,Z=do(pickup(b),S)} (ontable(b,S), clear(b,S), handempty(S), ans(do(pickup(b),S)))

13. R[12a,5] {S=s0} (clear(b,s0), handempty(s0), ans(do(pickup(b),s0)))

14. R[13a,3] {} (handempty(s0), ans(do(pickup(b),s0)))

15. R[14a,6] {} ans(do(pickup(b),s0))

Page 36: CSC384: Intro to Artificial Intelligencesheila/384/w14/Lectures/csc384w14-Lecture-06... · 03 Establish datum point at bullseye (0.25, 1.00) 001 B VMC1 0.10 0.43 01 Install 0.30-diameter

36 Sheila McIlraith, CSC384, University of Toronto, Winter 2014

The answer?

• ans(do(pickup(b),s0))

• This says that a situation in which you are holding b

is called “do(pickup(b),s0)”

• This tells you what actions to execute to achieve

“holding(b)”.

Page 37: CSC384: Intro to Artificial Intelligencesheila/384/w14/Lectures/csc384w14-Lecture-06... · 03 Establish datum point at bullseye (0.25, 1.00) 001 B VMC1 0.10 0.43 01 Install 0.30-diameter

37 Sheila McIlraith, CSC384, University of Toronto, Winter 2014

Two types of reasoning.

Two common types of queries :

1. Predicting the effects of a given sequence of action

E.g., on(b,c, do(stack(b,c), do(pickup(b), s0)) )

2. Computing a sequence of actions that achieve a goal

conditions E.g.,

S. on(b,c,S) on(c,a,S)

Page 38: CSC384: Intro to Artificial Intelligencesheila/384/w14/Lectures/csc384w14-Lecture-06... · 03 Establish datum point at bullseye (0.25, 1.00) 001 B VMC1 0.10 0.43 01 Install 0.30-diameter

38 Sheila McIlraith, CSC384, University of Toronto, Winter 2014

The Frame Problem

Unfortunately, logical reasoning won’t immediately yield the

answer to these kinds of questions.

e.g., query: on(c,a,do(pickup(b),s0))?

• is c still on a after we pickup b?

• Intuitively it should be

• Can logical reasoning reach this conclusion given the

representation of actions that we have proposed thus far?

Page 39: CSC384: Intro to Artificial Intelligencesheila/384/w14/Lectures/csc384w14-Lecture-06... · 03 Establish datum point at bullseye (0.25, 1.00) 001 B VMC1 0.10 0.43 01 Install 0.30-diameter

39 Sheila McIlraith, CSC384, University of Toronto, Winter 2014

The Frame Problem 1. clear(c,s0)

2. on(c,a,s0)

3. clear(b,s0)

4. ontable(a,s0)

5. ontable(b,s0)

6. handempty(s0)

8. (ontable(Y,S), clear(Y,S), handempty(S), holding(Y,do(pickup(Y),S))

9. (ontable(Y,S), clear(Y,S), handempty(S), handempty(do(pickup(X),S)))

10. (ontable(Y,S), clear(Y,S), handempty(S), ontable(Y,do(pickup(Y,S)))

11. (ontable(Y,S), clear(Y,S), handempty(S), clear(Y,do(pickup(Y,S)))

12. on(c,a,do(pickup(b),s0)) {QUERY)

Nothing can resolve with 12!

Page 40: CSC384: Intro to Artificial Intelligencesheila/384/w14/Lectures/csc384w14-Lecture-06... · 03 Establish datum point at bullseye (0.25, 1.00) 001 B VMC1 0.10 0.43 01 Install 0.30-diameter

40 Sheila McIlraith, CSC384, University of Toronto, Winter 2014

Logical Consequence

• Remember that resolution only computes logical

consequences.

• We stated the effects of pickup(b), but did not state that it

doesn’t affect on(c,a).

• Hence there are models in which on(c,a) no longer holds

after pickup(b) (as well as models where it does hold).

• The problem is that representing the non-effects of actions is

very tedious and in general is not possible.

• Think of all of the things that pickup(b) does not affect!

Page 41: CSC384: Intro to Artificial Intelligencesheila/384/w14/Lectures/csc384w14-Lecture-06... · 03 Establish datum point at bullseye (0.25, 1.00) 001 B VMC1 0.10 0.43 01 Install 0.30-diameter

41 Sheila McIlraith, CSC384, University of Toronto, Winter 2014

The Frame Problem

• Finding an effective way of specifying the non-

effects of actions, without having to explicitly write

them all down is the frame problem.

• Good solutions have been proposed, and the

situation calculus has been a powerful way of

dealing with dynamic worlds:

• Logic-based high-level robotic programming languages

Page 42: CSC384: Intro to Artificial Intelligencesheila/384/w14/Lectures/csc384w14-Lecture-06... · 03 Establish datum point at bullseye (0.25, 1.00) 001 B VMC1 0.10 0.43 01 Install 0.30-diameter

42 Sheila McIlraith, CSC384, University of Toronto, Winter 2014

Computation Problems

• Although the situation calculus is a very powerful

representation. It is not always efficient enough to use to

compute sequences of actions.

• The problem of computing a sequence of actions to

achieve a goal is “planning”

• Next we will study some less expressive representations

that support more efficient planning.

Page 43: CSC384: Intro to Artificial Intelligencesheila/384/w14/Lectures/csc384w14-Lecture-06... · 03 Establish datum point at bullseye (0.25, 1.00) 001 B VMC1 0.10 0.43 01 Install 0.30-diameter

43 Sheila McIlraith, CSC384, University of Toronto, Winter 2014

From Situation Calculus to STRIPS

Page 44: CSC384: Intro to Artificial Intelligencesheila/384/w14/Lectures/csc384w14-Lecture-06... · 03 Establish datum point at bullseye (0.25, 1.00) 001 B VMC1 0.10 0.43 01 Install 0.30-diameter

44 Sheila McIlraith, CSC384, University of Toronto, Winter 2014

Simplifying the Planning Problem

• Assume complete information about the initial state

through the closed-world assumption (CWA).

• Assume a finite domain of objects

• Assume that action effects are restricted to making

(conjunctions of) atomic formulae true or false. No

conditional effects, no disjunctive effects, etc.

• Assume action preconditions are restricted to

conjunctions of ground atoms.

Page 45: CSC384: Intro to Artificial Intelligencesheila/384/w14/Lectures/csc384w14-Lecture-06... · 03 Establish datum point at bullseye (0.25, 1.00) 001 B VMC1 0.10 0.43 01 Install 0.30-diameter

45 Sheila McIlraith, CSC384, University of Toronto, Winter 2014

Closed World Assumption (CWA)

• “Classical Planning”. No incomplete or uncertain

knowledge.

• Use the “Closed World Assumption” in our knowledge

representation and reasoning.

• The knowledge base used to represent a state of the world is a

list of positive ground atomic facts.

• CWA is the assumption that

a) if a ground atomic fact is not in our list of “known” facts, its

negation must be true.

b) the constants mentioned in KB are all the domain objects.

Page 46: CSC384: Intro to Artificial Intelligencesheila/384/w14/Lectures/csc384w14-Lecture-06... · 03 Establish datum point at bullseye (0.25, 1.00) 001 B VMC1 0.10 0.43 01 Install 0.30-diameter

46 Sheila McIlraith, CSC384, University of Toronto, Winter 2014

CWA

• CWA makes our knowledge base much like a database:

if employed(John,CIBC) is not in the database, we

conclude that employed(John, CIBC) is true.

Page 47: CSC384: Intro to Artificial Intelligencesheila/384/w14/Lectures/csc384w14-Lecture-06... · 03 Establish datum point at bullseye (0.25, 1.00) 001 B VMC1 0.10 0.43 01 Install 0.30-diameter

47 Sheila McIlraith, CSC384, University of Toronto, Winter 2014

CWA Example

KB = {handempty

clear(c), clear(b),

on(c,a),

ontable(a), ontable(b)}

1. clear(c) clear(b)?

2. on(b,c)?

3. on(a,c) on(b,c)?

4. X.on(X,c)? (D = {a,b,c})

5. X.ontable(X)

X = a X = b?

C

A B

Page 48: CSC384: Intro to Artificial Intelligencesheila/384/w14/Lectures/csc384w14-Lecture-06... · 03 Establish datum point at bullseye (0.25, 1.00) 001 B VMC1 0.10 0.43 01 Install 0.30-diameter

48 Sheila McIlraith, CSC384, University of Toronto, Winter 2014

Querying a Closed World KB

• With the CWA, we can evaluate the truth or falsity of

arbitrarily complex first-order formulas.

• This process is very similar to query evaluation in databases.

• Just as databases are useful, so are CW KB’s.

“CW KB” or “CW-KB” = Closed-world knowledge base

“CWA” = Closed World Assumption

Page 49: CSC384: Intro to Artificial Intelligencesheila/384/w14/Lectures/csc384w14-Lecture-06... · 03 Establish datum point at bullseye (0.25, 1.00) 001 B VMC1 0.10 0.43 01 Install 0.30-diameter

49 Sheila McIlraith, CSC384, University of Toronto, Winter 2014

Querying A Closed-World KB

Query(F, KB) /*return whether or not KB |= F */

if F is atomic

return(F KB)

Page 50: CSC384: Intro to Artificial Intelligencesheila/384/w14/Lectures/csc384w14-Lecture-06... · 03 Establish datum point at bullseye (0.25, 1.00) 001 B VMC1 0.10 0.43 01 Install 0.30-diameter

50 Sheila McIlraith, CSC384, University of Toronto, Winter 2014

Querying A CW KB

if F = F1 F2

return(Query(F1) && Query(F2))

if F = F1 F2

return(Query(F1) || Query(F2))

if F = F1

return(! Query(F1))

if F = F1 F2

return(!Query(F1) || Query(F2))

Page 51: CSC384: Intro to Artificial Intelligencesheila/384/w14/Lectures/csc384w14-Lecture-06... · 03 Establish datum point at bullseye (0.25, 1.00) 001 B VMC1 0.10 0.43 01 Install 0.30-diameter

51 Sheila McIlraith, CSC384, University of Toronto, Winter 2014

Querying A CW KB

if F = X.F1

for each constant c KB

if (Query(F1{X=c})) return(true)

return(false).

if F = X.F1

for each constant c KB

if (!Query(F1{X=c})) return(false)

return(true).

Page 52: CSC384: Intro to Artificial Intelligencesheila/384/w14/Lectures/csc384w14-Lecture-06... · 03 Establish datum point at bullseye (0.25, 1.00) 001 B VMC1 0.10 0.43 01 Install 0.30-diameter

52 Sheila McIlraith, CSC384, University of Toronto, Winter 2014

Querying A CW KB

Guarded quantification (for efficiency).

if F = X.F1

for each constant c KB

if (!Query(F1{X=c}))

return(false)

return(true).

E.g., consider checking

X. apple(x) → sweet(x)

we already know that the formula is true for all “non-apples”

Page 53: CSC384: Intro to Artificial Intelligencesheila/384/w14/Lectures/csc384w14-Lecture-06... · 03 Establish datum point at bullseye (0.25, 1.00) 001 B VMC1 0.10 0.43 01 Install 0.30-diameter

53 Sheila McIlraith, CSC384, University of Toronto, Winter 2014

Querying A CW KB Guarded quantification (for efficiency).

X:[p(X)] F1 X: p(X) → F1

for each constant c s.t. p(c)

if (!Query(F1{X=c})) return(false)

return(true).

X:[p(X)]F1 X: p(X) F1

for each constant c s.t. p(c)

if (Query(F1{X=c})) return(true)

return(false).

Page 54: CSC384: Intro to Artificial Intelligencesheila/384/w14/Lectures/csc384w14-Lecture-06... · 03 Establish datum point at bullseye (0.25, 1.00) 001 B VMC1 0.10 0.43 01 Install 0.30-diameter

54 Sheila McIlraith, CSC384, University of Toronto, Winter 2014

STRIPS representation.

• STRIPS (Stanford Research Institute Problem

Solver.) is a way of representing actions.

• Actions are modeled as ways of modifying the world.

• since the world is represented as a CW-KB, a STRIPS

action represents a way of updating the CW-KB.

• Now actions yield new KB’s, describing the new world—

the world as it is once the action has been executed.

Page 55: CSC384: Intro to Artificial Intelligencesheila/384/w14/Lectures/csc384w14-Lecture-06... · 03 Establish datum point at bullseye (0.25, 1.00) 001 B VMC1 0.10 0.43 01 Install 0.30-diameter

55 Sheila McIlraith, CSC384, University of Toronto, Winter 2014

Sequences of Worlds

• In the situation calculus where in one logical

sentence we could refer to two different situations at

the same time.

• on(a,b,s0) on(a,b,s1)

• In STRIPS, we would have two separate CW-KB’s.

One representing the initial state, and another one

representing the next state (much like search where

each state was represented in a separate data

structure).

Page 56: CSC384: Intro to Artificial Intelligencesheila/384/w14/Lectures/csc384w14-Lecture-06... · 03 Establish datum point at bullseye (0.25, 1.00) 001 B VMC1 0.10 0.43 01 Install 0.30-diameter

56 Sheila McIlraith, CSC384, University of Toronto, Winter 2014

STRIPS Actions

• STRIPS represents actions using 3 lists.

1. A list of action preconditions.

2. A list of action add effects.

3. A list of action delete effects.

• These lists contain variables, so that we can

represent a whole class of actions with one

specification.

• Each ground instantiation of the variables yields a

specific action.

Page 57: CSC384: Intro to Artificial Intelligencesheila/384/w14/Lectures/csc384w14-Lecture-06... · 03 Establish datum point at bullseye (0.25, 1.00) 001 B VMC1 0.10 0.43 01 Install 0.30-diameter

57 Sheila McIlraith, CSC384, University of Toronto, Winter 2014

STRIPS Actions: Example

pickup(X):

Pre: {handempty, clear(X), ontable(X)}

Adds: {holding(X)}

Dels: {handempty, clear(X), ontable(X)}

“pickup(X)” is called a STRIPS operator.

a particular instance e.g.

“pickup(a)” is called an action.

Page 58: CSC384: Intro to Artificial Intelligencesheila/384/w14/Lectures/csc384w14-Lecture-06... · 03 Establish datum point at bullseye (0.25, 1.00) 001 B VMC1 0.10 0.43 01 Install 0.30-diameter

58 Sheila McIlraith, CSC384, University of Toronto, Winter 2014

Operation of a STRIPS action.

• For a particular STRIPS action (ground instance) to be applicable to a state (a CW-KB) • every fact in its precondition list must be true in KB.

•This amounts to testing membership since we have only atomic facts in the precondition list.

• If the action is applicable, the new state is generated by • removing all facts in Dels from KB, then

• adding all facts in Adds to KB.

Page 59: CSC384: Intro to Artificial Intelligencesheila/384/w14/Lectures/csc384w14-Lecture-06... · 03 Establish datum point at bullseye (0.25, 1.00) 001 B VMC1 0.10 0.43 01 Install 0.30-diameter

59 Sheila McIlraith, CSC384, University of Toronto, Winter 2014

Operation of a Strips Action: Example

KB = {handempty

clear(c), clear(b),

on(c,a),

ontable(a), ontable(b)}

C A B

C A

B pickup(b)

KB = { holding(b),

clear(c),

on(c,a),

ontable(a)}

pre = {handmpty, clear(b), ontable(b)}

add = {holding(b)} del = {handmpty, clear(b), ontable(b)}

Page 60: CSC384: Intro to Artificial Intelligencesheila/384/w14/Lectures/csc384w14-Lecture-06... · 03 Establish datum point at bullseye (0.25, 1.00) 001 B VMC1 0.10 0.43 01 Install 0.30-diameter

60 Sheila McIlraith, CSC384, University of Toronto, Winter 2014

STRIPS Blocks World Operators.

• pickup(X)

Pre: {clear(X), ontable(X), handempty}

Add: {holding(X)}

Del: {clear(X), ontable(X), handempty}

• putdown(X)

Pre: {holding(X)}

Add: {clear(X), ontable(X), handempty}

Del: {holding(X)}

Page 61: CSC384: Intro to Artificial Intelligencesheila/384/w14/Lectures/csc384w14-Lecture-06... · 03 Establish datum point at bullseye (0.25, 1.00) 001 B VMC1 0.10 0.43 01 Install 0.30-diameter

61 Sheila McIlraith, CSC384, University of Toronto, Winter 2014

STRIPS Blocks World Operators.

• unstack(X,Y)

Pre: {clear(X), on(X,Y), handempty}

Add: {holding(X), clear(Y)}

Del: {clear(X), on(X,Y), handempty}

• stack(X,Y)

Pre: {holding(X),clear(Y)}

Add: {on(X,Y), handempty, clear(X)}

Del: {holding(X),clear(Y)}

Page 62: CSC384: Intro to Artificial Intelligencesheila/384/w14/Lectures/csc384w14-Lecture-06... · 03 Establish datum point at bullseye (0.25, 1.00) 001 B VMC1 0.10 0.43 01 Install 0.30-diameter

62 Sheila McIlraith, CSC384, University of Toronto, Winter 2014

STRIPS has no Conditional Effects

• putdown(X) Pre: {holding(X)} Add: {clear(X), ontable(X), handempty} Del: {holding(X)}

• stack(X,Y) Pre: {holding(X),clear(Y)} Add: {on(X,Y), handempty, clear(X)} Del: {holding(X),clear(Y)}

• The table has infinite space, so it is always clear. If we “stack(X,Y)” if Y=Table we cannot delete clear(Table), but if Y is an ordinary block “c” we must delete clear(c).

Page 63: CSC384: Intro to Artificial Intelligencesheila/384/w14/Lectures/csc384w14-Lecture-06... · 03 Establish datum point at bullseye (0.25, 1.00) 001 B VMC1 0.10 0.43 01 Install 0.30-diameter

63 Sheila McIlraith, CSC384, University of Toronto, Winter 2014

Conditional Effects

• Since STRIPS has no conditional effects, we must

sometimes utilize extra actions: one for each type of

condition.

• We embed the condition in the precondition, and then

alter the effects accordingly.

Page 64: CSC384: Intro to Artificial Intelligencesheila/384/w14/Lectures/csc384w14-Lecture-06... · 03 Establish datum point at bullseye (0.25, 1.00) 001 B VMC1 0.10 0.43 01 Install 0.30-diameter

64 Sheila McIlraith, CSC384, University of Toronto, Winter 2014

Other Example Domains 8 Puzzle as a planning problem

The Constants • A constant representing each position, P1,…,P9

P1 P2 P3

P4 P5 P6

P7 P8 P9

• A constant for each tile (and blank) B,T1, …, T8.

Page 65: CSC384: Intro to Artificial Intelligencesheila/384/w14/Lectures/csc384w14-Lecture-06... · 03 Establish datum point at bullseye (0.25, 1.00) 001 B VMC1 0.10 0.43 01 Install 0.30-diameter

65 Sheila McIlraith, CSC384, University of Toronto, Winter 2014

8-Puzzle

The Relations/Predicates/Properties

• at(T,P) tile T is at position P.

1 2 5

7 8

6 4 3

• adjacent(P1,P2) P1 is next to P2 (i.e., we can slide the blank from P1 to P2 in one move. • adjacent(P5,P2), adjacent(P5,P8), …

at(T1,P1), at(T2,P2), at(T5,P3), …

Page 66: CSC384: Intro to Artificial Intelligencesheila/384/w14/Lectures/csc384w14-Lecture-06... · 03 Establish datum point at bullseye (0.25, 1.00) 001 B VMC1 0.10 0.43 01 Install 0.30-diameter

66 Sheila McIlraith, CSC384, University of Toronto, Winter 2014

8-Puzzle

The Operators

slide(T,X,Y)

Pre: {at(T,X), at(B,Y), adjacent(X,Y)}

Add: {at(B,X), at(T,Y)}

Del: {at(T,X), at(B,Y)}

1 2 5

7 8

6 4 3

at(T1,P1), at(T5,P3), at(T8,P5), at(B,P6), …,

slide(T8,P5,P6)

1 2 5

7 8

6 4 3

at(T1,P1), at(T5,P3), at(B,P5), at(T8,P6), …,

Page 67: CSC384: Intro to Artificial Intelligencesheila/384/w14/Lectures/csc384w14-Lecture-06... · 03 Establish datum point at bullseye (0.25, 1.00) 001 B VMC1 0.10 0.43 01 Install 0.30-diameter

67 Sheila McIlraith, CSC384, University of Toronto, Winter 2014

Elevator Control

Page 68: CSC384: Intro to Artificial Intelligencesheila/384/w14/Lectures/csc384w14-Lecture-06... · 03 Establish datum point at bullseye (0.25, 1.00) 001 B VMC1 0.10 0.43 01 Install 0.30-diameter

68 Sheila McIlraith, CSC384, University of Toronto, Winter 2014

Elevator Control

Schindler Lifts.

• Central panel to enter your elevator request.

• Your request is scheduled and an elevator assigned to you.

• You can’t travel with someone going to a secure floor,

emergency travel has priority, etc.

• Modeled as a planning problem and fielded in one of

Schindler’s high end elevators.

Page 69: CSC384: Intro to Artificial Intelligencesheila/384/w14/Lectures/csc384w14-Lecture-06... · 03 Establish datum point at bullseye (0.25, 1.00) 001 B VMC1 0.10 0.43 01 Install 0.30-diameter

69 Sheila McIlraith, CSC384, University of Toronto, Winter 2014

Planning as a Search Problem

• Given a CW-KB representing the initial state, a set

of STRIPS or ADL (Action Description Language)

operators, and a goal condition we want to achieve

(specified either as a conjunction of facts, or as a formula)

• The planning problem is to determine a sequence of

actions that when applied to the initial CW-KB yield an

updated CW-KB which satisfies the goal.

This is known as the classical planning task.

Page 70: CSC384: Intro to Artificial Intelligencesheila/384/w14/Lectures/csc384w14-Lecture-06... · 03 Establish datum point at bullseye (0.25, 1.00) 001 B VMC1 0.10 0.43 01 Install 0.30-diameter

70 Sheila McIlraith, CSC384, University of Toronto, Winter 2014

Planning As Search

• This can be treated as a search problem.

• The initial CW-KB is the initial state.

• The actions are operators mapping a state (a CW-KB) to

a new state (an updated CW-KB).

• The goal is satisfied by any state (CW-KB) that satisfies

the goal.

Page 71: CSC384: Intro to Artificial Intelligencesheila/384/w14/Lectures/csc384w14-Lecture-06... · 03 Establish datum point at bullseye (0.25, 1.00) 001 B VMC1 0.10 0.43 01 Install 0.30-diameter

71 Sheila McIlraith, CSC384, University of Toronto, Winter 2014

Example.

C A B

move(b,c) C A

B

move(c,b) C

A B

move(c,table) C A B

move(a,b) B A C

Page 72: CSC384: Intro to Artificial Intelligencesheila/384/w14/Lectures/csc384w14-Lecture-06... · 03 Establish datum point at bullseye (0.25, 1.00) 001 B VMC1 0.10 0.43 01 Install 0.30-diameter

72 Sheila McIlraith, CSC384, University of Toronto, Winter 2014

Problems

• Search tree is generally quite large

• randomly reconfiguring 9 blocks takes thousands of CPU

seconds.

• The representation suggests some structure. Each

action only affects a small set of facts, actions

depend on each other via their preconditions.

• Planning algorithms are designed to take advantage

of the special nature of the representation.

Page 73: CSC384: Intro to Artificial Intelligencesheila/384/w14/Lectures/csc384w14-Lecture-06... · 03 Establish datum point at bullseye (0.25, 1.00) 001 B VMC1 0.10 0.43 01 Install 0.30-diameter

73 Sheila McIlraith, CSC384, University of Toronto, Winter 2014

Planning

• We will look at one technique:

Relaxed Plan heuristics used with heuristic search.

The heuristics are domain independent. As such they are

part of a class of so-called

domain-independent heuristic search for planning

Page 74: CSC384: Intro to Artificial Intelligencesheila/384/w14/Lectures/csc384w14-Lecture-06... · 03 Establish datum point at bullseye (0.25, 1.00) 001 B VMC1 0.10 0.43 01 Install 0.30-diameter

74 Sheila McIlraith, CSC384, University of Toronto, Winter 2014

Reachability Analysis.

• The idea is to consider what happens if we ignore

the delete lists of actions.

• This is yields a “relaxed problem” that can produce

a useful heuristic estimate.

Page 75: CSC384: Intro to Artificial Intelligencesheila/384/w14/Lectures/csc384w14-Lecture-06... · 03 Establish datum point at bullseye (0.25, 1.00) 001 B VMC1 0.10 0.43 01 Install 0.30-diameter

75 Sheila McIlraith, CSC384, University of Toronto, Winter 2014

Reachability Analysis

• In the relaxed problem actions add new facts, but

never delete facts.

• Then we can do reachability analysis, which is

much simpler than searching for a solution.

Page 76: CSC384: Intro to Artificial Intelligencesheila/384/w14/Lectures/csc384w14-Lecture-06... · 03 Establish datum point at bullseye (0.25, 1.00) 001 B VMC1 0.10 0.43 01 Install 0.30-diameter

76 Sheila McIlraith, CSC384, University of Toronto, Winter 2014

Reachability

• We start with the initial state S0.

• We alternate between state and action layers.

• We find all actions whose preconditions are contained in S0. These actions comprise the first action layer A0.

• The next state layer contains:

• S0 U all states added by the actions in A0.

• In general:

• Ai … set of actions whose preconditions are in Si.

• Si = Si-1 U the add lists of all of the actions in Ai

Page 77: CSC384: Intro to Artificial Intelligencesheila/384/w14/Lectures/csc384w14-Lecture-06... · 03 Establish datum point at bullseye (0.25, 1.00) 001 B VMC1 0.10 0.43 01 Install 0.30-diameter

77 Sheila McIlraith, CSC384, University of Toronto, Winter 2014

STRIPS Blocks World Operators. • pickup(X)

Pre: {handempty, ontable(X), clear(X)} Add: {holding(X)} Del: {handempty, ontable(X), clear(X)}

• putdown(X) Pre: {holding(X)} Add: {handempty, ontable(X), clear(X)} Del: {holding(X)}

• unstack(X,Y) Pre: {handempty, clear(X), on(X,Y)} Add: {holding(X), clear(Y)} Del: {handempty, clear(X), on(X,Y)}

• stack(X,Y) Pre: {holding(X),clear(Y)} Add: {handempty, clear(X), on(X,Y)} Del: {holding(X),clear(Y)}

Page 78: CSC384: Intro to Artificial Intelligencesheila/384/w14/Lectures/csc384w14-Lecture-06... · 03 Establish datum point at bullseye (0.25, 1.00) 001 B VMC1 0.10 0.43 01 Install 0.30-diameter

78 Sheila McIlraith, CSC384, University of Toronto, Winter 2014

Example

a

b

c d

on(a,b), on(b,c), ontable(c), ontable(d), clear(a), clear(d), handempty

unstack(a,b) pickup(d)

a b

c d

S0 A0

on(a,b), on(b,c), ontable(c), ontable(d), clear(a), handempty, clear(d), holding(a), clear(b), holding(d)

a d

this is not a state as some of these facts

cannot be true at the same time! S1

Page 79: CSC384: Intro to Artificial Intelligencesheila/384/w14/Lectures/csc384w14-Lecture-06... · 03 Establish datum point at bullseye (0.25, 1.00) 001 B VMC1 0.10 0.43 01 Install 0.30-diameter

79 Sheila McIlraith, CSC384, University of Toronto, Winter 2014

Example

on(a,b), on(b,c), ontable(c), ontable(d), clear(a), clear(d), handempty, holding(a), clear(b), holding(d)

S1

unstack(a,b) pickup(d)

putdown(a), putdown(d), stack(a,b), stack(a,a), stack(d,a), stack(d,b), stack(d,d), unstack(b,c) …

A1

a b

c d

a d A0

from

Impossible, but we don’t know because we ignore dels.

Page 80: CSC384: Intro to Artificial Intelligencesheila/384/w14/Lectures/csc384w14-Lecture-06... · 03 Establish datum point at bullseye (0.25, 1.00) 001 B VMC1 0.10 0.43 01 Install 0.30-diameter

80 Sheila McIlraith, CSC384, University of Toronto, Winter 2014

Example

a

b

c d

on(a,b), on(b,c), ontable(c), ontable(d), clear(a), clear(d), handempty

unstack(a,b) pickup(d)

a b

c d

S0 A0

on(a,b), on(b,c), ontable(c), ontable(d), clear(a), handempty, clear(d), holding(a), clear(b), holding(d)

a d

this is not a state!

S1

Page 81: CSC384: Intro to Artificial Intelligencesheila/384/w14/Lectures/csc384w14-Lecture-06... · 03 Establish datum point at bullseye (0.25, 1.00) 001 B VMC1 0.10 0.43 01 Install 0.30-diameter

81 Sheila McIlraith, CSC384, University of Toronto, Winter 2014

Example

on(a,b), on(b,c), ontable(c), ontable(d), clear(a), clear(d), handempty, holding(a), clear(b), holding(d)

S1

putdown(a), putdown(d), stack(a,b), stack(a,a), stack(d,b), stack(d,a), pickup(d), … unstack(b,c) …

A1

Page 82: CSC384: Intro to Artificial Intelligencesheila/384/w14/Lectures/csc384w14-Lecture-06... · 03 Establish datum point at bullseye (0.25, 1.00) 001 B VMC1 0.10 0.43 01 Install 0.30-diameter

82 Sheila McIlraith, CSC384, University of Toronto, Winter 2014

Reachabilty

• We continue until:

• the goal G is contained in the state layer, or

• until the state layer no longer changes (reached fix point).

• Intuitively:

• the actions at level Ai are the actions that could be

executed at the i-th step of some plan, and

• the facts in level Si are the facts that could be made true

within a plan of length i.

• Some of the actions/facts have this property.

But not all!

Page 83: CSC384: Intro to Artificial Intelligencesheila/384/w14/Lectures/csc384w14-Lecture-06... · 03 Establish datum point at bullseye (0.25, 1.00) 001 B VMC1 0.10 0.43 01 Install 0.30-diameter

83 Sheila McIlraith, CSC384, University of Toronto, Winter 2014

Reachability

a

b c

on(a,b), ontable(c), ontable(b), clear(a), clear(c), handempty

unstack(a,b) pickup(c)

S0 A0

on(a,b), ontable(c), ontable(b), clear(a), clear(c), handempty, holding(a), clear(b), holding(c)

S1

stack(c,b) …

A1

on(c,b), …

but stack(c,b) cannot be executed after one

step

to reach on(c,b)

requires 4 actions

a

b c

on(a,b), ontable(c), ontable(b), clear(a), clear(c), handempty

Page 84: CSC384: Intro to Artificial Intelligencesheila/384/w14/Lectures/csc384w14-Lecture-06... · 03 Establish datum point at bullseye (0.25, 1.00) 001 B VMC1 0.10 0.43 01 Install 0.30-diameter

84 Sheila McIlraith, CSC384, University of Toronto, Winter 2014

Heuristics from Reachability Analysis

Grow the levels until the goal is contained in the final

state level SK.

• If the state level stops changing and the goal is not

present: The goal is unachievable under the assumption

that (a) the goal is a set of positive facts, and (b) all

preconditions are positive facts.

• Then do the following

Page 85: CSC384: Intro to Artificial Intelligencesheila/384/w14/Lectures/csc384w14-Lecture-06... · 03 Establish datum point at bullseye (0.25, 1.00) 001 B VMC1 0.10 0.43 01 Install 0.30-diameter

85 Sheila McIlraith, CSC384, University of Toronto, Winter 2014

Heuristics from Reachability Analysis

CountActions(G,SK):

/* Compute the number of actions contained in a relaxed plan

achieving the goal. */

• Split G into facts in SK-1 and elements in SK only.

• GP contains the previously achieved (in SK-1) and

• GN contains the just achieved parts of G (only in SK).

• Find a minimal set of actions A whose add effects cover GN.

• may contain no redundant actions,

• but may not be the minimum sized set (computing the minimum

sized set of actions is the set cover problem and is NP-Hard)

• NewG := SK-1 U preconditions of A.

• return CountAction(NewG,SK-1) + size(A)

Page 86: CSC384: Intro to Artificial Intelligencesheila/384/w14/Lectures/csc384w14-Lecture-06... · 03 Establish datum point at bullseye (0.25, 1.00) 001 B VMC1 0.10 0.43 01 Install 0.30-diameter

86 Sheila McIlraith, CSC384, University of Toronto, Winter 2014

Heuristics from Reachability Analysis

CountActions(G,SK):

/* Compute the number of actions contained in a relaxed plan

achieving the goal. */

• Split G into facts in SK-1 and elements in SK only.

• GP contains the previously achieved (in SK-1) and

• GN contains the just achieved parts of G (only in SK).

• Find a minimal set of actions A whose add effects cover GN.

• may contain no redundant actions,

• but may not be the minimum sized set (computing the minimum

sized set of actions is the set cover problem and is NP-Hard)

• NewG := GP U preconditions of A.

• return CountAction(NewG,SK-1) + size(A)

Page 87: CSC384: Intro to Artificial Intelligencesheila/384/w14/Lectures/csc384w14-Lecture-06... · 03 Establish datum point at bullseye (0.25, 1.00) 001 B VMC1 0.10 0.43 01 Install 0.30-diameter

87 Sheila McIlraith, CSC384, University of Toronto, Winter 2014

Example

legend: [pre]act[add]

S0 = {f1, f2, f3}

A0 = {[f1]a1[f4], [f2]a2[f5]}

Goal: f6,f5,f1

Actions:

[f1]a1[f4]

[f2]a2[f5]

[f2,f4,f5]a3[f6

Page 88: CSC384: Intro to Artificial Intelligencesheila/384/w14/Lectures/csc384w14-Lecture-06... · 03 Establish datum point at bullseye (0.25, 1.00) 001 B VMC1 0.10 0.43 01 Install 0.30-diameter

88 Sheila McIlraith, CSC384, University of Toronto, Winter 2014

Example

legend: [pre]act[add]

S0 = {f1, f2, f3}

A0 = {[f1]a1[f4], [f2]a2[f5]}

S1 = {f1,f2,f3,f4,f5}

Goal: f6,f5,f1

Actions:

[f1]a1[f4]

[f2]a2[f5]

[f2,f4,f5]a3[f6

Page 89: CSC384: Intro to Artificial Intelligencesheila/384/w14/Lectures/csc384w14-Lecture-06... · 03 Establish datum point at bullseye (0.25, 1.00) 001 B VMC1 0.10 0.43 01 Install 0.30-diameter

89 Sheila McIlraith, CSC384, University of Toronto, Winter 2014

Example

legend: [pre]act[add]

S0 = {f1, f2, f3}

A0 = {[f1]a1[f4], [f2]a2[f5]}

S1 = {f1,f2,f3,f4,f5}

A1 = {[f2,f4,f5]a3[f6]}

Goal: f6,f5,f1

Actions:

[f1]a1[f4]

[f2]a2[f5]

[f2,f4,f5]a3[f6

Page 90: CSC384: Intro to Artificial Intelligencesheila/384/w14/Lectures/csc384w14-Lecture-06... · 03 Establish datum point at bullseye (0.25, 1.00) 001 B VMC1 0.10 0.43 01 Install 0.30-diameter

90 Sheila McIlraith, CSC384, University of Toronto, Winter 2014

Example

legend: [pre]act[add]

S0 = {f1, f2, f3}

A0 = {[f1]a1[f4], [f2]a2[f5]}

S1 = {f1,f2,f3,f4,f5}

A1 = {[f2,f4,f5]a3[f6]}

S2 ={f1,f2,f3,f4,f5,f6}

Goal: f6,f5,f1

Actions:

[f1]a1[f4]

[f2]a2[f5]

[f2,f4,f5]a3[f6

Page 91: CSC384: Intro to Artificial Intelligencesheila/384/w14/Lectures/csc384w14-Lecture-06... · 03 Establish datum point at bullseye (0.25, 1.00) 001 B VMC1 0.10 0.43 01 Install 0.30-diameter

91 Sheila McIlraith, CSC384, University of Toronto, Winter 2014

Example

legend: [pre]act[add]

S0 = {f1, f2, f3}

A0 = {[f1]a1[f4], [f2]a2[f5]}

S1 = {f1,f2,f3,f4,f5}

A1 = {[f2,f4,f5]a3[f6]}

S2 ={f1,f2,f3,f4,f5,f6}

G = {f6,f5,f1}

Page 92: CSC384: Intro to Artificial Intelligencesheila/384/w14/Lectures/csc384w14-Lecture-06... · 03 Establish datum point at bullseye (0.25, 1.00) 001 B VMC1 0.10 0.43 01 Install 0.30-diameter

92 Sheila McIlraith, CSC384, University of Toronto, Winter 2014

Example

legend: [pre]act[add]

S0 = {f1, f2, f3}

A0 = {[f1]a1[f4], [f2]a2[f5]}

S1 = {f1,f2,f3,f4,f5}

A1 = {[f2,f4,f5]a3[f6]}

S2 ={f1,f2,f3,f4,f5,f6}

G = {f6,f5, f1}

We split G into GP and GN:

Goal: f6,f5,f1

Actions:

[f1]a1[f4]

[f2]a2[f5]

[f2,f4,f5]a3[f6

Page 93: CSC384: Intro to Artificial Intelligencesheila/384/w14/Lectures/csc384w14-Lecture-06... · 03 Establish datum point at bullseye (0.25, 1.00) 001 B VMC1 0.10 0.43 01 Install 0.30-diameter

93 Sheila McIlraith, CSC384, University of Toronto, Winter 2014

Example

legend: [pre]act[add]

S0 = {f1, f2, f3}

A0 = {[f1]a1[f4], [f2]a2[f5]}

S1 = {f1,f2,f3,f4,f5}

A1 = {[f2,f4,f5]a3[f6]}

S2 ={f1,f2,f3,f4,f5,f6}

G = {f6,f5,f1}

GN = {f6} (newly achieved)

Gp = {f5, f1} (achieved before)

Page 94: CSC384: Intro to Artificial Intelligencesheila/384/w14/Lectures/csc384w14-Lecture-06... · 03 Establish datum point at bullseye (0.25, 1.00) 001 B VMC1 0.10 0.43 01 Install 0.30-diameter

94 Sheila McIlraith, CSC384, University of Toronto, Winter 2014

Example

CountActs(G,S2)

GP ={f5, f1} //already in S1

GN = {f6} //New in S2

A = {a3} //adds all in GN

//the new goal: GP Pre(A)

G1 = {f5,f1,f2,f4}

Return 1 + CountActs(G1,S1)

legend: [pre]act[add]

S0 = {f1, f2, f3}

A0 = {[f1]a1[f4], [f2]a2[f5]}

S1 = {f1,f2,f3,f4,f5}

A1 = {[f2,f4,f5]a3[f6]}

S2 ={f1,f2,f3,f4,f5,f6}

G = {f6,f5, f1}

We split G into GP and GN:

Page 95: CSC384: Intro to Artificial Intelligencesheila/384/w14/Lectures/csc384w14-Lecture-06... · 03 Establish datum point at bullseye (0.25, 1.00) 001 B VMC1 0.10 0.43 01 Install 0.30-diameter

95 Sheila McIlraith, CSC384, University of Toronto, Winter 2014

Example Now, we are at level S1

S0 = {f1, f2, f3}

A0 = {[f1]a1[f4], [f2]a2[f5]}

S1 = {f1,f2,f3,f4,f5}

A1 = {[f2,f4,f5]a3[f6]}

S2 ={f1,f2,f3,f4,f5,f6}

G1 = {f5,f1,f2,f4}

CountActs(G1,S1)

Page 96: CSC384: Intro to Artificial Intelligencesheila/384/w14/Lectures/csc384w14-Lecture-06... · 03 Establish datum point at bullseye (0.25, 1.00) 001 B VMC1 0.10 0.43 01 Install 0.30-diameter

96 Sheila McIlraith, CSC384, University of Toronto, Winter 2014

Example Now, we are at level S1

S0 = {f1, f2, f3}

A0 = {[f1]a1[f4], [f2]a2[f5]}

S1 = {f1,f2,f3,f4,f5}

A1 = {[f2,f4,f5]a3[f6]}

S2 ={f1,f2,f3,f4,f5,f6}

G1 = {f5,f1,f2,f4}

We split G1 into GP and GN:

CountActs(G1,S1)

Page 97: CSC384: Intro to Artificial Intelligencesheila/384/w14/Lectures/csc384w14-Lecture-06... · 03 Establish datum point at bullseye (0.25, 1.00) 001 B VMC1 0.10 0.43 01 Install 0.30-diameter

97 Sheila McIlraith, CSC384, University of Toronto, Winter 2014

Example Now, we are at level S1

S0 = {f1, f2, f3}

A0 = {[f1]a1[f4], [f2]a2[f5]}

S1 = {f1,f2,f3,f4,f5}

A1 = {[f2,f4,f5]a3[f6]}

S2 ={f1,f2,f3,f4,f5,f6}

G1 = {f5,f1,f2,f4}

We split G1 into GP and GN:

GN = {f5,f4}

GP = {f1,f2}

CountActs(G1,S1) GP ={f1,f2} //already in S0

GN = {f4,f5} //New in S1

A = {a1,a2} //adds all in GN

//the new goal: GP Pre(A)

G2 = {f1,f2}

Return

2 + CountActs(G2,S0)

Page 98: CSC384: Intro to Artificial Intelligencesheila/384/w14/Lectures/csc384w14-Lecture-06... · 03 Establish datum point at bullseye (0.25, 1.00) 001 B VMC1 0.10 0.43 01 Install 0.30-diameter

98 Sheila McIlraith, CSC384, University of Toronto, Winter 2014

Example Now, we are at level S1

S0 = {f1, f2, f3}

A0 = {[f1]a1[f4], [f2]a2[f5]}

S1 = {f1,f2,f3,f4,f5}

A1 = {[f2,f4,f5]a3[f6]}

S2 ={f1,f2,f3,f4,f5,f6}

G2 = {f1,f2}

We split G2 into GP and GN:

GN = {f1,f2}

GP = {}

CountActs(G2,S0)

GN ={f1,f2} //already in S0

GP = {} //New in S1

A = {} //No actions needed.

Return

0

Page 99: CSC384: Intro to Artificial Intelligencesheila/384/w14/Lectures/csc384w14-Lecture-06... · 03 Establish datum point at bullseye (0.25, 1.00) 001 B VMC1 0.10 0.43 01 Install 0.30-diameter

99 Sheila McIlraith, CSC384, University of Toronto, Winter 2014

Example Now, we are at level S1

S0 = {f1, f2, f3}

A0 = {[f1]a1[f4], [f2]a2[f5]}

S1 = {f1,f2,f3,f4,f5}

A1 = {[f2,f4,f5]a3[f6]}

S2 ={f1,f2,f3,f4,f5,f6}

G2 = {f1,f2}

We split G2 into GP and GN:

GN = {f1,f2}

GP = {}

CountActs(G2,S0)

GN ={f1,f2} //already in S0

GP = {} //New in S1

A = {} //No actions needed.

Return

0

So, in total CountActs(G,S2)=1+2+0=3

Page 100: CSC384: Intro to Artificial Intelligencesheila/384/w14/Lectures/csc384w14-Lecture-06... · 03 Establish datum point at bullseye (0.25, 1.00) 001 B VMC1 0.10 0.43 01 Install 0.30-diameter

100 Sheila McIlraith, CSC384, University of Toronto, Winter 2014

Using the Heuristic

• First, build a layered structure from a state S that reaches a

goal state.

• CountActions: counts how many actions are required in a

relaxed plan.

• Use this as our heuristic estimate of the distance of S to the

goal.

• This heuristic tends to work better with greedy best-first

search rather than A* search

• That is when we ignore the cost of getting to the current

state.

Page 101: CSC384: Intro to Artificial Intelligencesheila/384/w14/Lectures/csc384w14-Lecture-06... · 03 Establish datum point at bullseye (0.25, 1.00) 001 B VMC1 0.10 0.43 01 Install 0.30-diameter

101 Sheila McIlraith, CSC384, University of Toronto, Winter 2014

Admissibility

• A minimum sized plan in the delete relaxed problem would be a lower bound on the optimal size of a plan in the real problem. And could serve as an admissible heuristic for A*.

• However, CountActions does NOT compute the length of the optimal relaxed plan. • The choice of which action set to use to achieve GP

(“just achieved part of G”) is not necessarily optimal – it is minimal, but not necessary a minimum.

• Furthermore even if we picked a true minimum set A at each stage of CountActions, we might not obtain a minimum set of actions for the entire plan---the set A picked at each state influences what set can be used at the next stage!

Page 102: CSC384: Intro to Artificial Intelligencesheila/384/w14/Lectures/csc384w14-Lecture-06... · 03 Establish datum point at bullseye (0.25, 1.00) 001 B VMC1 0.10 0.43 01 Install 0.30-diameter

102 Sheila McIlraith, CSC384, University of Toronto, Winter 2014

Admissibility

• It is NP-Hard to compute the optimal length plan even in the relaxed plan space. • So CountActions cannot be made into an admissible

heuristic without making it much harder to compute.

• Empirically, refinements of CountActions performs very well on a number of sample planning domains.

Page 103: CSC384: Intro to Artificial Intelligencesheila/384/w14/Lectures/csc384w14-Lecture-06... · 03 Establish datum point at bullseye (0.25, 1.00) 001 B VMC1 0.10 0.43 01 Install 0.30-diameter

103 Sheila McIlraith, CSC384, University of Toronto, Winter 2014

Beyond STRIPS

STRIPS operators are not very expressive and as a

consequence not as compact as they might be.

ADL (Action Description Language) extends the

expressivity of STRIPS

Page 104: CSC384: Intro to Artificial Intelligencesheila/384/w14/Lectures/csc384w14-Lecture-06... · 03 Establish datum point at bullseye (0.25, 1.00) 001 B VMC1 0.10 0.43 01 Install 0.30-diameter

104 Sheila McIlraith, CSC384, University of Toronto, Winter 2014

ADL Operators.

ADL operators add a number of features to STRIPS.

1. Their preconditions can be arbitrary formulas, not just a

conjunction of facts.

2. They can have conditional and universal effects.

3. Open world assumption:

1. States can have negative literals

2. The effect (P∧¬Q) means add P and ¬Q but delete ¬ P and Q.

But ADL operators must still specify atomic changes to the

knowledge base (add or delete ground atomic facts).

Page 105: CSC384: Intro to Artificial Intelligencesheila/384/w14/Lectures/csc384w14-Lecture-06... · 03 Establish datum point at bullseye (0.25, 1.00) 001 B VMC1 0.10 0.43 01 Install 0.30-diameter

105 Sheila McIlraith, CSC384, University of Toronto, Winter 2014

ADL Operators Examples.

move(X,Y,Z)

Pre: on(X,Y) clear(Z)

Effs: ADD[on(X,Z)]

DEL[on(X,Y)]

Z table DEL[clear(Z)]

Y table ADD[clear(Y)]

Page 106: CSC384: Intro to Artificial Intelligencesheila/384/w14/Lectures/csc384w14-Lecture-06... · 03 Establish datum point at bullseye (0.25, 1.00) 001 B VMC1 0.10 0.43 01 Install 0.30-diameter

106 Sheila McIlraith, CSC384, University of Toronto, Winter 2014

ADL Operators, example

KB = { clear(c), clear(b), on(c,a), on(a,table), on(b,table)}

C A B

C A B

move(c,a,b)

KB = { on(c,b) clear(c), clear(a) on(a,table), on(b,table)}

move(c,a,b) Pre: on(c,a) clear(b) Effs: ADD[on(c,b)] DEL[on(c,a)] b table DEL[clear(b)] a table ADD[clear(a)]

Page 107: CSC384: Intro to Artificial Intelligencesheila/384/w14/Lectures/csc384w14-Lecture-06... · 03 Establish datum point at bullseye (0.25, 1.00) 001 B VMC1 0.10 0.43 01 Install 0.30-diameter

107 Sheila McIlraith, CSC384, University of Toronto, Winter 2014

ADL Operators Examples.

clearTable()

Pre:

Effs: X. on(X,table) DEL[on(X,table)]

Page 108: CSC384: Intro to Artificial Intelligencesheila/384/w14/Lectures/csc384w14-Lecture-06... · 03 Establish datum point at bullseye (0.25, 1.00) 001 B VMC1 0.10 0.43 01 Install 0.30-diameter

108 Sheila McIlraith, CSC384, University of Toronto, Winter 2014

ADL Operators.

1. Arbitrary formulas as preconditions. in a CW-KB we can evaluate whether or not the

preconditions hold for an arbitrary precondition.

2. They can have conditional and universal effects. Similarly we can evaluate the condition to see if the

effect should be applied, and find all bindings for which it should be applied.

Specify atomic changes to the knowledge base. • CW-KB can be updated just as before.

Page 109: CSC384: Intro to Artificial Intelligencesheila/384/w14/Lectures/csc384w14-Lecture-06... · 03 Establish datum point at bullseye (0.25, 1.00) 001 B VMC1 0.10 0.43 01 Install 0.30-diameter

109 Sheila McIlraith, CSC384, University of Toronto, Winter 2014

Example

CountActs(G,S2)

GP ={f5, f1} //already in S1

GN = {f6} //New in S2

A = {a3} //adds all in GN

//the new goal: GP Pre(A)

G1 = {f5,f1,f2,f4}

Return

1 + CountActs(G1,S1)

legend: [pre]act[add]

S0 = {f1, f2, f3}

A0 = {[f1]a1[f4], [f2]a2[f5]}

S1 = {f1,f2,f3,f4,f5}

A1 = {[f2,f4,f5]a3[f6]}

S2 ={f1,f2,f3,f4,f5,f6}

G = {f6,f5, f1}

We split G into GP and GN:

Page 110: CSC384: Intro to Artificial Intelligencesheila/384/w14/Lectures/csc384w14-Lecture-06... · 03 Establish datum point at bullseye (0.25, 1.00) 001 B VMC1 0.10 0.43 01 Install 0.30-diameter

142 Sheila McIlraith, CSC384, University of Toronto, Winter 2014

Beyond STRIPS

STRIPS operators are not very expressive and as a

consequence not as compact as they might be.

ADL (Action Description Language) extends the

expressivity of STRIPS

Page 111: CSC384: Intro to Artificial Intelligencesheila/384/w14/Lectures/csc384w14-Lecture-06... · 03 Establish datum point at bullseye (0.25, 1.00) 001 B VMC1 0.10 0.43 01 Install 0.30-diameter

143 Sheila McIlraith, CSC384, University of Toronto, Winter 2014

ADL Operators.

ADL operators add a number of features to STRIPS.

1. Their preconditions can be arbitrary formulas, not just a

conjunction of facts.

2. They can have conditional and universal effects.

3. Open world assumption:

1. States can have negative literals

2. The effect (P∧¬Q) means add P and ¬Q but delete ¬ P and Q.

But they must still specify atomic changes to the knowledge

base (add or delete ground atomic facts).

Page 112: CSC384: Intro to Artificial Intelligencesheila/384/w14/Lectures/csc384w14-Lecture-06... · 03 Establish datum point at bullseye (0.25, 1.00) 001 B VMC1 0.10 0.43 01 Install 0.30-diameter

144 Sheila McIlraith, CSC384, University of Toronto, Winter 2014

ADL Operators Examples.

move(X,Y,Z)

Pre: on(X,Y) clear(Z)

Effs: ADD[on(X,Z)]

DEL[on(X,Y)]

Z table DEL[clear(Z)]

Y table ADD[clear(Y)]

Page 113: CSC384: Intro to Artificial Intelligencesheila/384/w14/Lectures/csc384w14-Lecture-06... · 03 Establish datum point at bullseye (0.25, 1.00) 001 B VMC1 0.10 0.43 01 Install 0.30-diameter

145 Sheila McIlraith, CSC384, University of Toronto, Winter 2014

ADL Operators, example

KB = { clear(c), clear(b),

on(c,a),

on(a,table),

on(b,table)}

C A B

C A B

move(c,a,b)

KB = { on(c,b)

clear(c), clear(a)

on(a,table),

on(b,table)}

move(c,a,b) Pre: on(c,a) clear(b) Effs: ADD[on(c,b)] DEL[on(c,a)] b table DEL[clear(b)] a table ADD[clear(a)]

Page 114: CSC384: Intro to Artificial Intelligencesheila/384/w14/Lectures/csc384w14-Lecture-06... · 03 Establish datum point at bullseye (0.25, 1.00) 001 B VMC1 0.10 0.43 01 Install 0.30-diameter

146 Sheila McIlraith, CSC384, University of Toronto, Winter 2014

ADL Operators Examples.

clearTable()

Pre:

Effs: X. on(X,table) DEL[on(X,table)]

Page 115: CSC384: Intro to Artificial Intelligencesheila/384/w14/Lectures/csc384w14-Lecture-06... · 03 Establish datum point at bullseye (0.25, 1.00) 001 B VMC1 0.10 0.43 01 Install 0.30-diameter

147 Sheila McIlraith, CSC384, University of Toronto, Winter 2014

ADL Operators.

1. Arbitrary formulas as preconditions. in a CW-KB we can evaluate whether or not the

preconditions hold for an arbitrary precondition.

2. They can have conditional and universal effects. Similarly we can evaluate the condition to see if the

effect should be applied, and find all bindings for which it should be applied.

Specify atomic changes to the knowledge base. • CW-KB can be updated just as before.