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); }
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); }
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); }
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); }