Sun, 25 Dec 2005
ちょっとだけ改造しました。
- 頂点数ははじめから固定(100個)。
- 初期状態はWSのレギュラーグラフ(ただしリンクは向きつきでそれぞれのノードから3本出る)。
- 1ステップごとに、乱数でリンクをひとつ選択して、その終点を別のノードに付け替える。
- 付け替えるノードを選ぶ確率は、そのノードの次数(入ってくるリンクの個数)に比例する。
- ただし自分自身およびすでにリンクのあるノードは除く。
- Java Web Start で動きます。
- initialize ボタンで最初に頂点100個のレギュラーグラフを作る。
- change edge ボタンでリンクの付け替えを50ステップ行う。
- 次数分布は赤で表示する。
Scale Free Simulator 2005/12/25版 です。
今回のポイントはリンクに向きをつけたことです。リンクの付け替えは常に始点を固定して、
終点を変えます。
一回ずつリンクの付け替えをするのはかったるいので、一挙に50回ずつやります。
最初の何回かで少しリンクが集中したノードは、「雪だるま式」にリンクが増えます。
そうなってしまったあとで、リンクが集中していないノードにリンクを増やすのはなかなか
難しそうです。
何回かやっていると次数分布はベキ分布になりそうだが、このシミュレーションでは
シミュレーションの回数を無限に飛ばした時の極限は、
あるひとつのノードにすべてのリンクが集中する状態となるので、
安定性を議論する場合は工夫しないといけません。どうしよう???
posted at 22:18 |
category: /Math/GraphTheory |
固定リンク(スケールフリーネットワークシミュレータ(2))
Sat, 24 Dec 2005
BAシミュレータを少し改造して、以下のようなシミュレーションをしてみることにします。
- 頂点数ははじめから固定。
- 初期状態はWSのレギュラーグラフ。
- 1ステップごとに、乱数でリンクをひとつ選択して、その片方を別のノードに付け替える。
- 付け替えるノードを選ぶ確率は、そのノードの次数に比例する。
- ただし自分自身およびすでにリンクのあるノードは除く。
- Java Web Start で動きます。
- initialize ボタンで最初に頂点100個のレギュラーグラフを作る。
- change edge ボタンでリンクの付け替えを1ステップ行う。
- 次数分布は赤で表示する。
Scale Free Simulator 2005/12/23版 です。
この場合、一度次数が0になったノードは二度とリンクが付くことがありません。
さて、問題は
- シミュレーションを繰り返した時に次数分布は安定するか。
- 安定した場合にその分布はベキ分布になるか。
です。ノードのペアの空間において、リンクがあるかないかの2状態でイジング模型のように
考えることができないだろうか。リンクの付け替えが起こる確率を制御するものとして、
温度のようなものが導入できないだろうか?ネットワークの大域的性質のなかを表す
量の中で、相転移を起こしているものはないだろうか?
posted at 00:07 |
category: /Math/GraphTheory |
固定リンク(スケールフリーネットワークシミュレータ(1))
Fri, 23 Dec 2005
恥ずかしいことに、大きなミスをしていました。新しい頂点を追加する時の
確率の計算(一番肝心なところ!)が間違っていました。直しました。
次数分布がちゃんとベキ分布になっているはず。
Barabasi Albert Simulator 2005/12/24 JUNG 版 です。
使い方は前と同じです。
- Java Web Start で動きます。
- 頂点の個数は制限なし。
- initialize ボタンで最初に頂点5個の完全グラフを作る。
- Add Vertex ボタンでリンクを3個持つ頂点を追加する。
- 次数分布を赤で表示する。
古いバージョンのものは消します。
posted at 22:28 |
category: /Math/GraphTheory |
固定リンク(バラバシ&アルバートのスケールフリーネットワークシミュレータ(3))
高校数学などでよく出てくる問題をシミュレーションするために。
n個の配列をシャッフルして先頭からk個を取り出してもいいんだけど、
無駄が多いかな。1回めはn個の中からひとつ取り出し、2回目はそれを除いた
n-1個の中からひとつ取り出し・・・・ということをk回繰り返してもいいんだけど。
ここで挙げるのは乱数の生成が1回で済む方法。
public int[] generate(int n,int k){
int result[] = new int[k];
double p = Math.random();
int on = k;
int off = n-k;
for(int i=0;i<n;i++){
p *= (on+off);
if(p < on){
result[k-on] = i;
p /= on;
on--;
}else{
p -= on;
p /= off;
off--;
}
}
return result;
}
こんなんでどうでしょう。
posted at 20:15 |
category: /Java/algorithm |
固定リンク(n個の中からk個を取り出す乱数
)
Indoor Laser GPS
というのがあるらしい。要するに、GPSと同じ仕組みで室内での位置計測を行うものらしい。
まあ、それなら G(Global) じゃなくて L(Local) だろうとか突っ込みたくなるが、
従来の磁気によるものや画像処理によるものと比べてどうなのだろうか。
ダウンサイズして GPS 技術の移転による効率性を狙うというのは
間違っていない方向だと思う。
すでにロボットなどにも応用されているみたい。
posted at 13:04 |
category: /VR |
固定リンク(Indoor Laser GPS
)
Mon, 12 Dec 2005
バラバシ&アルバートの
スケールフリーネットワークシミュレータをJUNGで作り直してみました。
Barabasi Albert Simulator 2005/12/12 JUNG 版 です。
- Java Web Start で動きます。
- 頂点の個数は制限なし。
- initialize ボタンで最初に頂点5個の完全グラフを作る。
- Add Vertex ボタンでリンクを3個持つ頂点を追加する。
- 次数分布を赤で表示する。
とにかく頂点をどんどん追加しよう。次数分布がベキ関数になっていくのがわかる。
posted at 00:22 |
category: /Math/GraphTheory |
固定リンク(バラバシ&アルバートのスケールフリーネットワークシミュレータ(2))
Sun, 11 Dec 2005
Wed, 30 Nov 2005
JUNG という Java のグラフ理論のためのフレームワークがあります。
可視化だけでなく計算のための機能も豊富。これを使わない手はありません。
というわけで、スモールワールドシミュレータをJUNGを使って書き換えてみました。
まだ距離の平均値しか求めていませんが、ノードはバネでつながっているように
動き、ノードは階数に比例した半径の円で表すことにしています。
Watts Storogatz Simulator JUNG利用 2005/11/30 版 です。
JUNG は内部で
Apache Jakarta commons-collections、
the CERN Colt scientific library、
Xerces を利用しています。
posted at 23:00 |
category: /Math/GraphTheory |
固定リンク(ワッツ&ストロガッツのスモールワールドシミュレータ(5)
)
Sat, 26 Nov 2005
e-print の cond-mat に
The $-Game
というのがあった。Minority Game と似ているがちょっとルールを変えていて、
利得関数を、自分の行動と次回のゲーム参加者全体の行動が一致するかどうかで
与えている。Minority Game が株式市場で、その時に上がるか下がるかを予想して
価格が決まる(成り行き注文だと考えると、売り注文の数と買い注文の数の少ない方が勝つ)
が、$-Game の場合は、ひとつ先を読む、つまり今日の価格に対して、明日上がるか下がるか
を予想して価格が決まる。
このモデルにより、Minority Game では見られなかったような「買いが買いを呼ぶ」ような
現象を再現することができるようだ。これはシミュレーションで比較してみる価値がありそう。
posted at 01:54 |
category: /physics/MinorityGame |
固定リンク($-Game
)
Mon, 21 Nov 2005
The Engineer Online - Connecting CAVES
によると、Juggler が Grid 対応して CAVE 同士で空間共有できるようになったみたいです。
posted at 01:39 |
category: /VR |
固定リンク(CAVE をつなぐ
)
Sat, 05 Nov 2005
スモールワールドシミュレータの条件を変えてバラバシ&アルバートの
スケールフリーネットワークシミュレータを作ってみました。
Barabasi Albert Simulator 2005/11/05 版 です。
- Java Web Start で動きます。
- 頂点の個数は100個まで計算します。
- m0 で最初に完全グラフを作る頂点の個数を指定します。ボタンを押すと初期状態の完全グラフを作ります。
- 頂点を追加する時につなぐ辺の個数mを指定します。
- ボタンを押すと、反時計回りの点から順に辺を追加していきます。追加するごとに、最大固有値とクラスター度を計算します。
- 次数分布を赤で、固有値の分布を青で表示する。スケールはそれぞれの最大値と最小値で毎回リスケールしている。
- 頂点の個数が100個に達したら終了します。平均距離を計算します。
増田直紀、今野紀雄著「複雑ネットワークの科学」を参考にしました。
それによると次数分布は理論上はインデックスが-3のベキ分布になるという。
posted at 23:00 |
category: /Math/GraphTheory |
固定リンク(バラバシ&アルバートのスケールフリーネットワークシミュレータ(2))
Thu, 03 Nov 2005
隣接行列Aが与えられている時、クラスター度の計算は次のようにする。
Aのn乗の対角成分は、各頂点からnステップ後に元の位置に戻ってくる
パスの場合の数であるから、n=3として右回りと左回りの重複のため
2で割れば、各頂点を含む三角形の個数が求められる。それを利用して、
各頂点から出ているリンクの組の場合の数で割り、各頂点のクラスター生成確率
をもとめ、それを全体で平均を取る。ただし、各頂点から出ているリンクが1本
以下のときは、その頂点のクラスター生成確率は0とした。
(平均に勘定しない方がいいのかな?)
4角形の場合のクラスター度は簡単ではない。なぜなら4ステップで元の位置に戻ってくる
パスとして、abcba や abaca のように途中の点が重複している場合(4角形が
退化している場合)があるからである。一般のn角形の場合を実装しようかと思ったが、
興味があるのはn=3の時がほとんどなので、それで決めうち。
posted at 23:55 |
category: /Math/GraphTheory |
固定リンク(クラスター度の計算
)
クラスター度を計算してみました。また、頂点から出ているリンクの個数の分布を
グラフにプロットしてみました。
Watts Storogatz Simulator 2005/11/03 版 です。
- クラスター度を計算するようにした。
- リンクの個数の分布を赤色でプロットしてみた。
posted at 23:47 |
category: /Math/GraphTheory |
固定リンク(ワッツ&ストロガッツのスモールワールドシミュレータ(4))
Sun, 30 Oct 2005
Journal of Social Structure に
Eigen Analysis of Networks
というレビューがありました。これで NEGOPY というソフトウェアの存在を知って探して
みたんだけど、動かなかった・・・・・。
posted at 19:17 |
category: /Math/GraphTheory |
固定リンク(Eigen Analysis of Networks
)
隣接行列の固有値を小さい順にグラフにプロットしてみました。
Watts Storogatz Simulator 2005/10/29 版 です。使い方は同じです。
kの値を3にすると、初期状態のレギュラーネットワークそれぞれのノードから
前後に合計6個のリンクが出ることになる。
この状態で、確率pを0にして randomize する、すなわちリンクのつけかえをせずに
固有値の分布だけを見ると、小さい値はほぼ等差数列(直線がフィットしそう)で
あるが、上位3割ぐらいはそれから外れていて、直線にもフィットしそうにない。
確率pを0.2位にしてリンクの付替を繰り返すと、距離の平均値がほぼ一定の値に
落ち着くと同時に、固有値の分布もほぼ全体が一つの直線にフィットするようになる。
この現象は確かランダム行列の話と関わっている記憶があるが、今はちょっと
わからないので、宿題。線形から離れるところを定量的に評価できれば、それが
ランダムネスの一つの指標になるだろうし、それと距離平均の関係を調べても
面白そう。
posted at 01:07 |
category: /Math/GraphTheory |
固定リンク(ワッツ&ストロガッツのスモールワールドシミュレータ(3))
Fri, 28 Oct 2005
少し変えました。
Watts Storogatz Simulator 2005/10/28 版 です。例によって Java Web Start で起動します。
- 隣接行列の最大固有値を表示するようにした。
- 最大固有値での固有ベクトルの成分の値(つまりはPagerankもどき)で頂点の色を塗わけてみた。
- JSplitPane を使ってみた。
- スペルミスなどを直した(恥)。
使い方は前と同じです。
posted at 08:36 |
category: /Math/GraphTheory |
固定リンク(ワッツ&ストロガッツのスモールワールドシミュレータ(2))
Sun, 23 Oct 2005
Watts Storogatz Simulator を作ってみました。Java Web Start で起動します。
- ノードの個数(N)は100
- 初期レギュラーネットワークを作るときの、つながっている隣人の距離(k)は1から5までの中から選ぶ
- リセットボタンを押すと、リンクが描かれて(実際はノードの影になって見えない)、全ノード間の平均距離を計算する。
- ノード間のリンクの付替をする確率(p)を入力してランダマイズボタンを押すと、実際にリンクの付替が起こって、全ノード間の平均距離を計算し直す。
リンクの付替をするアルゴリズムは Watts らのやり方とは少し違う(実装上の理由)。ここでは全てのリンクを順に調べて、確率pでリンクをつけかえる。このときリンクの片方のノードは固定して、もう一方のノードを別のノードに付け替える。どちらのノードを固定するか、別のノードをどう選ぶかは、乱数で決める。ランダマイズは何度でも実行できる。リセットボタンをもう一度押すと、レギュラーネットワークに戻る。
距離の計算は孤立ノードが存在すると、距離無限大になってしまうが、リンクの個数の100倍で距離の計算を打ち切っているので、実際はその値になっている。行列計算には
Matrix Toolkits for Java (MTJ) を使った。
- スモールワールド以外のシミュレーションもしたい
- 全ノード間距離以外の指標(スペクトル、PageRank など)も計算したい
- ノードの個数が10000位でも動くように効率化
など、気が向けばやるかも。スペクトルの計算は MTJ についているから実はもうできているんだけど、可視化するのが面倒・・・・・。
posted at 14:00 |
category: /Math/GraphTheory |
固定リンク(ワッツ&ストロガッツのスモールワールドシミュレータ)
グラフ理論の復習。
無向重みなしグラフ(隣接行列が対称で、成分が0または1)を考える。
隣接行列 A の (i,j) 成分は i 番目の頂点から j 番目の頂点への辺があるか
ないかを表している。このとき、行列 A の n 乗の (i,j) 成分は
i 番目の頂点から j 番目の頂点へ n ステップで到達することのできる
場合の数を表している。
これを利用して、A の n 乗の (i,j) 成分がはじめて 0 でない数になる
n を求めると、i 番目の頂点から j 番目の頂点への距離となる。
普通距離はこの様にして計算されるが、有限の距離を持つかの判定が
この方法でできるわけではないので、適当なところで打ち切る
必要がある。その意味で正確な計算方法ではないが、他のよい方法は
知らない。
posted at 09:00 |
category: /Math/GraphTheory |
固定リンク(頂点の間の距離)
Tue, 18 Oct 2005
PageRank の計算も WebLink の隣接行列を考えて、
最大固有値の非負固有ベクトルを求めているのだろう。
Google PageRnak の原論文まで読んだわけではない
(読まなくちゃね)ので、計算方法がどうなっているのかは知らないが、
Perron-Frobenius の方法をつかえば、すべての固有ベクトルまで求めなくてもよいし、
近似が荒くてよければ収束計算を途中で打ち切ればよいので、パフォーマンスも期待できる。
逆に言えば、ネットワーク分析でボナチッチの中心性指標を計算している、
と説明するよりも、このリンク構造の PageRank を計算している、といった方が
今やわかりやすいだろうな。
少し検索してみると、Perron-Frobenius の方法を改良して計算効率を上げようとか、
別のネットワーク指標を作ろうという研究は山ほど出てくる。
MATLAB NEWS のコラム(かなり古いが)に
The World’ s Largest Matrix Computation
というのがある。日本語だと
Google の秘密 - PageRank 徹底解説
が面白い。
posted at 07:25 |
category: /Math/GraphTheory |
固定リンク(PageRank とボナチッチの中心性指標
)
Mon, 17 Oct 2005
以前にも紹介した
Java Numerics
にも挙げられていますが、
JSci
という数学関係のライブラリがありました。
wavelet や MathML 用の DOM もあるみたい。
java.net の中にも
edu-math
というカテゴリーがあるけど、あまりたくさん登録されていない。
上位階層の
edu-developer
からたどってみる方が面白いものがあるかも。
edu-desktoptools
にはちゃんと Project Looking Glass が登録されています。
posted at 07:56 |
category: /Java |
固定リンク(Java による数学・物理関係ライブラリ)
Sun, 16 Oct 2005
ネットワーク分析の分野でボナチッチのの中心性指標という指標が知られている。
無向グラフで辺に重みも多重辺もないとする。つまり隣接行列Aは対称で成分には
0と1しかないとする。
p
0をすべての成分が1のベクトルとして、
pn = A・pn-1 を成分の最大値で割って正規化したもの
として、p
nの極限を考えたものがボナチッチの中心性指標だと定義されている。
(「社会を<モデル>で見る」より)
数学の立場ではこれはいわゆるペロン・フロベニウスの定理で導かれる非負行列
(この場合は隣接行列)の最大固有値の非負固有ベクトルを求めていることに過ぎない。
要するにこれも隣接行列の固有値を考えるという意味で、グラフのスペクトル理論の
範疇にあるといっていい。
posted at 12:37 |
category: /Math/GraphTheory |
固定リンク(ボナチッチの中心性指標
)
Thu, 13 Oct 2005
VR が Learning システムの中でどのように使われているのかを調べていたら、
Collaborative M-learning using Agents and Virtual Reality
というのを発見。M-Learning の M とは mobile の m らしい。
システムとしては、VR のフレームワークである CLEV-R と e-Learning
(画面から推察するとたぶんBlackBoard)のエージェントシステムである
ABITS を融合してモバイル化しようという試みらしい。VR を PDA で見せられても
という気はするものの、適材適所で使うというのはありでしょうね。
posted at 07:07 |
category: /VR/Learning |
固定リンク(M-Learning?
)
Wed, 12 Oct 2005
Permalink が変わってしまってます。リンク切れしてしまったらごめんなさい。
posted at 07:50 |
category: /About |
固定リンク(カテゴリーを階層化してみました)
Mon, 10 Oct 2005
グラフ理論の復習。
線形代数的グラフ理論(竹中 淑子)などを参考に。
グラフの表現のひとつとして、隣接行列を考える。
つまり、頂点が n 個のグラフの場合、n×n行列で、
(i,j)成分 = i番目の頂点からj番目の頂点への辺の個数
とする行列を、隣接行列という。無向グラフの場合は対称行列になる。
有向グラフの場合はそうとは限らない。辺に重みがあるとき、多重辺
(ある始点からある終点までの辺が2つ以上あること)を持たない場合に
(i,j)成分 = i番目の頂点からj番目の頂点への辺の重み。辺がないときは0。
と定義することもある。ここでは重みの値は正であることを仮定する。
(参考:
Weighted Graph (mathworld))
仮定しない場合は、重みが0のときと辺がないときの区別がつけられない、
内積をうまく定義できない、などの弊害が出てしまう(後述)。
このように定義すると、隣接行列からグラフを構成することができる。
グラフから隣接行列を定義するには、頂点の順番の取り方によって
置換行列による相似変換の分だけのあいまいさがある。
とすると、グラフの性質を調べるには隣接行列の置換行列による
相似変換によって変化しない不変量を考えればよい。
隣接行列(またはそこから導かれるラプラシアン行列)の固有値について調べることは、
一般の相似変換によって変化しない不変量を調べていることになるから、
情報は少し落ちている。でも調べやすいので、まずはそこから考えてみる。
posted at 00:35 |
category: /Math/GraphTheory |
固定リンク(隣接行列
)
Sun, 09 Oct 2005
ネットワーク分析に興味が出てきたので、グラフ理論の復習をしながら、
簡単なシミュレータを作っていこうと思う。
中期的なプランとしては(また放ったらかしにならないようにせねば)
- グラフの数値実験を簡単にできるようなシミュレーターを作る
- ワッツのスモールワールドモデルを検証する
- グラフの構造の指標となるものを探す
- その指標に対して相転移が起こっているところを探す
- 相転移をおこすメカニズムを解明する
- エネルギー関数を導入して、力学系としてグラフ構造の変化をとらえる
- 知人ネットワーク、所有ネットワーク、知識ネットワークなどへ応用する
まあ、目標は大きく持っておいた方がいいでしょう。
posted at 18:59 |
category: /Math/GraphTheory |
固定リンク(グラフ理論のシミュレーターを作る)
3D Visual Data Mining
というデンマークの大学がやっているプロジェクトはおもしろい。
データマイニングの可視化。
posted at 08:51 |
category: /VR |
固定リンク(3D Visual Data Mining
)
Sat, 08 Oct 2005
3DChat.org
フリーの3Dワールドサーバ。3Dチャットもできる。
posted at 00:37 |
category: /VR |
固定リンク(Virtual Universe
)
Tue, 04 Oct 2005
Complex network study of Brazilian soccer players
なんて言うのを発見してしまいました。洒落なのか、まじめなのか
よくわかりません。スポーツ番組の蘊蓄みたいな内容ですが、
面白いです。題材選択の勝利だなあ。
通算出場試合数の分布をとると、40試合で相転移が起こり、
通算獲得得点数の分布をとると、10点で相転移が起こるそうです。
ブラジルの選手でも40試合未満しか出られず、ゴールも一桁の
プレーヤーが大多数で、それ以上のプレーヤーとは層が違う
ということが証明されてしまったわけで。
本家 Wikipedia での
Complex network
の項目にも取り上げられているので、やっぱりまじめなのかな。
posted at 00:02 |
category: /physics/Econophysics |
固定リンク(サッカープレーヤーは40試合以上出ることが才能の証明?)
Sat, 01 Oct 2005
さて、sourceforge の
ImageJ Plugiins
に行ってみる。そこの
IJ Plugins: 3D Toolkit
の手順にしたがってインストールする。
具体的には、
- ij-3D-Toolkit の最新バージョンのバイナリ版 zip を落としてくる。
- zip ファイルを展開して、3D IO、3D Toolkit、VTK Filters のフォルダを
ImageJ の plugin の中にコピーする。
- ij-plugins-toolkit.jar をクラスパスに通す。
- vtk.orgからVTKの最新バージョンをダウンロードして、インストールする。
- vtk.jar をクラスパスに通す。
- ImageJ を実行。
VTK ファイルの表示はメニューの Plugins から。File からではないので注意。
マウスでグリグリ視点を変える方法はよくわからない。ImageJ じゃ無理?
VTK を直接 Java で扱えばできるのだろう。次にやって見よう。
posted at 19:05 |
category: /Java |
固定リンク(ImageJ を使って 3D 表示する(2))
ImageJ
というアメリカ国立衛生研究所(NIH)が作っているソフトウェアがある。
Java ベースの画像解析用のソフトウェアで、plugin やマクロで機能を追加できる。
おそらくMRIなどの医療用の画像を表示したり、画像処理したりするのが
目的で開発されたのだろう。これの 3D 表示用の plugin を使ってみる
ことを目標にする。
まずは ImageJ 単体の起動。上に書いた ImageJ のサイトから最新版を
ダウンロード。JDK1.5 の環境では、JRE のバンドル版じゃなくて
JAR File バージョンで大丈夫だった。zip ファイルを展開して
ij.jar と言うファイルができたら、そこで
$ java -jar ij.jar
とすればよい。これで jpeg や gif ファイルを開いて簡単なフィルタを
かけたりすることができる。Java で書かれているが、それほど遅くはない。
posted at 16:34 |
category: /Java |
固定リンク(ImageJ を使って 3D 表示する(1))
Wed, 28 Sep 2005
The Minority Game : an introductory guide (Esteban Moro) に載っている
Volatility を α=2m/Ns の関数として表わせることを検証する
シミュレーションをやってみる。
、
やっていることは、メモリ長(m)とエージェントが持つ戦略の数(s)を与えて、エージェント
の数を51から451まで50刻みで増やしながらVolatilityを計算して両logで
プロットするというもの。x軸は0.001から10まで、y軸は0.1から10まで。
いくつかまだ不十分なところがある。
- time average の取り方が不十分。本来は長時間経過して安定したところで取らなくてはいけないが、ここでは安定するまで3000回流して、3001回から4000回までの1000回の平均にしている。
- 戦略の出力ベクトルに関する平均の取り方が不十分。本来ならmとsを固定して、何度もシミュレーションした結果の平均をプロットすべきだが、生データをプロットしている。
それでもなんとなく臨界点で相転移している様子は見えている。もうちょっとやらなくちゃ。
posted at 06:55 |
category: /physics/MinorityGame |
固定リンク(Volatility SImulation
)
Sun, 25 Sep 2005
ECONOPHYSICSは新着論文がコメントつきで紹介されている。
すごく重宝。Minority Game 以外にも Scale-free Network や
Power-law Distribution の論文もたくさん。
posted at 23:46 |
category: /physics/MinorityGame |
固定リンク(マイノリティゲーム関係の論文を紹介してくれるサイト)
戦略を決定するための履歴の長さ(メモリ長)が2,3,4のエージェントが
それぞれ1001人参加しているような状況でのマイノリティゲームを
シミュレーションしてみる。勝利数の分布において、M=2,3,4 に従って
青色、水色、緑色を割り当ててある。100万回繰り返した場合の結果は
緑色(メモリ長が一番長いもの)が順位の中央付近を占め、青色は順位の
両端を占めた。エージェント内の戦略の相関係数が関係しているのかもしれない。
、
posted at 14:08 |
category: /physics/MinorityGame |
固定リンク(メモリ長の異なるエージェントが参加している場合のマイノリティゲーム
)
Fri, 23 Sep 2005
ローカルな環境で思いつきを記録するツールをいくつか探してみた。
ローカルに wiki を立ち上げて、ブラウザで書くと言うのもいいのですが、
わざわざサーバを立ち上げたりするのは面倒だし、後から別のものに
乗り換えるときのデータの移行も厄介だ。
ハイパーカードのような WWW 以外のハイパーテキストの実装で
いいものがあればと思っていたら、emacs 上で実現している
ものがありました。それが howm。
などを見ながらインストール。TODO や予定表の管理の仕方も合理的。
TODO はインフレで破綻するから重要度と言う概念をやめているのは
いいアイディア。当分御世話になりそう。
posted at 06:35 |
category: /software |
固定リンク(howm で自分メモ)
Software と言うカテゴリを作って、そこで使ってみたソフトウェアの
レビューや設定の記録などを書くことにします。
posted at 05:38 |
category: /software |
固定リンク(ソフトウェアレビュー)
Mon, 19 Sep 2005
を作ってみたので、情報処理学会誌に出ていた各エージェントが次の手を決めるために使う
履歴の長さ(メモリーの長さ、いわゆるm値)による勝利数の分布の違いを検証してみる。
m=3のときにランダムグループ選択よりも平均が大きくなっていて、m=5のときはm=3
よりも順位による勝利数の変化(つまりグラフの傾き)が大きい、ということが書いてある。
同じように横軸を順位、縦軸を勝利回数(相対度数で0.33から0.57まで。0.05の倍数の
ときには横線を描いている)とし(両方とも線形。対数ではない)ランダムグループ選択
(戦略を持たず、毎回次の一手を確率0.5でランダムに決める)と、メモリー長2と5
(それぞれ戦略は内部に3つ持つ)のエージェントで比較してみた。
プログラムは例によって Java Web Start で起動します。
、
情報処理学会誌ではm=3から議論していたが、不思議なのはm=2のとき
最下位に近いエージェントが、大負けしていること。しかも一度負け始めると、
どんどん負けが込みだして、奈落の底に落ちていくような感じに見える(おそろしやー)。
m=3以上ではこのようなことはないみたいなのだが。なぜだろう??
posted at 16:39 |
category: /physics/MinorityGame |
固定リンク(マイノリティゲームの簡単なシミュレータ
)
Thu, 15 Sep 2005
Wed, 14 Sep 2005
Mon, 12 Sep 2005
Sun, 11 Sep 2005
最初の習作として、カルマン渦の数値計算および視覚化のプログラムを作ってみる。
例によって Java Web Start を使っている。GUI 作るのが面倒だったので、
いきなりシミュレーションが始まります。
円柱のまわりの流れからカルマン渦の系列ができる。遅いのは最適化していないから。
計算の簡単のために流体は非圧縮としている。ベタに偏微分方程式を差分法で計算
している。
同じ方程式を有限要素法、格子気体法などでシミュレーションして比較できるように
してみようかな。
posted at 14:25 |
category: /physics/CFD |
固定リンク(カルマン渦)
Sat, 03 Sep 2005
武田薬品工業元会長の森田氏の回顧録。
著者は研究者出身で社長から会長になったひとで、回顧録と言っても
研究のエピソードがほとんどを占めており、経営者と言うよりも研究者の
エッセイに近い。
残念ながら私の有機化学の知識は大学教養課程で止まっているので、
薬の研究の専門的な構造解析や合成方法の話は理解できているわけではないが、
研究の雰囲気や、研究にまつわる苦労、挫折、達成などはわかる。
企業の中の研究所の雰囲気と言うのは、なかなか外からはわからないことが多い
が(企業秘密なども多いし)、この本では著者の体験をもとに、成功、失敗、
競争、交流、人事、経営など様々なエピソードを紹介してくれているので、
雰囲気を知るにはいい。最終的に経営者としてトップに上り詰めた人らしく、
研究者でいながらも、蛸壷化することなく広い視野でものを考えられていて、
どのように人を育てて行くか、研究所と言う組織をどのように活かして
いくべきかと言うことを、常に念頭においていると言うのがわかって
大変勉強になる。
巻末に「聞きっ放し、言いっ放しを避けるため」自らの発言を時系列で
並べているところなど、普通の経営者じゃできないですね。信念を持って
やってきたことの証です。薬品業界に興味のある人だけでなく、企業の中で
研究開発に携わる人にお薦めの本です。
posted at 06:46 |
category: /book |
固定リンク(「新薬はこうして生まれる」森田桂(日本経済新聞社))
Wed, 31 Aug 2005
失敗学の権威ともいうべき畑村先生の有名な一冊。
今ごろになって読んでいるのか、なんて言うツッコミは甘んじて受けます。
共感するところ、勉強になるところ、非常に多し。
決して精神論ではなく、失敗を冷静に受けとめて、そこから
うまく定式化する方法、視野を広く持つことの重要性、
そして組織論、文化論まで。Failure Management のノウハウがつまっている。
成功から学ぼうとするのが、ともすればマニュアル主義、思考停止に陥りがちな
ことを指摘して、「頭の三割はいつも冷静に」などの心構えを説くものから
「組織相手にはときに開き直るのも大事」などの行動指針を与えたりと、
失敗に対する様々な対処法を提案している。
と、いわゆる「失敗」にフォーカスを当てて読んでもよいが、
この本のあちこちにある挿絵の図のうまさに驚嘆した。
一つ一つの絵はいわゆるポンチ絵で、誰でも書けそうなものではあるが、
具体性と抽象性のバランスがよく、図には余計なものをそぎおとして
非常にシンプルな絵になっている。授業や講演などで何度も何度も同じような図を
書いたのだと思うが、概念としてすっと頭に入ってくる絵を書けるのは
訓練や試行錯誤があってこそだと思う。
posted at 23:43 |
category: /book |
固定リンク(「失敗を生かす仕事術」畑村洋太郎(講談社現代新書))
Sun, 28 Aug 2005
ネット上のCFDの情報を探してみる。まずは大学や研究所の
講義ノートや講演集など。
- 計算流体力学研究
- 理化学研究所
- 連続体力学講義ノート
- 京都大学
- 差分法による数値流体力学
- 国立天文台
- Tso-Ren's Fluid Dynamics
- Cornell 大学
いい時代になりました。勉強します。
posted at 22:45 |
category: /physics/CFD |
固定リンク(CFD の講義ノート)
ACECAD と言うところがつくっている
DigiMemo
というおもちゃ(!)を買ってしまいました。
いわゆるタブレット方式のデジタルノートパッドと言うやつで、
特徴は
- タブレット方式
- 紙やノートを挟んで特製のボールペンで書く
- 電池駆動
- データは内蔵メモリかコンパクトフラッシュに保存可能
- 用紙はA5サイズ
- PCヘのデータ取込はUSB
- データは独自形式だがPC上で変換可能
というもの。PCレスで使えるのがいいかなと思った。
でも慣れるまでうまく線が書けない。離したつもりが
つながってしまったり。ちょっと訓練は必要かも。
1、2時間遊んでいたらだんだんコツをつかんできた。
筆圧をちょっと強めに書くとよいみたい。
親切な人が
Converter for DigiMemo A501
と言うものを作ってくれて、独自形式のファイルを Postscript や PDF に変換できる。
便利です。
posted at 22:19 |
category: /Diary |
固定リンク(DigiMemo 買った)
Fri, 26 Aug 2005
岩波新書でも何冊も出ている精神科医の大平健さんの2000年に出た本。
いつもの大平節で雑誌の恋愛相談のような感じで読める。
題名には「純愛」とあるが、内容は恋愛関係で精神に異常を来たした
患者とのカウンセリングのケース集。それぞれのケースは非常に
バラエティ豊かで、一つの傾向を出すと言うよりも、精神科医の立場では
どのようなことに注目して話を聞いているのか、ということに
主眼がおかれた、淡々とした記述になっている。
それが余計な感情が入り込まずに読める一因だろうか。
著者もあと書きで「愛」をテーマにすることの難しさを述べているとおり、
確かにテーマが発散気味ではあるが、いわゆる恋の病として単純化されていた
ことを、精神病を発病してしまった症例という極端な例を通じてではあるが
分析してあるのはとても面白かった。
posted at 10:54 |
category: /book |
固定リンク(「純愛時代」大平健(岩波新書))
Tue, 23 Aug 2005
いわゆる数値流体力学(CFD)に関する情報と、その応用分野を
追いかけてみようと思う。とりあえず
ファーツィガー/ぺリッチの「コンピュータによる流体力学」
を読みはじめた。興味があるのは
- 乱流
- 格子気体法、格子ボルツマン法
- 計算市場動力学
などなど。
posted at 09:28 |
category: /physics/CFD |
固定リンク(CFD 情報)
Sun, 21 Aug 2005
リー群上のハミルトン系のお勉強。
論文もチェックしておかなければ。
ちゃんとした論文は大学の図書館に行かないと手に入らないのが痛い。
プレプリントや著者が自分のサイトにおいてくれているものの中から
参考になるものを探そう。
-
The Motion of the n Dimensional Free Rigid Body
-
修論かな?Body and Space Coordinate について一通りまとまっている。
-
Lie Groups And Mechanics
-
内容は重複する。diffeomorphism のなす群に対して考察している。
-
Accurate and efficient simulations of rigid body rotations
-
剛体の数値計算エンジンをいろいろなアルゴリズムで実装して速度などを
比較している。とても参考になる。
まだまだ調べきれていない。続く。
posted at 07:38 |
category: /Math/symplectic |
固定リンク(論文チェック)
Sat, 20 Aug 2005
最近は量子コンピュータに関する本も増えて来て、
ブルーバックスにも一冊刊行された。
著者は(うーん、ほぼ同世代)量子コンピュータの実現
が専門の日本の研究者。そのため後半の光子を用いた量子コンピュータの
話などはかなり深いところまで紹介してくれている。
前半3章まではイントロと量子力学の復習。4章で量子ビット、量子ゲートなど
量子コンピュータの基本的な構成要素についての説明。
私が理論的なところに興味があるせいかも知れないけれど、
5章がこの本のキモだろう。ドイチュージョサの量子アルゴリズムや
ショアのアルゴリズムをブルーバックスにあるまじき(?)詳しさで解説している。
ブラやケットの記号にクラクラするかもしれないが、ここのアルゴリズムを
おさえておくのは重要。
6章から先は著者の専門なので、最先端に近い話がいろいろ出てくる。
NMRによる量子計算のアイディア、超伝導量子ビットなどなど。
ただどうしても詳しい話は省略されることが多い。まあ、さらなる専門書を
読めと言うことでしょう。
posted at 20:48 |
category: /book |
固定リンク(量子コンピュータ(竹内繁樹)講談社ブルーバックス)
Sun, 14 Aug 2005
(まだまだ夏休み積ん読解消期間中です。)
チャットに対するネガティブなイメージを取り去りつつも、
問題点を冷静に提示しようとした本なのだろうが、それが
うまく表現できているかはちょっと疑問。前半部分は
チャットとは何かを歴史的に振り返ったり、現状を紹介していたりする
ところで、わかっている人は流してよい。後半部分に著者自身の
チャット体験を交えた感想とケーススタディが紹介してある。
オンラインで人格が変わると言う、オンラインペルソナの存在を
紹介し、その原因分析(「ほんとうの自分」を演じる、など)や、
チャットが恋愛感情が発生し易い土壌にあると言った分析は、
なかなか面白いが、事例や体験談になると、いわゆる「どこかで聞いた話」
っぽいエピソードばかり。ネットの外の住民なら読む価値はあるだろうが、
ネットの中の住民に取っては、もっとつっこんだ分析や、現実的な処方箋
がないと面白くないかも知れない。
posted at 08:16 |
category: /book |
固定リンク(チャット恋愛学(室田尚子)PHP新書)
Thu, 11 Aug 2005
いわずと知れた将棋界最強の棋士、羽生善治の著書。
棋士が対局中に手を読むときに、どういうことを考えているのか、
何を判断基準としているのか、コンピュータで研究していると
強くなるのか、など素朴な疑問に答えてくれている。
中でも特に印象的だったのは、データに基づいて事前に研究をしていても、
あえてそこから外れるような手を打つ、ということ。選択肢を敢えて増やして
相手が混乱することを待つような戦い方に、本当に実力のある横綱相撲
のような強さの源泉を見た気がする。もうひとつ印象的だったのは、
集中するときに、徐々に段階をふんで深い集中に入って行く
ということ。急に集中した状態に入れるわけではない、と考えてみたら
当り前のことだが、一般的には逆に集中力のある人には「集中する」
スイッチがあるように思われていることが多いと思うが、実際には
そうではないということがわかって面白かった。
「才能とは継続できる情熱である」と。まったくもってその通り。
一流のプロスポーツ選手からも同じような言葉を聞く。
ただ凡人にはその境地に達するのは難しいですね。
posted at 08:33 |
category: /book |
固定リンク(決断力(羽生善治)角川oneテーマ21)
Sun, 07 Aug 2005
続編も刊行されているらしいので、今さらの感もあるのだが、積ん読解消のため
一気に読んでみる。いや、一気に読まされてしまいました。面白いです。
幻肢や脳の損傷などのために発生する不思議な症例を、異常なものや例外として
みなすのではなく、そこから脳のしくみの深いところにまで考察が及ぶのは
さすがである。幻肢、半側無視、盲点などの変わった症状のことをこの分野に
馴染のないものにもわかるように詳しく解説されており、そこから脳の現象として
どういうことが起こっているのかを、話しことばで説明されているので、
素人でも難なく話の筋を追えるだろう。
話はさらに、宗教的恍惚や、モーツアルト、ラマヌジャンのような天才のような
一種の伝説として語られていたことに対しても、脳科学の分野からの説明を
しようと試みる。もちろん完全な説明ができるわけではないので、研究の現状を
説明するにとどまるのだが、こちらが想像以上に進んでいる分野もあり、
わくわくさせられる。そのうち解剖学的やホルモン治療で数学や芸術などの潜在
能力を開花させることができたり、反社会的な異常行動と快感が結び付いて
しまったような患者に対して医学的な治療ができたりするかも。ちょっとこわいかも
しれないけど。
そして最終章には「クオリア」問題を取り上げている。最近は茂木健一郎さんが
盛んに取り上げているので、少しはメジャーになったかも知れないが、著者はここで
クオリアの機能的な特徴を以下のように挙げている。
- 入力側の変更不能性
- 情報をバッファに保持
- 出力側の融通性
脳の機能を計算機でシミュレートする方法はニューラルネットなど色々なものが
提唱されているが、クオリアを考えることで次世代のものを提案できたら
面白そうである。哲学の領域であった認知や意識の問題が、生物科学、情報科学の
分野にかなり近付いてきているのだと言うことが実感できた本。面白かった!
posted at 10:14 |
category: /book |
固定リンク(脳の中の幽霊(V.S.ラマチャンドラン、サンドラ・ブレイクスリー)角川書店)
Fri, 05 Aug 2005
「帰ってきた」がついていない方も大分前に読んだ記憶があるので、
期待半分手に取ったが、はずれだったかもしれない。前書への批判に
対する反駁と、その後に出た小倉千加子や酒井順子の本などへの
意見を述べるにとどまり、目新しい意見、奇抜な意見はない。
これなら少し前に出た「オニババ化する女たち」の方が
センセーショナルで面白かった。
スポーツマンがもてるとか、恋愛と結婚がセットになって結果として
晩婚化が進んだとか、出会い系サイトの実態とか、他のところでも十分
語りつくされたようなことを題材にしているのは残念。
ああ、逆にこの本に書いてあることが当り前で不思議ではないと思えると
言うことが「もてない男」の証明だったりするのかも。複雑。
とはいっても、著者は自分の恥をさらけだしてネタを提供してくれているのだから
文句は言えまい。期待したのはこの様な独白形式のエッセイではなく、
他とは異なる切り口による「もてない男」の分析をして欲しかった。
その結果得られる処方箋には、今までとは違うアプローチの方法があり、
晩婚化、少子化と言った社会全体の問題をも解決する糸口になるのでは、
と思ったのだが、期待しすぎました。
ある意味の自虐エッセイとして、あと書きに著者の求婚条件まで書いてしまっている
いさぎのよさに脱帽します。
posted at 00:21 |
category: /book |
固定リンク(帰ってきたもてない男(小谷野敦)ちくま新書)
Thu, 04 Aug 2005
最近乱読モードのスイッチがオンになったみたいで、
気になる本を手当たり次第読破中。といってもファンタジー小説
にまで手を出すとは。何年ぶりだろう・・・。あらすじを書いても
仕方ないので、読後感でも書く。
「天国」という小説の舞台としてはありきたりで、設定もそれほど
変わったところもなく、強いて言えば文体や登場人物の性格描写が
今風、というぐらい。筋も大体読めてしまう。と言っても否定的なのではなく、
読者の期待にうまく応えながらストーリーが展開して行くので、
決していやな感じがしない。かつて本好きの少年だったころの気持ちを
思い出させてくれる。たまにはこんな本もいいかな。シリーズ化されていて、
2004年には映画にもなったらしい。
posted at 08:01 |
category: /book |
固定リンク(天国の本屋(松久淳+田中渉)新潮文庫)
各種統計情報(平成16年度学校教員統計調査中間報告)-文部科学省
というのが先日発表されたらしい。
関心があるのは、大学と産業界との人材移動、なのでそのデータをざっと見てみる。
採用前の状況別 採用教員数(大学等)
を見ると、新規学卒者が1571人、官公庁民間企業などからの転籍が8617人、
といっても8617人のうちその他が4454人だから、ポスドクなどはここに
含まれるのかもしれない。
離職の理由別 離職教員数(大学等)
には、定年で離職する人が3193人、転職する人が4171人とある。意外とお仲間は
いるもんです。上の調査での新規学卒以外の採用者のその他を除いた部分も4000人台
半ばなので、産学の人材移動は毎年これぐらい発生していると考えればいいのかな。
人材移動は産から学への一方通行かと思っていたけど、そうでもないみたいですね。
社会人から大学院に進学して研究者になった人の追跡調査はある
みたいだけど、大学から民間に転籍した人の追跡調査があれば、読んでみたいなあ。
posted at 06:41 |
category: /Diary |
固定リンク(文科省が「平成16年度学校教員統計調査中間報告」を出している)
Tue, 02 Aug 2005
最近本屋でよく見掛ける齋藤孝さんの本。テレビにも出ているらしく、
いわゆる売れっ子らしい。本を読んだら納得。内容云々はおいといて、
わかりやすい、読みやすい、ポイントがまとまっている、と読ませる要素満載。
あっという間(小一時間くらい)で読了。ちょっと長めの雑誌の特集
位の感覚。こういう人を文才があると言うのだろう。
内容だが、不機嫌であることの無意味さを説き、上機嫌であることが
コミュニケーションにおいていかに重要であるか、事例(上機嫌列伝)を
もとに紹介。そして上機嫌をつくり出すためのノウハウ集。
気分をコントロールするってことは、わかってはいてもなかなか難しいが、
それを性格や生まれつきの問題ではなく、「技」だと言い切っているところが
この本の面白いところだろう。著者自身「不機嫌」から「上機嫌」
に変化させていったということなので、
ここで紹介されている「技」の数々もやってみてもいいかな、と思わせます。
posted at 06:05 |
category: /book |
固定リンク(上機嫌の作法(齋藤孝)角川oneテーマ21)
Mon, 01 Aug 2005
自閉症というのは外部とのコミュニケーション能力に関する障害
であると考えられているが、自閉症の人の心の内面を幼少のころから
記憶をもとに詳細に記録したのがこの本。文体が読みにくくて、
読むスピードは遅くなってしまうが、それでも読み進まざるを得ない
エネルギーを持っている。
障害を抜きにしても、著者の記憶の細かさ、どのような困難な状況においても
冷静に自分を見つめながら進む道を決めていく意志、表現することはできなくても
人の気持ちや環境に対する感受性の高さなど、ひとりの人間として圧倒される。
自分がどうしてそのような行動をするのか、どうしてそのような感情を持つのか
などについて、普通の人とは少し回路が違っていても、
非常に事細かに分析されていて、決して内部では無意味なことではないと言うのも
伝わってきて、私のような心理関係の専門家でない人間にとっても多くのことを
考えさせるのに十分な一冊であった。
posted at 07:55 |
category: /book |
固定リンク(「自閉症だったわたしへ」(ドナ・ウィリアムス)新潮文庫)
Wed, 27 Jul 2005
リー群上のハミルトン系を考える。
慣性作用素もしくは慣性テンソルとは、点 g における
接空間から余接空間への線型写像のことだと考える。
リー群が左から空間に作用しているとする。
剛体とは、空間上の質点の間の距離が変化しない系だと
考えるとすると、そこから計算される慣性作用素は、
剛体の回転直交座標系が変化する(つまり左からリー群の元が作用する)
と、同じ座標変換を受けることになる。
別の言い方をすると、左移動を使って慣性作用素をリー環から
リー環の双対空間への線型写像とみなした場合、左移動に使った
リー群の元 g にはよらないと言うことになる。
剛体の慣性作用素は Body 座標では一定
別の言い方をすると、
剛体の慣性作用素は左移動で不変
と言ってもよい。逆に慣性作用素が右移動で不変と言うことは、
剛体が等方的、リー群が回転を表す群のときは球であると
言うことを意味している。
剛体の場合は、外力がない場合でもハミルトン方程式の
陽的な解がないため、普通の質点の運動のように Symplectic 法を
適用するのは難しい。普通の質点の場合は、運動エネルギーのみからなる
ハミルトン系の解が等速直線運動という陽的な解があったからである。
さて、どうしよう?
- ハミルトン系の陽的な解が存在するような慣性作用素の族を探して、その組合せで系を記述する
- Symplectic 法ではなく、ルンゲクッタ法などで実装する
posted at 22:35 |
category: /Math/symplectic |
固定リンク(剛体と慣性作用素)
Tue, 26 Jul 2005
Java3D
の新しいバージョン1.4ではいわゆる programmable shader
が実装されたらしい。CgとGLSLに対応。試さないとなー。
Cg は jogl でも使えたけど、これで選択肢が増えたわけで、
要比較検討。
posted at 08:56 |
category: /Java/Java3D |
固定リンク(Java3D で Shader)
Fri, 22 Jul 2005
リー群上のハミルトン系を考えるときに出てくるのが Space 座標と
Body 座標の話。Abraham & Marsden の本に詳しく解説があるが、
他の一般の力学の本にはあまり触れられていないので、まとめておくことは
意味があるかも。今までの一般的な力学の公式との対比は
数値計算エンジンを作った後でも無駄ではないだろう、というわけで。
リー群Gの点gにおける接空間を単位元の接空間(すなわちリー環)
と同一視するための方法として、
- 左移動を使うのが Body 座標
- 右移動を使うのが Space 座標
したがって、それぞれの座標は Adjoint 作用で移りあう。
リー群G(例えば回転)が左から空間V(例えば3次元空間)に
作用している場合を考える。リー群上の「運動」とは
リー群上の実数でパラメーター付けされた曲線 g(t) のことだとすると、
Vの中の点pをとって、g(t)p はVの中の曲線を表す。
(例の場合、回転直交座標系の固定点が座標系が回転することで
直交座標系の中で回転する、ということ)
その時刻 t における微分を考えると
d/dt (g(t)p) = X_S#(gp) = g X_B#(p)
が成り立つ。X_S は g(t) の時刻 t での微分の Space 座標での値。
X_B は同じく Body 座標での値。#は基本ベクトル場を表す。
これは角速度(基本ベクトル場)が与えられたときの大域座標での
速度を求める公式(角速度と位置との外積)に対応する。
Space 座標で表された基本ベクトル場に対して gp という大域座標の値
が使われ、Body 座標で表されたものに対して、p という局所座標の値が
使われる。
posted at 01:34 |
category: /Math/symplectic |
固定リンク(Space 座標と Body 座標)
Wed, 20 Jul 2005
大分前に考えて途中になっていたテーマを久しぶりに取り組んでみよう。
いわゆる Symplectic 数値計算を適用できる範囲を広くできないかを考えてみたい。
- 剛体の回転系の数値計算を局所座標を使わずにできないか
- 数値計算に Symplectic 法を使えないか
- 一般にリー群上の力学系に対し、リー群とリー環の演算だけで数値計算できないか
で、中期的な目標としては
「リー群の余接束上のハミルトン系の数値計算エンジンを作る!」
ことを考えてみたい。リー群として3次元の回転群や、アファイン変換群
をとれば、剛体の数値計算エンジンができるわけだ。
posted at 07:47 |
category: /Math/symplectic |
固定リンク(当面の目標)
Mon, 11 Jul 2005
Voronoi 図形の双対である Delaunay 三角形分割をするプログラムを作ってみた。
但し2次元。例によって Java Webstart で
Delaunay2D
という名前でおいてある。詳しい解説は次回。とりあえず起動して
右クリックで画面上に点を追加すると、Voroni 図形の逐次追加を
行い、その双対であるDelaunayが表示される。
posted at 01:46 |
category: /Math |
固定リンク(Delaunay三角形分割)
エルゴノミクス系の文房具に弱いのであるが、どこかで見て前から気になっていた
PenAgainがたまたまロフトに
売っていて、試し書きをするとなかなかよさげなので、買ってしまいました。
私は筆圧がかなり強くて、すぐ肩がこってしまうので力をいれずに書けるのは
とてもありがたい。もちろん初めは違和感あるが、軽く書ける快適さにすぐ
慣れてしまう。文章より図を書くことが多いが、そのときはちょっと手元が
見にくいのが気になるかな。替え芯が使えるのもよい。
posted at 01:37 |
category: /Diary |
固定リンク(PenAgain)
Wed, 06 Jul 2005
まだまだ高次元ボロノイ図形の書き方を考え中。
2次元のときに条件にあっているかを判定するのに
双対をとってデローニー三角形の角度で判定するのが
簡単だ(Springer から出ている Berg他著の Computational Geometry にも
その旨の記述あり)。
ところが、高次元になるとそううまくは行かない(うまい判定法が
あれば教えてほしい)。角度を使う場合、たとえば3次元の
立体角では内角の和が一定でなかったりして使いにくい。
余談だが、3次元空間の中の全周囲のことを「360度」と表現するのは
違和感がある。立体角なら720度だろ、とつっこみたくなる。
もちろん上半球面の全周囲なら360度でオッケーなのだが。
ボロノイの高次元一般化の話はもうちょっと続く予定。
posted at 02:25 |
category: /Math |
固定リンク(立体角)
Mon, 04 Jul 2005
高次元にも通用するボロノイ図形の書き方を考えて中。
双対をとったデローニー図形を考える方がよいかも知れない。
一般化すると、点、辺、三角形・・・というn単体の系列
X_{0} = 点の集合、
X_{1} = 辺の集合、
X_{2} = 三角形の集合、・・・・
X_{n} = n単体の集合、として
- 無駄がない。つまり最高次元をのぞくどの次元の単体もひとつ上の次元の
単体の境界として現れること
- 単体の境界はひとつ次元の低い単体として現れる
と言う条件を課した X_{0},X_{1},...,X_{n} を考えて、これらの要素を
操作するための Collection 系のデータ構造を設計すべきであろうと思う。
実装はまた今度。
posted at 21:15 |
category: /Math |
固定リンク(引き続きボロノイ)
いわゆる計算幾何の分野で三角形分割や最近傍点探索アルゴリズムで
必ず現れるのがボロノイ図形。定義や手で図を書くのはすごくわかり易いんだが、
アルゴリズムを実装しようとすると実は結構面倒だったりする。
もちろん2次元バージョンなら簡単。3次元でも力業で何とかがんばることは
出来そう。次元nが増えても実装が変わらないような手順やnに対する速度的な評価が
よいものを探している。
とりあえず東大の杉浦先生の幾何計算ソフトウエアを見れば動くソースがある。
のでそこからはじめようかな。
RGBを3次元情報と見てボロノイ図形を使って減色アルゴリズムを考えることが出来る、っていうのはいろいろなところでやられているみたいなのですが、それをより高次元の
データの圧縮問題に適用できないかなあ、と思っているのです。
posted at 21:14 |
category: /Math |
固定リンク(ボロノイ図形)
Wed, 29 Jun 2005
という結び目理論のアプリケーションがある。
オフィシャルサイトは
The KnotPlot Site。
今までいくつか結び目理論のソフトウェアを見たことがあったが、これは
特別よくできている。すばらしい。数学としても、OpenGL を用いた 3D
アプリケーションとしても秀逸の出来。
posted at 08:57 |
category: /Math |
固定リンク(Knot Plot)
Sun, 05 Jun 2005
3層パーセプトロンのいわゆるバックプロパゲーションを実装してみた。
例によって jnlp で作ったサンプルを置いておく。
隠れ層が1000個ある3層ニューラルネットで2次関数の近似
をしてみる。
入力層から隠れ層への活性化関数はいわゆるシグモイド型、隠れ層から
出力層へは線形の活性化関数を用いて、入力値を -10 から 10 までの
一様乱数で2000回 y = 0.1 * x * x の関数を学習係数 0.001 で学習させてみた。
表示されているのは、座標平面の x 座標、y 座標がともに -10 から 10 までの
範囲の領域での学習結果のグラフである。
手動で学習ができるようにテキストボックスから x と y の値をいれて
学習させることができる。最後の学習に用いた値を画面上では青い点で表示
している。
隠れ層の個数を小さくすると、うまく近似できないことはすぐにわかる。
それならばいくつぐらいが適当か?これはよく知りません。
シゴモイド型の関数のパラメータをどのようにするのが最適か?
これも知りません。調べないとね。知っている人いたらアドバイスください。
posted at 22:56 |
category: /Math/Bayes |
固定リンク(ニューラルネットの実装)
Tue, 24 May 2005
今さらながら、だが、ニューラルネットを実装しておこうと思い、
多層パーセプトロンと誤差逆伝播学習法を調べてみた。
産技研の栗田先生の「パターン認識とニューラルネットワーク」
に知りたいことのほとんど全てが書いてあった。感謝。
ただ、誤差逆伝播学習法で実際に学習させてみると、
学習率や教師データによって、うまく学習できたり
(十分速く収束したり)、しなかったりする。
少し調べてみると、学習の高速化については今も研究の
対象となっているらしい。
せっかく作ったのだから、何かに応用させないとつまらない。
一番メジャーな応用としては画像認識、音声認識の手法としてだろう。
経済時系列データに適用している研究もあるみたい。面白そうなのは、
ニューラルネットによる3次元形状自動モデリングを研究している
東工大の能澤研究室
。
とりあえずは、ニューラルネットと学習過程を可視化する
プログラムを作ることを目標にしてみることにする。
posted at 01:13 |
category: /Math/Bayes |
固定リンク(ニューラルネット)
Sun, 22 May 2005
Java5 の拡張 for 文は Array や配列の要素を全て表示するような場面で
とても便利な機能である。しかし、内部では iterator を使って、
インスタンスをコピーして使っているので、要素全てにある処理を施すような
処理には向いていない。例えば、
int a[] = new int[10];
for(int i=0;i<10;i++){
a[i] = 1;
}
for(int n : a){
n = n*2;
}
最後の for が拡張 for 文であるが、これを実行しても配列 a の要素を
2倍するわけじゃない。注意。
posted at 13:51 |
category: /Java |
固定リンク(Java5 の拡張 for 文)
Thu, 05 May 2005
Java で画像処理をしようとするとき、ピクセルの色情報を
byte 型の配列で得る場合がある。しかし、Java の byte 型は
符合付であるから、0から255の値だと思うには変換しなければならない。
ビット列からちょっと計算すればいいのだが、簡潔な方法はないかと
と試してみると、
byte b; // すでに適当な値が入っているとする
int x = (int)(b & 0xff);
でうまくいくことがわかった。一度知ってしまうと常識かもしれないが、
結構はまりそうなトピックなので、メモで残しておく。
posted at 14:05 |
category: /Java |
固定リンク(byte 型を符号無しの値に変換する)
Tue, 03 May 2005
今回EMアルゴリズムのプログラムを作るに当たって、
SWING の JTextField の代わりに JFormattedTextField を使ってみた。
JFormattedTextField に NumberFormatter を組み合わせて使うことで、
数値を表す文字列の処理を追加することができる。
JTextField と NumberFormat を単に足したものではなく、
フォーカスが失われたときに、規定の値の場合だけ値を更新するような
validator や直接オブジェクトして書かれた値を取得する機能
などが実装されている。
これを使って、必ず0以上の値を入力するところの指定などが可能になる。
つまり、負の値や数値と解釈できないような文字列が書かれた場合は、
データを更新しない。
Microsoft の MFC の DDX/DDV と似ている。(構文は全然違うが、
やろうとしていることが似ている、と言う意味)
posted at 23:54 |
category: /Java |
固定リンク(NumberFormatter)
EMアルゴリズムを実装してみた。2項の混合正規分布をひとつ与え、
その分布に従うサンプルをいくつか作り、初期値とそのサンプルから
元の混合正規分布を学習するプログラムである。
例によって Java Web Start で作った。
jnlpファイル
で起動してみてください。
answer が学習の対象となる混合正規分布。それぞれの項の標準偏差(σ)と平均(μ)
および第1項が選ばれる確率をαで与える。
同様に mix に学習の初期値を与える。
sample には学習の材料となるサンプルの個数を与える。
INIT ボタンを押すと、赤色で answer の確率分布、青色で mix の確率分布が
表示され、answer に従うサンプルのヒストグラムがそれに重ねて書かれる。
STEP ボタンを押すたびに一回EMアルゴリズムを実行する。mix には実行後の
混合正規分布の標準偏差、平均が表示される。
結構収束は速い。
posted at 23:40 |
category: /Math/InfoGeom |
固定リンク(EMアルゴリズム(続))
Mon, 25 Apr 2005
EMアルゴリズムとは、隠れ変数を持つ観測データから最尤モデルを反復法で局所
最適解を求める方法。その意味ではニュートン法に似ている。詳細はサイエンス社の
「情報理論の基礎」か産総研の赤穂さんのドキュメント
有限混合分布モデルの学習に関する研究 (Web 版)
が詳しい。どちらも式を書き下してあるため、これらを参考にすれば実装は容易。
EMアルゴリズムを情報幾何的に理解することが、はやりなのかな?
e平坦性によって、モデル多様体の外に出て、m平坦性から再び
モデル多様体に射影される。これを繰り返すことで、尤度を(局所的に)
最大のモデルに収束することを利用する。
混合正規分布に適用される場合、隠れ変数は混合係数。この場合が説明されている
のがほとんど。これは正規分布の空間がe平坦であることも関係しているのだが、
これ以外の例にお目にかからない。
posted at 03:48 |
category: /Math/InfoGeom |
固定リンク(EMアルゴリズム)
Tue, 19 Apr 2005
朝倉書店の「計算幾何学・離散幾何学」を読んでいたら、
Helly の定理と言うのが紹介されていた。本に紹介されていたのは
平面の場合。これが一般に拡張されているはずだと思って探してみると、
にちゃんと一般化した形で載っていました。
n次元空間内の凸閉集合の族から任意に n+1 個の凸閉集合とったときに
それらが交わりを持つなら、凸閉集合の族全体が交わりを持つ。
ということ。
上記の本では点集合の分割の話の流れから出てきたトピックだったのだが、
それは
点集合を分割して、それらの凸包が交わるようにできるか
という問題。この問題についても平面の場合しか解説がないが、
高次元にも一般化されているらしい。
3次元の場合のアルゴリズムを実装するのは面白いかも。
posted at 17:10 |
category: /Math |
固定リンク(Helly の定理)
Java Media Framework というのがあって、すでにバージョンは
2.1.1e まで上がっている。要するに動画や音声などのストリームデータを
Java で扱うためのフレームワークなのだが、それほどはやっていないみたい。
Web カメラの画像をアプリケーションサーバ経由で見たりすることが簡単に
できそうなんだけど、速度的な問題と Pure Java じゃなかったりするのが
いけないのかな?
評価のためのサンプルを探していると、
Ghost Vision
というのをみつけました。
これはよくできています。Java でのリアルタイムの画像処理
でも十分使えることがわかります。ただし、ソースは公開されていないです。
posted at 16:34 |
category: /Java |
固定リンク(JMF)
Mon, 11 Apr 2005
アメリカの子供向けの教育用玩具メーカーが
ペンコンピュータを出すらしい。
PC Magazine の記事
おそらくアノトペンの技術に辞書を追加したような感じかな。
プログラマブルなプロセッサーが入っているとしたら面白いおもちゃになりそう。
アノトペンはあまりはやらなそうで、個人的には熱が少しさめてしまっていたけど、
こういう製品がでて、盛り上がってくれると面白い。
posted at 08:50 |
category: /Diary |
固定リンク(ペンコンピューター FLY)
Wed, 23 Mar 2005
JWS のよいところは、アプリケーションとして作れるところと、
外部のライブラリ(ネイティブのものも含めて)を指定できると言うこと。
自作のソフトウェアを公開する場合、アプレットよりも優れているのは
明らかだろう。ライブラリとして公開もできる。
というわけで、JWS で公開されているもので、
実際にどういうものがあるかを調べてみる。
だけど、予想以上に少ない。SUN の宣伝不足かなあ。サーバ技術ばかり
注目されて Java のクライアント技術は無視されているみたい。
数少ないリンク集のうち、有名なのが(あまり更新されていないけど)
など。Java3D も JNLP の resources 要素の extenstion 要素に
https://j3d-webstart.dev.java.net/release/java3d-latest.jnlp
を書いておけば、Java3D は自動的にインストールされる。
もっと使われてもいいと思うんだけどな。
くわしくは
j3d-webstart: Java 3D Web Start binariesを。
posted at 02:45 |
category: /Java |
固定リンク(Java Web Start リンク集)
Mon, 21 Mar 2005
いや、Java じゃなくてもいいんですが、
LP 問題を解くとき、何を使いますか?
Excel のソルバーを使う。小規模の問題のときにはとても現実的な選択です。
R で simplex や solveLP を使う。日常的に R を使っている人ならこうするでしょう。
問題は自分のプログラムの中で LP 問題を解きたいときにどうするか、です。
昔、教育用に Simplex 法を実装したことがありましたが、実装が目的ではない
場合は、適当なライブラリを使う方がいいでしょう。探してみたら、ありました。
大学の研究室で開発しているようです。Java 版があるのがうれしい。
パフォーマンスについては、まだ大規模な計算をしたわけではないので保留。
ちなみに単なる行列計算なら
などがある。
posted at 19:52 |
category: /Java |
固定リンク(Java で LP 問題を解く)
オープンソースの統計解析システムの R で AIC を計算することができる。
R については
などが詳しい。VineLinux にも WindowsXP にも問題無くインストールできた。
最近は大学の学部の演習などにも使われているらしい。
東工大の下平先生の講義ノート
はとても充実していてRのチュートリアルとしても使える。
と言うか、使いました。ありがとうございます。
で、この下平先生の講義ノートに R で AIC を使ってモデル選択す