Although it sometimes feels like it was created by an unholy union of mathematicians and 1990's C++ dweebs that never learned a new thing since Y2K, I'd really recommend Google's or-tools for something similar that requires a better solver and a language with actual capabilities outside of solving toy problems.
And although it's not a traditional constraint solver, I would also recommend Timefold. It's incredibly good for the types of problems that have elements of linear programming, quadratic programming, constraint programming, but also with odd domains that are hard to express as models using typical constraint programming idioms. I actually have had a bunch of incredibly valuable wins with this (and its predecessor Optiplanner)...for example, I've used it to optimize operations planning with $10+B budgets that could save 10+% over previous methodologies. And I've used it to dynamically reoptimized auction bidding strategies for FCC spectrum auctions, which saved us from overbidding on hot bid licenses by adjusting our bidding targets for subsequent rounds to capture better value for our auction money compared to what we could get in the secondary market.
If on the other hand the problem is smaller, is more meant as an interactive system, or there is a need for deep integration, then I would re-implement the model in the API for a solver, or I might even write a dedicated solver. As a Gecode developer, I naturally think that Gecode is very useful for the cases where the problem is not a traditional model / instance / solve / done process, but I've used many other solvers as well depending on circumstances and need.
I've never really felt that Optaplanner / Timefold has been that useful of effective. In the cases I might have used it, I've instead written a custom local search system or constraint programming like system, and I think that has been a more effective approach. Do you have an example of what kind of problem you used it for?
Check out Picat. It has IO and you can use it for scripting.
clickety_clack•6h ago
qsort•5h ago
mzl•5h ago
I’ve previously tried starting a scheduling company, and even when one has a product that in testing shows that it would save the potential customers lots of money, it is really hard to gain traction.
whatever1•4h ago
There are a ton of players in the market that they cater to specific use case.
The issue is that there are always domain-specific nuances that a generic solver does not capture. Someone needs to encode them.