Short answer : according to the few tests I ran, they are pretty close. You can use any of them, or, even better, both of them.
Long answer : I have only compared them on about a dozen industrial problems, so take it with a grain of salt, but it's hard to name a winner. Gini is usually a little faster, but when it is slower, it is way slower than Gophersat. Gini is very good (sometimes even better than state-of-the-art C++ solvers, like glucose) on some very easy problems (those that can be solved in about 10 to 50 ms), probably because it has a very good parser and low warmup costs. But it is not as good on harder problems, and it can only deal with pure SAT, CNF problems (and they can be exponentially bigger than their pseudo-boolean counterparts). So, if you must solve hundreds of easy problems in a second, and if your problem is described as a CNF and you have no control over that, picking gini might be a good choice. If your problem is a little harder, or if you have the possibility to describe it as a pseudo-boolean problem, gophersat will probably be better. Since they are not efficient on the same kinds of problems, using both of them concurrently might be interesting, too. Making them solve the same problem and stop them when an answer was found. When solving pure CNF problems, the current version of gophersat suffers from the fact that it can natively deal with cardinality constraints and pseudo-boolean constraints: binary clauses take a lot of space in memory, and a lot of time is spent in the solver figuring out whether we are dealing with a clause or a more complex constraint. In the next future, we will probably include the ability to compile an optimized version of the solver for pure sat problems via build tags. Having generics in the language would solve that issue too ;) Le jeudi 21 décembre 2017 16:44:24 UTC+1, Damian Gryski a écrit : > > How does it compare to https://github.com/IRIFrance/gini ? -- You received this message because you are subscribed to the Google Groups "golang-nuts" group. To unsubscribe from this group and stop receiving emails from it, send an email to golang-nuts+unsubscr...@googlegroups.com. For more options, visit https://groups.google.com/d/optout.