Presentation is loading. Please wait.

Presentation is loading. Please wait.

Andreas Bauer, Viorica Botea, Mark Brown, Matt Gray, Daniel Harabor & John Slaney CP 2010, 522—536 Presented by Heath Roehr.

Similar presentations


Presentation on theme: "Andreas Bauer, Viorica Botea, Mark Brown, Matt Gray, Daniel Harabor & John Slaney CP 2010, 522—536 Presented by Heath Roehr."— Presentation transcript:

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


Download ppt "Andreas Bauer, Viorica Botea, Mark Brown, Matt Gray, Daniel Harabor & John Slaney CP 2010, 522—536 Presented by Heath Roehr."

Similar presentations


Ads by Google