Hacktoberfest 2026:维护者为十月标记出来的 issue,仍然开放、适合新手。 浏览 Hacktoberfest issue

[Bridges] MultirowChange in set_map.jl drops zero coefficients

未关闭
#3,106 2 条评论 0 个 reaction 已指派 1 人 在 GitHub 查看

维护者通常 1 天内回复

@odow 已经在做这个了。

开始于 2026年10月16日。

评估

这个 Issue 还没有评估数据。

描述

The MOI.modify method for MultirowChange in src/Bridges/Constraint/set_map.jl drops zeros after mapping the new coefficients (the !iszero filter added in #2662). In both examples the variable is in one row, so the change is the whole column.

With JuMP and SCS the constraint goes through SetDotScalingBridge:

using JuMP, LinearAlgebra, SCS
model = Model(SCS.Optimizer)
set_silent(model)
@variable(model, x)
@constraint(model, x <= 2)
@constraint(model, c, Symmetric([1 x; x 1]) in PSDCone())
@objective(model, Max, x)
optimize!(model)
value(x)  # 1.0
set_normalized_coefficient(c, x, [(2, 0.0)])
optimize!(model)
value(x)  # still 1.0, should be 2.0

In MOI, this is test_modify_MultirowChange from test/Bridges/Constraint/test_NormOneConeToNormConeBridge.jl with 0.0 instead of 2.0:

import MathOptInterface as MOI
inner = MOI.Utilities.Model{Float64}()
model = MOI.Bridges.Constraint.NormOneConeToNormCone{Float64}(inner)
x = MOI.add_variables(model, 2)
c = MOI.add_constraint(model, MOI.Utilities.vectorize(1.0 .* x), MOI.NormOneCone(2))
MOI.modify(model, c, MOI.MultirowChange(x[2], [(2, 0.0)]))
MOI.get(model, MOI.ConstraintFunction(), c)  # row 2 is still 1.0 x[2]

This is on MOI 1.54.0 and master, with JuMP 1.32.1 and SCS 2.7.0.

主要语言
Julia
星标
506
派生
103
平均合并
1 天 10 分钟
30 天内合并 PR
12

环境准备

这个项目没有提供开发容器、Dockerfile 或贡献指南,环境需要你自己搭建:先看它的 README,通用步骤见我们的新手贡献指南。

从这里开始

  1. 先读完整个 Issue,再读项目的贡献指南。
  2. 在 Issue 下留言说明你要接手 —— 这能避免两个人做同样的事。
  3. Fork 仓库,在一个分支上完成修改。
  4. 提交 Pull Request,并在描述里引用这个 Issue 编号。

jump-dev/MathOptInterface.jl 的其他 Issue

查看 jump-dev/MathOptInterface.jl 的全部 Issue

相似的 Issue

更多 Julia Issue

把新 issue 发到你的邮箱

精选适合新手参与的 GitHub issue 摘要。