1年半もInstance24に取り組み、なんとか結果を残すことができました。
「史上最大の問題が解けたのだから、期待の究極ソルバは直ぐにリリースされるだろう」、と思っていらっしゃる方がいたら申し訳ありません。
実は、その過程で得たブレークスルーは、一般のプロジェクトには、適用することが出来ません。 技術が特殊な為に一般には使用不能、という意味ではなく、汎用プロジェクトに適用するには、現在の実装をもう少し一般的な形に拡張する必要がある、ということです。開発した技術自体は、実は非常に幅広い応用を持ちます。
今まで、メタヒューリスティクス、MIP、SAT..という具合に、同じナーススケジューリング問題の範疇にありながら、LB-UB GAPが小さい値を得るアルゴリズムは、インスタンスにより違うのが普通でした。
実際、スケジュールナースには、MaxSATソルバのAL1、MIPソルバのAL2、数理ソルバのAL3という具体に複数のソルバが搭載されています。
しかし、今までのこの考えを改めることにしました。今回のブレークスルーは、ナーススケジューリング問題の規模や性質によらず一つのアルゴリズムで済む、つまり標準解法となる、ということです。
そうした、統一的アプローチを集大成し新たなAL3に昇華させるのに、かなりのコードの改修が必要になります。
この成果を論文としても発表し、なおかつ、このソルバを広く提供できるようにしたい、ということが現在の夢です。また、独占的なソルバ使用権とともに、その企業は、また広くライセンスを提供できる(義務をもった)提供形態を考えています。これにより、自然に多くの病院・施設で使用が広がるものと期待されます。
物理限界に挑むナーススケジューリング問題に対する標準解法
https://schedule-nurse.blogspot.com/2026/05/blog-post_24.html
もう一つ、ユーザサイドから見て、今までと違うところがあります。
AL1については、そのまま残しますので、これまでと同じです。しかし、今回の変更(AL3)については、根源的仕様を変えます。それについては、別に機会を設けて説明したいと思います。
以下の工程で実装して行きます。
1)COPT Barrier Solverでのデータ採取
まもなく評価ライセンス期限を迎えるので、それまでできる限りのデータを採取します。
2)INRC2データ採取
以前全インスタンスの最適解を得ましたが、ここ1年半スケジューリングベンチマークに集中しコードが変わってしまい、現在再現できていません。再現させるべくコードを修正します。
3)汎用化実装
市井のプロジェクトを動かすべくRefactoringした実装を行います。今回のbreakthroughを盛り込んだRefactoring、従来コードとの融合を図ります。
4)制約関数の実装
GUI・Pythonで使用中の制約関数の実装(AL1→AL3にポート)
5)MCP
ここまでで、大体11月いっぱいかかります。12月からMCP実装に取り組み、来春位のリリースを目指します。Cursor/Claude等がAIエージェントとして動作し、スケジュールナースGUI(C#)を操作するイメージです。直接にソルバをいじるのではなく、GUIを通じたIFに敢えてするのがポイントです。
有償のAIエージェントが前提となります。当初ローカルLLMを想定していたのですが、まずは、賢いAIで実装すれば、後は従いてくるだろう、と思っています。
実装を最優先とするため、論文化は、来春以降となります。
6)Regression Tests
全てのスケジューリングベンチ過去全てのプロジェクトでの実装テストです。来年1月~を予定します。
6)において、皆様のプロジェクトファイルを使用してテストしたいと思います。開発に協力できる方は、現在・過去のプロジェクトファイルを送付頂けないでしょうか?解なしのプロジェクトファイルでも構いません。多ければ多い程、開発・Debugの助けになります。よろしくお願いいたします。


0 件のコメント:
コメントを投稿