メモ帳

メモ帳です.

C++ から MySQL のデータベースに接続する

MySQL MySQL はオープンソースで公開されている RDBMS の1つです.色々なアプリケーションで用いられていますが,C++ のプログラムから MySQL に接続する方法を紹介する記事が少なかったので,実際にソースコードを示しながらまとめたいと思います. C++ の…

Boost Graph Library の Compressed Sparse Row を使う

Compressed Sparse Row (CSR) CSR は疎なグラフの効率的な表現方法である.adjacency_list といった他のフォーマットよりもオーバヘッドが小さいという特徴がある. BGL にも CSR 方式に基づいたクラスが用意されているが,adjacency_list と使い方が大きく…

Boost Graph Libraryのグラフから疎行列を生成

疎行列 非零要素数がn2(nはグラフのノード数)よりも著しく少ない行列を疎行列という.要するに,ほとんどの要素が0である行列を指す. グラフの隣接行列はたいてい疎行列となる. n×n行列はn2個の記憶領域を必要とするが,疎行列は非零要素の値と座標のみ…

BGLでプロパティを設定する

boostjp.github.io を参考にさせていただいた.とても分かりやすかった. 任意のプロパティの設定 BGLのグラフ構造(adjacency_listやadjacency_matrix)は,ノードやエッジのプロパティを自分で設定することができる.プロパティはstruct構造体で設定する.…

Boost Graph LibraryとGraphvizでグラフの可視化

グラフの可視化 BGLとGraphvizを用いてグラフを可視化します. Boost Graph Library: write graphviz - 1.61.0 を参考にしました. macの場合,Graphvizのinstallはbrewで簡単に行うことができます(それ以外の方法は調査していません..). brew install gr…

Boost Graph Libraryメモ②

Boost Graph Library (BGL) 1つ前の記事 tomov3.hatenablog.com でBGLについて少し触れた. この記事では隣接行列の形でグラフを表現するadjacency_matrixを紹介する. 上の記事で紹介したadjacency_listクラスは,隣接リストグラフ構造を表現するために使用…

Boost Graph Libraryメモ

Boost Graph Library (BGL) C++でグラフを扱うプログラムを作成するために,BGLの勉強を始める. Table of Contents: Boost Graph Libraryを参考にする. BGLはグラフの構造へどのようにアクセスするかを定めた インタフェースである。グラフ構造はadjacency…

Efficient Ad-hoc Search for Personalized PageRank [SIGMOD'13]

Ad-hocにPersonalized PageRankを計算 グラフはdynamicに変化するため,ad-hocに検索する手法が重要. この論文は,前処理することなくPersonalized PageRankのtop-kを高速かつ正確に計算する. 問題 Given: Graph G, the scaling parameter c, required num…

Efficient Personalized PageRank with Accuracy Assurance [KDD'12]

Personalized PageRank (PPR) の効率的な計算 この論文は,Personalized PageRankの3つの問題を効率的に計算する手法を提案した. QR分解あたりの証明が難しく,あとで再確認する. 問題 Problem1 (Single-node relevance computation) Given: Query node x …

Fast and Exact Top-k Algorithm for PageRank [AAAI'13]

PageRankにおいて高速かつ正確にTop-kを求める 読んだ論文を忘れないうちにまとめておく. この論文は,PageRankのTop-k検索を求める手法 F-Rank を提案した. 問題 Given: Arbitrary graph G and required number of answer nodes k. Find: Top-k nodes wit…

Macの読み上げ機能を使って英語の文書を読む

Mac

Macのデフォルトの読み上げ機能を使ってみたところ,思っていた以上に流暢な音声で読み上げてくれたので記事にまとめてみたいと思います. Macの読み上げ機能 Macにはデフォルトで読み上げ機能が付いています.僕自身は読み上げ機能が付いていること自体はも…

pythonの実行環境を整える

python2とpython3を切り替えるための方法がいろいろ公開されていますが、どれを使えば良いのかわからなかったのでメモ。 OSはMac OS X Yosemite (10.10.5)です。(El Capitanの別マシンでも同様に導入することができました。 ) 参考ページ pyenv および vir…

Gitの基本知識

git

Gitを使い始めて、便利だと思った機能等をメモ。 .gitignore これはGitで管理する必要のないもの、例えば、エディタのバックアップファイル等を登録しておくことで、リポジトリの管理対象外にすることでできる。 *~ //emacs *.swp //vimのバックアップファイ…

Gitを利用する準備

git

ホームディレクトリ下にあるいわゆるdotfilesを管理し、いろいろな端末から使えるようにするためにgitを導入することにした。 まずはgitをインストールする。 Mac OSの場合、MacPorts、Homebrewを用いると楽にインストールすることができる。 MacPortsの場合…