Download presentation
Presentation is loading. Please wait.
1
Andreas Bauer, Viorica Botea, Mark Brown, Matt Gray, Daniel Harabor & John Slaney CP 2010, 522—536 Presented by Heath Roehr
2
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
3
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 3 HEATH ROEHR
4
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
5
5
6
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
7
Solving The problems are computationally challenging Debugging? Remember your homework... Conceptualizing & improving search Staring at code is not really the smartest strategy 7 HEATH ROEHR
8
8
9
9
10
10 Write constraint models in the input languages of G12 (Zinc & MiniZinc) Vector-oriented drawing tool Associated script editor to build custom animations
11
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 S1S2S3S4S5 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
12
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
13
HEATH ROEHR 13 Step 0 MEET-PASS SCENARIO: A POSSIBLE SOLUTION
14
HEATH ROEHR 14 Step 1 MEET-PASS SCENARIO: A POSSIBLE SOLUTION
15
HEATH ROEHR 15 Step 2 MEET-PASS SCENARIO: A POSSIBLE SOLUTION
16
HEATH ROEHR 16 Step 3 MEET-PASS SCENARIO: A POSSIBLE SOLUTION
17
HEATH ROEHR 17 Step 4 MEET-PASS SCENARIO: A POSSIBLE SOLUTION
18
HEATH ROEHR 18 Step 5 MEET-PASS SCENARIO: A POSSIBLE SOLUTION
19
HEATH ROEHR 19 Step 6 MEET-PASS SCENARIO: A POSSIBLE SOLUTION
20
HEATH ROEHR 20 Step 7 MEET-PASS SCENARIO: A POSSIBLE SOLUTION
21
HEATH ROEHR 21 Step 8 MEET-PASS SCENARIO: A POSSIBLE SOLUTION
22
HEATH ROEHR 22 Step 9 MEET-PASS SCENARIO: A POSSIBLE SOLUTION
23
HEATH ROEHR 23 Step 10 MEET-PASS SCENARIO: A POSSIBLE SOLUTION
24
HEATH ROEHR 24 Step 11 MEET-PASS SCENARIO: A POSSIBLE SOLUTION
25
HEATH ROEHR 25 Step 12 MEET-PASS SCENARIO: A POSSIBLE SOLUTION
26
HEATH ROEHR 26 Step 13 MEET-PASS SCENARIO: A POSSIBLE SOLUTION
27
HEATH ROEHR 27 Step 14 MEET-PASS SCENARIO: A POSSIBLE SOLUTION
28
HEATH ROEHR 28 Step 15 MEET-PASS SCENARIO: A POSSIBLE SOLUTION
29
HEATH ROEHR 29 Step 16 MEET-PASS SCENARIO: A POSSIBLE SOLUTION
30
HEATH ROEHR 30 Step 17 MEET-PASS SCENARIO: A POSSIBLE SOLUTION
31
HEATH ROEHR 31 Step 18: Solution Found MEET-PASS SCENARIO: A POSSIBLE SOLUTION
32
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.
33
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
34
HEATH ROEHR 34 ZINC EDITOR : MEET-PASS IMPLEMENTATION Variable Declaration Constraints Variable Definition
35
HEATH ROEHR 35 ZINC EDITOR: SCREENSHOT Syntax highlighting Project-based code management Outline views
36
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
37
HEATH ROEHR 37 VISUALIZATION EDITOR Vector-based graphics editor Graphics properties editor Project-based code management
38
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
39
HEATH ROEHR 39 The actual solver Control the starting & stopping of the solving process Collect detailed information about the solving process
40
HEATH ROEHR 40 XML-based messaging Separate Processes
41
HEATH ROEHR 41 Build & display a constraint graph Build & display a search tree Render visualization based on custom animation script Pre-defined visualizations
42
HEATH ROEHR 42 Constraint Graph Search Tree Sample Pre-Defined Visualizations Collapsed sub tree Domain split
43
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
44
HEATH ROEHR 44
45
HEATH ROEHR 45 HOW IS DEBUGGING DIFFERENT IN THE G12 IDE?
46
HEATH ROEHR 46 USER DEFINED BREAKPOINT VIEW User defined breakpoints “Search Events” (Events that induce the breakpoint) The breakpoint “subscribes” to these search events Enable/disable breakpoints
47
HEATH ROEHR 47
48
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
49
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…
50
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
51
HEATH ROEHR 51
52
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
53
HEATH ROEHR 53
Similar presentations
© 2025 SlidePlayer.com. Inc.
All rights reserved.