« [書評]愛情はふる星のごとく revolution and me | トップページ | [書評]希望格差社会 ... and "Who Is US?" »

2005年6月24日 (金)

複雑ネットワークのお勉強道具 from Python to Pajek

先週末、家からネットがつながらなかった。家では某光ファイバーでそもそもつないでいたのだが、なんでもメタル某というサービスと某フレッツというサービスは、実線配線は同じ会社やっているそうなので、線の引き換え工事をしようとしたらしい。ところが、先週の金曜日に中途半端なまま工事をほったらかしにされてしまったそうな。ちょっと不便だった。

しかし、よいこともあって、つながらなくてもPC自体は使えたので先般からトライしていたプログラミング言語Python上でのネットワークのオブジェクト表現に時間をかけてトライできた。私にとってオブジェクトは初体験だった。二流さん、Pythonをご紹介いただきありがとうございます!私は、スクリプト言語とは、スクリプト(書かれたもの=文字列、リスト)の処理にすぐれているという意味だとばかり思っていたが、どうも違うらしい。

スクリプト言語 @ IT用語辞典

Pythonという言語は、とてもとっつきがよく私のようなBasicしか知らない者でも、なんとかなりそうな感じがある。対話形式なので、トライ&エラーを繰り返しながら動くまとまりを作って、それを関数なり、モジュールなりの形式でまとめていくということが非常に容易だった。特に、Windows用の対話環境のIdleで、前に書いたスクリプトのところで、エンターキーを押すと自動的にそこの部分の編集モードになるということを「発見」してから作業が一気に進んだ。

Pythonは、リスト処理がものすごく強力で、私のような初心者でもほぼ構想したものができた。二流さんの話によるとPythonでは変数全てをポインタで処理しているため、[hideki, "niryuu”, 3.141592, list01]といったリスト形式に実数でも、文字列でも、リストの中のリストでも、同列で扱える。そして、リストの何番目をもってくるとか、ループを組んで順番にリストの要素をいれていくとかの操作が実にエレガントにできる。これらの機能を使って、ノードとリンクをひとつのデータ構造体の中に収納し、ノードとリンクを追加したり、削除したり、特定のノードが含まれるリンクを検索したりできるようなオブジェクトを作ってみた。まだまだ、足りない部分冗長な部分はいっぱいある。

Network Model Pythonソース

ここまでこれたのは、ロボ平さんとの議論とか、二流さんのはげましとか、いろいろな方のお力をいただいたお陰だ。深く感謝したい。今後、これを実装してランダムネットワーク(グラフ)、スモールワールドネットワーク、スケールフリーネットワークを生成するプログラムや、多数決モデルのようなネットワークのダイナミクスをシミュレーションできるようにしたいと勝手に構想している。

あと、Pythonをいじりながら複雑ネットワークをお勉強するためにツールとしていくつか興味深いものがみつかったので、その辺をまとめたい。Python関連でも、いくつかのツールがあった。まあ、多分研究者の方々にはもう常識なのだろいうとは思う。

SimPy : Pythonによるシミュレーション用のパッケージ

お客がお店に並ぶ行列などのシミュレーションから、エージェントモデルのようなシミュレーションまで扱える(らしい)Pythonで作られたパッケージだ。日本語による解説から飛んでいった。

魅力的なPython: 複雑なモデルをシンプルにするSimPy by David Mertzさん

前々から、高安秀樹さんの研究に興味を持っていて、為替の価格形成のシミュレーションをやってみたいとおもっていたのだが、このパッケージのプロセスという概念でできそうに感じている。

ネットワークを分析、表示するプログラムもいくつか見つかった。

Pajek : ネットワーク分析フリーウェア

これは、「それゆけBioinformatics」のsoreyukeさんの解説に詳しい。いや、再読するともうこれ以上私がつけくわえることはなにもないですね(汗)。あ、だって次に紹介するつもりだったGraphvizまで紹介されている!

いや、やはり研究者の方って勉強されているんですね。感動してます。失礼いたしました。

これまた、いまさらの観があるが、フリーウェアで統計パッケージが出ていることにも感動しだ。まあ、これまたsoreyukeさんが使いこなしてらっしゃるようだし、本屋に何冊も関連書籍が並んでいるのだが、自分の備忘のために関連リンクを置く。

  • R:統計パッケージ
  • ダウンロード

  • 初心者用マニュアル
  • Rwiki:(Rについてのwikiサイト)
  • Rで統計:(私が最初にRを発見したサイト)
  • ■追記

    DanさんがRを「ガンダムにはじめて乗ったアムロのごとく使える」と言っているのでR。

    R - 汎用言語としても素敵なんでR

    |

    « [書評]愛情はふる星のごとく revolution and me | トップページ | [書評]希望格差社会 ... and "Who Is US?" »

    コメント

    コメントを書く



    (ウェブ上には掲載しません)




    トラックバック


    この記事へのトラックバック一覧です: 複雑ネットワークのお勉強道具 from Python to Pajek:

    « [書評]愛情はふる星のごとく revolution and me | トップページ | [書評]希望格差社会 ... and "Who Is US?" »