Ejemplo n.º 1
0
        public double ClusterDistanceAverage(Cluster oper, IDissimilarity diss)
        {
            double sum  = 0;
            int    cant = 0;

            foreach (Element element in oper.Elements)
            {
                foreach (Element operElement in this.Elements)
                {
                    sum += diss.CalculateDissimilarity(element, operElement);
                    cant++;
                }
            }
            return((double)sum / (double)cant);
        }
Ejemplo n.º 2
0
        public double ClusterDistanceComplete(Cluster oper, IDissimilarity diss)
        {
            double max = double.MinValue;

            for (int i = 0; i < Elements.Count; i++)
            {
                for (int j = 0; j < oper.Elements.Count; j++)
                {
                    double dissValue = diss.CalculateDissimilarity(Elements[i], oper.Elements[j]);
                    if (dissValue > max)
                    {
                        max = dissValue;
                    }
                }
            }
            return(max);
        }
Ejemplo n.º 3
0
        public double ClusterDistanceSingle(Cluster oper, IDissimilarity diss)
        {
            double min = double.MaxValue;

            for (int i = 0; i < Elements.Count; i++)
            {
                for (int j = 0; j < oper.Elements.Count; j++)
                {
                    double dissValue = diss.CalculateDissimilarity(Elements[i], oper.Elements[j]);
                    if (dissValue < min)
                    {
                        min = dissValue;
                    }
                }
            }
            return(min);
        }