ぎょーむ日誌 2001-05-30 
 
	 
 2001 年 05 月 30 日 (水) 
 
	-  0600 起床.
		寝たのは 2230 ごろ.
		近ごろは毎日 7-8 時間の安眠を確保することを
		最重要課題として日常がまわってるよーな気がする.
	
-  朝飯・弁当の準備.
		ああ,
		ボケてる.
		弁当箱をまた独房内に忘れて来て,
		しかも今まで気づかなかった.
		うう.
		今日の弁当はサランラップ握り飯.
		朝飯.
		コーヒー.
		シャワー.
		ひげそり.
	
-  0655 自宅発.
		晴れ.
		特急に乗って
		0709 京急平和島発.
		普通に乗り換えて
		0733 京急上大岡発.
		0750 研究所着.
	
-  独房群図書室の今日のろーどく 
	
		Simon Levin の生態系・多様性・進化・複雑系の
		一般向け解説本
		
			``Fragile Dominion''
		
		
 Chapter 3. Six Fundamental Questions
-  Question 4: How Does Evolotion Shape
			These Ecological Assemblage?
			(-p.51)
		
-  Question 5: What Is Relationship Between
			an Ecosystem's Structure and How It Functions?
			(-p.53)
		
-  Question 6: Does Evolution Increase
			the Resiliency of an Ecosystems?
			(-p.55)
	
 
-  質問 4: 進化によって生態系はどう変わるの?
		ということで,
		まずは著者 Simon の重視する scale の話から.
		生態学的な時間  (日-年) と進化的な時間 (数千年)
		というふうに両者の違いは一見明確だが,
		たとえば病気だの害虫だのの高速進化は生態系の変動にも
		また影響を与える.
		また森林の部分的な撹乱とその更新を題材に
		ニッチと呼ばれる概念の説明.
		``Evolution hates a vacuum''
		(進化は真空を嫌う)
		――
		うまい !
	
-  質問 5: 生態系の構造と機能の関係は?
		ということで,
		生態系を構成する部品が自動車など工業製品のそれとは
		違って目的論的には設計されてないという指摘.
		生態系の部品である
		生物個体に見られる恒常性も目的論的に
		構築されたのではなく,
		そうであるような系統が
		生き残って来たのだという論法が,
		生態系の安定性の議論にどの程度有用か
		述べるらしい.
	
-  質問 6: 進化は生態系安定させるか?
		ということで,
		生態学のひとつの基本的な問いである
		「生態系は構成生物種が増えるほどに安定なりや」
		という出口の見えない問いである.
		一時のようにはもてはやされなくなった
		複雑系なる学問領域における
		自己組織化臨界点うんぬんだの
		言うところの
		``edge of chaos'' だのとの関連になりそう
		……	
		というところで,
		第三章は終わり,
		以下の章ではこれら 6 つの問いに
		個別に検討していくことになる.
	
-  三次元計算システム改良の続き.
		昨晩検討したパラメトリック方式を導入してみる.
		これは虚業ライブラリではなく,
		三次元実存の派生クラスのひとつ
		VitSphre内で定義される.
-  「視線」クラスの方向ヴェクターを規格化しておくと
		かなり便利,
		と気づく.
		メンバー変数を
		Gaze::normalized_directionと改め,
		それを呼び出すメンバー関数もGaze::NormalizedDirection()とする.
-  近ごろまいぶーむな呪われ言語書法として,
		虚無ポインター
		NULLをもって Perl でいう undefined
		(``まだ定義してねーよ'')
		の代用とする,
		ということをやっている.
		いいのかどうかわからんが.
		三次元実存の基底クラスであるVitのdistanceもそういう取り扱いにしてみる.
-  1105 あちこちがちゃがちゃ変えてしまったけど,
		試験運転プログラムは core も吐かずにあっさりと動いた.
		めぼしいバグはすでに出尽くしたのか.
		さてタマの位置をいろいろ動かしてみた
		場合の計算結果の当否だが
		……
		「点と線」の距離,
		最接近点の位置,
		最接近点までの距離
		……
		なンかうまく計算してるみたいね.
	
-  ライブラリ側でまだ実現してない機能は
		「1 Vit の登録位置を複数にすること」
		だ.
		三次元虚業ライブラリFvision では
		以下のように周旋処理が行われる
		(いまのところ).
		
			- 
				Voxels の生成:
				計算空間の生成.
			
- 
				Voxel の生成:
				「三次元分譲区画」を決める.
			
- 
				Sky の生成:
				天球上の光源分布を決める.
			
- 
				Fvision の生成:
				周旋業者の生成.
			
- 
				利用側で Vit 派生クラスの
				インスタンスを生成:
				タマとかポリゴンとか
				もっと抽象的なやつとか.
			
- 
				Vit 派生インスタンスを登録処理:
				その Vit の位置に応じて
				「三次元区画」である Voxel に登録される
				(Fvision を通じて).
			
- 
				利用側で Eye 派生インスタンスを生成:
				この「目」を登録することも可能
				(Fvision を通じて).
			
- 
				Fvision->SkyWatch( ... ) 
				で開空度 (らしき指標) を計算.
			
 ……
		となる.
-  このとき,
		上の 6. の処理において,
		Vit を「どこに」登録するか,
		というのが問題なのである.
	
-  たとえば一辺 10m の立方体を「区画」としている,
		としよう.
		ここに直径 1m のタマを登録するのであれば,
		そのタマの中心が位置する
		「区画」に登録してしまえばよい.
		もしタマがその隣の立方体のハシっこのほうに
		位置していたならば?
		……
		それも問題ない.
		というのは,
		上記虚業ライブラリはこの例でいうと,
		「視点」が位置する「区画」を中心に
		30m x 30m x 30m の範囲を
		「検索」するようにしているからである
		(ただしすでに一度調べた領域は除く).
	
-  ところが問題になるのは,
		「区画」の大きさが 1m 程度なのに,
		逆にタマの大きさが 10m といった状況だ.
		こういう状況では,
		現状のままではうまく計算できるとは期待できない.
	
-  解決策のひとつは利用する人間が注意深くなることである.
		すなわち直径 10m のタマを Vit として登録するなら,
		「区画」の大きさはせめて一辺 5m ぐらいに
		(可能であるならもっとでかく)
		設定してやる,
		とか.
	
-  もうひとつの策はタマの中心だけでなく,
		たとえば球面上あるいは球殻内の何点かの
		位置も「登録」してしまうことである.
		これは可能である.
		可能だけどめんどくさい.
		ということで,
		まだコードに書いていない.
	
-  そう,
		タマのような単純な形状であるなら
		「人間が注意する」
		という方策も有効である.
		しかし次に Vit 派生クラスとして定義しようとしてる
		VitPolygon
		……
		ポリゴン
		(三次元空間内にうかぶ三角形をした薄さ無限小の板)
		の場合,
		最低でも三頂点を「登録」するのがやはり
		合理的なんだろうな.
	
-  ということで,
		しょうがないから
		これに対応できるように設計変更してみよう.
		ただし,
		これに関連するもうひとつの面倒な問題は
		当面のあいだは放置する.
		それは Vit 側が Voxels と相互作用して
		自分自身の形状を勘案しつつ
		最適な個数の「登録点」を動的に生成する,
		というものである.
		まぁ,
		やめときましょ.
	
-  うだうだと書いてたらもう 1200 か.
		なんだがマヌケだな.
		今日の弁当は握り飯
		(と呼べるシロモノなのだろうか,
		この飯つぶの寄せ集めは)
		なので,
		それを食べつつ呪われコーディング続行.
	
-  複数位置を登録するときに二重登録を避けるには
		……
		一番簡単には STL の set を使うのがいいのかな.
		ああ,
		また STL に依存してしまう.
	
-  昨日から悩んでいた
		「ライブラリ内で登録された Vit を delete するか?」
		問題なんだけど,
		やっぱり delete しないことにきめた.
		つまり利用側の責任で Vit だの Eye だのを
		消滅させなければならない
		(消滅させるタイミングを間違えると core 吐き).
		虚業ライブラリは虚業らしくポインターだけを
		扱うことにする.
	
-  1315 うまく動いた
		……
		んだけど,
		またまた考えの足りないがゆえの問題点.
		set を使って二重登録は避けられたけど,
		(同じ Voxel 内での)
		二重検索の問題が残っていた.
		しょうがないんで,
		Voxel だけでなく Vit にも Gaze の Id 点検を
		やらせることにする.
	
-  ついでなので,
		すべての Vit にも一義的な Id をもたせることにする.
		このあたりの仕組みを共有させるために,
		IdGenerator というクラスを作る.
		Gaze や Vit で
		
			static IdGenerator
		という静的メンバー変数
		(クラスごとにひとつしか存在しない変数)
		を持たせるためだ.
-  1420 どーにかこうにか二重登録・二重検索しないようになった.
		これで最低限の機能はもたせたか?
		そうか,
		もひとつあった.
		「視線」の終端処理だ.
		これはライブラリの問題ではなく
		利用側で為すべき処理だな
		……
		なのになぜかライブラリ側の修正も必要.
		「検索」は終わってるのにまだ「視点」を
		動かすようなマヌケなことをやってるからだ
		……
		できた.
		時刻は 1445.
	
-  たいへんありがたくも,
		某氏より新茶を賜わる.
		さっそく一杯淹れて飲む.
		ふう.
		C++ な呪われから解放される.
		感謝感謝.
		ちょっと一休み. 
	
-  国内出張願いとかいう紙切れを書いて出す.
		来週月曜日から金曜日まで北大出張,
		ということになってしまったので.
		ああ,
		しかしきっといまの季節の札幌は
		すばらしいに違いない.
		とはいえ,
		大学院生の皆様は野外調査でお忙しいだろうなぁ.
		また電話番でもやるか.
	
-  C++ の呪われというものについてメイルいただいたので,
		それは三浦建太郎の「ベルセルク」のごとき状況かも,
		という返信雑談メイル.
		ひとつひとつの敵 (悪霊) は弱っちいのに
		(使徒は兇悪ですけどね),
		倒すたびにココロが蝕まれていくのである.
		ああ,
		私の耳もとで
		「逃れることはできないよ
		……
		けっして逃れることはできないんだよ」
		と C++ な呪われバグがささやいている
		……
		というほど追い詰められてはいませんが.
	
-  視線の数を 1 本から 90 本に増やして試験運転.
		またまた虚業ライブラリにバグ発見.
		Tracing 続けるかどうかの
		check_continue の遷移がヘンだった. 
		直す.
		1655 まっとうに動くようになる.
	
-  さーて,
		こういうのは試験結果を図に出すとわかった
		ような気分になれるんだが
		……
		簡単にできないかな.
	
-  日本の生態学者の中では
		
			長谷川宣教師
		
		につぐ
		練達の LaTeX 使いの
		
			牧さん
		
		からメイルをいただき,
		かねてより難問とされていた 
		
			\incudegraphics		
		における EPS 図の回転方法など
		ご教示していただく.
	\includegraphics[bb=75 150 730 500, angle=270, origin=c, clip, keepaspectratio]{ ◯◯.eps }
	こんな感じでくるくる回ります。bb はトリミングの座標指定
	(clip でトリミング)、angle で反時計まわり回転角度、origin
	で回転中心を指定します。
		あちこちの詳しいヒトたちから
		色々と教えていただけて,
		私は幸せモノです.
	-  上記を
		「引用させてくださーい」
		とお願いしたところ,
		LaTeX の道はさらに深いものですと,
		牧先生からたしなめのメイルを (帰宅後に)いただく.
		先生おススめの一冊は
		
			「これだけでできるLaTeX実践活用ガイド」
		
		(海上忍+黒川弘章著,技術評論社 2000 年 9 月).
		この本ならたしか大森町の TSUTAYA に置いてあったので,
		帰りに見てみようと思ったんだけど,
		今日は特急に乗ってしまったので大森町は止まらずに通過.
		いやはや間抜け.
	
-  さらに続報で先生は長谷川宣教師の
		おそるべきばてれん黒魔術のワザ
		「Postscript 手動補正」
		まで修めつつあるとのこと.
		さらに MacDraw 生成の Postscript
		ファイルに関する独自の研究.
		すさまじきかな,
		鬼哭の京大農学部.
	
-  試験運転の図,
		というのがまだできないけど,
		ひとまず帰りますか.
		1750 研究所発.
		外は雨.
	
-  1755 新杉田接骨院着.
		1805 診療.
		今日も電気 100mA 13 分間.
		足の腫れもずいぶんと引いて来た.
		夕刻における
		ここの患者さんの半分近くは
		スポーツやってるような女子中高校生たちである.
		なぜか男の学生は見掛けたことない.
		女の子のほうが骨格が華奢,
		ということなんだろうか.
	
-  1825 同接骨院発.
		普通に乗って
		1832 京急杉田発.
		特急に乗り換えて
		1840 京急上大岡発.
		上述のとーり大森町は通過して
		平和島で降りることに.
		八百屋でシイタケを買うとみょーに高かった
		(8 個で 150 円)
		のでよく見ると国産モノであった.
		せーふがーど?
		1920 帰宅.
	
-  土曜日の羽田→千歳の航空券.
		JAS の特割切符をネット上で予約してみる.
		おお,
		意外と簡単にできた.
		予約番号を控えて近くのローソンに行ってみる.
	
-  今まで何のためにあるかわからんかった
		ローソン店内の端末を操作してみる.
		これのインターフェイスがかなり劣悪
		……
		というか,
		なぜ予約した航空券に関することが
		「各種料金支払」
		メニューなんだろうか.
	
-  ともかくそれでバーコードついた紙切れを出し,
		レジに持って行って現金で支払う.
		19600 円.
		特割りなのにたいして安くないな.
		まだチケットはもらえず当日引き換えのための
		紙切れがプリンターから吐き出される.
	
-  今日の食卓
	
		-  朝 (0615):
			米 0.7 合.
			キャベツ炒めもの昨日の残り.
		
-  昼 (1210):
			米 0.7 合.
			弁当箱忘れたのでラップ梱包の握り飯.
			乾燥ワカメいり.
		
-  晩 (1950):
			米 0.8 合.
			キャベツと油揚の炒めもの.
			キャベツとシイタケの味噌汁.
			煮干だし.
			煮干も食う.