AN INTEGRATED MODELING, DEBUGGING & VISUALIZATION ENVIRONMENT FOR G12 Presented by Heath Roehr

advertisement
AN INTEGRATED MODELING,
DEBUGGING & VISUALIZATION
ENVIRONMENT FOR G12
Andreas Bauer,Viorica Botea, Mark Brown,
Matt Gray, Daniel Harabor & John Slaney
CP 2010, 522—536
Presented by Heath Roehr
OUTLINE
 The G12 Platform
 Zinc: Constraint Modeling Language
 The G12 IDE
 Modeling Layer: Meet-Pass Scenario
 Solving Layer
 Visualization Layer
 Debugging with the G12 IDE
 Conclusion & Questions
HEATH ROEHR
2
G12 PLATFORM
• Software platform for solving large-scale
combinatorial optimization problems
• Supports
• Linear & mixed integer programming
• Constraint propagation & inference
┼ A variety of other search & inference techniques for
solving complex problems
HEATH ROEHR
3
ZINC: MODELING LANGUAGE OF G12
• Zinc is a first-order functional language with simple,
declarative semantics
• Modeling languages separate the constraint model from the
constraint program
• It provides
HEATH ROEHR
•
Mathematical notation-like syntax
•
Expressive constraints (finite domain and integer, set and linear arithmetic)
•
Separation of data from model
•
High-level data structures and data encapsulation including constrained types
•
User defined functions and constraints
4
http://g12.research.nicta.com.au/zinc_current/index_home.php
HEATH ROEHR
5
OUTLINE
 The G12 Platform
 Zinc: Constraint Modeling Language
 The G12 IDE
 Modeling Layer: Meet-Pass Scenario
 Solving Layer
 Visualization Layer
 Debugging with the G12 IDE
 Conclusion & Questions
HEATH ROEHR
6
CP: CHALLENGES
• Solving
The problems are computationally challenging
• Debugging?
Remember your homework...
• Conceptualizing & improving search
Staring at code is not really the smartest strategy
HEATH ROEHR
7
G12
HEATH ROEHR
8
G12
HEATH ROEHR
ARCHITECTURE
9
Write constraint models
in the input languages of
G12 (Zinc & MiniZinc)
HEATH ROEHR
• Vector-oriented drawing tool
• Associated script editor to
build custom animations
10
MEET-PASS SCENARIO
S1
HEATH ROEHR
S2
S3
S4
S5
• Five sectors of railway track, S1, . . . S5,
are linearly connected
• There is a siding accessible from S3
big enough to hold one train
Siding
• Initially, there are trains in sectors S1,
S2 and S4
Constraints
• The safety rules are that
• No two trains may be in the same
sector at the same time
• No train may enter a sector occupied
by another train, even if that other
train is about to move on
• Trains may only move to adjacent
sectors, of course
11
MEET-PASS SCENARIO
• Find the shortest plan that moves the train on
S1 to S5 and returns the other two trains to
their starting positions.
Initial
Goal
HEATH ROEHR
12
MEET-PASS SCENARIO:
A POSSIBLE SOLUTION
Step 0
HEATH ROEHR
13
MEET-PASS SCENARIO:
A POSSIBLE SOLUTION
Step 1
HEATH ROEHR
14
MEET-PASS SCENARIO:
A POSSIBLE SOLUTION
Step 2
HEATH ROEHR
15
MEET-PASS SCENARIO:
A POSSIBLE SOLUTION
Step 3
HEATH ROEHR
16
MEET-PASS SCENARIO:
A POSSIBLE SOLUTION
Step 4
HEATH ROEHR
17
MEET-PASS SCENARIO:
A POSSIBLE SOLUTION
Step 5
HEATH ROEHR
18
MEET-PASS SCENARIO:
A POSSIBLE SOLUTION
Step 6
HEATH ROEHR
19
MEET-PASS SCENARIO:
A POSSIBLE SOLUTION
Step 7
HEATH ROEHR
20
MEET-PASS SCENARIO:
A POSSIBLE SOLUTION
Step 8
HEATH ROEHR
21
MEET-PASS SCENARIO:
A POSSIBLE SOLUTION
Step 9
HEATH ROEHR
22
MEET-PASS SCENARIO:
A POSSIBLE SOLUTION
Step 10
HEATH ROEHR
23
MEET-PASS SCENARIO:
A POSSIBLE SOLUTION
Step 11
HEATH ROEHR
24
MEET-PASS SCENARIO:
A POSSIBLE SOLUTION
Step 12
HEATH ROEHR
25
MEET-PASS SCENARIO:
A POSSIBLE SOLUTION
Step 13
HEATH ROEHR
26
MEET-PASS SCENARIO:
A POSSIBLE SOLUTION
Step 14
HEATH ROEHR
27
MEET-PASS SCENARIO:
A POSSIBLE SOLUTION
Step 15
HEATH ROEHR
28
MEET-PASS SCENARIO:
A POSSIBLE SOLUTION
Step 16
HEATH ROEHR
29
MEET-PASS SCENARIO:
A POSSIBLE SOLUTION
Step 17
HEATH ROEHR
30
MEET-PASS SCENARIO:
A POSSIBLE SOLUTION
Step 18: Solution Found
HEATH ROEHR
31
ZINC EDITOR: MEET-PASS IMPLEMENTATION
• Five sectors of railway track,
S1, . . . S5, are linearly
connected
• There is a siding accessible
from S3 big enough to hold
one train
• Initially, there are trains in
sectors S1, S2 and S4
• Move the train on S1 to S5
and return the other two
trains to their starting
positions.
HEATH ROEHR
32
ZINC EDITOR: MEET-PASS IMPLEMENTATION
• Safety rules
• Specific implementation is
outside the scope of this
talk
• Assume they are accurate
and valid
• Execute the search
HEATH ROEHR
33
ZINC EDITOR: MEET-PASS IMPLEMENTATION
Variable Declaration
Constraints
Variable Definition
HEATH ROEHR
34
ZINC EDITOR: SCREENSHOT
Syntax
highlighting
Outline views
Project-based
code
management
HEATH ROEHR
35
VISUALIZATION EDITOR
• Define arbitrary visualizations
• Vector-based graphics editor
• Script editor
• Scripting language
• Any language that supports java integration
• Python
• Lisp
• Default language is Lua
• Lightweight
• Portable
• Suited for animation: used in video games
HEATH ROEHR
36
VISUALIZATION EDITOR
Vector-based
graphics editor
Graphics
properties
editor
Project-based
code
management
HEATH ROEHR
37
VISUALIZATION EDITOR
• g12GetFromData(var)
• This method fetches the current contents of the decision variable var and makes its
value available to the script.
• g12Draw(obj, props)
• This method sets a list of properties, props, for object obj, where props may
contain items such as the object’s positions on the canvas, color, opacity, scaling
factor, etc.
Written in
Java
Written in
Lua
HEATH ROEHR
38
The actual solver
HEATH ROEHR
Collect detailed
information about the
solving process
Control the starting
& stopping of the
solving process
39
XML-based
messaging
Separate
Processes
HEATH ROEHR
40
Build & display a
constraint graph
Build & display a
search tree
Pre-defined
visualizations
Render visualization based on
custom animation script
HEATH ROEHR
41
Sample Pre-Defined Visualizations
Constraint Graph
Search Tree
Collapsed sub tree
Domain split
HEATH ROEHR
42
OUTLINE
 The G12 Platform
 Zinc: Constraint Modeling Language
 The G12 IDE
 Modeling Layer: Meet-Pass Scenario
 Solving Layer
 Visualization Layer
 Debugging with the G12 IDE
 Conclusion & Questions
HEATH ROEHR
43
Pre-defined visualizations &
custom animations
drawn in real-time,
as the program executes
HEATH ROEHR
44
HOW IS DEBUGGING DIFFERENT IN
THE G12 IDE?
• Debugging tools are by default associated with code at
the native level
• Example: set a breakpoint at line 59 in function “Y”
• Instead, abstract away the native code & debug at a
conceptual level
• Example: set a breakpoint when the domain of variable “X” is
empty
• Operates on the constraint model, not the constraint program
HEATH ROEHR
45
USER DEFINED BREAKPOINT
VIEW
User defined
breakpoints
“Search Events”
(Events that induce
the breakpoint)
The breakpoint
“subscribes” to
these search events
Enable/disable
breakpoints
HEATH ROEHR
46
Take it to the next level:
Domain-specific animated
debugging
HEATH ROEHR
47
CUSTOM VISUALIZATION AND
ANIMATION
• Accomplished by
• drawing objects
• binding their animation to events that fire during
program execution
• Debugging is happening
• At the conceptual level
• Graphically: Domain-specific
HEATH ROEHR
48
“MEET-PASS” EXAMPLE
Propagation should
deduce the position of
the train…
Original formulation
failed to deduce
correctly, identifying
an incorrect
constraint model…
HEATH ROEHR
49
RELATED WORK
• IDEs tailored to CSP solving
• ECLiPSE CLP
•
Draw charts and graphs for solver output
• ILOG OPL Studio
•
Offers a search-tree view similar to that of the G12 IDE
• Choco
•
Java based visualizations from scratch
• Vector-based graphics processing programs
• Most are more advanced than G12’s graphics processor
• Using a custom visualization tool that is tightly
integrated with debugging facilities is novel
HEATH ROEHR
50
HEATH ROEHR
51
IN CONCLUSION
• G12 IDE redefines the way users can interact with
their solving CSPs
• Users
• Can not only view classic CSP visualizations (such as search
tress)
• They can also customize animations straight from the IDE
• G12 IDE Allows users to
• Update their constraint definitions & solver logic on the fly
• Based on feedback from the event-driven debugger & realtime visualizations
HEATH ROEHR
52
HEATH ROEHR
53
Download