You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

使用Pedestrian库构建Ped模型时为节点内Agent分配随机数咨询

基于Pedestrian库的节点Agent随机分配与调用实现方案

1. 节点内部Agent数量随机分配

你可以根据场景需求选择对应的随机分布生成数值,再批量创建对应数量的Agent挂载到节点属性下即可,行人场景通常可以用均匀分布或者泊松分布匹配真实人流特征。
示例代码如下:

import random
import pedestrian as ped

# 初始化仿真节点
sim_node = ped.Node()

# 生成15-35范围内的随机整数作为Agent数量(均匀分布)
agent_total = random.randint(15, 35)
# 若需使用更符合行人到达规律的泊松分布,可改用numpy实现:
# import numpy as np
# agent_total = np.random.poisson(lam=25) # lam为期望的平均Agent数量

# 批量创建对应数量的Agent并绑定到节点
sim_node.agents = [ped.Agent() for _ in range(agent_total)]

2. 基于随机数值调用指定Agent执行操作

根据你的需求可以选择单Agent随机调用或者多Agent批量随机调用两种方式:

  • 随机抽取单个Agent执行指定操作
# 生成合法的随机索引,避免越界
target_index = random.randint(0, len(sim_node.agents) - 1)
# 调用对应Agent的自定义方法,比如移动、停留等操作
sim_node.agents[target_index].move(target_coordinate=(25, 40))
  • 批量随机选择多个Agent执行统一操作
# 比如随机抽取20%的Agent执行加速操作
select_ratio = 0.2
select_count = int(len(sim_node.agents) * select_ratio)
selected_agents = random.sample(sim_node.agents, select_count)

for agent in selected_agents:
    agent.accelerate(target_speed=1.8)

注意事项:

  1. 生成随机索引前必须以当前节点的Agent实际数量为边界计算合法取值范围,避免出现索引越界报错,如果仿真过程中Agent会动态增减,每次调用前都要重新计算长度。
  2. 如果需要复现实验结果,可以在所有随机数生成操作前设置固定随机种子:random.seed(固定数值),保证每次运行生成的随机数、抽取结果完全一致。

内容的提问来源于stack exchange,提问作者La Roi Zi

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.02 00:09:03