前言
笔者曾从事过一段时间的仿真行业,对计算机仿真,有一定理解。现对仿真问题进行总结。
一、仿真及其意义
仿真(Simulation),是指对真实世界的模仿;理论上,一切对真实世界和现实的模仿和模拟,都是仿真。
从仿真的概念出发,其实我们可以发现仿真无处不在;我们对现实的模仿和模拟,无处不在。
仿真的意义在于:通过模仿和模拟,让人类理解现实世界,并检验现实世界。
二、仿真与建模
要想对现实进行模拟,必须进行建立模型。
模型的意义是:对现实进行模仿,并达到抽象上的确认性和辨别性。
模型建立,通常有几个步骤:
1)采集数据;
2)数据统一化、格式化和数据清洗;
3)模型建立;
4)检验并优化模型。
模型建立,最关键是有确认性和辨别性。研究确认性和辨别性的概念是熵;只要一个模型的熵足够大,就可以认为这个模型是成功的。
在建立模型有个“奥康姆剃刀原则”,就是同等情况下,如果能用更简单的模型来实现,那么就不要用比较复杂的模型来实现。
我们建模,让现实世界和仿真世界,具有映射关系,并可让仿真世界反映现实世界即可。
三、大型仿真系统:分布式仿真
现在,仿真项目越来越复杂,越来越宏大。仿真运行的场景,在仿真术语中,称为想定。现实世界是分开运行的;由于计算机可以对分布式进行支持,大型仿真项目,也主要在分布式平台上运行。
分布式仿真平台,具有如下问题:
1)一致性问题:分布式的主要问题,主要是各个节点之间不一致,包括时间不一致,数据不一致。这个问题可以牵涉很多分布式的著名问题,如CAP原理,拜占庭将军问题,分布式时间问题;
2)等节点问题:在分布式中,每一个节点,都是平等的;如何对节点进行加入和分离,是节点,让分布式网络更加合理扩充,是一个重要的问题;
3)时序问题:一致性问题的延伸,主要指在通信节点之间,传送数据的时序性问题。
对于现在的仿真市场,目前的问题在于:
1)没有足够的能力支持分布式;
2)分布式支持能力不够;
3)一致性问题和时序性问题混乱:负责底层通信的接口,如HLA的RTI、DDS,都只是通信的通道,而没有保证一致性和时序性。
我的个人建议如下;
1)针对分布式仿真,提供虚拟化节点,让一切在节点上有一致性,并保证一致性基础上的差异性;
2)提供保证一致性上和时序性的机制和接口。
四、仿真与真实配件的结合
目前,仿真正在和真实配件相结合。仿真在建模的基础上,提供了一系列应用场景。如:
1)军事场景的仿真游戏;
2)VR与旅游;
3)个人射击游戏和个人赛车游戏;
4)动画与娱乐产业。
底层模型与真实场景相结合,让使用者获得了更好的体验。