or-tools
clpz
or-tools | clpz | |
---|---|---|
57 | 5 | |
10,446 | 172 | |
0.9% | - | |
9.9 | 4.4 | |
7 days ago | 3 months ago | |
C++ | Prolog | |
Apache License 2.0 | - |
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.
or-tools
-
or-tools VS timefold-solver - a user suggested alternative
2 projects | 4 Jan 2024
-
A* Tricks for Videogame Path Finding
Small NP-hard problems aren't actually that bad. You can usually formulate them as eg a integer programming problem or a SMT problem, and throw an off-the-shelf solver at them.
You only need to learn the solver once, and you can re-use it for all kinds of problems. (Assuming that your instances don't have to be solved with low latency. Eg only as part of your level generation process, or at most when loading a randomly generated level, but not every frame or so.)
https://developers.google.com/optimization has a decent collection of tools.
-
Ask HN: Comment here about whatever you're passionate about at the moment
Just saw that it looks like an upcoming release of OR-Tools might include reified tables: https://github.com/google/or-tools/commit/94f3d9b46870e7ea04...
-
[P] Advice needed for what tool/algorithm is appropriate
Google OR - Tried to represent a solution to be a 5 dimensional matrix with an hour granularity. Dimensions are stations, program, project manager, day and time. If matrix[station][program][project manager][day][time] = 1, then that set is assigned, otherwise not. The main issue encountered here is about time slots, as they are not necessarily on a per hour basis. We tried time slots to be in a 5-minute interval. However, constructing the constraints that would adhere to each programs duration was proven to be difficult.
- What software is used in the field these days?
-
Sudoku solver
If you are just interested in getting a solution or for having a reference solver: There is a sudoku example in the OR-Tools package that uses constraint programming.
- Matrix / 2d Array Puzzle-Like Problem
-
Linear Programming
Not sql, but check out google’s OR-Tools. Hardly ever gets mentioned but looks very capable for some applications. https://developers.google.com/optimization
-
Would anyone know how to auto schedule tasks based on certain constraints?
Then there's also the Google's solution: https://developers.google.com/optimization/
-
Assignment to at most K groups from distance matrix?
start enumerating the properties you think the solution to your problem should have. once you have this, you should be able to reformulate those properties as constraints and then you can just plug this into a combinatorial solver such as https://developers.google.com/optimization
clpz
-
Logic programming is overrated, at least for logic puzzles (2013)
As pointed out in the comments in the article, these kinds of logic puzzles are easier to solve using constraint programming than "regular" logic programming.
For example, see the solution to the Zebra Puzzle here: https://www.metalevel.at/prolog/puzzles which uses CLPZ[^1].
[^1]: https://github.com/triska/clpz
-
Markus Triska Interview on Prolog
Scryer has the strings-as-lists-but-implemented-efficiently thing, possibly more strict ISO Prolog compatible syntax, and it may ship with a more advanced constraint library (I'm not clear on the relationship between SWI's clpfd and Scryer clpz).
-
is it possible to have a reversable operation
None of these are full-fledged programming languages, however. They're limited to problems that lie in the polynomial hierarchy (A class which contains P and NP). Logic programming is generally only used to solve hard problems for which no good algorithm is known. Prolog also sort of fits this niche and it has a bunch of solvers integrated into it. Notably CLPFD which uses https://github.com/triska/clpz for constraint logic programming. Rosette (https://docs.racket-lang.org/rosette-guide/index.html) is another solver-based language. Except it uses lisp syntax (it's embedded in the Racket language). It uses Z3 as a solver (linked above for SMT theories)
- Ask HN: Do you use an optimization solver? Which one? Why? Do you like it?
-
What is the difference between constraint solving and constraints programming?
Constraint programming I guess is when one uses a prolog library such as: https://github.com/triska/clpz
What are some alternatives?
OptaPlanner - Java Constraint Solver to solve vehicle routing, employee rostering, task assignment, maintenance scheduling, conference scheduling and other planning problems.
prolog-checkers - A Player vs AI game of checkers implemented in Prolog
optapy - OptaPy is an AI constraint solver for Python to optimize planning and scheduling problems.
HiGHS - Linear optimization software
pyomo - An object-oriented algebraic modeling language in Python for structured optimization problems.
SSI - A Prolog Compiler written in Prolog.
SciPy - SciPy library main repository
kanren - An extensible, lightweight relational/logic programming DSL written in pure Python
optaplanner-quickstarts - Mirror of https://github.com/apache/incubator-kie-optaplanner-quickstarts
csips - A pure-python integer programming solver
SWIG - SWIG is a software development tool that connects programs written in C and C++ with a variety of high-level programming languages.