フルオーダーメイド靴」のプレスリリースを行いました。vcoptでRastrigin関数に挑む(実数値GA編)vcopt基礎2019/03/24本記事の内容は2019年5月13日に更新されました。目次やること実行環境importRastrigin関数とは大域解(任意)すべてのパラメータ群を可視化する関数GAで最適化15次元やること実数値GAの難関、Rastrigin関数を最適化します。これができれば、どんな実数値(連続値)の最適化問題も大丈夫でしょう。実行環境WinPython3.6をおすすめしています。Windowssourceforge.netvcoptの使い方についてはチュートリアルをご参照ください。お手軽最適化パッケージ「vcopt」チュートリアル実行環境Windowsマシンで実行する方にはWinPython3.6をおすすめしています。インストール不要で、USBメモリに入れて持ち運ぶこともできます。...vigne-cla.com2019/09/23vcoptの仕様については最新の仕様書をご参照ください。本記事執筆時とは仕様が異なる場合があります。GA)による本格的な組合せ最適化がお手軽にできる無料のPython...vigne-cla.com2019/09/22importまずは、今回使うパッケージをインポートします。今回はmathも使います。vcoptRastrigin関数とは非常に多くの局所解をもつ多峰性の関数です。最適化アルゴリズムのラスボス的存在。解空間の形状は以下をご参考ください。Wikipediaen.wikipedia.orgめっちゃギザギザしてます。便利なことに、何次元にも拡張して使えます。1変数のRastrigin関数(=パラメータが1個(x)のとき)はこちら。xは-5.12~+5.12の範囲を取り得ます。y)のとき)はこちら。y)はそれぞれ-5.12~+5.12の範囲を取り得ます。10*cos(2πy))n変数のRastrigin関数では、同様にパラメータの分だけ足してやれば良いです。n個のパラメータはそれぞれ-5.12~+5.12の範囲を取り得ます。kこれを評価関数とします。大域解すべてのパラメータが0のとき、Rastrigin関数は最低値0を返します。(任意)すべてのパラメータ群を可視化する関数poolを受け取って、次元ごとに集団のパラメータをプロットします。実数値のGA(連続的なGA)はvcopt().rcGA()で実行します。5次元のパラメータでやってみましょう。-0.00026573]9.782879609154804e-05縦軸が次元です。5つのパラメータがすべて0付近となり、最適解は限りなく0に近い値です。vcopt().rcGA()では、計算効率を優先し、ほどほどの精度で計算を止めています。厳密な解(0.0000000000000000000)に近づけたい場合は、続きから最急降下法などで頑張ってください。(2019/03/24現在、そこまでの実装を検討中です)15次元15次元でやってみましょう。0.00126541]0.0010423107729771175多次元、多峰性に対する圧倒的な対応力。完璧に調整されています。実問題において、Rasriginほどの多峰性をもつ問題はめったにありません。どんな問題が来てもvcoptがあれば対応できると思います。Slack、勉強会、Twitterをよろしくお願いします質問やコメントはSlackでお気軽にSlackに参加する勉強会でコードを配布していますconnpassを見るTwitterでも情報を発信していますTwitterをフォローするvcopt基礎vcopt遺伝的アルゴリズムこの記事を書いた人Yasuda博士(理学)。専門は免疫細胞、数理モデル、シミュレーション。米国、中国で研究に携わった。遺伝的アルゴリズム信者。半額弁当の時間帯を知り尽くしている。二重円環よりも三重円環の方が難しいと思います(乱心)。50都市のルート最適化ができれば、都道府県やアメリカの州にも対応できます。巡回というくらいですから、セールスマンは戻ってこなければいけません。vcoptでRastrigin関数に挑む(実数値GA編)2019/03/242019/06/23vcoptはこちらチュートリアル仕様書プレミアムパッケージフォローする質問やコメントはSlackでお気軽にSlackに参加する勉強会でコードを配布していますconnpassを見るTwitterでも情報を発信していますTwitterをフォローするタイトルとURLをコピーしました。