A back-end package for JuliaConstraints front packages, such as LocalSearchSolvers.jl
.
It provides the following features:
-
A dictionary to store usual constraint:
usual_constraint
, which contains the following entries (in alphabetical order):- :
all_different
- :
all_equal
- :
at_least
- :
at_most
- :
cardinality
- :
cardinality_closed
- :
cardinality_open
- :
channel
- :
circuit
- :
conflicts
- :
count
- :
cumulative
- :
decreasing
- :
dist_different
- :
element
- :
exactly
- :
extension
- :
increasing
- :
instantiation
- :
maximum
- :
mdd
- :
minimum
- :
no_overlap
- :
no_overlap_no_zero
- :
no_overlap_with_zero
- :
nvalues
- :
ordered
- :
regular
- :
strictly_decreasing
- :
strictly_increasing
- :
sum
- :
supports
- :
-
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 instantiatingc
, it will check the existence of a composition related toc
and set the error to it.
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.
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.