この論文では、ボックス制約付き多変数多項式コスト関数に対する最適化問題を解決する新しいPythonパッケージ(optipoly)について説明します。
optipolyモジュールは、以下の形式のボックス制約付き多項式最適化問題を解決するために作られています。
min P(x)
x ∈[xmin, xmax] ⊂Rn
ここで、
提案されたアルゴリズムは非常にシンプルで、非常に古くからある単純な原則を取り入れています。それは、現在の解の成分の1つが更新されるたびに、スカラー多項式の最適化を複数回連続して実行することです。成分の最適値が更新され、その結果得られた候補ベクトル全体を使用して、次の成分で新しいスカラー多項式が定義され、それに基づいて次の成分が更新されます。
このアルゴリズムの鍵となる要素は、scipyモジュールとそのinterp1dメソッドを通じて実装される、多数の引数値に対する多項式の評価の効率的な実装です。これにより、列挙の利点を活用しながら、このプロセスに関連する計算コストを大幅に削減できます。
optipolyモジュールのメインクラスはPolクラスです。Polクラスのインスタンスは、多項式の次数と係数を使用して作成できます。Polクラスは、多項式の評価、多項式の特定の成分に関するスカラー多項式の抽出、データフレームや辞書への変換など、さまざまなメソッドを提供します。
solveメソッドは、Polクラスのインスタンスの最小値/最大値または根を見つけるための主要なメソッドです。このメソッドは、初期推定値、決定変数の範囲、試行回数、グリッドポイントの数、最大反復回数、許容誤差、適用するラムダ関数など、多くの入力引数を取ります。
提案されたアルゴリズムのパフォーマンスは、結果の質と必要な計算時間の両方の観点から調べられています。比較対象として、Gekkoモデリングフレームワークを介して呼び出される2つのNLPソルバー(IPOPTとBPOPT)と、有名なscipy Pythonモジュールによって提案されたグローバル最適化指向ソルバー(Dual-Annealing)が含まれています。
結果は、提案されたソルバーが、単一の試行であっても、標準的な非グローバルソルバーとグローバルソルバーの両方よりも、計算時間と見つかった最良のソリューションの質の両方において、優れたパフォーマンスを提供することを示唆しています。
この論文では、多項式コスト関数を最小化するための、optipolyと呼ばれる新しいシンプルなアルゴリズムを組み込んだPythonモジュールが提案されました。アルゴリズムは、python-interp1dの強力な計算機能を利用して、循環的に更新される単一成分に沿って反復的なスカラー最適化を実行します。アルゴリズムは、基礎となるアルゴリズムを実行できるようにするsolveメソッドをエクスポートするPolynomialクラス内に埋め込まれています。
自由に利用できる最先端のアルゴリズムとの比較により、多項式コストに関する限り、提案されたアルゴリズムは、計算時間と見つかった最良のソリューションの質の両方において、標準的な非グローバルソルバーとグローバルソルバーの両方よりも優れていることがわかりました。
対応するPythonモジュールpolyoptは、pipインストールプロセスを通じて間もなく利用できるようになります。
pip install optipoly
論文全体で言及されている使用法の構文に従ってください。
他の言語に翻訳
原文コンテンツから
arxiv.org
深掘り質問