nl.uu.cs.treewidth.algorithm
Class PermutationToTreeDecomposition<D extends GraphInput.InputData>

java.lang.Object
  extended by nl.uu.cs.treewidth.algorithm.PermutationToTreeDecomposition<D>
All Implemented Interfaces:
Algorithm<D>, Constructive<D>, UpperBound<D>

public class PermutationToTreeDecomposition<D extends GraphInput.InputData>
extends java.lang.Object
implements UpperBound<D>, Constructive<D>


Constructor Summary
PermutationToTreeDecomposition(NVertexOrder<D> givenPermutation)
          Create an instance of the PermutationToTreeDecomposition algorithm and use a given permutation.
PermutationToTreeDecomposition(Permutation<D> permAlg)
          Create an instance of the PermutationToTreeDecomposition algorithm and use a Permutation algorithm to get the permutation.
 
Method Summary
 NGraph<NTDBag<D>> getDecomposition()
          Returns the found tree decomposition.
 java.lang.String getName()
          Every algorithm has a name.
 int getUpperBound()
          Returns the upperbound.
 void run()
          Does the actual computation of the algorithm.
 void setInput(NGraph<D> g)
          Sets the input the algorithm will run on.
 
Methods inherited from class java.lang.Object
equals, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

PermutationToTreeDecomposition

public PermutationToTreeDecomposition(Permutation<D> permAlg)
Create an instance of the PermutationToTreeDecomposition algorithm and use a Permutation algorithm to get the permutation.

Parameters:
permAlg - The Permutation algorithm to use.

PermutationToTreeDecomposition

public PermutationToTreeDecomposition(NVertexOrder<D> givenPermutation)
Create an instance of the PermutationToTreeDecomposition algorithm and use a given permutation.

Parameters:
givenPermutation - The permutation to use.
Method Detail

getUpperBound

public int getUpperBound()
Description copied from interface: UpperBound
Returns the upperbound.

Specified by:
getUpperBound in interface UpperBound<D extends GraphInput.InputData>
Returns:
A valid upperbound. If run() has not been called, Integer.MAX_VALUE is returned.

getName

public java.lang.String getName()
Description copied from interface: Algorithm
Every algorithm has a name. This is for identification towards the user.

Specified by:
getName in interface Algorithm<D extends GraphInput.InputData>
Returns:
Name of the algorithm.

setInput

public void setInput(NGraph<D> g)
Description copied from interface: Algorithm
Sets the input the algorithm will run on.

Specified by:
setInput in interface Algorithm<D extends GraphInput.InputData>
Parameters:
g - The graph in standard graph format.

run

public void run()
Description copied from interface: Algorithm
Does the actual computation of the algorithm. The result is remembered but not returned. Get it using the appropriate return function (getUpperbound(), getLowerBound(), etc.).
Only works after setInput has been called.

Specified by:
run in interface Algorithm<D extends GraphInput.InputData>

getDecomposition

public NGraph<NTDBag<D>> getDecomposition()
Description copied from interface: Constructive
Returns the found tree decomposition.
This method does not compute the tree decomposition; you must first call run().

Specified by:
getDecomposition in interface Constructive<D extends GraphInput.InputData>
Returns:
The computed tree decomposition.