マガジンのカバー画像

Pythonによる最適化

249
最適化やデータ解析はPythonを使うと瞬時にできるよ,という話です.
運営しているクリエイター

2019年8月の記事一覧

巡回セールスマンに対する量子アニーリング

上のビデオを跳ばし跳ばしみたが,どうやらTSPに対して量子アニーリングを適用するには2次割当問題(QAP)に帰着させて解くようだ.

これは以前(カオス)ニューラルネットでも使われていて,「隣町に行くのにロケットを使おうとしている」と昔解説したのだが,いまだにこんな手法で巧くいくとを信じている人たちがいるのに驚いた.

D-Waveの実機で(現在は同社に所属している)McGeochさん(実験的解析

もっとみる

クラスのpickle化 (続)

以前,クラスをpickleで漬け込むための方法について紹介した.

そこでは,cloudpickleというライブラリを用いた方法を使ったが,Python3.7で導入されたdataclassデコレータクラスを使うと,普通のpickleでいけるようだ.

import dataclasses@dataclasses.dataclassclass Node(): idx: int name:

もっとみる

最適化に対するアプローチ

某B社の人たちが書いた「深層強化学習」というタイトルの本を読んだ.

最適化手法には色々あって場合に応じて使い分ける必要があるが,この会社では以下のように評価をしているようだ.

・メタヒューリスティクス:候補となる近似解を多数生成するので,計算量が膨大になります.

・厳密解法:解を段階的に絞り込んでいくので.解を得るまでに時間がかかります.

・強化学習:その点強化学習はメタヒューリスティクス

もっとみる
第k最短路

第k最短路

第k番目の最短経路を求める問題は,古典的なYenの解法や,よりモダンな高速化など色々研究されているが,networkXではYenの解法だけが実装されているようだ.

使うのは,(k-th shortest pathと銘打っていないので分かりにくいが)shortest_simple_pathsという関数だ.simpleというのは単純パスのことで,同じ点を2回以上通過しないパスのことだ.

格子グラフ

もっとみる