[BUG] SOC→NC warm-start condition is inverted, and NC results are adopted without checking the termination status
メンテナーはふだん 1 日以内に返信
まだ誰も着手していません。
評価
- 難易度
- 4/5
- 見積もり時間
- 3〜5日
- 初心者へのやさしさ
- 48/100
調査の方向性
Start with eDisGo_OPF.jl/Main.jl and trace the soc_tight, warm_start, and method="nc" paths in pm_optimize. Check how the solver termination and primal status are represented before update_data! adopts a result. Done means non-tight SOC results trigger NC rescue, and unsuccessful NC runs in either path fall back to the SOC solution with a loud warning.
索引モデルが issue の本文から書いたものです。
説明
Intended behaviour (two-stage solve)
Stage 1: SOC relaxation (Gurobi). If the SOC solution is tight, it is already AC-feasible —
done, no NC solve needed. If it is not tight, the relaxed solution is physically infeasible
and stage 2 should rescue feasibility: solve the exact non-convex model (Ipopt) warm-started
from the SOC solution. (This is also what the SOCBFPowerModelEdisgo docstring describes.)
Actual behaviour (eDisGo_OPF.jl/Main.jl)
- Condition inverted:
if soc_tight & warm_start— the NC polish runs only in the tight
case (where it is unnecessary), and is skipped exactly when the SOC solution is not tight.
A non-tight relaxed solution is returned to eDisGo as the result (only a violations JSON is
written toopf_solutions/). - No termination-status check on the NC result:
result_nc_wsis adopted unconditionally
viaupdate_data!. If Ipopt endsLOCALLY_INFEASIBLE/ITERATION_LIMIT, a worse-than-SOC
solution is silently returned. The same unconditional adoption exists in themethod="nc"
cold-start path. - Rescue gated behind an opt-in flag:
warm_startdefaults toFalseinpm_optimize,
so out of the box a non-tight solution is never rescued.
Fix
- Run the NC rescue when
!soc_tight(regardless of thewarm_startflag); skip the NC solve
when the SOC solution is tight. - Check the NC termination/primal status: on success adopt the NC solution, otherwise fall back
to the SOC solution and log a loud warning. Apply the same status check tomethod="nc".
- 主要言語
- Python
- スター
- 48
- フォーク
- 22
- 平均マージ
- 1日 7時間
- マージ済み PR(30日)
- 38
環境構築
- Dockerfile・Docker Compose ファイルなし
- プルリクエストのテンプレートあり
- コントリビューションガイドなし
はじめの一歩
- issue を最後まで読み、次にプロジェクトのコントリビューションガイドを読みます。
- 着手することを issue にコメントします — 二人が同じ作業をするのを防げます。
- リポジトリをフォークし、ブランチを切って変更します。
- issue 番号を参照したプルリクエストを送ります。
openego/eDisGo のほかの issue
-
area: database bug priority: low
難易度 2/5 1〜3時間 初心者へのやさしさ 78/100
メンテナーはふだん 1 日以内に返信
-
bug correctness priority: medium
難易度 2/5 1〜3時間 初心者へのやさしさ 80/100
メンテナーはふだん 1 日以内に返信
-
[BUG] Spatial complexity reduction merges MV and LV buses when an LV grid has the ID of the MV gridオープンbug correctness priority: high
難易度 2/5 1〜3時間 初心者へのやさしさ 72/100
メンテナーはふだん 1 日以内に返信
-
bug correctness priority: medium
難易度 2/5 1〜3時間 初心者へのやさしさ 82/100
メンテナーはふだん 1 日以内に返信
-
area: opf documentation priority: low
難易度 2/5 1〜3時間 初心者へのやさしさ 78/100
メンテナーはふだん 1 日以内に返信
似ている issue
-
question
難易度 1/5 1時間未満 初心者へのやさしさ 68/100
vllm-project/vime#524 ·
メンテナーはふだん 7 日以内に返信
-
WOPI editor page is scrollable by a few pixels, which breaks scrolling in the document (Firefox)オープン
難易度 2/5 1〜3時間 初心者へのやさしさ 84/100
suitenumerique/drive#969 ·
メンテナーはふだん 1 日以内に返信
-
難易度 2/5 1〜3時間 初心者へのやさしさ 67/100
theupdateframework/python-tuf#3044 ·
メンテナーはふだん 1 日以内に返信
-
難易度 2/5 1〜3時間 初心者へのやさしさ 84/100
FAIRmat-NFDI/pynxtools#861 ·
-
難易度 2/5 1〜3時間 初心者へのやさしさ 76/100
NVIDIA/nsight-python#88 ·
メンテナーはふだん 1 日以内に返信