SlideShare a Scribd company logo
1 of 17
シェリングの「分居モデル」 テーマ6
難易度:★★☆☆☆
目次
1. 準備作業1:空間の作成 → Jump!
2. 準備作業2:エージェントの作成 → Jump!
3. 準備作業3:マップ出力の設定 → Jump!
4. プログラム1:Universeのプログラム → Jump!
5. プログラム2:pennyのプログラム → Jump!
6. プログラム3:dimeのプログラム → Jump!
7. 実行してみよう1:分居の再現 → Jump!
8. 準備作業5:変数の作成 → Jump!
9. 準備作業6:コントロールパネルの設定 → Jump!
10.プログラム4:pennyとdimeのプログラム修正 → Jump!
11.実行してみよう2:満足基準の違いによる変化 → Jump!
準備作業1
Universeの下に作成する
 「空間」
 空間名:chessboard →『将棋盤』
 空間種別:四角格子空間
 空間の大きさ:X=10, Y=10
 ループする:チェックをはずす
(ループしない)
準備作業2
chessboardの下に作成する
 「エージェント」
 エージェント型名:penny
→『銅貨』
 「エージェント」
 エージェント型名:dime
→『銀貨』
準備作業3
①何でもOK
⑤何でもOK
④マップ要素
を追加する
• 出力設定(マップ出力)を行う
⑨
⑦円形を指定
⑧銅色(茶色)に近い色を選択
⑥pennyを指定
②チェックする
③チェス型にする
準備作業4
• 出力設定(マップ出力)の続き
①何でもOK
⑤何でもOK
④マップ要素
を追加する
⑨
⑦円形を指定
⑥dimeを指定
②チェックする
③チェス型にする
⑧銀色(灰色)に近い色を選択
プログラム1
def univ_init(self):
create_agt(Universe.chessboard.penny, num=40) # pennyを生成する
create_agt(Universe.chessboard.dime, num=40) # dimeを生成する
coin = make_agtset(space=Universe.chessboard) # エージェントをcoinに格納する
random_put_agtset_sqgrid(coin, False) # coinをランダムに配置する
(Universeのルール)
make_agtset
・引数の指定に当てはまるエージェントの集合を
取得する
①指定するエージェント種別
space - 指定する空間、指定しない場合は全て
の空間
①
②
random_put_agtset_sqgrid
・指定されたエージェント集合を格子空間上にランダムに
配置する
①指定するエージェント集合
②同じ座標に重なって配置することを許すかどうか(初期
値はFalse)
① ②
プログラム2
def agt_step(self):
# 自分の周りのpennyをneighborに格納する
neighbor = self.make_agtset_around_own_sqgrid(1, False, agttype=Universe.chessboard.penny)
NP = count_agtset(neighbor) # neighborの中身を数える
# 自分の周りのdimeをneighborに格納する
neighbor = self.make_agtset_around_own_sqgrid(1, False, agttype=Universe.chessboard.dime)
ND = count_agtset(neighbor) # neighborの中身を数える
(pennyのルール)
self.make_agtset_around_ow
n
・連続空間上で指定した視野の範囲内にいる
エージェントの集合を返す
①視野の広さ
②Falseのときエージェント集合に自分を含まず、
Trueのとき含む
① ② ③
※ 次のページに続く
プログラム2
if NP + ND == 0: # 自分の周りのpennyもdimeも0ならば
rate = 0 # 自分と同じpennyの割合も0%
else: # 自分の周りのpennyとdimeの合計も1以上ならば
rate = NP / (NP + ND) # 自分と同じpennyの割合を計算する
if rate < 1 / 3: # 自分と同じpennyの割合が1/3未満ならば
# 範囲2セル内で他のセルに移動する
self.move_space_around_position_sqgrid(2, self.x, self.y, 0)
(pennyのルール)
※ 前ページの続き
プログラム3
def agt_step(self):
# 自分の周りのpennyをneighborに格納する
neighbor = self.make_agtset_around_own_sqgrid(1, False, agttype=Universe.chessboard.penny)
NP = count_agtset(neighbor) # neighborの中身を数える
# 自分の周りのdimeをneighborに格納する
neighbor = self.make_agtset_around_own_sqgrid(1, False, agttype=Universe.chessboard.dime)
ND = count_agtset(neighbor) # neighborの中身を数える
(dimeのルール)
pennyのルールと同じ
※ 次のページに続く
プログラム3
if NP + ND == 0: # 自分の周りのpennyもdimeも0ならば
rate = 0 # 自分と同じpennyの割合も0%
else: # 自分の周りのpennyとdimeの合計も1以上ならば
rate = ND / (NP + ND) # 自分と同じpennyの割合を計算する
if rate < 1 / 3: # 自分と同じpennyの割合が1/3未満ならば
# 範囲2セル内で他のセルに移動する
self.move_space_around_position_sqgrid(2, self.x, self.y, 0)
(dimeのルール)
自分がdimeなので、自分と同じdime
の割合を計算する場合、分子だけ異な
る
• 1ステップ再生ボタンを押して,マップ出力を確認する
• 完了したら「schelling_01」という名前で保存する
実行してみよう1 1ステップ再生ボタン
同じ色の硬貨同士
が集まる様子を確
認してみよう
• 自分の周囲に同じ色のコインの割合(満足基準)が1/3未満の場合は、
他の場所に移動(移住)するルールでしたが、
• この割合を変えるとどうなるのでしょうか。
• 自由に変更できるように、モデルを改造してみて、やってみましょう。
移住する基準を変えると?
準備作業5
Universeの下に作成する
 「変数」
 変数名:satisfied_level →『満足基準』
準備作業6
コントロールパネルを作成する
②何でもOK
③satisfied_levelを選択し、
実数(float)を選択
①スライドバーを選択
④初期値、範囲、目盛り
間隔を設定
⑤
プログラム4
if rate < 1 / 3: # 自分と同じpennyの割合が1/3未満ならば
# 範囲2セル内で他のセルに移動する
self.move_space_around_position_sqgrid(2, self.x, self.y, 0)
(pennyとdimeのルール)
前
後
if rate < Universe.satisfied_level:
# 自分と同じ色の硬貨の割合が満足基準未満ならば
# 範囲2セル内で他のセルに移動する
self.move_space_around_position_sqgrid(2, self.x, self.y, 0)
• コントロールパネルが出現する
• スライドバーを移動させて、0.0から1.0まで値を変えて、1ステップ再
生ボタンを押して,マップ出力を確認する
• 完了したら「schelling_02」という名前で保存する
実行してみよう2
1ステップ再生ボタン
満足度基準の値に
よって同じ色の硬貨
同士が集まる様子が
違うだろうか?
コントロールパネル

More Related Content

More from Masaki Tamada

【MASの教材】ターミナル駅の通勤客の流れ
【MASの教材】ターミナル駅の通勤客の流れ【MASの教材】ターミナル駅の通勤客の流れ
【MASの教材】ターミナル駅の通勤客の流れMasaki Tamada
 
【MASの教材】立ち話モデル 人間関係が見えるように
【MASの教材】立ち話モデル 人間関係が見えるように【MASの教材】立ち話モデル 人間関係が見えるように
【MASの教材】立ち話モデル 人間関係が見えるようにMasaki Tamada
 
【MASの教材】飛ぶ鳥モデルからボイドモデルへ
【MASの教材】飛ぶ鳥モデルからボイドモデルへ【MASの教材】飛ぶ鳥モデルからボイドモデルへ
【MASの教材】飛ぶ鳥モデルからボイドモデルへMasaki Tamada
 
artisoc Cloudレシピブック_06. 描画ツール2を使って歩くモデルをつくろう
artisoc Cloudレシピブック_06. 描画ツール2を使って歩くモデルをつくろうartisoc Cloudレシピブック_06. 描画ツール2を使って歩くモデルをつくろう
artisoc Cloudレシピブック_06. 描画ツール2を使って歩くモデルをつくろうMasaki Tamada
 
第2回 artisoc Cloud勉強会
第2回 artisoc Cloud勉強会第2回 artisoc Cloud勉強会
第2回 artisoc Cloud勉強会Masaki Tamada
 
第1回 artisoc Cloud勉強会
第1回 artisoc Cloud勉強会第1回 artisoc Cloud勉強会
第1回 artisoc Cloud勉強会Masaki Tamada
 
10. artisocレシピブック a star探索アルゴリズムを使って、最短経路を自動的に探索しよう
10. artisocレシピブック a star探索アルゴリズムを使って、最短経路を自動的に探索しよう10. artisocレシピブック a star探索アルゴリズムを使って、最短経路を自動的に探索しよう
10. artisocレシピブック a star探索アルゴリズムを使って、最短経路を自動的に探索しようMasaki Tamada
 
09. artisocレシピブック 3Dモデルを作成しよう
09. artisocレシピブック 3Dモデルを作成しよう09. artisocレシピブック 3Dモデルを作成しよう
09. artisocレシピブック 3Dモデルを作成しようMasaki Tamada
 
08. artisocレシピブック ダイクストラ法を高速化しよう
08. artisocレシピブック ダイクストラ法を高速化しよう08. artisocレシピブック ダイクストラ法を高速化しよう
08. artisocレシピブック ダイクストラ法を高速化しようMasaki Tamada
 
07. artisocレシピブック ポテンシャル法を高速化しよう
07. artisocレシピブック ポテンシャル法を高速化しよう07. artisocレシピブック ポテンシャル法を高速化しよう
07. artisocレシピブック ポテンシャル法を高速化しようMasaki Tamada
 
06. artisocレシピブック ポテンシャル法を使って、買い回り行動を再現しよう
06. artisocレシピブック ポテンシャル法を使って、買い回り行動を再現しよう06. artisocレシピブック ポテンシャル法を使って、買い回り行動を再現しよう
06. artisocレシピブック ポテンシャル法を使って、買い回り行動を再現しようMasaki Tamada
 
05. artisocレシピブック 通れなくなった道路を迂回しよう
05. artisocレシピブック 通れなくなった道路を迂回しよう05. artisocレシピブック 通れなくなった道路を迂回しよう
05. artisocレシピブック 通れなくなった道路を迂回しようMasaki Tamada
 
04. artisocレシピブック open streetmapから道路情報を取得しよう
04. artisocレシピブック open streetmapから道路情報を取得しよう04. artisocレシピブック open streetmapから道路情報を取得しよう
04. artisocレシピブック open streetmapから道路情報を取得しようMasaki Tamada
 
03. artisocレシピブック ダイクストラ法を使って、最短経路を自動的に探索しよう
03. artisocレシピブック ダイクストラ法を使って、最短経路を自動的に探索しよう03. artisocレシピブック ダイクストラ法を使って、最短経路を自動的に探索しよう
03. artisocレシピブック ダイクストラ法を使って、最短経路を自動的に探索しようMasaki Tamada
 
02. artisocレシピブック 描画ツールを使って道路を作成し、歩くモデルをつくろう
02. artisocレシピブック 描画ツールを使って道路を作成し、歩くモデルをつくろう02. artisocレシピブック 描画ツールを使って道路を作成し、歩くモデルをつくろう
02. artisocレシピブック 描画ツールを使って道路を作成し、歩くモデルをつくろうMasaki Tamada
 
01. artisocレシピブック 基本的な操作について学び、モデルを動かそう
01. artisocレシピブック 基本的な操作について学び、モデルを動かそう01. artisocレシピブック 基本的な操作について学び、モデルを動かそう
01. artisocレシピブック 基本的な操作について学び、モデルを動かそうMasaki Tamada
 

More from Masaki Tamada (16)

【MASの教材】ターミナル駅の通勤客の流れ
【MASの教材】ターミナル駅の通勤客の流れ【MASの教材】ターミナル駅の通勤客の流れ
【MASの教材】ターミナル駅の通勤客の流れ
 
【MASの教材】立ち話モデル 人間関係が見えるように
【MASの教材】立ち話モデル 人間関係が見えるように【MASの教材】立ち話モデル 人間関係が見えるように
【MASの教材】立ち話モデル 人間関係が見えるように
 
【MASの教材】飛ぶ鳥モデルからボイドモデルへ
【MASの教材】飛ぶ鳥モデルからボイドモデルへ【MASの教材】飛ぶ鳥モデルからボイドモデルへ
【MASの教材】飛ぶ鳥モデルからボイドモデルへ
 
artisoc Cloudレシピブック_06. 描画ツール2を使って歩くモデルをつくろう
artisoc Cloudレシピブック_06. 描画ツール2を使って歩くモデルをつくろうartisoc Cloudレシピブック_06. 描画ツール2を使って歩くモデルをつくろう
artisoc Cloudレシピブック_06. 描画ツール2を使って歩くモデルをつくろう
 
第2回 artisoc Cloud勉強会
第2回 artisoc Cloud勉強会第2回 artisoc Cloud勉強会
第2回 artisoc Cloud勉強会
 
第1回 artisoc Cloud勉強会
第1回 artisoc Cloud勉強会第1回 artisoc Cloud勉強会
第1回 artisoc Cloud勉強会
 
10. artisocレシピブック a star探索アルゴリズムを使って、最短経路を自動的に探索しよう
10. artisocレシピブック a star探索アルゴリズムを使って、最短経路を自動的に探索しよう10. artisocレシピブック a star探索アルゴリズムを使って、最短経路を自動的に探索しよう
10. artisocレシピブック a star探索アルゴリズムを使って、最短経路を自動的に探索しよう
 
09. artisocレシピブック 3Dモデルを作成しよう
09. artisocレシピブック 3Dモデルを作成しよう09. artisocレシピブック 3Dモデルを作成しよう
09. artisocレシピブック 3Dモデルを作成しよう
 
08. artisocレシピブック ダイクストラ法を高速化しよう
08. artisocレシピブック ダイクストラ法を高速化しよう08. artisocレシピブック ダイクストラ法を高速化しよう
08. artisocレシピブック ダイクストラ法を高速化しよう
 
07. artisocレシピブック ポテンシャル法を高速化しよう
07. artisocレシピブック ポテンシャル法を高速化しよう07. artisocレシピブック ポテンシャル法を高速化しよう
07. artisocレシピブック ポテンシャル法を高速化しよう
 
06. artisocレシピブック ポテンシャル法を使って、買い回り行動を再現しよう
06. artisocレシピブック ポテンシャル法を使って、買い回り行動を再現しよう06. artisocレシピブック ポテンシャル法を使って、買い回り行動を再現しよう
06. artisocレシピブック ポテンシャル法を使って、買い回り行動を再現しよう
 
05. artisocレシピブック 通れなくなった道路を迂回しよう
05. artisocレシピブック 通れなくなった道路を迂回しよう05. artisocレシピブック 通れなくなった道路を迂回しよう
05. artisocレシピブック 通れなくなった道路を迂回しよう
 
04. artisocレシピブック open streetmapから道路情報を取得しよう
04. artisocレシピブック open streetmapから道路情報を取得しよう04. artisocレシピブック open streetmapから道路情報を取得しよう
04. artisocレシピブック open streetmapから道路情報を取得しよう
 
03. artisocレシピブック ダイクストラ法を使って、最短経路を自動的に探索しよう
03. artisocレシピブック ダイクストラ法を使って、最短経路を自動的に探索しよう03. artisocレシピブック ダイクストラ法を使って、最短経路を自動的に探索しよう
03. artisocレシピブック ダイクストラ法を使って、最短経路を自動的に探索しよう
 
02. artisocレシピブック 描画ツールを使って道路を作成し、歩くモデルをつくろう
02. artisocレシピブック 描画ツールを使って道路を作成し、歩くモデルをつくろう02. artisocレシピブック 描画ツールを使って道路を作成し、歩くモデルをつくろう
02. artisocレシピブック 描画ツールを使って道路を作成し、歩くモデルをつくろう
 
01. artisocレシピブック 基本的な操作について学び、モデルを動かそう
01. artisocレシピブック 基本的な操作について学び、モデルを動かそう01. artisocレシピブック 基本的な操作について学び、モデルを動かそう
01. artisocレシピブック 基本的な操作について学び、モデルを動かそう
 

【MASの教材】シェリングの「分居モデル」