Expand description
§otspot — 数理最適化ソルバー
線形計画法(LP)・二次計画法(QP)と混合整数問題(MILP / MIQP)を解く Rust ソルバークレート。 LP は改訂単体法(Revised Simplex)、QP は内点法(IPM / IP-PMM)を核とし、 実行不可能・非有界の判定と完全な主双対情報の出力に対応する。
§主要モジュール
| モジュール | 役割 |
|---|---|
sparse | CSC 形式の疎行列・疎ベクトル演算 |
problem | 問題定義(LpProblem / QpProblem、SolveStatus、SolverResult) |
lp | LP 求解エントリポイント(solve_lp_with) |
qp | 内点法ソルバー(QP、IPM / IP-PMM) |
mip | 混合整数ソルバー(MILP / MIQP、branch-and-bound) |
options | SolverOptions、Tolerance |
§使用例
MPS ファイルから LP 問題を読み込んで解く (via the otspot facade):
ⓘ
use std::path::Path;
use otspot::io::mps;
let prob = mps::parse_mps_file(Path::new("problem.mps")).expect("MPS読み込み失敗");
let result = otspot_core::solve(&prob);
println!("最適値: {:?}", result);Re-exports§
pub use error::SolverError;pub use error::MpsError;pub use options::BranchingStrategy;pub use options::DualPricing;pub use options::GlobalOptimizationConfig;pub use options::LpWarmStart;pub use options::MipBranching;pub use options::MipConfig;pub use options::SolverOptions;pub use options::Tolerance;pub use options::WarmStartBasis;pub use sparse::CscMatrix;pub use problem::SolveRoute;pub use problem::SolveStats;pub use problem::SolveStatus;pub use problem::SolverResult;pub use problem::certificate::BoundGapCertificate;pub use problem::certificate::NotProven;pub use problem::certificate::OptimalCertificate;pub use qp::certificate::prove_optimal;pub use qp::solve_qp;pub use qp::solve_qp_global;pub use qp::solve_qp_with;pub use qp::QpProblem;pub use qp::QpWarmStart;pub use mip::solve_milp;pub use mip::solve_milp_with_stats;pub use mip::solve_miqp;pub use mip::solve_miqp_with_stats;pub use mip::MilpProblem;pub use mip::MipProblemError;pub use mip::MipStats;pub use mip::MiqpProblem;pub use lp::solve_lp_with;
Modules§
- error
- lp
- LP-specific entry point.
- mip
- Mixed-integer programming (MILP / MIQP) via branch-and-bound.
- options
- Solver configuration parameters.
- problem
- LP問題定義モジュール
- qp
- QP ソルバー: min 1/2 x’Qx + c’x s.t. Ax (≤|=|≥) b, lb ≤ x ≤ ub (OSQP/qpOASES 標準の「1/2 あり」規約)
- sparse
- 疎行列・疎ベクトル演算モジュール
- tolerances
- 数値許容値の一元管理モジュール
Functions§
- solve
- Solve an LP with default options.
- solve_
with - Solve an LP with the supplied options. When
options.presolveis set, presolve runs before the simplex.