- 博客(192)
- 资源 (16)
- 收藏
- 关注
原创 【仿真建模-Anylogic】Muti-part ALP文件解析-普通的Java类
Anylogic模型中可以自定义Java接口、Java类、Java枚举(Option List)。当开启Multi-part ALP格式时,对应的Java接口与Java类的代码会保存在_alp/Classes/文件夹下。而Java枚举则保存在alpx文件中。注:Anylogic中的Option List本质是Java的枚举类,但其相对于Java枚举类而言更简单,只允许定义简单枚举项。个人更倾向于使用Java枚举类,即新建Java类后将其改为enum。
2024-12-18 06:00:00
364
原创 【仿真建模-Anylogic】Muti-part ALP文件解析-Expriments.xml文件
Experiments.xml文件是Anylogic仿真模型中的各类实验的配置,其内部结构用于定义和管理实验。其中最为常用的是SimulationExperiment、CustomExperiment;
2024-12-17 15:06:46
707
原创 【仿真建模-Anylogic】Muti-part ALP文件解析-alpx文件
Anylogic从8.9.1版本增加了Multi-part ALP文件格式,以便于使用Git进行代码管理以及团队协作。在创建模型时,通过勾选Multi-part ALP format选项即可开启。
2024-12-17 12:53:57
897
原创 【大模型-智能体】AutoGen Studio测试和导出工作流程
AutoGen Studio允许用户针对任务交互式地测试工作流程,并审查由此产生的成果物(如图像、代码和文档)。此外用户还可以查看Agent工作流程在处理任务时的“内心独白”,并查看诸如运行成本(如回合数、令牌数等)和Agent行为(如是否调用了工具以及代码执行的结果)等分析信息。
2024-11-22 17:27:19
1192
原创 【大模型-智能体】AutoGen Studio构建工作流程
AutoGen Studio支持以声明式方式创建Agent工作流程,并允许在聊天界面中指定和运行任务,以便Agent完成这些任务。预期的使用行为是,开发者可以创建技能和模型,将它们附加到Agent上,并将Agent组合成工作流程,这些工作流程可以在聊天界面中进行交互式测试。简单来说,AutoGen Studio提供了一个平台,让开发者能够轻松地设计Agent的工作流程,通过聊天界面与Agent进行交互,以测试和验证工作流程的有效性。
2024-11-22 16:53:58
1569
原创 【大模型-智能体】AutoGen Studio安装
注意:需要确保自己本地的python版本在3.10以上。即可开始使用AutoGen Studio。启动后,在浏览器内访问。
2024-11-22 15:29:38
857
原创 【大模型-智能体】AutoGen Studio简介
AutoGen Studio基于AutoGen框架,该框架是一个用于定义、配置和组合AI智能体以驱动多智能体应用的开源Python框架。AutoGen Studio的推出,旨在降低多智能体应用的开发门槛,使开发者能够通过简单的拖拽操作,快速创建和管理多个AI智能体,实现它们的协作工作。
2024-11-22 13:50:11
685
原创 【大模型-智能体】AutoGen简介
AutoGen是一个功能强大、灵活且易于使用的工具,其能够帮助开发者创建基于大语言模型的复杂应用程序。通过提供模块化设计、高级抽象层、多Agent方法以及可视化和调试工具等特性,显著降低了开发复杂度、提高了开发效率,并拓宽了应用范围。
2024-11-22 12:45:51
656
原创 【仿真建模-MESA】框架简介
Mesa是一个基于Python3+的开源项目,旨在提供一个现代、易用的多智能体仿真环境。它借鉴了NetLogo、Repast和MASON等多智能体仿真框架的优点,并结合Python语言的强大功能,为用户提供了丰富的建模和仿真工具。
2024-11-21 18:12:57
676
原创 【仿真建模-MASON】框架简介
MASON是一个强大的开源Java库,专为创建大规模分布式多智能体系统仿真而设计,以高效的设计、灵活性和广泛的应用领域而著称。其不仅包含核心的MASON项目,还提供了多种扩展功能,这些扩展功能可以在其贡献目录中找到。MASON项目官网提供详细信息和进一步的资源链接,以确保开发者能够充分利用这个平台进行复杂系统的建模与模拟。目前,最新版MASON版本于2024年3月更新,版本号为22。
2024-11-21 16:15:14
731
原创 【日常记录-Java】Ant
Ant是一个基于Java的构建工具,通过读取XML格式的配置文件(通常命名为build.xml)来执行构建过程,这些配置文件定义了项目构建所需的各个目标和任务。
2024-11-01 14:25:54
555
原创 【日常记录-Java】SLF4J扫描实现框架的过程
在SPI包下,SLF4J定义了一个接口SLF4JServiceProvider,具体的日志实现框架会提供一个实现类,并配置在META-INF/services/org.slf4j.spi.SLF4JServiceProvider文件中;若未找的,则使用默认的NOPServiceProvider,该provider提供的logger不会输出任何东西;通过初始化后的SLF4JServiceProvider,可以获取到一个ILoggerFactory接口的实现,在通过该实现获取具体的Logger对象;
2024-10-30 14:27:34
591
原创 【日常记录-Java】JarFile
JarFile是java.util.jar包下的一个类,其扩展了java.util.zip.ZipFile类。JarFile主要用于读取Jar文件的内容。Jar文件是一种用于存储和分发Java类文件、资源文件和元数据的文件格式,其类似于Zip压缩文件,但具有特定的用途和结构。
2024-10-28 09:28:07
798
原创 【日常记录-Java】可变长度参数
以B作为入口类,当参数个数不为1时,报错为“Exception in thread "main" java.lang.IllegalArgumentException: wrong number of arguments”。参数个数为1时,报错为“Exception in thread "main" java.lang.IllegalArgumentException: argument type mismatch”。
2024-10-25 16:44:15
380
原创 【日常记录-Linux】WebDriver
WebDriver是一个开放源代码的库,提供了一种用于自动化测试和控制浏览器的标准接口。通过模拟真实用户操作来与浏览器进行交互,如点击、输入、滚动等,并验证页面元素的状态和内容。其支持多种变成语言,如Java、Python、C#等,允许开发人员根据自己的技术栈选择合适的语言来编写测试脚本。
2024-09-04 14:27:55
622
原创 【日常记录-Linux】unzip指令
unzip是一个在类Unix系统(如Linux、macOS)上广泛使用的命令行工具,用于解压缩.zip格式的文件。.zip是一种广泛支持的压缩文件格式,它可以包含一个或多个文件,这些文件被压缩以节省存储空间,并且可以被压缩成单个的.zip文件以便传输。
2024-08-28 10:37:21
1336
1
原创 【日常记录-Nginx】alias指令
在Nginx中,alias指令用于指定一个替换位置,该替换位置会替换掉location块中指定的URI。即当访问一个特定的location时,Nginx会使用alias指定的路径来替换原始的请求URI,并在这个新路径下查找资源。alias指令通常与location块一起使用,特别是在处理静态文件时非常有用,其允许将请求映射到服务器上的非标准目录,而不需要改变URI的结构。
2024-08-27 07:00:00
3652
原创 【日常记录-Nginx】try_files指令
try_files是Nginx中一个非常强大且常用的指令,其用于按顺序检查文件是否存在,并将请求传递给第一个找到的文件,或者在所有文件都未找到时,执行一个回退URI。该指令在配置静态网站或单页面应用(SPA)时特别有用,因为其可以确保Nginx优先服务静态文件,而只有在静态文件不存在时才将请求转发给后端应用或提供回退页面。
2024-08-27 07:00:00
790
原创 【日常记录-MySQL】EVENT
在MySQL中,EVENT是一种数据库对象,其用于设定数据库任务自动执行。这些任务可以是任意有效的SQL语句,如数据的增删改以及存储过程调用等。EVENT是基于时间或特定条件的自动化任务,非常适合用于执行定期维护任务,如旧数据清理、统计数据更新等。
2024-08-07 16:37:16
485
原创 【日常记录-Docker】RUN
RUN在Dockerfile中用于镜像的构建;构建镜像:RUN在Dockerfile中用于执行命令,并在当前镜像基础上创建一个新的镜像层。这些命令可以是安装软件包、复制文件或进行配置更改等操作;提交结果:执行完命令后,RUN会将结果提交为新的镜像层,该镜像层将用于Dockerfile中的后续步骤;
2024-08-01 07:00:00
339
原创 【日常记录-Docker】CMD与ENTRYPOINT
CMD和ENTRYPOINT都是Dockerfile中用于定义容器启动时执行命令的两个重要指令,两者在原理、用法以及相互关系上有显著的区别;在Dockerfile中用于为容器提供默认的执行命令或参数,当容器启动时,若没有通过docker run命令指定其他命令,则会执行CMD中定义的命令;即CMD的主要用途是为容器内的应用程序提供默认的运行方式或参数;
2024-08-01 07:00:00
1053
原创 【仿真建模-传热学】空间区域的离散化方法
进行区域离散化时,应注意相邻两控制体的厚度变化不应太大,同一控制容积各个方向的尺寸一般也不宜相差太远,否则会降低计算的准确度。节点数的多少应在计算过程中做适当的调整,在调试程序的初期宜取较少的节点数,而随着计算的进行,逐步加密网格,当计算的主要结果不再随节点数的增加而发生变化时,就得到了与节点数无关的解。
2024-07-29 15:02:26
1054
原创 【笔记-软考】大数据架构-Lambda与Kappa架构对比
大数据系统架构的设计思想很大程度受技术条件和思维模式的限制;Lambda架构在提出初期面向小范围业务,直接将成熟离线处理技术(Hadoop)和实时处理技术(Storm)相结合,用View模型将二者处理后得到的输出结果结合起来,在服务层进行统一后,再开放给上层服务,是相当可行且高效的设计方式。而Kappa架构的作者对流式处理系统有着丰富的理论知识和使用经验,基于对流式计算的深入理解,Kappa架构在同一层内进行实时处理和离线处理。
2024-07-28 06:30:00
1120
原创 【笔记-软考】层次式架构-业务逻辑层架构设计
使用工作流的思想组织业务逻辑的优势在于:将应用逻辑与过程逻辑分离,在不修改具体功能的情况下,通过修改过程模型改变系统功能,完成对生产经营部分过程或全部过程的集成管理,有效地将人、信息和应用工具合理组织起来,发挥最大的效能;工作流:业务流程的全部或部分自动化,并在此过程中,文档、信息、任务按照一定的过程规则流转,实现组织成员间的协调工作以达到业务的整体目标;系统实现所有后台逻辑后,向外提供一个统一的Facade接口,而前台层仅依赖于该Facade接口,实现前台层与业务层的解耦;
2024-07-28 06:00:00
484
原创 【笔记-软考】层次式架构-数据访问层设计
工厂模式定义一个用于创建对象的接口,让子类决定实例化哪一个类,从而将实例化操作延迟到子类中;在数据访问层中,为实现对多种数据库的操作,需先定义一个数据库操纵接口,然后根据数据库的不同,由类工厂决定实例化哪个类;连接池的核心理念:在系统初始化时,依据配置创建连接并放入连接池内,此后所使用的连接均从该池内获取,以实现连接的高效复用;数据库连接对象属于重要的共享资源,为解决其频繁分配与释放所带来的性能问题,引入了连接池;
2024-07-27 12:04:15
614
原创 【笔记-软考】层次式架构-表现层框架设计
UIP(User Interface Process)将表现层划分为UIC(User Interface Components)和UIPC(User Interface Process Components)两个子层,其中UIC负责用户数据获取和结果返回,而UIPC用于协调界面的各个部分,使其配合后台的活动;表现层设计模式主要包括MVC、MVP、MVVM三种,用来分离显示部分和业务处理部分(显示部分发生变化的概率更高,分离后可单独演化);界面管理技术主要包括界面配置、界面定制、界面动态生成三部分;
2024-07-27 07:00:00
488
原创 【踩坑系列-anylogic】动画模型支持多实例
仿真模型的运行需要输入输出数据,而在支持多用户的场景下,需要对各个用户的数据进行区分。为此,数据需要携带标识taskId,该标识全局唯一,并在启动时通过启动命令行的参数列表传入模型。导出为独立应用的仿真模型,默认启动时随机选择一个可用端口号,不利于管理。:由上述描述可知,数据唯一标识也可以通过系统属性变量进行设置,只不过需要将模型内获取唯一标识的方法修改为从系统属性变量中获取即可。唯一标识传入模型后,需要在模型运行前读取数据完成初始化,并在模型运行结束后将结果统一写出到指定位置。
2024-07-22 11:45:59
695
原创 【踩坑系列-anylogic】智能体群的z-order变更
木板智能体由智能体群进行维护,模型启动时依次创建3个木板智能体,标识分别为S0、S1、S2,z轴坐标分别为0,10,20;现象是2D与3D视图显示不一致,3D视图显示最上层为S2,2D视图显示最上层为S0;从内核源码可知,智能体群的演示内容是通过LinkedHashMap进行维护,其顺序完全依赖于添加次序,故更改添加到智能体群的先后次序可间接变更z-order;2D视图下z轴无法显示,其z-order决定了渲染次序;故上述问题是由各木板智能体在演示视图上的z-order不正确导致的。
2024-07-19 17:57:23
530
原创 【笔记-软考】软件架构风格
数据流架构风格是一种类计算机体系结构,其没有概念上的程序计数器,指令的可执行性与执行仅基于指令输入参数的可用性来确定,故该风格的指令执行顺序是不可预测的,即行为是不确定;系统中采用调用与返回机制,主要思想是将一个大系统分解为若干子系统,以便降低复杂度,并增加可修改性;主要包括主程序/子程序架构风格、面向对象架构风格、层次型架构风格、客户端/服务器架构风格;强调系统中每个构件都是相对独立的个体,它们之间不直接通信,以降低耦合度、提升灵活性,该风格主要包括:进程通信架构风格和事件系统架构风格;
2024-07-18 16:27:50
1062
原创 【仿真建模-anylogic】开发规范
Anylogic默认设定函数访问权限为default。需要依据该函数未来的使用范围,重新在public、protected和private之间做选择。避免将智能体导出为自定义组件库后,其他模型内无权访问该方法。
2024-06-28 17:55:24
610
原创 【学习笔记-机器学习】感知机模型
求得一个能够将训练数据集的正实例点和负实例点完全正确分开的分离超平面,即确定感知机模型参数w、b;感知机是一种二分类的线性分类模型,属于判别模型,是神经网络和支持向量机的基础;将误分类点到超平面S的总距离作为损失函数并将损失函数极小化。能够将数据集的正实例点和负实例点完全正确地划分到超平面的两侧,即对所有。(4) 转至(2),直至训练集中没有误分类点。,则称数据集T是线性可分的,否则,称数据集T线性不可分;其中w和b为感知机的模型参数,表示实例的特征向量,对应于输入空间的点;训练数据集是线性可分的。
2024-06-26 17:54:38
1060
原创 【仿真建模-anylogic】FlowchartBlock原理解析
由于Anylogic内核做过代码混淆,以下代码为二次加工后的逻辑;该类为所有流程处理块的基类,定义标准函数;
2024-06-17 08:00:00
505
原创 【仿真建模-anylogic】EventRate原理解析
为了自定义泊松过程的到达率以及“到达”特性发生时需要执行的逻辑,Anylogic会自动在容器类中生成double evaluateRateOf( EventRate _e )和void executeActionOf( EventRate self )函数;EventRate主要用于对符合泊松过程的事件触发场景进行建模,例如:商店顾客到达过程符合泊松过程,统计数据分析出其到达率为每天1000人,则可以通过EventRate描述顾客到达模型;EventRate是Event的3个子类之一,其主要用于对符合。
2024-06-13 13:33:03
894
原创 【仿真建模-anylogic】Dynamic Event原理解析
CustomDynamicEvent是由用户拖拽Dynamic Event组件后由Anylogic自动生成的DynamicEvent子类,用户可在该组件的属性窗口自定义入参和事件逻辑;Anylogic会依据自定义入参自行调整生成的构造函数,并为用户生成对应的create_CustomDynamicEvent方法;这也是DynamicEvent可以并行的原因(每次都是生成一个新的实例,互不影响);DynamicEvent是EventOriginator的子类,其主要扩充了 void reset()函数;
2024-06-12 14:02:15
501
原创 [日常踩坑]--(14)异步任务与事务
Author:赵志乾Date:2020-08-14Declaration:All Right Reserved!!!踩坑:场景:数据库事务执行完,需要执行异步任务;例如向Redis发布消息;做法:事务的最后一步执行消息发布;代码如下:@Transactional(rollbackFor = Exception.class)public void doMyTransaction(Object param) { // step1: 执行事务操作 // step2: 发布Re.
2020-08-14 15:13:31
880
原创 [日常踩坑]--(13)MySQL大表变更
Author:赵志乾Date:2020-08-14Declaration:All Right Reserved!!!踩坑:场景:MySQL数据库单表行数将近400万,多张表加和约千万行。需要对这几张表进行字段添加和字段更新;做法:使用数据客户端连接数据库,直接执行变更命令;现象:此系列命令的执行极其占用数据库资源,使得数据库性能大幅下降。导致线上应用中的其他表单条记录更新操作耗时将近30秒,并发锁过期失效,出现数据更新错乱。解决方案:上述问题是由于单表过大,导致更新占用过..
2020-08-14 14:35:29
304
原创 [日常踩坑]--(12)Redis锁释放
Author:赵志乾Date:2020-07-28Declaration:All Right Reserved!!!踩坑:场景:获取Redis锁,完成业务逻辑后释放锁做法:try语句中获取Redis锁,finally语句中释放锁,代码如下:try{ // step1: 获取锁--默认过期时间15秒 boolean result = jedisTemplate.getLock(lockKey); if(!result){ // 抢锁失败 .
2020-07-28 13:35:34
2502
原创 [日常踩坑]--(11)随机业务id重复问题
Author:赵志乾Date:2020-06-05Declaration:All Right Reserved!!!踩坑:场景:业务记录需要唯一标识,也就是我们使用的业务id。做法:本地通过时间戳+业务串+随机数的规则生成业务id,当在循环中使用该方法是会产生重复的业务id。代码如下:public class ServiceIdGenerator { private static DateFormat dateFormat = new SimpleDateFormat("yy.
2020-06-05 18:42:03
1457
原创 [系统设计]--(2)控制接口调用间隔的接口并发锁
Author:赵志乾Date:2020-04-04Declaration:All Right Reserved!!!《小并发量、低延时、通用场景下的接口并发锁》给出的并发锁方案主要用于解决多个请求并发调用时,只有单个调用能够抢到锁并完成业务流程的执行。为此,其在业务代码执行前进行抢锁,执行完或异常终止时显示释放锁,以便后续请求能够顺利执行。现在我们要面临一个新的场景,某类修改接口针对...
2020-04-05 09:20:55
515
原创 [系统设计]--(1)小并发量、低延时、通用场景下的接口并发锁
Author:赵志乾Date:2020-04-04Declaration:All Right Reserved!!!实际项目中的接口大致可以分为两大类:查询类与修改类。对于查询类接口而言,其对业务数据是没有影响的(对查询进行统计的功能除外)。针对此类对业务数据无影响的接口,完全可以放开并发控制,以提高接口的响应速度。而对于修改类接口,其操作会影响到业务数据。为避免数据不一致,需要进行并发...
2020-04-04 23:37:19
319
Anylogic模型:桥式起重机参数化桥架数
2024-06-04
Linux命令行与Shell脚本编程大全LinuxCommandLineAndShellScriptingBible(2th).pdf
2017-10-15
精通AngularJS.pdf
2017-09-13
AngularJS权威教程.pdf
2017-09-13
大话处理器:处理器基础知识读本.pdf
2016-03-18
大话物联网
2016-03-17
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人