1 #ifndef MAXDIAMEVALUATOR_H
2 #define MAXDIAMEVALUATOR_H
4 #include "../base/measuresetter.h"
5 #include "../base/partitionevaluation.h"
6 #include "../base/dissimilaritymeasure.h"
36 virtual double partitioncost(std::vector<std::vector<T*> >
const& clusters)
const;
48 virtual double partitioncost(std::vector<T*>
const& points)
const;
67 measure(measure==0 ? 0 : measure->clone())
73 measure(mde.measure == 0 ? 0 : mde.measure->clone())
91 if(this->measure != 0)
99 int size = clusters.size();
100 for(
int i = 0; i < size; i++)
102 sum += partitioncost(clusters[i]);
110 return partitioncost(provider.
clustering(solutionIndex));
117 int size = points.size();
118 for(
int i = 0; i < size; i++)
120 for(
int j = 0; j < i; j++)
122 double candidate = measure->dissimilarity(*points[i], *points[j]);
133 return partitioncost(provider.
cluster(solutionIndex, partitionIndex));
141 this->measure = measure->
clone();
MaxDiamEvaluator< T > & operator=(const MaxDiamEvaluator< T > &)
MaxDiamEvaluator(DissimilarityMeasure< T > const *measure=0)
Instantiates MaxDiamEvaluator, optionally with a DissimilarityMeasure to use when calculating the max...
virtual std::vector< T * > cluster(unsigned int solutionIndex, unsigned int partitionIndex) const =0
Returns a vector of pointers to the elements of a particular cluster from the specified clustering...
virtual ~MaxDiamEvaluator()
virtual void setMeasure(DissimilarityMeasure< T > const *measure)
Sets the DissimilarityMeasure used when calculating the maximum diameter.
DissimilarityMeasure< T > * measure
virtual DissimilarityMeasure< T > * clone() const =0
virtual std::vector< std::vector< T * > > clustering(unsigned int solutionIndex) const =0
Returns the specified clustering as a vector of vector of pointers to the elements.
virtual double partitioncost(std::vector< std::vector< T * > > const &clusters) const
Calculates the maximum diameter of a given clustering.
Abstract class for partition-based evaluation algorithms.
Interface to propagate the ability to set a DissimilarityMeasure.
Calculates the maximum diameter of one or more given clusters.
Abstract base class to access results of partition based clustering algorithms.
Abstract base class for dissimilarity measurement.