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, trace
queueIndex
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, watchedVariableGrounded
auxiliaryVariables, checkInput, checkInput, checkInputForDuplication, checkInputForDuplicationSkipSingletons, checkInputForNullness, checkInputForNullness, checkInputForNullness, derivative, getDubletonsSkipSingletons, imposeDecomposition
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
isStateful
public 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)
Constraint
impose
in class Constraint
store
- the constraint store to which the constraint is imposed to.public void consistency(Store store)
Constraint
consistency
in class Constraint
store
- constraint store within which the constraint consistency is being checked.public int getDefaultConsistencyPruningEvent()
getDefaultConsistencyPruningEvent
in class Constraint
public boolean satisfied()
SatisfiedPresent
Implementations 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 SatisfiedPresent
public void queueVariable(int level, Var var)
Constraint
queueVariable
in class Constraint
level
- the level of the store at which the change has occurred.var
- variable which has changed.public void removeLevel(int level)
Stateful
removeLevel
in interface Stateful
level
- the level which is being removed.public String toString()
Constraint
toString
in class Constraint
Copyright © 2022. All rights reserved.