Tips

本章ではAmplify Schedの機能の詳細を扱います。

from amplify_sched import *
import datetime

token = "xxxxxxxxxxxxxxxxxxxxxxxxx"

日時指定

スケジュールの開始日時と各処理時間を実時間を単位として指定できます。

下記ではスケジュールの開始日時を2023年5月1日、処理時間の単位を15分に設定しています。

model = Model()
model.start = datetime.datetime(2023, 5, 1, 9, 0, 0)
model.time_unit = datetime.timedelta(minutes=15)

model.jobs.add("Job A")
model.jobs.add("Job B")
model.jobs.add("Job C")
model.jobs.add("Job D")

model.machines.add("Machine X")
model.machines.add("Machine Y")
model.machines.add("Machine Z")

model.jobs["Job A"].append(Task())
model.jobs["Job A"][0].processing_times["Machine X"] = 10
model.jobs["Job A"].append(Task())
model.jobs["Job A"][1].processing_times["Machine Y"] = 20
model.jobs["Job A"].append(Task())
model.jobs["Job A"][2].processing_times["Machine Z"] = 15

model.jobs["Job B"].append(Task())
model.jobs["Job B"][0].processing_times["Machine Y"] = 10
model.jobs["Job B"].append(Task())
model.jobs["Job B"][1].processing_times["Machine Z"] = 20
model.jobs["Job B"].append(Task())
model.jobs["Job B"][2].processing_times["Machine X"] = 15

model.jobs["Job C"].append(Task())
model.jobs["Job C"][0].processing_times["Machine Z"] = 10
model.jobs["Job C"].append(Task())
model.jobs["Job C"][1].processing_times["Machine X"] = 20
model.jobs["Job C"].append(Task())
model.jobs["Job C"][2].processing_times["Machine Y"] = 15

model.jobs["Job D"].append(Task())
model.jobs["Job D"][0].processing_times["Machine Z"] = 10
model.jobs["Job D"].append(Task())
model.jobs["Job D"][1].processing_times["Machine Y"] = 20
model.jobs["Job D"].append(Task())
model.jobs["Job D"][2].processing_times["Machine X"] = 15

gantt = model.solve(token=token, timeout=1)
gantt.timeline(machine_view=True)