Top Banner
シシシシシシシシシ シシシシシシシシシ マママママママママ ママママママママ(2)
24

シミュレーション論 Ⅱ 第7回

Mar 15, 2016

Download

Documents

illias

シミュレーション論 Ⅱ 第7回. マルチエージェント・シミュレーション(2). 第6回のレポート解答例. マルチエージェント・シミュレーションの特徴+利点をまとめ、3点以上述べてください (1) 特徴:比較的単純な要素+局所的相互作用によるモデル化 利点:プログラミングが単純で明確、要素数の増減や相互作用の追加・変更が容易 (2) 特徴:全体的な挙動の一括した記述や大域的制御の不要なボトムアップ的モデル 利点:トップダウン的モデルに比べてモデルの記述や制御が容易 (3) 特徴:個体差、エージェントの異種性の導入が容易 - PowerPoint PPT Presentation
Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Page 1: シミュレーション論  Ⅱ 第7回

シミュレーション論 Ⅱシミュレーション論 Ⅱ第7回第7回

マルチエージェント・シミュレーション(2)

Page 2: シミュレーション論  Ⅱ 第7回

第6回のレポート解答例 マルチエージェント・シミュレーションの特徴+利点をまとめ、3点以上述べてください(1)特徴:比較的単純な要素+局所的相互作用によるモデル化利点:プログラミングが単純で明確、要素数の増減や相互作用の追加・変更が容易(2)特徴:全体的な挙動の一括した記述や大域的制御の不要なボトムアップ的モデル利点:トップダウン的モデルに比べてモデルの記述や制御が容易(3)特徴:個体差、エージェントの異種性の導入が容易利点:モデルの複雑な拡張が可能、現象の複雑さの要因を解析できる

Page 3: シミュレーション論  Ⅱ 第7回

今回の内容

マルチエージェント・シミュレーションの一例として、ごく簡単な「マクロ」を用いた2次元セルオートマトンの作成をおこなう

Page 4: シミュレーション論  Ⅱ 第7回

Excel によるライフゲームの作成 Excel を用いて、 2 次元セルオートマトンの代表例である「ライフゲーム」を作成する

Page 5: シミュレーション論  Ⅱ 第7回

ライフゲームの概要 各セルには「生」「死」の 2 状態がある 各セルは自分と周囲の計 9 セルの状態によって生死が決定される 生死のルール:

誕生 – 死んでいるセルの周囲に 3 つの生きているセルが

あれば次の世代では生きる(誕生する)。維持 – 生きているセルの周囲に 2 つか 3 つの生きている

セルがあれば次の世代でも生き残る。死亡 – 上以外の場合には次の世代では死ぬ。

Page 6: シミュレーション論  Ⅱ 第7回

ライフゲームの作成(1) Excel の全てのセルを選択し、「書式」→「列」→「幅」で「2」とする(正方形のセルを作る)

Page 7: シミュレーション論  Ⅱ 第7回

ライフゲームの作成(2) B2~U21、X2~AQ21に 20×20 の枠を作成し、左側の枠に全て「 0 」を入力する

Page 8: シミュレーション論  Ⅱ 第7回

ライフゲームの作成(3) 右側の枠に左側の枠の次ステップの状態を記述する 0 を死、 1 を生とし、ルールに従って生死を決定する X2セルに以下のように入力する

=IF(SUM(A1:C3)=3,1,IF(AND(B2=1,SUM(A1:C3)=4),1,0))

自分と周囲の計 9 セルで 3 セル生きていれば生、自分が生で周囲 9 セルで 4 セル生きていれば生、それ以外は死

Page 9: シミュレーション論  Ⅱ 第7回

ライフゲームの作成(4) 入力できたら右側の枠内全てにドラッグでコピー 枠線をコピーしたくないときは右下に出るボックスをクリックして「書式なしコピー」を選ぶとよい

Page 10: シミュレーション論  Ⅱ 第7回

ライフゲームの作成(5) 「マクロ」を用いて更新作業をおこなう 左枠の状態から次ステップの状態を右枠で計算→

左枠へコピー この操作をマクロによって自動化する 「表示」→「ツールバー」→「 Visual Basic 」を選択 「セキュリティ」をクリックして「セキュリティレベル」を「中」にしておく 「コントロール ツールボックス」ボタンを押す

Page 11: シミュレーション論  Ⅱ 第7回

ライフゲームの作成(6) ツールボックスの「コマンドボタン」をクリックし、適当な位置に貼り付ける

Page 12: シミュレーション論  Ⅱ 第7回

ライフゲームの作成(7) コマンドボタンを右クリックし、「プロパティ」を選ぶ (オブジェクト名)を「更新ボタン」、 Caption を「更新」とする(できたらプロパティは閉じる)

Page 13: シミュレーション論  Ⅱ 第7回

ライフゲームの作成(8) 「 Visual Basic 」ツールバーの赤丸を押し、操作の記録をおこなう(マクロの記録) 「マクロ名」は「更新」とする 「右枠内全て( X2 ~ AQ21 )をコピー」→「 B 2セルを右クリック」→「形式を選択して貼り付け」→「値」→「X1セルをクリック」 以上ができたら四角い停止ボタンを押して記録を終了する

Page 14: シミュレーション論  Ⅱ 第7回

ライフゲームの作成(9) 「 Visual Basic 」ツールバーの「デザインモード」ボタンが押されていることを確認し、コマンドボタン(更新ボタン)をダブルクリックする 空白になっている「 End Sub 」の前に「更新」と記入

デザインモードボタン

Page 15: シミュレーション論  Ⅱ 第7回

ライフゲームの作成(10) デザインモードのウインドウを閉じ、 Visual

Basic ツールバーの「デザインモード」ボタンを押して終了させる

左枠の適当な位置に「1」をいくつか入力し、「更新」ボタンを押して動くかどうか確認してみよう

Page 16: シミュレーション論  Ⅱ 第7回

ライフゲームの作成(11) 左枠内を選択し、「書式」→「条件付き書式」でセルに色をつける フォントの色とセルのパターンを「0」のとき白、「1」のとき青とする左枠内を選択し、「書式」→「条件付き書式」でセルに色をつけるフォントの色とセルのパターンを「0」のとき白、「1」のとき青とする

Page 17: シミュレーション論  Ⅱ 第7回

ライフゲームの作成(12) コントロールツールバーから「コマンドボタン」を選び、もう1つボタンを作成する 右クリック→「プロパティ」とし、 (オブジェクト名)を「クリアボタン」、 Caption を「クリア」とする(できたらプロパティは閉じる)

Page 18: シミュレーション論  Ⅱ 第7回

ライフゲームの作成(13) 「 Visual Basic 」ツールバーの「デザインモード」ボタンが押されていることを確認し、クリアボタンをダブルクリックする 空白になっている「 End Sub 」の前に「クリア」と記入

Page 19: シミュレーション論  Ⅱ 第7回

ライフゲームの作成(14) ウインドウ左側の「標準モジュール」をダブルクリックし、「 Module 1 」をダブルクリックして開く 既にある「 End Sub 」の後に以下のように書く

Sub クリア ()     Range(“B2:U21") = 0

End Sub

Page 20: シミュレーション論  Ⅱ 第7回

ライフゲームの作成(15) デザインモードのウインドウを閉じ、 Visual

Basic ツールバーの「デザインモード」ボタンを押して終了させる

左枠の適当な位置に「1」をいくつか入力し、「クリア」ボタンを押して全て「0」に戻るか試してみよう

Page 21: シミュレーション論  Ⅱ 第7回

ライフゲームの作成(16) 以上でほぼ完成 適当に1を入力し、更新ボタンを何度か押して実行してみよう

Page 22: シミュレーション論  Ⅱ 第7回

様々な初期値で試してみよう 以下のような初期値で試してみよう

Page 23: シミュレーション論  Ⅱ 第7回

参考:製品普及モデル ライフゲームのシミュレーションを修正し、 2 種類の製品普及モデルも作成できる

 ( X2 セル)= IF(AND(COUNTIF(A1:C3,1)<3,COUNTIF(A1:C3,2)<3),0, IF(COUNTIF(A1:C3,1)>COUNTIF(A1:C3,2),1, IF(COUNTIF(A1:C3,1)<COUNTIF(A1:C3,2),2, RANDBETWEEN(1,2))))

Page 24: シミュレーション論  Ⅱ 第7回

第7回のレポート

2次元セルオートマトンを利用したシミュレーションをおこなうなら、どのようなものをやってみたいか、概要を記述してください