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

can't use primal_feasibility_report with complex variables

オープン 初心者向け
#3,113 コメント 0 件 リアクション 0 件 担当者 0 名 GitHub で見る

メンテナーはふだん 1 日以内に返信

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

評価

難易度
2/5
見積もり時間
1〜3時間
初心者へのやさしさ
78/100
issue の種類
バグ
明瞭さ
明確に書かれている
活発さ
活発
技術スタック
julia
領域
testing-qa

調査の方向性

スタックトレースは src/Utilities/distance_to_set.jl と src/feasibility_checker.jl を指しています。まず、EqualTo 集合の距離処理と feasibility checker の呼び出し箇所を読んでください。複素数変数を使って例を再現し、結果として生じる EqualTo{ComplexF64} 制約を primal_feasibility_report がエラーなく処理できることを確認してください。

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

説明

Should be easy enough to implement.

using JuMP, LinearAlgebra
import Hypatia

function complex_test()
    model = Model(Hypatia.Optimizer)
    @variable(model, ρ[1:2,1:2] in HermitianPSDCone())
    @constraint(model, tr(ρ) == 1)
    @objective(model, Max, imag(ρ[1, 2]))
    set_silent(model)
    optimize!(model)
    display(primal_feasibility_report(model))
    return objective_value(model)
end

Stacktrace:

julia> complex_test()
ERROR: distance_to_set using the distance metric MathOptInterface.Utilities.ProjectionUpperBoundDistance() for set type MathOptInterface.EqualTo{ComplexF64} has not been implemented yet.
Stacktrace:
  [1] error(s::String)
    @ Base ./error.jl:44
  [2] distance_to_set(d::MathOptInterface.Utilities.ProjectionUpperBoundDistance, ::Float64, set::MathOptInterface.EqualTo{…})
    @ MathOptInterface.Utilities ~/.julia/packages/MathOptInterface/lY2WB/src/Utilities/distance_to_set.jl:75
  [3] distance_to_set(point::Float64, set::MathOptInterface.EqualTo{ComplexF64})
    @ MathOptInterface.Utilities ~/.julia/packages/MathOptInterface/lY2WB/src/Utilities/distance_to_set.jl:71
  [4] _distance_to_set(point_f::JuMP.var"#115#116"{…}, func::GenericAffExpr{…}, set::MathOptInterface.EqualTo{…}, ::Type{…})
    @ JuMP ~/.julia/packages/JuMP/insRt/src/feasibility_checker.jl:196
  [5] _add_infeasible_constraints(model::Model, ::Type{…}, ::Type{…}, violated_constraints::Dict{…}, point_f::Function, atol::Float64)
    @ JuMP ~/.julia/packages/JuMP/insRt/src/feasibility_checker.jl:160
  [6] primal_feasibility_report(point::Function, model::Model; atol::Float64, skip_missing::Bool)
    @ JuMP ~/.julia/packages/JuMP/insRt/src/feasibility_checker.jl:130
  [7] primal_feasibility_report
    @ ~/.julia/packages/JuMP/insRt/src/feasibility_checker.jl:109 [inlined]
  [8] #primal_feasibility_report#113
    @ ~/.julia/packages/JuMP/insRt/src/feasibility_checker.jl:48 [inlined]
  [9] primal_feasibility_report
    @ ~/.julia/packages/JuMP/insRt/src/feasibility_checker.jl:42 [inlined]
 [10] primal_feasibility_report(model::Model; kwargs::@Kwargs{})
    @ JuMP ~/.julia/packages/JuMP/insRt/src/feasibility_checker.jl:81
 [11] primal_feasibility_report
    @ ~/.julia/packages/JuMP/insRt/src/feasibility_checker.jl:68 [inlined]
 [12] complex_test()
    @ Main ./REPL[5]:8
 [13] top-level scope
    @ REPL[6]:1
Some type information was truncated. Use `show(err)` to see complete types.
主要言語
Julia
スター
506
フォーク
103
平均マージ
1日 1時間
マージ済み PR(30日)
9

環境構築

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

はじめの一歩

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

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

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

似ている issue

Julia の issue をもっと見る

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

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