首页 百科知识 仿真系统的实现与说明

仿真系统的实现与说明

时间:2022-11-15 百科知识 版权反馈
【摘要】:鉴于Swarm和Repast等仿真平台都可以扩展或支持C++这样的语言,而且,现有的平台和工具中没有提供本研究可以直接套用和借鉴的现成的模型或实例,因此,为了更加灵活和自由地实现所研究的蔬菜供应链仿真模型,便于更好地研究蔬菜质量安全问题及其治理机制,笔者选择C++语言和相应的开发工具C++ Builder来建立仿真系统。下面将对该仿真系统及运行过程作简单的介绍。当运行仿真程序后,进入仿真系统的界面,如图6-2所示。

6.1 仿真系统的实现与说明

6.1.1 仿真系统实现的工具与平台

目前,国外的一些研究机构开发了支持多主体建模仿真的软件工具或平台,如美国桑塔菲研究所(Santa Fe Institute,SFI)开发的Swarm平台,美国芝加哥大学社会科学计算研究中心开发研制的Repast,美国布鲁金斯研究所(The Brookings Institution)的社会与经济动态性研究中心开发的Ascape,美国麻省理工学院(M IT)媒体实验室的StartLogo,丹麦奥尔堡大学商业研究系的Lsd(Laboratory for Simulation Development),俄罗斯XJ Technologies公司研发的AnyLogic,以及美国Sandia国家实验室的Aspen项目等。下面对应用比较广泛的Swarm、Repast和AnyLogic仿真平台进行简单的介绍。[1]

(1) Swarm是美国桑塔菲研究所于1995年开发完成的用于多主体(Agent)模拟复杂系统的软件平台,是基于Objective C和X Windows开发的一种GNU软件[2],可以运行在Solaris、Linux、Windows 95/NT等多种操作系统平台之上,是当前在仿真研究中应用得相当普遍的一个软件。目前,其最新版本为2.2版[3]。该系统是一个用于仿真研究的开放式平台,其建模思想就是让一系列独立的主体(Agent)通过独立事件进行交互,帮助研究多个个体组成的复杂适应系统的行为。通过这些类库,包括许多可重用的类以支持模拟实验的分析、显示和控制,即用户可以使用其提供的类库构建模拟系统使系统中的主体和元素通过离散事件进行交互。由于Swarm没有对模型和模型要素之间的交互作任何约束,所以Swarm可以模拟任何物理系统、经济系统或社会系统。

(2) Repast(Recursive Porous Agent Simulation Toolkit)是由美国芝加哥大学的社会科学计算研究中心与Argonne国家实验室的研究人员共同开发的一种特别为社会科学应用而设计的基于主体的仿真工具。Repast的设计思想是:建立一个像状态机的模拟模型,这种核心状态由它所有的成员的集体性的状态属性组成。这些成员可以被划分为底层结构和表层结构。底层结构是各种各样的模拟基本运行软件块、显示和收集数据软件块。而表层结构是那些模拟模型设计者创立的模拟模型。最新版本的Repast支持用各种语言开发模型(如Java、C++以及Visual Basic等),并可以在不同的操作系统下运行,如Windows、Mac OS以及Linux等。[4]

(3) AnyLogic是俄罗斯的XJTechnologies公司推出的一套复杂系统的混合模拟建模软件,这套模拟工具是基于过去十多年内建模科学和信息技术中出现的最新进展而创建的。AnyLogic的建模技术是完全建立在UML-RT、Java和微积分理论基础之上的,适用于离散模拟、连续模拟、离散-连续混合模拟,以及基于Agent的模拟,其友好的开发环境以及“拖放式建模”方式,使得AnyLogic有着广泛的应用,其具体应用领域包括:商业、供应链、物流业、交通、人力资源、制造业、消费者的行为和教育等。

鉴于Swarm和Repast等仿真平台都可以扩展或支持C++这样的语言,而且,现有的平台和工具中没有提供本研究可以直接套用和借鉴的现成的模型或实例,因此,为了更加灵活和自由地实现所研究的蔬菜供应链仿真模型,便于更好地研究蔬菜质量安全问题及其治理机制,笔者选择C++语言和相应的开发工具C++ Builder来建立仿真系统。C++是一种使用非常广泛的计算机编程语言;它是一种静态数据类型检查的,支持多重编程范式的通用程序设计语言;它支持过程程序设计、数据抽象、面向对象程序设计、泛型程序设计等多种程序设计风格。它能够很好地实现笔者所建立的仿真模型。

6.1.2 仿真试验的环境

仿真试验环境的硬件配置和软件配置的情况如表6-1所列。

表6-1   试验环境

img56

其中,中央处理器CPU处理器的频率要求1.6GHz以上,内存要求512M以上;操作系统使用Windows2000版本以上或Windows XP; IDE(Integrated Development Environment)集成开发环境为C++ Builder 6.0版本以上[5];数据库管理系统为SQL Server 2000版本以上[6];数据处理分析工具用的是微软公司出品的Office系列办公软件中的一个组件Excel电子表格软件。

6.1.3 仿真的总框架

蔬菜供应链模型仿真的总框架可以通过下面的流程图(图6-1)所示。仿真的第一步为仿真初始化,即全局变量或参数的初始化,如仿真结束条件等;接着是对各类主体进行初始化,即按照初始数据来产生各类主体对象的实例;接下来是各类主体进行决策,即各类主体根据自己的不同规则进行决策,如生产、交易、转换和抽检等;当一次完整的交易结束后,需要根据条件判断是否继续交易;当一次完整的实验结束后,需要根据结束条件判断是否继续实验;最后就是统计分析和仿真结束。其中,Timestep为时间步长,这里表示两次完整交易之间的时间间隔,而一次完整交易指的是从农户生产蔬菜到将其卖给批发商,再到批发商将蔬菜卖出,其中包括政府的抽检、罚款以及合同与非合同之间的转换。这里的一个时间步长可以代表现实中的一周、一个月或一年等。其中的一个Run表示一次完整的实验,它由若干个时间步长组成,为了使实验的结果更加稳定和准确,一般会重复进行多次完整的实验,即运行若干个Run。因此,一个完整的仿真实验应该是将一个运行若干期的实验重复若干次,一个期或周期就是一个步长,而一个Run就是一次实验。

img57

图6-1 仿真的流程图

6.1.4 仿真系统的说明

通过C++ Builder和SQL,用C++语言实现蔬菜供应链模型,建立蔬菜供应链仿真系统。下面将对该仿真系统及运行过程作简单的介绍。当运行仿真程序后,进入仿真系统的界面,如图6-2所示。

img58

图6-2 仿真系统的界面图

点击仿真系统界面中工具栏的“交易管理”窗口,选择下拉菜单中的“开始交易”,将进入交易界面,如图6-3所示。

输入部分参数和变量的值后,点击“开始”按钮,就开始交易了,并生成数据。图6-4为第26次交易结束第27次交易开始的情况。

img59

图6-3 仿真系统中交易管理的界面图

img60

图6-4 仿真系统中交易的界面图

当交易结束后,所有数据都存储在SQL数据库中,可以通过查看数据库来获取相关数据,如图6-5所示;也可以点击交易管理界面中的“生产Excel”按钮,即将所有数据自动存储在一个Excel文件中。这样,就可以对数据进行统计和分析了。

图6-5 仿真系统中生产数据的界面图

免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。

我要反馈