交通仿真课件第三章离散仿真.ppt
67页第三章第三章 离散系统仿真离散系统仿真概述概述l离离散散系系统统的的状状态态只只是是在在离离散散时时间间点点上上发发生生变变化化,,而且这些离散时间点一般是而且这些离散时间点一般是随机随机的l离离散散系系统统的的数数学学模模型型通通常常用用流流程程图图或或网网络络图图来来描述l离离散散仿仿真真的的目目的的是是实实体体的的活活动动以以找找出出(分分析析)系系统的统的(潜在潜在)行为离散仿真离散仿真l事件事件(event)时间因变量随时间因变量随(事件事件)时间离散变时间离散变化因变量因变量时间时间基本概念基本概念l实体实体 构成系统的各种构成系统的各种成分成分称为实体,系统的研究对象称为实体,系统的研究对象 临时实体、永久实体临时实体、永久实体l属性属性 反映实体的某些反映实体的某些性质性质l状态状态 在某一确定时间点,系统的状态是系统中所有实体属在某一确定时间点,系统的状态是系统中所有实体属性的性的集合集合基本概念基本概念l事件事件 引起系统状态发生引起系统状态发生变化变化的行为,它是在某一时间点上的的行为,它是在某一时间点上的瞬瞬间行为间行为。
l活动活动 实体在某一状态的实体在某一状态的持续过程持续过程l进程进程 进程由和实体相关的进程由和实体相关的事件事件及若干及若干活动活动组成,一个进程描述组成,一个进程描述了它所包括的事件及活动间的相互了它所包括的事件及活动间的相互逻辑逻辑关系和关系和时序时序关系车辆到达事件车辆到达事件服务开始事件服务开始事件服务结束事件服务结束事件服务活动服务活动进程进程排队活动排队活动事件、活动、进程三者之间的关系事件、活动、进程三者之间的关系基本概念基本概念l仿真时钟仿真时钟 仿仿真真时时钟钟用用于于表表示示仿仿真真时时间间的的变变化化,,仿仿真真时时钟钟推推进进的的时时间间隔称为时间步长间间隔称为时间步长 时间步长法、事件步长法时间步长法、事件步长法l统计计数器统计计数器 离离散散系系统统的的状状态态随随事事件件的的不不断断发发生生呈呈现现动动态态变变化化过过程程,,这种动态变化过程在统计意义下才有参考价值这种动态变化过程在统计意义下才有参考价值 统计计数器用于记录仿真规程中系统性能的统计信息统计计数器用于记录仿真规程中系统性能的统计信息离散仿真模型建立步骤离散仿真模型建立步骤l定义系统的参变量集合,构造定义系统的参变量集合,构造系统映象系统映象;;l定义事件类型及其发生时点;定义事件类型及其发生时点;l定义每一定义每一事件事件时间发生状态变化的点;时间发生状态变化的点;l描述系统中实体的描述系统中实体的活动活动;;l构造状态转移函数或算法;构造状态转移函数或算法;l通过系统流图描述整个通过系统流图描述整个过程过程。
构造初始映象构造初始映象l找一个尽可能简单的系统状态作为初始状态;找一个尽可能简单的系统状态作为初始状态;l从一个远离平衡状态但容易构造的状态开始进从一个远离平衡状态但容易构造的状态开始进行模拟,当运行一段时间之后,系统的状态会行模拟,当运行一段时间之后,系统的状态会接近或处于稳定状态(平衡状态)接近或处于稳定状态(平衡状态)离散仿真中的关键问题离散仿真中的关键问题l事件取舍事件取舍:: 确定改变系统状态的事件集,并将它们用逻辑关系联系起来确定改变系统状态的事件集,并将它们用逻辑关系联系起来 系统仿真就是靠系统仿真就是靠按顺序执行按顺序执行联系这些事件的逻辑来实现的联系这些事件的逻辑来实现的 l活动扫描活动扫描:: 要要描描述述系系统统中中实实体体的的活活动动,,设设定定引引起起活活动动开开始始及及结结束束的的条条件件启启动动或或结结束束活活动动的的事事件件不不由由建建模模者者设设定定,,而而随随仿仿真真推推进进而而自自动动进进行行为保证活动得到记录,每一次推进均需要扫描活动中的实体集为保证活动得到记录,每一次推进均需要扫描活动中的实体集 由于需要在每一次推进中扫描每一活动,这种方法的效率不太高。
由于需要在每一次推进中扫描每一活动,这种方法的效率不太高l过程定位过程定位:: 提供整个仿真过程中实体流的一种用仿真语言描述的方法提供整个仿真过程中实体流的一种用仿真语言描述的方法系统仿真的推进系统仿真的推进l时间步长法时间步长法 以固定的时间间隔进行驱动;以固定的时间间隔进行驱动;l事件步长法事件步长法 按下一类最早发生事件的发生时间推进按下一类最早发生事件的发生时间推进△△t时间步长法时间步长法l在进行系统仿真的同时,把整个仿真过程分为许多在进行系统仿真的同时,把整个仿真过程分为许多相相等等的的时间间隔时间间隔,程序按此步长前进的时钟就是仿真时,程序按此步长前进的时钟就是仿真时钟l在每个时间间隔做如下处理:在每个时间间隔做如下处理:l该步内若无事件发生,则仿真时钟再推进一个单该步内若无事件发生,则仿真时钟再推进一个单位时间;位时间;u若在该步内有若干个事件发生,则认为这些事件均发生若在该步内有若干个事件发生,则认为这些事件均发生在这一步的结束时刻,同时必须规定当出现这种情况时在这一步的结束时刻,同时必须规定当出现这种情况时各类事件处理的优先顺序各类事件处理的优先顺序。
扫描与处理方法扫描与处理方法l对每一类事件或每一个主导实体设置一个模拟时钟,对每一类事件或每一个主导实体设置一个模拟时钟,以此记录和控制实体活动的延续时间以此记录和控制实体活动的延续时间l对系统实体进行扫描;对系统实体进行扫描;l对系统事件进行扫描;对系统事件进行扫描;l对事件和实体结合起来进行扫描对事件和实体结合起来进行扫描l改变状态,预测下一事件改变状态,预测下一事件时间步长时间步长法流程图法流程图事件步长法事件步长法l仿仿真真时时钟钟不不断断地地从从一一个个事事件件发发生生时时间间推推进进到到下下一一个个最早发生事件的发生时间最早发生事件的发生时间l以以事事件件发发生生的的时时间间点点相相互互间间隔隔作作为为步步长长,,按按照照时时间间的的进进展展,,一一步步一一步步地地对对系系统统的的行行为为进进行行仿仿真真,,直直到到预定的仿真时间为止预定的仿真时间为止l事事件件表表按按照照事事件件发发生生时时间间先先后后顺顺序序安安排排事事件件,,将将仿仿真过程看作一个事件点序列真过程看作一个事件点序列l事事件件控控制制部部件件始始终终从从事事件件表表中中选选择择最最早早发发生生时时间间的的事件记录,然后将仿真时钟该事件发生的时刻。
事件记录,然后将仿真时钟该事件发生的时刻时钟推进举例时钟推进举例l模模拟拟运运行行150个个时时间间单单位位,,顾顾客客到到达达事事件件、、顾顾客客服服务务完完毕毕离离去去事事件件,,Ti到到达达时时间间间间隔隔,,Si第第i个个顾顾客客服服务务时时间间,,Di第第i个个顾顾客客等等待待时时间间,,Ci= Ti+Si+Di第第i个个顾顾客客离离开开系系统统的的时时间间, qi第第i个个顾顾客客排排队队的的对对长长,,bi模模拟拟时时钟钟推推进进到到第第i次的时间,次的时间,Zi第第i个事件发生时服务员的状态个事件发生时服务员的状态 Ti=15,32,24,40,22,…;; Si=43,36,34,28,…l 初始状态:初始状态: q0=0, Z0=0l求:求: bi 、、Ci、、离散系统仿真程序的结构离散系统仿真程序的结构l状态变量状态变量;;l时钟变量时钟变量;;l事件表事件表(按时间顺序记录仿真过程中将要发生的事件)(按时间顺序记录仿真过程中将要发生的事件)l统计计数器统计计数器l初始化子程序初始化子程序l时钟推进子程序时钟推进子程序 (由事件表确定下一事件,然后将将仿真时钟推进到该事件(由事件表确定下一事件,然后将将仿真时钟推进到该事件发生的时间)发生的时间)l调度子程序调度子程序(将仿真过程中产生的未来事件插入事件表)(将仿真过程中产生的未来事件插入事件表)离散系统仿真程序的结构离散系统仿真程序的结构l事件子程序事件子程序 每一类事件对应一个事件子程序,相应的事件发生时就每一类事件对应一个事件子程序,相应的事件发生时就转入该事件子程序进行处理,更新系统状态,产生新的转入该事件子程序进行处理,更新系统状态,产生新的事件。
事件l统计报告子程序统计报告子程序l随机数发生器随机数发生器l主程序主程序 调用时钟推进子程序,控制转移到相应的事件子程序,调用时钟推进子程序,控制转移到相应的事件子程序,完成仿真程序的总体控制完成仿真程序的总体控制离散系统仿真离散系统仿真程序流程图程序流程图离散系统仿真策略离散系统仿真策略l建立描述系统行为的仿真模型建立描述系统行为的仿真模型 由于系统采用伪随机数,可以得到确定的状态转移函由于系统采用伪随机数,可以得到确定的状态转移函数,模型采用流程图或网络图的形式数,模型采用流程图或网络图的形式l仿真策略仿真策略 仿真策略决定仿真模型的结构仿真策略决定仿真模型的结构模型描述中采用的主要术语模型描述中采用的主要术语l成分成分 相当于系统中的实体,用于构造模型中的各个部分相当于系统中的实体,用于构造模型中的各个部分u主动成分主动成分 (可以主动产生活动的成分)(可以主动产生活动的成分) u被动成分被动成分 (本身不激发活动,只有在主动成分作用下才能产(本身不激发活动,只有在主动成分作用下才能产生状态变化)生状态变化)l描述变量描述变量 成分状态、属性的描述。
成分状态、属性的描述l成分间的相互关系成分间的相互关系 描述成分之间相互影响的规律描述成分之间相互影响的规律模型描述中采用的符号模型描述中采用的符号lC={a1,a2,…,an}为成分集合;为成分集合; lCA={a1,a2,…,am}为主动成分子集合;为主动成分子集合;lCP={a1,a2,…,ah}为被动成分子集合;为被动成分子集合;lSa为成分为成分a的状态变量;的状态变量;lP={p1,p2,…,pr}为参数(属性)集合;为参数(属性)集合;lta为成分为成分a的状态下一发生变化的时刻的状态下一发生变化的时刻;lDa(S)为成分为成分a在状态变量值在状态变量值S时的条件变量时的条件变量;lTIME为模拟时钟的值为模拟时钟的值典型仿真策略典型仿真策略l事件调度法事件调度法l活动描述法活动描述法l进程交互法进程交互法事件调度法事件调度法l通通过过定定义义事事件件及及每每个个事事件件发发生生对对系系统统状状态态的的变变化化,,按按时间顺序时间顺序确定并执行每个事件发生时有关的逻辑关系确定并执行每个事件发生时有关的逻辑关系l所所有有事事件件均均放放在在事事件件表表中中,,模模型型中中设设有有一一个个时时间间控控制制机构机构,该机构从事件表中选取最早发生时刻的事件。
该机构从事件表中选取最早发生时刻的事件l以以事事件件种种类类为为控控制制依依据据,,不不同同种种类类事事件件的的处处理理进进入入相相应应的的事事件件处处理理模模块块,,并并在在时时间间处处理理完完毕毕返返回回时时间间控控制制机构事件调度法模型的基本结构事件调度法模型的基本结构事件调度算法事件调度算法l初始时间初始时间t= t0、事件表初始化、置系统初始事件、事件表初始化、置系统初始事件;l成分表初始化成分表初始化S =((Sa1,ta1),…, (Sam,tam), Sam+1,…, San);l操作事件表,取出操作事件表,取出t =min{ ta|a∈∈CA },修改事件表,修改事件表;l推进时钟推进时钟 TIME= t(s);lWhile (TIME<= t∞),执行:,执行: 根据事件类型根据事件类型i执行第执行第i类事件处理程序类事件处理程序 取出取出t(s) =min{ ta|a∈∈CA }事件记录,修改事件表事件记录,修改事件表 置时钟置时钟 TIME= t(s)l endwhile按事件调度法建立的排队模型按事件调度法建立的排队模型局限性局限性l时钟的推进仅仅依据以下准则:时钟的推进仅仅依据以下准则: t(s)=min{ta|a∈∈CA}l“预定事件发生时间预定事件发生时间”的策略的策略l在在每每一一类类处处理理子子程程序序中中,,修修改改系系统统状状态态,,还还要要预预定本类事件的下一事件将要发生的时间。
定本类事件的下一事件将要发生的时间l如如果果事事件件的的发发生生与与时时间间和和状状态态都都有有关关系系,,事事件件调调度法就不合适度法就不合适活动扫描法活动扫描法l激激发发事事件件所所依依据据的的条条件件不不仅仅包包含含时时间间条条件件而而且且包包含含状态状态条件l定定义义系系统统的的主主导导实实体体、、主主导导实实体体的的活活动动以以及及这这些些活活动动发发生生的的条条件件;;定定义义与与主主导导实实体体活活动动相相关关联联的的非主导实体及其活动非主导实体及其活动l主主导导实实体体::仿仿真真过过程程中中,,起起着着关关键键和和主主导导作作用用的的实体,通过它的活动将其他实体的活动串联起来实体,通过它的活动将其他实体的活动串联起来l每个主导实体都有一个每个主导实体都有一个模拟子时钟模拟子时钟活动扫描法活动扫描法l时间进程控制时间进程控制以主导实体活动发生的时间序列为以主导实体活动发生的时间序列为基础,从模拟子时钟中找出最小时钟值的主导实基础,从模拟子时钟中找出最小时钟值的主导实体进行处理;体进行处理;l走向控制走向控制以主导实体活动的地点或种类依据,进以主导实体活动的地点或种类依据,进入不同活动处理分支;入不同活动处理分支;l采用活动扫描法,时钟的步进长度是相继两个主采用活动扫描法,时钟的步进长度是相继两个主导实体活动的间隔时间。
导实体活动的间隔时间活动扫描法模型的基本结构活动扫描法模型的基本结构活动扫描法的算法活动扫描法的算法l设置系统模拟时钟设置系统模拟时钟TIME与成分模拟时钟与成分模拟时钟ta;;lFUTURE(S)={a|ta>TIME}lFRESENT(S)={a|ta=TIME}lPAST(S)={a|ta





