今回の内容は以下論文を大いに参考にしております。またグラフなども以下のものから引用しております。
我々が物理現象を数理モデルで書き下す際、因果的モデリングと非因果的モデリングという、大きく分けて2つのモデリング方法を利用しています。
因果的モデリング
入力と出力を明示して書き記したモデルになります。例えばプログラムでa = 2*b
と書いた場合「bの2倍をaに代入する」という意味になり、bが入力でaが出力であると明示的に決まっています。このような方法で記述したモデルを因果的モデルと言います。
代表的なシミュレーションソフトウェア……Simulink
非因果的モデリング
非因果的モデルは、因果的モデルとは対照的に入力と出力を明示していないモデルになります。例えば方程式x = 2y
は「xとyの2倍は等しい]という意味で、どちらが入力でどちらが出力かは明示されていません。このように方程式ベースで記述されたモデルを非因果的モデルと言います。
代表的なシミュレーションソフトウェア……Dymola, OpenModelica, Simscape
因果的モデリングと非因果的モデリングの普及度
冒頭で引用した論文では因果的モデリングと非因果的モデリングがそれぞれどのくらい普及しているか調査しています。 下記グラフはそれぞれの代表的なキーワードで出版物がどの程度存在するか調べたものです。
普及度は因果的モデルの圧勝です。非因果的モデリングが束になってもSimulink1つに叶いません。実際、modelicaなどは日本ではあまり普及していませんがSimulinkは大学や企業などで頻繁に使われている印象です。
また、GoogleトレンドでSimulinkとmodelicaを比較してみました。
予想通りSimulinkが大勝していますね。
因果的モデリングと非因果的モデリングの強みと弱み
因果的モデリングが普及しているということは、因果的モデリングのほうが優れているということなのでしょうか? 必ずしもそうではありません
冒頭の文献によりますと、多くの専門家は大規模システムのモデリングにおいては非因果的モデリング技術のほうが、因果的モデリング技術よりも優れていると考えているようです。
ここで、文献にある因果的モデルと非因果的モデルの強みと弱みをまとめます。
非因果的モデリング
強み
- 方程式で記述された既存の知見を容易に活用できる。
- ラピッドプロトタイピングに適している
- モデルの可読性が高い
- 教育に適している
弱み
- デバッグが難しい
- 使用者が少ない
- 大規模システムシミュレーションへの適性が限定的である。
- 教材やドキュメントが不足している
因果的モデリング
強み
- 制御分野への適性が高い
- 使用者が多い
- 大規模システムシミュレーションへの適性がある
- 商用ツールのサポートが有る
弱み
- ラピッドプロトタイピングし辛い(モデルの拡張性/再利用性が低い)
- モデルの可読性が低い
- 非因果的モデリングよりもモデリングの知識が必要とされる
- 非因果的モデリングよりも時間がかかる
非因果的モデリングの最大の弱点はデバッグの難しさです。Open Modelicaなども、かなりデバッグは難しいと私自身感じます(変数100個のうち方程式が99個しかないと言われても困るという状況が何度かあります)。ただ、モデルの可読性の高さやラピッドプロトタイピングの容易性などで非因果的モデリングは本質的には優れた技術のはずです。個人的には、非因果的モデルは概念としては優れていますが、ツールが追いついていないという印象です。
短いですが今回はここまでにします。