Skip to content

Commit

Permalink
Merge branch 'main' into alldifferent_dc
Browse files Browse the repository at this point in the history
* main: (152 commits)
  v0.8.48
  Don't use AllDifferent with Circuit; might provide an option later
  AllDifferent FWC: refactoring (#54)
  Add 'simple' RosettaCode Sudoku instance
  More changes to factory code
  Update README.md
  Minor
  Some refactoring; unit test for element_2D_var
  Update constraint graph with new domains: fixes and unit tests
  Put back all_different propagator for Circuit constraint
  v0.8.48
  Set status to :unknown if no solutions
  Maintain map of ref -> position withing propagator
  Small change to  propagator
  Changes to error logging; update some benchmarks
  Refactoring (attempt to make branching changes visible to propagation
  Add 100-403 3-Sat Dimacs instances
  v0.8.46
  Fixes for OR, SAT Solver; 2 solvable Dimacs instances
  v0.8.45
  ...
  • Loading branch information
bokner committed Sep 29, 2024
2 parents 841fcee + 111250b commit e675af9
Show file tree
Hide file tree
Showing 132 changed files with 6,857 additions and 1,482 deletions.
22 changes: 16 additions & 6 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -16,15 +16,17 @@ Proof of concept. Not suitable for use in production. Significant API changes an

## Implemented constraints

- `not_equal`
- `less_or_equal`
- `equal`, `not_equal`, `less_or_equal`
- `absolute`
- `all_different`
- `sum`
- `sum`, `modulo`
- `element`, `element2d`
- `circuit`
- `OR`

## Features
- views (linear combinations of variables in constraints)
- views (linear combinations of variables in constraints)
- partial support for reified constraints
- solving constraint satisfaction (CSP) and constrained optimization (COP) problems
- parallel search
- pluggable search strategies
Expand All @@ -36,7 +38,7 @@ The package can be installed by adding `fixpoint` to your list of dependencies i
```elixir
def deps do
[
{:fixpoint, "~> 0.8.4"}
{:fixpoint, "~> 0.8.28"}
]
end
```
Expand Down Expand Up @@ -194,7 +196,7 @@ Available options:

[Search strategy](#search).

- max_space_threads: integer()
- space_threads: integer()

Defines the number of processes for parallel search. Defaults to 8.

Expand Down Expand Up @@ -333,7 +335,15 @@ Constraint Optimization Problem - assign facilities to locations so the cost of

https://en.wikipedia.org/wiki/Travelling_salesman_problem

#### [SAT Solver](lib/examples/sat_solver.ex)

#### [Stable Marriage problem](lib/examples/stable_marriage)

https://en.wikipedia.org/wiki/Stable_marriage_problem

#### [`xkcd` comic](livebooks/xkcd_np.livemd)

Two combinatorial problems from https://xkcd.com/287/

#### [Fixpoint models created by Håkan Kjellerstrand](http://hakank.org/elixir/)

5 changes: 5 additions & 0 deletions data/qap/numbers
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
qap12 - 4776 (opt)
qap25 - 4752
qap12a_opt288 - 293
qap14_opt507 - 515
qap16_opt34 - 34
Loading

0 comments on commit e675af9

Please sign in to comment.