Gecode is an open source C++ toolkit for developing constraint-based systems (2019)

75 pointsposted 7 months ago
by gjvc

20 Comments

nlewycky

7 months ago

Gecode won the minizinc challenges from inception of the challenge in 2008 until 2012, but these days or-tools wins gold every year 2013 to 2024, and in 2024 swept gold in all categories.

Why is gecode interesting? Why use it over or-tools?

https://www.minizinc.org/challenge/

stargrazer

7 months ago

Interesting, but why post it? Nothing seems to have been committed/updated in about 6 years. There are a number of PRs outstanding. Is it still in use?

The forum implies that not much maintenance happened after the passing of the primary contributor, even if there were good intentions.

Are there other constraint solvers which have subsumed this one?

osivertsson

7 months ago

I did not know Christian Schulte had passed away! That is sad news that reaches me now five years on from his passing.

https://intra.kth.se/en/eecs/nyheter/in-memory-of-christian-...

I met Christian at a conference in Lund back in 2005 as I was doing my master thesis within the constraint programming area. He came across as both very knowledgeable and very kind and caring. RIP Christian.

ur-whale

7 months ago

A short C++ example of gecode in use on their home page would be real nice.

mzl

7 months ago

Adding to wavemode, the Sudoku example is a good starting point: https://github.com/Gecode/gecode/blob/master/examples/sudoku...

In the documentation (https://www.gecode.org/doc-latest/MPG.pdf) there are a lot of worked examples as well.

CamperBob2

7 months ago

    for (int i=0; i<nn; i++) {
      distinct(*this, m.row(i), opt.ipl());
      distinct(*this, m.col(i), opt.ipl());
    }
Weird way to use C++, passing *this to everything explicitly, but maybe they have a reason.

nurettin

7 months ago

Qt does this as well. It is a common way of preserving a parent-child relationship.

ur-whale

7 months ago

Yes, I found those.

The point is to make the example front and center on the homepage so as to very quickly show what this is about to the casual passer-by.

wavemode

7 months ago

ur-whale

7 months ago

Thanks for pointing those out, I did in fact find them because my interest level was high enough that I went digging in the github repo.

But as I explain above, a key thing for tech. things like this, which are interesting in an of themselves, is to hook the casual passer-by by very quickly showing him/her what it is about.

For this, you want a very short example front and center on your homepage to get people with little time to see what the stuff can actually do.

user

7 months ago

[deleted]

aninteger

7 months ago

For some reason I pictured this software as a system for developing memory or CPU constrained software. Like granting only 1 mb of memory and maybe having functions executed in a certain number of "clock ticks"