Beispiel #1
0
        public double get_distantica_conjuntos(string key1, string key2)
        {
            key_composta ax_chave_dist = new key_composta();

            ax_chave_dist.alterar_Keys(key1, key2);
            return(this.distancia[ax_chave_dist]);
        }
Beispiel #2
0
        private void distancia_Conjuntos(string key1, string key2)
        {
            Distancia    calc_distancia = new Distancia();
            key_composta ax_chave_dist  = new key_composta();

            ax_chave_dist.alterar_Keys(key1, key2);
            calc_distancia.get_Set_Grupo1 = this.conjuntos[key1.ToString()];
            calc_distancia.get_Set_Grupo2 = this.conjuntos[key2.ToString()];
            calc_distancia.caucula_Distancia();
            distancia.Add(ax_chave_dist, calc_distancia.get_Rst_Distancia);
        }
Beispiel #3
0
        public void agrupamento_Gera_Classes()
        {
            int    qtd_classes;
            string ax_elemento;

            qtd_classes = grupos_saida.Count();
            key_composta ax_chave_dist = new key_composta();

            if (qtd_classes == 0)
            {
                grupos_saida.Add(qtd_classes, chaves_conjuntos);
            }

            for (int z = 0; z < grupos_saida.Count(); z++)
            {
                for (int y = 1; y < grupos_saida[z].Count; y++)
                {
                    ax_chave_dist.alterar_Keys(grupos_saida[z][0], grupos_saida[z][y]);
                    if (distancia[ax_chave_dist] > this.vlr_distancia)
                    {
                        ax_elemento = grupos_saida[z][y];
                        grupos_saida[z].Remove(grupos_saida[z][y]);
                        y--;
                        qtd_classes = z + 1;
                        if (qtd_classes == grupos_saida.Count())
                        {
                            grupos_saida.Add(qtd_classes, new List <string>());
                            grupos_saida[qtd_classes].Add(ax_elemento);
                        }
                        else if (qtd_classes < grupos_saida.Count())
                        {
                            grupos_saida[qtd_classes].Add(ax_elemento);
                        }
                    }
                }
            }
        }
Beispiel #4
0
        public void trata_Elemento_Unico()
        {
            string       ax_elemente;
            double       ax_menor      = 1;
            int          ax_grupo      = 0;
            key_composta ax_chave_dist = new key_composta();

            for (int i = 0; i < grupos_saida.Count; i++)
            {
                if (grupos_saida[i].Count == 1)
                {
                    ax_elemente = grupos_saida[i][0];
                    grupos_saida[i].Remove(ax_elemente);
                    for (int y = 0; y < grupos_saida.Count; y++)
                    {
                        for (int z = 0; z < grupos_saida[y].Count; z++)
                        {
                            ax_chave_dist.alterar_Keys(ax_elemente, grupos_saida[y][z]);
                            if (distancia[ax_chave_dist] < ax_menor)
                            {
                                ax_menor = distancia[ax_chave_dist];
                                ax_grupo = y;
                            }
                        }
                    }
                    grupos_saida[ax_grupo].Add(ax_elemente);
                }
            }
            for (int i = 0; i < grupos_saida.Count; i++)
            {
                if (grupos_saida[i].Count == 0)
                {
                    grupos_saida.Remove(i);
                }
            }
        }