|
||||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |
java.lang.Objectchoco.kernel.solver.propagation.Propagator
choco.kernel.solver.constraints.AbstractSConstraint<Var>
choco.kernel.solver.constraints.set.AbstractMixedSetIntSConstraint
choco.kernel.solver.constraints.set.AbstractLargeSetIntSConstraint
choco.cp.solver.constraints.global.pack.PackSConstraint
public class PackSConstraint
Pack
which maintains a primal-dual packing model.
The primal model consists of bins
variables. bins
[item] = bin means that item is packed into bin.
The dual model consists of svars
variables. item is in svars
[bin] also means that item is packed into bin.
Nested Class Summary | |
---|---|
protected class |
PackSConstraint.BoundNumberOfBins
|
Field Summary | |
---|---|
static StringMask |
ADDITIONAL_RULES
|
protected IntDomainVar[] |
bins
The bin of each item. |
protected PackSConstraint.BoundNumberOfBins |
bounds
|
static StringMask |
DYNAMIC_LB
|
static StringMask |
FILL_BIN
|
PackFiltering |
filtering
|
BitMask |
flags
|
static StringMask |
LAST_BINS_EMPTY
|
protected IntDomainVar[] |
loads
The loads of the bins. |
protected int[] |
sizes
The sizes of the items. |
Fields inherited from class choco.kernel.solver.constraints.set.AbstractLargeSetIntSConstraint |
---|
ivars, svars |
Fields inherited from class choco.kernel.solver.constraints.AbstractSConstraint |
---|
cIndices, constraintType, extensions, vars |
Fields inherited from class choco.kernel.solver.propagation.Propagator |
---|
active, constAwakeEvent, priority, propagationEngine |
Fields inherited from interface choco.kernel.solver.constraints.SConstraint |
---|
LOGGER |
Constructor Summary | |
---|---|
PackSConstraint(IEnvironment environment,
SetVar[] itemSets,
IntDomainVar[] loads,
IntDomainVar[] sizes,
IntDomainVar[] bins,
IntDomainVar nbNonEmpty)
|
Method Summary | |
---|---|
void |
awake()
Propagation: Propagating the constraint for the very first time until local consistency is reached. |
void |
awakeOnBounds(int varIndex)
|
void |
awakeOnEnv(int varIdx,
int x)
Default propagation on enveloppe modification: propagation on removing a value from the enveloppe. |
void |
awakeOnInf(int varIdx)
Default propagation on improved lower bound: propagation on domain revision. |
void |
awakeOnInst(int varIdx)
Default propagation on instantiation. |
void |
awakeOnKer(int varIdx,
int x)
Default propagation on kernel modification: propagation on adding a value to the kernel. |
void |
awakeOnRem(int varIdx,
int val)
Default propagation on one value removal: propagation on domain revision. |
void |
awakeOnSup(int varIdx)
Default propagation on improved upper bound: propagation on domain revision. |
protected void |
checkBounds(int item)
|
protected void |
checkDeltaDomain(int item)
|
protected void |
checkEnveloppes()
|
void |
fireAvailableBins()
|
IStateIntVector |
getAvailableBins()
|
IntDomainVar[] |
getBins()
|
protected int |
getItemIndex(int varIdx)
|
IntDomainVar[] |
getLoads()
|
int |
getNbBins()
|
int |
getNbItems()
|
int |
getRemainingSpace(int bin)
|
int |
getRequiredSpace(int bin)
|
int[] |
getSizes()
|
NoSumList |
getStatus(int bin)
|
boolean |
isConsistent()
tests if the constraint is consistent with respect to the current state of domains |
boolean |
isEmpty(int bin)
|
protected boolean |
isItemEvent(int varIdx)
|
boolean |
isSatisfied()
Semantic: Testing if the constraint is satisfied. |
protected boolean |
isSetEvent(int varIdx)
|
boolean |
pack(int item,
int bin)
Pack an item into a bin |
void |
propagate()
Propagation: Propagating the constraint until local consistency is reached. |
void |
readOptions(List<String> options)
|
boolean |
remove(int item,
int bin)
Remove a possible assignment of an item into a bin. |
String |
solutionToString()
|
boolean |
updateInfLoad(int bin,
int load)
Update the minimal load of a given bin. |
boolean |
updateNbNonEmpty(int min,
int max)
update the number of non empty bins. |
boolean |
updateSupLoad(int bin,
int load)
Update the maximal load of a given bin. |
Methods inherited from class choco.kernel.solver.constraints.set.AbstractLargeSetIntSConstraint |
---|
getIntVarIndex, getNbIntVars, getNbSetVars, isIntVarIndex, isSetVarIndex |
Methods inherited from class choco.kernel.solver.constraints.set.AbstractMixedSetIntSConstraint |
---|
awakeOnEnvRemovals, awakeOnkerAdditions, awakeOnRemovals, getConstraintType, isSatisfied |
Methods inherited from class choco.kernel.solver.constraints.AbstractSConstraint |
---|
addExtension, addListener, clone, getAbstractSConstraintExtensionNumber, getConstraintIdx, getExtension, getFineDegree, getNbVarNotInst, getNbVars, getVar, getVarQuick, isCompletelyInstantiated, isEntailed, opposite, pretty, setConstraintIndex, setExtension, setVar, toString |
Methods inherited from class choco.kernel.solver.propagation.Propagator |
---|
activate, constAwake, fail, getEvent, getFilteredEventMask, getPriority, isActive, setActive, setActiveSilently, setEntailed, setPassive, setPropagationEngine |
Methods inherited from class java.lang.Object |
---|
equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait |
Methods inherited from interface choco.cp.solver.constraints.global.pack.IPackSConstraint |
---|
fail |
Field Detail |
---|
public static final StringMask ADDITIONAL_RULES
public static final StringMask DYNAMIC_LB
public static final StringMask FILL_BIN
public static final StringMask LAST_BINS_EMPTY
public final BitMask flags
public final PackFiltering filtering
protected final PackSConstraint.BoundNumberOfBins bounds
protected final int[] sizes
protected final IntDomainVar[] loads
protected final IntDomainVar[] bins
Constructor Detail |
---|
public PackSConstraint(IEnvironment environment, SetVar[] itemSets, IntDomainVar[] loads, IntDomainVar[] sizes, IntDomainVar[] bins, IntDomainVar nbNonEmpty)
Method Detail |
---|
public void readOptions(List<String> options)
public final boolean isEmpty(int bin)
public void fireAvailableBins()
fireAvailableBins
in interface IPackSConstraint
public final IStateIntVector getAvailableBins()
getAvailableBins
in interface IPackSConstraint
public final int getRequiredSpace(int bin)
public final int getRemainingSpace(int bin)
protected final boolean isSetEvent(int varIdx)
protected final boolean isItemEvent(int varIdx)
protected final int getItemIndex(int varIdx)
public final IntDomainVar[] getBins()
getBins
in interface IPackSConstraint
public final int getNbBins()
getNbBins
in interface IPackSConstraint
public final int getNbItems()
getNbItems
in interface IPackSConstraint
public final IntDomainVar[] getLoads()
getLoads
in interface IPackSConstraint
public final int[] getSizes()
getSizes
in interface IPackSConstraint
public final NoSumList getStatus(int bin)
getStatus
in interface IPackSConstraint
public final boolean pack(int item, int bin) throws ContradictionException
IPackSConstraint
pack
in interface IPackSConstraint
ContradictionException
- the contradiction exceptionpublic final boolean remove(int item, int bin) throws ContradictionException
IPackSConstraint
remove
in interface IPackSConstraint
ContradictionException
- the contradiction exceptionpublic final boolean updateInfLoad(int bin, int load) throws ContradictionException
IPackSConstraint
updateInfLoad
in interface IPackSConstraint
bin
- the index of binload
- the new load
ContradictionException
- the contradiction exceptionpublic final boolean updateNbNonEmpty(int min, int max) throws ContradictionException
IPackSConstraint
updateNbNonEmpty
in interface IPackSConstraint
ContradictionException
public final boolean updateSupLoad(int bin, int load) throws ContradictionException
IPackSConstraint
updateSupLoad
in interface IPackSConstraint
bin
- the index of binload
- the new load
ContradictionException
- the contradiction exceptionpublic boolean isConsistent()
AbstractMixedSetIntSConstraint
isConsistent
in class AbstractMixedSetIntSConstraint
protected final void checkBounds(int item) throws ContradictionException
ContradictionException
protected final void checkEnveloppes() throws ContradictionException
ContradictionException
public void awake() throws ContradictionException
Propagator
awake
in class Propagator
ContradictionException
- contradiction exceptionpublic void awakeOnEnv(int varIdx, int x) throws ContradictionException
SetPropagator
awakeOnEnv
in interface SetPropagator
awakeOnEnv
in class AbstractMixedSetIntSConstraint
ContradictionException
protected void checkDeltaDomain(int item) throws ContradictionException
ContradictionException
public void awakeOnBounds(int varIndex) throws ContradictionException
awakeOnBounds
in interface IntPropagator
awakeOnBounds
in class AbstractMixedSetIntSConstraint
ContradictionException
public void awakeOnInf(int varIdx) throws ContradictionException
AbstractMixedSetIntSConstraint
awakeOnInf
in interface IntPropagator
awakeOnInf
in class AbstractMixedSetIntSConstraint
ContradictionException
public void awakeOnInst(int varIdx) throws ContradictionException
SetPropagator
awakeOnInst
in interface IntPropagator
awakeOnInst
in interface SetPropagator
awakeOnInst
in class AbstractMixedSetIntSConstraint
ContradictionException
public void awakeOnKer(int varIdx, int x) throws ContradictionException
SetPropagator
awakeOnKer
in interface SetPropagator
awakeOnKer
in class AbstractMixedSetIntSConstraint
ContradictionException
public void awakeOnRem(int varIdx, int val) throws ContradictionException
AbstractMixedSetIntSConstraint
awakeOnRem
in interface IntPropagator
awakeOnRem
in class AbstractMixedSetIntSConstraint
ContradictionException
public void awakeOnSup(int varIdx) throws ContradictionException
AbstractMixedSetIntSConstraint
awakeOnSup
in interface IntPropagator
awakeOnSup
in class AbstractMixedSetIntSConstraint
ContradictionException
public void propagate() throws ContradictionException
Propagator
propagate
in class Propagator
ContradictionException
- contradiction exceptionpublic boolean isSatisfied()
SConstraint
isSatisfied
in interface SConstraint<Var>
public final String solutionToString()
solutionToString
in interface ISolutionDisplay
|
||||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |