Loading article…
入力のセットを出力値に変換するシステムが数学関数fで記述されている場合、最適化とは、利用可能な選択肢のセットから最良の解を生成および選択することを指します[ 1 ]。これは、許容されるセット内から入力値を体系的に選択し、関数の値を計算し、その過程で見つかった最良の値を記録することによって行われます。多くの現実世界の問題や理論上の問題は、この一般的なフレームワークでモデル化できます。たとえば、入力はモーターの設計パラメータであり、出力は消費電力です。その他の入力は、ビジネス上の選択であり、出力は得られる利益です。または、物理システムの構成を記述し、出力はそのエネルギーです。
最適化問題は次のように表現できます。
通常、Aはユークリッド空間R nの何らかの部分集合であり、多くの場合、 Aの要素が満たさなければならない一連の制約、等式、または不等式によって指定されます。最大化は、関数にマイナス1を掛けることで最小化に帰着させることができます。
最適化ソフトウェアを使用するには、関数fを適切なプログラミング言語で定義し、最適化ソフトウェアにリンクさせる必要があります。最適化ソフトウェアは入力値をAに出力し、 fを実現するソフトウェアモジュールは計算された値f ( x ) を出力します。このようにして、関心の明確な分離が実現されます。異なる最適化ソフトウェアモジュールを同じ関数fで容易にテストしたり、特定の最適化ソフトウェアを異なる関数fに使用したりできます。
以下の表は、最適化機能を幅広く網羅した、特化型または汎用型の優れた最適化ソフトウェアライブラリを比較したものです。
{{cite web}}:欠落または空欄|title=(ヘルプ)