12.8 両辺が定数で満たされない制約式
添字を伴う制約式を展開したときに,添字が空集合の場合,制約式は定数となります.以下のような例を考えます.
Set S; S = "1 2 3"; Element i(set=S); Parameter a(index=i); IntegerVariable x(type=binary, index=i); Expression e; e = sum(a[i]*x[i], i); e >= 1;
上記の場合,定数 a
は 0 のため e
は 0 となります.したがって,0 >= 1
という必ず満たされない制約式になります.このため以下のようなエラー出力がされます.
(SIMPLE 215) 制約式1 は以下の式に等価です "0 >= 1" (常に満たされない).
定数となる制約式がソフト制約あるいはセミハード制約で,解法が制約充足ソルバ wcsp の場合,該当の制約式は無視されます.具体的には以下のようなモデルを考えます.
Set S; S = "1 2 3"; Element i(set=S); Parameter a(index=i); IntegerVariable x(type=binary, index=i); Expression e; softConstraint(1); e = sum(a[i]*x[i], i); e >= 1; options.method = "wcsp";
このようなモデルの場合,e >= 1
は無視されます.
上に戻る