如何在Julia/JuMP中使用包含字符串而不是整数的集合?

Cam*_*Cam 1 string constraints set julia julia-jump

我正在研究线性优化问题.我循环遍历集来添加约束并定义我的变量.这是我到目前为止的工作代码:

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)
Run Code Online (Sandbox Code Playgroud)

我需要添加另一个set来替换set,sj但是这个set包含字符串而不是整数值.

set_P = [ IMA_1ABC IMA_23 IMA_4AB  ]
P = length(set_P)
Run Code Online (Sandbox Code Playgroud)

每次我尝试使用这个新集合运行代码时,它都不起作用,因为它无法识别字母.有谁知道如何使用一组字符串代替一组整数?

Nil*_*dat 7

字符串必须写"string",而不是string.如果省略引号,Julia将查找名为的变量string

作为参考,比较typeof("string")typeof(string).