3.6 解ファイルのハード制約,セミハード制約およびソフト制約表示部
アルゴリズムとして制約充足問題ソルバwcspを用いている場合,解ファイルには,最終的に満たすことのできていないハード制約,ソフト制約が出力されます.次が出力サンプルです.
解ファイル出力
%% %% WCSP_PENALTY %% NAME TYPE VALUE BOUND AMOUNT WEIGHT PENALTY F# 246 model.smp:83[6] HARD 0 >= 1 1 F# 432 model.smp:91[13] S.HARD 0 >= 1 1 F# 946 model.smp:119[17,E] S.HARD 7 <= 6 1 F# 7080 model.smp:152[1](u) SOFT 3 <= 2 1 100 100 F# 7586 model.smp:156[7,3] SOFT 5 <= 2 3 10 30 F# 7675 model.smp:156[21,6] SOFT 3 <= 2 1 10 10 F# 7756 model.smp:156[2,10] SOFT 4 <= 2 2 10 20 F# 7780 model.smp:156[1,11] SOFT 3 <= 2 1 10 10 F# 8293 model.smp:162[19,25] SOFT 0 == 5 5 1 5 . . .
上記のように,ハード制約,ソフト制約で満たされていないもののみがハード制約,セミハード制約,ソフト制約の順に表示されます.各行は,制約式の名前,タイプ(ハード:HARD,セミハード:S.HARD,ソフト:SOFT),現在の値と制約,違反量,ウエイト(ソフト制約のみ),ペナルティ量(ソフト制約のみ)を示しています.
この出力例ではハード制約である246番目の制約(model.smp:83[6])が0ですが,本来1以上とならねばならないので,ハード制約違反の違反量が1であることなどがわかります.
上記で上から4つめの制約(model.smp:152[1])の名前の後に(u)とあるのは,この制約が上下限制約であり,違反しているのは制約の上限であることを示しています(2という上限に対して3という値を取っています).上下限制約の下限に違反しているのであれば制約の名前の後に(l)と表示されます.ソフト制約については,違反量に設定されたウエイトを掛けた値である「ペナルティ」があわせて表示されます.制約充足問題ソルバwcspは,ハード制約,セミハード制約の違反量,ソフトペナルティのペナルティの合計値を最小化します.
上に戻る