排队模拟应用详解
1. 平均服务器利用率
平均服务器利用率是一个典型的时间统计指标,它被定义为典型服务器处于忙碌状态的时间比例。为了得到这个平均值,需要跟踪一个变量,该变量累加服务器为客户服务所花费的总分钟数。在模拟结束时,将这个变量除以最终时钟时间,得到平均忙碌的服务器数量,然后再将这个比例除以服务器的总数,即可得到所需的服务器利用率。
2. 谨慎编程的必要性
大多数排队模拟的逻辑实际上相当直接,即随着时间的推移依次处理发生的事件。然而,细节决定成败,排队模拟很难做到完全正确。部分原因是其中涉及众多相互关联的细节,更重要的是,往往不清楚“答案”应该是什么,因此常常难以确定排队模拟是否正常工作。所以,强调谨慎编程是很有必要的。至少,变量和子程序应该有有意义的名称,变量名应能清晰表明其代表的含义。此外,排队模拟的注释可能应比书中其他程序更加详尽,这不仅有助于他人阅读程序,也有助于程序员自己理解逻辑。
3. 模块变量分类
为了便于解释,将模块级变量分为三类:
| 变量类别 | 含义 | 具体变量 |
| — | — | — |
| 系统参数 | 用户输入 | meanIATime(平均到达间隔时间)、meanServeTime(平均服务时间)、nServers(服务器数量)、maxAllowedInQ(队列中允许的最大客户数)、closeTime(不再接受未来到达的时钟时间) |
| 系统状态指标 | 系统在任何时间点的当前状态 | nInQueue(当前队列中的客户数)、nBusy(当前忙碌的服务器数)、clockTime(当前时钟时间,初始为 0)、eventScheduled(i)(事件是否
超级会员免费看
订阅专栏 解锁全文
873

被折叠的 条评论
为什么被折叠?



