最適化
Pyomoのインデックスを作成するSetクラスとRangeSetクラス
Pythonの最適化モデリングツールPyomoで、パラメータや変数、制約式のインデックスを作成できるSetクラスとRangeSetクラスについて詳しくまとめました。
CasADiのOptiスタックでcallback関数を使って解の推移を取得する
最適化フレームワークCasADiのOptiスタックでcallback関数を使って、最適化ソルバの各反復における解の推移を取得する方法をまとめました。
CasADiで最適化の変数と制約をベクトル化する
最適化フレームワークCasADiのOptiスタックで、多変数の最適化を簡潔に記述するため、変数と制約をベクトル化する方法をまとめました。
PyomoでMINLPソルバSCIPを利用する
Pythonの最適化モデリングツールPyomoで、混合整数非線形最適化 (MINLP) ソルバSCIPを利用する方法をまとめました。
CVaRとシナリオ法によるポートフォリオ最適化
CVaR (Conditional Value at Risk) によるリスクを評価したポートフォリオ最適化手法について、“Optimization Methods in Finance"を読んで勉強した内容をまとめました。
PythonとCasADiを使ったDirect Multiple Shooting法による最適制御
Pythonと最適化ライブラリCasADiを使って、Direct Multiple Shooting法と呼ばれる手法によって最適制御問題を解きました。
Pyomoで利用できる無償の数理最適化ソルバ
Pythonの最適化モデリングツールPyomoで利用できる無償の数理最適化ソルバと、その導入方法をまとめました。
Pyomoモデルの変数・制約・目的関数の数を取得する
Pythonの最適化モデリングツールであるPyomoで、最適化モデルに定義された変数や制約、目的関数の数を取得するには、nvariables(), nconstraints(), nobjectives()メソッドを用います。
Pyomoモデルの変数・制約の情報を一括で取得する
Pythonの最適化モデリングツールであるPyomoで、modelに定義された変数や制約の情報を一括して取得する方法をまとめました。Pyomoの変数や制約がベクトル化された状態でも対応できます。
PyomoのImplicitly replacing the Component attribute警告について
Pythonの最適化モデリングツールPyomoでImplicitly replacing the Component attributeという警告が表示される場合、Pyomoのモデルに重複した変数名や制約名が定義されています。異なる変数名や制約名にすることで、警告が表示されなくなります。
Julia製の経路最適化ソルバALTROのサンプルスクリプト読解
Julia製の経路最適化ソルバALTROを試してみるため、サンプルスクリプトを読み解いたメモを記事として残します。
Julia製の経路最適化ソルバALTROを導入する
Windows環境にJuliaと経路最適化ソルバALTROを導入する方法を備忘録として残します。
最適制御向け最適化ライブラリOpEnのRust build of TCP interface failedエラーについて
OpEnで発生するRust build of TCP interface failedエラーの解消方法を示します。
PythonとCasADiを使ったDirect Single Shooting法による最適制御
Pythonと最適化ライブラリCasADiを使って、Direct Single Shooting法と呼ばれる手法によって最適制御問題を解きました。対象とした例題は斜方投射(物体を斜め方向に上げる)で、指定の時刻・距離に物体を到達させる最小の初速度を求めます。
Direct Single Shooting法による最適制御
最適制御問題を解く手法の1つである、Direct Single Shooting法のアルゴリズムをまとめた。
最適制御向け最適化ライブラリOpEnに入門する
Rust製の最適制御向け最適化ライブラリOpEnに入門するためチュートリアルの非線形計画問題を解いたので、備忘録を兼ねてまとめた。
Rust製最適化ライブラリOpEnのインストール
Rust製の最適化ライブラリOpEnをWindows 10にインストールし、Pythonから使えるようにする。
滑らかではない凸最適化とForward-backward envelope
Forward-backward envelope (FBE) に関する論文を読んだので、備忘録として残す。
IPOPTのprint levelによる出力の詳細度合い
非線形最適化ソルバIPOPTのprint levelオプションによる、最適化計算の出力の詳細度合いについてまとめた。
CasADiとBONMINで混合整数非線形計画問題を解く
Pythonで自動微分・非線形最適化ライブラリCasADiと最適化ソルバBONMINを使って、混合整数非線形計画問題を解く方法をまとめた。
CasADiとIPOPTで非線形計画問題を解く
Pythonで自動微分・非線形最適化ライブラリCasADiと最適化ソルバIPOPTを使って、制約付き非線形計画問題を解く方法をまとめた。
ナップサック問題と分枝限定法
分枝限定法は、組合せ最適化問題の解を効率的に求める手法である。組合せ最適化問題の1つであるナップサック問題を対象に、分枝限定法のアルゴリズムを示す。
等式制約付き最適化問題とラグランジュの未定乗数法 後編
等式制約付き最適化問題に対する、ラグランジュの未定乗数法についてまとめた。簡単な例題に対して、最適解が満たす幾何学的な意味を示す。
等式制約付き最適化問題とラグランジュの未定乗数法 前編
等式制約付き最適化問題に対する、ラグランジュの未定乗数法についてまとめた。 また、簡単な例題を用いて、最適解が満たす幾何学的な意味を示す。
PyomoでGDP最適化問題を解く
PyomoでGDP (Generalized Disjunctive Programming) と呼ばれる最適化問題を解いた。GDPは論理的な制約を持つ最適化問題である。
PyomoとCouenneで非凸の混合整数非線形計画問題(MINLP)を解く
PyomoというPythonライブラリと、Couenneという最適化ソルバを使って非凸の混合整数非線形計画問題 (MINLP) を解く方法をまとめた。
PyomoとIPOPTで非線形計画問題を解く
最適化モデリングツールPyomoと、最適化ソルバIPOPTを使って非線形計画問題を解く方法をまとめた。
Pyomoで線形計画問題を解く
PyomoというPythonライブラリを使って線形計画問題を解く方法をまとめた。本記事では、Pyomoの導入方法と、問題の記述方法について示す。