Hacktoberfest 2026:メンテナが10月に向けて印を付けた、オープンで初心者向けの issue。 Hacktoberfest の issue を見る

POI failing with Clarabel

オープン
#201 コメント 17 件 リアクション 0 件 担当者 0 名 GitHub で見る

まだ誰も着手していません。

評価

難易度
4/5
見積もり時間
3〜5日
初心者へのやさしさ
52/100
issue の種類
バグ
明瞭さ
明確に書かれている
活発さ
静か
技術スタック
julia

調査の方向性

まず POI.Optimizer、MOI.optimize!、SCS を使って Julia の再現コードを実行し、2 回目の最適化で失敗することを確認します。パラメーター更新の経路を modify_constants(::SCS._SetConstants, ...) まで追跡し、更新が拒否される理由を特定します。POI.ParameterValue を変更して再度最適化したときに ModifyConstraintNotAllowed なしで成功すれば完了です。

索引モデルが issue の本文から書いたものです。

説明

Observed in this environment:

Julia=1.10.1
POI=0.14.2
MOI=1.49.0
SCS=2.6.1

import MathOptInterface as MOI
import ParametricOptInterface as POI
using SCS

inner = MOI.instantiate(SCS.Optimizer; with_bridge_type = Float64, with_cache_type = Float64)
model = POI.Optimizer(inner)
MOI.set(model, MOI.Silent(), true)

x = MOI.add_variable(model)
p, _ = MOI.add_constrained_variable(model, MOI.Parameter(1.0))

f = MOI.ScalarAffineFunction(
    [MOI.ScalarAffineTerm(1.0, x), MOI.ScalarAffineTerm(-1.0, p)],
    0.0,
)
MOI.add_constraint(model, f, MOI.EqualTo(0.0))

MOI.set(model, MOI.ObjectiveSense(), MOI.MIN_SENSE)
MOI.set(
    model,
    MOI.ObjectiveFunction{MOI.ScalarAffineFunction{Float64}}(),
    MOI.ScalarAffineFunction([MOI.ScalarAffineTerm(1.0, x)], 0.0),
)

println("first optimize")
MOI.optimize!(model)
println("x=", MOI.get(model, MOI.VariablePrimal(), x), " p=", MOI.get(model, POI.ParameterValue(), p))

MOI.set(model, POI.ParameterValue(), p, 2.0)
println("second optimize")
MOI.optimize!(model)  # Fails here with ModifyConstraintNotAllowed + modify_constants(::SCS._SetConstants, ...)

主要言語
Julia
スター
49
フォーク
8
平均マージ
22時間 26分
マージ済み PR(30日)
2

環境構築

このプロジェクトには開発コンテナ、Dockerfile、コントリビューションガイドがありません。まず README を読み、一般的な手順ははじめてのコントリビューションガイドを参照してください。

はじめの一歩

  1. issue を最後まで読み、次にプロジェクトのコントリビューションガイドを読みます。
  2. 着手することを issue にコメントします — 二人が同じ作業をするのを防げます。
  3. リポジトリをフォークし、ブランチを切って変更します。
  4. issue 番号を参照したプルリクエストを送ります。

jump-dev/ParametricOptInterface.jl のほかの issue

jump-dev/ParametricOptInterface.jl の issue をすべて見る

似ている issue

Julia の issue をもっと見る

新しい issue をメールで受け取る

初心者向けの GitHub issue を短くまとめたダイジェスト。