サブロウ丸

Sabrou-mal サブロウ丸

主にプログラミングと数学

2019-01-01から1年間の記事一覧

Master Mind探索プログラム

MasterMind というボードゲームの 最善手探索用プログラムを公開しました. github.com policyやcode_iterに関数を追加して, master_mind.pyの上部をいじれば改良できますので, アイデアがある方はよろしくお願いします. サンプル 3色 2ピンの場合 python mas…

【Python】pulp, CPLEXで並列数指定

pulpでsolverとしてCPLEXを指定する場合, 並列数はDefault設定では使用可能なthread数を全て使用する設定になっています. 並列数を自分で指定したい場合は, 以下のようにすれば良いです. import pulp class MyCPLEX(pulp.CPLEX): def __init__(self, mpi=Tru…

【Python】PuLP; 多段階最適化

まだ PuLPのdocumentに載っていない(執筆時)関数ですが sequentialSolveという多段階最適化を行う関数が実装されています import pulp from pulp import LpVariable # 問題の宣言 problem = pulp.LpProblem() # 変数の宣言(連続変数, 上限2) x = LpVariable(…

generatorを用いた二分木におけるパスの全列挙; Python

このような番号付けで表現される二分木におけるpathの全列挙を考えます. pathのノード情報をリストでほしい場合 再帰 gist.github.com を実行すると >> [[0, 1, 3], [0, 1, 4], [0, 2, 5], [0, 2, 6]] が出力されます. 深さ優先探索で左側からノードを探索し…

PyTorch autograd で Newton法実装

Qiitaに記事を投稿しました. PyTorchは主にニューラルネットワークの学習に使用されるライブラリですが, autogradはより幅広い使い方ができます. 今回はその機能を用いてNewton法を実装しました. qiita.com

Pulp ソルバー選択 / 並列計算 (python)

Pulpについて Pulp は線形計画問題を解く Python パッケージです. install pip install pulp pulpの処理フロー Pulpについて 使用できるソルバ一覧 CBC CBC > オプション(並列計算など) CBC > 自分でインストールしたCBCソルバーを使用する CBC > 1. 公式サ…

【Python】scipy KD treeの使い方

kd treeは k dimensional treeで, k次元領域の点探索などに用いられるデータ構造です。 kd treeを取り扱うモジュールがscipyにあります。 import scipy.spatial as ss from random import random # データ数 N = 10000 # (x座標, y座標)のデータリスト data …

【Python】フラクショナルカスケーディング実装

Qiitaに記事を投稿しました。 概要 フラクショナルカスケーディングは2次元領域において, 層状領域木を用いて指定した長方形領域に含まれる点を高速に探索する技術です。問い合わせ時間は, はデータ点数, は報告される点の個数です[1]。 フラクショナルカス…

グラフィティカルモデル 定理3.2

グラフィカルモデル (機械学習プロフェッショナルシリーズ) [ 渡辺 有祐 ]価格:3024円(税込、送料無料) (2019/2/7時点)楽天で購入