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

AnyLogic GIS地图中智能体在吸引子间自由漫游实现及报错排查

一、GIS地图环境下智能体漫游+吸引子切换实现步骤

1. 前置配置确认

  • 确保Polygonal Node已绑定GIS地图对应区域,智能体的移动属性设置为GIS Navigation。
  • 所有Attractor必须放在Polygonal Node范围内,且每个Attractor的「网络」属性选择该Polygonal Node对应的GIS网络。

2. 智能体行为逻辑编写

(1)初始化目标吸引子

在智能体的on startup事件中写入:

// 从吸引子集合中随机选初始目标
Attractor initialTarget = attractors.get(randomIndex(attractors.size()));
moveTo(initialTarget);

说明:提前创建Collection<Attractor> attractors变量,模型启动时将所有吸引子加入该集合

(2)到达后切换目标

在智能体的on arrival事件中写入:

// 排除当前到达的吸引子,随机选下一个目标
List<Attractor> candidates = new ArrayList<>(attractors);
candidates.remove(getLastDestination());
if (!candidates.isEmpty()) {
    Attractor nextTarget = candidates.get(randomIndex(candidates.size()));
    moveTo(nextTarget);
}

(3)限制漫游范围

如果要防止智能体跑出Polygonal Node,在智能体的on every time step事件中添加:

if (!polygonalNode.contains(getX(), getY())) {
    // 随机选节点内一点返回
    Point2D randomPos = polygonalNode.randomPoint();
    moveTo(randomPos.getX(), randomPos.getY());
}

3. 漫游效果优化

  • 给moveTo加速度参数,比如moveTo(target, 6),自定义移动速度。
  • 要实现“自由漫游”而非直线移动,可在on every time step中添加随机转向:
if (isMoving()) {
    setHeading(getHeading() + uniform(-15, 15)); // 每步随机调整航向±15度
}

二、Attractor创建错误原因及解决

你遇到的错误提示为Attractor is not connected to any network,原因是吸引子未关联有效移动网络:

  • 你创建的Polygonal Node属于GIS网络,但Attractor的「网络」属性未设置为该GIS网络/Polygonal Node,导致AnyLogic无法生成移动路径。
  • 解决:选中每个Attractor,在右侧属性面板的「移动」栏,将「网络」设置为你的Polygonal Node所属的GIS网络即可。

另外需确认Polygonal Node的类型为GIS Node,且已正确关联GIS图层,否则也会导致网络识别失败。


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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.07 12:10:12