View
218
Download
3
Tags:
Embed Size (px)
Citation preview
Andreas Bauer, Viorica Botea, Mark Brown, Matt Gray, Daniel Harabor & John Slaney
CP 2010, 522—536
Presented by Heath Roehr
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
• 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
3HEATH ROEHR
• Zinc is a first-order functional language with simple, declarative semantics
• Modeling languages separate the constraint model from the constraint program
• It provides• 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
HEATH ROEHR 4
HEATH ROEHR 5
HEATH ROEHR 6
•SolvingThe problems are computationally challenging
•Debugging?Remember your homework...
•Conceptualizing & improving searchStaring at code is not really the smartest strategy
7HEATH ROEHR
8HEATH ROEHR
9HEATH ROEHR
HEATH ROEHR 10
Write constraint models in the input languages of G12 (Zinc & MiniZinc)
• Vector-oriented drawing tool • Associated script editor to
build custom animations
HEATH ROEHR 11
MEET-PASS SCENARIO• 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
S1 S2
S3 S4 S5
• 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
Constraints
Siding
HEATH ROEHR 12
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 13
Step 0
MEET-PASS SCENARIO: A POSSIBLE SOLUTION
HEATH ROEHR 14
Step 1
MEET-PASS SCENARIO: A POSSIBLE SOLUTION
HEATH ROEHR 15
Step 2
MEET-PASS SCENARIO: A POSSIBLE SOLUTION
HEATH ROEHR 16
Step 3
MEET-PASS SCENARIO: A POSSIBLE SOLUTION
HEATH ROEHR 17
Step 4
MEET-PASS SCENARIO: A POSSIBLE SOLUTION
HEATH ROEHR 18
Step 5
MEET-PASS SCENARIO: A POSSIBLE SOLUTION
HEATH ROEHR 19
Step 6
MEET-PASS SCENARIO: A POSSIBLE SOLUTION
HEATH ROEHR 20
Step 7
MEET-PASS SCENARIO: A POSSIBLE SOLUTION
HEATH ROEHR 21
Step 8
MEET-PASS SCENARIO: A POSSIBLE SOLUTION
HEATH ROEHR 22
Step 9
MEET-PASS SCENARIO: A POSSIBLE SOLUTION
HEATH ROEHR 23
Step 10
MEET-PASS SCENARIO: A POSSIBLE SOLUTION
HEATH ROEHR 24
Step 11
MEET-PASS SCENARIO: A POSSIBLE SOLUTION
HEATH ROEHR 25
Step 12
MEET-PASS SCENARIO: A POSSIBLE SOLUTION
HEATH ROEHR 26
Step 13
MEET-PASS SCENARIO: A POSSIBLE SOLUTION
HEATH ROEHR 27
Step 14
MEET-PASS SCENARIO: A POSSIBLE SOLUTION
HEATH ROEHR 28
Step 15
MEET-PASS SCENARIO: A POSSIBLE SOLUTION
HEATH ROEHR 29
Step 16
MEET-PASS SCENARIO: A POSSIBLE SOLUTION
HEATH ROEHR 30
Step 17
MEET-PASS SCENARIO: A POSSIBLE SOLUTION
HEATH ROEHR 31
Step 18: Solution Found
MEET-PASS SCENARIO: A POSSIBLE SOLUTION
HEATH ROEHR 32
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 33
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 34
ZINC EDITOR: MEET-PASS IMPLEMENTATION
Variable Declaration
Constraints
Variable Definition
HEATH ROEHR 35
ZINC EDITOR: SCREENSHOT
Syntax highlighting
Project-based code management
Outline views
HEATH ROEHR 36
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 37
VISUALIZATION EDITOR
Vector-based graphics editorGraphics properties editor
Project-based code management
HEATH ROEHR 38
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 39
The actual solver
Control the starting & stopping of the solving process
Collect detailed information about the solving process
HEATH ROEHR 40
XML-based messaging
Separate Processes
HEATH ROEHR 41
Build & display a constraint graphBuild & display a search tree
Render visualization based on custom animation script
Pre-defined visualizations
HEATH ROEHR 42
Constraint Graph
Search Tree
Sample Pre-Defined Visualizations
Collapsed sub treeDomain split
HEATH ROEHR 43
HEATH ROEHR 44
HEATH ROEHR 45
HOW IS DEBUGGING DIFFERENT IN THE G12 IDE?
HEATH ROEHR 46
USER DEFINED BREAKPOINT VIEW
User defined breakpoints
“Search Events”(Events that induce the breakpoint)
The breakpoint “subscribes” to these search eventsEnable/disable breakpoints
HEATH ROEHR 47
HEATH ROEHR 48
• Accomplished by • drawing objects• binding their animation to events that fire
during program execution
• Debugging is happening• At the conceptual level• Graphically: Domain-specific
CUSTOM VISUALIZATION AND ANIMATION
HEATH ROEHR 49
“MEET-PASS” EXAMPLE
Propagation should deduce the position of the train…
Original formulation failed to deduce correctly, identifying an incorrect constraint model…
• 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
RELATED WORK
HEATH ROEHR 51
HEATH ROEHR 52
• 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 & real-time visualizations
HEATH ROEHR 53