Re: [eclipse-clp-users] Eclipse vs MiniZinc

From: Joachim Schimpf <jschimpf_at_...311...>
Date: Fri, 16 Dec 2011 14:10:43 +0100
Wajid Hassan wrote:
> Hi,
> 
> I am just starting up with the constraint programming, and have been 
> stuck between whether to work on Eclipse based CLP or just go with 
> Minizinc.

We need to be aware of the distinction between language and
implementation(s).  We use 'ECLiPSe' in both senses, i.e. the
(Prolog-based) language, but also its single implementation
(strictly speaking there is only one implementation, but you
will recognize some features in other extended Prolog systems).
'Minizinc' on the other hand strictly refers to a language. This
language has multiple implementations, among them the corresponding
ECLiPSe library http://eclipseclp.org/doc/bips/lib_public/minizinc,
the Melbourne G12 system, and the Gecode frontend.

Minizinc is an excellent language for teaching and learning how
to model problems in terms of constraints.  It is however primarily
a _modelling_ language, i.e. the focus is on the representation
of the problem, not on how to solve it efficiently.  Your flexibility
in terms of solving is limited to experimenting with different
'model annotations' and different solver backends.  This may or
may not be a good thing, depending on your problem.

When you model in the ECLiPSe language, there is probably a bit
more to learn initally (in particular if your are new to Prolog)
and a little more scope for mistakes, because it is not purely
a modelling language, but a full programming language as well.
In the long term, you may feel less restricted with ECLiPSe,
for example once you need to think about problem specific
search heuristics, combination of different solvers, adding
I/O to your solver, etc.

Having said that, the ECLiPSe implementation of Minizinc makes
it quite easy to embed a Minizinc model into an ECLiPSe program.


> 
> My target is to get optimal solutions for a binding and scheduling 
> problem so I am uncertain which one of the two wld be easier and faster 
> to learn (I have no prior knowledge of Prolog).

If your problems are quite pure textbook-style problems, which
are likely to be solvable by a 'black-box solver', then minizinc
will work.  If the problems are messy and require a lot of
experimentation, the ECLiPSe approach may be more promising.

It would be interesting to hear other practitioner's view
on the situation!

-- Joachim
Received on Fri Dec 16 2011 - 13:10:50 CET

This archive was generated by hypermail 2.3.0 : Tue Apr 16 2024 - 09:13:20 CEST