JijModeling 1.10.1 リリースノート

JijModeling 1.10.1 リリースノート#

他の添え字つき変数を参照する条件文を含む総和・総積の式の評価に失敗する問題を修正しました。以前のバージョン(<= 1.10.0)では、同一総和でスコープに導入された別の添え字に依存する条件を総和の1つのインデックスに適用すると、InterpreterError が発生していました。この問題は解決され、複雑な多インデックス総和内の条件が正しく評価されるようになりました。

import jijmodeling as jm

n = jm.Placeholder("n")
m = jm.Placeholder("m")
x = jm.BinaryVar("x", shape=(n, m))
i = jm.Element("i", belong_to=(0, n))
j = jm.Element("j", belong_to=(0, m))

problem = jm.Problem("problem")
# 以前は、次の総和は失敗していました。なぜなら、同じ総和スコープ内で
# i に依存する j の条件を含んでいるからです。
problem += jm.sum([i, (j, j != i)], x[i, j])

interpreter = jm.Interpreter({"n": 3, "m": 2})
try:
    # 1.10.1 より前は、これは InterpreterError を引き起こしていました。
    # 現在は、正常に評価されます。
    interpreter.eval_problem(problem)
except jm.InterpreterError as e:
    print("InterpreterError:", e)