gecode
holmes
| gecode | holmes | |
|---|---|---|
| 5 | - | |
| 328 | 308 | |
| 1.5% | 0.0% | |
| 0.0 | 0.0 | |
| 15 days ago | almost 2 years ago | |
| C++ | Haskell | |
| GNU General Public License v3.0 or later | MIT License |
Stars - the number of stars that a project has on GitHub. Growth - month over month growth in stars.
Activity is a relative number indicating how actively a project is being developed. Recent commits have higher weight than older ones.
For example, an activity of 9.0 indicates that a project is amongst the top 10% of the most actively developed projects that we are tracking.
gecode
-
Solving Every Sudoku Puzzle (2006)
You will most likely need both smarter heuristics and better deductions for larger instances. As mentioned, I've seen well-engineered custom tight C++-solvers with decent heuristics and the normal deductions take >1 hour on some instances. Most cases I've tried can be solved reasonably quickly when using OR-Tools CP-SAT which uses constraint programming style lazy clause generation and custom MIP relaxations in a portfolio.
For a list of interesting instances to test, see this file: https://github.com/Gecode/gecode/blob/release/6.3.0/examples...
I should probably do some benchmarks on that with the standard MiniZinc solvers.
-
Gecode is an open source C++ toolkit for developing constraint-based systems
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.
-
Send+more=money and how to use forward-checking in search
Sure, there are lots but I think it should be doable. Will probably try sometime. Easiest is to make a model that fixes the lengths of the words, and just run it for different word lengths.
As a comparison, see this model solving crosswords using constraint programming. https://github.com/Gecode/gecode/blob/develop/examples/cross...
-
Testing non-trivial software (C++)
The main idea is that one defines tests that post the propagator on an initial domain, and then adding a checker for ground instances if it is a solution. The testing infrastructure runs the propagator in simulated setting, making sure that non-solutions are pruned and that solutions are found. Here is an example for the sorted constraint: sorted.cpp
holmes
We haven't tracked posts mentioning holmes yet.
Tracking mentions began in Dec 2020.
What are some alternatives?
Choco - An open-source Java library for Constraint Programming
cpu - Cpu properties and information helpers for haskell
biteopt - Derivative-Free Global Optimization Algorithm (C++, Python binding) - Continuous, Discrete, TSP, NLS, MINLP
scientific - Arbitrary-precision floating-point numbers represented using scientific notation
Decider - An Open Source .Net Constraint Programming Solver
code-builder - Packages for defining APIs, running them, generating client code and documentation.