Class SoftGCC


  • public class SoftGCC
    extends DecomposedConstraint<Constraint>
    This class provides soft-gcc constraint by decomposing it either into a network flow constraint or a set of primitive constraints.

    It is soft in a sense that every violation of softLower, softUpper bound or softCounter contributes to the violation cost. It is hard in a sense that it does enforce hardLower, hardUpper bound or hardCounter. It uses value based violation metric.

    Version:
    4.7
    • Field Detail

      • decomposition

        public java.util.List<Constraint> decomposition
      • xVars

        public IntVar[] xVars
      • hardCounters

        public IntVar[] hardCounters
      • softCounters

        public IntVar[] softCounters
      • countedValue

        public int[] countedValue
      • softLowerBound

        public int[] softLowerBound
      • softUpperBound

        public int[] softUpperBound
      • hardLowerBound

        public int[] hardLowerBound
      • hardUpperBound

        public int[] hardUpperBound
      • costVar

        public IntVar costVar
    • Constructor Detail

      • SoftGCC

        public SoftGCC​(IntVar[] xVars,
                       IntVar[] hardCounters,
                       int[] countedValue,
                       int[] softLowerBound,
                       int[] softUpperBound,
                       IntVar costVar,
                       ViolationMeasure violationMeasure)
        It specifies soft-GCC constraint.
        Parameters:
        xVars - variables over which counting takes place.
        hardCounters - idNumber variables for different values being counted. Their domain specify hard constraints on the occurrences.
        countedValue - it specifies values which occurrence is being counted.
        softLowerBound - it specifies constraint what is the minimal number of occurrences.
        softUpperBound - it specifies constraint what is the maximal number of occurrences.
        costVar - a cost variable specifying the cost of violations.
        violationMeasure - it is only accepted to use Value_Based violation measure.
      • SoftGCC

        public SoftGCC​(IntVar[] xVars,
                       int[] hardLowerBound,
                       int[] hardUpperBound,
                       int[] countedValue,
                       IntVar[] softCounters,
                       IntVar costVar,
                       ViolationMeasure violationMeasure)
        It specifies soft-GCC constraint.
        Parameters:
        xVars - variables over which counting takes place.
        hardLowerBound - it specifies constraint what is the minimal number of occurrences. (hard)
        hardUpperBound - it specifies constraint what is the maximal number of occurrences. (hard)
        countedValue - it specifies values which occurrence is being counted.
        softCounters - it specifies the number of occurrences (soft).
        costVar - a cost variable specifying the cost of violations.
        violationMeasure - it is only accepted to use Value_Based violation measure.
      • SoftGCC

        public SoftGCC​(IntVar[] xVars,
                       IntVar[] hardCounters,
                       int[] countedValue,
                       IntVar[] softCounters,
                       IntVar costVar,
                       ViolationMeasure violationMeasure)
        It specifies soft-GCC constraint.
        Parameters:
        xVars - variables over which counting takes place.
        hardCounters - idNumber variables for different values being counted. (hard)
        countedValue - it specifies values which occurrence is being counted.
        softCounters - idNumber variables for different values being counted. (soft)
        costVar - a cost variable specifying the cost of violations.
        violationMeasure - it is only accepted to use Value_Based violation measure.
      • SoftGCC

        public SoftGCC​(IntVar[] xVars,
                       IntVar[] hardCounters,
                       int[] softLowerBound,
                       int[] softUpperBound,
                       IntVar costVar,
                       ViolationMeasure violationMeasure)
        It specifies soft-GCC constraint.
        Parameters:
        xVars - variables over which counting takes place.
        hardCounters - idNumber variables for different values being counted. (hard)
        softLowerBound - it specifies constraint what is the minimal number of occurrences. (soft)
        softUpperBound - it specifies constraint what is the maximal number of occurrences. (soft)
        costVar - a cost variable specifying the cost of violations.
        violationMeasure - it is only accepted to use Value_Based violation measure.
      • SoftGCC

        public SoftGCC​(IntVar[] xVars,
                       int[] hardLowerBound,
                       int[] hardUpperBound,
                       IntVar[] softCounters,
                       IntVar costVar,
                       ViolationMeasure violationMeasure)
        It specifies soft-GCC constraint.
        Parameters:
        xVars - variables over which counting takes place.
        hardLowerBound - it specifies constraint what is the minimal number of occurrences. (hard)
        hardUpperBound - it specifies constraint what is the maximal number of occurrences. (hard)
        softCounters - idNumber variables for different values being counted. (soft)
        costVar - a cost variable specifying the cost of violations.
        violationMeasure - it is only accepted to use Value_Based violation measure.
      • SoftGCC

        public SoftGCC​(IntVar[] xVars,
                       IntVar[] hardCounters,
                       IntVar[] softCounters,
                       IntVar costVar,
                       ViolationMeasure violationMeasure)
        It specifies soft-GCC constraint.
        Parameters:
        xVars - variables over which counting takes place.
        hardCounters - idNumber variables for different values being counted. (hard)
        softCounters - idNumber variables that may be violated.
        costVar - a cost variable specifying the cost of violations.
        violationMeasure - it is only accepted to use Value_Based violation measure.
    • Method Detail

      • primitiveDecomposition

        public java.util.List<Constraint> primitiveDecomposition​(Store store)
      • decompose

        public java.util.List<Constraint> decompose​(Store store)
        Description copied from class: DecomposedConstraint
        It returns an array list of constraint which are used to decompose this constraint. It actually creates a decomposition (possibly also creating variables), but it does not impose the constraint.
        Specified by:
        decompose in class DecomposedConstraint<Constraint>
        Parameters:
        store - the constraint store in which context the decomposition takes place.
        Returns:
        an array list of constraints used to decompose this constraint.
      • toString

        public java.lang.String toString()
        Overrides:
        toString in class java.lang.Object