ここで難しいという定義は、制約を式に置き換えたときの規模を言います。下記は、スケジュールナースのソルバが示す内部の状況です。
変数 式の数
数独 738 3249
池上2ShiftData 25542 114302
池上3ShiftData1.1 67512 325062
必ずしも、解く時間と上記の規模は比例関係に有る訳ではないのですが、ある程度の相関関係が
知られており、問題の規模でいうと、2桁程度違うことが分かります。皆さんが普段やられている規模は、池上ShiftData2-3位の規模です。ですから、数独より2桁難しいパズルを毎月解いているというのは、あながち間違っていません。
数独は、全部ブランクのときの値です。それは、世界一難しい問題ではないだろう?という疑問があるかもしれませんが、全部ブランクが、一番難しいのです。というのは、論理的には、解けなくて仮定を置かないと解けなくなるからです。数独専用のソルバでやってみると、この事が実感できる筈です。(やった事はありません。)
スケジュールナースでは、このくらいの小さい規模ではマルチスレッドをオフにしているのですが、ブランク数独を0.2sec/個(Core i5 3GHz)位で解き続けられます。はたして、スケジュールナースに勝てる専用ソルバはあるでしょうか?
難しいナーススケジューリング問題に対して、まだ、紙と鉛筆、あるいはExcelで立ち向かおうとする人には、名人の数日と一秒の探索能力の差を思い起こして欲しいな、と思います。
0 件のコメント:
コメントを投稿