JijModeling 1.12.0 リリースノート

JijModeling 1.12.0 リリースノート#

機能強化#

Interpreter の SOS1 制約を検出機能#

最近の OMMX バージョン (Python SDK 1.8.3以降/Rust SDK v2.0.0-rc1以降) では、1型の特殊順序集合制約 (SOS1) ヒントのフィールドが追加されました。 SOS1 は、非負の変数のリスト \(x_1, \ldots, x_n\) に対する制約で、最大で1つの変数のみが非零であることを要求するものです。 今回の変更で、jm.Interpreter が任意の非負変数に対しこの型の制約を検出できるようになりました。より正確には、以下の形式 (およびその代数的に同値な式)で表現された SOS1 制約を検出できます:

  1. バイナリ変数 \(\delta_i\) に対して \(\sum_i \delta_i \leq 1\)、または

  2. \(\sum_i \delta_i \leq 1\)\(x_i \leq M_i \delta_i \ \forall i\) を合わせたもの。 ここで、\(x_i\) は宣言時に指定された境界 \(L_i \leq x_i \leq M_i\) を持つ任意の決定変数であり、\(L_i \geq 0\) は定数です。

この機能により、SOS1 制約をサポートする OMMX アダプター (例: ommx-pyscipopt-adapter) を使用している場合、ソルバーが提供している SOS1 制約向けの機構を利用できるようになりました。