ぎょーむ日誌 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 合.
キャベツと油揚の炒めもの.
キャベツとシイタケの味噌汁.
煮干だし.
煮干も食う.