For my problem, I'm using the BendableScoreHolder cause I need 3 hard constraints and 2 soft constraints. I'm wondering what's the purpose of the second parameter "hardlevel" of the method addHardConstraintMatch though.
Do you need 3 hard constraints or 3 hard constraints levels? (and similarly reasoning for soft constraints).
If you need 3 hard constraints, you only have 1 hard level. So use HardSoftScore
, not BendableScore
. Note that the hard constraints might be weighted against each other. For example: 1 teacher confict
is 10 times as worse than 1 student confict
. So 1 teacher confict
is weight -10
and 1 student confict
is weight -1
.
If you need 3 hard constraint levels, then BendableScore
is indeed appropriate. The hardLevel is 1 of those 3 levels. For example: 1 teacher confict
is infinity worse than 1 student confict
. So 1 teacher confict
is level 0
and 1 student confict
is level 1
.