【仿真建模-anylogic】FlowchartBlock原理解析

Author:赵志乾
Date:2024-06-17
Declaration:All Right Reserved!!!

1. 类图

2. 原理解析

2.1 核心函数
函数功能
FlowchartBlock(Engine engine ,Agent owner, AgentList population )构造函数,入参设定引擎、owner以及所在的群
boolean isInsideFlowchartBlock()判定该Block是否为内部Block,即是否是其他Block的组成部分
FlowchartBlock getFlowchartBlockRepresentative()获取该Block的顶层Block,如果该Block非内部Block,返回Block本身
Agent remove(Agent agent, FlowchartBlock receiver)从Block中移除并返回指定Agent,如果receiver不为空,则receiver将持有指定Agent
Agent suspend(Agent agent)让Block挂起对指定Agent的处理(幂等);如果指定Agent本就处于挂起状态或不被该Block持有,则返回null
Agent resume(Agent agent)让Block重新恢复对指定Agent的处理(幂等);如果指定Agent存在该Block内且之前处于挂起状态则返回指定Agent,否则返回null
2.2 代码解析

           由于Anylogic内核做过代码混淆,以下代码为二次加工后的逻辑;

//*************************构造函数******************************
public FlowchartBlock(Engine engine, Agent owner, AgentList<?> population) {
    // 调用父类Agent的构造函数,入参分别为:引擎、所属owner、所属群
    super(engine, owner, population);
}

//*************************层级函数******************************
// 判定该Block是否为内部Block
public boolean isInsideFlowchartBlock() {
    // 判定标准:顶层Block是否为自身
    return this.getFlowchartBlockRepresentative() != this;
}
// 获取顶层Block
public FlowchartBlock getFlowchartBlockRepresentative() {
    // 如果owner是Block,则递归地获取顶层Block
    Agent owner= this.getOwner();
        return owner instanceof FlowchartBlock ? ((FlowchartBlock)owner).getFlowchartBlockRepresentative() : this;
}

//*************************内容操控函数***************************
// 从Block中移除指定Agent,如果receiver不为空,则移除的agent将有receiver持有
public Agent remove(Agent agent, FlowchartBlock receiver) {
    // 默认不支持,需由子类覆写
     throw this.error("not support");
}


//*************************处理控制函数***************************
// 挂起
public Agent suspend(Agent agent) {
    // 默认不支持,需要子类覆写
    throw this.error("not support");
}
// 恢复
public Agent resume(Agent agent) {
    // 默认不支持, 需要子类覆写
    throw this.error("not support");
}

3 应用场景

       该类为所有流程处理块的基类,定义标准函数;

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/715707.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

在表格中渲染轮播图的方法;

效果图&#xff1a;代码&#xff1a; shop()function shop() {// render()$.ajax({url: "http://jingxun.zhbbll.asia/pc/Commodity/shop_list", //要请求的后端地址type: "GET", //数据发送的方式(POST或者GET)dataType: JSON,headers: {token: token,id…

Mybatis工作流程和插件开发

在了解插件开发之前&#xff0c;我们先总体的来梳理一下Mybatis的大致执行流程&#xff1a; 1.new SqlSessionFactoryBuilder().build(inputStream):先根据配置文件&#xff08;包含了全局配置文件和映射配置文件&#xff09;初始化一个对象Configuration&#xff08;这里对象里…

一二三应用开发平台应用开发示例(3)——生成库表及后端代码

生成库表 前端页面的配置&#xff0c;也就是视图功能&#xff0c;我们先放一放&#xff0c;来看看生成库表和后端代码。 关闭实体配置界面&#xff0c;回到实体列表&#xff0c;勾选“文件夹”实体&#xff0c;点击“生成库表”&#xff0c;并确定。 系统提示成功后&#xff…

机器学习-课程整理及初步介绍

简介: 机器学习是人工智能的一个分支&#xff0c;它使计算机系统能够从经验中学习并改进其在特定任务上的表现&#xff0c;而无需进行明确的编程。机器学习涉及多种算法和统计模型&#xff0c;它们可以从数据中学习规律&#xff0c;并做出预测或决策。机器学习的应用非常广泛&…

云计算在保险行业的应用:太平财险团财险理赔新核心业务系统案例

随着科技的快速发展&#xff0c;云计算技术已经成为推动保险行业数字化转型的重要力量。云计算为保险公司提供了弹性、可扩展的计算资源&#xff0c;使其能够灵活应对业务高峰和低谷&#xff0c;提高业务运营效率和风控水平。太平财险与太平金科联合开发的“团财险理赔新核心业…

购物车列表设计

三、缓存结构设计 购物车数量 数据结构 string redisKey : cart_size${userId} value:购物车数量 缓存时间 15天 数据库用户购物车列表 数据结构 string redisKey : cart${userId} value:数据库用户购物车列表json 缓存时间 15天 用户排序后购物车商品列表&#xff…

Android sensor列表和访问记录

命令: dumpsys sensorservice 1.dumpsys sensorservice查看最近申请记录 dumpsys sensorservice命令输出Previous Registrations. Previous Registrations: 23:07:43 0x00000008 pid16587 uid10397 packagecom.start.testdemo.ui.udfp.fql.XsqFQLActivity samplingPeriod66…

智慧分流:探索互联网与物联网的负载均衡技术

数字化时代&#xff0c;个人认为&#xff0c;无论是互联网还是物联网&#xff0c;还是其他网&#xff0c;在各个层级&#xff0c;都对系统的稳定性和效率提出了更高的要求。负载均衡技术作为保障系统平稳运行的关键&#xff0c;其重要性不言而喻。在数字世界的海洋中&#xff0…

仅靠独立网站也能赚到100万,真的太牛了

你听说过 Photopea 吗&#xff1f;这是一个免费的类似 Photoshop 的图像编辑器。 这个项目&#xff1a; 每月1300万访问量每月150万用户使用小时每月10万美元的广告收入 Photopea 项目的天才创造者是 Ivan Kutskir。 令人惊讶的是&#xff0c;他独自处理了每日50万用户&…

gt9x双击唤醒屏幕

里面可以看到irq 和 rst的gpio引脚从设备树获取失败&#xff0c;排查设备树发现是属性名写错了&#xff1a; c &i2c1 {status "okay";goodix_ts5d {compatible "goodix,gt9xx";reg <0x5d>;// tp-size <89>;touchscreen-size-x <12…

JINGWHALE WH 迭代思维法:科学优化问题解析、任务策略规划与高效工作汇报的赋能艺术

JINGWHALE 对此论文相关未知以及已知概念、定理、公式、图片等内容的感悟、分析、创新、创造等拥有作品著作权。未经 JINGWHALE 授权&#xff0c;禁止转载与商业使用。

怎样搭建serveru ftp个人服务器

首先说说什么是ftp&#xff1f; FTP协议是专门针对在两个系统之间传输大的文件这种应用开发出来的&#xff0c;它是TCP/IP协议的一部分。FTP的意思就是文件传输协议&#xff0c;用来管理TCP/IP网络上大型文件的快速传输。FTP早也是在Unix上开发出来的&#xff0c;并且很长一段…

混淆矩阵-召回率、精确率、准确率

混淆矩阵 1 混淆矩阵2 混淆矩阵指标2.1 准确率2.2 精确率2.3 召回率2.4 特异度2.4 假正率2.5 假负率2.6 F1 分数 3 总结 1 混淆矩阵 混淆矩阵是一种用于评估分类模型性能的重要工具。它通过矩阵形式清晰地展示了模型对样本进行分类的结果&#xff0c;帮助我们理解模型在不同类…

第十七篇——交叉熵:如何避免制订出与事实相反的计划?

目录 一、背景介绍二、思路&方案三、过程1.思维导图2.文章中经典的句子理解3.学习之后对于投资市场的理解4.通过这篇文章结合我知道的东西我能想到什么&#xff1f; 四、总结五、升华 一、背景介绍 任何事情&#xff0c;都需要我们制订计划执行计划&#xff1b;而制订计划…

AI 能否自行设计和制造芯片?

一、背景 AI在芯片设计和制造方面的潜力极其巨大&#xff0c;可以从以下几个方面探讨&#xff1a; 芯片设计阶段 自动化设计优化&#xff1a; AI可以实现芯片架构的自动化设计和优化&#xff0c;通过机器学习算法探索庞大的设计空间&#xff0c;找到性能、功耗、面积等方面的…

软件测试---基础知识

目录 一、概念 1、需求 2、测试用例 3、软件错误--BUG 4、软件生命周期 5、软件开发模型 6、测试模型 7、软件测试生命周期 二、基础 1、描述一个bug 2、定义bug的级别 3、bug的生命周期 4、开始第一次测试 5、解决争执 三、测试用例基础知识 1、用例基本要素 …

k8s实战案例之部署nginx+Tomcat+nfs实现动静分离

​​​​​ k8s实战案例之部署NginxTomcatNFS实现动静分离 1、基于镜像分层构建及自定义镜像运行Nginx及Java服务并基于NFS实现动静分离 1.1、业务镜像设计规划 根据业务的不同&#xff0c;我们可以导入官方基础镜像&#xff0c;在官方基础镜像的基础上自定义需要用的工具和…

结构设计模式 - 桥接设计模式 - JAVA

桥接设计模式 一. 介绍二. 桥接模式示例2.1 定义实现部分和具体实现2.2 定义抽象部分和细化抽象部分2.3 测试2.4 解释 三. 结论 前言 这是我在这个网站整理的笔记,有错误的地方请指出&#xff0c;关注我&#xff0c;接下来还会持续更新。 作者&#xff1a;神的孩子都在歌唱 一.…

爬虫初学篇

初次学习爬虫&#xff0c;知识笔记小想 目录&#x1f31f; 一、&#x1f349;基础知识二、&#x1f349;http协议&#xff1a;三、&#x1f349;解析网页(1) xpath的用法&#xff1a;(2) bs4解析器的解释&#xff1a;(3) python字符编码的错误&#xff1a;(4) 正则表达式&#…

HTML静态网页成品作业(HTML+CSS)——中华传统美德介绍网页(2个页面)

&#x1f389;不定期分享源码&#xff0c;关注不丢失哦 文章目录 一、作品介绍二、作品演示三、代码目录四、网站代码HTML部分代码 五、源码获取 一、作品介绍 &#x1f3f7;️本套采用HTMLCSS&#xff0c;表格布局&#xff0c;未使用Javacsript代码&#xff0c;共有2个页面。…