LP/MIPじゃない最適化のトピック
以下で扱ったのは線形計画法(LP;linear programming)か混合整数計画法(MIP;Mixed Integer Programming)について。
なぜなら実務における問題解決で主に使うのはだいたいこの範囲だから。たまにそうでない手法が求められる際は他のチームにいる詳しい人に依頼する方が早くで正確だったから。
でも知識としては必要なのと、現職でやるとしたら自分になる(作業は外注するにせよプロマネをする必要はある)ので整理しておこう
非線形計画法
この辺りはさすがに知ってる
近似解法
線形計画・混合整数計画は厳密解法とも呼ばれて、正確な答えを求める一方で時間がかかる。で、実は内部的にはそこそこ良い答えは早く出ていて、途中で計算を止めて答えを出力させると十分な精度だったりするのだが。
一方で近似解法(ヒューリスティック)と呼ばれるものがある。厳密に正確な答えでなくて良いから、実務的に必要な時間内で答えが欲しい時に使う。その中で最もよく聞く・使うのが遺伝的アルゴリズム。個人的には数学的な正しさの方が好きではあるけれど実務的なニーズは大事。。。
強化学習や自己回帰を使うものもあるらしい
一般的な整数最適化問題用の C++ メタヒューリスティック モデラー/ソルバーもあるのだそうで、ここまでは手を出せてない。
動的計画法
数学というよりはアルゴリズム的な感じでイマイチ好んでは使わないけれど、結果的には上記の近似解法に比べて実際に使ったことがあるし、嫌いじゃないので、上記と分けて。
より経済学的な文脈で使われているのは動学マクロ/DSGE周辺の手法とアルゴリズムのまとめにある。
強化学習
ここにあるのは違うよなと思うのだけど、動的計画法がある続きということで、古典的な強化学習理論についてまとめているテキストReinforcement Learning: An Introductionがあったのでメモ
LLM活用
で何とかしようという話題も出てきている。
まだ自分で試したことは無いけれど、プロンプトによってはLLMが数理計画法としての定式化ができるみたいだから、その定式化を受けた処理とか一気通貫させる仕組みを作れば、そのうち入門書に乗ってる程度の簡単な最適化問題なら「AIができる」状態になるんだろうな。
他の情報を見たい方は、目次ページへ
仕切り直しで収集情報の整理から|くすぐったがり|note