Back

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

75 points9 daysgecode.org
nlewycky8 days 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/

stargrazer8 days 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?

osivertsson8 days 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-whale8 days ago

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

mzl8 days 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.

CamperBob28 days 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.
nurettin8 days ago

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

CamperBob27 days ago

How does it do that?

ur-whale8 days 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.

wavemode8 days ago
ur-whale8 days 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.

gjvc9 days ago
mzl9 days ago

Note, the release/6.3.0 branch is the current release.

Dusta098 days ago

[flagged]

Dusta098 days ago

[flagged]

Dusta098 days ago

[flagged]

Dusta098 days ago

[flagged]

Dusta098 days ago

[flagged]

aninteger8 days 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"