понимание JuMP в Джулии Лэнг?

using JuMP, Clp
d = [40 60 75 25] # monthly demand for boats
m = Model(with_optimizer(Clp.Optimizer))

@variables(m, begin
0 <= x[1:4] <= 40 #boats produced with regular labor
y[1:4]>= 0 #boats produced with overtime labor
h[1:5] >= 0 #boats held in inventory
end)
@constraint(m, h[1] == 10)
@constraint(m, flow[i in 1:4], h[i]+x[i]+y[i]==d[i]+h[i+1])     # conservation of boats
@objective(m, Min, 400*sum(x) + 450*sum(y) + 20*sum(h))         # minimize costs

status = optimize!(m)
println("Build ", Array{Int64}(value(x')), " using regular labor")
println("Build ", Array{Int64}(value(x')), " using regular labor")
println("Build ", Array{Int64}(value(y')), " using overtime labor")
println("Inventory: ", Array{Int64}(value(h'))

Я новичок в Julia Language. Я практикуюсь с приведенным выше кодом. Но я получаю сообщение об ошибке, которого, кажется, не понимаю. Ошибка:

ERROR: LoadError: `JuMP.value` is not defined for collections of JuMP types. Use Julia's broadcast syntax instead: `JuMP.value.(x)`.
Stacktrace:
 [1] error(::String) at ./error.jl:33
 [2] value(::LinearAlgebra.Adjoint{VariableRef,Array{VariableRef,1}}) at /Users/pst/.julia/packages/JuMP/MsUSY/src/variables.jl:832
 [3] top-level scope at none:0
 [4] include at ./boot.jl:317 [inlined]
 [5] include_relative(::Module, ::String) at ./loading.jl:1044
 [6] include(::Module, ::String) at ./sysimg.jl:29
 [7] exec_options(::Base.JLOptions) at ./client.jl:266
 [8] _start() at ./client.jl:425
in expression starting at /Users/pst/Optimization/sailcovar1.jl:22.

Пожалуйста, помогите мне. Спасибо


person Hakim Asa    schedule 16.11.2019    source источник
comment
Сообщение об ошибке действительно уже дало вам ответ: используйте вместо этого синтаксис трансляции Джулии: JuMP.value.(x).   -  person phipsgabler    schedule 17.11.2019


Ответы (1)


Чтобы применить скалярную функцию (например, Jump.value) к вектору или массиву, вам необходимо использовать точечная нотация для трансляции. Поэтому вам нужно заменить все ваши value(...) вызовы на value.(...).

person Cameron Bieganek    schedule 16.11.2019