Beispiel #1
0
        public static void TestAdmissibility(int run, string runType, int nnIndex, double?confLevel)
        {
            string nnFileName = string.Format(Global.NNFN, nnIndex);

            string outputFileName = string.Format(Global.TESTADMISFN, confLevel == null ? "" : confLevel.ToString());

            string nnLoadPath = string.Format(Global.RUNPATH, run, runType, nnFileName);

            string csvWritePath = string.Format(Global.RUNPATH, run, runType, outputFileName);

            CSVWriter csvWriter = new CSVWriter(csvWritePath, ',');

            MyNN nnSolve = MyNN.Load(nnLoadPath);

            TestDomainData[] data = ReadTestDomainData(Global.TESTTASKPATH);

            IHeuristic heuristic = new NNPreTrainedHeuristic(nnSolve, representationSolve, confLevel, true);


            SolveTestData(heuristic, data, csvWriter, null);

            double sumExpanded  = 0;
            double sumGenerated = 0;
            double sumOptimal   = 0;
            double sumCost      = 0;
            double sumSubOpt    = 0;


            for (int i = 0; i < data.Length; i++)
            {
                TestDomainData testDomainData = data[i];

                sumExpanded  += testDomainData.SolvedExpanded;
                sumGenerated += testDomainData.SolvedGenerated;
                sumOptimal   += testDomainData.OptimalCost;
                sumCost      += testDomainData.SolvedCost;
                sumSubOpt    += testDomainData.SolvedCost / (double)testDomainData.OptimalCost;
            }


            Console.WriteLine("-----");
            Console.WriteLine(sumExpanded / data.Length);
            Console.WriteLine(sumGenerated / data.Length);
            Console.WriteLine(sumOptimal / data.Length);
            Console.WriteLine(sumCost / data.Length);
            Console.WriteLine((sumSubOpt / data.Length) - 1);

            csvWriter.Write();
        }
Beispiel #2
0
        public static void TestEfficiency(int run, string runType, int nnIndex, TestDomainData[][] testData)
        {
            string csvWritePath = string.Format(Global.RUNPATH, run, runType, Global.TESTEFFICFN);

            string csvSummWritePath = string.Format(Global.RUNPATH, run, runType, Global.TESTEFFICFNSUMM);

            CSVWriter csvWriter = new CSVWriter(csvWritePath, ',');

            CSVWriter csvSummWriter = new CSVWriter(csvSummWritePath, ',');

            int timeout = 60000;

            string nnFileName = string.Format(Global.NNFN, nnIndex);

            string nnLoadPath = string.Format(Global.RUNPATH, run, runType, nnFileName);

            MyNN nnSolve = MyNN.Load(nnLoadPath);

            for (int i = 0; i < testData.GetLength(0); i++)
            {
                csvWriter.Add(i.ToString());
                csvWriter.EndLine();
                csvWriter.Write();
                csvWriter.Clear();


                IHeuristic heuristic = new NNPreTrainedHeuristic(nnSolve, representationSolve, null, true);

                int numSolved = SolveTestData(heuristic, testData[i], csvWriter, timeout);

                csvSummWriter.Add(i.ToString());
                csvSummWriter.Add(numSolved.ToString());
                csvSummWriter.EndLine();
                csvSummWriter.Write();
                csvSummWriter.Clear();
            }
        }