suvi.alg.policies
Class HeuristicNodeOrderingPolicy

java.lang.Object
  |
  +--javautils.collections.Algs
        |
        +--javautils.graph.Graphs
              |
              +--suvi.alg.util.NodeOrderingPolicies
                    |
                    +--suvi.alg.policies.HeuristicNodeOrderingPolicy
All Implemented Interfaces:
GraphLayoutAttrConsumer, NodeOrderingPolicy

public class HeuristicNodeOrderingPolicy
extends NodeOrderingPolicies
implements NodeOrderingPolicy

A generalized policy for ordering nodes using heuristics for reducing edge crossings.


Nested Class Summary
static interface HeuristicNodeOrderingPolicy.Heuristic
          A heuristic for reducing edge crossings in a way or another.
static interface HeuristicNodeOrderingPolicy.HeuristicContext
          Information on the context in which a heuristics is being performed.
static interface HeuristicNodeOrderingPolicy.HeuristicFactory
          A Factory [Gamma1995] for creating a heuristic in a context.
 
Field Summary
static HeuristicNodeOrderingPolicy.HeuristicFactory[] DEFAULT_HEURISTIC_FACTORIES
           
static int DEFAULT_MAX_PASSES
           
static int DEFAULT_MAX_PASSES_TO_IMPROVE
           
static HeuristicNodeOrderingPolicy.HeuristicFactory MEDIAN_HEURISTIC_FACTORY
          Implements the median heuristic as described in [Gansner1993].
static HeuristicNodeOrderingPolicy.HeuristicFactory TRANSPOSITION_HEURISTIC_FACTORY
          Implements the transposition heuristic as described in [Gansner1993].
 
Fields inherited from class javautils.collections.Algs
EMPTY_ARRAY, EMPTY_LIST, EMPTY_MAP, EMPTY_SEQUENCE, EMPTY_SET
 
Constructor Summary
HeuristicNodeOrderingPolicy()
           
HeuristicNodeOrderingPolicy(int maxPasses, int maxPassesToImprove, HeuristicNodeOrderingPolicy.HeuristicFactory[] heuristicFactories)
           
 
Method Summary
 GraphLayoutAttr[] defaultAttrs()
          This policy uses the following attributes:
 NodeOrdering nodeOrdering(javautils.graph.adt.AugmentedGraph original, javautils.graph.adt.AugmentedGraph preprocessed, GraphTopology topology, GraphLayoutAttrMap attrMap, AugmentedNodeRanking ranking)
          A node ordering for the graph.
 
Methods inherited from class suvi.alg.util.NodeOrderingPolicies
asMap, asTable, crossings, initialOrdering, newNodeOrdering
 
Methods inherited from class javautils.graph.Graphs
asSourceTargetPair, asString, asString, augmented, connectedComponents, edges, edgeSet, forEachEdge, forEachNode, inducedByEdgesAndContainingNodes, invariant, isAcyclic, isIncoming, isSelf, nodesByDecreasingDfsFinishingTime, nodesByIncreasingIndegree, nodesByIncreasingOutdegree, nodeSet, nodesReachableFrom, nodesReachableFrom, nodesReachableFrom, otherNode, randomGraph, restrictedToNodes, restrictedToNodes, restrictedToNodes, sameNodesAndEdges, stronglyConnectedComponents, transitiveIrreflexiveClosure, transposed, transposed, undirected
 
Methods inherited from class javautils.collections.Algs
addAll, allSuperInterfaces, asArray, asArray, asComparator, asUnmodifiableList, collect, collectMap, collectSet, collectUnmodifiable, concat, concat, concat, copyOf, copyOf, copyOf, copyOf, copyOf, copyOf, copyOf, copyOf, copyOf, copyOfArray, ensureLength, exists, exists, exists, filter, filter, filter, find, find, find, flatten, flatten, flatten, fold, fold, fold, foldRight, foldRight, foldRight, forAll, forAll, forAll, forEach, forEach, forEach, forEach, forEach, forEach, forEachInProduct, forEachInProduct, forEachInProduct, forEachInProduct, genAddAll, genConcat, genConcat, genForEach, genForEach, getOrIfNull, integersInRange, iterator, iterator, iterator, iterator, iterator, iterator, iterator, iterator, iterator, iterator, iterator, iterator, iterator, iterator, iterator, iterator, iterator, iterator, iterator, iterator, iterator, iterator, iterator, iterator, iterator, iterator, iterator, iterator, iteratorOverArray, map, map, map, map, map, map, mapMorphism, mapMorphismTo, mapTransform, max, max, max, max, max, max, max, min, min, min, min, min, min, min, newMap, newShapedArray, newUnmodifiableList, putAll, putAll, reverseIterator, reverseIterator, select, select, select, sign, singletonIterator, sort, sort, sorted, sorted, transform, transform, transform
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

DEFAULT_MAX_PASSES

public static final int DEFAULT_MAX_PASSES
See Also:
Constant Field Values

DEFAULT_MAX_PASSES_TO_IMPROVE

public static final int DEFAULT_MAX_PASSES_TO_IMPROVE
See Also:
Constant Field Values

MEDIAN_HEURISTIC_FACTORY

public static final HeuristicNodeOrderingPolicy.HeuristicFactory MEDIAN_HEURISTIC_FACTORY

Implements the median heuristic as described in [Gansner1993].


TRANSPOSITION_HEURISTIC_FACTORY

public static final HeuristicNodeOrderingPolicy.HeuristicFactory TRANSPOSITION_HEURISTIC_FACTORY

Implements the transposition heuristic as described in [Gansner1993].


DEFAULT_HEURISTIC_FACTORIES

public static final HeuristicNodeOrderingPolicy.HeuristicFactory[] DEFAULT_HEURISTIC_FACTORIES
Constructor Detail

HeuristicNodeOrderingPolicy

public HeuristicNodeOrderingPolicy()

HeuristicNodeOrderingPolicy

public HeuristicNodeOrderingPolicy(int maxPasses,
                                   int maxPassesToImprove,
                                   HeuristicNodeOrderingPolicy.HeuristicFactory[] heuristicFactories)
Method Detail

defaultAttrs

public GraphLayoutAttr[] defaultAttrs()

This policy uses the following attributes:

Specified by:
defaultAttrs in interface GraphLayoutAttrConsumer

nodeOrdering

public NodeOrdering nodeOrdering(javautils.graph.adt.AugmentedGraph original,
                                 javautils.graph.adt.AugmentedGraph preprocessed,
                                 GraphTopology topology,
                                 GraphLayoutAttrMap attrMap,
                                 AugmentedNodeRanking ranking)
Description copied from interface: NodeOrderingPolicy

A node ordering for the graph.

Specified by:
nodeOrdering in interface NodeOrderingPolicy