コード例 #1
0
        public static OptimizationProblem DecodeOptimizationProblem(OptimizerService.OptimizationProblem problem)
        {
            var objectives = problem.Objectives.Select(objective => DecodeOptimizationObjective(objective)).ToList();

            var instance = new OptimizationProblem(
                parameterSpace: DecodeHypergrid(problem.ParameterSpace),
                objectiveSpace: DecodeHypergrid(problem.ObjectiveSpace),
                objectives: objectives);

            if (problem.ContextSpace != null)
            {
                // A context space was provided.
                //
                instance.ContextSpace = DecodeHypergrid(problem.ContextSpace);
            }
            else
            {
                instance.ContextSpace = null;
            }

            return(instance);
        }
コード例 #2
0
        /// <summary>
        /// Convert optimization problem to protobuf instance.
        /// </summary>
        /// <param name="optimizationProblem"></param>
        /// <returns></returns>
        internal static OptimizerService.OptimizationProblem ToOptimizerServiceOptimizationProblem(this OptimizationProblem optimizationProblem)
        {
            var optimizerOptimizationProblem = new OptimizerService.OptimizationProblem
            {
                ParameterSpace = new OptimizerService.Hypergrid
                {
                    HypergridJsonString = optimizationProblem.ParameterSpace.ToJson(),
                },

                ContextSpace = new OptimizerService.Hypergrid
                {
                    HypergridJsonString = optimizationProblem.ContextSpace != null?optimizationProblem.ContextSpace.ToJson() : string.Empty,
                },

                ObjectiveSpace = new OptimizerService.Hypergrid
                {
                    HypergridJsonString = optimizationProblem.ObjectiveSpace.ToJson(),
                },
            };

            optimizerOptimizationProblem.Objectives.AddRange(optimizationProblem.Objectives.Select(r => r.ToOptimizerServiceObjective()));

            return(optimizerOptimizationProblem);
        }