CSP Solver
A Constraint Satisfaction Problem (CSP) solver library written in Rust.
Overview
This library provides efficient algorithms and data structures for solving constraint satisfaction problems. CSPs are mathematical problems defined as a set of objects whose state must satisfy a number of constraints or limitations.
Type of variables: float
, int
, mixed
(int and float)
Constraints supported include:
- Arithmetic:
+
,-
,*
,/
- Comparisons:
<
,<=
,>
,>=
,==
,!=
all_different
Installation
Add this to your Cargo.toml
:
[]
= "0.3.15"
Examples
๐งฉ Solving PLATINUM puzzle:
๐ Puzzle stats: 17 clues given, 64 empty cells
Puzzle:
โโโโโโโโโฌโโโโโโโโฌโโโโโโโโ
โ ยท ยท ยท โ ยท ยท ยท โ ยท ยท ยท โ
โ ยท ยท ยท โ ยท ยท 3 โ ยท 8 5 โ
โ ยท ยท 1 โ ยท 2 ยท โ ยท ยท ยท โ
โโโโโโโโโผโโโโโโโโผโโโโโโโโค
โ ยท ยท ยท โ 5 ยท 7 โ ยท ยท ยท โ
โ ยท ยท 4 โ ยท ยท ยท โ 1 ยท ยท โ
โ ยท 9 ยท โ ยท ยท ยท โ ยท ยท ยท โ
โโโโโโโโโผโโโโโโโโผโโโโโโโโค
โ 5 ยท ยท โ ยท ยท ยท โ ยท 7 3 โ
โ ยท ยท 2 โ ยท 1 ยท โ ยท ยท ยท โ
โ ยท ยท ยท โ ยท 4 ยท โ ยท ยท 9 โ
โโโโโโโโโดโโโโโโโโดโโโโโโโโ
โ
Solution found in 144330.511ms!
๐ Statistics: 638 propagations, 54 nodes explored
๐ Efficiency: 11.8 propagations/node
Solution:
โโโโโโโโโฌโโโโโโโโฌโโโโโโโโ
โ 9 8 7 โ 6 5 4 โ 3 2 1 โ
โ 2 4 6 โ 1 7 3 โ 9 8 5 โ
โ 3 5 1 โ 9 2 8 โ 7 4 6 โ
โโโโโโโโโผโโโโโโโโผโโโโโโโโค
โ 1 2 8 โ 5 3 7 โ 6 9 4 โ
โ 6 3 4 โ 8 9 2 โ 1 5 7 โ
โ 7 9 5 โ 4 6 1 โ 8 3 2 โ
โโโโโโโโโผโโโโโโโโผโโโโโโโโค
โ 5 1 9 โ 2 8 6 โ 4 7 3 โ
โ 4 7 2 โ 3 1 9 โ 5 6 8 โ
โ 8 6 3 โ 7 4 5 โ 2 1 9 โ
โโโโโโโโโดโโโโโโโโดโโโโโโโโ
Basic Usage
use *;
Status
The new implementation follows the design and implementation of Copper v0.1.0.
The library is currently in active development. Features and APIs may change as we refine the implementation and add new functionality.
License
This project is licensed under the MIT License - see the LICENSE file for details.