cp_optimizer入门引言和资料
CP Optimizer 是一个软件库,提供了用于对约束规划问题进行建模和求解的构造。
在 CP Optimizer 之前,有 ILOG Solver 和 ILOG Scheduler。调度问题由调度程序中的“活动”建模,活动由几个整数变量组成。Scheduler 取得了成功,但越来越难跟上客户的需求。工业问题通常包含某种替代方案、替代资源、可选目标等。很难使用活动对它们进行建模(例如,未执行活动的长度是多少?)。解决这些模型也很困难。
参考
# 示例代码
https://github.com/IBMDecisionOptimization/docplex-examples
# 函数说明
https://ibmdecisionoptimization.github.io/docplex-doc/cp/docplex.cp.modeler.py.html#scheduling-functions
整数变量与约束
from docplex.cp.model import CpoModel
mdl = CpoModel()
Belgium = mdl.integer_var(0, 3, "Belgium")
Denmark = mdl.integer_var(0, 3, "Denmark")
mdl.add(Belgium != France) # 增加约束Belgium和France颜色不一样
msol = mdl.solve(TimeLimit=10) # 求解
integer_var_list与element
nametuple
from collections import namedtuple
Warehouse = namedtuple('Wharehouse'