幾何計画問題(GP)は、次の形式の最適化問題である。

どこ
は同義語であり、
は単項式です。幾何プログラミングの文脈では(標準的な数学とは異なり)、単項式は、
に
定義される

どこ
そして
多項式とは、単項式の和のことである。[ 1 ] [ 2 ]
幾何計画法は凸最適化と密接に関連しています。任意の幾何計画法は変数変換によって凸化できます。[ 2 ]幾何計画法には、IC設計における部品サイズ決定[ 3 ] [ 4 ]、航空機設計[ 5 ] 、統計学におけるロジスティック回帰の最尤推定、制御理論における正線形システムのパラメータ調整[ 6 ]など、数多くの応用例があります。
幾何計画問題は一般に凸最適化問題ではありませんが、変数変換と目的関数および制約関数の変換によって凸問題に変換できます。特に、変数変換を実行すると、
目的関数と制約関数の対数を取ると、関数は
すなわち、ポシノミアルは、凸関数である対数和指数関数に変換され、関数は
つまり、単項式はアフィンになります。したがって、この変換はすべてのGPを同等の凸プログラムに変換します。[ 2 ]実際、このlog-log変換は、log-log凸プログラミング(LLCP)として知られるより大きなクラスの問題を同等の凸形式に変換するために使用できます。 [ 7 ]
ソフトウェア
幾何問題の作成と解決を支援するソフトウェアパッケージがいくつか存在する。
- MOSEKは、幾何最適化問題だけでなく、その他の非線形最適化問題も解くことができる商用ソルバーです。
- CVXOPTは、凸最適化問題のためのオープンソースのソルバーです。
- GPkitは、幾何計画モデルを簡潔に定義および操作するためのPythonパッケージです。このパッケージを使用して作成されたGPモデルの例が多数掲載されています。
- GGPLABは、幾何計画問題(GP)および一般化幾何計画問題(GGP)の仕様記述と解決を行うためのMATLABツールボックスです。
- CVXPYは、GP、GGP、LLCPなどの凸最適化問題を指定および解決するためのPython組み込みモデリング言語です。[ 7 ]
参考文献
- ↑リチャード・J・ダフィン、エルモア・L・ピーターソン、クラレンス・ゼナー(1967)。幾何プログラミング。ジョン・ワイリー・アンド・サンズ。p. 278。ISBN 0-471-22370-0。
- 1 2 3 S. Boyd、SJ Kim、L. Vandenberghe、A. Hassibi。「幾何プログラミングのチュートリアル」。 2019年10月20日取得。
- ↑ M. Hershenson、S. Boyd、T. Lee。「幾何計画法によるCMOSオペアンプの最適設計」。 2019年1月8日取得。
- ↑ S. Boyd、SJ Kim、D. Patil、M. Horowitz。「幾何計画法によるデジタル回路最適化」。 2019年10月20日取得。
- ↑ W. Hoburg および P. Abbeel。「航空機設計最適化のための幾何学的プログラミング」。AIAA Journal 52.11 (2014): 2414-2426。
- ↑小倉正樹、岸田雅子、ラム・ジェームズ (2020)。「最適な正線形システムのための幾何計画法」。IEEE Transactions on Automatic Control。65 ( 11 ) : 4648–4663。arXiv : 1904.12976。Bibcode : 2020ITAC ... 65.4648O。doi : 10.1109 / TAC.2019.2960697。ISSN 0018-9286。S2CID 140222942。
- 1 2 A. Agrawal、S. Diamond、S. Boyd。「規律ある幾何プログラミング」。 2019年1月8日取得。