機械学習と深層学習 Python によるシミュレーション aco.py


機械学習と深層学習 Pythonによるシミュレーション の第3章の蟻コロニー最適化法のコード aco.pyについて、 わかりやすく書き換えてみました。

環境

  • Python 3.6.5 Anaconda

コード

書籍にあったコードもそうですが、どれだけ施行を繰り返しても一定値にはなりません。 というのも、必ず一定の割合でランダムに経路を選択するからです。

変数名をわかりやすくしてみたり、関数の引数としていらなさそうなものを除外してみたりしています。 関数walkにはm_stepを渡さなくても計算できるので、引数を最低限のものにしています。 ただしこれは、データ量が多かったり施行回数が多いと足枷になることもあります。 リストを内部で毎回作るよりは、引数で渡したものを変更する方がメモリ効率としてはいいはずなので。 ループも product を使っていますが、 for を階層的に書いた方が速いはずです。