예제 #1
0
파일: Form1.cs 프로젝트: mrno/AHP
        private void button3_Click(object sender, EventArgs e)
        {
            List<Double[,]> list = new List<double[,]>();
            //double[,] a = { { 2, 4, 5 }, { 7, 5, 9 }, { 7, 5, 9 } };
            //double[,] b = { { 2, 7, 3, 9 }, { 7, 9, 6, 9 }, { 7, 8, 9, 9 }, { 5, 8, 3, 1 } };
            //double[,] c = { { 2, 7, 3, 6 }, { 7, 9, 6, 6 }, { 7, 8, 9, 6 }, { 6, 8, 9, 1 } };
            //double[,] d = { { 2, 7, 3, 1 }, { 7, 9, 6, 1 }, { 7, 8, 9, 1 }, { 8, 5, 3, 1 } };
            double[,] a = { { 1, 5, 5 }, { 0.2, 1, 0.3333 }, { 0.2, 3, 1 } };
            double[,] b = { { 1, 2, 3, 6 }, { 0.5, 1, 4, 0.1667 }, { 0.3333, 0.25, 1, 0.1429 }, { 0.1667, 6, 7, 1 } };
            double[,] c = { { 1, 8, 3, 9 }, { 0.125, 1, 4, 0.1667}, { 0.3333, 0.25, 1, 0.1111 }, { 0.111, 6, 9, 1 } };
            double[,] d = { { 1, 8, 7, 9 }, { 0.125, 1, 4, 9 }, { 0.1429, 0.25, 1, 0.5 }, { 0.1111, 0.1111, 2, 1 } };

            //double[,] a = { { 1, 1, 1 }, { 1, 1, 1 }, { 1, 1, 1 } };
            //double[,] b = { { 2, 2, 2, 2 }, { 2, 2, 2, 2 }, { 2, 2, 2, 2}, { 2, 2, 2, 2 } };
            //double[,] c = { { 3, 3, 3, 3 }, { 3, 3, 3, 3 }, { 3, 3, 3, 3 }, { 3, 3, 3, 3 } };
            //double[,] d = { { 4, 4, 4, 4 }, { 4, 4, 4, 4 }, { 4, 4, 4, 4 }, { 4, 4, 4, 4 } };

            list.Add(a);
            list.Add(b);
            list.Add(c);
            list.Add(d);

            CalculoAHP calculoAhp = new CalculoAHP();
            double[,] resultado = calculoAhp.calcularRanking(list);
            foreach (var dd in resultado)
            {
                System.Diagnostics.Debug.WriteLine(dd);
            }
        }
예제 #2
0
        private void button3_Click(object sender, EventArgs e)
        {
            proy = (proyecto)dataGridView1.CurrentRow.DataBoundItem;
            id = proy.id_proyecto;
            listaExpertoProyecto = dato.expePorProyConsistente(proy.id_proyecto);
            PreparacionListaCriterioAlternativa preparacionLista = new PreparacionListaCriterioAlternativa();

            if (listaExpertoProyecto.Count != 0)
            {

                List<KRankPonderado> listaKRankPonderado = new List<KRankPonderado>();
                foreach (experto_proyecto exp in listaExpertoProyecto)
                {
                    List<double[,]> listaPreparada = preparacionLista.Preparar(proy.id_proyecto, exp.id_experto);
                    KRankPonderado kRankPonderado = new KRankPonderado();
                  calculo = new CalculoAHP();
            kRankPonderado.KRanking = calculo.calcularRanking(listaPreparada);
                    kRankPonderado.Peso = Convert.ToInt32(exp.ponderacion);
                    listaKRankPonderado.Add(kRankPonderado);
                }
                AgregacionPonderada agregacionPonderada = new AgregacionPonderada();

                var rdo = agregacionPonderada.agregar(listaKRankPonderado);

               CalcularAhpAgregado frmAhpAgregado = new CalcularAhpAgregado(rdo,proy.id_proyecto);
               frmAhpAgregado.ShowDialog();
            }
            else
            {
                MessageBox.Show("Ningún experto ha valorado de manera consistente.");
            }
        }
예제 #3
0
        private void button2_Click(object sender, EventArgs e)
        {
            proyecto proy = (proyecto)dataGridView1.CurrentRow.DataBoundItem;
            listaExperto = dato.expeProyConsistente(proy.id_proyecto);

            if (listaExperto.Count != 0)
            {
                foreach (experto exp in listaExperto)
                {

                    AgrAlternativas altAgregar = new AgrAlternativas(proy.id_proyecto, exp.id_experto);
                    listaAlternativasPonderar.Add(altAgregar);
                }

                matrizCriterioPonderar = new AgrCriterio(proy.id_proyecto);

                //Acá procedo a agregarle la primer matriz, la de criterios:

                listaCompleta.Add(calculadorNoPonderadas.AgregarCriterios(matrizCriterioPonderar));

                //Acá creo una lista con las alternativas ponderadas en la primer línea y luego la recorro y para cada elemento le asigno
                //su valor de atributo a la listaCompleta:

                listaNAlt = calculadorNoPonderadas.AgregarAlternativas(listaAlternativasPonderar);

                foreach (NAlternativas alt in listaNAlt)
                {
                    listaCompleta.Add(alt.nAlternativas);
                }

                //Luego de todo este despelote, listaCompleta está terminada para pasarse a la clase CalculoAHP.

                CalculoAHP calculo = new CalculoAHP();
                ranking = calculo.calcularRanking(listaCompleta);
                CalcularAhpAgregado frmAhpAgregado = new CalcularAhpAgregado(ranking, proy.id_proyecto);
                frmAhpAgregado.ShowDialog();
            }
            else
            {
                MessageBox.Show("Ningún experto ha valorado de manera consistente.");
            }
        }
예제 #4
0
파일: FrmPrincipal.cs 프로젝트: mrno/AHP
        private void CalcularAgregacionPonderada()
        {
            proyecto proy = _proyectoSeleccionado;
               Int32 id = proy.id_proyecto;
               var listaExpertoProyecto = dato.expeProyConsistentePONDERADO(_proyectoSeleccionado.id_proyecto);
               PreparacionListaCriterioAlternativa preparacionLista = new PreparacionListaCriterioAlternativa();
               CalculoAHP calculo;

               if (listaExpertoProyecto.Count != 0)
               {

               List<KRankPonderado> listaKRankPonderado = new List<KRankPonderado>();
               foreach (experto_proyecto exp in listaExpertoProyecto)
               {
                   List<double[,]> listaPreparada = preparacionLista.Preparar(proy.id_proyecto, exp.id_experto);
                   KRankPonderado kRankPonderado = new KRankPonderado();
                   calculo = new CalculoAHP();
                   kRankPonderado.KRanking = calculo.calcularRanking(listaPreparada);
                   kRankPonderado.Peso = Convert.ToInt32(exp.ponderacion);
                   listaKRankPonderado.Add(kRankPonderado);
               }
               AgregacionPonderada agregacionPonderada = new AgregacionPonderada();

               var rdo = agregacionPonderada.agregar(listaKRankPonderado);

               CalcularAhpAgregado frmAhpAgregado = new CalcularAhpAgregado(rdo, proy.id_proyecto);
               frmAhpAgregado.ShowDialog();
               }
               else
               {
               MessageBox.Show("Ningún experto ha valorado de manera consistente.");
               }
        }