2026年5月23日土曜日

「ソルバを長期間廻せば、最適解がいずれ出る」は、間違い

 よくある誤解で、


■ソルバが高速である

■高精度である

ことは、まったくの別物です。速ければ、最適解が出るのも早いだろう、というのは思いこみです。性能が劣るソルバは、

どんなに時間を掛けても大抵の場合、最適解に到達することはありません

最適解にどれだけ近づけるか?というのは、ソルバ(人間含む)で決まります。その比較データを公開したいのですが、残念なことにスケジュールナース以外は、ベンチマークを公開していないので、比較することが出来ません。別途、A社、B社という形で論文にまとめたいと思っているので、他社データを提供してもよい、という方は、サポートまでご連絡ください。お礼は、スケジュールナース買い切り版(11万円)のプレゼントです。

大学病院関係のユーザさまにもご協力いただきたいと思っているので、お願いに伺うことがあると思いますが、その際はよろしくお願いします。(実際のところ、現在、題意に沿う評価データを有しているのは、ベンダではなくて各社を同一基準で評価した大病院だと思います。)

なぜ、他社を評価したことがないのに上が言い切れるか?というと、答えは探索空間にあります。まともに探索していたのでは、普段普通のインスタンスでさえ宇宙的な時間が必要であることは、前に説明しました。

https://schedule-nurse.blogspot.com/2026/05/blog-post_21.htm

そこで、ソフトウェアがやっていることは、不要な探索空間は探索しないことにする、です。これを枝刈り(pruning)と言っています。ソフトウェアの性能は、このアルゴリズム、枝刈り能力で決まるといっても過言ではありません。

最適化ソルバには、二つのアプローチがあります。

1)SAT的アプローチ(枝刈りは、ハード制約のみに限定される)

2)OR的(数理的線形制約アプローチ、枝刈りは、ソフト制約にも適用可能)

もうひとつ、メタヒューリスティクス的アプローチもあるのですが、厳密解が出ないためここでは除外します。ほとんどのナーススケジューリング問題のソフトウェアは、メタヒューリスティクスのアプローチを取っています。僅かなメーカだけが、2)手法を取っています。




0 件のコメント:

コメントを投稿