Example #1
0
        public AgrAlternativas(int id_proy, int id_exp)
        {
            //List<experto> listaExp = dato.expertosPorProyecto(id_proy);
               List<criterio> listaCri = dato.criteriosPorProyecto(id_proy);
               List<alternativa> listaAlternativa = dato.alternativasPorProyecto(id_proy);
               //foreach (experto exp in listaExp)
               //{

               foreach (criterio crit in listaCri)
               {
                   List<comparacion_alternativa> listaAlt;
                   //List<String> listaExpertos = null;

                   listaAlt = dato.compAlternativaPorExpertoCriterio(id_proy, id_exp, crit.id_criterio);

                   //foreach (comparacion_alternativa comp in listaAlt)
                   //{
                   //    if (comp.valor == 0 && !(listaExpertos.Contains(comp.id_experto.ToString())))
                   //        listaExpertos.Add(comp.id_experto.ToString());
                   //}

                   int cantidadFilas = 1;

                   foreach (comparacion_alternativa comp in listaAlt)
                   {
                       if (comp.pos_fila == 0)
                           cantidadFilas++;
                   }

                   double[,] matrizAlt = new double[cantidadFilas, cantidadFilas];

                   foreach (comparacion_alternativa comp in listaAlt)
                   {
                       matrizAlt[comp.pos_fila, comp.pos_columna] = (double)comp.valor;
                   }

                   int tope = cantidadFilas;
                   for (int i = 0; i < tope; i++)
                   {
                       for (int j = 0; j < tope; j++)
                       {
                           if (i == j)
                               matrizAlt[i, j] = 1;
                           else if (i > j)
                               matrizAlt[i, j] = (double)1 / (matrizAlt[j, i]);
                       }

                   }

                   NAlternativas miMatriz = new NAlternativas(cantidadFilas);
                   miMatriz.nAlternativas = matrizAlt;
                   listaKNAlternativas.Add(miMatriz);

               }

               //listaFinal.Add(listaKNAlternativas);
               //}
        }
Example #2
0
        public List<NAlternativas> AgregarAlternativas(List<AgrAlternativas> listaKNAlternativas)
        {
            //buscamos la cantidad de alternativas.
               //es la longitud de la dimension de la matriz

               List<NAlternativas> listaAlternativasAgregada = new List<NAlternativas>();

               int cantAlter = listaKNAlternativas[1].listaKNAlternativas[1].nAlternativas.GetLength(1);

               foreach (var listaKnAlternativa in listaKNAlternativas[1].listaKNAlternativas)
               {
               NAlternativas alternativa = new NAlternativas(cantAlter);
               utils.Unar(alternativa.nAlternativas, cantAlter);
               listaAlternativasAgregada.Add(alternativa);
               }

               foreach (var vble in listaKNAlternativas)
               {
                int k = 0;

               foreach (var listaKnAlternativa in vble.listaKNAlternativas)
               {

                   for (int i = 0; i < cantAlter ; i++)
                   {
                       for (int j = 0; j < cantAlter ; j++)
                       {
                           listaAlternativasAgregada[k].nAlternativas[i, j] *= listaKnAlternativa.nAlternativas[i, j];
                       }

                   }
                   k += 1;

               }

               }

               return listaAlternativasAgregada;
        }
Example #3
0
File: Form1.cs Project: mrno/AHP
        private void button5_Click(object sender, EventArgs e)
        {
            List<AgrAlternativas> listaDeExpertos = new List<AgrAlternativas>();

            AgrAlternativas agrAlternativas1 = new AgrAlternativas();

            NAlternativas nAlternativas1 = new NAlternativas(3);
            double[,] exp1MatrizCriterio1Alternativas = { { 2, 2, 2 }, { 2, 2, 2 }, { 2, 2, 2 } };
            nAlternativas1.nAlternativas = exp1MatrizCriterio1Alternativas;

            NAlternativas nAlternativas2 = new NAlternativas(3);
            double[,] exp1MatrizCriterio2Alternativas = { { 4, 4, 4 }, { 4, 4, 4 }, { 4, 4, 4 } };
            nAlternativas2.nAlternativas = exp1MatrizCriterio2Alternativas;

            agrAlternativas1.listaKNAlternativas.Add(nAlternativas1);
            agrAlternativas1.listaKNAlternativas.Add(nAlternativas2);

            listaDeExpertos.Add(agrAlternativas1);

            AgrAlternativas agrAlternativas2 = new AgrAlternativas();

            NAlternativas nAlternativas3 = new NAlternativas(3);
            double[,] exp2MatrizCriterio1Alternativas = { { 3, 3, 3 }, { 3, 3, 3 }, { 3, 3, 3 } };
            nAlternativas3.nAlternativas = exp2MatrizCriterio1Alternativas;

            NAlternativas nAlternativas4 = new NAlternativas(3);
            double[,] exp2MatrizCriterio2Alternativas = { { 5, 5, 5 }, { 5, 5, 5 }, { 5, 5, 5 } };
            nAlternativas4.nAlternativas = exp2MatrizCriterio2Alternativas;

            agrAlternativas2.listaKNAlternativas.Add(nAlternativas3);
            agrAlternativas2.listaKNAlternativas.Add(nAlternativas4);

            listaDeExpertos.Add(agrAlternativas2);

            AgregacionNoPonderada agregacionNoPonderada = new AgregacionNoPonderada();

            var resultado = agregacionNoPonderada.AgregarAlternativas(listaDeExpertos);

            foreach (var vble in resultado)
            {

                foreach (var d in vble.nAlternativas)
                {
                    System.Diagnostics.Debug.WriteLine(d);
                }

            }
        }