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
cis 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 tocand 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.