在 IBM 的 docplex 优化库中,您可以将interval_var
的大小参数设置为另一个变量的函数吗?意思是说,对于这个例子,我想让任务大小取决于工人的技能水平。如果工人的技能等级为 2,而另一名工人的技能等级为 1,则第一个工人完成任务的速度是前者的两倍。因此,该任务的 size 参数interval_var
应该是task.duration / skill_level
.
它通常根据文档设置为整数值,所以我想知道是否有解决方法可以实现这一点。
从例子:
Task = (namedtuple("Task", ["name", "duration"]))
TASKS = {Task("masonry", 35),
Task("carpentry", 15),
Task("plumbing", 40),
Task("ceiling", 15),
Task("roofing", 5),
Task("painting", 10),
Task("windows", 5),
Task("facade", 10),
Task("garden", 5),
Task("moving", 5),
}
tasks = {} # dict of interval variable for each house and task
for house in HOUSES:
for task in TASKS:
tasks[(house, task)] = mdl.interval_var(start=period_domain,
end=period_domain,
size=task.duration,
name="house {} task {}".format(house, task))