《交通仿真课件第三章离散仿真.ppt》由会员分享,可在线阅读,更多相关《交通仿真课件第三章离散仿真.ppt(67页珍藏版)》请在三一办公上搜索。
1、第三章 离散系统仿真,概述,离散系统的状态只是在离散时间点上发生变化,而且这些离散时间点一般是随机的。离散系统的数学模型通常用流程图或网络图来描述。离散仿真的目的是实体的活动以找出(分析)系统的(潜在)行为。,离散仿真,事件(event)时间因变量随(事件)时间离散变化。,因变量,时间,基本概念,实体 构成系统的各种成分称为实体,系统的研究对象。临时实体、永久实体。属性 反映实体的某些性质。状态 在某一确定时间点,系统的状态是系统中所有实体属性的集合。,基本概念,事件 引起系统状态发生变化的行为,它是在某一时间点上的瞬间行为。活动 实体在某一状态的持续过程。进程 进程由和实体相关的事件及若干活
2、动组成,一个进程描述了它所包括的事件及活动间的相互逻辑关系和时序关系。,车辆到达事件,服务开始事件,服务结束事件,服务活动,进程,排队活动,事件、活动、进程三者之间的关系,基本概念,仿真时钟 仿真时钟用于表示仿真时间的变化,仿真时钟推进的时间间隔称为时间步长。时间步长法、事件步长法统计计数器 离散系统的状态随事件的不断发生呈现动态变化过程,这种动态变化过程在统计意义下才有参考价值。统计计数器用于记录仿真规程中系统性能的统计信息。,离散仿真模型建立步骤,定义系统的参变量集合,构造系统映象;定义事件类型及其发生时点;定义每一事件时间发生状态变化的点;描述系统中实体的活动;构造状态转移函数或算法;通
3、过系统流图描述整个过程。,构造初始映象,找一个尽可能简单的系统状态作为初始状态;从一个远离平衡状态但容易构造的状态开始进行模拟,当运行一段时间之后,系统的状态会接近或处于稳定状态(平衡状态)。,离散仿真中的关键问题,事件取舍:确定改变系统状态的事件集,并将它们用逻辑关系联系起来。系统仿真就是靠按顺序执行联系这些事件的逻辑来实现的。活动扫描:要描述系统中实体的活动,设定引起活动开始及结束的条件。启动或结束活动的事件不由建模者设定,而随仿真推进而自动进行。为保证活动得到记录,每一次推进均需要扫描活动中的实体集。由于需要在每一次推进中扫描每一活动,这种方法的效率不太高。过程定位:提供整个仿真过程中实
4、体流的一种用仿真语言描述的方法。,系统仿真的推进,时间步长法 以固定的时间间隔进行驱动;事件步长法 按下一类最早发生事件的发生时间推进。,t,时间步长法,在进行系统仿真的同时,把整个仿真过程分为许多相等的时间间隔,程序按此步长前进的时钟就是仿真时钟。在每个时间间隔做如下处理:该步内若无事件发生,则仿真时钟再推进一个单位时间;若在该步内有若干个事件发生,则认为这些事件均发生在这一步的结束时刻,同时必须规定当出现这种情况时各类事件处理的优先顺序。,扫描与处理方法,对每一类事件或每一个主导实体设置一个模拟时钟,以此记录和控制实体活动的延续时间。对系统实体进行扫描;对系统事件进行扫描;对事件和实体结合
5、起来进行扫描。改变状态,预测下一事件。,时间步长法流程图,事件步长法,仿真时钟不断地从一个事件发生时间推进到下一个最早发生事件的发生时间。以事件发生的时间点相互间隔作为步长,按照时间的进展,一步一步地对系统的行为进行仿真,直到预定的仿真时间为止。事件表按照事件发生时间先后顺序安排事件,将仿真过程看作一个事件点序列。事件控制部件始终从事件表中选择最早发生时间的事件记录,然后将仿真时钟该事件发生的时刻。,时钟推进举例,模拟运行150个时间单位,顾客到达事件、顾客服务完毕离去事件,Ti到达时间间隔,Si第i个顾客服务时间,Di第i个顾客等待时间,Ci=Ti+Si+Di第i个顾客离开系统的时间,qi第
6、i个顾客排队的对长,bi模拟时钟推进到第i次的时间,Zi第i个事件发生时服务员的状态。Ti=15,32,24,40,22,;Si=43,36,34,28,初始状态:q0=0,Z0=0求:bi、Ci、,离散系统仿真程序的结构,状态变量;时钟变量;事件表(按时间顺序记录仿真过程中将要发生的事件)统计计数器初始化子程序时钟推进子程序(由事件表确定下一事件,然后将将仿真时钟推进到该事件发生的时间)调度子程序(将仿真过程中产生的未来事件插入事件表),离散系统仿真程序的结构,事件子程序 每一类事件对应一个事件子程序,相应的事件发生时就转入该事件子程序进行处理,更新系统状态,产生新的事件。统计报告子程序随机
7、数发生器主程序 调用时钟推进子程序,控制转移到相应的事件子程序,完成仿真程序的总体控制。,离散系统仿真程序流程图,离散系统仿真策略,建立描述系统行为的仿真模型 由于系统采用伪随机数,可以得到确定的状态转移函数,模型采用流程图或网络图的形式。仿真策略 仿真策略决定仿真模型的结构,模型描述中采用的主要术语,成分 相当于系统中的实体,用于构造模型中的各个部分。主动成分(可以主动产生活动的成分)被动成分(本身不激发活动,只有在主动成分作用下才能产生状态变化)描述变量 成分状态、属性的描述。成分间的相互关系 描述成分之间相互影响的规律。,模型描述中采用的符号,C=a1,a2,an为成分集合;CA=a1,
8、a2,am为主动成分子集合;CP=a1,a2,ah为被动成分子集合;Sa为成分a的状态变量;P=p1,p2,pr为参数(属性)集合;ta为成分a的状态下一发生变化的时刻;Da(S)为成分a在状态变量值S时的条件变量;TIME为模拟时钟的值。,典型仿真策略,事件调度法活动描述法进程交互法,事件调度法,通过定义事件及每个事件发生对系统状态的变化,按时间顺序确定并执行每个事件发生时有关的逻辑关系。所有事件均放在事件表中,模型中设有一个时间控制机构,该机构从事件表中选取最早发生时刻的事件。以事件种类为控制依据,不同种类事件的处理进入相应的事件处理模块,并在时间处理完毕返回时间控制机构。,事件调度法模型
9、的基本结构,事件调度算法,初始时间t=t0、事件表初始化、置系统初始事件;成分表初始化S=(Sa1,ta1),(Sam,tam),Sam+1,San);操作事件表,取出t=min ta|aCA,修改事件表;推进时钟 TIME=t(s);While(TIME=t),执行:根据事件类型i执行第i类事件处理程序 取出t(s)=min ta|aCA 事件记录,修改事件表 置时钟 TIME=t(s)endwhile,按事件调度法建立的排队模型,局限性,时钟的推进仅仅依据以下准则:t(s)=minta|aCA“预定事件发生时间”的策略在每一类处理子程序中,修改系统状态,还要预定本类事件的下一事件将要发生的
10、时间。如果事件的发生与时间和状态都有关系,事件调度法就不合适。,活动扫描法,激发事件所依据的条件不仅包含时间条件而且包含状态条件。定义系统的主导实体、主导实体的活动以及这些活动发生的条件;定义与主导实体活动相关联的非主导实体及其活动。主导实体:仿真过程中,起着关键和主导作用的实体,通过它的活动将其他实体的活动串联起来。每个主导实体都有一个模拟子时钟。,活动扫描法,时间进程控制以主导实体活动发生的时间序列为基础,从模拟子时钟中找出最小时钟值的主导实体进行处理;走向控制以主导实体活动的地点或种类依据,进入不同活动处理分支;采用活动扫描法,时钟的步进长度是相继两个主导实体活动的间隔时间。,活动扫描法
11、模型的基本结构,活动扫描法的算法,设置系统模拟时钟TIME与成分模拟时钟ta;FUTURE(S)=a|taTIMEFRESENT(S)=a|ta=TIMEPAST(S)=a|taTIMETIME=min(ta|a FUTURE(S),活动扫描法的算法,初始时间t=t0、设置主动成分的模拟时钟ta(i);成分状态初始化S=(Sa1,ta1),(Sam,tam),Sam+1,San);设置系统时钟 TIME=t0;While(TIME=t),执行扫描 for j=最高优先数到最低优先数 将优先数为j的成分置成i if(tai(i)=TIME 且 Dai(S)=true)执行活动子例程 endif
12、endfor TIME=min(ta|aFUTURE(S)endwhile,按活动扫描法建立的排对系统模型,进程交互法,进程由事件的时间序列及若干活动组成具有上述两种方法的特点,接近实际系统,编程实现非常复杂采用进程描述系统,将模型的主动成分所发生的事件及活动按照时间顺序进行组合形成进程表,一个成分一旦进入进程,它将完成进程的全部活动。,进程交互法,采用两张事件表,当前事件表、将来事件表;当仿真时钟推进,满足条件的所有事件记录从将来事件表移到当前事件表,取出每个事件记录,判断所属进程与位置,当发生条件真,发生包含该事件的活动,并让该进程尽可能地推进,直至结束。时间控制以主导实体进入该进程的的时
13、间序列及其经历该进程的各项活动的时间顺序,走向控制主要以断点为依据。,以进程为基础的排队系统模型,几种仿真策略的比较,系统描述事件调度法中,只有主动成分才能施加作用;事件调度法中,系统的动态特性表现为主动成分不断产生事件;活动扫描法中表现为主动成分产生活动;进程交互法中则是通过成分在其进程中一步一步地推进描述。,几种仿真策略的比较,建模要点事件调度法中,用户要对所定义的全部事件进行建 模,条件测试只能在事件处理子程序中进行;活动扫描法设置了一个条件子例程用于条件测试,还设置了一个活动扫描模块,该模块对所定义的活动进行建模;进程交互法将一个进程分成若干步,每一步包括条件测试及执行活动两部分。,几
14、种仿真策略的比较,时钟推进事件调度法中,控制机构从事件表中取出最早发生时间的事件记录,将时钟推进到该时刻,执行该事件处理子程序;活动扫描法除系统时钟外,每一个主动成分还有成分模拟子时钟,控制机构选取那些大于当前系统时钟且所有成分模拟时钟最小的那个成分模拟时钟,将系统时钟推进到该时钟;进程交互法中,一旦某个进程被执行,要求尽可能走下去,但并不改变系统时钟。如果该进程未完成,记录中断时间及事件类型放入将来事件表。,几种仿真策略的比较,执行控制事件调度法按下一最早发生时间选择事件记录;活动扫描法对全部活动扫描,只有Dai(S)=true且taiTIME的活动才能被执行;进程交互法对当前事件表中所有的
15、记录扫描,根据该事件在其进程中的指针进行条件判断。当Dai(S)=true 执行该进程,并一直执行下去,否则记下断点。,几种仿真策略的比较,事件调度法建模灵活,建模工作量大;活动扫描法对于各成分相关性很强的系统来说模型效率较高,但执行程序结构复杂;进程交互法建模最直观,模型表示接近实际系统特别适用于可以预测、顺序比较确定的系统,但流程控制复杂,建模灵活性不好。,适用性,系统中的各个成分相关性较少,宜采用事件调度法,反之宜采用活动扫描法;系统成分的活动比较规则,宜采用进程交互法。,排队系统仿真,某个时刻要求服务的的数量超过服务机构的容量。到达模式:顾客按怎样的规律到达;服务机构:同一时刻有多少服
16、务台可接纳顾客;排队规则:服务台完成当前的服务后,从对列选择下一个实体服务的原则。,到达模式,平均到达间隔时间Ta=T/n;平均到达率=1/Ta;到达间隔时间分布函数;1-F(t)到达时间变化系数Sa/Ta;,服务机构,一个或多个服务员,没有服务员;多个服务台,并列、串列、混合;单独服务,成批服务;服务时间,确定、随机;,排队规则,先到先服务FIFO;后到先服务LIFO;随机服务SIRO;优先权服务PR;最短处理时间先服务SPT。,系统容量,有限;无限。,排队模型分类,A/B/C/D/E A:到达模式;B:服务模式;C:并行服务员的数目;D:系统容量;E:排队规则。常见的到达和服务间隔时间分布
17、:M(指数分布)、G(确定型分布)、M(一般随机分布);M/M/1/FIFO,排队系统的特征量,服务员利用率P=平均服务时间/平均到达间隔时间;系统中平均顾客数P/1-P;系统内排队等待的顾客数P2/1-P;顾客在系统内的停留时间;平均等待时间;系统出现大于n个顾客的概率。,研讨,多队多服务台排队系统模拟 以多出纳台银行系统为例(换对原则),系统中的成分成分状态变量系统中的初始状态顾客到达间隔时间服从的分布 服务时间服从的分布,事件,顾客到达银行顾客完成服务后离开顾客换对银行关闭,系统指标,平均等待时间平均对长最大等待时间最大对长,多级串联封闭式排队系统模拟,基于主导实体活动扫描法的模拟模型从
18、一种称为主导实体的模拟子时钟中,找出具有最小时钟值的主导实体,处理该主导实体的活动。主导实体的活动或状态改变时,子时钟便更新一次时钟值。,港口装运模拟系统,某海港共有N个仓库,1个码头,m辆起重车从仓库运向码头装船。N=2,m=12,14,16,18,20;N=3,m=15,20,25,30;N=4,m=25,30,35;确定起重车和仓库的合理数量关系。,系统分析,实体 起重车、仓库、码头、道路、货物等。四级活动 仓库装车、重载运行、码头卸车装船、空载返回可控变量 仓库数目、起重车数目,系统模型,C(I)=0 重载运行;C(I)=1 卸车装船;C(I)=2 空载返回;C(I)=3 装车。A(I
19、)每辆起重车的模拟子时钟 I=1,2,m;L(J)每个仓库的模拟子时钟 J=1,2,n;,初始状态,开始时,每辆起重车都在仓库排队等待装车,并假设所有起重车都进行装车,它们的重车时间赋给A(I)起重车均位于处于装完车准备出发状态,此时C(I)=0,重载运行。,从所有重车的子时钟钟找出最小子时钟值,并取出对应的车号J2。若C(J2)=0,重载运行,产生重载运行时间,赋值A(J2),C(J2)=1;若C(J2)=1,卸货,若码头空闲,将它改为工作状态,累计空闲时间,产生起重车卸车时间;否则不改变码头状态,让起重车排队,计算排队时间;C(J2)=2;若C(J2)=2,空载返回,产生空载返回时间,赋值A(J2),C(J2)=3;若C(J2)=3,装车,找出模拟子时钟最小的仓库,若仓库不空闲,让起重车排队,计算等待时间;否则,累计空闲时间,产生装车时间,仓库装车,装车完毕后,C(J2)=0。,