IBM の docplex 最適化ライブラリで、interval_var
のサイズ パラメータを別の変数の関数として設定できますか? つまり、この例では、タスク サイズをワーカーのスキル レベルに依存させたいとします。ワーカーのスキル レベルが 2 で、別のワーカーのスキル レベルが 1 の場合、タスクは最初のワーカーの 2 倍の速さで完了します。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))