jopt.csp.spi.arcalgorithm.graph.arc
Interface Arc

All Known Subinterfaces:
NumArc, SetArc
All Known Implementing Classes:
AbstractArc, BinaryNumArc, BinaryNumRelationArc, BinarySetArc, BinarySetMemberOfSetReflexArc, GenericBoolAndArc, GenericBoolAndReflexArc, GenericBoolConstTargetAndArc, GenericBoolConstTargetOrArc, GenericBoolConstTargetXImpliesArc, GenericBoolConstTargetXorArc, GenericBoolConstTargetYImpliesArc, GenericBoolEqTwoVarArc, GenericBoolOrArc, GenericBoolOrReflexArc, GenericBoolXorArc, GenericNumAbsArc, GenericNumAbsReflectArc, GenericNumAllDiffArc, GenericNumAllSameArc, GenericNumArc, GenericNumBetweenArc, GenericNumDiffArc, GenericNumMemberOfArrayReflexArc, GenericNumNotBetweenArc, GenericNumNotMemberOfArrayReflexArc, GenericNumProdArc, GenericNumProdReflexArc, GenericNumQuotAlternateArc, GenericNumQuotArc, GenericNumQuotReflexArc, GenericNumRangeArc, GenericNumRelationArc, GenericNumSquareArc, GenericNumSquareReflexArc, GenericNumSumArc, GenericNumSummationArc, GenericNumSummationReflexArc, GenericNumTrigArc, GenericSetArc, GlobalCardinalityArc, GlobalCardinalityCountArc, GlobalCountCardinalityArc, HyperNumMemberOfArrayArc, HyperNumNotMemberOfArrayArc, HyperSetArc, NodeNumAbsArc, NodeNumArc, NodeSetArc, TernaryNumArc, TernaryNumRangeArc

public interface Arc


Field Summary
static int BINARY
          An arc directed from an individual source node to a different individual target node.
static int GENERIC
          An arc that can have several source and several target nodes.
static int HYPER
          An arc that might have more than one source node but only a single target node.
static int NODE
          A node arc is a circular arc pointing back at itself; a single node is both the source and the target of this arc.
static int SCHEDULE
          An arc related to the js module: a scheduler arc.
 
Method Summary
 int getArcType()
          Returns value indicating type of Arc
 int getComplexity()
          Returns a value representing the complexity of the arc
 void propagate()
          Attempts to reduce values in target node domain based on values in all source nodes
 void propagate(Node src)
          Attempts to reduce values in target node domain based on values in given source node
 void setAlgorithmStrength(int strength)
          Sets the strength of the algorithm that is propagating the arc.
 void setUseDomainDeltas(boolean useDeltas)
          Sets a flag indicating if the algorithm wants domain delta's to be consulted when arc is propagating.
 

Field Detail

NODE

public static final int NODE
A node arc is a circular arc pointing back at itself; a single node is both the source and the target of this arc. Such arcs only need to be tested for consistency at the first propagation event because subsequent domain reductions will not cause them to become internally inconsistent.

See Also:
Constant Field Values

BINARY

public static final int BINARY
An arc directed from an individual source node to a different individual target node.

See Also:
Constant Field Values

HYPER

public static final int HYPER
An arc that might have more than one source node but only a single target node.

See Also:
Constant Field Values

GENERIC

public static final int GENERIC
An arc that can have several source and several target nodes.

See Also:
Constant Field Values

SCHEDULE

public static final int SCHEDULE
An arc related to the js module: a scheduler arc.

See Also:
Constant Field Values
Method Detail

getArcType

public int getArcType()
Returns value indicating type of Arc


setAlgorithmStrength

public void setAlgorithmStrength(int strength)
Sets the strength of the algorithm that is propagating the arc. This may affect how much filtering (domain reduction) occurs by the constraint.


setUseDomainDeltas

public void setUseDomainDeltas(boolean useDeltas)
Sets a flag indicating if the algorithm wants domain delta's to be consulted when arc is propagating. The default value for this flag is true.


propagate

public void propagate()
               throws jopt.csp.variable.PropagationFailureException
Attempts to reduce values in target node domain based on values in all source nodes

Throws:
jopt.csp.variable.PropagationFailureException - If domain of target node becomes empty

propagate

public void propagate(Node src)
               throws jopt.csp.variable.PropagationFailureException
Attempts to reduce values in target node domain based on values in given source node

Parameters:
src - Source node that caused propagation to occur
Throws:
jopt.csp.variable.PropagationFailureException - If domain of target node becomes empty

getComplexity

public int getComplexity()
Returns a value representing the complexity of the arc