基于SWARM的库存系统仿真

时间:2022-07-19 02:04:19

基于SWARM的库存系统仿真

摘要:文章主要介绍了Swarm的主要特点以及利用Swarm进行建模仿真的一般思路,然后给出了库存系统决策分析模型,并对该模型的构建过程进行了分析,试图为研究和使用Swarm提供了一条捷径。

关键词:Swarm;库存系统;建模仿真

一、CAS

CAS理论是遗传算法之父和复杂性科学的先驱者之――Holland在1994年提出的。其将系统成员看作是具有自身目的和主动性、积极的“活”主体。主体能够与环境以及其他主体进行相互作用,在持续不断的相互作用中,不断地“学习”或“积累经验”,并且根据学到的经验改变自身的结构和行为方式。整个系统的演变和进化,包括新层次的产生、分化和多样性的出现,新的、聚合而成的、更大的主体等等,都是在这个基础上出现的。更重要的CAS理论认为正是主体的这种主动性以及它与环境间反复的、相互的作用,才是系统发展和演化的基本动因。大量的研究事实表明,由使用性产生的复杂性,即所谓的复杂适应系统确实是一大类十分重要、非常常见的复杂系统。

二、Swarm

Swarm实际是一个用Object-C(一种面向对象的C语言)语言编写的类库集。它是一个自由软件,其源代码是开放的,并且Swarm的使用者之间能方便进行自由交流,实现研究成果共享。Swarm最初是为支持X Window系统的Unix操作系统开发的。1995年了第一个Beta版。1997年1月了Swarm 1.0版本,该版本能在Solaris和Linux操作系统上运行。随后经过较小的修改,该版本能DEC Alpha平台和Unix操作系统上运行。1998年4月Swarm 1.1版本,由于其引入了Cygnus Win32包,使其能在Miscrosoft Windows95/98/NT上运行。1999年年底,了支持Java语言的Swarm 2.0和2.0.1版本。这样,Swarm可以同时支持Object-C和Java变成,使其越来越利于众多非计算机专业研究人员的使用,因此应用日益广泛。目前,Swarm Development Group(SDG)的首要任务是将Swarm进一步通用化,使之支持更多操作系统,并能采用更多的计算机语言进行编程。

(一)Swarm的主要特点

1、面向对象的设计思想。Swarm是一个多主体建模仿真框架,多主体建模与面向对象的分析和设计思想有一定的相似之处。在面向对象的分析与设计(OOA、OOD)中,定义了各种类,这些类在程序运行时创建若干个类的实例,称为对象。每个对象包括描述对象自身状态的实例变量,称为属性(Attribute),以及由类定义的描述对象行为的方法(Method)。对象之间通过发送和接收消息来通信。Swarm本身就是使用面向对象方法和技术的一个设计良好的类库。

2、离散时间仿真。Swarm仿真模型实质上是离散时间的仿真模型:仿真时钟以离散的方式推进,模型中得主体通过在离散的时刻发生的事件来改变自身的状态并与模型中的其他主体进行交互。由于模型中的每个主体都又若干个事件,主体之间通过离散事件进行交互,所以这些事件之间有一定的引发(一个事件的发生引起另一个事件的发生)和时序关系(事件之间在时间上的关系)。

3、探测器技术与图形化用户界面。在系统仿真中,观察模型的运行状态对运行结果的分析非常重要。Swarm使用“探测器”(Probe)技术从运行的模型中提取数据,并提供了图形化的用户界面来显示运行结果。探测器实际上是Swarm类库中事先定义好的一系列类。Swarm为用户提供了一个非常直观的图形输出界面。

(二)Swarm仿真程序的层次结构及类库

Swarm仿真程序包括:ModelSwarm(模型Swarm)、ObserverSwarm(观察者Swarm)和Agent(仿真主体)。其中的ModelSwarm和ObserverSwarm都是Swarm类的子类,它们二者建立了Swarm仿真程序的框架结构。仿真主体对象则对应所要模拟的真实系统中有代表性的微观主体和这些个体活动的环境,主体对象是SwarmObject类的子类,继承SwarmObject的一些既有方法以提供对探测器和内存管理的支持。

Swarm以下核心类库:Defobj、Collection、Random、Tkobjc、Swarmobject、Activity和Smitools。

三、Swarm建模实例

(一)库存系统概述

一般的库存系统,主要包括库存状态、补充和需求。库存状态是指存货随着时间的推移而发生的盘点数量的变化,存货数量随着需求过程而减少,又随补充过程而增加。需求是系统的输出,它可以有不同的形式,包括连续需求、间断需求、已知的确定性需求和随即需求等,一般来说不受控制。给定了需求形式,系统输出特性也就确定了。补充是系统的输入,补充策略根据系统的目标和需求方式来确定,是库存系统管理决策的关注重点。

不同的需求与补充就决定系统的库存状态,它是一个随时间变化的动态过程。库存系统的研究就是为了求解系统的动态库存状态,并根据库存状态变化所引起的成本进行科学的管理和决策。

本文模拟的是多周期提前订货有折扣的库存系统,比较接近现实的库存系统,订货有延迟,需要提前订货,当订货数量超过某定值时可享受折扣。本模型采取的订货策略是每次订货发出,尚未到货时不继续发出订货单。

(二)模型设计

在本库存仿真系统中,仅一类个体――库存。仿真模型的参数设计(以下列出主要参数):

1、需求量D为离散随即变量。

2、订货提前期order_before_day为离散随即变量,在系统中随即产生(0,1]之间的随数r,若r∈(0,0.125]时,则order_before_day=1;若r∈(0.125,0.5]时,则order_before_day=2;若r∈(0.5,1]时,则order_before_day=3。

3、折扣率。每次订货量超过一个固定值时,可以享受25%的折扣。

4、最大库存(max_stock)。

5、最小库存(orderPoint),即定货点,当库存数量小于最小库存时,开始订货。

6、缺货损失(scarcityLosses)。

7、订货费用(orderCost)。

8、保管费用(reserveCost)。

9、折扣率(discount_rate)。

10、缺货数量(scarcity_num)。

11、到货的天数(goods_arrive_day)。

12、当期的总费用(periodActualCost)。

主体的行为主要有:

订货行为,当库存不够时,发出订货单。

需求行为,根据产生的随机变量,决定需要的货物的个数。计算当前库存量,计算缺货量。

到货行为,此到货行为中,主要完成参数状态的修改,计算库存量。

最后结算本期费用。计算相关费用,如保存费用、存储费用、缺失损失等。

(三)仿真实现

依据Swarm仿真程序的层次结构,一个Swarm一般由两部分组成:一系列相关联的对象的集合以及这些对象的动作序列表,Swarm仿真程序就是围绕Swarm进行组织的。

1、在ModelSwarm对象中,首先,定义主体――库存,以及主体的数量,通过buildObjects方法来创建对象。其次,通过buildActions方法为ActionGroup的实例对象赋值来规定主体行为的执行顺序和触发条件,然后在Schedule对象中定义ActionGroup第一次执行的时间和各次执行的时间间隔。此外,ModelSwamr还包括一系列输入和输出参数。如主体个数的初始值、库存的最大值等。输出包括当前状态及运行结果等,各初始值如图1所示。

2、ObserverSwarm在仿真过程中,检测模型的运行过程并记录模型的输出结果。ObserverSwarm通过探测器(Probe)接口观察ModelSwarm对象中各个个体状态的变化,并以图形的方式输出。

本模型中初始产生主体个数为5,运行100期,每期代表真实的时间为1天,初始库存90,最大库存140,最小库存60,观察100期内总费用,运行结果如图2所示。

改变策略,最大库存设置为250,其他初始参数不变,运行程序。结果如图3所示。

四、结论

从以上模型的结果可以总结出,改变策略后,在同样的运行周期内,可以节省费用,因为第1种策略最大库存是140,在这种情况下,订货的数量最大不超过140,享受不了打折的优惠,改变策略后,某些时候可以享受到优惠。可以根据具体的情况,调整订货的策略,也可以改变模型的初始值。从对Swarm本身以及库存系统的仿真模型的研究表明,Swarm很适合基于个体Agent的复杂适应系统仿真建模。另外,由于swarm源代码开放以及提供了标准接口,使其具有良好的可扩展性,更易于实现特定的目标模型。

参考文献:

1、萱慧玉,张发.复杂系统仿真及应用[M].清华大学出版社,2008.

2、罗批,司光亚,胡晓峰,杨镜宇.Swarm及其平台下建特定民意模型的探讨[J].系统仿真学报,2004(16).

3、孙建,叶民强.基于主体的SWARM建模分析及应用[J].福建电脑,2002(11).

4、方美琪,张树人.复杂系统建模与仿真[M].中国人民大学出版社,2005.

(作者单位:北京林业大学经济管理学院。其中,刘娜为博士研究生)

上一篇:商业银行会计信息披露制度的相关问题探讨 下一篇:浅析药品集中配送