Получить количество веток и связанных узлов в JuMP / Gurobi - PullRequest
1 голос
/ 03 июля 2019

Я пытаюсь получить число ветвей и связанных узлов с помощью интерфейса JuMP и решателя Gurobi в Julia.

Я попытался использовать getnodecount (m), как это было предложено на веб-сайте JuMP, но это оказалось неопределенным. Проведя дополнительные исследования, я прочитал, чтобы попробовать: MathProgBase.getnodecount(m)

Простой пример:

using Gurobi
using JuMP
using MathProgBase

m = Model(with_optimizer(Gurobi.Optimizer))
@variable(m, x, Bin)
@variable(m, y >=0)
@objective(m, Min, x*y)

optimize!(m)
println(value(x))

# getnodecount(m)
MathProgBase.getnodecount(m)

Я ожидал получить число узлов 0, но получил эту ошибку:

LoadError: MethodError: no method matching getnodecount(::Model)

Closest candidates are: getnodecount(!Matched::Gurobi.GurobiMathProgModel) at /uliapro/JuliaPro_v1.1.1.1/packages/Gurobi/dlJep/src/MPB_wrapper.jl:759

1 Ответ

0 голосов
/ 04 июля 2019

Вы, кажется, используете новый MathOptInterface вместо MathProgBase. Вот почему вы не получаете GurobiMathProgModel и, следовательно, ошибка. В MathOptInterface вы можете сделать следующее, чтобы получить количество узлов.

MOI.get(model, MOI.NodeCount())

, который вызовет реализованный метод Gurobi.get_node_count(model::Model) здесь . Для других атрибутов, пожалуйста, обратитесь к Справочник по MOI API.

...