NSPではベンチマーク問題が多数ネットに転がっていますので、優位性があるのであれば、そちらで主張すべきと思います。(基準は、Gurobi/Cplexです。)
スケジュールナースが解いた問題をMPSファイルに変換することで、この目的を果たすことが出来ます。まさに自職場で使う状態で、同じMPSファイルでの比較ですので正確な性能比較が可能です。
ちなみに、最近の新しいプロジェクトは、ほぼ、この変則2交代です。
以下、一つづつ見ていきます。最初は、スケジュールナースです。IntelCore5 8500で普通のPCです。
HIGHSは、スケジュールナースAlgorithm2として組み込まれています。Feasibleな解が2時間経ってようやく出てきます。内部のヒューリスティクスソルバが貧弱なのは、明らかなので、後述のLocal-MIPを組み込めば、劇的に改善できるでしょう。(誰かやりませんか?)
最後は、最近注目のLocal-MIPで、Ubuntus22、PCは、Ryzen 5950X上でのデータです。
考察
今回のまとめは、以下のようになりました。
以下、一つづつ見ていきます。最初は、スケジュールナースです。IntelCore5 8500で普通のPCです。
Gurobi結果です。NEOSサーバ上のデータです。Verboseデータを見ていると、内部の動きが分かります。解がいきなり183secで出てきますが、それまでは一切出てきません。しかしながら、LBは、すぐに0が出ているので、LP+CuttingPlaneという古典的数理手法であることは疑う余地がありません。
考察
大体、いつも通りの結果となっています。エラー0に出来ているのは、いつも通りスケジュールナースとGurobiだけです。(Gurobiに対して9倍速と言っていますが、PCが違うのでちょっとアンフェアです。)
驚くべきは、やはりLocal-MIPだと思います。Feasibleな解が出てくる速度は、スケジュールナースを上回り非常に高速です。スケジュールナースを上回るソルバを初めてみました。エラー0には出来ないものの2時間後に目的関数値20に到達しており、メタヒューリスティクスソルバとしては、非常に優秀だと思います。
多くの他の勤務表ソフトの性能は、最先端性能のLocal-MIPを上回る結果は残せないでしょう。また、人間が行ったらHighsにも及ばない結果となるでしょう。
道具はあります。後はどのようにしてそれを使いこなすか? だけです。
参考までに生データです。
0 件のコメント:
コメントを投稿