public class Binpacking extends Constraint implements UsesQueueVariable, Stateful, SatisfiedPresent
This implementation is based on paper "A Constraint for Bin Packing" by Paul Shaw, CP 2004.
This constraint is not idempotent (does not compute fix-point) and, in case when another computation for fix-point is needed, it adds itself to the constraint queue.
| Modifier and Type | Field and Description |
|---|---|
org.jacop.constraints.binpacking.BinItem[] |
item
It keeps together a list of variables which define bin for item i and
their weigts.
|
IntVar[] |
load
It specifies a list of variables which define bin load.
|
atomicExecution, consistencyPruningEvents, constraintScope, earlyTerminationOK, increaseWeight, numberId, scope, tracequeueIndex| Constructor and Description |
|---|
Binpacking(IntVar[] bin,
IntVar[] load,
int[] w)
It constructs the binpacking constraint for the supplied variable.
|
Binpacking(IntVar[] bin,
IntVar[] load,
int[] w,
int minBin)
It constructs the binpacking constraint for the supplied variable.
|
Binpacking(IntVar[] bin,
IntVar[] load,
int[] w,
int minBin,
boolean LBpruning) |
Binpacking(List<? extends IntVar> bin,
List<? extends IntVar> load,
int[] w)
It constructs the binpacking constraint for the supplied variable.
|
Binpacking(List<? extends IntVar> bin,
List<? extends IntVar> load,
int[] w,
int minBin)
It constructs the binpacking constraint for the supplied variable.
|
| Modifier and Type | Method and Description |
|---|---|
void |
consistency(Store store)
It is a (most probably incomplete) consistency function which removes the
values from variables domains.
|
int |
getDefaultConsistencyPruningEvent() |
void |
impose(Store store)
It imposes the constraint in a given store.
|
void |
queueVariable(int level,
Var var)
This is a function called to indicate which variable in a scope of
constraint has changed.
|
void |
removeLevel(int level)
This function is called in case of the backtrack, so a constraint can
clear the queue of changed variables which is no longer valid.
|
boolean |
satisfied()
It checks if the constraint is satisfied.
|
String |
toString()
It produces a string representation of a constraint state.
|
afc, arguments, cleanAfterFailure, decompose, getConsistencyPruningEvent, getGuideConstraint, getGuideValue, getGuideVariable, grounded, grounded, id, impose, imposeDecomposition, increaseWeight, intArrayToString, long2int, numberArgs, removeConstraint, requiresMonotonicity, setConsistencyPruningEvent, setConstraintScope, setScope, setScope, setScope, setScope, setScope, setWatchedVariableGrounded, supplyGuideFeedback, updateAFC, watchedVariableGroundedauxiliaryVariables, checkInput, checkInput, checkInputForDuplication, checkInputForDuplicationSkipSingletons, checkInputForNullness, checkInputForNullness, checkInputForNullness, derivative, getDubletonsSkipSingletons, imposeDecompositionclone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, waitisStatefulpublic final org.jacop.constraints.binpacking.BinItem[] item
public final IntVar[] load
public Binpacking(IntVar[] bin, IntVar[] load, int[] w)
bin - which are constrained to define bin for item i.load - which are constrained to define load for bin i.w - which define size ofitem i.public Binpacking(List<? extends IntVar> bin, List<? extends IntVar> load, int[] w)
bin - which are constrained to define bin for item i.load - which are constrained to define load for bin i.w - which define size ofitem i.public Binpacking(IntVar[] bin, IntVar[] load, int[] w, int minBin)
bin - which are constrained to define bin for item i.load - which are constrained to define load for bin i.w - which define size ofitem i.minBin - minimal index of a bin; ovewrite the value provided by minimal index of variable binpublic Binpacking(List<? extends IntVar> bin, List<? extends IntVar> load, int[] w, int minBin)
bin - which are constrained to define bin for item i.load - which are constrained to define load for bin i.w - which define size ofitem i.minBin - minimal index of a bin; ovewrite the value provided by minimal index of variable binpublic void impose(Store store)
Constraintimpose in class Constraintstore - the constraint store to which the constraint is imposed to.public void consistency(Store store)
Constraintconsistency in class Constraintstore - constraint store within which the constraint consistency is being checked.public int getDefaultConsistencyPruningEvent()
getDefaultConsistencyPruningEvent in class Constraintpublic boolean satisfied()
SatisfiedPresentImplementations of this interface for constraints that are not PrimitiveConstraint may require constraint imposition and consistency check as a requirement to work correctly.
satisfied in interface SatisfiedPresentpublic void queueVariable(int level,
Var var)
ConstraintqueueVariable in class Constraintlevel - the level of the store at which the change has occurred.var - variable which has changed.public void removeLevel(int level)
StatefulremoveLevel in interface Statefullevel - the level which is being removed.public String toString()
ConstrainttoString in class ConstraintCopyright © 2022. All rights reserved.