2024年9月21日土曜日

LB-UB GAP どうやっても埋められない

 LBとUBのGAPがあるとき、UBは、厳密解とは言い切れません。これよりも良い解が、UB未満、LB以上の間に存在する可能性があるからです。この間の可能性を全て潰せたときに初めて現在のUB解が、厳密解であると言えます。UB解が厳密解である、と言い切るには、LB=UBとなる必要があります。

最終手段は、Branch&Boundです。しかし、これが爆発すると、やはり現実的な時間内に厳密解を求めることができない、ということです。具体的には、計算機を2週間廻しても、行きつかない、行き着きそうな気配がない、という現象になります。

現在、次の4インスタンスだけが、厳密解証明が出来ていません。

n080w814-4-9-9-3-6-0-5

n080w820-4-0-9-1-9-6-2

n100w800-1-7-8-9-1-5-4

n100w812-4-7-9-3-9-2-8

色々策を講じたのですが、最後は、LB-UB GAPがどうしても残っていしまいます。

そこで、計算パワーのさらなる強化を行うことにしました。具体的には、LPソルバのマルチスレッド化です。このテーマは、以前からあったのですが、中々手をつけられずにいました。

幸いにしてINRC2の構造はシンプル(フェーズとシフトが1対1対応でありタスクを含まないグラフ表現変換にすることが可能)なので、さらなる最適化が可能です。


グラフが簡素化されるので、LPソルバをマルチスレッド化した場合、複数のグラフリソースを持てるだけの余裕が生まれます。ロック機構が低減できるために、LPマルチスレッド化の効果を得やすくできるだろう、という筋書きです。結果がどうなるかは分かりませんが、後はひたすら時間をかけるだけ、という戦略に変更しました。出来れば8時間以内に全インスタンスの厳密解を目標にしていたのですが、それには拘らずに、とにかく厳密解が得られた、ということにフォーカスすることにしました。時代が進み、メモリとスレッド数を無制限に増やせば、いずれ8時間以内も可能になるだろう、ということです。

実装を行っています。時間を無制限にして LB-UB GAPを0、厳密解証明が出来るものと期待されます。今月中に実装、確認を行う予定です。

INRC2の厳密解証明が出来た後は、SchedulingBranchmarksの未解決問題2問に取り組む予定です。残念ながら、Highsの内点法ソルバ改善版が未だリリースされません。今月中にリリースされないようならCOPTに依頼する予定です。

0 件のコメント:

コメントを投稿