210 likes | 329 Views
5、仿真模型的确认. 验证( Verification): 检验模型是否正确实现 (仿真程序的正确性) 确认( Validation): 检验模型是否准确描述 了现实系统. 5.1 仿真模型的验证. 目的:检查仿真程序中逻辑的正确性,排除存在的问题。. 1 用子程序编写和调试仿真程序. 先调试主程序和关键子程序,再加入其它子程序,由简到繁,逐步深入。. 2 主要参数的输出检查. 在仿真运行中检查输出的合理性,分析主要参数的响应情况。 如设备的利用情况、排队情况、实体数量的变化情况等。. 3 仿真程序运行时的跟踪检查.
E N D
5、仿真模型的确认 • 验证(Verification):检验模型是否正确实现 (仿真程序的正确性) • 确认(Validation): 检验模型是否准确描述 了现实系统
5.1仿真模型的验证 目的:检查仿真程序中逻辑的正确性,排除存在的问题。
1 用子程序编写和调试仿真程序 先调试主程序和关键子程序,再加入其它子程序,由简到繁,逐步深入。
2 主要参数的输出检查 在仿真运行中检查输出的合理性,分析主要参数的响应情况。 如设备的利用情况、排队情况、实体数量的变化情况等。
3 仿真程序运行时的跟踪检查 检查系统状态和参数的动态变化过程,以判断是否存在逻辑错误(如系统中有顾客而服务台却空闲等)。 大多数仿真语言均提供了跟踪功能。
5.2 仿真模型的确认 - “三步法” 对仿真模型和实际系统反复比较,并利用二者的比较差异来改进模型,使之不断逼近实际系统。
Step 1 从直观上考察模型的有效性 使模型具有直观合理性(需要用户的参与)。 进行灵敏度分析,改变输入后,检查输出变化的趋势是否合理。
Step 2 检验模型的假设 • 结构假设 • 对实际系统的简化和抽象。 • 数据假设 • 输入数据的数值或概率分布。
Step 3 模型输出数据与实际数据的比较 充分利用现有系统的历史数据,一般用一组历史数据进行校准,而以另一组数据用作确认。 若现有系统与所构模系统并不相同,但大部分子系统相同,则可现对各子系统建立模型,逐一确认后再组合起来。
1 用拟合输入数据的理论分布进行 模型确认 实际系统和仿真模型要在类似的输入条件下才能比较。 在确认仿真模型时,可以固定一组决策变量(模型中的可控参数,如排队系统中的服务台数、队列数、排队规则等),而对实际系统和仿真模型分别按客观过程和拟合的理论分布进行实际运行和仿真运行,并选定某一主要的输出响应作为确认准则。
设所得到的实际系统的性能为0,而对仿真模型则作R次独立重复仿真运行,得到随机样本为:设所得到的实际系统的性能为0,而对仿真模型则作R次独立重复仿真运行,得到随机样本为:
建立假设 H0:
由仿真运行方式知,当n充分大时,Yi近似服从正态分布,而R次重复运行时,每次使用不同的随机数流,则可认为Yi是相互独立的。故可用t统计量进行假设检验。由仿真运行方式知,当n充分大时,Yi近似服从正态分布,而R次重复运行时,每次使用不同的随机数流,则可认为Yi是相互独立的。故可用t统计量进行假设检验。
统计量的选择: ~ 其中
若 则拒绝H0
2 用历史数据进行仿真模型确认 将实际系统的输入数据存入模型相应的数组或文件中,仿真运行时调入相应的数据(如时间间隔、服务时间等)。
假设对于实际系统共收集k组输入数据,并利用它们作模型的同步仿真运行。针对某性能参数,设Z1, Z2, …, Zk为实际系统相应于k组输入的响应的样本均值, Y1, Y2, …, Yk为相应仿真模型输出响应的样本均值。记
因为所有输入数据均针对同一系统,故可认为dj同分布;若k组输入数据在时间上无重叠。则可认为dj相互独立;而Zj与Yj均为一组数据的样本均值,当数据足够多时,可认为Zj与Yj近似服从正态分布。因为所有输入数据均针对同一系统,故可认为dj同分布;若k组输入数据在时间上无重叠。则可认为dj相互独立;而Zj与Yj均为一组数据的样本均值,当数据足够多时,可认为Zj与Yj近似服从正态分布。 故dj可近似看作独立且服从同一正态分布的随机样本,其均值为d。
故可建立假设 H0: 并用t统计量加以检验 ~