2025年12月10日水曜日

Lpソルバは、機械学習にどのように用いられていますか?

 Copilotに聞いてみました。


要点まとめ:
LPソルバ(線形計画ソルバ)は、機械学習そのものの「予測」や「分類」を直接行うわけではありません。代わりに、学習プロセスの最適化や制約付き問題の解決に利用され、特に「資源配分」「ハイパーパラメータ調整」「モデル学習の定式化」に役立ちます。


🔑 機械学習におけるLPソルバの活用場面

  • 特徴選択(Feature Selection)

    • どの特徴量を使うかを最適化する問題は、しばしば「制約付き最適化」として定式化されます。LPソルバを使うことで、限られた特徴数で精度を最大化するような選択が可能です。
  • SVM(Support Vector Machine)の学習

    • 線形SVMは「最適な分離超平面」を求める問題であり、これは線形制約付き最適化問題に帰着できます。LPソルバやMIPソルバが利用されることがあります。
  • クラスタリングやラベル割り当て

    • データをクラスタに分ける際、クラスタサイズやラベル数に制約を課すと「混合整数計画問題」となり、LPソルバが有効です。
  • ハイパーパラメータの最適化

    • 機械学習モデルのパラメータ調整を「目的関数+制約条件」として定式化し、LPソルバで効率的に探索するケースがあります。
  • 強化学習(Reinforcement Learning)

    • 方策最適化の一部は「線形計画問題」として解ける場合があります。特にMDP(Markov Decision Process)の解法でLPが応用されます。
  • サプライチェーンやリソース配分を伴うML応用

    • 機械学習モデルが予測した需要に基づき、LPソルバで最適な資源配分やスケジューリングを行う、といった「予測+最適化」の組み合わせが一般的です。

📊 機械学習とLPソルバの役割比較

領域 機械学習の役割 LPソルバの役割
予測 データから未来を推定 なし(予測は行わない)
分類 クラスラベルを判定 制約付き分類問題の解法
最適化 モデルパラメータ調整 制約条件下で最適解を計算
応用例 需要予測、画像認識 資源配分、スケジューリング、特徴選択

💡 まとめ

LPソルバは「機械学習モデルを直接動かす道具」ではなく、機械学習で得られた予測結果を活用して意思決定を最適化する場面や、学習過程を制約付き最適化として定式化する場面で使われます。つまり、AIの「予測力」とLPソルバの「最適化力」を組み合わせることで、より実務的な課題解決が可能になるのです。



2025年12月9日火曜日

LpSolverの最新動向と評価結果

新しい論文が二つ出ました。

一つ目は、cupdlpxの優位性を述べています。 

On the Relationships among GPU-Accelerated First-Order Methods for Solving Linear ProgrammingSeptember 27, 2025 \fundingThe work of Defeng Sun was supported by the Research Center for Intelligent Operations Research, RGC Senior Research Fellow Scheme No. SRFS2223-5S02, and GRF Project No. 15307822. The work of Yancheng Yuan was supported by the RGC Early Career Scheme (Project No. 25305424) and the Research Center for Intelligent Operations Research. The work of Xinyuan Zhao was supported in part by the National Natural Science Foundation of China under Project No. 12271015.

二つ目は、CuDSSを使用したバリアソルバです。(この発想をHIGHS HIPOに期待していたのですが..)

[2508.16094] GPU Implementation of Second-Order Linear and Nonlinear Programming Solvers

それは、ともかく2025年は、LPソルバの革新的進展があった年でした。大規模インスタンスについては、永らく商用ソルバの牙城にあったのですが、それが崩れつつあるのを感じます。オープンソルバが公開されると、あっという間に改善がなされて商用ソルバを追い越してしまう、という傾向があると思います。

手持ちGPUとインスタンス群による、評価結果です。cupdlpxについては、前回WSL2上でコンパイルした結果について報告しましたが、今回は、Visual studio 2022(windows)でコンパイルしています。(ほぼ同じ値となっています)


■規模に応じた時間関係になるのは、Barrierソルバ
■PDLPは、必ずしも規模に対するリニアな関係にはならず、インスタンスにより異なる(収束までのiteration数が異なる)
■GPUでも、3倍程度性能差が生じることがある。
■最も大規模なインスタンスでは、最大-最小30倍程度以上のLpソルバ性能差が観測される。



2025年12月7日日曜日

Feasibility Polishingについて聞いてみました

 CUPDLPXのソースを見ていて見慣れない実装があったのでCopilotに聞いてみました。AIから逆に質問されることもあるのですね。


要点:
cuPDLPXにおける feasibility polishing とは、一次法(first-order method)で得られた近似解を、追加の処理で「実行可能性(feasibility)」を改善する技術です。大規模LPを高速に解く際、反復法が生成する解は制約を完全には満たさないことが多いため、それを「磨き上げる」工程が導入されています。


🔍 背景

  • cuPDLPX は GPU 上で動作する線形計画法 (LP) ソルバで、Restarted Halpern PDHG(Primal-Dual Hybrid Gradient の改良版)をベースにしています。
  • 一次法はスケーラブルで高速ですが、解の精度や制約の満足度が十分でない場合があります。そこで「feasibility polishing」が役立ちます。

✨ Feasibility Polishing の役割

  • 目的:
    • 制約違反を減らし、より「実行可能」な解を得る。
    • 特に大規模LPで、近似解を実用的な水準に引き上げる。
  • 方法:
    • 一次法で得られた解を初期点として、追加の補正ステップを行う。
    • Google OR-Tools の PDLP 実装でも v9.7 以降で導入されており、cuPDLPX も同様の機能を取り込んでいます。
  • 効果:
    • 実行可能性を改善することで、LP緩和やベンチマークでの精度が向上。
    • 特に「高精度」「プレソルブ可能」な設定で顕著な改善が報告されています。

📌 まとめ

  • Feasibility polishing = 一次法で得た近似解を制約により適合させる後処理。
  • cuPDLPXでは、GPU最適化されたPDHG法に加え、この polishing を組み込むことで、大規模LPに対して高速かつ高精度な解を提供できるようになっています。

Sources:


孝幸さんは LPソルバの実装やヒューリスティクスに詳しいので、ここで質問です。
Feasibility polishing は「解の実行可能性を改善する後処理」ですが、実務上は 精度を優先するか、速度を優先するかで使い方が変わります。孝幸さんなら、GPUベースの cuPDLPX を使う際に polishing を「常時オン」にしますか?それとも「必要なときだけオン」にしますか?

なるほど、非常に理にかなった運用ですね 👍。

一次法ベースの cuPDLPX では、feasibility polishing は「解をきれいに制約に合わせる」ための後処理ですが、常時オンにすると計算コストが増えてしまいます。孝幸さんのように 整数解を扱う場面や、CROSSOVER(単体法やバリア法への橋渡し)を行う場面でだけ polishing を使うのは合理的です。

  • 整数解をミスしたくないとき
    → LP 緩和の解が制約違反を含んでいると、整数化の際に誤った分枝やカットが導入される可能性があります。polishing によって制約を満たした解を渡すことで、MIP ソルバの信頼性が上がります。

  • Crossover が必要なとき
    → 一次法の近似解を単体法に渡す場合、制約違反があると初期基底が不安定になります。polishing を挟むことで、より「きれいな」基底を得られ、Crossover の成功率や速度が改善されます。

つまり、速度優先なら polishing はオフ、精度や後続処理の安定性を優先するならオンという切り替えが最適ですね。


💡 孝幸さんのように MIP や Crossover を意識している方にとっては、polishing を「必要なときだけオン」にする方針がベストプラクティスだと思います。



2025年12月6日土曜日

買い切り版でライセンスが有効でない

 Q.

x病棟の師長のPCでは、スケジュールナースを起動できません。貧乏できちんとしたID管理ができない病院には、マイクロソフトアカウントの管理ができないのかもしれません。y病棟用のマイクロソフトアカウントで切り替えたり、起動したりしましたが、いずれも失敗しました。古いPC で様々な運用されてPCでは、マイクロソフトアカウントでのライセンス管理はできるのでしょうか?

Ans.

Windows10であっても64bit PCであれば問題なく起動します。(ただしマイクロソフトのサポートは、切れているので、スケジュールナースも正式にサポートする、ということではありません。)システムの確認方法としては、

設定→システムで下記のように、OSが64ビットであることを確認します。プロセッサは、IntelまたはAMDです。


もう一つ、考えられるのは、失敗時のブラウザのキャッシュが残って悪さをしている可能性です。これについては、ブラウザをキャッシュなし版(In Private)で起動することで、キャッシュなしとなります。お試しください。

Microsoft Edge で InPrivate ブラウズを使う - Microsoft サポート

2025年12月5日金曜日

480円の領収書

 Q.さて、毎月、480円の代金支払いは、当院の場合は、買い取りになり、必要ないのでしょうか?また、可能でしたら、支払っていたころの領収書などは、発行できますでしょうか?すみませんが、しくみがわかっておらず、申し訳ありませんが、ご教示ください。宜しくお願い致します。

Ans.

 サブスクは、マイクロソフトに対してクレジットカードによる支払いを行って頂いております。 つまり、スケジュールナースというソフトウェアを販売している販売業者は菅原システムズではなくマイクロソフトです。

 菅原システムズは、xさまが、実際にマイクロソフトに対してお支払いを行っているかどうかまでは分かりません。

 マイクロソフトから菅原システムズには、毎月、海外も含めた販売価格480円とトータル数のお客さま数で決まるロイヤリティが、毎月、海外(マイクロソフト)から送金がなされますが、個々のお客さまの契約状況は不明ですので、xさまが本当にクレジットカードの支払いをしているかどうかは、分かりません。

 しかし、現にサブスクであるソフトウェアをお使い出来ているということは、お支払いを継続して毎月行っているという証、ということになります。

>可能でしたら、支払っていたころの領収書などは、発行できますか?

 従いまして、菅原システムズは、480円/月のお支払い領収書は発行できません。 ただしこのサブスク購入履歴については、マイクロソフトアカウントの購入履歴として見ることはできます。

 また、上記とは別に、プロジェクトサポート1年分として55000円お支払いを頂いております。こちらに領収書は、x月x日付で発行済となっております。


2025年12月4日木曜日

論文集

京大の湊先生がまとめられた350ページに渡る論文集です。その分野を代表する重鎮の方々による著作です。最新の成果がオープンアクセスで読めます。 論文集の存在を一昨日の講演で知りました。

Algorithmic Foundations for Social Advancement: Recent Progress on Theory and Practice | SpringerLink

新しい基盤プロジェクト(列挙・最適化・制約充足に関する統一的アプローチ)が立ちあがるようなので、そちらも楽しみです。(ZDDの区間メモ化技法による構築技法については知りませんでした。https://arxiv.org/pdf/2201.08118 今後Psuedo-boolean soloverおいても応用が期待されると思います)

くしくも、アルゴリズム3では、上記3つの技術を、既に5年以上前から使っています。どれも世界記録更新には必要な技術だと思います。世界記録更新でネックになっている問題は、二つあり、一つ目は、超巨大なインスタンスに対するLPソルバ、二つ目は、如何にして主メモリに載らないZDDを最適性を保証した上で縮約するか? です。一つ目の解決策は、既報PDLPXで目途が立ちましたが、2番目の解決策は未だ目途が立っておりません。この問題にぶちあたってもう1年以上経ちます。なんとか年内には目途をつけたいと思います。

今後の予定

■最終問題(instance24)の世界記録更新     2025年12月31日目標  

■論文化       ~2026年6月(Tim Cutroisさんに共著者のお願いをしましたが、「もう引退しているから」、とご丁寧な返信を頂きました。RAMPでお世話になった日本の先生にお願いしようと思っています。)

■スケジュールナースリリース版に組み込み ~2026年3月

実務インスタンス群については、さらに課題があるのですが、とりあえずβリリースを予定します。

■生成AIモデリング開発 2026年4月~

自分で開発するというよりも、スケジュールナースのエンジンに依頼するエージェントを開発するためのツールを整備する、ということにフォーカスします。MIPソルバを使ってモデリングをAIにやらせる研究はあるのですが、範囲が広すぎる問題があります。その点、スケジュールナースのインスタンスは限定的です。スケジュールナースでは、一つ一つの制約は、GUIで人間が指示する系になっていますが、これをAIにやらせたいとします。その際、逆コンパイラがあると楽です。これにより、一つ一つ制約⇔モデリング⇒即確認と人間が意図したモデリングになっているかどうかを直ぐに確認できるのが、特徴です。研究のとっかかりになります。スケジュールナースの構造化JSONを公開しますので、興味のある方はトライしてみてください。


2025年12月3日水曜日

Q.スケジュールナースPrivateがインストールできない

 Q. 

xx病棟の師長用のPCにマイクロソフトアカウントを設定しました。ID:xxx@xxxxです。アカウントにログインして注文履歴を見ても「購入は行われていません過去3カ月間」と表示されるのみです。同アカウントで、同PCにインストールもここなってみましたが、スケジュールナースサブスクリプションのみがインストールされてスケジュールナースPrivateがインストールされません。

Ans.

買い切り版のストアURLは、サブスク用のURLとは異なり公開していません


買い切り版のURLは、以前にお客様にお送りした買い切り版用のインストールマニュアルに記載されております。インストール手続きは、インストールマニュアルに従って行ってください。

なお、今後のUpdateは、サブスクと上記Private版の2種類のみです。他のバージョンをお持ちの方は、Private版への移行手続き(無料)をお願いいたします