" /> My Constraint Programming Blog: February 2011 Archives

« January 2011 | Main | March 2011 »

February 28, 2011

SweConsNet Workshop 2011, announcement

The 10th Workshop of the Network of Sweden-based researchers and practitioners of Constraint programming (SweConsNet) will be held May 30th, 2011 - Örebro University (Sweden).

Here is the current info from the SweConsNet Workshop 2011 page. Please note that the speaker list is preliminary and will change.

Originally I had planned to talk about CP and Answer Set Programming but due to certain circumstances I will not be able to do that. So I'll just be in the audience this time.

About the Workshop

The Network for Sweden-based researchers and practitioners of Constraint technology (SweConsNet) invites all researchers and practitioners to participate in the yearly SweConsNet Workshop. The purpose of the workshop is to learn about ongoing research in Constraint Programming, existing projects and products, and further development of the network. SweConsNet Workshop 2011 is the 10th edition of this annual event.

The workshop is open to everybody interested in the theory and practice of constraint programming, whether based in Sweden or elsewhere. The scope of the workshop spans all areas of Constraint Programming, and is open to presentations and discussions addressing topics related to both theory and application.

Participation and registration

We highly encourage interested individuals to submit a proposal for a presentation of ongoing work and/or recent results, or of a discussion topic. There are no paper submissions, reviews, or proceedings, hence recent conference/journal papers may also be presented. To register, please send a brief statement of intent, and desirably the title and abstract of your talk, to Federico Pecora. A preliminary list of speakers is provided below, and several time slots remain available.

In order to facilitate organization, please notify us of your intention to participate as soon as possible, and at the latest before May 16th. The workshop does not have a registration fee.

Preliminary list of speakers

Program will be announced soon on this page. All talks/titles/speakers to be confirmed.

  • Energy-Efficient Task-Mapping for Data-Driven Sensor Network Macroprogramming Using Constraint Programming
    F. Hassani Bijarbooneh, P. Flener, E. Ngai, and J. Pearson (Uppsala University)
  • CP vs. Answer Set Programming - a Practitioner's View
    H. Kjellerstrand
  • (TBD)
    C. Schulte (KTH - Royal Institute of Technology)
  • Agent-based CSP with Global Constraints
    C.C. Rolf and K. Kuchcinski (Lund University)
  • A Constraint Based Approach to Integrated Planning and Scheduling
    S. Magrelli and F. Pecora (Örebro University)

SweConsNet mailing list

Please forward this link to anyone who might be interested in this workshop but is not yet on the SweConsNet mailing list. If you wish to subscribe to the mailing list, please send a message to Justin Pearson.

Location

The workshop will be held at Örebro University, in Teknik-huset. The room will be announced here prior to the event.

Directions from the central train station (Resecentrum): take bus number 1 towards Universitetet (see Länstrafiken website for updated timetable). More detailed directions available here. Complete address:

Örebro University
Fakultetsgatan 1
AASS Research Center (Teknik-huset)
SE-701 82 Örebro, SWEDEN

Organization

SweConsNet 2011 is chaired and arranged by Federico Pecora (Örebro University).

Previous workshops

Here are some of my announcements/reports from the two previous workshops that I have attended (2009 and 2010):

February 12, 2011

MiniZinc version 1.3 released

MiniZinc version 1.3 is released. Download here (snapshots can be downloaded here)

From the NEWS:
G12 MiniZinc Distribution 1.3
------------------------------

* New evaluation and output framework

We have implemented a new evaluation and output framework for MiniZinc that simplifies evaluating a model and producing output formatted according to the model's output item.

The new framework is based around two new tools. The first, solns2out, takes a model output specification produced by mzn2fzn, and reads the solution stream from a FlatZinc implementation. It then formats and prints each solution according to the output specification. An example, of its use is as follows:

$ mzn2fzn model.mzn
$ flatzinc model.fzn | solns2out model.ozn

Model output specifications are contained in files with the ".ozn" extension. Such files are now generated by default by mzn2fzn.

The second new tool, named minizinc, is an evaluation driver that automates the process of evaluating a MiniZinc model. For example, the following command:

$ minizinc model.mzn

will flatten, evaluate, and generate formatted output for the specified model. The FlatZinc interpreter used by minizinc is pluggable, so any FlatZinc implementation that can be invoked from the command line can in principle be used with it. (The manual page for minizinc contains a complete description of how it interacts with the FlatZinc implementation.)

The minizinc program replaces the mzn script; since it also has support for CP-Viz, it also replaces the minizinc-viz script as well. Unlike the scripts, the minizinc program works directly from the Windows command prompt, i.e. neither Cygwin or MSYS are required to use it.
We have added some wrapper scripts (on Windows, batch files) around the minizinc program for invoking each of the G12 FlatZinc interpreter's backends with the appropriate global constraint definitions.

These new wrapper scripts are:

mzn-g12fd (Evaluate MiniZinc using G12/FD.)
mzn-g12lazy (Evaluate MiniZinc using G12/Lazy.)
mzn-g12mip (Evaluate MiniZinc using G12 and a MIP solver.)
mzn-g12sat (Evaluate MiniZinc using G12 and a SAT solver.)

For example, the following evaluates a MiniZinc model using the G12 Lazy Clause Generation solver:

$ mzn-g12lazy model.mzn


Changes to the MiniZinc language:

* The built-in operation show_cond/3 is no longer supported.

* The built-in annotation is_output/0 is deprecated. Support for it will be removed in a later release.

* The following operations, which were deprecated in MiniZinc 1.1, are no longer supported:

int: lb(array[$T] of var int)
float: lb(array[$T] of var float)
set of int: lb(array[$T] of var set of int)
int: ub(array[$T] of var int)
float: ub(array[$T] of var float)
set of int: ub(array[$T] of var set of int)
set of int: dom(array[$T] of var int)


Changes to the G12 MiniZinc-to-FlatZinc converter:

* The --no-output-pred-decls option is no longer supported.

* The --target-flatzinc-version is no longer supported.


Bugs fixed in this release:

* A bug in mzn2fzn that caused it to infer incorrect bounds on absolute value expressions has been fixed.

* A bug in mzn2fzn's optimisation pass that caused it to delete equality constraints between output variables has been fixed.

* The FlatZinc interpreter now rejects output_var/0 annotations on array declarations and output_array/1 annotations on scalar variable declarations.

Some notes

* One thing to note with the new minizinc program is that it can be used as a wrapper for all FlatZinc solvers and it shows the nice output from the output section . Here is how to run Gecode/fz (the program name is fz) on a Rogo model (rogo2.mzn):
$ minizinc rogo2.mzn rogo_mike_trick.dzn -f "fz -mode stat -solutions 0"

....

x     : [2, 2, 2, 2, 3, 4, 5, 5, 5, 4, 4, 3]
y     : [2, 3, 4, 5, 5, 5, 5, 4, 3, 3, 2, 2]
points: [3, 0, 0, 1, 0, 0, 2, 0, 0, 2, 0, 0]
sum_points: 8

(2, 2): 3 points
(2, 3): 0 points
(2, 4): 0 points
(2, 5): 1 point
(3, 5): 0 points
(4, 5): 0 points
(5, 5): 2 points
(5, 4): 0 points
(5, 3): 0 points
(4, 3): 2 points
(4, 2): 0 points
(3, 2): 0 points

----------
==========
%%  runtime:       1.216 (1216.804000 ms)
%%  solvetime:     1.213 (1213.208000 ms)
%%  solutions:     3
%%  variables:     230
%%  propagators:   284
%%  propagations:  9641152
%%  nodes:         78247
%%  failures:      39121
%%  peak depth:    30
%%  peak memory:   712 KB
The output statement for this model is:

output [
"x : " ++ show(x) ++ "\n" ++
"y : " ++ show(y) ++ "\n" ++
"points: " ++ show(points) ++ "\n" ++
"sum_points: " ++ show(sum_points) ++ "\n"

] ++ ["\n"]
++
[
"(" ++ show(x[i]) ++ ", " ++ show(y[i]) ++ "): " ++
show(points[i]) ++ if fix(points[i]) == 1 then " point"
else " points" endif ++ "\n"

| i in 1..max_steps
] ++ ["\n"];


* Many of my MiniZinc models does not contain a explicit output statement yet, and I will fix that.

February 07, 2011

JaCoP version 3.1 is released

JaCoP version 3.1. has been released. Download from SourceForge.

From the announcement:
Dear users, We have just released JaCoP 3.1. This is a release that fixes few bugs as well as provides a new Binpacking constraint. The Binpacking constraint allows modeling of problems exhibiting bin packing problem structure. The addition of this constraint introduced changes to minizinc/fz library in JaCoP since the definitions of bin_packing.mzn, bin_packin_capa.mzn and bin_packing_load.mzn have been added. The JaCoP guide has been updated to explain how to use Binpacking constraint. best regards, Core Developer Team

February 01, 2011

Gecode version 3.5 released

Gecode version 3.5 was released some hours ago. Download.

From the Changelog:
Changes in Version 3.5.0 (2011-02-01)
This release fixes serious bugs in parallel search, FlatZinc, fixes some DLL issues on Windows, adds support for FreeBSD, and adds STL-style iterators for arrays.
  • Kernel
    • Additions
      • Added STL compatible iteration support for arrays (variable arrays, argument arrays, view arrays, and shared arrays). (major , contributed by Gregory Crosswhite)
  • Search engines
    • Bug fixes
      • Fixed a serious bug in parallel search (took over a year to isolate the bug). (major, thanks to Denys Duchier, Chris Mears)
  • Minimal modeling support
    • Bug fixes
      • Do not inline construction of linear, Boolean, and set expressions to avoid cross-DLL allocation/deallocation issues on Windows. (minor, thanks to Alexander Kleff)
  • Gecode/FlatZinc
    • Other changes
      • Fixed the definitions of global_cardinality to work with MiniZinc 1.2 and newer, and added corresponding definitions of global_cardinality_closed and global_cardinality_low_up_closed. (major)
    • Bug fixes
      • Fixed incorrect posting of linear constraints with variable arrays of size one. (major, thanks to Roberto Castañeda Lozano)
  • General
    • Additions
      • Gecode now compiles on FreeBSD. (minor, thanks to Peter Penchev)
      • Embed resource information into DLLs and EXEs on Windows. (major)
    • Other changes
      • Embed manifest into Gecode DLLs on Windows. (minor)

Related

Some days ago the Gecode team released (I quote) the source code of the Gecode FlatZinc parser, stripped of all Gecode-specific code. You can use it as a starting point for your own FlatZinc interpreter. For more info, see Gecode: Gecode/FlatZinc.