TAILOR - Tailoring Constraint Models to Constraint Solvers

Latest News
    Since September, 2010: TAILOR IS NO LONGER MAINTAINED, SORRY.

  • February 8, 2010: NEW RELEASE : TAILOR v0.3.3 [update: Feb 19, 2010]
    New Features
    • select a dynamic variable ordering for solving in Minion (in the GUI)
    • extended GUI
    • several bugfixes

  • July 15, 2009: TAILOR v0.3.2 (bug-fixed update from July 19, 2009)
    New Features
    • New output format: Flatzinc (still limited though)
    • New GUI options:
    • Extended Gecode Translation (still restricted though)
    • several bugfixes (especially with XCSP format)

Overview

TAILOR is a tool that facilitates modelling and solving constraint models. TAILOR's graphical user interface (GUI) allows the user to directly solve an Essence' problem model with either solver MINION or GECODE, and is hence especially aimed at people who are novices in constraint programming or have no experience with constraint solvers Minion and Gecode. Note that TAILOR is not intended to compare solvers, but to generate effective solver input from a solver-independent problem model.

The flow-graph above illustrates the different operations TAILOR can perform. As input, TAILOR takes constraint models formulated either in modelling language Essence' or the XML format XCSP 2.1. TAILOR can perform several different translations of this input. First, it can generate intermediate formats, such as flat Essence' or the Flatzinc format. Second, it can generate solver input format for constraint solvers MINION and GECODE (C++) (translation to the latter is still restricted). Third, TAILOR can guide the whole solving process for you: first generating solver input, then invoking the solver on the input and finally mapping the solution back to Essence'. In this way you don't have to bother about the solver input/settings at all.

Essence' is a solver-independent modelling language and a subset of the abstract specification language Essence. Essence' allows you to formulate your problem in a general, declarative way. Here is a big collection of problem examples, each labelled with its level of difficulty (beginner, advanced, expert). XCSP 2.1 is the standard format of the CSP solver competitions.

TAILOR provides a command-line and an interactive graphical version [snapshot]. TAILOR is distributed as a Java .jar file and can easily be executed on every platform. There are different translation-options that enhance the problem model, such as different kinds of common subexpression elimination. TAILOR is Open Source software, licensed under GNU General Public License Version 2.

It is our research aim to produce effective solver instances automatically. For more information about automatic model generation or Essence, click here.

News History
  • April 20, 2009: update : TAILOR v0.3.1
    New Features
    • Extended Gecode Translation (still restricted though)
    • several bugfixes

  • March 26, 2009: NEW RELEASE : TAILOR v0.3.1
    New Features
    • new translation options
      • translate a whole problem class to Gecode
      • only flatten your Essence' problem model
    • Extended Graphical User Interface
    • several bugfixes

  • February 23, 2009: new release: TAILOR v0.3
    New Features
    • new translation options
      • different options on how to express disjunctions/conjunctions (Minion)
      • get detailed information about auxiliary variables
      • get detailed information about common subexpressions
    • new model enhancements (new forms of common subexpression elimination)
    • Enhanced Graphical User Interface
    • new problem examples
    • several bugfixes

  • October 28, 2008: Updated Tailor v0.2: TAILOR v0.2
    New Features
    • more model enhancements
    • enhanced Graphical User Interface [GUI snapshot]
    • new problem examples
    • several bugfixes

  • September 4, 2008: Updated Tailor v0.2: TAILOR v0.2
    • includes translation to solver Gecode (though not stable yet!)
    • enhanced GUI with more options (e.g. searching for all solutions)
    • several bugfixes
  • August 14, 2008: Updated Tailor v0.2: TAILOR v0.2
    • includes Essence' syntax highlighting for KDE editors (provided by Jan de Muijnck-Hughes)
    • enhanced GUI with more options
    • several bugfixes
  • July 8, 2008: Updated Tailor v0.2: TAILOR v0.2
    • includes Emacs-mode for Essence' syntax highlighting (provided by Peter Gregory)
    • more problem examples
    • more model enhancements
    • several bugfixes
  • May 13, 2008: Updated Tailor v0.2: TAILOR v0.2
    • several bugfixes
    • additional constraints: modulo, division, power
    • added compound variable arrays, such as [a,b,c]

  • April 19, 2008: Updated Tailor v0.2: TAILOR v0.2

  • March 12, 2008: Updated version of Tailor: TAILOR v0.2