@Override public void unassigned(long iteration, ExamPlacement value) { super.unassigned(iteration, value); if (!isHard() && iIsSatisfied != isSatisfied()) { iIsSatisfied = !iIsSatisfied; ((ExamModel) value.variable().getModel()) .addDistributionPenalty(iIsSatisfied ? -getWeight() : getWeight()); } }