Я пытаюсь изменить код, который был написан в julia 0.4, и одна из этих модификаций заменяет produce()
на put!()
, но я действительно не знаю, как мне заменить его, зная, что put!()
требуетChannel
Я пытался c=Channel(i); put!(c,v)
, но я не знаю, является ли это правильным способом заменить его в этой функции ниже
function scan()
i = 1
init = 1
while i > 0
if i >= init
@objective(m, Max, x[i])
res = JuMP.solve(m, suppress_warnings=true)
if res==:Optimal || res==:Unbounded
ub[i] = round(Int, getvalue(x[i]))
setobjectivesense(m, :Min)
res = JuMP.solve(m, suppress_warnings=true)
@assert res==:Optimal || res==:Unbounded
lb[i] = round(Int, getvalue(x[i]))
v[i] = lb[i]
init += 1
else
@assert res==:Infeasible
i -= 1
continue
end
elseif v[i] < ub[i]
v[i] += 1
else
setupperbound(x[i], Inf)
setlowerbound(x[i], -Inf)
init -= 1
i -= 1
continue
end
if i >= level
produce(v) # the line to be replaced
continue
else
setupperbound(x[i], v[i])
setlowerbound(x[i], v[i])
i += 1
end
end
end