clpz VS exact

Compare clpz vs exact and see what are their differences.

Our great sponsors
  • WorkOS - The modern identity platform for B2B SaaS
  • InfluxDB - Power Real-Time Data Analytics at Scale
  • SaaSHub - Software Alternatives and Reviews
clpz exact
5 3
172 -
- -
4.4 -
3 months ago -
Prolog
- -
The number of mentions indicates the total number of mentions that we've tracked plus the number of user suggested alternatives.
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.

clpz

Posts with mentions or reviews of clpz. We have used some of these posts to build our list of alternatives and similar projects. The last one was on 2023-06-01.
  • Logic programming is overrated, at least for logic puzzles (2013)
    2 projects | news.ycombinator.com | 1 Jun 2023
    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
    1 project | /r/prolog | 31 Oct 2022
    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
    2 projects | /r/rust | 22 Apr 2022
    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?
    12 projects | news.ycombinator.com | 20 Apr 2022
  • What is the difference between constraint solving and constraints programming?
    2 projects | /r/compsci | 3 Nov 2021
    Constraint programming I guess is when one uses a prolog library such as: https://github.com/triska/clpz

exact

Posts with mentions or reviews of exact. We have used some of these posts to build our list of alternatives and similar projects. The last one was on 2022-04-20.
  • New release
    1 project | /r/exact | 2 Oct 2022
    Version 1.0.0 of Exact is released.
  • Ask HN: Where to run embarrassingly parallel, Integer, no SIMD workloads?
    1 project | news.ycombinator.com | 16 Aug 2022
    >> The workload is memory bound not compute bound.

    > I don't think so? How many gigabytes per second per core are you processing?

    That's what the Intel VTune profiler tells me. 39.2% Memory bound = 21,7% of clock ticks L1 bound (execution stalled for data that was in L1) + 12.4% L3 bound on a Haswell 4 core Xeon.

    > If for some reason you can talk about this problem to random SIMD programmers online privately but you cannot post about this problem publicly

    I can talk about it publicly. I just did not want to distracted from the actual hardware question. I recently started to contribute to this https://gitlab.com/JoD/exact open source project. The algorithm tries to find a valid assignment for a bunch of equations of this form 4x1 -3x57 +1* not(x1232) <= 4 (there are special cases already accelerated). We guess an assignment for a certain variable, check all constraints, sometimes constraints imply other assignments to other variables (if x1 is true and x1232 is false x57 has to be true) then those get propagated to. One technique is called watch propagation and can be done for the SAT family of clauses. This technique is in incompatible with branching along assignments. I find SIMD over clauses dubious, as they are mostly random accessed of different length and sparse. The embarrassing parallelization comes from being able to work one different parts of the parameter space and exchange clauses learned from conflicts. We are currently not doing that yet but plan to do something HordeSAT like over MPI (there is different slightly cleverer tree exchange variant over MPI all to all but i do not have that reference handy).

    We have some horrible sins (such a virtual method table look ups in loops, no -march=native compiler flags in main branch, ...) which the main developer created and we have not cleaned up. If i could nerd snipe you to run some experiments with that codebase and contribute some SIMD loops (with -march=native -mtune=native only 4 functions are currently SIMD, none are significant to the performance) that be great. For all the divisibilty checking i currently plan this: https://www.reddit.com/r/exact/comments/wokfhl/resource_on_f... (we spend 3% of compute time in the standard libraries modulo)

  • Ask HN: Do you use an optimization solver? Which one? Why? Do you like it?
    12 projects | news.ycombinator.com | 20 Apr 2022
    I use JuMP as modeling language. For MILP i am usually using Gurobi or SCIP. For ILP problems have have been looking in to the exact solver https://gitlab.com/JoD/exact which seems quiet promising.

    For NLP i usually go with either https://worhp.de/ or just IpOpt.

What are some alternatives?

When comparing clpz and exact you can also consider the following projects:

prolog-checkers - A Player vs AI game of checkers implemented in Prolog

HiGHS - Linear optimization software

python-mip - Python-MIP: collection of Python tools for the modeling and solution of Mixed-Integer Linear programs

SSI - A Prolog Compiler written in Prolog.

osqp - The Operator Splitting QP Solver

kanren - An extensible, lightweight relational/logic programming DSL written in pure Python

csips - A pure-python integer programming solver

or-tools - Google's Operations Research tools:

golomb-solver - Create Golomb rulers with constraint programming