JuMP.setRHS是否适用于julia中的非线性模型?

JuMP.setRHS是否适用于julia中的非线性模型?,julia,julia-jump,Julia,Julia Jump,在下面的代码中,NL约束的RHS应该更改。但是错误发生了。 错误:未定义错误:未定义setRHS。你能告诉我为什么会发生这个错误吗?。谢谢你的帮助 using JuMP,CPLEX, Ipopt #parameters-------------------------------------------------------- sig=0.86; #-------------------------------------------------------------------------

在下面的代码中,NL约束的RHS应该更改。但是错误发生了。 错误:未定义错误:未定义setRHS。你能告诉我为什么会发生这个错误吗?。谢谢你的帮助

using JuMP,CPLEX, Ipopt
#parameters--------------------------------------------------------
sig=0.86;
#---------------------------------------------------------------------------
ALT= Model(optimizer_with_attributes(Juniper.Optimizer, "nl_solver"=>optimizer_with_attributes(Ipopt.Optimizer, "print_level" => 0),

       "mip_solver"=>optimizer_with_attributes(CPLEx.Optimizer, "logLevel" => 0),"registered_functions" =>[Juniper.register( :f, 1, f; autodiff = true)])

       )

# variables-----------------------------------------------------------------
f(x) = cdf(Normal(0, 1), x);
JuMP.register(ALT, :f, 1, f; autodiff = true);
@variable(ALT, h >= 0.1);
@variable(ALT, L >= 0.0001);
@variable(ALT, n>=2, Int);
#-------------------------------------------------------------------
@NLexpression(ALT,k7,1-f(L-sig*sqrt(n))+f(-L-sig*sqrt(n)));

@NLexpression(ALT,f2,1/k7)
#constraints--------------------------------------------------------
@NLconstraint(ALT, f(-L) <= 1/400);

@NLconstraint(ALT,rf2,f2<=10000);

#-------------------------------------------------------------------
@NLobjective(ALT, Min, f2)

optimize!(ALT)
JuMP.setRHS(rf2,getvalueNLobjective(1/k7))
使用跳转、CPLEX、Ipopt
#参数--------------------------------------------------------
sig=0.86;
#---------------------------------------------------------------------------
ALT=模型(优化器_带有_属性(Juniper.optimizer,“nl_解算器”=>优化器_带有_属性(Ipopt.optimizer,“打印级别”=>0),
“mip_解算器”=>具有_属性的优化器(CPLEx.optimizer,“logLevel”=>0),“已注册的_函数”=>[Juniper.register(:f,1,f;autodiff=true)])
)
#变数-----------------------------------------------------------------
f(x)=cdf(正常值(0,1),x);
寄存器(ALT,:f,1,f;autodiff=true);
@变量(ALT,h>=0.1);
@变量(ALT,L>=0.0001);
@变量(ALT,n>=2,Int);
#-------------------------------------------------------------------
@NL表达(ALT,k7,1-f(L-sig*sqrt(n))+f(-L-sig*sqrt(n));
@NL表达(ALT,f2,1/k7)
#约束条件--------------------------------------------------------

@NLconstraint(ALT,f(-L)您使用的是过时的跳转版本示例。从今天起,您应该使用
set\u normalized\u rhs

set_normalized_rhs(con_ref, some_rhs_value)

请注意,这将设置跳转预计算后的标准化RHS。例如,对于
@constraint(model,2x-5),非常感谢您的帮助。我使用它,但它不适用于非线性约束。