Differentiation of problems with Almost Locally Solved termination status
还没有人认领这个 Issue。
评估
调研方向
先运行 Julia 最小工作示例,然后跟踪 DiffOpt.forward_differentiate! 以及对 Almost Locally Solved 终止状态的处理。当示例针对该状态成功完成正向微分时,即表示完成。
由索引模型根据 Issue 内容生成。
描述
DiffOpt seems to not suppoer problems with the termination status Almost Locally Solved. Below is a minimum working example.
using JuMP
using Ipopt
using DiffOpt
# Create differentiable model with loose tolerances
diff_optimizer = optimizer_with_attributes(
Ipopt.Optimizer,
"print_level" => 3,
"tol" => 1e-2,
"acceptable_tol" => 1e-1,
"max_iter" => 5,
"acceptable_iter" => 2
)
model = Model(() -> DiffOpt.diff_optimizer(diff_optimizer))
# Decision variables
@variable(model, x >= 0)
@variable(model, y >= 0)
# Parameters (weights in objective)
w = [0.1, 0.1] # Initial parameter values
weight = w
weight = JuMP.@variable(
model,
[j in keys(w)] in MOI.Parameter(w[j]),
base_name = "weight")
@constraint(model, x + y >= 10)
@constraint(model, 2x + y >= 15)
@objective(model, Min, weight[1]*x + weight[2]*y)
optimize!(model)
println("\nStatus: $(termination_status(model))")
for (i, key) in enumerate(keys(weight))
perturbation = i
DiffOpt.set_forward_parameter(model, weight[key], perturbation)
end
# Solve perturbed problem
optimize!(model)
# Compute forward derivatives
DiffOpt.forward_differentiate!(model)
- 主要语言
- Julia
- 星标
- 146
- 派生
- 21
- PR 合并指标
- 30 天内没有已合并 PR
环境准备
这个项目没有提供开发容器、Dockerfile 或贡献指南,环境需要你自己搭建:先看它的 README,通用步骤见我们的新手贡献指南。
从这里开始
- 先读完整个 Issue,再读项目的贡献指南。
- 在 Issue 下留言说明你要接手 —— 这能避免两个人做同样的事。
- Fork 仓库,在一个分支上完成修改。
- 提交 Pull Request,并在描述里引用这个 Issue 编号。
jump-dev/DiffOpt.jl 的其他 Issue
-
难度 3/5 1-2 天 新手友好度 55/100
jump-dev/DiffOpt.jl#362 · 1 条评论 ·
-
难度 5/5 一周以上 新手友好度 25/100
jump-dev/DiffOpt.jl#358 · 2 条评论 ·
-
难度 3/5 1-2 天 新手友好度 55/100
jump-dev/DiffOpt.jl#348 ·
-
难度 5/5 一周以上 新手友好度 35/100
jump-dev/DiffOpt.jl#331 · 1 条评论 ·
-
难度 5/5 一周以上 新手友好度 35/100
jump-dev/DiffOpt.jl#318 · 1 条评论 ·
查看 jump-dev/DiffOpt.jl 的全部 Issue
相似的 Issue
-
难度 2/5 1-3 小时 新手友好度 76/100
legend-exp/LegendDataManagement.jl#232 ·
维护者通常 1 天内回复
-
bug
难度 2/5 1-3 小时 新手友好度 73/100
维护者通常 1 天内回复
-
难度 1/5 1 小时以内 新手友好度 76/100
-
难度 2/5 1-3 小时 新手友好度 76/100
SciML/OrdinaryDiffEq.jl#4907 ·
维护者通常 4 天内回复
-
documentation model-weights
难度 2/5 1-3 小时 新手友好度 72/100
FluxML/Metalhead.jl#311 ·
维护者通常 1 天内回复