「講習第1回」の編集履歴(バックアップ)一覧に戻る

講習第1回 - (2005/11/27 (日) 14:38:53) のソース

*IBMのいろは
**個体ベースモデルとは
数理生態学初心者の私たちが(一応知識だけですが)知っているモデルの多く、指数成長モデルとかロトカボルテラモデルなどは、個体群のふるまいを記述するモデルです。

一方で、ここで紹介する個体ベースモデル(Individual Based Model: IBM)は文字通り個体をベースに考えたモデルです。個体をベースに、と言ってもわかりにくいかもしれませんが、要するにコンピュータのメモリの中に仮想的な生物個体を作り上げてしまうモデル化の手法です。モデルにもよりますが、各個体がさまざまな形質の表現形だけではなく、それとは別に遺伝形も持っていたり、特有の繁殖戦略や移動様式を持っていたりします。そして、メモリの中でそれらが生まれ、仮想個体同士、あるいは無生物的な環境と相互作用し、繁殖したり、移動したり、そして死んだりを繰り返していく過程を観察しようというのが IBMによる解析です。

**IBMが得意なこと
-何でもモデル化 
-言葉で書くようにモデル化 
-空間的な動態をモデル化 
-確率的、ゲーム的な現象もモデル化 

IBMではメモリ上に仮想的な生物個体を作り出すので、その個体には何だってやらせることが出来ます。個体の振る舞いについて言葉で説明できることは何でもモデル化できると言ってもいいです。また、言葉で書くようにモデルを構築できます。そのために微分方程式を書いたり解いたりする必要はありませんし、数学的な素養はほとんど必要有りません。素人がモデルを作って解析することが出来るようになりました。これはIBMの、語られることの少ない、しかし極めて大きな利点の一つだと思います。

また、IBMで記述すれば空間的な動態も拡散方程式などを使うことなく簡単にモデル化できます。また、確率的でランダムな効果の影響を見ることも得意です(ただ、力任せにたくさん計算してしまうだけですが)。生物界の現象の中には、配偶や捕食回避など相手の出方によってこちらの利益が変わってくるゲーム的な要素を持ったものがありますが、自分も相手も初めから個体として扱っているのでそういう現象の扱いも得意です。

**IBMが苦手なこと
-結果や性質をすっきり(解析的に)予想する 
-個体群レベルでの動態を直接的・トップダウン的に扱うこと 

IBMにも苦手なことがあります。数式で記述しないことは利点でもありますが、そのため「解く」という解法は不可能です。IBMはとにかく力任せなのです。それから、よくある個体群の動態モデルは個体群を直接扱扱うので、「個体群の成長曲線はこんな関数で記述しよう」というような(個体から見て)トップダウン的なやり方が通用します。一方で、IBMではもっぱら個体の振る舞いだけを扱うので、「個体群全体で見たときにこんな風に振る舞うようにしよう」ということが、少なくとも僕には、しばしば難しいです。たとえば、ロジスティック式と寸分違わぬ個体群成長をIBMで記述することは、今の僕のスキルでは難しいです(ちょっとくらい違っても実用的には困っていませんけど)。

**IBMに必要なもの
-IBMに適したプログラミング言語とそれを使う技術 
-速いパソコンとそれなりの根気 
-結果をわかりやすく示すためのセンス 

解析的なモデルであれば紙と鉛筆で解くことも可能かもしれませんが、IBMはコンピュータがないと絶対に無理です。また、自分が解析したいモデルをコンピュータプログラムとしてコンピュータで実行可能な形に作り上げなければいけません。

そのために必要なものがプログラミング言語です。プログラマー(僕やあなたのことです)はこの言語を使い、生物学的な論理をコンピュータに分かるように翻訳していきます。プログラミング言語には様々なものがあります。コンピュータ初心者向けによく使われるBASIC(僕は3回生の時にこれでロトカボルテラモデルを作りました)、科学計算が得意なFortran、最近ではあらゆる分野でもっともメジャーと言えるかもしれないC言語やその子孫などなど、、、数え上げたらきりがありませんが、IBMに適した言語というのが実はあります。これについては後述します。(これを書いている時点では、まだどの言語を使うか悩んでいます。これついては[[languages]]に書いていますので、興味のある方はどうぞ。)

また、既に書きましたがIBMは力任せのモデルです。ひたすら計算を繰り返し、一連のパラメータについての計算が終わるまでに数日かかるなんてことはザラです。なので、パソコンは速ければ速いほどありがたいです。ただし、そこそこ速いパソコンを複数台用意する方が総合的なパフォーマンスは向上したりします(僕はそうしてます。部屋にはモデル解析専用のPCがほとんど常時稼働しています。)。また、前回の計算が終わったら次の計算を始め…とコツコツ作業を進める根気もあると効率的です(が、僕は持ち合わせていません)。このあたりの計算のスタイルは必要な計算量や自分の性格などと相談しながら決めて下さい。

僕がモデルを始めるようになって、モデル屋さんの仕事のスタイルに興味を持ち何人かに「モデルの仕事には何が大事ですか?」と質問しました。今までのところ全員が同様に「速いパソコンより、プレゼンのセンス」と答えました。その中にIBMをやっている方はいなかったので、パソコンの速度がそれほど重要視されていないというのはあるかもしれませんが、確かに結果を示すためのセンスは要求されます。実際の生物と異なり、モデルでは全てのパラメータを自在にいじることが出来ます。その分、複数のパラメータが同時に変化する場合の挙動など、普通は分かりそうにないことを分かりやすく示すことが必要です。さらに、「モデルなんて好き勝手に作れるんだし、所詮パソコン遊び」と見られないためには、説得力のある結果の提示方法や理屈の説明方法が極めて重要でしょう。実際に自分のモデルを作るまえから、他のモデル研究のプレゼン方法を研究しておくのはかなり重要だと思います(僕は勉強不足なので、僕には聞かないで下さい。勉強して僕に教えて下さい。)。
記事メニュー
人気記事ランキング
目安箱バナー