using Google.OrTools.Sat; CpModel model = new CpModel(); //第一个时间段 var start_var = model.NewIntVar(0, 200, "start_var"); var end_var = model.NewIntVar(0, 200, "end_var"); var duration = model.NewIntVar(10, 50, "duration"); var task_interval = model.NewIntervalVar(start_var, duration, end_var, "task_interval"); model.Add(end_var == start_var + duration); model.Maximize(duration); var solver = new CpSolver(); var status = solver.Solve(model); if (status == CpSolverStatus.Optimal) { Console.WriteLine("任务开始时间:{0}", solver.Value(start_var)); Console.WriteLine("任务结束时间:{0}", solver.Value(end_var)); Console.WriteLine("任务持续时间:{0}", solver.Value(duration)); } else { Console.WriteLine("找不到可行解。"); } Console.ReadKey();

浙公网安备 33010602011771号