Skip to content

Releases: hika019/Otspot

v0.5.0

08 Jun 17:11

Choose a tag to compare

公開API破壊的変更なし (cargo public-api diff = 変更なし)。LP/QP correctness 修正・性能改善・ベンチ基準値の外部検証補正が主体。

Full Changelog: v0.4.0...v0.5.0

0.4.0

04 Jun 16:46

Choose a tag to compare

[0.4.0] - 2026-06-04

Breaking

  • LpProblemobj_offset 追加、SolverOptions.psd_check_max_n 削除

修正

  • 縮退 bound (±inf,±inf) の誤受理を修正(LP/QP)
  • Infeasible/Unbounded reduced LP の postsolve で偽 solution を生成しないよう修正
  • QP→LP dispatch の変換エラーを NumericalError 化

内部

  • #42 BSF Big-M Phase I を revert(QP/LP 退化のため、v0.5.0 へ)
  • README ベンチ結果を実測値に更新

Full Changelog: v0.3.1...v0.4.0

v0.3.1

28 May 23:59

Choose a tag to compare

追加

  • try_var_name checked variant (try_value と対称)

修正

  • solve_ipm / run_ipm で SolverOptions validate guard (panic → ModelError)
  • greenbea_postsolve_dual_feasibility#[ignore] 化 (bench 並行下 flaky)
  • audit.rs の should_panic 誤検出修正

内部

  • rustdoc broken link 整理 + CI doc job 追加

Full Changelog: v0.3.0...v0.3.1

v0.3.0

28 May 14:09

Choose a tag to compare

追加

  • IpmOptions に dd_ldl / minres_ir / kkt_memory_budget_bytes フィールド
  • SolverOptions に presolve_max_pass / presolve_skip_large_coeff / presolve_phase2 フィールド

破壊的変更

  • SolverResult に opt_cert フィールド追加
  • SolveOutcome / FarkasCertificate / UnboundedRayCertificate / IncompleteReason を削除
  • diagnose() 系 API を削除
  • SolverResult::pfeas / dfeas / gap フィールドを削除 (final_residuals に集約)
  • deprecated solve_qp_with_options を削除
  • 環境変数読み取りを全廃 (IPM_DD_LDL / MINRES_IR / MINRES_ETA / KKT_MEMORY_BUDGET_BYTES / QP_PRESOLVE_MAX_PASS / QP_PRESOLVE_SKIP_LARGE_COEFF / QP_PRESOLVE_PHASE2)

修正

  • B&B finalize_proven が EmptyCol を未マスクで誤降格していたバグを修正

Full Changelog: v0.2.0...v0.3.0

v0.2.0

27 May 17:15

Choose a tag to compare

破壊的変更

  • Optimal は KKT 全条件を検証した証明を伴う場合のみ確定。証明できない解は SuboptimalSolution 等に降格
  • 内部実装を otspot-core / otspot-io / otspot-model に分割(公開 API は維持)

追加

  • 非凸 QP の大域求解 (solve_qp_global) — branch-and-bound + α-BB / McCormick 緩和
  • 証明付き最適性検証 (OptimalCertificate / BoundGapCertificate) — LP / QP / MIP 共通
  • 二次目的の Expression DSL — x * x / x * y で二次項を記述可能
  • Model::try_add_var / try_value — panic しない fallible 版
  • MPS / QPS ストリーミングパーサ(大規模インスタンスのメモリ削減)

修正

  • 全変数が presolve で消去される QP が NumericalError を返していた問題を修正
  • 非凸 QP の branch-and-bound で KKT 残差が許容を超えるケースを修正

削除

  • Python バインディングを削除. 別リポジトリに移管予定.

Full Changelog: v0.1.1...v0.2.0

v0.1.1

23 May 11:35

Choose a tag to compare

  • LP の実行不可判定バグを修正

    • LP / QP の求解安定性・汎用性を改善
    • MILP の MPS 読み込みに対応
    • Python バインディングを追加

    ```toml
    otspot = "0.1.1"
    ```

Full Changelog: v0.1.0...v0.1.1

v0.1.0

23 May 11:38

Choose a tag to compare

v0.1.0

  • LP: Revised Simplex
  • QP: Interior Point (Mehrotra predictor-corrector)
  • MILP / MIQP: branch-and-bound
  • Model API(式 DSL)

```toml
otspot = "0.1.0"
```"