首页 > 解决方案 > 了解明锌

问题描述

我正在尝试解决我的问题,我使用 Hakan 的代码作为示例,来自这里http://hakank.org/minizinc/scheduling_with_multiple_workers.mzn

我不知道这部分代码到底是什么意思,在哪里machine[t]=m。谁能解释我这部分?

forall(m in 1..num_machines) (
     % check the memory of the times when a task is run on the machine
     forall(tt in 1..max_time) (
        machine_used_ram[m,tt] = sum([memory[t]*(machine[t]=m)*(tt in start_time[t]..end_time[t]) | t in 1..num_tasks])

标签: constraint-programmingminizinc

解决方案


(machine[t]=m)是转换为 的布尔表达式1,如果machine[t]等于m。否则,它是0

因此,(machine[t]=m)*(tt in start_time[t]..end_time[t])选择所有属于外forall循环机器和时间的内存值进行汇总。


推荐阅读