Baseclasses
Definition
The module SplitHeuristic chooses a pivot vertex v and places every other vertex to the left or right of v according to whether it would make fewer crossings. This step is applied recursively to order the left hand side and right hand side of v (see Eades and Kelly [EK86]).
General Information
Algorithm | |
name | Split |
long name | Split (Eades,Kelly) |
author | P. Eades, D. Kelly |
Implementation | |
author | M. Krüger, Th. Ziegler |
date | March 1998 |
version | 1.0 |
Pre- and Postcondition
precondition | = | ![]() |
postcondition(PRE) | = | ![]() |
#include < AGD/SplitHeuristic.h >
Creation
SplitHeuristic | M | creates an instance M of type SplitHeuristic. |
Operations
Standard Interface (Inherited Methods) The detailed description of these methods can be found in the manual entries of the base class (TwoLayerCrossMin).
bool | M.check(const leda_graph& G, const Layer& L, AgdKey& p) | |
void | M.init(const leda_graph& G, const Hierarchy& H) | |
void | M.call(const leda_graph& G, Layer& L) | |
void | M.cleanup() |
Implementation
Let nL denote the number of nodes on the changeable layer
and mL the number of edges between the fixed and the changeable layer.
The algorithm computes in a preprocessing step a so-called
crossing matrix, which takes time
(nLmL).
The actual crossing reduction algorithm takes time
(nLlognL). Both steps are implemented in the
call()-method.
© Copyright 1998-2001, Algorithmic Solutions Software GmbH. All rights reserved.
2001-08-13