Package org.jgrapht.alg.spanning
Class AbstractCapacitatedMinimumSpanningTree.CapacitatedSpanningTreeSolutionRepresentation
- java.lang.Object
-
- org.jgrapht.alg.spanning.AbstractCapacitatedMinimumSpanningTree.CapacitatedSpanningTreeSolutionRepresentation
-
- All Implemented Interfaces:
java.lang.Cloneable
- Enclosing class:
- AbstractCapacitatedMinimumSpanningTree<V,E>
protected class AbstractCapacitatedMinimumSpanningTree.CapacitatedSpanningTreeSolutionRepresentation extends java.lang.Object implements java.lang.CloneableThis class represents a solution instance by managing the labels and the partition mapping. With the help of this class, a capacitated spanning tree based on the label and partition mapping can be calculated.
-
-
Constructor Summary
Constructors Constructor Description CapacitatedSpanningTreeSolutionRepresentation()Constructs a new solution representation for the CMST problem.CapacitatedSpanningTreeSolutionRepresentation(java.util.Map<V,java.lang.Integer> labels, java.util.Map<java.lang.Integer,Pair<java.util.Set<V>,java.lang.Double>> partition)Constructs a new solution representation for the CMST problem based onlabelsandpartition.
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description CapacitatedSpanningTreeAlgorithm.CapacitatedSpanningTree<V,E>calculateResultingSpanningTree()Calculates the resulting spanning tree based on this solution representation.voidcleanUp()Cleans up the solution representation by removing all empty sets from the partition.AbstractCapacitatedMinimumSpanningTree.CapacitatedSpanningTreeSolutionRepresentationclone()Returns a shallow copy of this solution representation instance.intgetLabel(V vertex)Returns the label of the subset that containsvertex.java.util.Set<java.lang.Integer>getLabels()Returns all labels of all subsets.intgetNextFreeLabel()Returns the next free label in the label map respectively partitionjava.util.Set<V>getPartitionSet(java.lang.Integer label)Returns the set of vertices that are in the subset with labellabel.doublegetPartitionWeight(java.lang.Integer label)Returns the sum of the weights of all vertices that are in the subset with labellabel.voidmoveVertex(V vertex, java.lang.Integer fromLabel, java.lang.Integer toLabel)Movesvertexfrom the subset represented byfromLabelto the subset represented bytoLabel.voidmoveVertices(java.util.Set<V> vertices, java.lang.Integer fromLabel, java.lang.Integer toLabel)Moves all vertices inverticesfrom the subset represented byfromLabelto the subset represented bytoLabel.java.util.Set<java.lang.Integer>partitionSubtreesOfSubset(java.util.Set<V> vertexSubset, int label)Refines the partition by adding new subsets if the designated root has more than one subtree in the subsetlabelof the partition.
-
-
-
Constructor Detail
-
CapacitatedSpanningTreeSolutionRepresentation
public CapacitatedSpanningTreeSolutionRepresentation()
Constructs a new solution representation for the CMST problem.
-
CapacitatedSpanningTreeSolutionRepresentation
public CapacitatedSpanningTreeSolutionRepresentation(java.util.Map<V,java.lang.Integer> labels, java.util.Map<java.lang.Integer,Pair<java.util.Set<V>,java.lang.Double>> partition)
Constructs a new solution representation for the CMST problem based onlabelsandpartition. All labels have to be positive.- Parameters:
labels- the labels of the subsets in the partitionpartition- the partition map
-
-
Method Detail
-
calculateResultingSpanningTree
public CapacitatedSpanningTreeAlgorithm.CapacitatedSpanningTree<V,E> calculateResultingSpanningTree()
Calculates the resulting spanning tree based on this solution representation.- Returns:
- the resulting spanning tree based on this solution representation
-
moveVertex
public void moveVertex(V vertex, java.lang.Integer fromLabel, java.lang.Integer toLabel)
Movesvertexfrom the subset represented byfromLabelto the subset represented bytoLabel.- Parameters:
vertex- the vertex to movefromLabel- the subset to move the vertex fromtoLabel- the subset to move the vertex to
-
moveVertices
public void moveVertices(java.util.Set<V> vertices, java.lang.Integer fromLabel, java.lang.Integer toLabel)
Moves all vertices inverticesfrom the subset represented byfromLabelto the subset represented bytoLabel.- Parameters:
vertices- the vertices to movefromLabel- the subset to move the vertices fromtoLabel- the subset to move the vertices to
-
partitionSubtreesOfSubset
public java.util.Set<java.lang.Integer> partitionSubtreesOfSubset(java.util.Set<V> vertexSubset, int label)
Refines the partition by adding new subsets if the designated root has more than one subtree in the subsetlabelof the partition.- Parameters:
vertexSubset- the subset represented bylabel, that is the subset that has to be refinedlabel- the label of the subset of the partition that were refined- Returns:
- the set of all labels of subsets that were changed during the refinement
-
cleanUp
public void cleanUp()
Cleans up the solution representation by removing all empty sets from the partition.
-
getNextFreeLabel
public int getNextFreeLabel()
Returns the next free label in the label map respectively partition- Returns:
- the next free label in the label map respectively partition
-
getLabel
public int getLabel(V vertex)
Returns the label of the subset that containsvertex.- Parameters:
vertex- the vertex to return the label from- Returns:
- the label of
vertex
-
getLabels
public java.util.Set<java.lang.Integer> getLabels()
Returns all labels of all subsets.- Returns:
- the labels of all subsets
-
getPartitionSet
public java.util.Set<V> getPartitionSet(java.lang.Integer label)
Returns the set of vertices that are in the subset with labellabel.- Parameters:
label- the label of the subset to return the vertices from- Returns:
- the set of vertices that are in the subset with label
label
-
getPartitionWeight
public double getPartitionWeight(java.lang.Integer label)
Returns the sum of the weights of all vertices that are in the subset with labellabel.- Parameters:
label- the label of the subset to return the weight from- Returns:
- the sum of the weights of all vertices that are in the subset with label
label
-
clone
public AbstractCapacitatedMinimumSpanningTree.CapacitatedSpanningTreeSolutionRepresentation clone()
Returns a shallow copy of this solution representation instance. Vertices are not cloned.- Overrides:
clonein classjava.lang.Object- Returns:
- a shallow copy of this solution representation.
- Throws:
java.lang.RuntimeException- in case the clone is not supported- See Also:
Object.clone()
-
-