「今日から使える!組合せ最適化 離散問題ガイドブック」サンプルプログラム
内容
書籍で説明している下記のアルゴリズムを説明するためのPythonによるサンプルプログラム(下記参照)です。
アルゴリズム名 | ファイル名 | アルゴリズム名 | ファイル名 |
---|---|---|---|
ダイクストラ法 | 01-Dijkstra.py | フロー増加法 | 02-AugmentingPath.py |
負閉路除去法 | 03-NegativeCycleCancel.py | ハンガリー法 | 04-Hungarian.py |
エドモンズ法 | 05-Edmonds.py | シンプレックス法 | 06-Simplex.py |
内点法 | 07-InteriorPoint.py | 分枝限定法 | 08-BranchBound.py |
動的最適化法 | 09-DynamicOptimization.py | クラスカル法 | 10-Kruskal.py |
ジョンソン法 | 11-Johnson.py | 局所探索法 | 12-LocalSearch.py |
多スタート局所探索法 | 13-MultiStartLocalSearch.py | 列生成法 | 14-ColumnGeneration.py |
実行
コマンドプロンプト画面で、解凍・保存した上記プログラムファイルを保存したディレクトリに入り、「pyhon ファイル名」とタイプします。
たとえばpython 01-Dijkstra.pyとします。
すべてのプログラムは、2通りの計算をして結果を比較しています。
結果が同じであれば「All OK」と出力されます。
「局所探索法」と「多スタート局所探索法」は、近似解法なので、常に厳密解は出ません。ランダムな問題を100間解いた場合の厳密解との一致率を出力します。「列生成法」も近似解法ですが、サンプルでは厳密解が得られています。
動作環境
WindowsのAnaconda(Python2.7およびPython3.4)にて動作確認をしています。
Anacondaおよびpulpのインストール方法
Anacondaを用いれば、Python本体と必要なライブラリを同時にインストールできます。
手順を下記に示します。
すでに別のPythonがインストールしてある場合には、環境変数のPATHからそのパスを削除しておいてください。
- インターネットに接続し、管理者権限のあるユーザで進めてください。
- Anacondaのダウンロード先(下記参照)からご自分のOSのインストーラーをダウンロードしてください。
Python2.7とPython3.4のどちらでも構いませんが、Python3.4をおすすめします。
また、OSが64ビット版では、32ビット版と64ビット版のどちらでも動きますが、64ビット版をおすすめします。
OSが32ビット版では、32ビット版をお選びください。 - ダウンロードしたインストーラー(例:Anaconda3-2.2.0-Windows-x86_64.exe)を 管理者として実行してください。基本的に「Next」を押していけば大丈夫です。
- コマンドプロンプト画面で「conda update conda」を実行してください。
- コマンドプロンプト画面で「conda update networkx numpy」を実行してください。
- コマンドプロンプト画面で「pip install pulp」を実行してください。
ダウンロードリンク
- サンプルプログラム: PythonSample.zip
- Anacondaのダウンロード: http://continuum.io/downloads
免責事項
- 本プログラムは、上記書籍の理解を助ける目的のサンプルプログラムです。
- 完全に正しいことを証明するものではありません。
- 直接販売することを除き、商用でも無料で利用できます。
- 利用において、損害等が発生しても利用者の責任とします。
- License: Python Software Foundation License