元胞自动机疏散python
时间: 2023-10-28 12:07:11 浏览: 177
基于元胞自动机的matlab疏散程序_strangeb5u_GUI_疏散模型_元胞自动机matlab_元胞
5星 · 资源好评率100%
元胞自动机是一种离散空间和时间的数学模型,可以用来模拟复杂的自然现象。疏散是元胞自动机中的一种常见应用,可以用来模拟人群在紧急情况下的疏散行为。以下是一个简单的 Python 实现:
```python
import numpy as np
# 定义元胞自动机的参数
L = 50 # 空间大小
T = 100 # 时间步数
p = 0.5 # 概率
# 初始化状态矩阵
state = np.zeros((L, L), dtype=int)
state[25, 25] = 1 # 在中心位置放置一个人
# 定义疏散规则
def evacuate(state):
new_state = np.zeros((L, L), dtype=int)
for i in range(L):
for j in range(L):
if state[i, j] == 1:
# 如果当前位置有人,则向周围随机移动一步
dx, dy = np.random.choice([-1, 0, 1], size=2, replace=True, p=[p/4, 1-p/2, p/4])
x, y = (i+dx)%L, (j+dy)%L
if new_state[x, y] == 0:
new_state[x, y] = 1
else:
new_state[i, j] = 1
return new_state
# 模拟疏散过程
for t in range(T):
state = evacuate(state)
# 输出最终状态矩阵
print(state)
```
阅读全文