Lecture 8
コンピュータその81
セル・オートマトン
Tuesday, November 22, 16
2
セル・オートマトン (Cellular automaton, CA)
CAとは,格子状のセルと単純な規則による,離散的計算モデルである
セル
Tuesday, November 22, 16
A20⇥20 =
ai,j = 0 8i, j
3
セル・オートマトン (Cellular automaton, CA)
CAとは,格子状のセルと単純な規則による,離散的計算モデルである
行列として表現することができる
Matlab>> A = zeros(20,20);
Tuesday, November 22, 16
a1,1 = 1 =)
4
セル・オートマトン (Cellular automaton, CA)
CAとは,格子状のセルと単純な規則による,離散的計算モデルである
Matlab>> A(1,1)=1;>> spy(A);
Tuesday, November 22, 16
a4,3 = 1
a20,2 = 1
a10,19 = 1a13,6 = 1
a1,1 = 1
=)
5
セル・オートマトン (Cellular automaton, CA)
CAとは,格子状のセルと単純な規則による,離散的計算モデルである
Matlab>> A(1,1)=1;>> A(4,3)=1;>> A(10,19)=1;>> A(13,6)=1;>> A(20,2)=1;>> spy(A);
Tuesday, November 22, 16
6
セル・オートマトン (Cellular automaton, CA)Matlab
>> spy(A,'k',10)色 大きさ
>> spy(A)
y: yellowm: magentac: cyanr: redg: greenb: bluew: whitek: black
Tuesday, November 22, 16
7
spy(A,'k.')spy(A,'rs',20)spy(A,'red square')spy(A,'blue triangle')spy(A,'b^')spy(A,'bv')spy(A,'b>')spy(A,'b<')
Matlab spy() options
Tuesday, November 22, 16
2 (0, 1)
0 1
< 0.25=)
8
セル・オートマトン (Cellular automaton, CA)
単純な規則?
??
?
CAを動かしてみよう!
ヒント:>> move = rand;
move
leftright up down
move
CAとは、格子状のセルと単純な規則による、離散的計算モデルである
1.
right
Tuesday, November 22, 16
9
周期境界条件(壁がない)
Tuesday, November 22, 16
10
周期境界条件(壁がない)
Tuesday, November 22, 16
11
セル・オートマトン (Cellular automaton, CA)
複数のCAを入れて計算してみよう.2.
ヒント:>> A = rand(50,50);>> A = A > 0.6;>> spy(A,’k’)
Remember:A(i,j)
列行
Tuesday, November 22, 16
12
?
3. ぶつかりそうになったらとどうする?新しい規則を入れてみよう.
こんな場合はどうでしょう?
if(a(i+1,j)==1)動かない
else動く
end
セル・オートマトン (Cellular automaton, CA)
Tuesday, November 22, 16
13
Dirichlet 境界条件(壁にぶつかる)
Tuesday, November 22, 16
14
セル・オートマトン (Cellular automaton, CA)
Dirichlet 境界条件のもとで複数のCAを入れて計算してみよう.
4.
ヒント:
Tuesday, November 22, 16
15
for文によるバイアスについて
?
for文の順番を変えるとパターンも変える.
Tuesday, November 22, 16
16
5.
for文によるバイアスについて
ヒント:>> randperm(5)
1 3 5 2 4
?
CAを平等にを動かすアルゴリズムを作ってみよう.
Tuesday, November 22, 16