コード例 #1
0
        public override byte[] Solve(byte[] partialData, TimeSpan timeout)
        {
            MmPartialProblem partialProblem;

            using (var memoryStream = new MemoryStream(partialData))
            {
                partialProblem = (MmPartialProblem)_formatter.Deserialize(memoryStream);
            }
            var min = int.MaxValue;
            var max = int.MinValue;

            if (partialProblem.Numbers.Length > 0)
            {
                min = max = partialProblem.Numbers[0];
                for (var i = 1; i < partialProblem.Numbers.Length; i++)
                {
                    if (partialProblem.Numbers[i] < min)
                    {
                        min = partialProblem.Numbers[i];
                    }
                    if (partialProblem.Numbers[i] > max)
                    {
                        max = partialProblem.Numbers[i];
                    }
                }
            }
            var solution = new MmSolution(min, max);

            using (var memoryStream = new MemoryStream())
            {
                _formatter.Serialize(memoryStream, solution);
                return(memoryStream.ToArray());
            }
        }
コード例 #2
0
        public override byte[] MergeSolution(byte[][] solutions)
        {
            var min = int.MaxValue;
            var max = int.MinValue;

            foreach (var t in solutions)
            {
                using (var memoryStream = new MemoryStream(t))
                {
                    var solution = (MmSolution)_formatter.Deserialize(memoryStream);
                    if (solution.Min < min)
                    {
                        min = solution.Min;
                    }
                    if (solution.Max > max)
                    {
                        max = solution.Max;
                    }
                }
            }
            var finalSolution = new MmSolution(min, max);

            using (var memoryStream = new MemoryStream())
            {
                _formatter.Serialize(memoryStream, finalSolution);
                return(memoryStream.ToArray());
            }
        }
コード例 #3
0
ファイル: MMTaskSolver.cs プロジェクト: progala2/DVRP
 public override byte[] MergeSolution(byte[][] solutions)
 {
     var min = int.MaxValue;
     var max = int.MinValue;
     foreach (var t in solutions)
     {
         using (var memoryStream = new MemoryStream(t))
         {
             var solution = (MmSolution) _formatter.Deserialize(memoryStream);
             if (solution.Min < min) min = solution.Min;
             if (solution.Max > max) max = solution.Max;
         }
     }
     var finalSolution = new MmSolution(min, max);
     using (var memoryStream = new MemoryStream())
     {
         _formatter.Serialize(memoryStream, finalSolution);
         return memoryStream.ToArray();
     }
 }
コード例 #4
0
ファイル: MMTaskSolver.cs プロジェクト: progala2/DVRP
 public override byte[] Solve(byte[] partialData, TimeSpan timeout)
 {
     MmPartialProblem partialProblem;
     using (var memoryStream = new MemoryStream(partialData))
     {
         partialProblem = (MmPartialProblem) _formatter.Deserialize(memoryStream);
     }
     var min = int.MaxValue;
     var max = int.MinValue;
     if (partialProblem.Numbers.Length > 0)
     {
         min = max = partialProblem.Numbers[0];
         for (var i = 1; i < partialProblem.Numbers.Length; i++)
         {
             if (partialProblem.Numbers[i] < min) min = partialProblem.Numbers[i];
             if (partialProblem.Numbers[i] > max) max = partialProblem.Numbers[i];
         }
     }
     var solution = new MmSolution(min, max);
     using (var memoryStream = new MemoryStream())
     {
         _formatter.Serialize(memoryStream, solution);
         return memoryStream.ToArray();
     }
 }