2017-04-04 28 views

回答

0

括號內的語法得到了棄用了一段時間回來 - 在朱莉婭和跳躍(朱莉婭0.6.0,跳0.18.0)的當前版本,下面的作品,當我運行它:

using JuMP 
using Cbc 
bar = Model(solver=CbcSolver()) 

# data 
N = 3 
M = 3 
W = 3 
K = 3 
T = 77 
s = ones(3,3) 

@variable(bar, x[1:N,1:M,1:K,1:T],Bin) 
p = reshape([ 
    [[9,7,12]; [10,6,8]; [8,10,9]]; 
    [[6,5,9]; [8,4,6]; [6,8,6]]; 
    [[4,4,5]; [4,3,4]; [5,3,5]]], 
    3,3,3) 

for t = 1:T 
    @constraint(bar, 
    sum((((x[i, j, k, t] * k 
     for h = t:t + p[i, j, k] + 1) 
     for j = 1:M) 
      for k = 1:K) 
      for i = 1:N) == 0) 
end 

solve(bar) 

如果使用目前的版本是不是一種選擇,普通的舊的for循環 也應努力:

(... same stuff as before up to the for loop ...) 

for t = 1:T 
    s = 0.0 
    for j = 1:M 
    for k = 1:K 
     for i = 1:N 
     for h = t:t + p[i, j, k] + 1 
      s += k*x[i,j,k,t] 
     end 
     end 
    end 
    end 
    @constraint(bar, s == 0) 
end 

這比第一製劑更易讀反正。讓我知道如果這些版本都不適合你,那麼我們可以看得更遠。

P.S.如果你問一些代碼片段,截圖很不錯,但實際代碼更好,那麼我們不必再輸入所有內容:)