ぎょーむ日誌 2000-10-23
2000 年 10 月 23 日 (月)
- 0730 起床.
0300 ごろには寝てたかな.
- 朝飯・弁当の準備.
といっても寝る前にだいたい準備してたので
すぐに終わる.
シャワー.
朝飯.
コーヒー.
- 0806 自宅発.
小雨ふる.
ゴミだし.
0825 東京モノレイル流通センター発.
駅のプラットホームのゴミ箱の上に
朝刊が置きすてられてたんで,
拾ってきて車内で読む.
紙の新聞読むのはずいぶんと久しぶりである.
乗車時間 11 分の間に
ひととおり目を通せるもんなんだな.
浜松町の気温 17 ℃.
0845 研究所着.
- さーて,
昨晩の拷問試験は
……
ああっ,
試験の設定間違えてて
すぐに終わってる.
終了時刻 0150.
私が寝たのはもっとあとだったのに.
- ま,
1987 年から 2387 年までの
シミュレイション結果の三次元鳥瞰図が
20 年おきに 20 枚描かれてはいるな
(拷問試験では 400 枚の絵を生成させる
予定だった).
- 結果の見てくれは
……
やはり,
黄色の樹冠が増えて,
青・黄緑・水色が消失していくな.
すなわち
……
オオモミジ (ACP) が台頭.
そして
コナラ (QRS)・イヌブナ (FGJ)・ブナ (FGC),
これら 20 世紀末の三大優占樹種は衰退,
とゆーことなんだろーか
……
- パラメーターの点から見たオオモミジは
……
たいしたことない.
高さは 20 m で頭打ち.
成長率もそんなに良くないし,
直径 40 cm を超えたあたりで
死亡率がはね上がる.
暗さに強いわけでもない.
ただし,
新規加入速度はかなり高い.
- ということは,
数が増えてるだけで
胸高断面積的にはたいしたことないのかな.
樹冠の色が黄色いから目立つだけ,
とか.
まぁ,
このあたりを解明する Perl スクリプトでも
書いてみるか.
- その前に,
新規加入個体にうつ ID が変になってるのを直す.
まぁ,
ID なんてほとんど使わないんだけど.
あ,
「吐いたものを飲む」
という場合には,
ちゃんと一意な ID がふられてないとダメだったな.
- 400 年間のシミュレイション結果を集計する
Perl スクリプト類を作る.
で,
集計してみてグラフに描いてみてわかったんだけど
……
やっぱ,
ちゃんと個体ごとに一意な ID つけてやらんとだめだ.
データー変換するときに
ID が同じだと同じ個体だとみなされて
集計されてしまう.
- まぁ,
これで必要な道具だてはそろって,
計算のほうはそんなに急がなくてよくなった.
そこで
試験も兼ねてもう一度 400 年間連続運転を
実施してみる.
えーと,
約 100 分を要するから
終了予定時刻は 1310 ごろだな.
- あと書かんといかんコードは
……
撹乱頻発環境をシミュレイトする関数.
それから
グラフ描きスクリプトいくつか.
たぶんそれだけだろ.
- さーてと,
いつまでも小川シミュレイターで遊んでるわけにも
いかんな.
原稿の準備をしなくては.
- (一言近況)
よーやく,
小川群落保護林毎木シミュレイター
(2000 年版)
が動き始めました.
ああ,
しかしこれから原稿書きが
……
(20001023)
- なんとなく午前中が終わったので,
昼飯の弁当食う.
ひさしぶりにのんびりと web page など
見て回る.
- 竹中さんの新しい
森林動態モデルの解説が
公表されている.
個体ベイスモデル + 遺伝子 + 環境勾配
というのは美味しい組み合わせですな.
- 北大の宮本さんが
Pvalue.pm という Perl モジュールを
開発した,
というメイルが ecosyst-ml に流れる.
さっそく送ってもらう.
青木さんの統計学ペイジ
で公開されてる AWK スクリプトを
Perl モジュール化したとか.
- 整備しかけたまま止まってる
「計算生態学の道具箱」
をなんとかしなくては.
- 1311 予定どーり 400 年運転終わる.
個体数は相変わらず 19000-20000 あたりに
おさまっている.
新規加入個体数は 2 年おきにだいたい 450 ぐらい,
と一定しているのに,
集団全体の個体数が
ゆるやかに振動しているのが面白い.
- 400 年運転の結果が面白いので,
あれこれとグラフにしてみて遊んでしまう.
[オオモミジの森 2387 年]
黄色い樹冠がオオモミジである.
数が多いだけでなく胸高断面積
合計に占める割合も高い.紫は
サワシバ.谷底はこれが増えて
しまう.どちらも加入が速い.
- グラフを描いてるうちに
「これは正木さんのいうような
成長曲線を考えたほうがよいかも」
と中径木で成長量の期待値が最大になるような
モデルを作って,
mlfitting であてはめてみる.
コナラなんかは
一見
うまく当てはまってるようなんだけど
……
現存する樹木の分布に引きずられて,
(ほとんど現存しない)
小径木の成長量の期待値が数ミリ程度になってしまう.
- えーと現在のモデルの組み合わせで,
「成長量が一山に見える」
という減少を説明すると
……
中径木は個体数が多いので,
指数乱数によって期待値を大幅に上回る
個体が目立っているのである
……
ってのはどうだろ.
いや,
やっぱり関数型に工夫が必要だな
……
と思いつつ今回は間に合わないと考えて,
この方面からは一時撤退.
時刻 1550.
二時間ほど費したか.
- さて,
小川シミュレイターに
disaster モード
……
大規模撹乱頻発環境モードを組み込む.
新しく導入するパラメーターは
撹乱頻度と撹乱強度.
ランダムに到来する撹乱イヴェントにおいて
大径木が死にやすくなる,
というモデリングである.
具体的には森林火災とか台風など
森林全体に一斉にふりかかる災厄を想定.
撹乱頻度をゼロに設定すれば,
non-disaster モード
(単木的な死のみ).
- さて,
いろいろと実験してみたんだが
……
どうもあまりよろしくないな.
撹乱頻発するとそこから自律的に回復してくる,
のはまことに結構.
林冠木が欠失すると新規加入個体の生残率が
高くなるためである.
- しかしながら,
その新規加入個体の樹種構成が
ふつーの環境とあまり変わらないため,
「撹乱が頻発すると森林の様相が変わる」
というようなコトが言えないのである.
実際のところ
そうかもしれないし,
そうでないのかもしれない
(私にはわからない).
しかし,
いずれにせよ
これでは面白くない.
- ちょっと撹乱頻度が高めの状況を
シミュレイトするように指示しておいてから,
1920 研究所発.
目の前で結果が刻々でてくると気になって
他のことができない.
外は相変わらず雨が降っている.
ひさしぶりに浜松町駅の本屋 dan にちょっと寄る.
考えごとをするには,
この巨大本屋の中を徘徊するのがよい.
1940 東京モノレイル浜松町発.
2015 帰宅.
- モノレイル車内で現状に対する再考を強要される
……
なーんか面白そうな結果を出すには
どうすればよいか.
いや,
なぜ
disaster モードでは
面白そうな結果が出ないのか.
成長率・死亡率はかなり環境依存的
……
つまり明るいか暗いかで挙動が異なるような
パラメーターを見つけ出している.
ならば,
撹乱環境は森林に違いをもたらしてもよいはず.
ところがそのような差は生じない.
- 残されたサブモデル,
新規加入に問題があるのか.
これは環境依存的ではない.
どんなときでも一定数の新規加入個体が
「わいて」
くる.
その速度は樹種間で最大 30 倍も値のひらきがある.
この値が森林の将来を決めている.
- 新規加入速度を均質化するようなパラメーター推定は
可能ではある.
現在高めに推定されてる樹種の値を下げるような
更新モデルをデーターにあてはめればよい.
しかし望ましくない.
24 ha 20000 本という集団が維持できない.
森林全体が大きく変動する場合に,
その構成変化について述べるのもなぁ.
- かといって環境依存的な新規加入モデルを,
いま使ってるデーターから推定するのも困難.
なぜならば,
樹種によっては現存個体の全てが大昔に加入してきた
−−
そしてその後は新しい個体が森林に入っていない,
という例があるからだ.
大昔の森林が明るかったのか暗かったのか,
現在からはわからない.
したがってモデルも構築できない.
- 例えば,
はなはだしきはクリ (CSC).
あくまでも憶測値なんだけど,
この樹種の一番若い個体が直径 5cm になったのは
今から 100 年以上前らしい
(成長速度から逆算して).
で,
その後は現存する新規加入個体がない.
つまりいま小川に生えているクリは
かなり大きいものばかりなのである.
- デ−タ−を活用して
環境依存的なモデルが構築できない以上,
新規加入速度は一定,
という仮定をいやいやながらに採用しなければならない.
そうすると
オオモミジだのサワシバだの近ごろになって
若い個体が増えてるよ−な樹種の
加入速度は「速い」と推定されてしまう
(実際のところ,
現在のような林内環境が続くかぎりは
相対的な速さの点では優越してるんだろう).
そして,
こーいう連中が 2387 年の小川で優占的になる.
途中で撹乱が頻発しようとも.
- さて,
現状をどう判断するか.
「最善つくしてるつもり
(そう,
自分ではそのつもりなんです)
だけど,
一般うけするよーな面白い結果出せない」
何かうつ手はないか
……
ある.
見込みのありそうな策がひとつ.
しかし使いたくない.
もっとマシなやり方はないのだろーか.
- いやいや,
他にどーしようもないのは検討ずみ.
ならば
……
ということで,
小川シミュレイターに phoenix モードの追加を決定.
今までの腐れ新規加入モデルは 1999 年版であったんだけど,
この呪われた「不死鳥」更新モデルは
1998 年版
−−
一度は完全に廃棄したアイデアである.
- 非常に単純化された新規加入のサブモデル.
樹木が死ぬと同じ場所に
同じ樹種の小さな個体が
ちゃっかり生えている,
というだけのこと.
たとえばイヌブナが倒れたら,
次の瞬間にはその座標に
直径 5cm のイヌブナが居座ってる,
というモデルである.
- 森林内の個体数は増えもしなければ減りもしない.
常に一定.
- ただし,
ある樹種の「林内における占有面積」
とでもいうべき合計胸高断面積は刻々と変化し続ける.
そして,
この指標が樹種間競争の結果を反映するのである.
成長がちんたらノロい,
あるいは死んでばかりいるような樹種は
個体数は一定でも胸高断面積は減じてしまうのである.
- つまり,
この phoenix モードでシミュレイターを駆動する,
ということは
「新規加入速度なんて知らんけど,
成長速度と死ににくさで勝負つけよーぜ」
というふうにゲイムのルールを変更してるのである.
- もちろん,
実際の樹木の世代交代がこれほど単純であるはずないのだが
……
毎木データーで作れる新規加入モデルって,
こいつ (1998 年版) か一定速度の更新 (1999 年版)
ぐらいしか無い.
そりゃあ,
選抜された 24 樹種の中にはもうちょっと
ましなモデリングできるやつはあるけど
……
「ここ 100 年ほど若いモンみとらんのう,
現れてもすぐ死んでしまいおるし」
とのんびりしてる連中はどうしようもない
……
とワタシ自身を説得することに成功.
- 晩飯食ってから,
浜松町の BookPC にアクセス.
帰る前に命じておいたジョブの結果は
……
やっぱ面白くないな.
よーし.
それならば
……
- 最新のソースコードを手もとの ThinkPad に.
phoenix モードの追加はごく簡単な改造で終了.
このプログラムは面倒をことごとく
ライブラリーの関数におまかせしてしまってるので,
本体のソースコードは単純そのものである.
- 改造はすぐに終了.
こちらで試験運転してみるか.
はい,
5 ステップだけ実行
……
うう,
時間かかる.
わが ThinkPad560E ではシミュレイション
最初の 1 ステップが始まるまでに 5 分以上かかる.
24 ha 20000 本の樹木データーを読み込んで
Transformation() してるだけなんだが.
- なぜ時間かかるかといえば,
樹木たちをつみ木化する過程で
96MB つんであるメモリーを使いきってしまうんで,
Linux のキャッシャーが作動したためなのである.
つまりハードディスク上の領域の一部を
代替メモリーとして使ってる.
この機能が発動すると計算速度は
ガタ落ちになる.
- ThinkPad にとってはまさに拷問テスト.
- あまりにも遅いんで
私も座ったまま気絶してしまった.
そのまま 90 分熟睡.
いやー,
椅子が快適すぎるのも考えモノですなぁ.
- 目をさましてから,
結果を見て少々手直し.
今度は改変なったソースを浜松町に送る.
はい.
それでは phoenix モードで 400 年連続運転.
- さーて,
今晩は何時ごろになったら眠れるのだろう
……
- 今日の食卓
- 朝 (0750):
米 0.7 合.
タマネギ・ニンニクの茎・エノキダケ
の炒めもの.
- 昼 (1220):
弁当.
米 0.7 合.
タマネギ・ニンニクの茎・エノキダケ
の炒めもの.
- 晩 (2110):
米 0.6 合.
朝昼の残り.
「たまには栄養とりますか」
ということで,
旧東海道商店街の惣菜屋で買った
鶏レバーの煮込みをふた切れ.