首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >机器的终结时间(累加)

机器的终结时间(累加)
EN

Stack Overflow用户
提问于 2014-05-02 11:51:58
回答 1查看 108关注 0票数 0

我正在研究一个调度问题,我使用cumulatives/3来建模。

例如:

代码语言:javascript
复制
s1(Ss, Es, Ms ) :-
    Ss = [S1,S2,S3,S4,S5,S6,S7],
    Es = [E1,E2,E3,E4,E5,E6,E7],
    Ms = [M1,M2,M3,M4,M5,M6,M7],

    domain(Ss, 1, 30),
    domain(Es, 1, 30),
    domain(Ms, 1, 3),

    %task( StartTime, Duration, EndTime, ResourceCons, MachineId)
    Tasks = [
        task(S1, 6,E1, 1,M1),
        task(S2, 6,E2, 1,M2),
        task(S3, 3,E3, 1,M3),
        task(S4, 7,E4, 1,M4),
        task(S5, 5,E5, 1,M5),
        task(S6, 8,E6, 1,M6),
        task(S7, 4,E7, 1,M7)
    ],

    %machine( Id, ResourceBound ),
    Machines = [
        machine( 1, 1),
        machine( 2, 1),
        machine( 3, 1)
    ],

    cumulatives(Tasks, Machines, [bound(upper)] ),
    append([Ss,Es,Ms], Vars),
    labeling([], Vars). 

如果运行谓词s1/3,就会得到:

代码语言:javascript
复制
| ?- s1(Ss, Es, Ms ).
Es = [7,7,4,11,12,15,15],
Ms = [1,2,3,3,1,2,3],
Ss = [1,1,1,4,7,7,11] ? 
yes
| ?-

这个例子显示m1在12,m2在15,m3在15。

但是,当每台机器完成其所有任务时,什么是“最佳”或最好的表达方式?我想在机器的结束时间增加一些额外的限制.是否有任何全球性的约束可以很好地表达这一点?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2014-05-02 20:30:35

这里有一种表达方式。想到的唯一相关的全局约束是最大值/2。

代码语言:javascript
复制
| ?- makespans([1,2,3,3,1,2,3], [7,7,4,11,12,15,15], [M1,M2,M3]).
M1 = 12,
M2 = 15,
M3 = 15 ? 

% makespans(+Machines, +EndTimes, +MakeSpans) :-
%   given N tasks assigned to Machines and finishing at EndTimes,
%   the ith element of MakeSpans is unified with the max finish time for task i
%   MakeSpans should be a list of the right length
makespans(Machines, EndTimes, MakeSpans) :-
(   foreach(Make,MakeSpans),
    count(I,1,_),
    param(Machines,EndTimes)
do  (   foreach(E,EndTimes),
    foreach(M,Machines),
    foreach(T,Terms),
    param(I)
    do  T #= (M#=I)*E
    ),
    maximum(Make, Terms)
).
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/23427515

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档