Пример #1
0
        public void HorizintalFirstOrderGreedy()
        {
            SCPFirstOrderGreedy scpG = new SCPFirstOrderGreedy();
            double   cost            = scpG.Execute(scpParser.Problem, false);
            TimeSpan elapsed         = scpG.Elapsed;
            bool     validity        = SolutionValidity();

            Assert.AreEqual(validity, true);
        }
Пример #2
0
        public void VerticalFirstOrderGreedy()
        {
            SCPFirstOrderGreedy scpFOG = new SCPFirstOrderGreedy();
            double   cost     = scpFOG.Execute(scpParser.Problem, true);
            TimeSpan elapsed  = scpFOG.Elapsed;
            bool     validity = SolutionValidity();

            Assert.AreEqual(validity, true);
            Debug.Print("Cost:" + cost);
        }
Пример #3
0
        public void DCFOG()
        {
            IConstructiveHeuristic fog = new SCPFirstOrderGreedy();
            double cost = fog.Execute(scpParser.Problem);

            DestructiveConstructive dc = new DestructiveConstructive();

            cost = dc.Execute(fog.Problem);
            ((SCP)scpParser.Problem).Solution = dc.OptimumSultion;
            TimeSpan elapsed  = dc.Elapsed;
            bool     validity = SolutionValidity();

            Assert.AreEqual(validity, true);
        }
Пример #4
0
        public void FOGSmartLocalSearch()
        {
            IConstructiveHeuristic grasp = new SCPFirstOrderGreedy();
            double cost = grasp.Execute(scpParser.Problem);

            SmartLocalSearch scpLS = new SmartLocalSearch();

            cost = scpLS.Execute(grasp.Problem);
            ((SCP)scpParser.Problem).Solution = scpLS.OptimumSultion;
            TimeSpan elapsed  = scpLS.Elapsed;
            bool     validity = SolutionValidity();

            Assert.AreEqual(validity, true);
        }
Пример #5
0
        public void BGreedySmartLocalSearch()
        {
            SCPFirstOrderGreedy scpFOG = new SCPFirstOrderGreedy();
            double cost = scpFOG.Execute(scpParser.Problem);

            SmartLocalSearch scpBS = new SmartLocalSearch();

            cost = scpBS.Execute(scpFOG.Problem);
            ((SCP)scpParser.Problem).Solution = scpBS.OptimumSultion;
            TimeSpan elapsed  = scpBS.Elapsed;
            bool     validity = SolutionValidity();

            Assert.AreEqual(validity, true);
        }
Пример #6
0
        public void Delta()
        {
            IConstructiveHeuristic fog = new SCPFirstOrderGreedy();
            double cost = fog.Execute(scpParser.Problem);

            double delta = ((SCP)scpParser.Problem).Solution.Delta(((SCP)scpParser.Problem).Solution.Sets[1]);

            Assert.AreEqual(delta, 0.0);

            List <SCPSet> test = ((SCP)scpParser.Problem).Solution.Sets.Skip(3).ToList();

            delta = ((SCP)scpParser.Problem).Solution.Delta(test);
            Assert.AreEqual(delta, 2);

            delta = ((SCP)scpParser.Problem).Solution.Delta(((SCP)scpParser.Problem).Solution.Sets);
            Assert.AreEqual(delta, 0.0);
        }
Пример #7
0
        public void Benchmark2()
        {
            SCPParser parser = new SCPParser();

            files.ForEach(file =>
            {
                IOData.ReadFileToMatrix(parser, file);

                //IHeuristic h1 = new SCPGRASP(0.9, 1e-9);
                IHeuristic h1 = new SCPFirstOrderGreedy();
                double cost   = h1.Execute(parser.Problem);

                DestructiveConstructive dc = new DestructiveConstructive();
                cost = dc.Execute(h1.Problem);
                ((SCP)scpParser.Problem).Solution = dc.OptimumSultion;
                TimeSpan elapsed = dc.Elapsed;

                Monitoring.Instance.Write("DCFOG    " + file.Split('\\')[file.Split('\\').Count() - 1] + " " + cost.ToString() + " " + dc.Elapsed.ToString());
            });
        }