440 likes | 708 Views
北京市高等教育精品教材 《 管理系统仿真与 GPSS/JAVA》. 第二章 系统仿真与 GPSS. 任毅 教授 孙健 讲师. 第二章 系统仿真与 GPSS. 2.1 基本概念 2.2 离散随机排队系统的模拟方法 2.3 GPSS. 第 2 章 系统仿真与 GPSS. 2.1 基本概念 1. 系统 : “ 什么叫系统,系统就是由许多部分组成的整体,所以系统的概念就是要强调整体,强调整体是由相互关联、相互制约的各个部分所组成的”(钱学森)。 如何确定系统的边界? 1) 根据不同的研究目的,可以确定系统的规模,范围和界限。研究目的决定了系统的界限 .
E N D
北京市高等教育精品教材 《管理系统仿真与GPSS/JAVA》 第二章 系统仿真与GPSS 任毅 教授 孙健 讲师
第二章 系统仿真与GPSS 2.1 基本概念 2.2 离散随机排队系统的模拟方法 2.3 GPSS
第2章 系统仿真与GPSS 2.1 基本概念 1.系统: “什么叫系统,系统就是由许多部分组成的整体,所以系统的概念就是要强调整体,强调整体是由相互关联、相互制约的各个部分所组成的”(钱学森)。 如何确定系统的边界? 1) 根据不同的研究目的,可以确定系统的规模,范围和界限。研究目的决定了系统的界限. 2) 不同的研究目的, 系统所包含的实体也不同. 3) 系统仅由那些与研究目的相关的因素组成。 因此, 一旦研究目的确定, 系统的组成和界限就已经确定。反之当研究目的变化时, 系统的组成和界限就会发生变化.
2.1 基本概念 什么是系统 系统是研究的一个具体对象,是实体的一个集合。如:人群、机器等。 1970年,著名管理学家泰勒(Taylor)对“系统”作了如下定义:实体之间是相互作用的,或是通过逻辑关系组合在一起的。 本书的定义: 系统是一个整体,由相互联系和相互依存的事物组成,它的范围由研究者根据所要解决问题的复杂性而定。
2.1 基本概念 系统的分类: 投针实验 理发馆模型 1.按系统状态是否变化可分为 • 静态型 动态型 本课程研究 动态离散型随机系统模型 • 2.按系统状态变化与时间的关系分 • 连续型系统 系统状态随时间连续变化 • 离散型 系统状态仅在某些时间点上发 • 生变化 • 3.按系统有无随机过程分为 • 确定型 随机型
2.1 基本概念 投针试验 管理系统仿 真研究的是: 动态离散随 机排队系统 按系统 状态是 否变化 静态系统 理发馆模型 动态系统 连续型系统:系统的状态随时间连续变化 按系统状态 的变化与时 间的关系 离散型系统:系统状态仅在某些时间点 上发生变化 确定型系统:系统的输出取决与输入 按有无随 机过程 离散型系统:包含随即因素的系统
2.1 基本概念 元素:也称为实体,即组成系统的基本事物。 构成系统的各种成分称为实体,用系统论的术语,它是系统边界内的对象。 实体可以分为临时实体和永久实体两大类。 例如在理发馆系统中,顾客是临时实体,理发师是永久实体。临时实体按照一定规律出现在仿真系统中,引起永久实体状态的变化,又在永久实体作用下离开系统,如此整个系统呈现出动态的变化过程。
2.1 基本概念 排队系统: 排队论是运筹学的又一个分支,它也被称为随机服务系统理论。排队论主要研究各种系统的排队队长,排队的等待时间及所提供的服务等各种参数,以便求得更好的服务。 研究排队问题实质上就是研究如何平衡等待时间与服务台空闲时间,也就是如何确定一个排队系统,能够对实体(等待服务的人、物体或者信息)和服务台两者都有利,即服务台效率要高,实体等待的时间又不太长。 比如一个港口应该有多少个码头,一个工厂应该有多少维修人员等。
2.1 基本概念 以理发馆系统为例: 在研究理发馆系统时,我们不考虑如下情况: (1)理发馆的设备与工具 (2)理发师的个人行为(道德品质,技术高低) (3)顾客对发型的偏好等 我们关注的是: (1)理发馆的服务能力 (2)理发师的忙闲状况 (3)顾客拥挤程度(等待理发排队的顾客有多少) 我们的研究目的为: (1)分析系统运行状况 (2)找出系统运行的瓶颈 (3)改造系统结构 • 以此来提高系统运行 • 效率从而产生更大经济效益。
2.1 基本概念 分析理发排队系统: (1)如果增加理发师,则排队减少,获得服务的顾客会增多,理发馆收入会增加,但是理发师工资成本也会增加 (2)如果减少理发师,则排队严重,获得服务的顾客会减少,理发馆收入会减少,但是理发师工资成本也会降低。 由此产生了矛盾的两个方面: (1)增加服务能力,收入会增加但成本也会增加 (2)减少服务能力,收入会减少但成本也会减少 因此肯定会存在一个最优的服务能力,使理发馆获得的利润最大。
2.1 基本概念 • 例: 只有一个理发师的理发店模型 (单窗口排队系统图解式模型) 到达 到 达 排队 Y 服 务 离 开 空闲 ? 服务 服务台 N 排 队 离开
2.1 排队系统 有限顾客源系统:集装箱码头的拖车(起重机为服务员) 物流公司的运输车辆、 公交公司的运输车辆 大量潜在顾客群系统:餐馆、银行、流水生产线 有限顾客总体模型与无限顾客总体模型的主要区别在于顾客到达的速率 是如何定义的。 • (2)排队规则 • 排队规则指队列中顾客的逻辑顺序以及当服务台变成空闲时 • 选取队列中哪一个顾客为其服务的规则。常见的排队规则 • 包括先进先出(FIFO)、后进先出(LIFO)、 • 随机服务(SIRO)、最短处理时间优先(SPT) • 以及按优先级别服务(PR)。 • (3)服务机构 • 服务机构向顾客提供服务,与服务机构密切相关的三个属性为: • 1为一个顾客服务所需要的时间,同样具有一定规律(服从某种分布)。 • 2服务机构所具有的服务能力,即能够同时服务的顾客数量 • 3服务是否允许被抢占,抢占采取怎样的方式与规则 在无限总体模型中,顾客总是会以一定的间隔时间,依次到达系统; 我们通常用相继到达的顾客的到达间隔时间来刻画顾客的到达过程。 相继到达的顾客的间隔时间往往是一个随机的变量。间隔时间貌似杂乱无章, 无规律可循;但是如果他们作为一个总体来看,往往能够跟某一特定的 随机分布函数相吻合。例如:顾客到达餐馆、顾客到达银行、呼叫中心的电话、 对某种服务或产品的请求或订单的到达以及进入维修车间的故障设备的到达等 此类的间隔时间往往符合泊松分布(特征值各有不同)。
2.1 随即排队系统 • 随机排队系统 • 若顾客到达间隔时间或服务时间中有一个为随机变量,则这个排队系统称为随机排队系统。 • 在日常生活和生产管理中,存在着大量的随机排队系统,表2.1-1列出了一些常见的随机排队系统。
离散系统与连续系统 离散仿真系统的基本概念 • 1)状态变量 • 用若干系统属性变量来描述系统的当前状况,这些变量称为系统状态变量。例如,可以用当前队列长度、理发师当前忙闲率和理发馆当前顾客滞留总数等属性来描述理发馆系统任一时刻的状态。 • 2)动态系统与静态系统: • 如果某系统的状态随时间的变化而变化,则称此系统为动态系统;否则为静态系统。例如,理发馆系统是一动态系统,描述理发馆状态的变量值如队列长度、理发师忙闲率和理发馆当前顾客滞留总数等是随时间的变化而变化的。
离散系统与事件 离散仿真系统的基本概念 • 3)事件: • 某些事情的发生能够引起系统状态的变化,这些事情称为事件或关键事件。例如,(1)顾客到达理发馆 (2)顾客理完发离开 为事件。事件分为关键事件和普通事件两种: • 对于事件(1)的发生必然会引起或者队列长度、或者理发师忙闲状况的变化,以及顾客滞留总数的变化。称为关键事。 • 对于事件(2)也会发生相同的情况。至于其他事件,如顾客加入队列和顾客开始理发等也可以称为事件,但不是关键事件,因为这些事件是由关键事件引发的,可称为普通事件。
离散事件与离散事件系统 离散仿真系统的基本概念 • 4)离散事件与连续事件: • 如果能够引起系统状态变化的事件只出现在系统运行过程的间隔时间点上,则这种事件称为离散事件;如果是连续发生则为连续事件。例如,顾客到达理发馆这一事件的发生时间是离散的而不是连续的。 • 5)离散系统与连续系统: • 当所有能够引起系统状态发生变化的事件都是离散事件时,则该系统就称为离散系统; 若所有这些事件都是连续的则该系统称为连续系统;若一个系统发生的事件。部分为离散的而部分为连续的,则称其为混合系统。实际问题中,大多数管理系统可以视为动态离散随机的排队系统。
离散事件与离散事件系统 在特定时间内和研究目的有关的描述系统所需变量的集合定义为系统的状态。 例如,在银行系统中,可能的状态变量是正在工作的出纳员人数,在等待线上排队或正在接受服务的顾客数,以及下一个顾客的到达时间。在制造系统中,机器的忙、闲或故障为可能的状态变量。 例:理发店系统模型的系统变量为: 1.理发师状态 2.排队长度 3.各顾客到达时间 4.各顾客服务时间 5.模拟钟时间
离散事件系统建模 为什么要建模: 研究一个系统以便了解系统中各组成部分之间的关系或预测系统在新的策略下的运行规律是很有意义的。 为了深入研究系统,有时可能需要对系统本身进行实验。 但通常有许多原因使得不能直接在真实系统上做实验: 1.系统不存在(如仍处于设计阶段), 2.在原系统上进行实验会造成巨大的破坏和损失, 3.系统无法恢复,无法保证每次实验都有相同的实验条件等等。 鉴于这些原因,构造一个真实系统的模型,在模型上进行实验成为对系统进行分析、研究十分有效的手段。
离散事件系统建模 什么是模型: • 模型可以定义为:为了达到系统研究的目的,用于收集和描述系统有关信息的实体。 • 模型是对实际系统的一种抽象和本质的描述。 • 首先,模型必须是对现实系统的一种抽象,它是在一定假设条件下对系统的简化。 • 其次,模型必须包含系统中的主要因素。模型不可能与实际系统一一对应,而至少应当包含那些决定系统本质属性的重要因素。 • 再者,为了进行定量分析,模型中必须反映出各主要因素之间的逻辑关系和数学关系,使模型对系统具有代表性。 • 仿真模型同样必须符合以上各项要求,并且适合在仿真环境下,通过模仿系统的行为来求解问题。
离散事件系统仿真 • 什么是仿真: • 仿真是对系统模型进行实验的过程,是一种基于模型的活动。 • 仿真的基本过程是:确立研究的目的后,先建立系统的模型,然后使用某种计算工具求解模型,最后对模拟的结果进行分析,以获得答案。 • 仿真技术即是指以相似原理、系统理论与方法、信息技术以及仿真应用领域的有关专业知识为基础,以计算机系统或与应用有关的物理效应设备及仿真器为工具,利用模型对系统(己有的或设想的)进行研究的一门多学科的综合性的技术。
离散事件系统建模与仿真 • 什么是计算机仿真: • 在对系统进行分析、设计和预测的过程中,一方面要运用理论知识对系统进行分析,另一方面还要对系统进行实验研究。 • 由于很多系统的结构非常复杂,又包含大量随机因素,采用解析方法建立数学模型将会遇到很多困难,现实中多采用实验研究的方法。 • 但是其中又有很多系统,由于各种原因,比如:危险性大,或者不经济,或者周期太长,或者不可能建立实物的模型进行实验。在这种情况下,系统仿真技术便成为首选的工具。 • 系统仿真是以多种学科理论为基础,以计算机及相应的仿真软件为工具进行实验研究的理论和方法论体系。它体现了实验思考的方法,用以探索复杂系统深层次的运动机理和规律性,具有科学的先验性。
离散事件系统建模与仿真 • (3)计算机仿真 • 计算机仿真包括三个要素,即系统、模型和计算机。联系这三个要素的有三个基本活动:系统模型建立、仿真模型建立和仿真实验。 综上所述,“系统、模型、仿真”三者之间有着密切的关系。系统是研究的对象,模型是系统的抽象,仿真是通过对模型的实验以达到研究系统的目的。
2.2 离散随机排队系统的模拟方法 • 什么是蒙特卡洛法: • 蒙特卡洛(Monte Carlo)方法,或称计算机随机模拟方法,是一种基于“随机数”的计算方法。这一方法源于美国在第二次世界大战研制原子弹的“曼哈顿计划”。该计划的主持人之一、数学家冯·诺伊曼用驰名世界的赌城,摩纳哥的Monte Carlo,来命名这种方法,为它蒙上了一层神秘色彩。 • 蒙特卡洛法是基于概率论的随机抽样的计算方法,可以解决如下两类的静态或动态问题。
2.2 离散随机排队系统的模拟方法 • 蒙特卡洛法能够解决的2类静态或动态问题: • 问题-:某人每轮向靶子射10箭,已知其击中靶心的概率为25%,问一轮中射中7箭的概率为多少? • 问题二:有一银行营业点打算添置一台自动存取款机(12小时服务),顾客按一定的间隔时间到来,排队接受服务,先来者先用,后来者后用,顾客不愿在队列中等待太久,否则会离去。管理人员想了解等待时间超过3分钟的顾客的比例为多少,若该比例太大,则考虑再增设一台机器。
2.2 离散随机排队系统的模拟方法 • 问题1的求解方法: • 1. 产生均匀分布随机数 0.00~0.99(100个),某个数字出现的概率相等。若产生1000个这样的数,则 • (1)数值为0.00~0.24大约会有250个,比例大约为0.25 • (2)数值为0.25~0.99大约会有750个,比例大约为0.75 • 2. 以每产生一个随机数代表射1箭,若产生的随机数小于0.25,则代表击中靶心,如果产生的随机数大于或等于0.25,则表示没有击中靶心。 • 若实验的次数很多(远大于1000),则.击中靶心的频率接近于25%。若实验的次数无限多,则.击中靶心的概率等于25%。
2.2 离散随机排队系统的模拟方法 • 问题1的求解方法: • 3. 确定一轮中击中7箭的概率 • (1)每轮由计算机产生10个均匀分布的随机数Ni(i=1,2,3, … 10),代表射10箭 • (2)其中若Ni小于0.25为击中,记下该轮中击中的次数 • (3)重复(1)―(2),进行K轮实验 • (4)找出K轮中所有每轮击中7次的总轮数M,则K轮中每轮击中7箭的频率为M / K,若K趋向无穷大时,M / K为每轮击中7箭的概率。
2.2 离散随机排队系统的模拟方法 • 问题2的已知数据: 1. 模拟过程 顾客到达排队→使用存取款机→顾客离开 2. 调查数据 观察100位顾客到达间隔时间和使用机器的持续时间,得到如下统计数据:
2.2 离散随机排队系统的模拟方法 • 3. 产生均匀分布的二组随机数 • 产生0-1(0.00-0.99)间隔两组均匀分布的随机数。 一组用于模拟顾客到达间隔时间,另一组模拟顾客用机时间。 • 由第一组产生的一个随机数代表当前到达存取款机的一位顾客,若此随机数的值为0.70,通过表2.2-1,可以确定所模拟的该顾客到达的时间与前一位顾客到达时的间隔时间为5分钟。 • 由第二组产生的一个随机数代表正在使用存取款机的一位顾客,若此随机数的值为0.90,通过表2.2-2,可以确定所模拟的该顾客使用存取款机的时间为4分钟。
2.2 离散随机排队系统的模拟方法 • 4.手工模拟步骤与结果(假设模拟开始时间为0)
2.3 手工模拟 0.50 0.57 4
2.3 手工模拟 0.50 0.57 4
2.3 GPSS仿真系统 • 1. 专用仿真系统 • 解决以上两个问题的模型可以采用任何计算机高级语言编写其程序,予以运行并获得计算结果。但是存在如下问题: • (1)各个问题采取的算法不同,全凭技巧,缺少一个统一的标准算法, • (2)大量工作花费在算法实现的编程细节上 • (3)难以利用他人或过去的工作 • 因此对某一类型的问题能否做到: • 1. 采取更加抽象的(接近于实际的)和标准化的模型逻辑构造方法。 • 2. 对这种用标准的逻辑构造方法建立的具有不同逻辑结构的模型,采取统一的或标准的算法来实现。
2.3 GPSS仿真系统 • 什么是GPSS • GPSS 是( General Purpose Simulation System ),即通用仿真系统。它是由美国IBM的Geoffery Gordon博士研究和开发的。 • 1961年,Gordon以“通用模拟程序”为题在EJCC(Eastern Joiut Computer Conference 美国东部联合计算机会议)会议论文集上发表了第一篇有关GPSS的论文,该文于1962年刊登于《IBM系统杂志》第一卷第一期。这个首次发表的GPSS常被人称作“戈登仿真器”,是在IBM的704、709和7090计算机上实现的。 • 其后,在1964年和1965年又相继推出了GPSS的第二和第三个版本GPSSⅡ与GPSSⅢ;1967年,开发出的GPSS/360(运行于IBM360计算机)被正式更名为通用仿真系统(General Purpose Simulation System)。
2.3 GPSS仿真系统 • 国外常见GPSS仿真系统简介 • 当然,GPSS也有很多非IBM的计算机的版本。例如在1972年,美国航天集团“的诺”等公司为美国海军开发出一套NGPSS/6000,如同他的名字暗示的那样,这个版本的GPSS运行在“的诺”公司6000系列计算机上。 • 在将近半个世纪中,GPSS不断得到发展与完善。八十年代初出现了运行于个人计算机的版本GPSS/H和GPSS/PC,分别由美国的Wolverine和Minuteman等软件公司开发和提供技术支持。之后,九十年代Minuteman公司推出基于Windows的具有图形界面的GPSS的集成开发环境GPSSWorld。
2.3 GPSS仿真系统 GPSS仿真系统简介 • GPSS适用于离散系统仿真,对模型文本采取解释方式执行,建模采用面向过程,即面向业务流程的方法。这种建模方法很贴近于现实管理系统的各种实际业务流程。模型中的仿真元素(模块)之间的联系(路径)与实际系统的元素及相互作用关系有很直观的映射,因此模型直观而易于理解。 同时,由于其语言的简洁性和语言规模的适度性,非常易于学习和掌握。 • GPSS是为那些并不是计算机程序设计专家的管理人员设计的一门用于管理系统建模的语言。它利用程序模块图来描述系统,程序模块图可以看作是仿真模型的图形化表示。这可以使管理人员以模块图的形式建立管理系统的模型。
2.3 GPSS仿真系统 GPSS仿真系统简介 • 从仿真方法分类上而言,GPSS属于进程交互法,它使用程序块(BLOCK)书写程序,每个程序块相当于一个子程序。所以,系统分析者不需在编程上花费太多的功夫,可以把精力集中在模型的建立上。 • 近四十余年来,专用仿真系统层出不尽,如:GASS、SIMSCRIPT、SLAM、DYNOMO、SIMAN和 ARENA等等,它们可以用于离散系统的仿真,连续系统的仿真,离散-连续混合系统的仿真。尽管如此,在管理系统仿真方面,GPSS由于上述的特点,至今仍被广泛使用,从而显示出强大的生命力。
基于蒙特卡罗法的求解过程 • 与确定性的问题不同,每一步由仿真模型计算结果所获得的模型的状态并不反映或对应实际系统在那一次或那一时刻的真实状态。 • 也就是说模型的每一个瞬时状态并不一定反映真实系统的实际状态,但是模型在经过大量实验,即模拟较长一段时间后,所获得的的统计特性,却可以反映实际系统的整体特性。 随机数问题 用数学的方法求解 离散系统 排队问题 蒙特卡罗法
2.3 GPSS仿真系统 基于通用计算机语言建模的缺点: • 采用计算机语言编写程序,建立计算机模型,当然可以解决以上二个问题,但是: 1.缺少一个统一的标准算法,建模依赖于建模者对通用计算机语言的掌握程度 2.大量工作花费在算法实现的编程细节上 3.所建立的模型不具有通用性,难以利用他人的成果
2.3 GPSS仿真系统 专用计算机仿真系统: 1.采取更加抽象的(接近于实际的)和标准化的模型逻辑构造方法 2.对于具有不同逻辑结构的模型,采取统一的或标准的算法来实现。 以GPSS/JAVA为例,它提供了50余个标准逻辑构件,可以构造复杂的计算机模型 GPSS/JAVA 逻辑构件库 计算机仿真模型 实际系统
2.3 GPSS仿真系统 GPSS/JAVA仿真系统: 将模型的编辑、 编译、 调试、 运行、 结果输出 建模方法的学习 建模IDE 提供 公共接口 GPSS/JAVA专用仿真系统 仿真建模的核心算法 仿真模型逻辑构件库 GPSS/JAVA 仿真类库 提供
2.3 GPSS仿真系统 • GPSS :General Purpose Simulation System,即通用仿真系统 ,1961年由Gordon(美国)提出,并在计算机上得到实现。 • 目前有很多版本的GPSS,如:GPSS/H、GPSS/PC GPSSWorld 等。 • GPSS适用于离散系统仿真,,建模采用面向过程,即面向业务流程的方法。这种建模方法很贴近于现实管理系统的各种实际业务流程。 • GPSS是为那些并不是计算机程序设计专家的管理人员设计的一门用于管理系统建模的语言。它利用程序模块图来描述系统,程序模块图可以看作是仿真模型的图形化表示。这可以使管理人员以模块图的形式建立管理系统的模型。