Constraints.jl
A back-end pacage for JuliaConstraints front packages, such as LocalSearchSolvers.jl
.
It provides the following features:
- A dictionary to store usual constraint:
usual_contraint
, which contains the following entries:all_different
:dist_different
:eq
,:all_equal
,:all_equal_param
:ordered
:always_true
(mainly for testing defaultConstraint()
constructor)
- For each constraint
c
, the following properties- arguments length
- concept (predicate the variables compliance with
c
) - error (a function that evaluate how much
c
is violated) - parameters length
- known symmetries of
c
- A learning function using
CompositionalNetworks.jl
. If no error function is given when instanciatingc
, it will check the existence of a composition related toc
and set the error to it.
Follow the list of the constraints currently stored in usual_constraint
. Note that if the constraint is named _my_constraint
, it can be accessed as usual_contraint[:my_constraint]
.
Missing docstring for Constraints._all_different
. Check Documenter's build log for details.
Missing docstring for Constraints._all_equal
. Check Documenter's build log for details.
Missing docstring for Constraints._all_equal_param
. Check Documenter's build log for details.
Missing docstring for Constraints._dist_different
. Check Documenter's build log for details.
Missing docstring for Constraints._eq
. Check Documenter's build log for details.
Missing docstring for Constraints._ordered
. Check Documenter's build log for details.
Contributing
Contributions to this package are more than welcome and can be arbitrarily, and not exhaustively, split as follows:
- Adding new constraints and symmetries
- Adding new ICNs to learn error of existing constraints
- Creating other compositional networks which target other kind of constraints
- Just making stuff better, faster, user-friendlier, etc.
Contact
Do not hesitate to contact me (@azzaare) or other members of JuliaConstraints on GitHub (file an issue), the julialang discourse forum, the julialang slack channel, the julialang zulip server, or the Human of Julia (HoJ) discord server.