Понимание результатов JuMP.NLPEvaluator (модель) - PullRequest
0 голосов
/ 12 октября 2018

Я использую Julia (v0.6.4) и JuMP (v0.18.2) для решения проблемы с IPOPT.Я хотел проверить, какие ограничения были активны в решении моей проблемы, и что проблема действительно выполнима.

Код, который я использовал для этого:

#model is a JuMP model
d=JuMP.NLPEvaluator(model)
n = MathProgBase.numconstr(model) #number of constraints
MathProgBase.initialize(d,[:Grad, :Jac, :ExprGraph]) #call first
g = zeros(n,1) 
x = MathProgBase.getsolution(model.internalModel) #variable values
MathProgBase.eval_g(d,g,x) #evaluate g(x), store in g

Я пытаюсьнайдите документацию, в которой указано, что означают значения NLPEvaluator.Я получил следующие результаты:

JuMP.NLPEvaluator (Задача минимизации с: * 191 линейными ограничениями * 240 нелинейными ограничениями * 232 переменными

Решателем является Ipopt, [10, 1] =1,0 [26, 1] = 1,0 [30,
1] = 1,0 [31, 1] = 1,0 [86, 1] = 1,0 [90, 1] = 1,0 [91, 1] = 1,0 [146, 1] = 1,0 [150, 1] = 1,0 [151, 1] = 1,0 [10, 2] = -1,0 ⋮ [68, 227] = 1,0
[69, 227] = 1,0 [128, 228] = 1,0[129, 228] = 1,0 [188, 229] = 1,0 [189, 229] = 1,0 [70, 230] = 1,0 [71, 230] = 1,0 [130, 231] = 1,0 [131, 231] = 1,0 [190, 232] = 1.0 [191, 232] = 1.0, #undef, true, #undef, #undef, #undef, # undef, # undef, #undef, #undef, #undef, #undef, #undef, [0,0, 0,0, 0,0, -1,0, 1,0, 0,0, 0,0, 0,0, -402,868, -158,491… 38,0627, 7,9091e6, 7,88152e6, 7,8625e6, 7,89457e6, 7,86694e6, 7,84789e6, 7,9286e6, 7,90109e6, 7,8010912e6], Float64 [], false, false, #undef, #undef, #undef, #undef, #undef, #undef, #undef, #undef, #undef, 4, 0,0, 0,0, 0,0, 0,0, 0,0)

Я понимаю фиПервая часть с указанием количества линейных и нелинейных ограничений и переменных.Я также знаю, что ограничения сгруппированы как линейные, квадратичные и нелинейные.

Что я не понимаю, так это то, что #undef, false, true и все остальные скобки и цифры означают в нижнем абзаце результатов.

Любые пояснения или ссылки на ресурсыбудет оценено!

...