数学やプログラミングの備忘録

数理最適化, Python, C++をメインに紹介するブログ。

MENU

NetworkX - グラフのノードとエッジに色を設定する方法

pythonパッケージであるNetworkXで、グラフのノードとエッジに色を設定する方法を紹介します。 目次 NetworkXでノードとエッジに色を設定するpythonコード ノードの色の設定方法 エッジの色の設定方法 NetworkXで設定できる色の一覧 NetworkXでノードとエッ…

配送計画問題をpythonで最適化する

『容量制約付き配送計画問題(Capacitated Vehicle Routeing Problem, CVRP)を定式化し、pythonのpulpで最適化する方法』を紹介します。 目次 容量制約付き配送計画問題(CVRP)の定式化 容量制約付き配送計画(CVRP)をpythonのpulpで最適化 検証結果と配送ルー…

pulpを使いこなすための備忘録

pulpは、pythonで数理最適化のモデルを記述するためのモジュール です。モデル記述後、そのまま指定した最適化ソフトウェアで解くことができます。デフォルトでは、最適化ソフトウェアとして同梱されているCBCが呼び出されます。pulpとCBCは、COIN-ORにより…

pythonでC++(std::vector)を呼び出す

pythonをC++化すると10倍早くなる と言われています。全てのpythonコードをC++する手もあります(割と大変)が、実際のボトルネックはプログラムの一部分であることが多いです。よって、pythonの部分的なC++化は、「C++化の実装コスト」と「プログラム高速化」…

実践的!Rによる重回帰分析

pythonが流行する以前、Rで統計モデルを求めていた頃を思い出して、今日はRで重回帰分析(線形回帰)のプログラムを書いてみようと思います。実践的な流れとして、 CSV形式のデータを読み込む 読み込んだデータから必要な部分を抽出する 重回帰モデルを求める…

python + CVXOPT: 制約無し凸二次計画問題を解く

今日は、python の CVXOPT と呼ばれるライブラリを使って制約無し凸二次計画問題を解いてみます。 CVXOPT の基本的な使い方も紹介します。 CVXOPT は、多分 CONVEX と OPTIMIZATION の造語でしょうね。 調べた感じだと、線形計画問題や制約付き凸二次計画問…

python: NetworkX によるグラフのパス列挙

今日は、NetworkXを使ったグラフの パスの列挙 を紹介します。 グラフの任意の2つのノードが与えられたとき、その2点を始点終点とするパスを列挙します。厳密には、単純道(simple path)を列挙します。単純道とは、簡単に言えば、同じノードが複数回パスに…