переключение производства () с положением! () - PullRequest
0 голосов
/ 01 ноября 2019

Я пытаюсь изменить код, который был написан в 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
...