[gecode-users] how to start?

Oliver Kullmann O.Kullmann at swansea.ac.uk
Thu Jan 8 19:55:00 CET 2009


Hello,

I'm relatively familiar with the concepts of
constraint satisfaction and constraint programming
(say, at the level of [Dechter, Constraint Processing],
[Apt, Principles of Constraint Programming], or
[Handbook of Constraint Programming], however
when trying to get into Gecode, then I'm lost:
I even don't know what it's all about?

At
http://www.gecode.org/gecode-doc-latest/index.html
one finds under "Getting started" how to install it
(no problem), some notational convention (which I
somehow can imagine what it wants to say, but which
seems at this point rather irrelevant), and then
we have the glossary, which seems rather circular
to me, and which doesn't say much when you are not
already familiar with the library.

That seems to be it: "Programming tasks" seem to speak 
only about some specifics (again, if the whole is not known
that it doesn't seem to make so much sense), and the rest
looks alike.

So where to start?? Is there no definition of the whole problem
area (what kind of "constraint satisfaction problems" are
considered?), the basic algorithms supported (there are quite
a few algorithmic models out there), what are the basic abstraction
about "variables, values, constraints" (abstract data types)?

Perhaps Gecode assumes familiarity with some other CSP-library?
I'm coming from the SAT world, and I'm not aware of any other
framework than Gecode (which could be used as a role model).

Of course, I could start with some examples, but there seem to
be no complete examples, just classes (like http://www.gecode.org/gecode-doc-latest/classGraphColor.html;
I guessed that graph colouring would be rather easy), which don't say
much without the framework.

At http://www.gecode.org/gecode-doc-latest/group__Example.html it says
"All scripts are compiled into simple standalone programs. ", but I don't understand
what "script" here means? Clicking on "Scripts for problems" I only get
some (specific) classes?

Perhaps one needs to search for those files in the installed library?
(Somehow I'm of the old-fashioned opinion that documentation should be
somehow self-contained.)
But for example "graph-color.cc" doesn't give definitions/explanations (about the
concepts involved)? It all seems to assume that the basic concepts are known.


This is now my second attempt to gain a bit of familiarity with Gecode, but
I can't find no bridge.
Is it necessary to start reading the source code, looking at all the examples,
and deciphering myself what are the underlying concepts?

Perhaps there is some fundamental piece of documentation I'm missing.
Or, if not, then I would guess it wouldn't be too hard to outline
somewhere the basic concepts (from an abstract point of view).
Once one knows the main direction, then guessing what examples
and code fragments could mean becomes much easier.

Hoping for some hints

Confused Oliver


-- 
Dr. Oliver Kullmann
Computer Science Department
Swansea University
Faraday Building, Singleton Park
Swansea SA2 8PP, UK
http://cs.swan.ac.uk/~csoliver/




More information about the gecode-users mailing list