摘要
系统仿真是以计算机及相应的仿真软件为工具进行实验研究的理论和方法论体系。它体现了实验思考的方法,用以探索复杂系统深层次的运动机理和规律性,具有科学的先验性。在现代社会,系统仿真,特别是离散事件系统仿真,已成为各种科研领域的研究热点,也是国家和国防关键技术发展计划之一。现实世界中的大量系统都可用离散事件系统描述,比如各种排队系统和库存系统,生产制造系统,计算机网络系统等,而且近年来,人们的注意力更多的投向了社会、经济、生态等复杂系统的分析研究上,在这些系统的规划、设计、运行、分析和改造的各个阶段,离散事件仿真技术无疑将发挥越来越重要的作用。
随着各种面向应用和用户的系统仿真软件的不断发展,目前世界上已经出现了大量的离散事件仿真软件,但大都是国外的商业软件,国内相比国外还有不小的差距,鉴于离散事件仿真在科研和企业研发中日益突出的作用和应用价值,本课题的目的就是设计开发出具有自主知识产权,通用性好,建模效率高的离散事件仿真软件包,这对于提高我国的计算机仿真应用水平,减小相关研发开销,以及增强国家科技实力和企业核心竞争力方面都有着重大的意义。
本文在对一般离散事件系统仿真的共性进行大量和广泛的抽象分析的基础上,结合面向对象的思想和方法,设计开发了一个通用的离散事件仿真平台类库。该仿真平台类库封装了离散事件仿真的各项基本特征,并从用户的角度预定义了一些最常使用的功能模块,具备使用简单有效,通用性和扩展性强,易于集成和进行二次开发等特性,能应用于各种不同规模和复杂度的离散事件仿真需求。相比国内外已有的类似仿真软件包,本仿真平台类库还具有清晰直观的设计架构,简单易懂的宏观仿真建模思想,方便有效的使用方法,灵活强大的数据采集和统计分析机制,丰富的仿真实验方案设计和实验控制支持以及高效率的程序执行过程。利用本离散事件仿真平台,仿真开发人员只需具备基本的C++语言水平,就可以将主要精力集中于仿真系统的分析和逻辑描述方面,不用花费大量时间编写底层细节代码,从而较大程度上减少仿真程序的编写和测试维护工作,显著提高工作效率。
本文还通过几个具有代表性的离散事件仿真实例以及一个大型海港物流系统仿真模型的构建过程详细介绍了本离散事件仿真平台的用法,阐述了仿真平台的各项优点和特性,同时也突出了其应用价值和应用前景。
System simulation is a theoretical and methodological system, which takes computer and corresponding simulation software as tools for conducting experimental study. Being able to explore the deep level movement mechanism and regularity of complex systems, system simulation embodies experimental thinking approach and has scientific apriority. In modern society, system simulation, especially discrete event system simulation, has become a hotspot in many scientific research fields, as well as one of national and national defense key development plans. A large number of systems can be described as discrete event system in real world, such as classic queue systems and inventory systems, manufacturing systems, computer network systems and etc. And in recent years, more simulation and research attention has been focused on society, economy and ecosystem, which are more complex systems. During the planning, designing, running and transformation stages of these systems, discrete event simulation technology will definitely play a more and more important role.
Along with the ongoing development of simulation software which is oriented to application and users, there has appeared lots of discrete event simulation software in the world. But most of these softwares are commercial and designed by foreign people, and in these aspects there is certain gap compared with overseas countries. In view of the fact that discrete event simulation technology has become increasingly significant in scientific research and enterprise's R&D, if we can design a general purpose discrete event simulation software which is general, efficient for modeling, easy to use and above all has our independent intellectual property, from this point of view, it will have very great significance in improving computer simulation application level of our country, decreasing scientific and enterprise application research cost, enhancing national scientific & technical strength and enterprise core competence. And this is the main motive of my topic choice and the importance of this paper.
Based on the massive and extensive abstract analysis of the commonness of general discrete event simulation application and combined with object oriented methods, a general purpose discrete event simulation platform class library was designed and presented. This simulation platform class library encapsulates many basic features of discrete event simulation and pre-defines lots of typical function modules. It is fast, easy to use and has good generality and expansibility. It is also easy for integrating and secondary development, so it can be applied to many application fields which have different scale and complexity. Compared with the existing similar simulation software packages, this simulation platform class library has the following advantages: clear and direct viewing design structure, simple and pellucid high level modeling ideas and methods, easy and effective using method, flexible data sampling and statistic analytical mechanism, strong simulation experiment design and control ability, and fast and efficient program execution. Using this discrete event simulation platform, simulation developers, who only know a little about C++ programming, will be able to concentrate on the system analysis and logical description. They don’t have to spend much time writing common and low level code, which will to a great extent reduce much programming, testing and maintaining work and will obviously improve working efficiency.
Through several typical discrete event simulation application examples which differ in behavior and complexity and a large scale harbor logistics system simulation model, this article give a detailed and comprehensive description of the usage of this simulation platform and many merits and characteristics of it, in the mean time its application value and application prospect is also highlighted.
引文
[1] 肖田元,张燕云,陈加栋,系统仿真导论,北京:清华大学出版社,2000
[2] 冯允成,邹志红,周泓,离散事件仿真,北京:机械工业出版社,1998
[3] Banks Jerry, Carson John, Barry L. Nelson, Discrete-Event System Simulation, Fourth Edition, New York: Prentice Hall, 2005
[4] Zeigler, Bernard P, Herbert Praehofer, Tag Gon Kim. Theory of Modeling and Simulation, 2nd Edition, Academic Press, 2000
[5] 王维平,朱一凡,朱雪倩等,离散事件系统建模与仿真,长沙:国防科技大学出版社,1997
[6] 郑大钟,赵千川,离散事件动态系统,北京:清华大学出版社,2000
[7] Oren T. GEST. A Modeling and Simulation Language Based on System Theoretic Concepts in Simulation and Model based Methodologies: An Integrative View. New York, 1984
[8] Banks Jerry. Introduction to Discrete Event Simulation, Proceedings of the 1986 Winter Simulation Conference, 1986: 17-23
[9] 周金辉,面向对象技术的离散事件仿真,上海交通大学硕士学位论文,2002
[10] 李云峰,现代计算机仿真技术的研究与发展,计算技术与自动化,2002,21(4): 75-78
[11] 李仲学,赵文广,李翠平,离散事件仿真及其应用的某些新进展,计算机仿真,1999 ,16(4): 3-5
[12] Vlatka Hlupic Discrete-Event Simulation Software: What the Users Want, Simulation, 1999, 73: 362-370
[13] Thomas J. Schriber, Daniel T. Brunner. “Inside Discrete-Event Simulation Software: How It Works and Why It Matters”, Proceedings of the 2000 Winter Simulation Conference, 2000: 90-100
[14] Thomas J. Schriber, Simulation Using GPSS, Reading: John Wiley & Sons, NewYork, 1974
[15] R. Efron, G. Gordan, A General Purpose Digital Simulator and Examples of its Applications, IBM Systems Journals, 3(1), 1969
[16] A. A. B. Pritsker, Introduction to Simulation & SLAM II, Reading: John Wiley & Sons, 1984
[17] James J. Swain. Simulation reloaded: Sixth biennial survey of discrete event. software tools, OR/MS Today, 2003, 30(4): 46–57
[18] Robert Diamond, Charles R. Harrell. The Current and Future Status of Simulation Software, Proceedings of the 2002 Winter Simulation Conference, 2002: 1633-1640
[19] David L. Eldredge, John D. McGregor, Marguerite K. Summers. Applying the object-oriented paradigm to discrete event simulations using the C++ language, Simulation 1990, 54: 83-91
[20] Simulation Software Development Frameworks Collection: http://www.topology.org/soft/sim.html
[21] AESOP GmbH. SIMPLE++ reference manual version 3. I. Stuttgart, Germany, 1995
[22] Paul. A. Fishwick, Simpack: Getting started with simulation programming in C and C++, Proceedings of the 1992 Winter Simulation Conference, 1992: 154-162
[23] M.C. Little, D.L. McCue, Construction and Use of a Simulation Package in C++, C User's Journal, 1994, 12(3)
[24] C++Sim User’s Guide, Public Release 1.5, Department of Computing Science, University of Newcastle upon Tyne, UK
[25] Dirk Bolier, Anton Eliens. SIM: a C++ library for Discrete Event Simulation, Technical Report, Department of Mathematics and Computer Science, Vrije University, 1995
[26] Jhyfang Hu. CEDES – A C++ Engine for Discrete Event Simulation. Simulation Symposium Proceedings 1993, 1993, 26(29): 189 – 195
[27] Jerome Darmont. DESPAC++ - discrete event simulation package in C++, Software-Practice and Experience, 2000, 30: 37-60
[28] I. Garcia, R. Molla. D.E.S.K: Discrete Events Simulation Kernel ECCOMAS 2000
[29] Gilbert Chen, Boleslaw K. Szymanski, COST: A Component-Oriented Discrete Event Simulator, Proceedings of the 2002 Winter Simulation Conference, 2002, 1: 776-782
[30] Mauricio Marín, Patricio Cordero, An Object Oriented C++ Approach for Discrete Event Simulation of Complex and Large Systems of Many Moving Objects,Proceedings of the 28th Annual Simulation Symposium, 1995: 288
[31] Hemant C. Bhuskute, Manoj N. Duse, etc, Design and Implementation of A Highly Reusable Modeling and Simulation Framework for Discrete Part Manufacturing Systems, Proceedings of the 1992 Winter Simulation Conference, 1992: 680-687
[32] Richard M. Fujimoto, Parallel and Distributed Discrete Event Simulation Algorithms and Applications, Proceedings of the 1993 Winter Simulation Conference, 1993: 106-114
[33] Massimo Paolucci, Raffaele Pesenti, An Object-Oriented Approach to Discrete-Event Simulation Applied to Underground Railway Systems, Simulation 1999, 72: 372
[34] Liang Y. Liu, Photios G. Ioannou. Graphical Object-Oriented Discrete Event Simulation System. Proceedings of the 1992 Winter Simulation Conference, 1992: 1285-1291
[35] 崔晓峰,面向对象的离散事件仿真建模与实现,计算机工程与应用,1998,34(9): 39~40,46
[36] 谢毅,唐任仲,基于对象建模技术的事件驱动过程仿真技术研究,中国机械工程,2004,15(24): 1069-1072,1094
[37] 戴晓明,张洪渊,陈海光等,离散事件动态系统仿真工具 DEDS Sim 及其应用研究,计算机仿真,2001,18(4): 38-40
[38] 周小华,蒋馥,吴冲锋,一个用于排队系统仿真的中间件,计算机仿真,2002,19(2): 101-103
[39] 梁景新,何晨,诸鸿文,一种离散时间事件仿真架构及其实现,计算机仿真,2001,18(1): 32-36
[40] 秦彦波,离散系统仿真技术研究,计算机仿真,1995,42:34-39
[41] 冯惠军,冯永成,离散事件仿真模型的实现方法,石家庄铁道学院学报,1995,8(3): 48-55
[42] 黄洪,一种新的离散事件仿真时间递进机制,系统工程理论与实践,1994,4: 23-28
[43] 邹志宏,冯永成,离散系统仿真输出数据的统计分析,北京航空航天大学学报,1995,21(2): 72-78
[44] 惠天舒,李裕山,陈宗基,仿真模型的可重用性研究,北京航空航天大学学报,1999,25(3): 329-333
[45] 纪慧生,面向对象技术与管理仿真系统 GPSSC++的研究与开发,北京工业大学硕士学位论文,2003
[46] 肖杰华,面向制造系统的虚拟仿真平台的研究及实现,华中科技大学硕士学位论文,2002
[47] David Krahl, J. Steven Lamperti, A Message-based Discrete Event Simulation Architecture, Proceedings of the 1997 Winter Simulation Conference, 1997: 1361-1367
[48] Ricardo Baeza-Yates, Mauricio Marín, P. Cordero. Analysis of and Improved Priority Queue for Discrete Event Simulation of Many Moving Objects, Proceedings of the XIV International Conference of the Chilean Computer Science Society, Concepcion, Chile, 1994
[49] W. W. Tsang, Random Number Generation and Testing,Technical Report, Department of Computer Science, The University of Hong Kong
[50] Knuth D.E, The Art of Computer Programming, Volume 2: Seminumerical Algorithms. 3rd Edition, Addison-Wesley, 2002
[51] M. Matsumoto and T. Nishimura, Mersenne Twister: A 623-dimensionally equidistributed uniform pseudorandom number generator, ACM Trans. on Modeling and Computer Simulation, 1998, 8 (1).
[52] Mersenne Twister Mersenne Twister Home Page: http://www.math.sci.hiroshima-u.ac.jp/~m-mat/MT/emt.html
[53] The Marsaglia Random Number CDROM Document: http://stat.fsu.edu/pub/diehard/
[54] Numerical Analysis and Scientific Computing Library- ALGLIB: http://www.alglib.net/
[55] 王萍,许海洋,一种新的随机数组合发生器的研究,计算机技术与发展,2006,16(4): 79-81
[56] 商剑平,王诺等,散粮码头装卸系统的计算机模拟模型,水运工程[J],2005,379: 9-14
[57] 鲁子爱,林民标,港口服务系统的计算机仿真研究,河海大学学报,1999,27(3): 17-21
[58] 孙士寅,钟伟观,港口(码头)船舶作业调度问题的模型和算法,电脑应用时代,1989,3
[59] 梁波,李怀祖,孙林岩,生产作业计划理论及应用的评述,系统工程理论方法应用,1996,5(2): 9-17
[60] Michael C. Fu, Fred, W. Glover, Simulation Optimization :A Review, New Developments, and Applications, Proceedings of the 2005 Winter Simulation Conference, 2005: 83-95
[61] Raid Al - Aomar, A Process – Oriented System Design Methodology With Genetic Algorithm Search And Simulation – Based Evaluation, doctor dissertation, the Graduate School of Wayne State University, Detroit, Michigan, 2000
[62] 陈伟,仿真优化方法及其在港口设备配置中的应用研究,武汉理工大学工学硕士学位论文,2004
[63] Y. S. Choi, Simulator for Port Container Terminal Using An Object-Oriented Approach, Brain Korea 21 Logistics Team, Industrial Engineering, Pusan National University, 2000
[64] 管卫虹,散杂货港口计算机辅助生产管理,中国港湾建设,2003,10
[65] 郭武斌,大型散粮码头装卸工艺计算机模拟系统的设计与实现,大连理工大学硕士学位论文,2003
[66] 邱小梅,林军,散货码头库场的计算机管理系统的分析与实现,交通与计算机[J],1996,14(2): 43-46
[67] 佟士祺,面向对象的进口散货码头系统计算机模拟研究,大连理工大学硕士学位论文,2003