Redux: Rapid Model Building Douglas Pearson, Ph.D. Professor John Laird ThreePenny Software University of Michigan

Slides:



Advertisements
Similar presentations
Learning Procedural Planning Knowledge in Complex Environments Douglas Pearson March 2004.
Advertisements

Microsoft® Access® 2010 Training
1 Update on Learning By Observation Learning from Positive Examples Only Tolga Konik University of Michigan.
Annoucements  Next labs 9 and 10 are paired for everyone. So don’t miss the lab.  There is a review session for the quiz on Monday, November 4, at 8:00.
Data Mining Methodology 1. Why have a Methodology  Don’t want to learn things that aren’t true May not represent any underlying reality ○ Spurious correlation.
The design process IACT 403 IACT 931 CSCI 324 Human Computer Interface Lecturer:Gene Awyzio Room:3.117 Phone:
Evaluating Requirements. Outline Brief Review Stakeholder Review Requirements Analysis Summary Activity 1.
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 17 Slide 1 Rapid software development.
Konstanz, Jens Gerken ZuiScat An Overview of data quality problems and data cleaning solution approaches Data Cleaning Seminarvortrag: Digital.
Knowledge Acquisitioning. Definition The transfer and transformation of potential problem solving expertise from some knowledge source to a program.
1 Learning from Behavior Performances vs Abstract Behavior Descriptions Tolga Konik University of Michigan.
©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 8 Slide 1 Software Prototyping l Rapid software development.
Redux Update: Building Rules from Examples Douglas Pearson John Laird ThreePenny Software University of Michigan
These courseware materials are to be used in conjunction with Software Engineering: A Practitioner’s Approach, 6/e and are provided with permission by.
Overview of Software Requirements
Software Testing. “Software and Cathedrals are much the same: First we build them, then we pray!!!” -Sam Redwine, Jr.
1 CMSC 132: Object-Oriented Programming II Software Development III Department of Computer Science University of Maryland, College Park.
© 2006, Cognizant Technology Solutions. All Rights Reserved. The information contained herein is subject to change without notice. Automation – How to.
Software Reengineering 2003 년 12 월 2 일 최창익, 고광 원.
Software design and development Marcus Hunt. Application and limits of procedural programming Procedural programming is a powerful language, typically.
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 17 Slide 1 Extreme Programming.
©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 8 Slide 1 Software Prototyping l Rapid software development to validate requirements l.
The design process z Software engineering and the design process for interactive systems z Standards and guidelines as design rules z Usability engineering.
©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 8 Slide 1 Software Prototyping l Rapid software development to validate requirements.
Katanosh Morovat.   This concept is a formal approach for identifying the rules that encapsulate the structure, constraint, and control of the operation.
WorkPlace Pro Utilities.
ITEC224 Database Programming
Interpreted Declarative Representations of Task Knowledge June 21, 2012 Randolph M. Jones, PhD.
Writing Quality Requirements Karl E. Wiegers Presented by: Ricardo Carlos.
OHTO -99 SOFTWARE ENGINEERING “SOFTWARE PRODUCT QUALITY” Today: - Software quality - Quality Components - ”Good” software properties.
11 C H A P T E R Artificial Intelligence and Expert Systems.
Detailed design – class design Domain Modeling SE-2030 Dr. Rob Hasker 1 Based on slides written by Dr. Mark L. Hornick Used with permission.
©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 8 Slide 1 Software Prototyping l Rapid software development to validate requirements.
Object-Oriented Software Engineering Practical Software Development using UML and Java Chapter 7: Focusing on Users and Their Tasks.
Just as there are many human languages, there are many computer programming languages that can be used to develop software. Some are named after people,
Rapid software development 1. Topics covered Agile methods Extreme programming Rapid application development Software prototyping 2.
OHTO -99 SOFTWARE ENGINEERING “SOFTWARE PRODUCT QUALITY” Today: - Software quality - Quality Components - ”Good” software properties.
1 Introduction to Software Engineering Lecture 1.
Systems Life Cycle A2 Module Heathcote Ch.38.
© Janice Regan, CMPT 300, May CMPT 300 Introduction to Operating Systems Memory: Relocation.
Systems Analysis and Design in a Changing World, Fourth Edition
University of Windsor School of Computer Science Topics in Artificial Intelligence Fall 2008 Sept 11, 2008.
1 Version /05/2004 © 2004 Robert Oshana Requirements Engineering Use cases.
Chap#11 What is User Support?
Operating Systems Lecture 14 Segments Adapted from Operating Systems Lecture Notes, Copyright 1997 Martin C. Rinard. Zhiqing Liu School of Software Engineering.
Requirements Validation
Software Engineering1  Verification: The software should conform to its specification  Validation: The software should do what the user really requires.
Copyright © 2009 Pearson Education, Inc. Publishing as Pearson Addison-Wesley Chapter 4: Events Programming with Alice and Java First Edition by John Lewis.
Topic 4 - Database Design Unit 1 – Database Analysis and Design Advanced Higher Information Systems St Kentigern’s Academy.
Evaluating Requirements
Concepts and Realization of a Diagram Editor Generator Based on Hypergraph Transformation Author: Mark Minas Presenter: Song Gu.
1 Learning through Interactive Behavior Specifications Tolga Konik CSLI, Stanford University Douglas Pearson Three Penny Software John Laird University.
Using Workflow With Dataforms Tim Borntreger, Director of Client Services.
Supporting the design of interactive systems a perspective on supporting people’s work Hans de Graaff 27 april 2000.
What is this? SE-2030 Dr. Mark L. Hornick 1. Same images with different levels of detail SE-2030 Dr. Mark L. Hornick 2.
1 Structured Programming Arab Academy for Science and Technology CC112 Dr. Sherif Mohamed Tawfik The Course.
Algorithms and Problem Solving
Introduction Edited by Enas Naffar using the following textbooks: - A concise introduction to Software Engineering - Software Engineering for students-
Definition CASE tools are software systems that are intended to provide automated support for routine activities in the software process such as editing.
Programming and File Management Part 2
Action Editor Storyboard
HCI in the software process
The design process Software engineering and the design process for interactive systems Standards and guidelines as design rules Usability engineering.
The design process Software engineering and the design process for interactive systems Standards and guidelines as design rules Usability engineering.
Introduction Edited by Enas Naffar using the following textbooks: - A concise introduction to Software Engineering - Software Engineering for students-
Tools of Software Development
HCI in the software process
Test Case Test case Describes an input Description and an expected output Description. Test case ID Section 1: Before execution Section 2: After execution.
HCI in the software process
Presentation transcript:

Redux: Rapid Model Building Douglas Pearson, Ph.D. Professor John Laird ThreePenny Software University of Michigan Supported by the Office of Naval Research

2 What’s Wrong with this Rule? sp { redux*propose*shoot*proposalrule-1 (state ^top-state ) ( ^sel ) ( ^isfriend false ^isthreat true ^isa person) ( ^isfriend true ^isthreat false ^isa person) ( ^cansee ) ( ^name ) ( ^ true) --> ( ^operator +,=) ( ^name shoot ^target ^turn ) ( ^target ^facing 0) } ( ^alive true) Answer #1: A condition is missing Answer #2: It depends on what the rule is meant to do

3 Normal Debugging Cycle Run Model Notice something is wrong Re-run model until just before problem Step through rules to determine why error occurred Modify the rule Re-run and check problem is fixed May be hard to realize when something goes wrong Easy to overshoot; may be slow to repeat or hard to reproduce Easy to make the wrong correction or not fix the whole problem Hard to be sure this fix doesn’t break behavior somewhere else These sorts of problems are very common

4 Imagine a “Smart Editor” sp { redux*propose*shoot*proposalrule-1 (state ^top-state ) ( ^sel ) ( ^isfriend false ^isthreat true ^isa person) ( ^isfriend true ^isthreat false ^isa person) ( ^cansee ) ( ^name ) ( ^ true) --> ( ^operator +,=) ( ^name shoot ^target ^turn ) ( ^target ^facing 0) } Problem: This rule will keep firing. Solution: Did you miss a condition? Add ( ^alive true)?

5 Need to Specify What Should Happen Formal specification / high level language? –Problems: Tends to become as complex as underlying solution Now debugging the specification (is this easier?) –Can be done (assembler->C++) but rare to succeed Specify through examples –Particular instances reduce complexity –But may not get full coverage (or examples conflict)

6 Specification vs Exemplar Define the category Dog –4 Legs –Furry –Tail “Spot” –3 Legs –No fur –No tail Formal specification is hard and tends to get harder as the problem gets more complicated Software Engineering – move to “use cases” for specification

7 How to Define an Example of Behavior? Text specification (Menus, Dialogs etc.) –E.g. Shoot Threat-1 –Best solution sometimes Visual specification –E.g. Move to 6 feet west of Door-1 –In many cases easier to use –Nice to allow this form of specification as well Need to specify a sequence of goals & operators

8 Redux: Rapid Behavior Acquisition from Diagrams Using Examples A -> B C -> D E, J -> F G, A, C -> H E, G -> I J, K -> L Executable Code Analysis & generation tools Detect inconsistency Generalize Generate rules Simulate execution Simulation Environment KEExpert Library of validated behavior examples Define behavior with diagram-based examples

9 Specify Desired Behavior Shoot(door-1) Add-Goal Clear-Room(room-1 ) Move (10ft left of sofa) Shoot (threat-1)

10 Visualization Can Take Many Forms For some problems this view may be better –Time and space vary differently here –Can edit in this view too Just assume there is some way to visualize problem

11 Rule Creation by Feature Picking One way to create rules, but there are other options…

12 Faster Rule Creation Type rule directly Select features manually from example Select features automatically based on example –“Guess” based on situation (domain specific currently) –“Guess” based on ILP from examples (Tolga) (Goals, State, Operator)->Yes or (Goals, State, Operator)->No Learn to predict when to select the operator In each case refine the rules manually –Better guesses just speed up rule creation –Few features/conditions -> general rule –More features/conditions-> specific rule

13 Close to the “Smart Editor” sp { redux*propose*shoot*proposalrule-1 (state ^top-state ) ( ^sel ) ( ^isfriend false ^isthreat true ^isa person) ( ^isfriend true ^isthreat false ^isa person) ( ^cansee ) ( ^name ) ( ^ true) --> ( ^operator +,=) ( ^name shoot ^target ^turn ) ( ^target ^facing 0) } Problem: This rule will keep firing. Solution: Did you miss a condition? Add ( ^alive true)?

14 Automatic Rule Verification –Detect missing conditions and overgeneral tests –Detect underspecified choice points –Detect overspecific conditions –Will suggest solutions later (e.g. based on state deltas)

15 Negative examples –What not to do –Explicitly avoid bad choices Specify Alternative Behaviors Actions can have multiple outcomes Can specify different choices (e.g. stand and shoot or flee) Improves robustness More efficient example creation

16 Coordinate Systems for Generalizing Spatial Actions Move-to (240,80) doesn’t generalize. Change coordinate system to be relative to an object. Specified visually in one or two clicks Allows –Move through door –Move to left of door –Follow person –Move toward person –Move away from table –Etc.

17 Regions for Generalizing Positional Information Distance-to-door (161) doesn’t generalize. Replace with series of regions (e.g ) Create semantically meaningful regions on demand

18 Hierarchical Goals and Goal Creation Decompose tasks into subgoals Decisions based on current goal are more general Creation of new goals –Text dialog to define class (once) –Visual prompts for goal instance –Added to goal stack

19 Detect Inconsistencies Across Examples Generate rules from example library Execute rules on example scenarios Detect when rule behavior ≠ expert behavior Ensures correctness Example Library A -> B C -> D E, J -> F Generalization Rule GenerationEnvironment Simulation correct?

20 Learn Tactics for all Entities Specify tactics for many entities in single example –Friendly forces –Adversary forces –Neutrals

21 Tool is Expressive and Efficient RETE provides efficient rule matching Jess inclusion allows rules to include complex conditions: –Negations, relational tests (e.g. x closer-than y), disjunctions, etc. (Integration with Soar still needs to become easier) Results from Rule Firings Jess RETE Matcher Internal Rules Analysis & User Feedback External Rules Redux Jess Simulation

22 Use Tool in Multiple Domains SMEKE Define behavior with diagram-based examples Library of validated behavior examples A -> B C -> D E, J -> F G, A, C -> H E, G -> I J, K -> L Rules (Soar) Analysis & generation tools Detect inconsistency Generalize Generate rules Simulate execution Simulation Environment 90% of code base is domain independent

23 Use Same Tool for Air Domain

24 Nuggets Tool with many capabilities –Diagram specification with branches, negations etc. –Rule generation –Automatic verification –Generalized spatial action –Generalized positional information –Hierarchical goals and dynamic goal creation –Jess / RETE integration Current Status –Rapidly from diagram input to rules (e.g. 22 rooms+doors, 19 states and 12 rules in < 15 mins.) –Is this fast? Only at the mid-point of project –Want to involve potential users now Using Redux “feels right” so far –Hard tasks are still hard (this is good – suggests no magic) –Feels like Soar programming (this is also good) –Highly constrained by examples (this is very good)

25 Coal Future Work –Extending to support a library of examples –Extending the state representation (by the user) –Extending to state elaboration and operator implementation rules –Including learning component What do we really have here? –End-user programming tool (seems unlikely) –End-user maintenance tool –End-user specification tool –Knowledge engineer tool –Rapid prototyping tool –Teaching tool –Formal specification and verification tool –Integrated specification, rule creation and environment tool (one JAR file) Larger questions –How expensive to tailor to a new domain / type of visualization ? –Will Redux rules really map well to Soar rules in real environment? –Are we focusing on the hard part of the task?

26 “The primary concern for commercialization is the ability to build and maintain the systems we want quickly and cheaply.” - A distinguished Professor living in Maine

27 The End A -> B C -> D E, J -> F G, A, C -> H E, G -> I J, K -> L Executable Code Analysis & generation tools Detect inconsistency Generalize Generate rules Simulate execution Simulation Environment KEExpert Library of validated behavior examples Define behavior with diagram-based examples