Beispiel #1
0
        public void basic_test()
        {
            MemoryStream stream = new MemoryStream();
            StreamWriter writer = new StreamWriter(stream);

            writer.Write(str);
            writer.Flush();
            stream.Position = 0;
            loader          = new FileLoader(stream);

            Problem p = loader.LoadProblem();

            DvrpTaskSolver.FixClientsStartTimes(p);
            stream.Position = 0;
            double sol = loader.LoadSolution();

            ProblemDivider       divider = new ProblemDivider();
            PartialProblemSolver solver  = new PartialProblemSolver();
            SolutionMerger       merger  = new SolutionMerger();

            var partproblmes = divider.DivideProblem(p);

            List <PartialSolution> soluts = new List <PartialSolution>();

            foreach (var part in partproblmes /*.Where(ee => ee.SetId == 17)*/)
            {
                soluts.Add(solver.SolvePartialProblem(part, p));
            }

            var ssss = merger.MergeSolution(soluts, p);

            ssss.Result.ShouldBeInRange(sol - 5, sol + 5);
        }
Beispiel #2
0
        public override byte[] Solve(byte[] partialData, TimeSpan timeout)
        {
            logger.Warn("Starting solving partial problem");
            PartialProblemSolver solver = new PartialProblemSolver();
            var partialProblemData      = serializer.DeserializePartialProblem(partialData);
            var result = solver.SolvePartialProblem(partialProblemData, problem);

            logger.Warn($"Finished solving partial problem, result: {result.Result}");
            return(serializer.SerializePartialSolution(result));
        }
 public PartialProblemSolverTests()
 {
     problemSolver = new PartialProblemSolver();
 }