MyEnigmaスマートフォン用の表示で見るMyEnigmaとあるエンジニアのブログです。Optimization)の紹介をしようと思います。documentationgithub.comJuMPの詳細に関しては、下記の論文を参照ください。Optimizationプログラミング言語Juliaに関しては下記の記事を参照ください。下記が公式ドキュメントに書かれているJuMPの特徴です。使いやすさ自然な数式に似たシンタックスで最適化問題を記述できるため簡単に利用できる。コードがドキュメントとしても機能する。最適化モデリング専用の言語であるAMPLなどと同じ位の速度を有しています。高速に計算できるようになっています。高速に最適化モデリングを実現できます。商用ソルバーまで様々なソルバーを簡単に切り替えて利用することができます。特別な入力を必要とするソルバーもありますがJuMPはその違いを吸収できます。下記のリンクを参照ください。最適化中に動的に最適化問題を変更することが可能であることも、JuMPの特徴です。システムに組み込みやすいJuMPはJuliaで書かれており、ソルバーはバイナリのものを使うように設計されています。大きなソフトウェア(シミュレーションやWebサーバなど)にJuMPのコードを組み込むのも簡単です。Pkg.add("JuMP")とすることでJuMPがインストールされます。続いて、それぞれのソルバーをインストールします。Pkg.build("Mosek")でOKです。LD_LIBRARY_PATH="/Users/hoge/Applications/IBM/ILOG/CPLEX_Studio1271/cplex/bin/x86-64_osx":$LD_LIBRARY_PATH下記のコマンドでインストールします。各ソルバーで様々なパラメータを設定できますが、よく使うものをまとめておきます。print_level=0))最適化計算時間に上限を設定するそれぞれ1時間(3600秒)を上限としてみます。Centerwww.gurobi.comJuMPによるシンプルな線形計画問題の解法サンプルコード下記の記事を参照ください。非線形最適問題は解くことができませんが、JuMPの場合は、非線形最適化のモデリングも可能です。下記の非線形最適化問題を解いてみたいと思います。JuMPを使ったサンプルコードです。初期値を変えると、最適値が異なっていることが実行時の出力から確認できます。下記の記事の方法を使うと、シンプルな最適化コードであればJuliaのコードをコンパイルして高速実行できます。Supportersもしこの記事が参考になり、ブログをサポートしたいと思われた方は、こちらからよろしくお願いします。はてなブログProとあるエンジニアのブログです。Page月別アーカイブスポンサーリンクスターをつけました引用をストックしましたストック一覧を見る閉じる引用するにはまずログインしてくださいログイン閉じる引用をストックできませんでした。再度お試しください閉じる限定公開記事のため引用できません。