Document

第1回 情報科学技術フォーラム
Forum on Information Technology (FIT2002)
Boxed Economy プロジェクトの紹介
井庭 崇
千葉商科大学政策情報学部 専任教員(助手)
フジタ未来経営研究所 リサーチフェロー
慶應義塾大学政策・メディア研究科
津屋隆之介
慶應義塾大学総合政策学部
森久保晴美
慶應義塾大学総合政策学部
http://www.boxed-economy.org/
Boxed Economy Project
慶應義塾大学
政策・メディア研究科
総合政策学部
環境情報学部
SFC研究所
千葉商科大学
政策情報学部
フジタ未来経営研究所
合資会社ニューメリック
井庭崇
中鉢欣秀
海保研
松澤芳昭
上橋賢一
山田悠
津屋隆之介
田中潤一郎
永見世央
森久保晴美
青山希
水鳥敬満
高部陽平
北野里美
廣兼賢治
浅加浩太郎
Boxed Economy Project への準備・立ち上げ
Sep. 1997
- Mar.1999
『複雑系入門』(NTT出版)の出版
市場シミュレーション研究
(井庭崇)
•家庭用VTRにおける規格競
争とWinner-Take-All現象
•株式市場におけるバブルの
生成と崩壊
Apr.1999
- Mar.2000
社会シミュレーションの部品の共
有化を目指した「 In-The-Boxプロ
ジェクト」を立ち上げる。
経済全体を組み込んだアドホック
なシミュレーションモデルを作成。
その結果、経済全体はあま
りにも複雑なので、ゼロから
作成することは困難であるこ
とを実感。
コンポーネントとフレーム
ワークの重要性を認識。
Apr.2000
- Aug.2000
「Boxed Economy Project」という
新しい名称のもとで再スタート
Boxed Economy 基礎モデルの初
期バージョンの開発
オブジェクト指向による分
析と設計
UML (Unified Modeling
Language: 統一モデリング言
語)の導入
Boxed Economy Project による研究開発
Sep. 2000
- Dec.2000
Boxed Economy 基礎モデルの
初期バージョンの整理・体系化
Boxed Economy Simulation
Platformのプロトタイピング
Java Beansによる実装
Boxed Economy 基礎モデ
ルの初期バージョン改良版の
実装
Jan.2001
- Jun.2001
Boxed Economy Simulation
Platformの初期バージョンの開発
Aug.2001
- Dec.2001
Boxed Economy Simulation
Platformの初期バージョンのリファ
クタリング。
デザインパターンの適用
ラショナル統一プロセス
(RUP)の一部導入
ユースケース駆動
• エクストリーム・プログラミン
グ(XP)の一部導入
• ペア・プログラミング
• ユニットテスト
Boxed Economy Simulation
Platform バージョン1.0βの開発
モデルコンポーザー
モデルコンポーネントビル
ダー
いくつかのプレゼンテーショ
ンコンポーネント
デザインパターン、RUP、
XPの導入
Agenda
1
出発点
2
動的で複雑なモデルを作成するための方法と戦略
3
シミュレーションの作成と共有のための仕組み
「Boxed Economy プロジェクトの紹介」
The Gap
相互作用
による社会
モデリングと分析の
新しい方法
社会科学
意思決定・
学習
エージェントベース
による社会・経済の
モデリングと
シミュレーション
具体的な
応用分野
マルチ
エージェント
システム
コンピュータ
サイエンス
コンピュータ
シミュレーション
エージェントベースによる社会・経済のモデリングとシミュレー
ションは、二つの側面をもっている。
これら二つの分野からのアプローチの融合が求められるが、
現状としては十分とはいえない。
The Gap
相互作用
による社会
モデリングと分析の
新しい方法
社会科学
意思決定・
学習
エージェントベース
による社会・経済の
モデリングと
シミュレーション
具体的な
応用分野
マルチ
エージェント
システム
コンピュータ
サイエンス
コンピュータ
シミュレーション
エージェントベースアプローチによって社会・経済を記
述するための基本語句 (primitive terms)とフレームワーク
の整備が必要。
The Gap
相互作用
による社会
モデリングと分析の
新しい方法
具体的な
応用分野
社会科学
意思決定・
学習
エージェントベース
による社会・経済の
モデリングと
シミュレーション
動的で複雑なモデルとシミュレーションを、効率的に
設計・実装・保守できる仕組みが必要。
マルチ
エージェント
システム
コンピュータ
サイエンス
コンピュータ
シミュレーション
The Gap → Our Solution
相互作用
による社会
モデリングと分析の
新しい方法
具体的な
応用分野
社会科学
意思決定・
学習
エージェントベース
による社会・経済の
モデリングと
シミュレーション
モデルフレームワーク
マルチ
エージェント
システム
コンピュータ
サイエンス
コンピュータ
シミュレーション
シミュレーションプラットフォーム
Agenda
1
出発点
2
動的で複雑なモデルを作成するための方法と戦略
3
シミュレーションの作成と共有のための仕組み
「Boxed Economy プロジェクトの紹介」
モデルのドメインについて考える
モデルは、体系化された何らかの言語を用いて記述され
る。
モデルで表現したいものの特徴によって、適切な記述方法
は変わってくる。
モデルの記述や蓄積を考えると、そのドメインに合った語彙
や体系を整備する必要がある。
何を表現したいのか?
社会における制度・組織・知識・技術の生成
と進化を内生的に表現したい。
経済学のコンテクストでは「複雑系経済学」
や「進化経済学」といわれるカテゴリー。
①
=
②
そのようなモデルのためには、以下の4点が
組み込まれることが重要。
① 社会が、異質性と多様性のある主体から構成
されているということ。
② 主体が原子論的な意味でのアトムではなく、
内部状態をもっているということ。
③ 情報や知識が生成され、伝達され、解釈され
るということ。
④ 主体間の関係やその意味が動的に変化する
ということ。
③
④
内部状態
モデルフレームワークの役割
現実世界の認識のための準拠枠
モデルを記述するための語彙
モデル作成者間のコミュニケーションのためのコード
モデルフレームワークの役割(ソフトウェアの側面)
モデルフレームワークに基づいたアーキテクチャのソフトウェ
アを作成することもできる。
Boxed Economy基礎モデル
現実の経済社会のもつ構造をオブジェクト指向分析によって抽
象化し作成したモデルフレームワーク
エージェントベースによる社会・経済のモデルのための基本デ
ザインを提供する
Boxed Economy 基礎モデルの中
心的なクラス図
Boxed Economy基礎モデルにおけるBehavior
外界のイベント(オブジェクトに影響を及ぼすさまざまな出来事)が発
生すると、現在の自分の状態に応じてエージェントの振舞いが決ま
る。
基礎モデルではエージェントの持つBehaviorを状態機械(state
machine)として定義している。
状態機械とは、何らかのトリガーとなるイベントを受け取って状態を遷
移させながら動くシステムである。
例: SendRequestBehaviorのステートチャート図
状態
遷移
イベント
(トリガー)
アクション
シンプルな例:
Static View
「企業が顧客のリクエストに対応する。」
World
Agent
“SampleWorld”
SocialGroup
Clock
”GlobalClock”
Location
”CellTypeLocation”
“The Kind
Corporation”
Goods
Relation
Agent
“know”
Individual
Goods
“Mr.Customer”
“request”
“reply”
シンプルな例:
Activity View
「企業が顧客のリクエストに対応する。」
Behavior
”GlobalClock”
“SendBackBehavior”
Channel
“The Kind
Corporation”
“the channel to
the corporation”
Goods
Behavior
“reply”
“SendRequestBehavior”
Channel
“CollectGoodsBehavior”
“the channel to
the sender”
Goods
“request”
“Mr.Customer”
シンプルな例:
「企業が顧客のリクエストに対応する。」
“SendBackBehavior”
“The Kind
Corporation”
“SendRequestBehavior”
“CollectGoodsBehavior”
“Mr.Customer”
シンプルな例:
State Transition View
「企業が顧客のリクエストに対応する。」
“SendBackBehavior”
“SendRequestBehavior”
ClockEvent
“request”
“reply”
“request”
ChannelEvent
“reply”
ChannelEvent
“Mr.Customer”
“The Kind
Corporation”
シンプルな例:
State Transition View
「企業が顧客のリクエストに対応する。」
“SendBackBehavior”
“SendRequestBehavior”
“reply”
ChannelEvent
“Mr.Customer”
“The Kind
Corporation”
シンプルな例:
State Transition View
「企業が顧客のリクエストに対応する。」
“SendBackBehavior”
“CollectGoodsBehavior”
“reply”
“reply”
ChannelEvent
“Mr.Customer”
“The Kind
Corporation”
Boxed Economy基礎モデルの作成
【社会集団:労働関係】 【個人:労働関係】
■要員計画行動
■就職活動行動(応募編)
■新人募集行動
■就職活動行動(雇用契約編)
■新人採用行動
■勤め行動
■勤務記録処理行動
■勤務記録行動
■時間外労働命令行動 ■労働行動
■人材育成行動
■時間外労働命令受取行動
■人物評価行動
■教育研修行動
■賃金決定行動
■給料明細書受取行動
■賃金支払行動
■辞令受取行動
■解雇予告通知行動
■解雇予告通知受取行動
■解雇行動
■希望退職行動
■退職願受取行動
■退職行動
■退職金計算行動
【社会集団:基本】
■経営戦略行動
■行動計画実行行動
【個人:生活基本】
■行動計画実行行動
■移動行動
■消費行動
【個人:政府関係】
■生活保護解約行動
■生活保護申込行動
【社会集団・個人:お金関係】
■銀行振込行動
■現金支払行動
■現金受取行動
■口座照会行動
【個人:お金関係】
■銀行に行く行動
■預金引出行動
■預金預入行動
■家計記録行動
【社会集団・個人:売買関係】
■販売行動
■在庫確認行動
■仕入れ行動
■出荷行動
■入荷行動
■商品在庫管理行動
■注文受取行動
【個人:売買関係】
■買物行動
■店舗選択行動
■商品購買行動
■受容行動
■購買前代案評価行動
【社会集団:マスコミ関係】
■新聞発行行動
■新聞紙面編集行動
■新聞制作印刷行動
■新聞発送配達行動
■情報受信行動
■情報提供行動
■財受取行動
【社会集団:生産関係】
■生産管理行動
■生産行動
【社会集団:銀行関係】
■公定歩合支払行動
■利息支払行動
■預金行動
■融資行動
■担保売却行動
■税金支払行動
■振込・引落行動
■財務行動
■口座照会行動
■公定歩合受取行動
■国債償還行動
■国債引受行動
■引出行動
【社会集団:政府関係】
■統計作成行動
■公表統計作成行動
■予算決定行動
■企業税収行動
■国債交換行動
■国債買取行動
■国債発行行動
■生活保護支給行動
■生活保護受付行動
Agenda
1
出発点
2
動的で複雑なモデルを作成するための方法と戦略
3
シミュレーションの作成と共有のための仕組み
「Boxed Economy プロジェクトの紹介」
社会科学におけるシミュレーション利用促進の鍵
プログラミングの支援
プログラム部品の再利用のための仕組み
研究プロセスを一貫して支援する統合環境
Boxed Economy Simulation Platform (BESP)
エージェントベース経済社会モデルのシミュレーショ
ンを、作成・実行・分析するためのプラットフォーム
Boxed Economy Simulation Platformの基本構造
Boxed Economy
基礎モデル
BESPでは、コンポーネントとフレームワークの考え方に基づく設計
がなされている。シミュレーションのモデルや実行環境をコンポーネ
ントとして分割して定義するため、それらを組み替えることによって
ユーザー独自のシミュレーションを柔軟かつ容易に構築できる。
Model Components
Model Container
Presentation Components
Presentation Container
BESP
Operating
System (BOS)
Boxed Box
Economy
Simulation
Platform
Java VM
プログラミングを軽減する仕組み①
package SampleMarket;
BESP モデルコンポーネントビルダー
import
import
import
import
org.boxed_economy.foundationmodel.*;
org.boxed_economy.foundationmodel.behavior.*;
org.boxed_economy.besp.foundationmodelframework.*;
org.boxed_economy.besp.foundationmodelframework.behavior.*;
/**
* OrderBehavior
*/
public class OrderBehaviorB extends AbstractBehavior {
// decide order
Action action_id_13 = new anon();
public Action getAction_id_13(){
return action_id_13;
}
この部分はモデルコンポー
ネントビルダーが生成する。
public void start() {
// Setting the state machine
BehaviorState state_id_6 = new DefaultBehaviorState(this, "");
currectState = state_id_6; // This sets pseudo-initial state
BehaviorState state_id_8 = new DefaultBehaviorState(this, "waiting market opening");
BehaviorState state_id_11 = new DefaultBehaviorState(this, "order determined");
Transition trans_id_7 = new Transition();
((DefaultBehaviorState)state_id_6).addTransition( trans_id_7);
trans_id_7.setTransitionTo(state_id_8);
Transition trans_id_9 = new Transition();
モデルコンポーネントビルダーは、シミュレー
ションにおけるエージェントの行動を記述し実装
するための支援ツールである。ユーザがGUIに
よってこの行動モデルコンポーネントの「ステー
トチャート図」を記述することで、モデルコンポー
ネントのJavaコードが出力される。これにより、
シミュレーションの作成者が書かなければなら
ないソースコードの量を減らすことができる。
// receivedEvent
trans_id_9.setAcceptEvent(AutoTransitionEvent.class);
Transition trans_id_10 = new Transition();
}
public void exit() {
}
class anon extends Action{
/**
* decide order
*/
public void doAction(Event event){
// Write the code for custom action here.
}
}
この部分に必要なカスタム
のプログラムを書く。
エージェント行動の作成を支援する「アクションテンプレート」
Action template
CreateGoods
CreateRelation
DestroyGoods
KeepChannel
PutGoodsIntoManager
PutInformationIntoMananger
TakeGoodsFromManager
TakeInformationFromManager
SendGoods
SendBackGoodsToLastSender
SendGoodsToKeptChannelSender
SendInformationContents
SendBackInformationContentsToLastSender
SendInformationContentsToKeptChannelSender
?
Guard template
IsChannelInfoEqualsBehaviorInfo
IsChannelSignalFromReciever
プログラミングを軽減する仕組み②
BESP モデルコンポーザー
モデルコンポーザーは、GUIを用いてモ
デルコンポーネントを組み合わせること
によってシミュレートしたいモデルを構
成・設定するためのプレゼンテーションコ
ンポーネントである。プログラミングを
まったく行わずに、視覚的にモデルを作
成・設定することができる
プログラム部品の再利用のための仕組み
BESP
Boxed Economy Simulation Platform
Boxed Economy 基礎モデルに基
づいて作成されたモデル部品は粒
度やモデル化の基準が等しいた
め、研究者間のモデル部品の共
有や再利用が可能となる..
研究プロセスを支援する統合環境
「制御パネル」
「空間表示ウィンドウ」
「時刻表示ウィンドウ」
「データ登録ウィンドウ」、
「グラフ表示ウィンドウ」
「モデルコンポーザー」
「モデルコンポーネントビルダー」
など
Simple SugarScape Model on BESP
Simple Call Market Model on BESP
The Gap → Our Solution
相互作用
による社会
モデリングと分析の
新しい方法
具体的な
応用分野
社会科学
意思決定・
学習
エージェントベース
による社会・経済の
モデリングと
シミュレーション
モデルフレームワーク
マルチ
エージェント
システム
コンピュータ
サイエンス
コンピュータ
シミュレーション
シミュレーションプラットフォーム
第1回 情報科学技術フォーラム
Forum on Information Technology (FIT2002)
Boxed Economy プロジェクトの紹介
1
出発点
2
動的で複雑なモデルを作成するための方法と戦略
3
シミュレーションの作成と共有のための仕組み
http://www.boxed-economy.org/