跳到正文
交通运输专业大连交通大学 · 交通运输工程学院

交通运输系统仿真

Transportation System Simulation

课程编号
0030108805
学分
2
学时
32
周数
8 周
开课学期
第 V 学期
课程性质
专业必修(专业基础课)
← 教案列表DOCX下载依据课件整理生成

第3章 排队系统建模与仿真 教案

项目内容
课程名称与性质交通运输系统仿真(Transportation System Simulation);交通运输专业本科专业必修课(理论课)
课程编号·学分·学时0030108805 · 2 学分 · 32 学时(第 V 学期)
授课对象交通运输专业(2023 级,2025 秋)
授课教师李季涛(交通运输工程学院交通运输系)
使用教材李季涛编《交通运输系统仿真——使用AnyLogic》,中国铁道出版社,2025
对应课件课件03《排队系统建模与仿真》(共 46 页)
对应大纲模块与课程目标C3 排队系统建模与仿真;支撑 O2(电子表格排队仿真)、O4(AnyLogic 建模与简单实验设计);通过与排队论结果对照,兼顾 O1
本章学时8 学时(4 课次 × 2 学时,每课次 90 分钟),第 14–15 周

课程教学进度安排

课次周次教学内容(对应课件页码范围)学时
9第14周3.1 排队模型(自学检查,P2);3.2 随机数的生成(P3–9);3.3 随机变量的产生(P10–19,含随机变量的产生方法与均匀、指数、三角分布的反变换法)2
10第14周3.4 用电子表格进行排队系统仿真:变量设置、表格设计、仿真运行、仿真实验(P20–30)2
11第15周3.5 AnyLogic 排队系统仿真:软件概述(无对应课件页,教师补充)、阶段1 逻辑模型、阶段2 创建动画(P31–35)2
12第15周3.5 阶段3 统计数据收集、阶段4 蒙特卡洛仿真实验;灵敏度分析与均值比较(教师补充);本讲总结(P36–46)2

教学目标与重点难点

教学目标

  • 知识:说明伪随机数的含义与好的随机数发生器应满足的 5 项要求,写出线性同余法的递推公式并说明最大密度与最大循环周期;写出反变换法生成指数、均匀、三角分布随机变量的公式;说明单服务台排队系统电子表格仿真中各列的递推关系。
  • 能力:用 Excel 建立自动售票机单服务台排队仿真模型,输出平均排队等待时间、平均系统逗留时间、服务台利用率、必须排队概率,并设计重复实验给出均值与置信区间半长;用 AnyLogic 过程建模库搭建同一系统,完成动画、统计收集和蒙特卡洛实验。
  • 素养:能把"单次运行"与"重复实验的统计结论"区分开来,用置信区间而不是单个数字表述仿真结果;养成记录参数、如实报告实验次数的习惯。

教学重点

  • 线性同余法 Xi+1=(aXi+c) mod m, Ri=Xi/mX_{i+1}=(aX_i+c)\bmod m,\ R_i=X_i/m 及其周期。
  • 反变换法生成随机变量的原理与公式(X=F−1(R)X=F^{-1}(R),R∼U(0,1)R\sim U(0,1))。
  • 依据离散事件原理设计单服务台仿真表格(到达时间、开始服务时间、结束服务时间、排队等待、空闲的递推)。
  • 蒙特卡洛重复实验:重复 N 次、记录每次平均排队等待时间,计算均值与置信区间半长。
  • AnyLogic 过程建模库四个基本模块(Source、Queue、Delay、Sink)的参数设置与统计数据收集。

教学难点

  • 反变换法的原理:为什么把 U(0,1)U(0,1) 随机数代入分布函数的反函数就得到服从该分布的变量。突破策略:用 P(X≤x)=P(R≤F(x))=F(x)P(X\le x)=P(R\le F(x))=F(x) 的三行推导,结合课件 P13、P15 的 CDF 图(由 RR 作水平线、再向下作垂线得到 XX),再用 R=0.25,0.75R=0.25,0.75 在三角分布上手算,把"概率累积到哪里就取哪个值"画在 CDF 图上。
  • 重复实验设计及直方图绘制(单次运行与 N 次运行的区别)。突破策略:先让学生按 F9 反复重算,看到平均等待时间每次不同,再引入"运行实验"宏,把每次结果收集成直方图。
  • AnyLogic 中参数、变量、智能体的区别(课件 P35、P37、P40 分别用到 Parameter、Variable)。突破策略:以"旅客自己带的属性(arrivalTime、PassengerType)= 智能体参数;全局计数(servicedNumber)= 变量"做对照表,让学生判断其他例子归属。
  • 数据收集中谁在何时记录时间(P38 的 On exit / On enter 三处代码)。突破策略:画旅客经过 Source→Queue→Delay→Sink 的时间轴,在轴上标出"盖时间戳"和"读时间戳"的位置。
  • 均值比较:两组实验的置信区间是否重叠。突破策略:在课次12用"平均到达间隔 5 分钟与改动后"两组 Monte Carlo 结果对比,并回到课次7 的重复仿真与置信区间概念。

思政目标

  • S01:随机数可重复、实验可复核。从"随机数应是可重复的"(P6)和线性同余法"由固定递推公式产生、必然循环"(P8)出发,要求作业2注明参数与实验次数,不挑选"好看的一次",培养科研诚信。
  • S02:对旅客负责的工程判断。结合铁路车站自动售票机排队系统,说明候票时间关系到旅客体验与客流疏导,结论要用置信区间表述,不以一次运行下结论、不夸大仿真结果。
  • S03:科学使用工具并认清局限。伪随机数是确定性算法产生的,Excel 与 AnyLogic 的结果都依赖模型假设;用仿真辅助决策时,要交代假设、验证模型并说明适用范围,体现工程师的责任意识。

教学方式与媒体资源

主要教学方式

  • 案例驱动:全章围绕课件同一个铁路车站自动售票机(TVM)单服务台系统,Excel 与 AnyLogic 两种实现相互印证。
  • 课堂演算:先验算课件 P8 线性同余例子的前几项,再用一个小模数(m=16m=16)的线性同余发生器手算随机数,进而手算 6 位旅客的仿真表格,验证递推逻辑。
  • 教师演示 + 学生跟做:Excel 与 AnyLogic 部分教师逐步演示,学生同步操作并在关键节点自查。
  • 对照比较:Excel 结果与 AnyLogic 结果对照,单次运行与重复实验对照,仿真结果与排队论结果对照。

使用媒体资源

  • 课件03(P1–46);课件02 中自动售票机案例、M/M/1 公式、重复仿真与置信区间部分(用于回顾与对照)。
  • Excel:随机变量公式(P21–22)、定义名称(P23)、输入/输出区与指标公式(P24)、仿真表格与单元格公式(P25–26)、按钮与 VBA 宏(P27、P29–30)、实验结果表(P28)。
  • AnyLogic:Process Modeling Library、Space Markup、3D Objects、Analysis、Presentation 面板(P32–44)。
  • 教师预先完成的 Excel 工作簿与 AnyLogic 模型(TVM),作为演示与应急备份。
  • 课程网站发布课件、授课模型与作业提交入口(见大纲"课程网站")。

参考书与参考资料

  • [1] 李季涛编. 交通运输系统仿真——使用AnyLogic. 中国铁道出版社, 2025.(主教材)
  • [2] Jerry Banks 著, 王谦译. 离散事件系统仿真(原书第5版). 机械工业出版社, 2019.(随机数、随机变量产生、排队系统相关章节)
  • [3] Averill M. Law 著, 范文慧等译. 仿真建模与分析(原书第5版). 机械工业出版社, 2017.
  • [4] 刘亮编. 复杂系统仿真的AnyLogic实践(第2版). 清华大学出版社, 2023.
  • [5] Andrei Borshchev. The Big Book of Simulation Modeling. AnyLogic North America, 2013.

课前准备

教师准备

  • 准备课次9、10 的手算数据单(线性同余发生器序列、三个分布的反变换计算、6 位旅客计算表)及参考答案;课前复算演示数据,并预备 Excel 中 RAND、LN 函数的演示。
  • 准备课件 P8 的线性同余序列表(X0=19, a=22, c=4, m=63X_0=19,\ a=22,\ c=4,\ m=63)作为验算对照。
  • 备好 Excel 示例工作簿(含 Model、Experiment 两个工作表、"仿真运行"与"运行实验"两个按钮;宏代码中的引号须为英文半角引号)和 AnyLogic 的 TVM 模型逐阶段版本(阶段1至阶段4各存一份),防止现场操作卡住。
  • 确认教室电脑安装的 AnyLogic 版本及授权;提前在其上试跑一遍 P32–44 的全部步骤。

学生准备

  • 课次9 前:自学 3.1 排队模型,复习课件02 中 M/M/1 的服务强度、平均排队长、平均排队等待时间公式及 2.6 节置信区间。
  • 课次10 前:带电脑(Excel 2010 及以上,能启用宏),复习 Excel 的 AVERAGE、MAX、IF、COUNTIF、RAND、LN 函数。
  • 课次11 前:安装 AnyLogic(学习版或学校提供版本)。
  • 课次12 前:完成课次11 的逻辑模型与动画,带模型文件到课堂。

教学过程

第9课次(第14周)随机数与随机变量的产生

环节与时间教学内容(课件页)教师活动学生活动设计意图 / 学习证据
导入(5')回顾课件02 手工仿真输入数据;P1–2 本讲结构展示课件02 自动售票机输入表,说明"到达间隔来自均值5分钟的指数分布,服务时间来自三角分布"。提问:"这些数字是怎么'抽'出来的?电脑里没有骰子。"回答并口头猜测抽取方法。引出随机数需求;证据:学生能说出"需要先有 U(0,1)U(0,1) 随机数"。
3.1 自学检查 + 3.2.1 随机数概述(10')P2、P4–5随机抽 2 名学生用自己的话说明 M/M/1 的三个符号、服务强度含义,补一句"3.1 为课前自学内容"。讲 P4:随机数是 [0,1][0,1] 上等概率出现的数,密度 f(x)=1 (0≤x≤1)f(x)=1\ (0\le x\le1),E(R)=12E(R)=\tfrac12,V(R)=112V(R)=\tfrac1{12};讲 P5:随机数序列必须满足均匀性与独立性,并展示 1000 个均匀随机数的直方图,提问"直方图应该是什么形状?偏离多少算问题?"回答;观察直方图是否近似平坦,写下一条判断依据。复核自学效果并衔接;证据:口头回答、判断依据一句话。
3.2.2–3.2.3 伪随机数与生成方法(20')P6(伪随机数及 5 点要求);P7–9(线性同余法、计算举例、最大密度与最大循环周期)讲清"确定性递推算法产生的 [0,1][0,1] 均匀序列叫伪随机数",逐条解释 5 点要求(速度、可移植、周期足够长、可重复、均匀独立)。P7:线性同余法(Lehmer,1951)Xi+1=(aXi+c) mod mX_{i+1}=(aX_i+c)\bmod m,Ri=Xi/mR_i=X_i/m;X0X_0 为种子、aa 乘子、cc 增量、mm 模数,c≠0c\ne0 称混合同余法,c=0c=0 称乘同余法。P8:以 X0=19, a=22, c=4, m=63X_0=19,\ a=22,\ c=4,\ m=63 为例,X1=44, X2=27, X3=31X_1=44,\ X_2=27,\ X_3=31,对应 R1=0.6984, R2=0.4286, R3=0.4921R_1=0.6984,\ R_2=0.4286,\ R_3=0.4921;表中 i=63i=63 时 X63=19X_{63}=19 回到种子,周期为 63。P9:最大密度(RiR_i 在 [0,1][0,1] 上没有大间隔,mm 取大整数时影响很小)与最大循环周期(至多 mm),实际软件常取 m=231−1m=2^{31}-1 或 2482^{48}。再用小例子演示:Xi=(5Xi−1+3) mod 16, Ri=Xi/16X_i=(5X_{i-1}+3)\bmod 16,\ R_i=X_i/16,X0=7X_0=7(练习数据)。课堂演算:先验算 P8 的 X1∼X3X_1\sim X_3;再手算小例子 X1∼X11X_1\sim X_{11},记在演算纸上,并继续算到序列回到 7。理解"周期"与"可重复";参考答案 X1∼X11X_1\sim X_{11}=6, 1, 8, 11, 10, 5, 12, 15, 14, 9, 0,其后 3, 2, 13, 4, 7,周期 16。证据:演算纸。
3.3.1–3.3.2 随机变量与生成方法(20')P11–13讲随机变量定义、选择算法的三项要求(准确性、效率、复杂性)及四类方法(反变换法、组合法、卷积法、舍选法,P11)。P12:反变换法是最常用且最直观的方法,要求 F(x)F(x) 连续且严格递增、反函数易求;算法为 ① 产生 R∼U(0,1)R\sim U(0,1),② 返回 X=F−1(R)X=F^{-1}(R)。重点推导:P(X≤x)=P(R≤F(x))=F(x)P(X\le x)=P(R\le F(x))=F(x);结合 P13 的图(ΔF/Δx→dF/dx\Delta F/\Delta x\to \mathrm dF/\mathrm dx)说明几何含义与"符合原密度函数"的正确性。跟推导,在图上标出 RR、FF、XX 对应关系,回答"若 FF 是离散的怎么办"(取使 F(x)≥RF(x)\ge R 的最小 xx)。突破难点;证据:学生能口头复述"概率累积值反查取值"。
3.3.3 常用随机变量的生成(20')P14–19(指数、均匀、三角)按课件顺序讲三个公式。指数分布(P14–16,参数 λ\lambda,均值 1/λ1/\lambda):由 F(x)=1−e−λx=RF(x)=1-e^{-\lambda x}=R 解得 X=−1λln⁡(1−R)X=-\tfrac1\lambda\ln(1-R),因 1−R1-R 与 RR 同分布,课件写作 Xi=−1λln⁡RiX_i=-\tfrac1\lambda\ln R_i;P15 用图示解释,P16 比较 200 个均匀随机数与由其变换得到的 200 个指数随机数的直方图(λ=1\lambda=1)。均匀分布(P17,区间 [a,b][a,b]):X=a+(b−a)RX=a+(b-a)R。三角分布(P18–19,端点 aa、cc,众数 bb):X=a+R(b−a)(c−a)X=a+\sqrt{R(b-a)(c-a)}(0<R≤b−ac−a0<R\le\frac{b-a}{c-a}),X=c−(1−R)(c−b)(c−a)X=c-\sqrt{(1-R)(c-b)(c-a)}(b−ac−a<R<1\frac{b-a}{c-a}<R<1)。指出 R=0R=0 时 ln⁡R\ln R 无定义,工程上常用 1−R1-R 的形式。课堂演算:用上一环节小例子的 R1∼R6R_1\sim R_6(0.375, 0.0625, 0.5, 0.6875, 0.625, 0.3125)算均值5的指数变量;算三角分布 (a,b,c)=(0.5,3,7)(a,b,c)=(0.5,3,7)(最小0.5、众数3、最大7)在 R=0.25R=0.25 与 0.750.75 时的取值。掌握公式使用;参考答案:指数 2.35, 0.32, 3.47, 5.82, 4.90, 1.87;三角 2.52、4.45(分界 b−ac−a≈0.385\frac{b-a}{c-a}\approx0.385)。证据:演算纸、同桌互查。
练习与检验(10')P5、P16 对照;P21–22 预告在 Excel 里用 =RAND() 与 =-5*LN(1-RAND()) 各生成 1000 个数,做直方图,对照 P5 的均匀直方图与 P16 的指数直方图形状;无电脑时由教师演示。观察并判断均匀、指数直方图是否符合预期。实证随机数发生器;证据:直方图判断一句话。
小结与布置(5')P45 前两条主要内容总结"U(0,1)U(0,1)→反变换→各分布"链条;发布作业2 说明(服务时间为三角分布 (0.5,3,7)(0.5,3,7);课件的 Excel 示例服务时间为均匀分布 U(1,6)U(1,6),作业需自行改为三角分布)。记录作业要求,提出疑问。衔接作业2;证据:学生记录的作业要点。

第10课次(第14周)用电子表格进行排队系统仿真

环节与时间教学内容(课件页)教师活动学生活动设计意图 / 学习证据
导入(7')P20;回顾课件02 手工仿真表把课件02 的手工仿真"事件表"与 P25 的"每位旅客一行"的表格对比,提问:"单服务台先到先服务,只靠每位旅客的哪几个数就能递推全部结果?"讨论并回答:到达时刻、上一位的结束时刻。建立"逐旅客递推"思路;证据:口头回答。
3.4.1–3.4.2 随机变量生成与变量设置(10')P21–23说明输入分布:到达间隔服从均值 5 分钟的指数分布,购票时间服从 1~6 分钟的均匀分布;在单元格里用 RAND 与反变换法生成:服务时间 =1+5*RAND()(可用 ROUND 控制精度),到达间隔 =-5*LN(RAND())。演示"公式→定义名称",讲解 P23 变量表(如 MeanInterarrivalTime 在 E4、InterarrivalTime 为 J5:J104)为何用名称而不用单元格地址。在自己的工作簿定义 3 个名称:MeanInterarrivalTime、MinServiceTime、MaxServiceTime。提高公式可读性;证据:学生工作簿中的名称管理器截图。
3.4.3 仿真表格设计:手算逻辑(20')P25 表格;P26 公式展示 P25 的前 10 位旅客,指出第 6 位旅客到达 29.98、开始 35.56、等待 5.58(其前一位旅客 35.56 才结束服务)。逐列讲递推(对应 P26 的单元格公式):到达 Ki=Ki−1+JiK_i=K_{i-1}+J_i;开始 Li=max⁡(Ni−1,Ki)L_i=\max(N_{i-1},K_i);结束 Ni=Li+MiN_i=L_i+M_i;等待 Oi=Li−KiO_i=L_i-K_i;逗留 Pi=Ni−KiP_i=N_i-K_i;空闲 Qi=max⁡(Ki−Ni−1,0)Q_i=\max(K_i-N_{i-1},0)。第 1 位旅客在仿真开始时刻 0 到达并立即开始服务。课堂演算:用课次9 小例子的随机数流(到达间隔用 R1∼R5R_1\sim R_5、服务时间用 R6∼R11R_6\sim R_{11} 分别按"均值5指数""均匀(1,6)"变换,练习数据),手算 6 位旅客的表格。理解 L 列用 MAX 的含义。参考答案:到达 0, 2.35, 2.67, 6.14, 11.95, 16.86;开始 0, 2.56, 7.31, 13.00, 18.38, 22.19;等待 0, 0.21, 4.64, 6.86, 6.42, 5.33(均值约 3.91,6 人中 5 人需排队)。证据:计算表。
3.4.3 公式与性能指标(12')P24、P26讲 P24 的输入区(平均到达间隔 5 分钟,最小/最大服务时间 1/6 分钟,旅客总数 100,仿真开始时间 0,仿真结束时间 EndTime)/输出区布局与 E15–E18 指标公式:平均排队等待 =AVERAGE(TimeInLine)、平均逗留 =AVERAGE(TimeInSystem)、服务台繁忙的概率 =1-SUM(IdleTimeOfServer)/EndTime、必须排队概率 =COUNTIF(WaitedInQueue,">0")/NumberOfPassengers。P26 的首行公式:J6 =-MeanInterarrivalTime*LN(RAND())、M5 =MinServiceTime+(MaxServiceTime-MinServiceTime)*RAND()、Q6 =IF((K6-N5)>0,K6-N5,0)。在 Excel 中输入第 1、2 行公式并下拉,核对手算结果。手算与公式相互验证;证据:Excel 结果与手算一致的截图。
3.4.4–3.4.5 仿真运行与蒙特卡洛实验(21')P27–30演示"仿真运行"按钮宏(P27:先令 Model 表 EnableCalculation = True 触发重算,再置为 False):反复运行得到不同结果,展示 P24 示例单次结果(平均排队等待 6.64 分钟,平均逗留 9.95 分钟,必须排队概率 0.76)。再引出实验:"运行实验"宏循环 N 次,把每次的 Model!E15 写入 Experiment 表(P29–30,实验次数在 D3,结果区 B11:C110),并用 P28 的公式统计均值(AVERAGE)、中值(MEDIAN)、置信区间半长(CONFIDENCE.T(0.05, 标准差, 实验次数))、最小值、最大值、标准差(示例:均值 4.20、中值 3.80、半长 0.43、最小 1.38、最大 11.74、标准差 1.94)。强调 P28 的结果区间,说明"单次 6.64 是随机波动的一个样本"。学生参照 P27、P29–30 编写宏(代码中的引号用英文半角),设置实验次数 50,运行并看到每次不同的等待时间;在实验表上画平均等待时间直方图。理解重复实验必要性;证据:50 次实验表与直方图。
讨论:与理论模型对照(15')P28;课件02 M/M/1、重复仿真提问:"只有 100 位旅客、从'空闲且无人'开始,算出的平均等待能否代表系统长期水平?"。本例到达率 λ=0.2\lambda=0.2、服务时间均匀(1,6),E[S]=3.5E[S]=3.5、E[S2]=14.33E[S^2]=14.33、ρ=0.7\rho=0.7,用 M/G/1 的 P-K 公式 Wq=λE[S2]2(1−ρ)W_q=\frac{\lambda E[S^2]}{2(1-\rho)} 可算得约 4.78 分钟;与 P28 的实验结果(均值 4.20,半长 0.43,区间约 3.77~4.63)对照,讨论初始状态偏差与有限样本。小组讨论 3 分钟,推选代表发言;写下"不一致可能的两个原因"。对应 O1 的"与理论模型比较";证据:小组发言要点。
小结与布置(5')P45 第3条总结表格仿真四步:设计表格、设公式、运行、重复实验;提示作业2 的直方图(单次旅客等待时间、平均等待时间累积分布图)可用 Excel 的频数统计(如 FREQUENCY、COUNTIFS)或直方图图表工具完成。记录,明确作业2 的截止时间和提交方式。学生课后可独立开展;证据:作业2 进展询问。

第11课次(第15周)AnyLogic 排队系统逻辑模型与动画

环节与时间教学内容(课件页)教师活动学生活动设计意图 / 学习证据
导入(5')P31提问:"Excel 版要手写每一列公式,若改成两台自动售票机或增加优先队列,要改多少?" 引出基于过程建模库的搭建方式。讨论 Excel 实现的不足。说明工具必要性;证据:学生列出 2 条不足。
软件概述(12',教师补充)无课件页演示 AnyLogic 界面:Projects、Palette、Properties 面板、Main 编辑窗口,运行与停止;区分 Agent(带属性的实体)、Parameter(智能体的属性)、Variable(全局量)。对照界面找位置;记录三个概念的区别。为难点"参数、变量、智能体"打基础;证据:学生判断练习(见难点)。
阶段1 逻辑模型(23')P32演示新建项目 TVM、时间单位设为分钟;拖入 Source、Queue、Delay、Sink 四个模块并连接;设置:Source 的 Arrivals defined by 选 Interarrival time,Interarrival time 为 exponential(0.2) 分钟;Queue 容量 20;Delay 模块(命名 TVM)延时 uniform(1,6) 分钟。强调 AnyLogic 的 exponential 参数是速率 0.2(均值5分钟),与 Excel 中均值5分钟一致。跟做,完成逻辑模型;运行一次并观察队列中的数字。完成可运行的逻辑模型;证据:学生机上能运行的 TVM 模型。
阶段2 动画(一):空间标记(15')P33讲 Point Node 与 Path 的作用:Point Node 的 Color 设为 TVM.size() > 0 ? red : green,把 Point Node 关联到 TVM 的 Agent location,把 Path 关联到 queue。绘制 Path、设置颜色表达式,运行后观察绿/红切换。把逻辑模型"看得见";证据:运行时售票机变红截图。
阶段2 动画(二):智能体与 3D(20')P34–35新建 Agent 类型 Passenger(选 Person),在 Source 的 New agent 里关联;添加 ATM 三维图形和 3D Window;在 Passenger 内添加 Parameter PassengerType(默认值 uniform_discr(1,6)),为 6 个人物 3D 对象设置 Visible 条件。完成 Passenger 动画;说明 PassengerType 是智能体参数还是全局变量,并说出理由。理解参数与智能体的关系;证据:学生口头判断、模型运行效果。
运行检验与讨论(10')P32–35运行模型,提问:"Excel 中 L 列 MAX(N5,K6) 对应 AnyLogic 里哪个模块行为?Queue 容量20 满了会怎样?"分组讨论后回答。建立两种实现之间的对应;证据:对应关系表(Excel 列 ↔ AnyLogic 模块)。
小结与布置(5')P32–35小结阶段1–2;布置课程设计(使用 AnyLogic 建模,进度表要求):确认选题并准备下次的统计数据收集。保存模型,记录课后任务。衔接课程设计与课次12;证据:已保存的模型文件。

第12课次(第15周)统计数据收集与蒙特卡洛仿真实验

环节与时间教学内容(课件页)教师活动学生活动设计意图 / 学习证据
导入(5')P36检查学生是否带来上次模型;提问:"要得到 Excel 里的 E15–E18 指标,AnyLogic 里应该去哪里读?"打开模型,回答。明确本次目标;证据:学生模型文件。
阶段3(一)内置统计与条形图(10')P36讲 TVM.statsUtilization.mean() 与 queue.statsSize.mean();演示 Bar Chart(Title、Color、Value)设置。添加两个条形图,运行并读数。获得利用率与平均队长;证据:运行截图。
阶段3(二)收集等待与逗留时间(20')P37–39画时间轴说明三处代码:Source 的 On exit 写 agent.arrivalTime = time();,Queue 的 On exit 写 waitTimeDistr.add(time() - agent.arrivalTime);,Sink 的 On enter 写 timeInSystemDistr.add(time() - agent.arrivalTime);。演示 Passenger 添加 arrivalTime(double),添加两个 Histogram Data(20 个区间,初始区间 0.01)及 Histogram 图。按步骤完成并运行;在时间轴上标出各行代码位置。突破数据收集难点;证据:运行后出现两幅直方图、时间轴图。
终止条件与运行(10')P40–41添加变量 servicedNumber(初值0),在 TVM 的 On exit 里加1,达到100调用 getEngine().finish();展示运行结果(P41 示例:自动售票机利用率 0.607,平均服务时间 3.634,平均排队等待时间 2.702,平均系统逗留时间 6.337 分钟;单次运行结果随随机数而变)。实现停止条件,运行并读取平均等待时间。与 Excel 100位旅客设置一致;证据:模型在第100位旅客处停止。
阶段4 蒙特卡洛实验(25')P42–44演示 New Experiment→Monte Carlo;迭代次数100;新建直方图,Expression root.waitTimeDistr.mean();Model time 的 stop 设为 Never(由模型自身 finish 终止);添加 Text 显示 histogram0_data.mean() 与 meanConfidence();添加 Statistics 数据 staQueueMean(离散型),在 After simulation run 写 staQueueMean.add(root.queue.statsSize.mean()); 并显示均值与半长(P44 示例:100 次迭代,平均排队等待时间均值 4.667、半长 0.464、标准差 2.339;平均排队长度均值 0.982、半长 0.118)。创建实验并运行;记录平均排队等待时间的均值与置信区间半长、平均队长的均值与半长。完成实验设计;证据:实验窗口截图与记录的四个数。
均值比较与灵敏度分析(15',教师补充)无对应课件页;回顾 P28、P43–44把平均到达间隔改到 4 分钟(即 exponential(0.25)),再跑一次 Monte Carlo,比较两组"均值 ± 半长"是否重叠;提示若要系统地变动参数,可用参数变化类实验(教师视时间演示)。让学生对比 Excel 与 AnyLogic 结果(课件示例:Excel 为 4.20 ± 0.43,AnyLogic 为 4.667 ± 0.464,两个区间有重叠;均与 M/G/1 理论值约 4.78 分钟及理论平均队长 Lq=λWq≈0.96L_q=\lambda W_q\approx0.96 相近)。改参数、重跑、比较两组区间,在课堂记录表上写出结论。对应进度表"均值比较""灵敏度分析";证据:对比结论一句话。
本讲总结(5')P45–46对照 P45 主要内容与基本要求做自评清单:Excel 单服务台仿真与实验;AnyLogic 逻辑、动画、统计、蒙特卡洛。勾选自评并提出疑问。回顾与自查;证据:自评清单。

课堂练习与课后作业

  • 课堂练习:课次9 线性同余手算与三个分布的反变换计算;课次10 6 位旅客表格手算与公式校验;课次11–12 AnyLogic 搭建、统计与实验的跟做步骤。
  • 课程作业2(电子表格仿真,个人,10 分,支撑 O2):依据课次9–10 内容用 Excel 实现单服务台排队仿真和蒙特卡洛实验。要求:单次运行输出平均排队等待时间、平均系统逗留时间、服务台利用率、排队等待概率,并画旅客排队等待时间直方图;实验次数大于 50,输出平均排队等待时间的均值与置信区间半长,画平均等待时间直方图和累积分布图;输入:到达间隔为指数分布(均值 2–6 分钟自定),服务时间为三角分布(0.5, 3, 7),终止条件为完成购票旅客不少于 50 人。提交文件名"学号+姓名-第2次作业"。
  • 课程设计(团队,与课次11–12 对应):使用 AnyLogic 为自选轨道交通运输组织问题建立仿真模型,课后继续完成统计数据收集与实验设计,为课程作业4 打基础。

教学评价

形成性评价证据对应课程目标评价要点
课次9 手算演算纸、反变换计算O1公式使用正确、能解释周期与反变换含义
课次10 6 位旅客手算表、Excel 公式核对截图O1、O2递推正确,Excel 结果与手算一致
课次10 蒙特卡洛实验表与直方图O2实验次数、均值与置信区间半长、图形完整
课次10 与理论模型对照发言O1能解释仿真与理论结果差异的原因
课次11 逻辑模型与动画运行截图O4参数设置正确,能运行
课次12 统计收集代码与 Monte Carlo 实验记录O4数据收集位置正确,会读均值与半长,会比较两组结果
课程作业2(总结性)O2按作业评分标准
课堂表现课堂表现(5分)参与度、纪律

O3(输入数据分析)与 O5(国际发展趋势)本章不直接评价;本章仅用"输入分布由哪些变量生成"预告 O3。

板书设计

第3章 排队系统建模与仿真
  3.2 随机数    U(0,1)  伪随机数:确定性递推 + 5点要求
                X_{i+1} = (a X_i + c) mod m ,  R_i = X_i / m   (周期 ≤ m)
  3.3 随机变量  反变换法:X = F^{-1}(R)
                指数 -(1/λ) ln(1-R) | 均匀 a+(b-a)R | 三角 分段(分界 (b-a)/(c-a))
  3.4 Excel     行=旅客:K=K'+J ; L=MAX(N',K) ; N=L+M ; O=L-K ; P=N-K
                单次运行 → 重复 N 次 → 均值 ± 半长
  3.5 AnyLogic  Source → Queue → Delay(TVM) → Sink
                动画:Point Node / Path / Agent
                统计:arrivalTime → Histogram Data → Monte Carlo

教学反思(课后填写)

  1. 学生是否能说清反变换法的含义,而不只是记住公式?哪些学生在手算 U→XU\to X 时出错,错在哪一步?
  2. 学生从手算表格到 Excel 公式、再到 AnyLogic 模块的对应关系是否建立起来?课堂上哪一个环节用时超出计划?
  3. 学生是否能用"均值 ± 半长"而不是单次结果描述仿真结论?课后作业2 提交时暴露了哪些共性问题?