社会シミュレーションのための モデル作成環境

修士論文2004年度
社会シミュレーションのための
モデル作成環境
~図解によるシミュレーション・モデルの作成~
慶應義塾大学大学院 政策・メディア研究科
青山 希
Copyright © 2005, Nozomu Aoyama Keio University SFC. All rights reserved.
研究概要
研究背景
コンピュータ・シミュレーションは社会の特徴についての
「理解」を深めるための道具として利用することができる
社会シミュレーションのためのモデルを作成するためには
ソースコードを記述しなければならない
図解によるモデル作成環境「Component Builder」
モデル作成のプロセスを概念モデリングの段階から支援する
UMLと独自に定義したアクション記述言語
「Action Block Language」(ABL) を用い,
図解でモデルを記述する
図解から実行可能なソースコードを生成する
Boxed Economy Projectの取り組み
モデルフレームワーク(BEFM)
シミュレーションのモデル作成のための指針
モデルを記述する際に頻繁に登場する
要素とその構造が定義されている
シミュレーション・プラットフォーム(BESP)
BEFMに基づいて作成されたモデルを
シミュレーションとして実行するための
ソフトウェア
モデル作成プロセスの定義
概念モデリング(Conceptual Modeling),
シミュレーションデザイン(Simulation Design),
その検証(Verification)を行うことで
社会シミュレーションが可能になる
本研究の問題意識
既存のシミュレーション環境の問題点
モデル作成プロセスのうち,概念モデリングや,
シミュレーションデザインのフェーズを支援していない
特定のプログラミング言語の文法を理解していないと
モデルを作成することができない
モデルをソースコードで記述するため
本質的なモデリング作業に集中しにくい
モデル作成環境『Component Builder』
概念モデリングフェーズと
シミュレーションデザインフェーズの支援
UMLと,社会シミュレーションのモデル作成に特化
したアクション記述言語「Action Block Language」
(ABL) を用い,図解でモデルを記述する
図解で記述したモデルからシミュレーションとして
実行可能なソースコードを自動生成する
Component Builderによる概念モデリング
①
②
③
①クラス図でシミュレーションに登場する概念を定義する
②アクティビティ図でエージェントの活動を分析する
③シーケンス図でエージェント間の相互作用を分析する
Component Builderによるシミュレーションデザイン
①
②
③
①クラス図で静的な構造を設計する
②ステートチャート図で動的な振る舞いを設計する
③アクション記述言語(ABL)でアクションを記述する
デモ:パン屋のサンプルモデル
簡単な商取引をシミュレートしたモデル
「パン屋さん」は「パン」を,
「お客さん」は「お金」を持っている
お金とパンをやりとりしていく
Action Block Language(ABL)
社会シミュレーションのモデル作成に特化した言語
BEFMの用語(Agent,Relationなど)を基にして定義されている
論理的な構造(ブロック)と,制御構造(条件分岐,繰り返し)を記述
することができる
モデル作成に頻出する処理(アクションパーツ)が
語彙として定義されている
変数を利用することができる
アクションパーツ
アクションを記述する際に頻出する処理の集まり
16のカテゴリに分類されて約150個定義されている
引数(パラメータ)と戻り値(結果)を持つ(ない場合もある)
アクションパーツの例
•このAgentが持つInformationを取得する
•引数:取得するInformationの種類
•戻り値:取得したInformation
•このAgentから他のAgentへRelationを結ぶ
•引数:Relationを結ぶ相手のAgent,結ぶRelationの種類
•Agentの集合からランダムで N人の Agentを取り出す
•引数:抽出元のAgentの集合,抽出するAgentの数
•戻り値:抽出したN人のAgentの集合
ABLで記述されたアクション
図解によるモデル作成の意義
ソースコードよりも抽象度の高い図解によってモデルを
作成することで,反復的なモデル作成がしやすくなる
設計をソースコードに変換する作業がなくなることで,
バグの混入が少なくなる
ソースコードを記述しないため作業量が減少する
特定のプログラミング言語の知識がなくても,モデルを作成し
たり,他人が作ったモデルを理解したりすることができる
Component Builderによる既存モデルの再現
「繰り返し囚人のジレンマ」モデルの再現
利害が対立する利己的な主体の間で
どのように協調関係が形成されて
いくのかを調べるための枠組み
(Axelrod 1997, 井庭2003)
再現の結果
Java言語でモデルを作成した場合
モデル化の作業+6899行のソースコード
↓
Component Builderを利用してモデルを作成した場合
モデル化の作業+ 715行のソースコード
Component Builderの試用実験
小規模なモデルを作成する試用実験
被験者 ・・・学生9名
前提条件・・・プログラミング,モデル作成ともに1回以上の
経験がある
実施形態・・・クラス図,ステートチャート図と,アクションの
論理的な設計を配布し,アクションをABLで
記述してもらう
結果
プログラミングやモデル作成の経験が少なくても
モデルを作成することができた
ソースコードではなく図解で記述することで
論理的な構造を意識しやすいという感想が得られた
ABLを使っても,論理的な思考能力や,プログラミングの
概念の理解は必要であることが改めて明らかになった
まとめ
図解によるモデル作成環境
「Component Builder」の提案
モデル作成における概念モデリング,
設計のフェーズを支援する
特定のプログラミング言語の知識がなくても
モデルを作成することができる
抽象度の高い図解によってモデルを作成することで,モデ
ル化の作業に集中することができる
今後の展望
全くソースコードを書く必要がないような仕組みを検討する
プログラミングの概念(オブジェクト、手続き、変数、データ
構造)や,論理的な思考能力を育成する環境としての
可能性を模索する