离散事件系统建模仿真
ref: 离散事件系统建模与仿真
一. 前言
- 离散事件系统的概念: 该类系统的状态变化只在一些离散时刻上由随机事件进行触发, 而且事件之间的机制较为复杂, 无法直接使用数学表达式进行展示
- 涉及的学科: 系统工程
- 内容列表: 基本原理, 数据基础, 建模方法, 模型实现, 仿真工具, 决策应用, 结果分析, 模型校验
二. 工程侧的一个模拟系统参考(开始学习系统仿真的原因)
- 算法有效性校验仿真系统是通过一组模型和模型运单调用的服务实现的复杂系统.
- 目标: 在真实世界以外维护一套可以脱离真实实现的环境. 并回收算法效果
- 实现方式:
- 固化的业务流程: 复用业务服务的逻辑接口
- 稳定的预估服务: 复用算法的预估模型
- 需要涉及现实流程: 使用额外的模型或者模拟系统对于该部分的流程进行拟合
- 使用方式:
- 在固定其他预估服务和业务流程的情况下更换需要优化的目标模型或策略
- 和现实或者其他流程的收益进行对比, 回收算法收益
三. 仿真必要性
- 仿真的必要性: 常见的技术发展方式有两种, 理论研究, 实验研究. 仿真研究是实验研究和计算机技术融合的产物, 通过组合经验性的规则或者基础理论, 用于进行问题的求解
- 仿真实验的优势:
- 现实无法实验情况: 实际系统不存在, 或实际实验会造成较大损失, 其收益点和现实实验的成本是相关的
- 现实实验可以进行但是困难较大: 例如受到现实规则约束, 或者周期过长
- 对于一些长周期场景能够进行推演: 例如基于基本规则的长周期经济推演
- 仿真系统的验证过程: 包括数学方程解算, 动态过程推演, 人为操作响应
- 仿真系统的模型: 方程, 框图, 虚拟设备, 算法
- 仿真系统模型的特点: 通过对系统进行抽象和简化进行实现, 包含了研究目标的系统特征和规律信息
- 仿真过程的定义: 使用模型替代真实系统进行实验和分析的过程
- 物理仿真: 使用微缩的物理模型进行工程的模型
- 仿真的基本特点: 有一个对象系统, 有一个或一组模型, 能够在模型上做实验并获取数据结果
- 仿真验证的基本要素: 系统, 模型, 试验
- 同时包含系统, 模型, 试验三个特征的科学活动都是仿真
- 系统: 是仿真的对象和问题的本源
- 试验: 是解决问题达到研究目的的手段
- 模型: 是连接问题和手段的桥梁
四. 仿真系统相关定义
-
计算机仿真语境下的系统, 试验, 模型三要素
-
系统:
- 工程系统: 利用工业手段构造的具有特定功能的系统. 例如 机械, 工具, 电器
- 非工程系统: 在自然和人类发展过程中达成的不完全目的性的系统. 例如 生物, 经济, 管理, 生态
- 混合系统: 部分系统是工程系统和非工程系统的混合, 在某些情况下这类系统能够拆分为交互的独立工程和非工程子系统
- 系统由物理或者逻辑上相对独立的单元进行组合的
- 实体: 将系统的物质, 能量, 信息, 组织等具有意思的单元
- 属性: 对于实体所具有的主要特征的描述, 例如: 物理量的值, 人员数量, 职能范围等
- 参数/状态变量: 描述属性的手段
- 固定参数/时变参数: 属性不发生变化或者对于问题没有本质影响的参数
- 状态变量: 研究问题的对象的属性特征
- 实体的行为: 实体状态随时间变化而改变的行为
- 任何仿真系统都是为了解决某一问题而进行设计的
- 通过研究的目的对于系统的边界进行划分, 将所研究的系统和所处的环境进行划分
-
试验:
- 主要步骤:
- 设置试验需求: 试验目的, 试验客体, 分析指标, 关心的因素, 支持模型
- 确定试验方法: 蒙特卡罗法, 正交设计法, 均匀设计法, 析因设计法, 自由设计法
- 设立试验因子: 是试验模型的输入
- 分析因子: 直接和模型的分析目标相关, 须有相关性和显著性
- 随机因子: 人为引入的系统噪声, 需要引入符合实际情况的噪声随机量
- 试验响应设计: 明确试验分析指标, 证明分析指标反映了试验需求, 证明分析指标和状态变量之间的关系, 清晰需要记录的模型变量内容
- 试验运行和数据采集
- 试验结果分析与数据开采: 在原始数据基础上进行分析和处理, 得到所需的结论
- 主要步骤:
-
模型:
-
对系统特征和规律的描述, 用于提供关于系统的有用信息
-
模型的描述方式: 使用数学, 逻辑或其他抽象方式进行描述
-
模型的实现方式: 通过用计算机语言进行实现(数学模型)
-
模型的基本性质:
- 相似性: 模型与所属的系统具有相似的特性和规律
- 简化性: 模型只是系统的近似表达
- 多样性: 对于同一系统的模型表示不一定是唯一的
-
模型的时间集合的分类:
- 连续时间模型: 在描述时间状态时使用实数表示
- 离散时间模型: 在描述时间状态时使用整数进行表示, 时间的变更间是离散的
-
模型的状态变量的分类:
- 连续变化模型: 系统的状态变量随着时间是一个连续函数的方式进行变化
- 离散变化模型: 系统状态变量随时间不是连续变化 — 其只在特定时刻进行变化
状态变量随时间连续变化 状态变量随时间离散变化 模型随时间连续变化 纯粹意义上的连续系统, 常微分方程和连续时间偏微分方程 系统状态在离散时间上变化, 在其他时间段可被认为不变, 对应离散事件系统模型 模型随时间离散变化 变量时间连续但只在离散时间点获取状态, 称为采样系统, 对应离散时间的偏微分方程, 系统动力学模型 模型系统和状态均为离散, 对应差分方程模型 - 理论模型和仿真模型:
- 理论模型: (系统的一次建模) 是对所研究系统的理论描述
- 仿真模型: (系统的二次建模) 在理论模型的基础上在计算机上编程实现的模型
- 仿真模型根据模型描述方法的内在一致性的分类:
- 概念模型: 以形象的方式对于系统进行概念性的描述
- 描述模型: 基于状态和事件和两者间的转移关系描述系统行为. 通过状态变化序列进行系统的研究.
- 常见的模型: 有限状态机, 有限事件机, Markov链, Petri网
- 功能模型: 基于功能和变量描述系统行为
- 常见的模型: 功能框图, 信号流图, 随机网络图, 系统动力学流图
- 约束模型: 使用代数方程, 常微分方程或Bond图描述系统内在规律和行为
- 一般是基于能量和能量转化的方式, 为不同系统间构建统一的话语体系, 通过领域知识和能量流向进行建模
- 空间模型: 根据空间分布关系进行系统分解和建模, 通过子空间的行为, 规则和相互关系描述系统整体行为
- 常见的模型是通过相格法进行气体粒子扩散模型, 交通系统模型, 植物生长模型等. 能够建立偏微分方程的求解解算
-
-
五. 仿真应用
-
计算机仿真的技术定义:
- 以建模仿真理论, 计算机技术和信息技术以及相关应用领域为基础
- 以计算机和相关物理设备为工具
- 利用数学模型和部分实物
- 对实际或者设想的系统进行试验和分析的综合技术
-
应用领域:
-
控制工程, 系统工程
-
仿真的分类:
物理仿真, 数学仿真, 数学-物理混合仿真
- 物理仿真形象, 直观, 逼真但是代价较大
- 数学仿真经济, 方便, 灵活
- 数学-物理混合仿真, 能够添加人员等的交互界面, 但是对于模拟系统可能存在实时性要求
-
仿真的底层表示方法的分类:
- 模拟仿真: 使用模拟电子器件, 模拟目标系统的数学函数, 其效果直观, 运算速度较快, 但是精度较差
- 数字仿真: 使用数字计算器件, 对于数学函数直接进行计算. 其自动化程度高, 运算速度较慢, 但是精度较高, 具有复杂的逻辑判断能力
- 混合仿真: 同时使用模拟仿真和数字仿真. 能够快速进行多次仿真, 适用于参数调优, 统计分析的应用
-
仿真应用范围:
- 机械, 航空航天, 能源, 电力, 化工, 通信, 建筑等场景
- 经济管理和营销策略提供建议价值, 交通效率方面模拟
- 宏观社会, 经济, 生态的决策和策略研究
- 建立系统动力学模型
六. 建模的基本原则
- 仿真目的:
- 建模服务于仿真的目的
- 通过仿真目的确定模型层次, 功能结构, 描述方法, 分辨率要求
- 根据仿真目的确定变化因素是作为系统内部变量还是输入变量
- 有效利用领域知识:
- 领域中的其他建模项目是很好的参考, 能够参考其原理与规律
- 在建模过程中利用系统理论成果, 能够保证模型具有充分的理论依据
- 理论成果只是对于系统的一般性描述, 对于仿真的实现细节, 需要使用观测数据或者试验结果才能对于系统进行充分建模
- 选择正确的研究途径:
- 仿真建模的过程是一个综合各种知识来源, 针对建模目的进行表达的过程
- 根据知识来源的不同主要分为演绎和归纳两种途径
- 演绎: 从一般到特殊, 利用理论对于已有知识进行演绎, 需要利用已有的知识体系
- 归纳: 从观察到的数据归纳出一般模型
- 对于白箱模型一般使用演绎进行实现, 对于灰箱或者黑箱需要使用归纳进行实现
- 科学利用建模方法:
- 根据系统性质和仿真目的选择建模方法
- 适用性: 能够描述系统的特性和规律, 能够满足研究的精度要求
- 简单性: 满足精度的情况下对于模型进行简化处理
- 清晰性: 模型结构应当清晰, 减少模型间的耦合关系, 对于实体属性,状态,活动和实体信息描述清楚
- 组合性: 模型应作用于灵活可变的框架上, 便于组合与重用
- 模型的建模方法:
- 连续系统建模 / 离散事件系统建模
- 概念, 描述, 功能, 约束, 空间等建模方式
- 机理建模, 辨识建模, 模糊建模
- 面向对象建模, 层次化混合异构建模, 一体化建模, 多视角多分辨率建模
- 根据系统性质和仿真目的选择建模方法
- 充分保证模型可信程度
- 多变量影响可信度: 仿真目标可行度, 建模方法科学性, 理论知识正确性, 模型简化合理性, 建模数据准确性, 专家经验权威性, 仿真程序一致性, 问题领域适用度
- 可信度的校验流程需要贯穿仿真系统建设的全生命周期
七. 仿真研究的基本步骤
-
步骤列表:
-
问题描述和需求分析:
系统构成, 边界环境, 实体划分, 层次类型, 详细程度, 人员分工, 资源投入
-
模型设计和数据准备:
建模方法, 结构特征描述, 软件结构, 接口定义, 数据获取, 数据清洗, 数据预处理
-
仿真开发与模型校验
环境搭建, 针对开发模型生成, 模型解算, 运行控制, 试验设计, 数据统计, 指标评估, 图形显示等的支持系统, 对于仿真系统进行测试, 确保对系统有效性的全名认定
-
仿真实验与结果分析
使用数学, 图形手段进行结果进行分析, 对于结果进行分析处理和深度开采
-
八. 仿真工具和场景思路
-
连续系统仿真:
示例: 自由落体运动仿真
-
离散事件系统仿真:
示例: 理发店服务系统仿真
策略: 事件调度, 活动扫描, 进程交互
模型描述: 离散事件系统描述规范 DEVS
-
现代建模方法发展:
-
实体行为建模:
有限状态机, 时间自动机, 事件图, 状态图, Petri图, Euler图
-
建模工具:
Matlab, StateMate
-
建模语言: UML
-
动态系统建模:
DEVS, SimScript, 常微分方程, 时间自动机, 网络自动机, Petri网, 波特图
-
变结构系统建模:
JAMES系统, 支持Agent建模的仿真环境
-
异构层次化建模: MOOSE系统
-
多学科多范式建模: MSDL, AToM
-
多分辨率多视角建模: 探索性分析, 模型聚合, 模型解聚
-
仿真软件: GPSS, GASP, SimUla, SimScript, SLAM, SIMAN, OpenSML, SRML, MDA
-
分布式仿真技术: SIMNET
-
-
仿真中使用的计算机技术:
- 面向对象编程
- 人工智能技术
- 模型知识表达
- 建模仿真支持
- 仿真结果分析和决策支持
- 知识库仿真系统
- 虚拟现实展现
- Web技术
- Agent技术
-
九. 仿真的概率论基础
- 常用概率分布:
- 0/1分布, 伯努利试验, 几何分布, 泊松分布, 均匀分布, 指数分布, 正态分布, 韦布尔(Weibull)分布, τ分布
- 分布假设检验:
- 点统计法
- 直方图法
- X^2分布
- X^2拟合优度检验
- t分布
- t检验
- F分布
- F检验
- 伪随机数生成:
- 平方取中法, 线性同余法, 加同余法, 二次方同余法
- 伪随机检验:
- 频率检验, 顺序检验, 科尔莫戈罗夫-斯米尔诺夫检验, 自相关检验, 距离检验, 间隙检验, 扑克检验
十. 建模方法
- 理论模型建模
- 实体流图建模, 活动周期图建模, Petri网方法, Euler网方法
- 仿真系统设计与实现
- 仿真策略:
- 事件调度, 活动扫描, 三段扫描, 进程交互
- 模型设计:
- 面向事件, 面向活动, 面向进程
- 仿真策略:
- 仿真语言示例: SIMSCRIPT II
- 仿真结果校验: 终态仿真结果验证, 稳态仿真结果验证, 灵敏度分析, 模型有效性校验