protected class AbstractCapacitatedMinimumSpanningTree.CapacitatedSpanningTreeSolutionRepresentation extends Object implements Cloneable
Constructor and Description |
---|
CapacitatedSpanningTreeSolutionRepresentation()
Constructs a new solution representation for the CMST problem.
|
CapacitatedSpanningTreeSolutionRepresentation(Map<V,Integer> labels,
Map<Integer,Pair<Set<V>,Double>> partition)
Constructs a new solution representation for the CMST problem based on
labels and partition . |
Modifier and Type | Method and Description |
---|---|
CapacitatedSpanningTreeAlgorithm.CapacitatedSpanningTree<V,E> |
calculateResultingSpanningTree()
Calculates the resulting spanning tree based on this solution representation.
|
void |
cleanUp()
Cleans up the solution representation by removing all empty sets from the partition.
|
AbstractCapacitatedMinimumSpanningTree.CapacitatedSpanningTreeSolutionRepresentation |
clone()
Returns a shallow copy of this solution representation instance.
|
int |
getLabel(V vertex)
Returns the label of the subset that contains
vertex . |
Set<Integer> |
getLabels()
Returns all labels of all subsets.
|
int |
getNextFreeLabel()
Returns the next free label in the label map respectively partition
|
Set<V> |
getPartitionSet(Integer label)
Returns the set of vertices that are in the subset with label
label . |
double |
getPartitionWeight(Integer label)
Returns the sum of the weights of all vertices that are in the subset with label
label . |
void |
moveVertex(V vertex,
Integer fromLabel,
Integer toLabel)
Moves
vertex from the subset represented by fromLabel to the
subset represented by toLabel . |
void |
moveVertices(Set<V> vertices,
Integer fromLabel,
Integer toLabel)
Moves all vertices in
vertices from the subset represented by
fromLabel to the subset represented by toLabel . |
Set<Integer> |
partitionSubtreesOfSubset(Set<V> vertexSubset,
int label)
Refines the partition by adding new subsets if the designated root has more than one
subtree in the subset
label of the partition. |
public CapacitatedSpanningTreeSolutionRepresentation()
public CapacitatedSpanningTreeSolutionRepresentation(Map<V,Integer> labels, Map<Integer,Pair<Set<V>,Double>> partition)
labels
and partition
. All labels have to be positive.labels
- the labels of the subsets in the partitionpartition
- the partition mappublic CapacitatedSpanningTreeAlgorithm.CapacitatedSpanningTree<V,E> calculateResultingSpanningTree()
public void moveVertex(V vertex, Integer fromLabel, Integer toLabel)
vertex
from the subset represented by fromLabel
to the
subset represented by toLabel
.vertex
- the vertex to movefromLabel
- the subset to move the vertex fromtoLabel
- the subset to move the vertex topublic void moveVertices(Set<V> vertices, Integer fromLabel, Integer toLabel)
vertices
from the subset represented by
fromLabel
to the subset represented by toLabel
.vertices
- the vertices to movefromLabel
- the subset to move the vertices fromtoLabel
- the subset to move the vertices topublic Set<Integer> partitionSubtreesOfSubset(Set<V> vertexSubset, int label)
label
of the partition.vertexSubset
- the subset represented by label
, that is the subset that
has to be refinedlabel
- the label of the subset of the partition that were refinedpublic void cleanUp()
public int getNextFreeLabel()
public int getLabel(V vertex)
vertex
.vertex
- the vertex to return the label fromvertex
public Set<Integer> getLabels()
public Set<V> getPartitionSet(Integer label)
label
.label
- the label of the subset to return the vertices fromlabel
public double getPartitionWeight(Integer label)
label
.label
- the label of the subset to return the weight fromlabel
public AbstractCapacitatedMinimumSpanningTree.CapacitatedSpanningTreeSolutionRepresentation clone()
clone
in class Object
RuntimeException
- in case the clone is not supportedObject.clone()
Copyright © 2019. All rights reserved.