optaplanner-core/src/main/java/org/optaplanner/core/api/score/buildin/hardmediumsoft/HardMediumSoftScoreHolder.java
public void penalize(RuleContext kcontext, int hardWeightMultiplier, int mediumWeightMultiplier, int softWeightMultiplier) {
        reward(kcontext, -hardWeightMultiplier, -mediumWeightMultiplier, -softWeightMultiplier);
    }
public void penalize(RuleContext kcontext, int hardWeightMultiplier, int mediumWeightMultiplier, int softWeightMultiplier) {
        reward(kcontext, -hardWeightMultiplier, -mediumWeightMultiplier, -softWeightMultiplier);
    }
Penalize a match by the {@link ConstraintWeight} negated and multiplied with the specific weightMultiplier per score level.
Slower than {@link #penalize(RuleContext, int)}.
@param kcontext never null, the magic variable in DRL
@param hardWeightMultiplier at least 0
@param mediumWeightMultiplier at least 0
@param softWeightMultiplier at least 0