public static void Evaluate(StochasticSolution sol, int nReps = 1)
        {
            var config = GetConfig(useORTool: false);                        // 配置环境参数

            config.Capacities = sol.Decisions.Select(d => (int)d).ToArray(); // 配置决策变量
            for (int i = 0; i < nReps; i++)
            {
                var       state = new MultiServers(config, sol.Observations.Count); // 实例化动态属性
                Simulator sim   = new Simulator(state);                             // 实例化仿真器
                sim.WarmUp(TimeSpan.FromHours(1));                                  // 预热1小时,
                sim.Run(TimeSpan.FromHours(3));                                     // 运行3个小时

                // 添加目标值测量结果
                sol.Evaluate(new double[] {
                    state.CycleTime_Average.TotalMinutes,
                    config.Capacities.Sum(),
                });
            }
        }
        public static void Main()
        {
            // 实例化搜索算法引擎
            MoCompass moCompass = new MoCompass(
                new ConvexSet(dimension: 3, globalLb: 1, globalUb: 10 //,
                                                                      //lowerbounds: new double[] { 1, 2, 3, }, upperbounds: new double[] { 10, 20, 30 },
                                                                      //constraints: new List<Constraint> {
                                                                      //    new ConstraintLE(new double[]{ 1, 1, 0}, 30),
                                                                      //    new ConstraintGE(new double[]{ 0, 1, 1}, 10),
                                                                      //}
                              ));

            int i = 0;

            while (true)
            {
                Console.WriteLine("Evaluating...");

                var samples = moCompass.Sample(10, decimals: 0); // 通过搜索算法引擎采样
                if (samples.Length == 0)
                {
                    break;                      // 达到局部收敛
                }
                foreach (var decs in samples)
                {
                    var sol = new StochasticSolution(decs); // 实例化随机解
                    Evaluate(sol);                          // 计算随机解
                    moCompass.Enter(sol);                   // 返回随机解
                }

                Console.Clear();
                Console.WriteLine("Iteration: {0}", i++);
                foreach (var sol in moCompass.ParetoSet.OrderBy(s => s.Objectives[0]))
                {
                    Console.WriteLine(sol);
                }
                Console.ReadKey();
            }
            Console.WriteLine("End.");
            Console.ReadKey();
        }