jopt.csp.spi.arcalgorithm.graph.arc.global
Class GlobalCountCardinalityArc

java.lang.Object
  extended byjopt.csp.spi.arcalgorithm.graph.arc.AbstractArc
      extended byjopt.csp.spi.arcalgorithm.graph.arc.generic.GenericArc
          extended byjopt.csp.spi.arcalgorithm.graph.arc.global.GlobalCountCardinalityArc
All Implemented Interfaces:
Arc, NumArc, NumConstants

public class GlobalCountCardinalityArc
extends GenericArc
implements NumArc

Generic arc that ensures all ensures that the count variables accurately reflect the number of occurrences of the corresponding value.

Version:
$Revision $
Author:
Jim Boerkoel

Field Summary
 
Fields inherited from interface jopt.csp.spi.arcalgorithm.graph.arc.Arc
BINARY, GENERIC, HYPER, NODE, SCHEDULE
 
Fields inherited from interface jopt.csp.spi.util.NumConstants
ADD, DIVIDE, DIVIDE_BY, DIVIDE_BY_CEIL, DIVIDE_BY_FLOOR, DIVIDE_CEIL, DIVIDE_FLOOR, DOUBLE, DOUBLE_NEG_INF, DOUBLE_POS_INF, DOUBLE_ZERO, EQ, FLOAT, FLOAT_NEG_INF, FLOAT_POS_INF, FLOAT_ZERO, GEQ, GT, HALF_PI, INTEGER, INTEGER_MAX, INTEGER_MIN, INTEGER_ZERO, LEQ, LONG, LONG_MAX, LONG_MIN, LONG_ZERO, LT, MULTIPLY, NEQ, ONE_AND_HALF_PI, PI, RANGE, SUBTRACT, SUBTRACT_FROM, TWO_PI
 
Constructor Summary
GlobalCountCardinalityArc(NumNode[] sources, java.lang.Number[] vals, IntNode[] count)
          Generates a global count cardinality arc, counting the number of times that each val in the val array occurs in sources
 
Method Summary
 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
 
Methods inherited from class jopt.csp.spi.arcalgorithm.graph.arc.generic.GenericArc
getArcType, getComplexity, getSourceDependencies, getSourceNodes, getTargetNodes
 
Methods inherited from class jopt.csp.spi.arcalgorithm.graph.arc.AbstractArc
setAlgorithmStrength, setUseDomainDeltas
 
Methods inherited from class java.lang.Object
equals, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 
Methods inherited from interface jopt.csp.spi.arcalgorithm.graph.arc.Arc
getArcType, getComplexity, setAlgorithmStrength, setUseDomainDeltas
 

Constructor Detail

GlobalCountCardinalityArc

public GlobalCountCardinalityArc(NumNode[] sources,
                                 java.lang.Number[] vals,
                                 IntNode[] count)
Generates a global count cardinality arc, counting the number of times that each val in the val array occurs in sources

Parameters:
sources - - the collection of variables whose values are to be counted
vals - - the values of whose presence among sources we would like to count
count - - the node representing the possible number of times that the value will show up
Method Detail

propagate

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

Specified by:
propagate in interface Arc
Parameters:
src - Source node that caused propagation to occur
Throws:
jopt.csp.variable.PropagationFailureException - If domain of target node becomes empty

propagate

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

Specified by:
propagate in interface Arc
Throws:
jopt.csp.variable.PropagationFailureException - If domain of target node becomes empty