Baseclasses
Definition
The OptNodeRanking module computes the following ranking of a graph G = (V, E):
First, a feedback set
R
E is computed, that is, the graph
G' = /V, E') resulting from G by reversing all edges in R is acyclic.
In this step, self-loops are simply ignored. For this purpose, we use
a subgraph module that computes a maximal acyclic subgraph (that also
implies a feedback set R). Then, we compute a ranking that is defined
as the optimal solution of the following optimization problem
|
min |
||||
| y(w) - y(v) | > = | 1 | for all
(v, w) |
|
|
x(v) |
for all v |
|||
General Information
| Algorithm | |
| name | Optimal Node Ranking |
| long name | Optimal Node Ranking |
| author | E. R. Gansner, E. Koutsofios, S. C. North, K. P. Vo |
| Implementation | |
| author | C. Gutwenger |
| date | June 1999 |
| version | 1.0 |
Pre- and Postcondition
| precondition | = | { directed } |
| postcondition(PRE) | = |
Exchangeable Modules Instances of type OptNodeRanking provide the following module options:
| guaranteed precondition: | {directed} |
| required postcondition: |
|
| initial module: | LEDAMakeAcyclic |
#include < AGD/OptNodeRanking.h >
Creation
| OptNodeRanking | R | creates an instance R of type OptNodeRanking. |
Operations
Standard Interface (Inherited Methods) The detailed description of these methods can be found in the manual entries of the base class (RankAssignment).
| bool | R.check(const leda_graph& G, AgdKey& p) | |
| void | R.call(const leda_graph& G, leda_node_array<int>& rank) |
Access to Options
| bool | R.set_subgraph(const SubgraphModule& M) |
Implementation
The integrality condition in the integer linear program (ILP) can be omitted if it is solved with the simplex algorithm, because the constraint matrix is unimodular (see [GKNV93]). Therefore, we solve the relaxation of the ILP with an LP-solver, what gives us the optimal solution of the ILP.
© Copyright 1998-2001, Algorithmic Solutions Software GmbH. All rights reserved.
2001-08-13