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.10
  • Field Details

    • decomposition

      public 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
    • violationMeasure

      public ViolationMeasure violationMeasure
  • Constructor Details

    • 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 Details

    • primitiveDecomposition

      public List<Constraint> primitiveDecomposition(Store store)
    • decompose

      public 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.
    • imposeDecomposition

      public void imposeDecomposition(Store store)
      Description copied from class: DecomposedConstraint
      It imposes the constraint in a given store.
      Specified by:
      imposeDecomposition in class DecomposedConstraint<Constraint>
      Parameters:
      store - the constraint store to which the constraint is imposed to.
    • toString

      public String toString()
      Overrides:
      toString in class Object