Esempio n. 1
0
        private Result ILS(SCP problem)
        {
            List <Tuple <double, SCPSolution> > history = new List <Tuple <double, SCPSolution> >();
            bool     validity = false;
            int      iteratin = 0;
            TimeSpan elapsed  = new TimeSpan();
            double   cost     = 0;

            while (iteratin++ < 5)
            {
                IConstructiveHeuristic grasp = new SCPGRASP(0.9, 1e-9);
                cost = grasp.Execute(problem.Clone());
                SmartLocalSearch scpLS = new SmartLocalSearch();
                cost    = scpLS.Execute(grasp.Problem);
                elapsed = scpLS.Elapsed;
                history.Add(new Tuple <double, SCPSolution>(cost, scpLS.OptimumSultion.Clone()));
            }

            ((SCP)scpParser.Problem).Solution = history.OrderBy(h => h.Item1).ToList().FirstOrDefault().Item2;
            validity = SolutionValidity();

            Assert.AreEqual(validity, true);

            Result r = new UnitTest.Result();

            r.Time = elapsed.Milliseconds;
            r.Cost = cost;
            return(r);
        }
Esempio n. 2
0
        public void GSmartLocalSearch()
        {
            IConstructiveHeuristic grasp = new SCPGRASP(0.9, 1e-9);
            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);
        }
Esempio n. 3
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);
        }
Esempio n. 4
0
        public void IterativeSmartLocalSearch()
        {
            SmartLocalSearch scpLS = null;
            List <Tuple <double, SCPSolution> > history = new List <Tuple <double, SCPSolution> >();
            bool validity = false;
            int  iteratin = 0;

            while (iteratin++ < 5)
            {
                IConstructiveHeuristic grasp = new SCPGRASP(0.9, 1e-9);
                double cost = grasp.Execute((SCP)((SCP)scpParser.Problem).Clone());
                scpLS = new SmartLocalSearch();
                cost  = scpLS.Execute(grasp.Problem);
                TimeSpan elapsed = scpLS.Elapsed;
                history.Add(new Tuple <double, SCPSolution>(cost, scpLS.OptimumSultion.Clone()));
            }

            ((SCP)scpParser.Problem).Solution = history.OrderBy(h => h.Item1).ToList().FirstOrDefault().Item2;
            validity = SolutionValidity();

            Assert.AreEqual(validity, true);
        }