仿真系统概述

简介: 介绍仿真系统的概念,和设计一个仿真系统的大致步骤

什么是系统

讨论仿真系统之前我们需要明确什么是系统,这个概念可以帮助我们理解边界和范围。

那么什么是系统?

德谟克利特的著作《世界大系统》有一段关于系统的阐述:

任何事物都是在联系中显现出来的,都是在系统中存在的,系统联系规定了每一个事物,而每一个事物又能反映系统的联系的总貌。

中国著名学者钱学森的观点是:

系统是由相互作用相互依赖的若干组成部分结合而成的,具有特定功能的有机整体,而且这个有机整体又是它从属的更大系统的组成部分。

词典对于系统的解释是:

组成一个复杂整体的一组互相作用、互相联系或者依存的事物。

用一个汽车总装线来举例,各种零部件通过传送设备(履带或者其他设备),再有工人(或者是机械手臂)按照顺序组装。在这个系统中,工人,机械手臂,零部件相互作用。履带的速度影响零部件的到达,进而影响装配,流水线自身的划分和设计又影响了整体效率。

从上面这个例子可以感受到我们看系统的时候有两个重要的点:

一是边界,即确认需要研究事物范围,比如货币的供应量从某种程度上也可能对流水线有影响,但是我们并不会考虑它。

二是抽象,针对研究内容的不同,需要考虑的事物的详细程度也是不同的,比如机械手臂的出产公司虽然也是一种外部输入,但是会被统一抽象为机械手臂,对于其的特征建模也可以按照平均来计算。

还有一种更通用的描述系统的方式,即三要素,分别为实体,属性和活动。实体确定了系统构成,属性描述了实体特征,而活动描述了系统内部的相互作用。

什么是仿真

仿真一般是指对现实中的系统进行模仿,观测并产生人造过程记录的过程。

仿真最早用于水利研究,逐渐用于航空、航天和原子能技术等领域。后来随着计算机技术的大力发展,扩展到各行各业。

针对互联网公司,特别是线上线下融合较深的业务,由于线上试错成本高,反馈周期慢,通过仿真可以很好服务以下几点:

  • 业务形式新,基本没有可以参考的模型或者参数,加上缺少学术上的积累,仿真可以加速研究一个业务场景中复杂系统间的相互影响。

  • 仿真由于是对真实系统的模仿,所以速度和外部参数是可以调整,且对真实系统无影响,可以快速安全进行实验或者验证,加深对于系统行为的理解。

  • 仿真模型和实验的产出可能成为新知识的来源,用于优化业务。

仿真系统的构建方法

构建仿真系统流程如下:

系统建模

离散or连续

系统可以是离散,也可以是连续的。当然对于现实中的大多数系统,这两种变化都是共存的,一般我们取其中占多数的为准。

大部分自然系统都是连续系统,比如湖面的水位,由于降雨,自然蒸发等处于一个时刻变化的状态,而离散系统一般只在离散时间点发生变化的系统,绝对部分人造系统都属于离散系统。

除了特别的需要以外,大部分系统设计上都会做成离散系统,因为连续系统可以通过引入采样装置转为离散系统,比如上面提到的湖泊系统,就可以通过引入定时采样水质,水位等的装置让系统变成离散系统以方便处理。

确定核心要素

需要明确系统中的实体(包括属性),事件,活动。

我们以外卖配送来看,实体即骑手,顾客,商家,属性可能包括骑手速度,顾客位置,商家位置等,属性可以是从真实系统中获得,也可以是统计上的数据。

事件主要是对于整个配送有重要影响的,点外卖的时候有一些外卖APP会有进度提示,比如商家接单,商家出餐,骑手抢单,骑手送餐,送达顾客处等,当然这些只是展示出来的事件,系统内部可能更复杂,还有更多事件,确认核心要素的时候一般需要业务专家或者领域专家。

订单关键事件-1

订单关键事件-2

大部分系统单单靠事件就可以驱动了,但是有时候还需要明确活动。一般两个相邻且有先后顺序的事件,如果从逻辑上导致了状态的转移,那可以化为一个活动。比如外卖配送中从待取餐状态转移配送中状态,其实暗含了到店和取餐两个事件。活动并不是必须的,如果研究目的不涉及可以不关注。

确定仿真算法

目前有四种成熟仿真算法:

  • 事件调度

  • 活动扫描法

  • 进程交互法

  • 三阶段法

一个仿真系统可以采用一种算法,也可以混合多种使用。

仿真系统的时间由仿真钟控制,算法决定了仿真钟的推进方式。比如事件调度算法,就是每次推进一个固定的仿真钟步长,然后获取当前仿真钟上需要触发的事件,如果多个事件则按照优先级触发。

diagram-10459649492078318512.png

仿真钟的结束一般有两种,一种是终态仿真,即仿真钟在规定时间内停止,比如仿真一个小时的运行情况。另外一种是稳态仿真,这种仿真的仿真钟是无限的,停止条件由其他方式确定,比如某种特定的置信度达到一个阈值,则由外部停止仿真钟。

建立仿真模型

根据确定的仿真算法,梳理系统内部的状态变量和流转方式。再针对不同的事件确定事件对状态和实体属性的影响,明确事件间的相互影响。

用加油站来举例,车量入站,车辆等待加油,车辆加油完成,车辆离开就是一系列事件,期间可能的影响包括加油站内的车辆数量,可用加油枪的数量,剩余油量,收入等。

比如车辆开始加油事件发生时会在未来生成车辆加油完成这个事件,具体的完成时间需要通过统计学或者其他建模方式给出。

实现仿真系统

实现仿真系统主要有两个流派:

  • 基于高级语言自研
  • 基于仿真语言开发

还有一种就是从专业的支持公司购买仿真系统,并直接使用,比如anylogic,flexsim等。

自研就不用多说了,多用于新兴系统,且开发资源充足的公司。

仿真语言更适合成熟的系统,或者科研院校,比如Modelica (https://openmodelica.org)。

分析仿真结果

这个和仿真研究目的强关联,一般都是从仿真过程记录中加工获得结果数据。唯一需要注意的有随机性的仿真系统一次仿真只是一次抽象,要注意置信度。

仿真上云

仿真系统和普通的业务系统不同,它对于冷启动不敏感,资源需求大但是不均衡,同时仿真单个任务运行时间长。

一般仿真系统上云可以考虑的就是执行节点的动态伸缩,根据仿真任务的情况适当缩减或者扩容节点,按量付费。

另外还有一个可能的方向就是基于serverless,因为仿真系统本身可以基于事件驱动,搭配MQ可以通过事件来驱动function进行过程流转,中间过程可以落库,也可以写文件。由于没有具体操作过,效果还有费用上的对比没有数据,但是至少基于serverless的话伸缩性会很好。

参考

这里有一些公开的仿真应用:

另外补充阅读:

相关文章
|
应用服务中间件 nginx 前端开发
WebSocket加入心跳包防止自动断开连接
近日,在公司中开发一个使用websocket为前端推送消息的功能时,发现一个问题:就是每隔一段时间如果不传送数据的话,与前段的连接就会自动断开; 刚开始以为是session的原因,因为web session 的默认时间是30分钟;但是通过日志发现断开时间间隔时间远远不到30分钟;认真分析发现不操作间隔恰好为90秒 它就会在自动断开;随恍然大悟;原来是我们的使用nginx 代理,nginx配置了访问超时时间为90s; WebSocket是html5中用来实现长连接的一个协议。
25981 0
|
监控 应用服务中间件 BI
nginx日志统计分析自动报表工具goaccess(推荐)
## 功能描述 - nginx日志统计分析自动报表工具goaccess(推荐) - 网站总访问量统计,按天统计访问量,按页面(不同URL)统计访问量(不包括JS、css),按静态页面统计访问量(包括JS、css),不存在的页面统计访问量 - 按不同的IP统计访问量,按不同的操作系统统计访问量,...
8920 0
|
12月前
|
人工智能 编解码 前端开发
Upscayl 开源神级放大器!一键把 480p 老照片变 4K,本地跑图不花一分钱!
Upscayl是一款免费开源的AI图像放大工具,支持本地离线运行,利用Real-ESRGAN技术将低清图一键放大至4K,兼容老照片、插画、截图等,保护隐私且全平台可用。
1973 41
|
机器学习/深度学习 人工智能 自然语言处理
用AI精准定位问题代码,调试时间直接砍半!LocAgent:斯坦福开源代码调试神器,多跳推理锁定问题代码
LocAgent是由斯坦福大学、耶鲁大学等顶尖机构联合开发的代码定位框架,通过将代码库转化为图结构并利用大语言模型的多跳推理能力,实现精准的问题代码定位。
1634 1
用AI精准定位问题代码,调试时间直接砍半!LocAgent:斯坦福开源代码调试神器,多跳推理锁定问题代码
|
12月前
|
数据采集 JSON 搜索推荐
京东商品评论API助力电商数据分析
京东商品评论API通过商品ID获取用户评论,支持分页、评分筛选及排序,返回好评率等统计信息,适用于电商分析与推荐系统。采用HTTPS+JSON,配合MD5签名保障安全,稳定支持高并发。
|
存储 弹性计算 固态存储
阿里云服务器收费标准与最新活动价格一览,轻量应用服务器38元起,云服务器99元起
阿里云服务器最新价格参考,云服务器的收费标准主要包含CPU内存配置价格、云盘价格和带宽价格等,官方会不定期调整收费标准和活动价格,目前,共享型经济型e实例云服务器2核2G3M还是只要99元1年,独享型通用算力型u1实例云服务器2核4G5M企业用户购买只要199元1年,而轻量应用服务器的抢购价格已经到了38元1年,每天仅需0.1元。更多配置的云服务器的最新收费标准和活动价格表见下文。
|
监控 网络协议 视频直播
UDP协议(特点与应用场景)
UDP(用户数据报协议)是传输层的一种无连接协议,具有简单高效、低延迟的特点。其主要特点包括:无连接(无需握手)、不可靠传输(不保证数据完整性)、面向数据报(独立传输)。尽管UDP不如TCP可靠,但在实时通信(如语音通话、视频会议)、在线游戏、多媒体流媒体(如直播、点播)及网络监控等领域广泛应用,满足了对速度和实时性要求较高的需求。
1925 19
|
数据采集 人工智能 供应链
《AI赋能工业制造:开启智能生产新时代》
在新一轮科技革命中,人工智能(AI)与工业制造深度融合,推动制造业迈向智能化、数字化新时代。AI通过智能生产调度、设备故障预测、质量检测和供应链优化等应用,显著提升效率和创新能力。特斯拉和富士康的智能工厂展示了AI在实际生产中的巨大潜力。然而,数据质量、技术集成和人才短缺等问题仍需解决。未来,AI将与5G、物联网等技术融合,进一步推动工业制造全面升级。
1281 9
|
缓存 物联网 数据库
InfluxDB vs TDengine :2025 年了,谁家用的数据库还不能高效读缓存?
在工业互联网和物联网的大数据应用场景中,实时数据的写入和查询性能至关重要。如何快速获取最新设备状态并实时处理数据,直接影响到业务的高效运转。本文将深入分析 TDengine 和 InfluxDB 在缓存机制上的差异,帮助读者更好地理解这两款主流时序数据库在性能优化方面的优劣。
1422 1
|
运维 监控 Linux
Linux系统之部署Linux管理面板1Panel
【10月更文挑战第20天】Linux系统之部署Linux管理面板1Panel
2175 4
Linux系统之部署Linux管理面板1Panel