R を使用して、すぐ近くにいる他のエージェントの決定に基づいて決定を変更するエージェントのグリッドをモデル化しようとしています。基本的に、各エージェントは、グリッド上で自分の周りにいる他のエージェントに目を向け、自分の周りのアクションに基づいて動作を変更する可能性があります。そのような動的な (1 回の反復) を示すために、以下にいくつかの小さなおもちゃのコードのサンプルを含めました。
私は疑問に思っています
グリッドの境界に対処する洗練された方法があります (現在、t+1、i+1 コードはエッジでは機能しません)。
または、マトリックスの「空間」次元を使用する/グラフベースのアプローチを使用してこれらの種類のモデルをシミュレートする他のアプローチがあるかどうか?
NCols=10
NRows=10
df=round(matrix(runif(NCols*NRows), ncol=NCols),0); df
t=1;i=1
for(i in 1:(nrow(df)-1)){
for(t in 1:(ncol(df)-1)){
prox=sum(df[t+1,i]+df[t+1,i-1]+df[t+1,i+1]+df[t,i]+df[t,i-1]+df[t,i+1]+df[t-1,i]+df[t-1,i-1]+df[t-1,i+1])
if(prox<=3) {df[t,i]=0} else {df[t,i]=1}
}
}
df