新闻动态

社内动态

作者近距离 | 李群教授谈建模与仿真

意大利教育学家蒙台梭利说过:“让我听,我会忘记;让我看,我会记住;只有让我做,我才会理解。”知是行之始,行是知之成。知行合一,以知促行,以行求知。以此为出发点,李群教授及其团队写下了《基于RubberDuck的离散事件系统仿真模型设计与实现》一书,并采用标准C++语言开发了配套的离散事件系统仿真开源软件RubberDuck。本期“作者近距离”活动邀请到了国防科技大学李群教授,一起谈谈建模与仿真。

        



本期嘉宾:李群

李群,国防科技大学教授,博士生导师。系统讲授过离散事件系统建模与仿真、仿真模型设计与执行、建模与仿真理论、仿真技术前沿等本科生、硕士生和博士生课程。培养了硕士20余人,培养和协助培养了博士20余人。

发表论文70余篇,多篇文章被SCI、 El检索。出版《离散事件系统建模与仿真》《仿真模型设计与执行》《仿真模型可移植性规范与应用》《基于ABMS的体系计算实验方法与应用》等教材、专著和译著。

主持和参加自然科学基金项目等30余项,作为项目负责人设计和开发了“SIM2000建模仿真平台”“体系效能分析仿真平台”等不同层次的仿真系统和仿真工具,获部委级科技进步一等奖2项、二等奖3项、三等奖1项。640.png


问:请李群教授为大家简单介绍一下“仿真”和“离散事件仿真系统”。

李群教授:仿真是一种基于模型的实验方法。在很多问题中我们直接建立系统输入和输出之间的影响关系模型非常困难,仿真实验则避免直接建立抽象的问题求解模型,而是通过对系统的工作过程分析建立系统的动态行为模型,通过模型复现系统的动态运行过程,进而根据模型的运行结果分析系统运行规律。我们将这种采用模型复现系统动态行为进而获得系统运行规律的实验称为仿真实验。

我们可以把仿真研究归纳成两种范式,一种是连续系统仿真,另一种是离散事件系统仿真。

离散事件系统仿真是基于离散事件思想对系统进行建模、仿真实验和输出分析的计算实验方法。离散事件仿真基于事件的概念,这些事件可以改变系统模型的状态。事件在给定时间点发生,激活模型并产生状态变化。


问:可以给大家介绍一下《基于RubberDuck的离散事件系统仿真模型设计与实现》一书的特点吗?

李群教授:模型是仿真的核心,在离散事件系统仿真教学中,我们发现离散事件系统仿真模型的设计与实现是学生学习中面临的一个主要障碍。很多学生面临仿真模型设计时不知如何下手,仿真模型实现时动手能力跟不上的困难。国内外相关教材中也缺少对离散事件系统仿真模型设计与实现方面的深入讲解。针对上述问题,我们编写该辅助教材支持离散事件系统仿真相关课程的教学实验。

另外,我们也采用标准C++语言和软件工程方法开发了配套的、可移植的离散事件系统仿真开源软件库RubberDuck以支持学生的自主学习和工程实践,RubberDuck软件库、模型示例代码和本书相关内容以开源的形式在Gitee.com网站上进行共享,书中各章附有实验练习,可以满足教学或个人自学实践的需要。这个库所有人都可以访问,读者既可以在上面发现问题,我们来加以完善,也能帮助更多的人去实际地理解这个方法。

实践出真知。本书包含详细的离散事件仿真模型示例,突出对离散事件仿真模型设计、相关调度算法和模型示例的剖析,是一本支持离散事件系统仿真建模实践的、内容比较全面的辅助教材。


问:您能给大家分享一下《基于RubberDuck的离散事件系统仿真模型设计与实现》的创作过程吗?

李群教授:20世纪90年代,王维平和朱一凡教授就带着我们开始进行离散事件系统仿真的课程教学,1997年,在国防科大出版社出版了教材《离散事件系统建模与仿真》,2007年,修改了第二版。通过讲授该课程,并结合多年工程实践,我们从中发现了很多问题。

当前,本单位承担的离散事件系统仿真课程采用Banks等编著的《离散事件系统仿真》教材。但在实际教学过程中,我们发现目前所用的教材,以及国内其他的仿真相关教材偏重于数学理论分析,内容繁杂,学生难以掌握重点。此外,仿模型设计与实现也是学生学习中面临的一个主要障碍。学会书本知识并不难,难的是如何解决实际问题,所以,我们当时写这本书也是抱着实践出真知这个想法,只有通过实践才能真正理解知识。

离散事件仿真应用广泛,我认为有责任将有用、实用的知识传授给学生。在已有课题研究项目基础上,我们采用软件工程方法设计开发面向教学实验的仿真库。对相关内容进行总结形成了教材讲义,经过两次课程试用修改完善后交由出版社出版,在这个过程中,也要感谢国防科大出版社和编辑们的努力。

但总会有不如意之处,后续我们也将不断对相关章节和软件进行更新,比如,进程仿真、复杂案例、连续系统仿真,随机变量生成,并行分布式仿真等,既可以教学使用,也可以将其逐步用于仿真应用研究。


问:目前离散事件系统仿真被应用在哪些行业中呢?它可以用来解决一些什么问题?

李群教授:在很多应用领域中,需要对相关系统进行合理表示和分析,而这些系统固有的复杂性使得我们只能采用仿真方法解决这些问题。计算机仿真在航天、航空、武器、核能、机械、电力、电子、化工、通信、建筑、交通、冶金、医学等领域已经得到广泛应用。比如,超市的排队系统、医院人员配置管理和病床利用率问题、物流规划、机场维修保障过程优化、制造车间流程优化、大型复杂的通信系统等,每个应用领域都有大量成功案例。

总的来说,采用仿真实验方法的典型场景包括:一是实际系统不存在,比如,系统还处于论证与设计阶段,在样机生产出来之前无法直接进行试验;二是试验具有危害性,比如,汽车安全性能试验等,直接在实际系统上试验可能会造成较大损失乃至产生严重后果;三是试验受到较大制约,比如,某些社会学、经济学、生态学试验周期太长且代价无法接受;四是试验的花费过大,比如,在飞机发动机和火箭发动机的设计过程中,需要进行大量的试验,而每次试验都要消耗巨额经费等,这些情况都可以通过仿真模型进行试验。


问:离散事件系统仿真在军事领域的应用有哪些?

李群教授:离散事件系统仿真在军事中的应用更为广泛。比如,美军当前应用最为广泛的联合战区层仿真(Joint Theater Level Simulation, JTLS)兵棋推演系统就采用了SIMSCRIPT对其核心仿真模型——作战事件程序(Combat Event Program,CEP)进行设计开发。军事应用仿真可以分为三类,一是模拟仿真(Constructive Simulation),这类仿真系统运行时一般不包含人机交互过程;二是虚拟仿真(Virtual Simulation),通常指在虚拟环境中进行的人在回路仿真,运行过程中人机可以交互,相当于人可以干预或控制这个模型;三是实拟仿真(Live Simulation),由实际的战斗人员操作实际的武器装备,在接近实际的作战环境中进行武装装备试验和作战演练,相当于用真实的作战平台同虚拟的仿真对象进行对抗。上述三种不同类型的仿真基本上都使用了基于离散事件仿真方法建立的仿真模型。

实际上,我们将军事仿真又分为很多层,包括工程层次(Engineering),交战层次(Engagement),使命/作战层次(Mission/Battle),战区/战役层次(Theater/Campaign)。离散事件系统仿真基本上跨越了从装备论证研制,到制造,再到训练,最后到维护保障等各个层次和阶段。


问:请您分享一下从事建模与仿真课题研究的一些经验。

李群教授:我们从事工程类专业的研究,还是要面向解决问题。很多应用不成功不是技术问题,而是没有通过技术真正地解决实际问题。仿真工程学科的特点,是计算机技术、仿真技术和应用领域的交叉融合,研究人员必须动手实践,不能从理论到理论,而一定要从理论到实践,从实践中发现问题和理解问题,知行合一,以知促行,以行求知,以是否解决实际问题作为检验研究成果的唯一标准。


问:谈谈您对建模与仿真学科领域的发展与展望。

李群教授:在我们这个领域有很多的研究新方向,比如,数字孪生、数字化工程、基于模型的系统工程、云仿真技术、Agent仿真、LVC一体化仿真,等等。但总归都需要面向仿真中的实际问题。

首先,相关应用问题很多,但不一定都需要采用很多新技术和新方法,能够基于成熟的计算机、仿真和领域知识把实际问题解决好是建模与仿真学科领域的发展基础。

其次,从技术角度上来说,需要传统与创新相结合。比如,我们现在采用的体系并行分布式仿真方法,便是基于多核CPU、GPU处理器,此外,还有智能化仿真、智能决策优化方法、智能训练环境,等等。


问:谈谈您对于建模与仿真领域人才培养的一些见解。

李群教授:现在大家都知道ChatGPT,可能会因此担心我们的工作被AI取代,这就引申出人才分类的问题。对于ChatGPT的挑战,相对于优秀人才,我们更需要精英人才。AI淘汰的是“知识的容器”,要避免成为“知识的容器”,就一定要面向实践,在实践中发现问题。建模与仿真属于工程领域,需要面向问题,面向实践,面向创新。建模与仿真需要模型抽象(创新)与实践(实验和分析)的融合,需要创造新知识,这是当前AI所不具备的。

当前课程体系应当大幅提高采用工程实践解决复杂问题的相关内容,教学环节也应以学生是否能够利用所学知识解决问题为目标,大幅增加工程实践内容,使学生能够自己发现问题,主动解决问题,再以行求知,避免成为“知识的容器”。


知识链接:

Rubber Duck Debugging(橡皮鸭调试法是软件工程中使用的调试代码方法之一,通过观察小鸭子并向其解释每行代码来调试代码。一边阐述代码的意图,一边观察和体悟实际意图并做相应的调试,这两者之间的任何不协调就会变得很明显,也由此更容易发现其间的问题。这也是李群教授给RubberDuck软件库命名的由来。