예제 #1
0
파일: Program.cs 프로젝트: sergiycheck/AHP
        static void AhpBuilder()
        {
            var builder       = new  AhpBuilder();
            var creteria2dArr = builder.BuildCriteriasMultidimentionalArray();

            List <double[, ]> choicesList = builder.BuildAndGetAllChoicesList();


            var ahpmodel = new AhpModel();

            ahpmodel
            .CriteriaMatrixStatisticsJob(creteria2dArr);

            ahpmodel.AddChoiceList(choicesList);
            var Gvect = ahpmodel.GetGlobalVector();

            Console.WriteLine(Gvect);
            var alternatives = builder.AlternativesList;

            ahpmodel.PrintAlternativesNumbers(alternatives);
        }
예제 #2
0
파일: Program.cs 프로젝트: sergiycheck/AHP
        static void InitFromCodeAnalyze()
        {
            var twoxtwomatrix = new double[, ] {
                { 1, 3 },
                { 1f / 4f, 1 }
            };

            var threexthreematrix = new double[, ] {
                { 1, (double)1 / 3, (double)1 / 2 },
                { 3, 1, 3 },
                { 2, (double)1 / 3, 1 }
            };



            var fourxfourmatrix = new double[, ] {
                { 1.0, 1.0 / 3.0, 2.0, 4.0 },
                { 3.0, 1.0, 5.0, 3.0 },
                { 1.0 / 2.0, 1.0 / 5.0, 1.0, 1.0 / 3.0 },
                { 1.0 / 4.0, 1.0 / 3.0, 3.0, 1.0 }
            };

            //1 compare creterais make matrix

            //2 compare choices make matrix

            //A - speed
            //B - color
            //C - Volume
            //D - Fuel consumption
            //if a to b = 2 than b to a = 1/2
            //if b to c = 3 than c to b = 1/3

            //                /*A*/  /*B*/  /*C*/ /*D*/
            //  var creteria2dArr = new double[,] {
            ///*A*/      {    1.0,   2.0,  5.0,  7.0 },
            ///*B*/      {    0.50,  1.0,  3.0,  5.0 },
            ///*C*/      {    0.20,  0.33, 1.0,  2.0 },
            ///*D*/      {    0.14,  0.2,  0.5,  1.0 }};

            /*S*/       /*C*/    /*V*/ /*F*/
            var creteria2dArr = new double[, ] {
                /*S*/ { 1.0, 2, 2.0, 1.0 / 5.0 },
                /*C*/ { 0.50, 1.0, 3.0, 1.0 / 5.0 },
                /*V*/ { 0.50, 1.0 / 3.0, 1.0, 1.0 / 3.0 },
                /*F*/ { 5.0, 5.0, 3.0, 1.0 }
            };

            //alternatives choices
            //SEDAN
            //COUPE
            //SPORTS
            //Crossover

            //compare on each criteria each alternative choice (4 measurement)

            //speed
            double[,] compareCarsBySpeed = new double[, ]
            {      /*SEDAN*/  /*COUPE*/ /*SPORTS*/     /*Crossover*/
                /*SEDAN*/ { 1, 0.5, 0.5, 1.0 / 3.0 },
                /*COUPE*/ { 2, 1, 1.0 / 3.0, 0.5 },
                /*SPORTS*/ { 2, 3, 1, 0.2 },
                /*crossover*/ { 3, 2, 5, 1 },
            };

            //color
            double[,] compareCarsByColor = new double[, ]
            {       /*SEDAN*/  /*COUPE*/    /*SPORTS*/     /*Crossover*/
                /*SEDAN*/ { 1, 1.0 / 7.0, 1.0 / 3.0, 0.5 },
                /*COUPE*/ { 7, 1, 1.0 / 4.0, 1.0 / 3.0 },
                /*SPORTS*/ { 3, 4, 1, 1.0 / 2.0 },
                /*crossover*/ { 2, 3, 2, 1 },
            };

            double[,] compareCarsByVolume = new double[, ]
            {       /*SEDAN*/  /*COUPE*/    /*SPORTS*/    /*Crossover*/
                /*SEDAN*/ { 1, 3.0, 2, 1.0 / 2.0 },
                /*COUPE*/ { 1.0 / 3.0, 1, 3.0, 2 },
                /*SPORTS*/ { 1.0 / 2.0, 1.0 / 3.0, 1, 1.0 / 4.0 },
                /*crossover*/ { 2, 0.5, 4, 1 }
            };

            double[,] compareCarsByConsumption = new double[, ]
            {           /*SEDAN*/    /*COUPE*/    /*SPORTS*/  /*Crossover*/
                /*SEDAN*/ { 1, 4, 4, 1.0 / 2.0 },
                /*COUPE*/ { 1.0 / 4.0, 1, 3, 2 },
                /*SPORTS*/ { 1.0 / 4.0, 1.0 / 3.0, 1, 1.0 / 3.0 },
                /*crossover*/ { 2, 0.5, 3, 1 }
            };

            //double[,] compareCarsByConsumption = new double[,]
            //    {
            //        {          1,   9,  9},
            //        {    1.0/9.0,   1,  2},
            //        {    1.0/9.0, 0.2,  1}
            //    };

            List <double[, ]> choicesList = new List <double[, ]>()
            {
                compareCarsBySpeed,
                compareCarsByColor,
                compareCarsByVolume,
                compareCarsByConsumption
            };
            var alternatives = new List <string>()
            {
                "SEDAN",
                "COUPE",
                "SPORTS",
                "CROSSOOVER"
            };


            var ahpmodel = new AhpModel();

            ahpmodel
            .CriteriaMatrixStatisticsJob(creteria2dArr);

            ahpmodel.AddChoiceList(choicesList);
            var Gvect = ahpmodel.GetGlobalVector();

            Console.WriteLine(Gvect);
            ahpmodel.PrintAlternativesNumbers(alternatives);
        }