皆様のおかげで設立1周年を迎えました。

8-1. Pythonのお手軽最適化パッケージ「vcopt」爆誕

能書き

遺伝的アルゴリズム(Genetic Algorithm, GA)は、問題の特性がわからなくてもとりあえず使える最適化手法で、局所解に陥りにくい強みを持っています。Youtubeで遺伝的アルゴリズムを調べると、歩き方を最適化させたりブランコの漕ぎ方を最適化させたり、おもしろい動画が見つかりますね。

GAは「調整が難しい」と言われることがありますが、そういうのをすっ飛ばして、思考停止で最適化ができるようなPythonパッケージ「vcopt」を作りました。読み方は「ぶいしーおぷと」です。可愛がってあげてください。

特徴

  • 高い汎用性(さまざまな最適化問題に対応可能なはず)
  • 高いユーザビリティ(ユーザーが調整すべきハイパーパラメータがない)
  • 高い計算効率(プロによる調整と同等以上の計算効率)

ポイントは赤字の部分です。「GAは調整が難しい」という常識を覆しています。「ハイパーパラメータを調整する必要がないように」調整されています。

3番目については「Pythonで書いてるくせに高速化とか笑わせるな」とは思いますが、評価関数の方が明らかな律速であり、評価回数を最小化するように工夫を凝らしています。

細かな特徴はこんな感じです。

  • 入力に応じて、最適なハイパーパラメータを自動設定
  • 乱数の影響が出にくい安定した世代交代法
  • 各種問題に最適な交叉法
  • TSP問題については独自の高速化手段を採用
  • 動的な終了条件

特に5番目については、「評価値が0.01以下になったら終了」といった静的な終了条件をススメる教材がありますが、実際には最適値が分かっていて最適化する場面なんて存在しません。「よく分かんないけど、とにかくスコアを小さくしてよ」という使い方ができなければ意味がありません。

実行環境

WinPython - Browse /WinPython_3.5/3.5.3.1 at SourceForge.net
Portable Scientific Python 2/3 32/64bit Distribution for Windows

pip install vcopt

まずは、コマンドプロンプトを開き、pipでパッケージをインストールします。WinPythonを使っている方は「WinPython Command Prompt.exe」を起動して実行します。

pip install vcopt

もし古いバージョンをお使いの場合は、アンインストールしてから再インストールしてください。

pip uninstall vcopt
pip install vcopt

以下のように「Successfully」と出れば成功です。最新バージョンは仕様書をご覧ください。

Installing collected packages: vcopt
Successfully installed vcopt-1.5.1

何ができるのか?

現状は、以下の4つの最適化ができます。

  • 2-opt法(巡回セールスマン問題のような順序の局所最適化)
  • TSP-GA(巡回セールスマン問題のような順序の大域最適化)
  • 離散値のGA(離散的なパラメータ群の最適化)
  • セットのGA
  • 連続値のGA(連続的なパラメータ群の最適化)

用意するもの

評価関数さえ用意すれば、最適化のコマンドを1行で実行することができます。また、最適化の途中経過をお手軽に確認する機能があります。

必ず最新の仕様書をご参考ください

タイトルとURLをコピーしました