Boxed Economy プロジェクトの紹介 - PlatBox...

18
Boxed Economy Boxed Economy プロジェクトの紹介 プロジェクトの紹介 井庭 崇 千葉商科大学政策情報学部 専任教員(助手) フジタ未来経営研究所 リサーチフェロー 慶應義塾大学政策・メディア研究科 津屋隆之介 慶應義塾大学総合政策学部 森久保晴美 慶應義塾大学総合政策学部 http://www.boxed-economy.org/ 1回 情報科学技術フォーラム Forum on Information Technology (FIT2002) Boxed Economy Project Boxed Economy Project 慶應義塾大学 政策・メディア研究科 総合政策学部 環境情報学部 SFC研究所 井庭崇 中鉢欣秀 海保研 松澤芳昭 千葉商科大学 政策情報学部 フジタ未来経営研究所 合資会社ニューメリック 上橋賢一 山田悠 津屋隆之介 田中潤一郎 高部陽平 北野里美 廣兼賢治 浅加浩太郎 永見世央 森久保晴美 青山希 水鳥敬満

Transcript of Boxed Economy プロジェクトの紹介 - PlatBox...

Page 1: Boxed Economy プロジェクトの紹介 - PlatBox Projectplatbox.sfc.keio.ac.jp/jp/papers/fit2002/box-fit2002-presentation.pdf · 3 Agenda 2 動的で複雑なモデルを作成するための方法と戦略

1

Boxed Economy Boxed Economy プロジェクトの紹介プロジェクトの紹介

井庭 崇千葉商科大学政策情報学部 専任教員(助手)

フジタ未来経営研究所 リサーチフェロー

慶應義塾大学政策・メディア研究科

津屋隆之介慶應義塾大学総合政策学部

森久保晴美慶應義塾大学総合政策学部

http://www.boxed-economy.org/

第1回 情報科学技術フォーラムForum on Information Technology (FIT2002)

Boxed Economy ProjectBoxed Economy Project

慶應義塾大学政策・メディア研究科総合政策学部環境情報学部SFC研究所

井庭崇中鉢欣秀海保研松澤芳昭

千葉商科大学政策情報学部

フジタ未来経営研究所

合資会社ニューメリック

上橋賢一山田悠津屋隆之介田中潤一郎

高部陽平北野里美廣兼賢治浅加浩太郎

永見世央森久保晴美青山希水鳥敬満

Page 2: Boxed Economy プロジェクトの紹介 - PlatBox Projectplatbox.sfc.keio.ac.jp/jp/papers/fit2002/box-fit2002-presentation.pdf · 3 Agenda 2 動的で複雑なモデルを作成するための方法と戦略

2

Boxed Economy Project Boxed Economy Project への準備・立ち上げへの準備・立ち上げ

Apr.2000- Aug.2000

Apr.2000- Aug.2000

Apr.1999- Mar.2000

Apr.1999- Mar.2000

Sep. 1997- Mar.1999

Sep. 1997- Mar.1999

『複雑系入門』(NTT出版)の出版

市場シミュレーション研究(井庭崇)

•家庭用VTRにおける規格競争とWinner-Take-All現象

•株式市場におけるバブルの生成と崩壊

『複雑系入門』(NTT出版)の出版

市場シミュレーション研究(井庭崇)

•家庭用VTRにおける規格競争とWinner-Take-All現象

•株式市場におけるバブルの生成と崩壊

社会シミュレーションの部品の共有化を目指した「 In-The-Boxプロ

ジェクト」を立ち上げる。

経済全体を組み込んだアドホック

なシミュレーションモデルを作成。その結果、経済全体はあま

りにも複雑なので、ゼロから作成することは困難であることを実感。コンポーネントとフレーム

ワークの重要性を認識。

社会シミュレーションの部品の共有化を目指した「 In-The-Boxプロ

ジェクト」を立ち上げる。

経済全体を組み込んだアドホック

なシミュレーションモデルを作成。その結果、経済全体はあま

りにも複雑なので、ゼロから作成することは困難であることを実感。コンポーネントとフレーム

ワークの重要性を認識。

「Boxed Economy Project」という

新しい名称のもとで再スタート

Boxed Economy 基礎モデルの

初期バージョンの開発オブジェクト指向による分

析と設計UML (Unified Modeling

Language: 統一モデリング言語)の導入

「Boxed Economy Project」という

新しい名称のもとで再スタート

Boxed Economy 基礎モデルの

初期バージョンの開発オブジェクト指向による分

析と設計UML (Unified Modeling

Language: 統一モデリング言語)の導入

Boxed Economy Boxed Economy Project Project にによる研究開発よる研究開発

Aug.2001- Dec.2001

Aug.2001- Dec.2001

Jan.2001- Jun.2001

Jan.2001- Jun.2001

Sep. 2000- Dec.2000

Sep. 2000- Dec.2000

Boxed Economy 基礎モデルの

初期バージョンの整理・体系化

Boxed Economy Simulation Platformのプロトタイピング

Java Beansによる実装Boxed Economy 基礎モ

デルの初期バージョン改良版の実装

Boxed Economy 基礎モデルの

初期バージョンの整理・体系化

Boxed Economy Simulation Platformのプロトタイピング

Java Beansによる実装Boxed Economy 基礎モ

デルの初期バージョン改良版の実装

Boxed Economy Simulation Platformの初期バージョンの開発

デザインパターンの適用

ラショナル統一プロセス(RUP)の一部導入

ユースケース駆動

• エクストリーム・プログラミング(XP)の一部導入

• ペア・プログラミング• ユニットテスト

Boxed Economy Simulation Platformの初期バージョンの開発

デザインパターンの適用

ラショナル統一プロセス(RUP)の一部導入

ユースケース駆動

• エクストリーム・プログラミング(XP)の一部導入

• ペア・プログラミング• ユニットテスト

Boxed Economy Simulation Platformの初期バージョンのリファ

クタリング。

Boxed Economy Simulation Platform バージョン1.0βの開発

モデルコンポーザーモデルコンポーネントビル

ダーいくつかのプレゼンテーショ

ンコンポーネントデザインパターン、RUP、

XPの導入

Boxed Economy Simulation Platformの初期バージョンのリファ

クタリング。

Boxed Economy Simulation Platform バージョン1.0βの開発

モデルコンポーザーモデルコンポーネントビル

ダーいくつかのプレゼンテーショ

ンコンポーネントデザインパターン、RUP、

XPの導入

Page 3: Boxed Economy プロジェクトの紹介 - PlatBox Projectplatbox.sfc.keio.ac.jp/jp/papers/fit2002/box-fit2002-presentation.pdf · 3 Agenda 2 動的で複雑なモデルを作成するための方法と戦略

3

AgendaAgenda

2 動的で複雑なモデルを作成するための方法と戦略動的で複雑なモデルを作成するための方法と戦略

3 シミュレーションのシミュレーションの作成と共有のための仕組み作成と共有のための仕組み

1 出発点出発点

「「Boxed Economy Boxed Economy プロジェクトの紹介」プロジェクトの紹介」

The GapThe Gap

コンピュータサイエンス

コンピュータシミュレーション

マルチエージェントシステム

エージェントベースによる社会・経済のモデリングとシミュレーションは、二つの側面をもっている。

エージェントベースによる社会・経済の

モデリングとシミュレーション

モデリングと分析の新しい方法

具体的な応用分野

社会科学

相互作用による社会

意思決定・学習

これら二つの分野からのアプローチの融合が求められるが、現状としては十分とはいえない。

Page 4: Boxed Economy プロジェクトの紹介 - PlatBox Projectplatbox.sfc.keio.ac.jp/jp/papers/fit2002/box-fit2002-presentation.pdf · 3 Agenda 2 動的で複雑なモデルを作成するための方法と戦略

4

The GapThe Gap

コンピュータサイエンス

コンピュータシミュレーション

マルチエージェントシステム

エージェントベースによる社会・経済の

モデリングとシミュレーション

モデリングと分析の新しい方法

具体的な応用分野

社会科学

相互作用による社会

意思決定・学習

エージェントベースアプローチによって社会・経済を記述するための基本語句 (primitive terms)とフレームワークの整備が必要。

The GapThe Gap

コンピュータサイエンス

コンピュータシミュレーション

マルチエージェントシステム

エージェントベースによる社会・経済の

モデリングとシミュレーション

モデリングと分析の新しい方法

具体的な応用分野

社会科学

相互作用による社会

意思決定・学習

動的で複雑なモデルとシミュレーションを、効率的に

設計・実装・保守できる仕組みが必要。

Page 5: Boxed Economy プロジェクトの紹介 - PlatBox Projectplatbox.sfc.keio.ac.jp/jp/papers/fit2002/box-fit2002-presentation.pdf · 3 Agenda 2 動的で複雑なモデルを作成するための方法と戦略

5

The GapThe Gap

コンピュータサイエンス

コンピュータシミュレーション

マルチエージェントシステム

エージェントベースによる社会・経済の

モデリングとシミュレーション

モデリングと分析の新しい方法

具体的な応用分野

社会科学

相互作用による社会

意思決定・学習

モデルフレームワーク シミュレーションプラットフォーム

→→ Our SolutionOur Solution

AgendaAgenda

2

3 シミュレーションの作成と共有のための仕組みシミュレーションの作成と共有のための仕組み

1

動的で複雑なモデルを作成するための方法と戦略動的で複雑なモデルを作成するための方法と戦略

出発点出発点

「「Boxed Economy Boxed Economy プロジェクトの紹介」プロジェクトの紹介」

Page 6: Boxed Economy プロジェクトの紹介 - PlatBox Projectplatbox.sfc.keio.ac.jp/jp/papers/fit2002/box-fit2002-presentation.pdf · 3 Agenda 2 動的で複雑なモデルを作成するための方法と戦略

6

モデルのドメインについて考えるモデルのドメインについて考える

モデルは、体系化された何らかの言語を用いて記述される。

モデルで表現したいものの特徴によって、適切な記述方法は変わってくる。

モデルの記述や蓄積を考えると、そのドメインに合った語彙や体系を整備する必要がある。

何を表現したいのか?何を表現したいのか?

社会における制度・組織・知識・技術の生成と進化を内生的に表現したい。

経済学のコンテクストでは「複雑系経済学」や「進化経済学」といわれるカテゴリー。

そのようなモデルのためには、以下の4点が組み込まれることが重要。

① 社会が、異質性と多様性のある主体から構成されているということ。

② 主体が原子論的な意味でのアトムではなく、内部状態をもっているということ。

③ 情報や知識が生成され、伝達され、解釈されるということ。

④ 主体間の関係やその意味が動的に変化するということ。

=

内部状態②

Page 7: Boxed Economy プロジェクトの紹介 - PlatBox Projectplatbox.sfc.keio.ac.jp/jp/papers/fit2002/box-fit2002-presentation.pdf · 3 Agenda 2 動的で複雑なモデルを作成するための方法と戦略

7

モデルフレームワークの役割モデルフレームワークの役割

現実世界の認識のための準拠枠

モデルを記述するための語彙

モデル作成者間のコミュニケーションのためのコード

モデルフレームワークの役割(ソフトウェアの側面)モデルフレームワークの役割(ソフトウェアの側面)

モデルフレームワークに基づいたアーキテクチャのソフトウェアを作成することもできる。

Page 8: Boxed Economy プロジェクトの紹介 - PlatBox Projectplatbox.sfc.keio.ac.jp/jp/papers/fit2002/box-fit2002-presentation.pdf · 3 Agenda 2 動的で複雑なモデルを作成するための方法と戦略

8

Boxed EconomyBoxed Economy基礎モデル基礎モデル

現実の経済社会のもつ構造をオブジェクト指向分析によって抽象化し作成したモデルフレームワーク

エージェントベースによる社会・経済のモデルのための基本デザインを提供する

Boxed Economy 基礎モデルの中

心的なクラス図

Boxed EconomyBoxed Economy基礎モデルにおける基礎モデルにおけるBehaviorBehavior

外界のイベント(オブジェクトに影響を及ぼすさまざまな出来事)が発生すると、現在の自分の状態に応じてエージェントの振舞いが決まる。

基礎モデルではエージェントの持つBehaviorを状態機械(state machine)として定義している。

状態機械とは、何らかのトリガーとなるイベントを受け取って状態を遷移させながら動くシステムである。

例: SendRequestBehaviorのステートチャート図

状態

遷移

イベント(トリガー)

アクション

Page 9: Boxed Economy プロジェクトの紹介 - PlatBox Projectplatbox.sfc.keio.ac.jp/jp/papers/fit2002/box-fit2002-presentation.pdf · 3 Agenda 2 動的で複雑なモデルを作成するための方法と戦略

9

World

“SampleWorld”

Location

”CellTypeLocation”

シンプルな例シンプルな例::「企業が顧客のリクエストに対応する。」「企業が顧客のリクエストに対応する。」

Agent

Individual

Agent

SocialGroup

Relation

“know”

Clock

“Mr.Customer”

”GlobalClock”Goods

“reply”

“The KindCorporation”

Goods

“request”

Static View

シンプルな例シンプルな例::「企業が顧客のリクエストに対応する。」「企業が顧客のリクエストに対応する。」

Behavior

“Mr.Customer”

“The KindCorporation”

Behavior

“SendRequestBehavior”

“CollectGoodsBehavior”

“SendBackBehavior”Channel

”GlobalClock”

“SendRequestBehavior”

“SendBackBehavior”

“the channel tothe sender”

Channel

Goods

“reply”

“request”

“CollectGoodsBehavior”

“the channel tothe corporation”

Goods

Activity View

Page 10: Boxed Economy プロジェクトの紹介 - PlatBox Projectplatbox.sfc.keio.ac.jp/jp/papers/fit2002/box-fit2002-presentation.pdf · 3 Agenda 2 動的で複雑なモデルを作成するための方法と戦略

10

シンプルな例シンプルな例::「企業が顧客のリクエストに対応する。」「企業が顧客のリクエストに対応する。」

“Mr.Customer”

“SendRequestBehavior”

“CollectGoodsBehavior”

“SendBackBehavior”

“The KindCorporation”

シンプルな例シンプルな例::「企業が顧客のリクエストに対応する。」「企業が顧客のリクエストに対応する。」

“Mr.Customer”

“The KindCorporation”

State Transition View

“SendRequestBehavior” “SendBackBehavior”

ClockEvent

“request”

ChannelEvent

“request”“reply”

ChannelEvent

“reply”

Page 11: Boxed Economy プロジェクトの紹介 - PlatBox Projectplatbox.sfc.keio.ac.jp/jp/papers/fit2002/box-fit2002-presentation.pdf · 3 Agenda 2 動的で複雑なモデルを作成するための方法と戦略

11

“SendRequestBehavior”

シンプルな例シンプルな例::「企業が顧客のリクエストに対応する。」「企業が顧客のリクエストに対応する。」

“Mr.Customer”

“The KindCorporation”

State Transition View

“SendBackBehavior”

ChannelEvent

“reply”

“CollectGoodsBehavior”

シンプルな例シンプルな例::「企業が顧客のリクエストに対応する。」「企業が顧客のリクエストに対応する。」

“Mr.Customer”

“The KindCorporation”

State Transition View

“SendBackBehavior”

ChannelEvent

“reply”

“reply”

Page 12: Boxed Economy プロジェクトの紹介 - PlatBox Projectplatbox.sfc.keio.ac.jp/jp/papers/fit2002/box-fit2002-presentation.pdf · 3 Agenda 2 動的で複雑なモデルを作成するための方法と戦略

12

Boxed EconomyBoxed Economy基礎モデルの作成基礎モデルの作成

【社会集団:政府関係】■統計作成行動■公表統計作成行動■予算決定行動■企業税収行動■国債交換行動■国債買取行動■国債発行行動■生活保護支給行動■生活保護受付行動

【社会集団:労働関係】■要員計画行動■新人募集行動■新人採用行動■勤務記録処理行動■時間外労働命令行動■人材育成行動■人物評価行動■賃金決定行動■賃金支払行動■解雇予告通知行動■解雇行動■退職願受取行動■退職金計算行動

【社会集団:マスコミ関係】■新聞発行行動■新聞紙面編集行動■新聞制作印刷行動■新聞発送配達行動■情報受信行動■情報提供行動■財受取行動

【社会集団:基本】■経営戦略行動■行動計画実行行動

【社会集団・個人:お金関係】■銀行振込行動■現金支払行動■現金受取行動■口座照会行動

【社会集団・個人:売買関係】■販売行動■在庫確認行動■仕入れ行動■出荷行動■入荷行動■商品在庫管理行動■注文受取行動

【社会集団:生産関係】■生産管理行動■生産行動

【個人:労働関係】■就職活動行動(応募編)■就職活動行動(雇用契約編)■勤め行動■勤務記録行動■労働行動■時間外労働命令受取行動■教育研修行動■給料明細書受取行動■辞令受取行動■解雇予告通知受取行動■希望退職行動■退職行動

【個人:生活基本】■行動計画実行行動■移動行動■消費行動

【個人:お金関係】■銀行に行く行動■預金引出行動■預金預入行動■家計記録行動

【個人:売買関係】■買物行動■店舗選択行動■商品購買行動■受容行動■購買前代案評価行動

【個人:政府関係】■生活保護解約行動■生活保護申込行動

【社会集団:銀行関係】■公定歩合支払行動■利息支払行動■預金行動■融資行動■担保売却行動■税金支払行動■振込・引落行動■財務行動■口座照会行動■公定歩合受取行動■国債償還行動■国債引受行動■引出行動

AgendaAgenda

2

3

1

動的で複雑なモデルを作成するための方法と戦略動的で複雑なモデルを作成するための方法と戦略

出発点出発点

シミュレーションの作成と共有のための仕組みシミュレーションの作成と共有のための仕組み

「「Boxed Economy Boxed Economy プロジェクトの紹介」プロジェクトの紹介」

Page 13: Boxed Economy プロジェクトの紹介 - PlatBox Projectplatbox.sfc.keio.ac.jp/jp/papers/fit2002/box-fit2002-presentation.pdf · 3 Agenda 2 動的で複雑なモデルを作成するための方法と戦略

13

社会科学におけるシミュレーション利用促進の鍵社会科学におけるシミュレーション利用促進の鍵

プログラミングの支援

プログラム部品の再利用のための仕組み

研究プロセスを一貫して支援する統合環境

BoxedBoxed Economy Simulation Platform (BESP)Economy Simulation Platform (BESP)

エージェントベース経済社会モデルのシミュレーションを、作成・実行・分析するためのプラットフォーム

Page 14: Boxed Economy プロジェクトの紹介 - PlatBox Projectplatbox.sfc.keio.ac.jp/jp/papers/fit2002/box-fit2002-presentation.pdf · 3 Agenda 2 動的で複雑なモデルを作成するための方法と戦略

14

Java VM

BESPBoxed Economy Simulation Platform

Boxed Economy基礎モデル

Boxed Economy Simulation PlatformBoxed Economy Simulation Platformの基本構造の基本構造

Box Operating System (BOS)

Model Container

Model Components

Presentation Container

Presentation Components

BESPでは、コンポーネントとフレームワークの考え方に基づく設計

がなされている。シミュレーションのモデルや実行環境をコンポーネントとして分割して定義するため、それらを組み替えることによってユーザー独自のシミュレーションを柔軟かつ容易に構築できる。

プログラミングを軽減する仕組みプログラミングを軽減する仕組み①①

BESP モデルコンポーネントビルダーpackage SampleMarket;

import org.boxed_economy.foundationmodel.*;import org.boxed_economy.foundationmodel.behavior.*;import org.boxed_economy.besp.foundationmodelframework.*;import org.boxed_economy.besp.foundationmodelframework.behavior.*;

/*** OrderBehavior*/public class OrderBehaviorB extends AbstractBehavior {

// decide orderAction action_id_13 = new anon();public Action getAction_id_13(){

return action_id_13;}

public void start() {// Setting the state machineBehaviorState state_id_6 = new DefaultBehaviorState(this, "");currectState = state_id_6; // This sets pseudo-initial stateBehaviorState 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();

// receivedEventtrans_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.}

}

モデルコンポーネントビルダーは、シミュレーションにおけるエージェントの行動を記述し実装するための支援ツールである。ユーザがGUIによってこの行動モデルコンポーネントの「ステートチャート図」を記述することで、モデルコンポーネントのJavaコードが出力される。これにより、

シミュレーションの作成者が書かなければならないソースコードの量を減らすことができる。

この部分はモデルコンポーネントビルダーが生成する。

この部分に必要なカスタムのプログラムを書く。

Page 15: Boxed Economy プロジェクトの紹介 - PlatBox Projectplatbox.sfc.keio.ac.jp/jp/papers/fit2002/box-fit2002-presentation.pdf · 3 Agenda 2 動的で複雑なモデルを作成するための方法と戦略

15

エージェント行動の作成を支援する「アクションテンプレート」エージェント行動の作成を支援する「アクションテンプレート」

CreateGoodsCreateRelationDestroyGoodsKeepChannelPutGoodsIntoManagerPutInformationIntoManangerTakeGoodsFromManagerTakeInformationFromManagerSendGoodsSendBackGoodsToLastSenderSendGoodsToKeptChannelSenderSendInformationContentsSendBackInformationContentsToLastSenderSendInformationContentsToKeptChannelSender

Action template

IsChannelInfoEqualsBehaviorInfoIsChannelSignalFromReciever

Guard template?

プログラミングを軽減する仕組みプログラミングを軽減する仕組み②②

モデルコンポーザーは、GUIを用いてモ

デルコンポーネントを組み合わせることによってシミュレートしたいモデルを構成・設定するためのプレゼンテーションコンポーネントである。プログラミングをまったく行わずに、視覚的にモデルを作成・設定することができる

BESP モデルコンポーザー

Page 16: Boxed Economy プロジェクトの紹介 - PlatBox Projectplatbox.sfc.keio.ac.jp/jp/papers/fit2002/box-fit2002-presentation.pdf · 3 Agenda 2 動的で複雑なモデルを作成するための方法と戦略

16

BESPBoxed Economy Simulation Platform

プログラム部品の再利用のための仕組みプログラム部品の再利用のための仕組み

Boxed Economy 基礎モデルに基

づいて作成されたモデル部品は粒度やモデル化の基準が等しいため、研究者間のモデル部品の共有や再利用が可能となる..

研究プロセスを支援する統合環境研究プロセスを支援する統合環境

「制御パネル」

「空間表示ウィンドウ」

「時刻表示ウィンドウ」

「データ登録ウィンドウ」、

「グラフ表示ウィンドウ」

「モデルコンポーザー」

「モデルコンポーネントビルダー」

など

Page 17: Boxed Economy プロジェクトの紹介 - PlatBox Projectplatbox.sfc.keio.ac.jp/jp/papers/fit2002/box-fit2002-presentation.pdf · 3 Agenda 2 動的で複雑なモデルを作成するための方法と戦略

17

Simple Simple SugarScapeSugarScape Model onModel on BESPBESP

Simple Call Market Model on BESPSimple Call Market Model on BESP

Page 18: Boxed Economy プロジェクトの紹介 - PlatBox Projectplatbox.sfc.keio.ac.jp/jp/papers/fit2002/box-fit2002-presentation.pdf · 3 Agenda 2 動的で複雑なモデルを作成するための方法と戦略

18

The GapThe Gap

コンピュータサイエンス

コンピュータシミュレーション

マルチエージェントシステム

エージェントベースによる社会・経済の

モデリングとシミュレーション

モデリングと分析の新しい方法

具体的な応用分野

社会科学

相互作用による社会

意思決定・学習

モデルフレームワーク シミュレーションプラットフォーム

→→ Our SolutionOur Solution

Boxed Economy Boxed Economy プロジェクトの紹介プロジェクトの紹介

http://www.boxed-economy.org/

第1回 情報科学技術フォーラムForum on Information Technology (FIT2002)

2 動的で複雑なモデルを作成するための方法と戦略動的で複雑なモデルを作成するための方法と戦略

3 シミュレーションのシミュレーションの作成と共有のための仕組み作成と共有のための仕組み

1 出発点出発点