0

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))
4

1 に答える 1