0

0

在 AnyLogic 中动态创建多个流程图组件的完整实现方法

花韻仙語

花韻仙語

发布时间:2026-01-05 10:22:34

|

884人浏览过

|

来源于php中文网

原创

在 AnyLogic 中动态创建多个流程图组件的完整实现方法

本文介绍如何根据 excel 数据动态生成指定数量的相同流程图模块(如 seperateflowchart),并通过 enter/exit 块串联它们,使主流程中的智能体依次通过全部模块。

在 AnyLogic 中,若需按外部数据(如 Excel)动态构建重复性流程逻辑(例如并行或串行部署多个功能一致的子流程),不推荐直接复制粘贴多个流程图块到主流程中——这会导致模型僵化、难以维护且无法参数化。正确做法是采用“模块化代理 + 动态实例化”设计范式。

✅ 推荐架构:封装为独立 Agent 类型

  1. 新建 Agent 类型(如 SeperateFlowchartUnit)

    • 在该 Agent 内部嵌入完整的子流程图(含您原有的逻辑,如 Service、Delay、SelectOutput 等);
    • 必须添加 Enter 和 Exit 块:Enter 作为入口点接收来自外部的智能体,Exit 作为出口点将智能体传递给下一个环节;
    • 可选:为 Enter 设置 on enter 动作以记录日志或触发事件,增强可观测性。
  2. 在 Main 模型中读取 Excel 数据并批量实例化
    假设 Excel 表格 config.xlsx 的 Sheet1 中 A1 单元格存储数量 n = 10,可在 Main 的 on startup 动作中编写:

// 读取 Excel 中指定单元格的整数值
int n = (int) excelFile.getCellNumericValue("Sheet1", 0, 0); // 行0列0 → A1

// 动态创建 n 个 SeperateFlowchartUnit 实例,并自动添加到 Main 的嵌入式 agent 图表中
for (int i = 0; i < n; i++) {
    SeperateFlowchartUnit unit = add_seperateFlowchartUnit(); // 使用 AnyLogic 自动生成的 add_ 方法
    unit.setName("flowUnit_" + i);

    // 可选:设置位置(便于可视化布局)
    unit.setXY(200 + i * 180, 300);
}
  1. 连接主流程与子模块链

    ModelGate
    ModelGate

    一站式AI模型管理与调用工具

    下载
    • 主流程中:Source → Enter(第一个 SeperateFlowchartUnit)
    • 子模块间:每个 SeperateFlowchartUnit.exit → 下一个 SeperateFlowchartUnit.enter
    • 末尾:最后一个 SeperateFlowchartUnit.exit → Sink
    ? 提示:可通过循环自动连线(使用 connect() 方法),或在初始化后手动拖拽连线(适合调试阶段)。
  2. 确保智能体流动逻辑正确

    • 所有 SeperateFlowchartUnit 必须启用 Allow multiple agents(在 Enter 属性中勾选),否则会阻塞;
    • 若子流程需保持状态隔离(如不同单元处理不同任务),请确认 SeperateFlowchartUnit 中的变量/资源未被全局共享;
    • 建议为每个 SeperateFlowchartUnit 添加唯一 ID(如 unitId = i),便于日志追踪和调试。

⚠️ 注意事项

  • Enter/Exit 块是实现跨 Agent 流程衔接的核心——它们提供标准化的输入输出接口,替代了传统流程图中“硬连线”的耦合方式;
  • 动态创建的 Agent 实例默认属于 Main 的嵌入式 agent 集合,其生命周期由 Main 管理,无需手动销毁;
  • 若 Excel 数据变更需热重载,可封装为函数并在实验参数中绑定,配合 reset() 触发重建(适用于迭代调试)。

通过该方法,您不仅实现了“读 Excel 控制流程长度”的需求,更构建出高内聚、低耦合、可复用、易扩展的 AnyLogic 工程化建模结构。

热门AI工具

更多
DeepSeek
DeepSeek

幻方量化公司旗下的开源大模型平台

豆包大模型
豆包大模型

字节跳动自主研发的一系列大型语言模型

WorkBuddy
WorkBuddy

腾讯云推出的AI原生桌面智能体工作台

腾讯元宝
腾讯元宝

腾讯混元平台推出的AI助手

文心一言
文心一言

文心一言是百度开发的AI聊天机器人,通过对话可以生成各种形式的内容。

讯飞写作
讯飞写作

基于讯飞星火大模型的AI写作工具,可以快速生成新闻稿件、品宣文案、工作总结、心得体会等各种文文稿

即梦AI
即梦AI

一站式AI创作平台,免费AI图片和视频生成。

ChatGPT
ChatGPT

最最强大的AI聊天机器人程序,ChatGPT不单是聊天机器人,还能进行撰写邮件、视频脚本、文案、翻译、代码等任务。

相关专题

更多
硬盘接口类型介绍
硬盘接口类型介绍

硬盘接口类型有IDE、SATA、SCSI、Fibre Channel、USB、eSATA、mSATA、PCIe等等。详细介绍:1、IDE接口是一种并行接口,主要用于连接硬盘和光驱等设备,它主要有两种类型:ATA和ATAPI,IDE接口已经逐渐被SATA接口;2、SATA接口是一种串行接口,相较于IDE接口,它具有更高的传输速度、更低的功耗和更小的体积;3、SCSI接口等等。

1954

2023.10.19

PHP接口编写教程
PHP接口编写教程

本专题整合了PHP接口编写教程,阅读专题下面的文章了解更多详细内容。

658

2025.10.17

php8.4实现接口限流的教程
php8.4实现接口限流的教程

PHP8.4本身不内置限流功能,需借助Redis(令牌桶)或Swoole(漏桶)实现;文件锁因I/O瓶颈、无跨机共享、秒级精度等缺陷不适用高并发场景。本专题为大家提供相关的文章、下载、课程内容,供大家免费下载体验。

2401

2025.12.29

java接口相关教程
java接口相关教程

本专题整合了java接口相关内容,阅读专题下面的文章了解更多详细内容。

47

2026.01.19

excel对比两列数据异同
excel对比两列数据异同

Excel作为数据的小型载体,在日常工作中经常会遇到需要核对两列数据的情况,本专题为大家提供excel对比两列数据异同相关的文章,大家可以免费体验。

1454

2023.07.25

excel重复项筛选标色
excel重复项筛选标色

excel的重复项筛选标色功能使我们能够快速找到和处理数据中的重复值。本专题为大家提供excel重复项筛选标色的相关的文章、下载、课程内容,供大家免费下载体验。

428

2023.07.31

excel复制表格怎么复制出来和原来一样大
excel复制表格怎么复制出来和原来一样大

本专题为大家带来excel复制表格怎么复制出来和原来一样大相关文章,帮助大家解决问题。

572

2023.08.02

excel表格斜线一分为二
excel表格斜线一分为二

在Excel表格中,我们可以使用斜线将单元格一分为二。本专题为大家带来excel表格斜线一分为二怎么弄的相关文章,希望可以帮到大家。

1264

2023.08.02

TypeScript类型系统进阶与大型前端项目实践
TypeScript类型系统进阶与大型前端项目实践

本专题围绕 TypeScript 在大型前端项目中的应用展开,深入讲解类型系统设计与工程化开发方法。内容包括泛型与高级类型、类型推断机制、声明文件编写、模块化结构设计以及代码规范管理。通过真实项目案例分析,帮助开发者构建类型安全、结构清晰、易维护的前端工程体系,提高团队协作效率与代码质量。

26

2026.03.13

热门下载

更多
网站特效
/
网站源码
/
网站素材
/
前端模板

精品课程

更多
相关推荐
/
热门推荐
/
最新课程
Excel 教程
Excel 教程

共162课时 | 21.2万人学习

成为PHP架构师-自制PHP框架
成为PHP架构师-自制PHP框架

共28课时 | 2.6万人学习

关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送

Copyright 2014-2026 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号