choco.cp.solver.constraints.global.tree.filtering.structuralFiltering.globalCardConstraint
Class GlobalCardinalityNoLoop

java.lang.Object
  extended by choco.cp.solver.constraints.global.tree.filtering.structuralFiltering.globalCardConstraint.AbstractBipartGraph
      extended by choco.cp.solver.constraints.global.tree.filtering.structuralFiltering.globalCardConstraint.AbstractBipartFlow
          extended by choco.cp.solver.constraints.global.tree.filtering.structuralFiltering.globalCardConstraint.GlobalCardinalityNoLoop

public class GlobalCardinalityNoLoop
extends AbstractBipartFlow


Nested Class Summary
 
Nested classes/interfaces inherited from class choco.cp.solver.constraints.global.tree.filtering.structuralFiltering.globalCardConstraint.AbstractBipartGraph
AbstractBipartGraph.IntQueue
 
Field Summary
protected  boolean affiche
          boolean for debug and show a trace of the execution
protected  VarGraphView inputGraph
          data structure related to the graph representation of the input graph
 
Fields inherited from class choco.cp.solver.constraints.global.tree.filtering.structuralFiltering.globalCardConstraint.AbstractBipartFlow
compatibleFlow, flow, maxFlow, minFlow
 
Fields inherited from class choco.cp.solver.constraints.global.tree.filtering.structuralFiltering.globalCardConstraint.AbstractBipartGraph
component, componentOrder, currentComponent, currentNode, finishDate, graph, index, isFeasible, left2rightArc, LOGGER, matchingSize, maxValue, minValue, nbLeftVertices, nbRightVertices, nbVertices, nTree, queue, refMatch, right2leftArc, seen, solver, source, struct, time, tree
 
Constructor Summary
GlobalCardinalityNoLoop(Solver solver, Object[] pack)
          Constructor: build a global cardinality constraint API, short cut when smallest value equals 0
 
Method Summary
 boolean applyGCC(RemovalsAdvisor rem)
          Achieves generalized arc consistency in one call

remove arcs connecting two different strongly connected components the event generated by the flow algorithm: discovering that an edge is no longer valid, and posting this event to the constraint solver: since we are already achieving GAC consistency in one single loop.

 void deleteEdgeAndPublish(int i, int j, RemovalsAdvisor rem)
          implement one of the two main events: when an edge is definitely removed from the bipartite assignment graph
 
Methods inherited from class choco.cp.solver.constraints.global.tree.filtering.structuralFiltering.globalCardConstraint.AbstractBipartFlow
augment, decreaseMatchingSize, deleteMatch, findAlternatingPath, increaseMatchingSize, initAbstractBipartFlow, mayDiminishFlowFromSource, mayGrowFlowFromSource, mustGrowFlowFromSource, putRefMatch, setMatch
 
Methods inherited from class choco.cp.solver.constraints.global.tree.filtering.structuralFiltering.globalCardConstraint.AbstractBipartGraph
addComponentEdge, addComponentVertex, augmentFlow, firstDFSearch, firstPassDFS, getPriority, init, initSCCGraph, match, mayDiminishFlowBetween, mayGrowFlowBetween, mayGrowFlowToSink, mayInverseMatch, mayMatch, propagate, removeUselessEdges, secondDFSearch, secondPassDFS
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

affiche

protected boolean affiche
boolean for debug and show a trace of the execution


inputGraph

protected VarGraphView inputGraph
data structure related to the graph representation of the input graph

Constructor Detail

GlobalCardinalityNoLoop

public GlobalCardinalityNoLoop(Solver solver,
                               Object[] pack)
Constructor: build a global cardinality constraint API, short cut when smallest value equals 0

Parameters:
solver - the choco problem involving the constraint
pack - a set of parameters : treeParams, indices, struct, affiche
Method Detail

deleteEdgeAndPublish

public void deleteEdgeAndPublish(int i,
                                 int j,
                                 RemovalsAdvisor rem)
Description copied from class: AbstractBipartGraph
implement one of the two main events: when an edge is definitely removed from the bipartite assignment graph

Specified by:
deleteEdgeAndPublish in class AbstractBipartGraph
Parameters:
i - the variable to unmatch
j - the value to remove

applyGCC

public boolean applyGCC(RemovalsAdvisor rem)
                 throws ContradictionException
Achieves generalized arc consistency in one call

remove arcs connecting two different strongly connected components the event generated by the flow algorithm: discovering that an edge is no longer valid, and posting this event to the constraint solver: since we are already achieving GAC consistency in one single loop.

Parameters:
rem -
Returns:
Throws:
ContradictionException


Copyright © 2012. All Rights Reserved.