Crates.io | libpcp |
lib.rs | libpcp |
version | 0.7.0 |
source | src |
created_at | 2020-06-29 18:06:10.78432 |
updated_at | 2022-12-21 15:14:13.604692 |
description | A constraint solver supporting arithmetic constraints over integers. |
homepage | |
repository | https://github.com/ptal/pcp |
max_upload_size | |
id | 259495 |
size | 263,897 |
PCP is a library to model constraint satisfaction problems (CSPs) in the constraint programming paradigm.
Constraint programming is a paradigm for expressing problems in terms of mathematical relations, called constraints, over variables (e.g. x > y
).
Constraints are an intuitive approach to naturally describe many real-world problems which initially emerged as a subfield of artificial intelligence and operational research.
The flagship applications in constraint programming encompass scheduling, configuration and vehicles routing problems.
Constraints are also applied to various other domains such as in music, biology and model checking.
It is a programming paradigm in its own right and being able to program in Rust is not sufficient to master the art of constraint programming. This is why I strongly recommend the class Basic Modeling for Discrete Optimization for those who wants to learn this paradigm. Meanwhile you can already look at the documentation for a running example.
PCP compiles on the stable Rust channel.
Existing libraries are an invaluable source of inspiration:
Most of this work has its roots in the following research works: