元胞自动机概念与实例
簡介:元胞自動機(cellular automata,CA) 是一種時間、空間、狀態都離散,空間相互作用和時間因果關系為局部的網格動力學模型,具有模擬復雜系統時空演化過程的能力。
主要內容:
?
?一、元胞
元胞可以是數字,字符,字符串等,是多元化的,可理解為一個變量。
二、鄰居
會對元胞下一狀態產生影響的稱為鄰居,注意:并不是在其周圍就一定是鄰居,必須滿足對其下一狀態產生影響這一條件
三、元胞空間
理論上元胞空間是無限的,實際應用中無法達到這一理想條件,為了給元胞空間邊界上的元胞擁有特定規則下所需要的鄰居,就需要構造出一些虛擬的鄰居,從而引出了邊界條件的概念。
常用的鄰居邊界條件有四種類型:固定型、周期型、絕熱型、映射型。
1.固定型
?顧名思義,即固定了邊界的數值
2.周期型
?即按照每行或每列的周期性來決定邊界數值,比如圖中3位置,該行從左往右按照3、2、4、1、5的順序,所以3位置左邊界數值為5,該列同理得出3位置下邊界數值為3。(左下角)
3.絕熱型
?如圖,可理解為復制左下角3位置的數值
4.映射型
?如同,可理解為3位置按照行對稱得到2,按照列對稱得到5(左下角)
四、規則
根據元胞當前狀態以及鄰居的狀態來決定下一時刻該元胞的狀態。元胞自動機根據規則進行局部元胞間的相互作用從而引起全局的變化,可理解為正常的游戲規則等。
五、具體實例:
奇偶規則:元胞有兩種狀態:0和1
?
?
?代碼實現:
clc clear all; n=200; Se=zeros(n); %%設置200*200的0數值矩陣 Z=zeros(n) %%設置200*200的0數值矩陣 Se(n/2-2:n/2+2,n/2-2:n/2+2)=1; %%設置行98到102,列98到102為1 Ch=imagesc(cat(3,Se,Z,Z)); %%用圖顯示上述規則,cat為矩陣合成函數,改變顏色,0為黑色,1為紅色 axis square %%添加方形邊框 Sd=zeros(n+2); %%重新設置一個0數值矩陣包圍原矩陣(設置邊界) while(1) %%設置死循環,讓它一直變化Sd(2:n+1,2:n+1)=Se; %%將Sd邊界內矩陣變為滿足規則下的矩陣sum=Sd(1:n,2:n+1)+Sd(3:n+2,2:n+1)+Sd(2:n+1,1:n)+Sd(2:n+1,3:n+2); %%將元胞上下左右值相加Se=mod(sum,2); %%若相加和為偶數,則元胞為0,呈現黑色:反之則為紅色set(Ch,'cdata',cat(3,Se,Z,Z)) %%Ch為初始化狀態,將Ch變為Se,即矩陣的更新pause(0.05) %%間隔0.05s endfigure %%全選代碼后右鍵執行運行代碼即可得到結果(為動態變化過程)
?
總結
以上是生活随笔為你收集整理的元胞自动机概念与实例的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: SPSS因子分析案例
- 下一篇: android将字符串转化为json,将