MyEnigmaスマートフォン用の表示で見るMyEnigmaとあるエンジニアのブログです。確率・統計の技術も重要ですが、もう一つよく利用されるのが最適化技術です。パスプランニングや制御などでよく利用されます。最適化ツール(ソルバー)が気軽に利用できるので、ソルバーにデータを入れれば求めている答えを得ることができることも多いです。自分で少し勉強した内容をまとめておきたいと思います。下記で述べる内容は基本的に下記の資料を参考にまとめました。いずれも素晴らしい資料ですので、より詳しく学びたい方は下記の資料を参考にしてもらえると良いと思います。見る最適化とは?最適化は、ある入力に対して、その入力を元に計算される評価関数を最小化(最大化)する入力を計算することです。一般的に下記の定式を利用することが多いようです。それぞれの記号の意味は下記の通りです。xはベクトルで複数の入力値を表しています。foは評価関数(コスト関数)で、foを最小化するxを求めるのが最適化の目的になります。fiは制約条件(constraints)です。入力同士である条件を満たす必要があったりします。fiの制約条件を満たした状態で、foを最小化するxを求めるのが、最適化だということです。上記の問題を解くために様々な技術が研究、開発されています。最適化の応用例この最適化技術は様々な用途で利用されています。様々な投資資産の量を入力とし、リスクとリターンのバランスを最適化するのに利用されています。各投資資産の最大最小値などが設定されるようです。電子回路の設計をする場合も多いようです。制約条件としては、部品のサイズの最大最小値などが利用されます。最適化問題だとすることができます。入力として、モデルパラメータを利用し、データに対する当てはめ誤差を評価関数とすることで、データフィッティングをすることができます。制約条件としては、パラメータの制約条件をそのまま利用することが多いようです。ロボット工学ロボット工学の分野でも最適化技術は広く利用されます。経路を評価するコスト関数を設定することで、ロボットにとって走行しやすいコースを生成する手法などに利用されています。myenigma.hatenablog.comまた制御においても、最適化技術を利用するものがあります。制約条件をロボットのモデルを利用することで、ロボットにとって最適な制御を実施する手法もあります。一般的に上記の最適化問題を汎用的に解くことは非常に難しいです。答えを得ることができないものが多いようです。上記の最適化問題の内、ある特定の形式の問題は、効率的にかつ安定して解くことができます。求めたい入力xに対して、下記のような形で評価関数を設定できる問題のことを指します。Ax=Bの線形方程式で表される場合です。最適値は下記のように解析的に求めることができます。最小二乗法を安定的に解くことができるソフトウェアは沢山あります。制約条件は一般的に無いことが仮定されています。勾配情報を使わないシンプレックス法という方法が使われます。勾配法の場合、最急降下法やmyenigma.hatenablog.com共役勾配法myenigma.hatenablog.comニュートン法myenigma.hatenablog.com順ニュートン法myenigma.hatenablog.comなどが有名です。大域的な最適性を保証してくれないことに注意が必要です。シンプレックス法の場合、Nelder-Mead法という方法が有名です。上記の方法で解くことができるようになる場合もあります。制約条件が等号・不等号式で表せる最適化問題です。安定して最適値を求める方法が確立されています。下記の記事を参照下さい。先程の線形計画法に似てきますが、コスト関数が二次式の形式になっている場合に利用できる最適化技術です。最適化を実現する方法が提案されています。下記の記事を参照下さい。利用できる最適化手法です。実は、先程の最小二乗法や線形計画法も、この条件を満たすため、凸最適化の一つであるといえます。効率的で、精度の高い最適化の技術が提案されています。多くの最適化問題は数式的なトリックを使うことで、この凸最適化に帰着させることができるのです。凸最適化の概要に関しては、下記を参照下さい。既存のツールを使うと協力な技術になります。代表的なものとして、下記が上げられます。Supportersもしこの記事が参考になり、ブログをサポートしたいと思われた方は、こちらからよろしくお願いします。はてなブログProとあるエンジニアのブログです。Page月別アーカイブスポンサーリンクスターをつけました引用をストックしましたストック一覧を見る閉じる引用するにはまずログインしてくださいログイン閉じる引用をストックできませんでした。再度お試しください閉じる限定公開記事のため引用できません。