Gecode/R 0.3.0

Gecode/R version 0.3.0 has been released.

It’s still early in the development, so don’t expect any form of
backwards compatibility (things will change left and right if needed

== What is Gecode/R? ==

Gecode/R is a Ruby interface to Gecode[1] which allows you to use
constraint programming in Ruby. It’s typically useful for problems where
you otherwise have to do a search through various assignments to find a
solution. All you have to do is describe the properties of solutions to
a problem and Gecode will find them.

Examples[2] of solving problems with Gecode/R include problems such as
verbal arithmetic (recently featured on Ruby Q.) and n-queens.

== Learning more ==

The ambition of the documentation[3] is to keep up with the code, so it
hopefully covers all of the available features (which in combination
with the examples should get you going). Tutorials on topics such as
modelling are currently missing, but questions are welcome.

== Requirements ==

Gecode 1.3.1 is required, it’s easy to install though (see
installation[4] for links).

== Features ==

  • Finite domain integers and booleans.
  • Linear, distinct and basic boolean constraints.
  • Reification and propagation strength.

== Changes (since 0.2.0) ==

  • The constructor of Gecode::Model no longer has to be called by classes
    inheriting from it.
  • Added Model#reset! which resets a model after search.
  • Added Model#solution which passes the first solution to a block and
    returns the result of that block.
  • Added Model#each_solution which iterates over each solution.
  • Added boolean variables. They are created using Model#bool_var and
    Model#bool_var_array .
  • Added two options to constraints: propagation strength and reification
  • Linear and simple relation constraints can now also be specified using
    #equal, #equal_to, #greater, #greater_than,… in addition to comparison
  • Added distinct with offsets.
  • Simple relation constraints can now be used to specify relations
    between two variables.
  • Added basic boolean domain constraints along with conjunction and
  • Added syntactic sugar for combining reifiable constraints with | and