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

在AnyLogic参数变异实验中,如何用代理参数控制行人生成?

AnyLogic参数变异实验控制行人生成的正确配置方法

核心问题分析

你遇到的ped cannot be used as a variable错误,根源是PedSource模块属于Main代理层级,直接引用行人代理(ped)的参数会触发作用域问题——行人代理实例还未生成时,Main层无法直接访问其参数。正确思路是把控制参数放在Main代理层级,再关联到PedSource模块,或通过实例赋值传递参数。

具体配置步骤

步骤1:在Main代理中定义全局控制参数

  • 打开Main代理,从「Palette」拖拽Parameter块到画布
  • 配置两个核心参数:
    • 名称:totalPedestrians,类型:int,默认值:100(控制总行人数量)
    • 名称:pedArrivalRate,类型:double,默认值:10.0(控制到达率,单位:人/分钟)

    注:参数必须放在Main层级,这样参数变异实验才能直接读取和修改

步骤2:关联PedSource模块参数到Main全局参数

  • 选中Main里的PedSource模块,打开「Properties」面板
  • 配置「Arrival rate」:直接输入pedArrivalRate(Main层级的参数名)
  • 配置「Maximum number of arrivals」:直接输入totalPedestrians
  • 如果行人代理内部需要用到这些参数(比如自定义逻辑),在PedSource的「On arrival」动作中添加赋值代码:
    ped.arrivalRate = pedArrivalRate;
    ped.totalCount = totalPedestrians;
    

    这里的ped是PedSource生成的行人代理实例,只有在到达事件触发后才存在,所以必须放在「On arrival」动作里

步骤3:配置参数变异实验

  • 新建「Parameter Variation」实验
  • 在实验的「Parameters to vary」面板,点击「Add」,选择Main代理下的totalPedestrians和pedArrivalRate
  • 设置每组实验的参数值:比如totalPedestrians设为50、100、150;pedArrivalRate设为5、10、15
  • 运行实验,系统会自动遍历所有参数组合,生成对应仿真结果

常见误区规避

  • 禁止直接在PedSource中引用未生成的代理实例参数:行人代理实例只有在PedSource触发到达时才会创建,Main层无法提前访问
  • 确保参数作用域正确:参数变异实验仅能修改顶级代理(Main)或全局参数,子代理的参数需要通过实例赋值传递

内容的提问来源于stack exchange,提问作者Lemon Beer

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.13 01:42:38