forked from isse-augsburg/minibrass
-
Notifications
You must be signed in to change notification settings - Fork 0
/
params.json
1 lines (1 loc) · 5.38 KB
/
params.json
1
{"name":"Constraint Relationships","tagline":"A utility library for constraint relationships on top of the MiniZinc/MiniSearch toolchain as well as native utils for JaCoP.","body":"# What are Constraint Relationships about?\r\n\r\n![Constraint Relationships indicate priorities over constraints](http://www.isse.uni-augsburg.de/software/constraint-relationships/cr.png)\r\n\r\nMany combinatorial optimization problems are conveniently expressed using a constraint-based modeling language. They are then solved by powerful constraint programming or mathematical programming solvers.\r\n\r\nWe provide support for over-constrained problems or problems where desirable properties can be modeled as optional (soft) constraints. Importance is expressed only by means of relations between constraints (see [this 1 slide](http://www.isse.uni-augsburg.de/software/constraint-relationships/constraint-relationships.pdf) to get an idea). Our library extensions are built on top of [MiniZinc](http://www.minizinc.org/) that facilitates modeling combinatorial optimization problems for various solvers. The library includes:\r\n\r\n* Convenient expression of soft constraint problems using constraint relationships\r\n* Automatic translation to weighted CSP\r\n* Generic search heuristics\r\n* Consistency checks of the specified relationships\r\n\r\n## Quick Example\r\n```\r\n% A really simplistic over-constrained model\r\n% X: {x,y,z} D_i = {1,2,3}, i in X\r\n% * c1: x + 1 = y \r\n% * c2: z = y + 2\r\n% * c3: x + y <= 3\r\n% -------------------------------------------\r\n\r\n% import libraries as bundle for a quick start\r\ninclude \"minisearch.mzn\"; % include the search minisearch lite\r\ninclude \"soft_constraints/minisearch_bundle.mzn\";\r\n\r\nvar 1..3: x; \r\nvar 1..3: y;\r\nvar 1..3: z;\r\n\r\n% read as \"soft constraint c1 is satisfied iff x + 1 = y\"\r\nconstraint x + 1 = y <-> satisfied[1];\r\nconstraint z = y + 2 <-> satisfied[2];\r\nconstraint x + y <= 3 <-> satisfied[3];\r\n\r\n% soft constraint data specific to this model\r\nnScs = 3; % number of soft constraints\r\n\r\n% Constraint Relationships: \r\n% c1\r\n% c2 c3\r\n% -----------------------------------------\r\n% three soft constraints c1, c2, c3\r\n% c2 less imp than c1,\r\n% c3 less imp than c1, \r\n\r\nnCrEdges = 2;\r\ncrEdges = [| 2, 1 | 3, 1 |];\r\n\r\n% uses a specific branch-and-bound search to perform optimization\r\nsolve \r\n:: seq_search( [\r\n % generic soft constraint search heuristic \r\n int_search([satisfied[mostImpFirst[i]] | i in SOFTCONSTRAINTS], \r\n input_order, indomain_max, complete),\r\n % problem-specific heuristic\r\n int_search([x,y,z], input_order, indomain_max, complete)] )\r\n\r\n\r\nsearch time_limit(3000, strictlyBetterBAB(violatedScs)) /\\ \r\n if hasSol() then print() \r\n else print(\"No solution found\\n\") endif;\r\n\r\noutput [\"Obj: \\(penSum) by violating {\\(violatedScs) } : \" ++\r\n \" x -> \\(x), y -> \\(y), z -> \\(z)\"];\r\n```\r\n\r\n## Download and Installation\r\n\r\n### Quickest start:\r\n1. Download and install the newest MiniZinc IDE version from [http://www.minizinc.org/](http://www.minizinc.org/)\r\n2. Download [soft_constraints.zip](http://www.isse.uni-augsburg.de/software/constraint-relationships/soft_constraints.zip) and unpack it\r\n3. Locate the directory \"./share/minizinc/std\" of your MiniZinc installation\r\n4. Copy the directory \"soft_constraints\" into \"./share/minizinc/std\"\r\n5. Run the above code (smallexample_minizinc.mzn in [codeexamples.zip](http://www.isse.uni-augsburg.de/software/constraint-relationships/codeexamples.zip))\r\n\r\n### Slightly slower start:\r\n1. Build MiniSearch according to the instructions at [MiniSearch](http://www.minizinc.org/minisearch/)\r\n2. Download [soft_constraints.zip](http://www.isse.uni-augsburg.de/software/constraint-relationships/soft_constraints.zip) and unpack it\r\n3. Locate the directory \"./share/minizinc/std\" of your MiniSearch installation\r\n4. Copy the directory \"soft_constraints\" into \"./share/minizinc/std\"\r\n5. Run the above code (smallexample.mzn in [codeexamples.zip](http://www.isse.uni-augsburg.de/software/constraint-relationships/codeexamples.zip)) to see custom search and variable ordering heuristics in action.\r\n\r\n### After starting:\r\nHave a look at these case studies to get a better idea. We will continously improve these pages, but for starters please refer to the slides.\r\n\r\n1. [Case Studies](http://www.isse.uni-augsburg.de/software/constraint-relationships/Case-Studies.zip)\r\n1. Step-by-step conversion of a MiniZinc problem (coming soon) \r\n1. Language Features (coming soon)\r\n\r\n## Citing\r\nIf you plan to use constraint relationships in your research, please consider citing \r\n```\r\n@inproceedings{knapp-schiendorfer2014ictai,\r\n author = {Alexander Knapp and\r\n Alexander Schiendorfer and Wolfgang Reif},\r\n title = {{Quality over Quantity in Soft Constraints}},\r\n booktitle={Proc.\\ 26\\textsuperscript{th} Int. Conf. Tools with Artificial Intelligence (ICTAI'2014)},\r\n year = {2014},\r\n pages = {453-460}\r\n}\r\n```\r\n\r\n## Authors and Contributors\r\n* Alexander Schiendorfer (@Alexander-Schiendorfer)\r\n* Alexander Knapp \r\n\r\n## Support or Contact\r\nFor general information and support please contact @Alexander-Schiendorfer. \r\n","google":"","note":"Don't delete this file! It's used internally to help with page regeneration."}