« System Dynamics(その6)~ビア・ゲーム3~ | トップページ | アメリカ »

2007年7月28日 (土)

System Dynamics(その7)~大事なこと~

20070727_sd7_1 All models are wrong, but some are useful.
「完璧なモデルはない、それでも役に立つモデルもある」

何かしらのプログラミングやシミュレーションをする人ならこの言葉を聞いたことはあるんじゃないだろうか。当然世の中で起こる事を完璧に数式化できる訳ではないので当たり前の事を言っているに過ぎない。なのにこの言葉が有名なのは、その当たり前のことが大切なのにもかかわらず忘れられ易いからではないだろうか。
逆説的に考えて、現象を完璧に再現するように頑張ったした結果、複雑で使いにくくて仕方がないモデルができあがってしまう、なんてことが無いようにとの警告だととらえてもいいと思う。

System Dynamicsのモデルを構築する場合にもこの心構えは非常に重要だ。
それでもMITの授業でも教授がモデルを組んで何かしらの状況を説明しようとしたときに必ずと言っていいほど「実際の世界ではこういう要素も関係してくると思うんですけど」とか「これってもう少し細かく分解できると思うんですけど」という質問が出る。大体の場合は間違ってはいないからやっかいなのだ。
大事なのは、

  • 何を考えるためのモデルなのか
  • 最終的に持って行きたい望ましい状況は何か
  • そのためにはどんなパラメータの振る舞いを知る必要があるのか
  • そのパラメータの振る舞いに大きな影響を与える重要な要因は何か

であって、誰からも揚げ足を取られない正確で精密なモデルを組むことが目的ではない。モデルはいくらでも複雑に出来るし細かいチューニングが可能だ。しかし細部にこだわるあまり全体像を見失ってしまっては意味がないし、そのチューニングにかかる時間と効果を考える必要もある。
どうしても細部へこだわる必要があるなら、まずは出来るだけシンプルなモデルで全体像をとらえ、そこから徐々に重要度の低い要素をくわえていくなり、ひとまとめにしていた要素を細かく分解していくことをお勧めする。局所的に作り込んでいくと全体のバランスを取るのに非常に苦労する。

それにSystem Dynamicsの目的は全体のダイナミクスを自分が理解することであって、「モデルを組んでシミュレーションしたら、こんな結果が出ましたので問題ありません」だけでは全く意味がない。System Dynamicsのモデリング手法を使ってシミュレーションを行った結果を用いて意志決定を自動化しようというのはとんでもない間違いだ。
繰り返すけれどもSystem Dynamicsはシステム全体の振る舞いを包括的に把握することであって、数値シミュレーションは頭の中で行う感覚的、論理的なシミュレーションが合っているのか、それとも間違っているならどこに思い違いがあるのか発見することを助けてくれるものだと思った方が良いだろう。

論理を考え、それに基づいて善し悪しの判断を行うのはあくまで自分であって、System Dynamicsはそれを視覚的、論理的、数学的に補助してくれるツールだ。判断をツールに預けてしまってはならない。
System Dynamicsに限らず、シミュレーションは便利なもので自分で考えずとも結果を出してくれるので、つい頼ってしまうかもしれないけれども、それは本当に危険なことなので自戒の意味も込めて強調しておきたい。

いい加減長くなってきたので次回はSystem Dynamicsについてとりあえずの最終回。
どうすればいいモデルが組めるのか、信頼性の高いシミュレーションが出来るのかについて。

« System Dynamics(その6)~ビア・ゲーム3~ | トップページ | アメリカ »

コメント

コメントを書く

(ウェブ上には掲載しません)

トラックバック

この記事のトラックバックURL:
http://app.f.cocolog-nifty.com/t/trackback/176692/7303763

この記事へのトラックバック一覧です: System Dynamics(その7)~大事なこと~:

« System Dynamics(その6)~ビア・ゲーム3~ | トップページ | アメリカ »