1

私は線形最適化問題に取り組んでいます。セットをループして、制約を追加し、変数を定義しています。これが私がこれまでに持っている作業コードです:

using JuMP
m = Model()
si=[12 23 1 3309 5]
sj=[1,2,3]
c= [3 5 2;
    4 3 5;
    4 5 3;
    5 4 3;
    3 5 4]
b= [80;
    75;
    80;
    120;
    60]
# x_ij >= 0  ∀ i = 1,...,5, j = 1,...,3
n = length(si)
p = length(sj)

@defVar(m, x[i=1:n,j=1:p] >= 0)
@setObjective(m,Min,sum{c[i,j]*x[i,j],i=1:n,j=1:p})
for j=1:p
    @addConstraint(m, sum{x[i,j],i=1:n} <= 480)
end
for i=1:n
    @addConstraint(m, sum{x[i,j],j=1:p} >= b[i])
    end

endstatus=solve(m)

セットを置き換えるために別のセットを追加する必要がありますが、sjこのセットには整数値ではなく文字列が含まれています。

set_P = [ IMA_1ABC IMA_23 IMA_4AB  ]
P = length(set_P)

この新しいセットでコードを実行しようとするたびに、文字が認識されないため機能しません。整数のセットの代わりに文字列のセットを使用する方法を知っている人はいますか?

4

1 に答える 1

7

"string"ではなく、文字列を記述する必要がありstringます。引用符を省略すると、Julia は次の名前の変数を探します。string

参考までに と比べtypeof("string")てみてくださいtypeof(string)

于 2015-08-14T14:14:50.643 に答える