doodem/majorincident

GitHub: doodem/majorincident

一个基于agent建模与蚁群优化算法的重大犯罪事件应急响应路径优化计算模型,在响应速度与信息收集之间实现动态权衡。

Stars: 0 | Forks: 0

# 优化重大犯罪事件响应
## 简介 重大犯罪事件与常规事件的不同之处在于其跨越的区域更广,持续时间更长, 这使得信息收集与响应时间同等重要。我们开发了一个事件响应的计算模型, 在其中,自主响应者使用基于 agent 的建模,在前往事件现场的途中 穿梭于基于图的道路网络。该路由算法将 Inverted Ant Colony Optimisation 与 A* pathfinding 相结合,使响应者能够探索替代路线,同时 实时平衡信息收集与响应时间。为了自适应地管理这种权衡, 引入了一种基于接近度的 pheromone 缩放机制, 在事件附近信息素的沉积强度会增加,从而将行为从收敛转变为探索。

第一张图(左)展示了 agent 路径决策的说明。 路径 (a) 和 (b) 距离相同。响应者观察到路径 (b) 更快,因为之前的响应者穿过了路径 (a) 并沉积了 改变环境的 pheromone(紫色)。第二张图(右) 展示了模型组件。Agent 响应者(深蓝色方块) 在前往事件节点(红色圆圈)的途中穿过代表道路(黑色)的边。 搜索半径(橙色)包含事件周围的一部分边。 只有这些边具有 agent 可以收集的数据点。 agent 在所有穿过的边上沉积 pheromone(紫色)。 颜色越深表示在该边上沉积的信息素越多,颜色越浅表示越少。 ## 安装 ``` # 获取代码 git clone https://github.com/doodem/majorincident.git cd majorincident # 设置 virtual environment python -m venv .venv source .venv/scripts/activate # 安装依赖 pip install -r requirements.txt ``` ## 模拟响应 ``` from majorincident import ( VoronoiGraphRoadNetwork, MajorCrimeIncidentResponse, SearchRadiusCoverage, ResponderReachedIncident ) %matplotlib widget ``` ``` # 构建 graph graph_config = { 'road_network_points': 150, 'cluster_number': 2, 'cluster_points': 50, 'cluster_size': 0.5 } graph = VoronoiGraphRoadNetwork(graph_config, seed = 42) ``` ``` # 初始化 model 并选择一个 scenario model = MajorCrimeIncidentResponse( world = graph, search_radius_size = 25, number_of_responders = 30, pheromone_deposit = 0.6, dynamic_deposit = True, dynamic_deposit_k = 0.2, dynamic_deposit_n = 1.5 ) # 添加 measures model.add_instrument(SearchRadiusCoverage()) model.add_instrument(ResponderReachedIncident()) # 运行 model model.run() ``` ``` # 显示 simulated response model.sim() ```
标签:A*算法, 图网络, 基于代理建模, 库, 应急响应, 智能优化算法, 群智能, 路径规划, 逆向工具