ぎょーむ日誌 2001-05-18
2001 年 05 月 18 日 (金)
- 0600 起床.
消灯したのは 2400 ごろだった.
- 朝飯・弁当の準備.
朝飯.
コーヒー.
- 0655 自宅発.
晴れ.
右足まだ腫れたままだし歩くと痛いんだが,
歩行様式はかなりふつーになってきた.
たぶん骨はやられてないだろう.
特急に乗って
0709 京急平和島発.
普通に乗り換えて
0733 京急上大岡発.
0850 研究所着.
- 今日の朗読
Simon Levin の生態系・多様性・進化・複雑系の
一般向け解説本
``Fragile Dominion''
Chapter 2. The Nature of Environment
- Evolution Above the Species Level (-p.35)
- The Evolution of Altruism (-p.38)
- また怪しげな section 名がならぶわけだが
……
グローバルな世界 (環境) とその構成員である
個体間の相互作用の関係に関する考察続く.
局所的相互作用→グローバルなパターンの見えやすい
例として,
ゲーム理論などで解釈される利他主義 (altruism)
の「進化」が紹介される.
本書で取り扱うらしい材料をひととーり並べたところで
この第二章はおしまい.
- さっさと書かねばならなかった代理発表依頼のメイルをカナダに送る.
甲山さんのかわりに
樹木会議
させてください,
というもの.
どう書けばよいのかわからんので,
40 分ほど試行錯誤する.
- 1000 より 1130 まで
生態系変動予測領域
の会議.
生態系の領域長の安岡さんが東京から,
海洋グループ長の才野さんが名古屋から来る.
合計 10 人ばかりだけど,
他に空き部屋がなかったんで
独房郡内最大の会議室で行われる.
内容は来週の「中間評価」関係.
- この地球フロンティアなるモノできて 5 年になるんで,
10 年計画の「中間評価」ってのがある.
これはエラい人たちが苦労すればよいだけだったんだけど,
下っぱも 20 分ばかりの口頭発表やらされることになってしまった
(さいわいなことにポスター発表でなくてもよい,
ということになった).
- やはり地球ふろんちあという組織の中で生態系領域は異端で,
その中でもあーきてくちゃーグループってのは
救済の余地ないほどにハズレ値だと実感される.
まぁ,
私むきではある.
- ああ,
さっさと論文書かんといかん,
ということもわかった.
「ニセ」アカマツしかいますぐには着手できんな.
小川開空度計算でもいいんだけど,
やはり三次元虚業ライブラリを作ってからにしたい.
- 先に三次元問題のほうに取り組む.
とゆーのも,
このライブラリは一ヶ月後の甲山さんの
Princeton 発表の Pasoh 解析に
リンクしてくるからである
(いまは旧ライブラリ使って計算してる).
ついでに今朝メイルを書いた
樹木会議で発表されるはずの PipeTree
改良版でも使われるはず.
とはいえ,
後者はまだ影もカタチもない,
そう Micro$oft 関連用語をもちいるなら
正真正銘の vapor-ware なんだが.
ひどい話だ.
- 昼飯食いつつ,
bash のプロンプトをいじる解説
を読む.
日本 IBM 提供.
よくわからん企業ですな.
- 天気も快適そうなのに,
まだ足が全快してなくて
脱柵もできないんで
上記ペイジを参考にしつつ
bash プロンプトをいじってみる
……
なンかうまくいかない.
へっぽこ.
- 今まで使ってなかったんだけど
vim
(常用してるテキストエディター)
でタグファイルをというのが使える,
という情報見つけたんで,
これも試してみるが
……
書かれているとーりに動作しない.
うう,
こっちもへっぽこ?
- 気を取り直して VineSeed から
ctags-3.4 というのを取って来てインストール.
ctags -R *.h *.cc
で tags を生成.
vim で何かであるファイルを開く.
関数の書いてあるところまでカーソル移動して
Ctrl+]
……
おお,
その指定した関数のコード
(別のファイルにある)
にジャンプした.
わーい便利だ.
Ctrl+T
で元の場所にもどる.
Perl スクリプトの tags ファイル生成したいときは,
(vim-5.7 の場合)
/usr/share/vim/vim57/tools/pltags.pl を使う.
- 午後からまた三次元 (よくわからぬ) ライブラリに
取り組む.
そろそろ終わらせたい.
- 統計学 ML である stats からちょっと面白そうな
セミナー案内.
何でも「極値理論」てのを使うと,
高分位点 (100% に近い点) の推定値の
性質なんかが調べられるそうだ.
私はさようなオソろしげな値を使う予定ないけど,
甲山さんがやりたいのはコレなんだろーな.
- 悪しき開発方式と知りつつ,
試験用コードにらみつつ
作りかけのライブラリ内部をいじる.
「最上位中間管理職」
fvision なるクラスの内部やらせることを,
いままでより多少複雑にしてみる.
これは Eye 派生クラスのテンプレイトになってるんで
あまり複雑なことはやらせたくなかったのである
……
と書いて気づいた.
もはやこれは,
template などというものを
使わなくてよいのではなかろーか.
- そもそも何でこんなところでこんなワザを使ってるんだ
……
昨年 12 月 14 日のぎょーむ日誌の記述によると,
なぜ一方はテンプレイト化し,
他方は継承するのか?
教科書的に言うなら,
Evision<EyeType> は EyeType によって
振舞いが変わらないのに,
Eye は種類によって振舞いが変わるからである.
……
だそうだ.
だからといって面倒なテンプレイトなんぞ
わざわざ使う必要あるまい.
それ以上のことはぎょーむ日誌に書かれてないから
わからんのだけど,
なんか曲芸じみたことやりたかったんだろうなぁ.
- ともかくよくわからん (思い出せん) ので,
Fvision<EyeType> は
単なる Fvision とする.
こいつは vector<Eye*> とか
持ってるわけだが,
この Eye* は「目」の基底クラスである
(不思議なことにもともとそうなってた).
うーん,
錯乱してたのかな.
ともかくこれでやってみましょ.
- ライブラリのほうで「視線」上の視点を
動かす関数をまだ作ってなかった.
そもそも「視線」Gaze には始点はあっても
視点がない.
追加してみる.
- いや,
これはそう簡単ではないな.
さてどうしよう
……
やはり,
「視点」の移動はライブラリ側では無くて
利用者 (シミュレイター) 側が決めるべきことだ.
なぜなら,
いくつの三次元実存 Vit
(障害物とか)
にぶつかれば
視線方向の探索を中止するか,
といったことはモデルに依存するからだ.
ではこのあたりはどこで定義すべきか,
というと
……
Eye を基底クラスにして派生した「目」
の中でやるべきことだな.
中間管理職 Fvision ごときに
どうこうされるべきではない.
- よーやく
「視点」に関するみとおしが立ったので,
それをもとに全体を見直す.
たぶんこれで OK だろう.
Fvison には「視線」を一本ずつ渡していって,
「視点」を動かすかどうかの判断は
「目」でやる
……
ちょっと紙にでも書いて整理せんとわからん.
- 結局,
こうなった.
一見まっとうな計算してるようでいて
実は何もしてない虚業ライブラリの面目躍如だ.
void Fvision::SkyWatch( Eye* eye )
{
eye->ClearGazes();
eye->InitializeGazes( sky );
Gaze* gaze( eye->NextGaze() );
while ( gaze != NULL && eye->Continue() == true ) {
gaze->InputId( NewGazeId() );
voxels->CalcMovingVector( gaze );
while ( voxels->LookAround( gaze ) == true ) {
if ( voxels->CheckHitVit( gaze ) == true ) {
Vit* vit( voxels->PopHitVit() );
while ( vit != NULL ) {
eye->CheckVit( vit );
vit = voxels->PopHitVit(); // next vit
}
}
gaze->MoveViewPoint( voxels->MovingVector() );
}
gaze = eye->NextGaze();
}
}
そして
「何もできない」
基底クラスである eye.h にやたらと
「面倒はあとまわし」な
純粋仮想関数とやらが増えてしまった.
class Eye
{
public:
virtual ~Eye( void ) {};
virtual void ClearGazes( void ) = 0;
virtual void InitializeGazes( Sky* ) = 0;
virtual void CheckVit( Vit* ) = 0;
virtual Gaze* NextGaze( void ) = 0;
virtual bool Continue( void ) = 0;
};
上の意味不明なコードで唯一わかるのは,
Eye クラス
(基底クラスに専念するクラス)
とゆーのが
「私は何も知りませんし,
やりたくもありあせん,
ええそうですとも」
とひきこもりがちな人格が付与されているだけ,
ということだけである.
ま,
また明日にも変わってしまうのかもしれないケド.
- 撤退.
徐々に通常の歩行に復帰しつつある.
1810 研究所発.
普通に乗って
1820 京急杉田発.
特急に乗り換えて
1830 京急上大岡発.
1920 帰宅.
- 足は回復しつつあるのに,
アタマのほうはボケてるのか?
弁当箱持ち帰るの忘れてた.
それはまだいい.
なんかですね,
どうも自宅トイレの水洗が
一日中止まってなかったようですね.
いやはや.
何トンの水の損失,
何百円の損害になるのか.
- カナダ樹木会議主催者から親切なる返信あり.
代理発表を許可していただけたよーだ.
ということで,
今年 9 月末に北米大陸再上陸,
か.
いやいやまだまだ面倒はつきん.
宿泊とかいうのを予約して,
NASDA に旅費出してくれと頭下げて,
期限切れてるパスポートを都内のどっかで再取得して
……
なにより今は vapor-ware にすぎない
オオシラビソふうパイプ樹木を娯楽作品として
鑑賞に耐えるモノにしなくては
……
- 独房群撤退後はメイルを Asahi-net に集めるように
してるんだが
……
珍しく Asahi-net が長時間通信途絶状態.
終日回復せず.
ふう.
- 2400 消灯.
- 今日の食卓
- 朝 (0610):
米 0.7 合.
昨晩の残り.
- 昼 (1210):
弁当.
米 0.8 合.
昨晩の残り.
- 晩 (2000):
スパゲッティー.
トマトソース.
トマトは 100 円の缶詰もの.