【发布时间】:2022-07-01 22:05:08
【问题描述】:
我一直在尝试解决 CP 优化器的问题,但我有点卡住了:
我的项目包含 200-300 多个单独的任务,具有单独的上游和下游依赖项。这些任务遵循一个管道(因此从开始到结束,每个单元都重复相同类型的任务),但每个任务都有一个单独的投标/持续时间(以小时计算),它们彼此不同。一个员工一次只能处理一个任务,每个任务之间都有一个缓冲时间,作为过渡时间。任务 每种“任务类型”都有部门开始和结束日期,因此只能在这些日期之间安排任务。每个部门都有预定数量的艺术家。
基本上,我需要为每个任务指定与部门日程和员工个人日程一致的开始和结束日期,并对其进行优化,以便每个部门在预定的结束日期之前完成。
这是我目前拥有的代码:
#Create model
mdl = CpoModel()
#Read CSV files
Crew = read_csv("CrewList.csv")
Task = read_csv("TaskList.csv")
#Convert column data to arrays
CrewList = Crew['Name'].tolist()
Dpt = Crew['Dpt'].tolist()
print('Name',CrewList)
TaskList = Task['ConcatTask'].tolist()
print('Tasks',TaskList)l
BidList = Task['Days'].tolist()
print('Tasks',BidList)
UpStream = Task['UpTask'].tolist()
DownStream = Task['DownTask'].tolist()
#Convert normal array to numpy type
u = np.array(UpStream)
d = np.array(DownStream)
#Concatenates each upstream and downstream task into an array
Precedences = np.vstack((UpStream,DownStream)).T
#Adds precedences to model
for x in Precedences:
mdl.add(mdl.end_before_start(Precendences[x]))
希望获得一些一般性指导或在 CP 中解决的类似问题/模型的示例。感谢您的帮助!
谢谢!
【问题讨论】:
标签: python optimization cp docplex