Esempio n. 1
0
        //[Fact]
        public void CanComputeCriteriaWeightsviaFuzzyAHP()
        {
            var ComparisonMatrix = new ValueTuple <double, double, double> [6, 6];

            string[] values = ReadAllLines("compmat.csv");
            string[] line, numbers;
            for (int i = 0; i < 6; i++)
            {
                line = values[i].Split(',');
                for (int j = 0; j < 6; j++)
                {
                    numbers = line[j].Split(' ');
                    ComparisonMatrix[i, j].Item1 = Convert.ToDouble(numbers[0]);
                    ComparisonMatrix[i, j].Item2 = Convert.ToDouble(numbers[1]);
                    ComparisonMatrix[i, j].Item3 = Convert.ToDouble(numbers[2]);
                }
            }

            var fahp = new FAHP(ComparisonMatrix);

            double[] weights = fahp.CriteriaWeights;

            string[] whattowrite = new string[6];

            for (int i = 0; i < 6; i++)
            {
                whattowrite[i] = $"{weights[i]}";
            }

            WriteAllLines("weights.txt", whattowrite);
        }
Esempio n. 2
0
        private Task<string> GetValuesAsync(string[] values)
        {
            return Task.Run(() =>
            {
                int max = values.Length;
                string fp = Directory.GetCurrentDirectory();

                fp = Path.Combine(Directory.GetParent(Directory.GetCurrentDirectory()).FullName, "Dataset.csv");
                Query query;
                try
                {
                    query = new Query(6, fp)
                    {
                        Class = Convert.ToInt32(values[0]),
                        Social = Convert.ToDouble(values[1]),
                        IsMale = values[2] == "1",
                        Age = Convert.ToInt32(values[3]),
                        Location = new Address(values[4], values[5], values[6], values[7])
                    };
                    for (int i = 0; i < 15; i++)
                        query.FuzzyValues[i] = Convert.ToInt32(values[i + 8]);
                    query.ConfLevel = Convert.ToInt32(values[23]);
                }
                catch (Exception x)
                {
                    return x.ToString();
                }


                query.CreateComparisonMatrix();
                FAHP fAHP = new FAHP(query.ComparisonMatrix);
                double[] weights = fAHP.CriteriaWeights;
                return string.Join(',', weights);
            });
            
        }
 public void OnGet()
 {
     query = Program.MyQuery;
     fahp  = new FAHP(query.ComparisonMatrix);
 }