我需要为任务创建一个计划。我决定使用multi_cumulative(+Tasks,+Capacities)
,这是累积/ 2的版本。这些函数来自clpfd库。
所以,我有这个基本的例子(我已经应用于更复杂的程序):
schedule(Ss, End) :-
Ss = [S1,S2,S3],
Es = [E1,E2,E3],
Capacities = [
cumulative(12),
cumulative(2),
cumulative(10)
],
Tasks = [
task(S1, 16, E1, [0,1,1], 1),
task(S2, 6, E2, [0,0,2], 2),
task(S3, 13, E3, [0,1,2], 3)
],
domain(Ss, 1, 30),
maximum(End, Es),
multi_cumulative(Tasks, Capacities),
labeling([minimize(End)], Ss).
问题在于,我需要拥有多个资源。例如,我有资源:“person_works_A”和“person_works_B”。如果我创建的资源可以是两者的一部分(可以在两者中工作),我该如何构建它?因为我没有1个资源“person_works_A”和另一个“person_works_B”,所以我有1个资源可以同时存在。当选择一个时,它应该剩下0个资源。
感谢您的帮助