220 likes | 360 Views
Active and Passive Constraint Enforcement for Activity Planning. Paul H. Morris and John L. Bresina NASA Ames Research Center Moffett Field, California. Max science Especially mine! Min resource margins. Scientists. Priorities & Constraints. Rover Activity Instances. Rover Driver.
E N D
Active and Passive Constraint Enforcement for Activity Planning Paul H. Morris and John L. Bresina NASA Ames Research Center Moffett Field, California
Max science Especially mine! Min resource margins Scientists Priorities & Constraints RoverActivityInstances Rover Driver Guidance; Approval InitialConditions Simple plan structure Safe resource margins MER activity planning Maximize science while obeying flight rules & science intent and staying within resource limits InstrumentActivity Instances MAPGEN User Instrument Experts Analyzers of data from rover Mission Management
Mer Constraint Handling MAPGEN = Apgen + Europa passive checking active enforcement
Next Generation System: Ensemble • Client/Server/Plugin architecture • Mixed-initiative Activity-Planning component • MSLICE for Mars Science Laboratory (MSL) mission • PSI for Phoenix mission • Bedrest Medical Study and Crew Scheduling applications • Active and Passive Constraint Enforcement
Passive Versus Active • Passive enforcement detects constraint violations • time of violation • nature of violation • state requirement • resource requirement • direct temporal constraint • culprit activities • Active enforcement fixes constraint violations • move activities to ok times • under user control • User can also fix • move activities to ok times • add enabling activities • delete disabling activities
Example: Med Plan Violation Breakfast 12 hr. fasting Glucose Test violation 1 pm 8 am Fix
State Constraint Categories • Simple Mutual Exclusion • subject can do only one activity at a time • Complex Mutual Exclusion • daytime activities can’t overlap nighttime activities • Blackout Exclusion • no meal for 12 hrs before glucose test • no exercise for 2 hrs after meal • Window of Opportunity • Comm activity only during DSN window • Persistent state change • clean room (stays clean until dirty action) • stow vacuum cleaner (stays stowed until unstow action)
no exercise Breakfast no exercise Lunch Why Distinguish? • All are examples of state changes & requirements • BUT may differ in the way state changes combine: false true false true Blackouts can merge false/false/true = false “additive” combination
not dirty Clean not dirty Clean Why Distinguish? • BUT may differ in the way state changes combine: false true Dirty Dirty false true false/false/true = true “Markov” combination
Why Distinguish? • BUT may differ in the way state changes combine: false not unstowed Stow not unstowed Stow false Double stowing is a violation
Europa Engine Capabilities • Numerical Resource mechanism • resource violation flaws • use for passive enforcement • must encode states numerically • Activity Timeline mechanism • generation & placement of subgoals • use for active enforcement • must encode restrictions as subgoals • Temporal Consistency checking • Backtracking Solver
Double-false Violation -1000 not unstowed Stow not unstowed Stow -1000 1000 0 -1000 violation
no exercise Breakfast no exercise Lunch Combination of Blackouts -1000 +1000 -1000 +1000 1000 0 -1000 Filter multiples of -1000
not dirty Clean not dirty Clean “Markov” Combination false true Dirty Dirty false true Use Saturation arithmetic with [0, 1000] bounds: 1000 + 1000 ≈ 1000 0 - 1000 ≈ 0 x = rem(x-1, 1000) + 1 [Ada/CL rem: same sign as dividend]
Culprit IdentificationAuto “ran-out-of-gas” example Culprit is trip2 only (“fill-up” wipes memory)
true no exercise Culprit Identification false Breakfast Exercise 1000 “full” violation 0 -1 Culprits
Europa Engine Capabilities • Numerical Resource mechanism • resource violation flaws • use for passive enforcement • must encode states numerically • Activity Timeline mechanism • generation & placement of subgoals • use for active enforcement • must encode restrictions as subgoals • Temporal Consistency checking • Backtracking Solver
Active Enforcement Breakfast subgoal Exercise-Blocked Exercise-Avail exercise availability timeline subgoal Exercise
Active Enforcement:Merged Blackout Subgoals Breakfast subgoal Exercise-Blocked exercise availability timeline subgoal Lunch
Problems with Subgoal Merge • Can’t “insert between” after merge • Decision to merge may be premature • May lead to backtracking • Merge or Not-Merge alternatives • More backtracking choices • Merging may “pull” activities together Alternatives • Use multiple timelines for concurrency • Use active resource mechanism instead of timelines
Future Work • Short-term: experiment with different Europa implementation strategies. • Long-term: Import higher-level resource types into core Europa engine, including state resources. • Both active and passive enforcement built into single higher-level type. • Identify new constraint categories that arise in new applications.