ふと思ったのだが、first UIP になりうる変数はどれくらいだろう。 industrial problems でのコア(バックボーン?)はとても小さいはずだが、そもそもそれは矛盾変数はどれくらいであると言うことを意味するのだろう? 少ないようでもあり、いや、複数回矛盾を起こすものが少ないだけのような気もする。 1 回の矛盾に対して 1 つの first UIP が決まるのだからそして別に 1 対 1 ではないのだから、 first UIP になる変数の個数は意外に小さいのではなかろうか。
CHB4 でやってみた。
まず解ける問題での時間進化。
タイムアウトする問題
この問題では初期状態が終わると、矛盾もその原因も小集団に停滞していると言うことか。 それはリスタートですら抜け出せないと。
ということで、
では、矛盾回数や選択回数を元に活性度を決めればより速く求解が進むのでは? 解けなかった Timetable-1 に適用してみる。
個数の増加に停滞が見られず、安定して増加し、あっという間に解くことができた。 残念ながら、この変更した変数活性度には一般性はなく、他の問題では役に立たない。 機械的な切り替え戦略もうまくいかないようだ。
num | target | splr-014 | pure core | stagnator |
---|---|---|---|---|
1 | "3/SAT/v360-c1530/002" | 37.271 | ABORT | 34.183 |
2 | "3/SAT/v360-c1530/030" | 295.587 | ABORT | 155.478 |
3 | "3/SAT/v360-c1530/033" | 15.665 | 8.792 | 6.745 |
4 | "3/SAT/v360-c1530/035" | 43.214 | 2.942 | 22.751 |
5 | "3/SAT/v360-c1530/039" | 287.079 | ABORT | ABORT |
6 | "3/SAT/v360-c1530/051" | 78.317 | 210.932 | ABORT |
7 | "3/SAT/v360-c1530/060" | 113.371 | ABORT | 89.741 |
8 | "3/SAT/v360-c1530/073" | 159.886 | 286.783 | 178.010 |
9 | "3/SAT/v360-c1530/087" | 5.606 | 31.730 | 5.519 |
10 | "3/SAT/v360-c1530/093" | 56.257 | 17.749 | 190.154 |
11 | "3/UNS/v360-c1530/001" | 387.568 | ABORT | 390.890 |
12 | "3/UNS/v360-c1530/015" | 175.274 | ABORT | 175.413 |
13 | "3/UNS/v360-c1530/028" | 331.694 | ABORT | 407.681 |
14 | "3/UNS/v360-c1530/029" | ABORT | ABORT | 508.666 |
15 | "3/UNS/v360-c1530/031" | 263.632 | ABORT | 345.386 |
16 | "3/UNS/v360-c1530/053" | 431.730 | ABORT | 303.767 |
17 | "3/UNS/v360-c1530/061" | ABORT | ABORT | ABORT |
18 | "3/UNS/v360-c1530/086" | 195.286 | ABORT | 193.819 |
19 | "3/UNS/v360-c1530/089" | 483.832 | ABORT | 425.792 |
20 | "3/UNS/v360-c1530/096" | 150.258 | ABORT | 179.919 |
2 aborts | 14 aborts | 3 aborts |
この尺度は重要かもしれない。増加率は意味ありげな変化を示している。 増加がゆっくりな部分はハードコアにあたるのではないだろうか。 EMAを二つ用意して増加率の傾向の時間変化を記録してみた。 緑線がこの尺度。赤線は矛盾変数。青線はこの段階では無視してほしい。