JijModeling 2.6.0 リリースノート#

機能強化#

generate_random_instancefixed_variables キーワード引数追加#

evalに渡す fixed_variabesを指定できるよう、generate_random_instanceにキーワード引数を追加しました。

エラーコードの付与と包括的なエラーガイドの提供#

本リリースから、以下のように全てのエラーメッセージにエラーコードが付与されるようになりました。

import jijmodeling as jm

problem = jm.Problem("Test Problem")
N = problem.Natural("N")
x = problem.BinaryVar("x", shape=(N,))
try:
    problem += x
except Exception as e:
    print(e)
Traceback (most recent last):
    while checking if expression `x` has type `float!`,
        defined at File "/var/folders/mg/mg6st30d18s7pxjjrk6pkxym0000gn/T/ipykernel_38556/3357087315.py", line 7, col 5-17

File "/var/folders/mg/mg6st30d18s7pxjjrk6pkxym0000gn/T/ipykernel_38556/3357087315.py", line 7, col 5-17:

    7  |      problem += x
              ^^^^^^^^^^^^

error[E-TE0004] Could not match actual type `Array[N; binary!]` with expected `float!`

Hint: You can read the description and possible fix at https://jij-inc-jijmodeling.readthedocs-hosted.com/en/stable/error_codes/error/E-TE0004.html

[] 内部の E-TE0004 が個別のエラーメッセージに対応します。

また、各エラーコードごとにありうる理由や対処法をまとめたインデックスが公開併せて公開されています。

個別のコードごとに https://jij-inc-jijmodeling.readthedocs-hosted.com/en/stable/error_codes/error/E-TE0004.html などとしてアクセスすることができます。 一部のターミナルでは、上のようなエラーメッセージ中の [E-TE0004] の部分にハイパーリンクが設定されており、直接開くことができます。 また、エラーの一覧やカテゴリー別の概説についても https://jij-inc-jijmodeling.readthedocs-hosted.com/en/stable/error_codes/index.html から確認できます。

バグ修正#

バグ修正 1:OMMXコンパイル時の min の畳み込みが max になっていた問題の修正#

OMMX へのコンパイル時に、定数上の min() が誤って最大値を計算していたバグを修正しました。

バグ修正 2: count() 関数を含むモデルがシリアライズできなかった問題の修正#

モデル内で CategoryLabel に対する count() 関数を使っていた場合、Protobuf 形式へのシリアライズ時に意図せず実行時エラーとなっていた問題を修正しました。