论文部分内容阅读
摘 要:蚁群算法是一种新兴高效的人工智能优化方法。在企业投资规划中应用蚁群算法,可得到全局优化的解,从而更有效地利用资本,为企业创造更多的利润。
关键词:蚁群算法;全局优化;投资规划
中图分类号:F830.59 文献标识码: A 文章编号:1003-3890(2008)08-0067-03
企业投资规划受到许多条件制约,除了投资预算额的限制外,还存在一些错综复杂的经济限制因素,各种因素之间存在着相互制约的逻辑关系。因此,在我国当前的投资宏观调控中,尤其是在现在货币从紧的政策下,怎样科学地确定投资方案,用有限的资金创造最大的价值越来越引起人们的普遍关注。对这样的复杂非线性问题,人工智能的方法比较擅长解决,比如遗传算法(Genetic Algorithms,GA)[1],GA是一种模拟自然界优胜劣汰的算法。虽然GA有它的优点,但缺点也很明显,最常见的被叫作“遗传漂变(Genetic Drift)”——算法收敛于并不是全局优化的点[2]。而蚁群算法则能得到全局优化的解,从而较好地解决企业投资规划问题。
一、基本蚁群算法
蚁群算法(ant colony algorithm,ACA)是一种新型的后启发式智能模拟算法,这种算法同其他模拟算法一样,都是从对自然界的观察中受到启发而产生的,它的基本思想是模仿蚂蚁依赖信息素进行通信而显示出的社会性行为,它是一种随机的通用试算法,一种能够对复杂问题给出近似解的算法。此方法首先由Colorni等提出[3],用来解决旅行商问题(TSP)。TSP问题是说一个销售员从一个城市出发选择一条最短的路程分别拜访一次所有他的客户所在城市然后回到出发点。
ACA的概念是基于自然界中真实蚂蚁觅食的行为,纵然存在很多条路,生物学家们发现蚂蚁总能够发现从洞穴到食物来源间最短的路程。蚂蚁之间交流的媒介被称为信息素(Pheromone),蚂蚁会在走过的路上留下这些信息素用以告诉后来者,一条路上信息素越多,越会吸引蚂蚁过来。这些信息素会随着时间推移蒸发,但同一条路上的信息素的浓度也会因为其他蚂蚁走过而增加。随后而来的蚂蚁会倾向于选择信息素较高的那条路前进,从而信息素少的路程会随着时间推移变得越来越不吸引蚂蚁,直至被放弃;而信息素最高的那条路程则会吸引几乎所有的蚂蚁,这条路往往会是从洞穴到食物之间最短的那条路[4]。ACA的机制在图1中得到了形象的体现:起初阶段,蚂蚁会随机地选择从洞穴到食物的路程,因此几乎所有的路上都会有蚂蚁在搬运食物;但是,在较短路上的蚂蚁会较早回来,从而在相同的时间内,在这条路上会有较多的蚂蚁来回行走,所以,这条路上的信息素会比其他较长路程上的要多,而浓度较高的信息素会吸引更多的蚂蚁,这些情况在第二和第三阶段中得以体现。到最后,几乎所有蚂蚁都在同一条路径上搬运食物,这条路就是目前寻找到的最佳路径。然而,我们注意到很小一部分蚂蚁仍然会在其他路上行走,这表示,这些蚂蚁在探索其他可能更佳的路程,这就保证了整个系统的最优化和多样化。
Solimanpur等学者认为,在这个算法中每一只蚂蚁都被看作是1个计算单元,这个单元并不是严格地表现为真实蚂蚁的行为[6]。比如人工蚂蚁不仅能够记忆它们走过的路径并且在选择路径时包括了启发式信息(Heuristic Information)。ACA被广泛地用于解决各种各样的问题,除了TSP,蚁群算法还应用于flowshop问题)[7],建设项目成本优化(Cost Optimization)问题等方面[8]。
二、蚁群算法在企业一般投资规划中的应用
常见的企业投资模型可以简单地描述如下:某企业在一个n年计划期内诸年的投资预算额为bi (i=1,2,…n),有m个不同的建设项目需要投资。已知dij表示第i年第j个投资项目每元投资所获的利润(j=1,2,…m)。目标是在这个计划期内总的利润达到最大。解决好这样的问题将会为企业带来较好的经济收益。
表1显示了待确定的投资方案,其中变量Xij为第i年给第j个投资项目所投放的资金。
求Smax=d11X11+d12X12+…+dimXim+…+dn1Xn1+dn1Xn2+…+dnmXnm=ΣΣdijXij
且满足约束条件:ΣXij≤bi(i=1,2,…,n),式中:dij为第i年第j个项目投放一万元所获得的利润;Smax为最大总利润;bi为某个项目的总投资额;Xij≥0(i=1,2,…,n;j=1,2,…,m)。其中,各投资项目在第i年所需的投资额总和不能超过第i年的投资预算额,投资额不能为负数。
上述模型是一般的投资规划模型,在实际应用中可将上述模型略作修改,推广应用到其他经济活动中去(如:建设项目的选择、外资的利用)。结合最优化问题的要求,可以对基本蚁群算法做些修改来适应此类问题的解决。
下面以一个具体投资计划为案例,讨论蚁群算法的具体应用。某企业在3年计划期需要给下面4个开发项目投资:项目A从第1年到第3年每年年初都可以投资,预计每年每万元投资可以从投资项目中获得利润0.2万元,每年又可以重新将当年所得本利纳入投资计划。项目B需要在第1年年初投资,经过2年每万元投资可获利0.5万元,又可以重新将所获资金纳入投资计划,但用于该项目的最大投资额不得超过20万元。项目C需要在第2年年初投资,经过2年每年每万元投资可获利0.6万元,但用于这个项目投资额不得超过10万元。项目D需要在第3年投资,每万元投资可获利0.4万元,但用于这个项目的投资额不得超过15万元。在整个计划期内,该企业可供投资的金额为30万元。需要解决的是采用何种投资方案才能使该企业在整个投资计划内获得最大利润。
这是一个确定最优投资方案问题,满足这个投资规划的可行方案有很多,由于受各种投资条件的限制,使得用一般方法很难找到最优的投资方案,这里我们用蚁群算法这一人工智能的方法去找一个最佳的投资方案。
设变量XiA(i=1,2,3)表示第i年年初给A项目的投资额;类似的XiB,XiC,XiD分别表示第i年年初给项目B、C、D的投资额。本投资计划的目标是各项目在不同投资期所获得利润的条件限制下总利润达到最大。所以目标函数为:
Smax=0.2X1A+0.2X2A+0.2X3A+0.5X1B+0.6X2C+0.4X3D(1)
约束条件可表示为:
X1A+X1B≤30
X2A+X2C≤30-X1B+0.2X1A
X3A+X3D≤30+0.5X1B+0.2X1A+0.2X2A-X2C
X2B≤20X2C≤15X3D≤10
X1A≥0,X2A≥0,X3A≥0,X1B≥0,X2C≥0,X3D≥0
约束条件可以整理简化为:
X1A+X1B≤30
-0.2X1A+X2A+X1B+X2C≤30
-0.2X1A-0.2X2A+X3A-0.5X1B+X2C+X3D≤30
X2B≤20X2C≤15X3D≤10
X1A≥0,X2A≥0,X3A≥0,X1B≥0,X2C≥0,X3D≥0
现改进蚁群算法使之应用于这个优化模型,根据上述基本蚁群算法的要素,可以作如下几步调整:
第一步,每1年的每个项目的投资额都有t=1至30万元可供选择,蚂蚁从变量s=X1A走至t=X3D选择不同的投资额,在满足各个约束条件的情况下使目标函数最大。
第二步,蚂蚁选择投资额的准则是根据这个额度上的信息素多少,信息素越多,选择这个选项的几率越大;如式(2)所示:
在式2中,pst(k)为第k只蚂蚁在变量s选择额度t的机率;?子st(k)为信息素;?琢为信息参数
更新信息素,当所有蚂蚁走完所有子项目,即完成一个循环,所有被走过的选项的信息素作如下更新,如式(3)所示:
?子st=(1-z)·?子stz·?驻?子
在式(3)中,z为信息挥发系数;?驻?子为信息反馈系数。
第三步,算法结束条件。我们选择一定的循环次数。
为了方便计算机实现,这里给出此模型流程图(如图2所示)。此案例用VB编程实现得到结果为26.9万元,表2所示数据即为相应的投资额度。
笔者利用一种新的优化算法——蚁群算法(ACA)建立了一个计算模型来解决企业投资规划问题。根据ACA的本质特性,文章还建立了对于此问题的程序流程图,编制了易于应用的计算程序,并利用实际工程算例验证了模型的有效性。从算例的结果来看,基于ACA的模型能够较好地解决投资优化问题,从而更有效地利用资本,为企业创造更多的利润。
蚁群算法在优化问题上有很强的解决能力,除此之外,还在建设项目计划,钢结构或者网架设计等领域也都有很广泛的应用。笔者只是应用了蚁群算法中的基本算法,对不同问题还可以对算法做一些相应的调整以更有效地解决问题。
参考文献:
[1]张子力.基于遗传算法的工程项目方案优选模型[J].武汉大学学报(工学版),2004,(6).
[2]Zhang, Y. (2007). “Optimizing construction time and cost using the ant colony system techniques”. M.Phil Thesis, The University of Hong Kong, Hong Kong
责任编辑:武玲玲
责任校对:何 军
Decision Model Research on Enterprise Investment Optimization
Li Yunsheng
(Hebei Branch of China Development Bank, Shijiazhuang 050051, China)
Abstract: Ant colony algorithms (ACA) is a kind of efficient optimizing approach which was developed in recent years. Using ACA in the field of enterprise investment can get the global optimization resolection, and then can utilize efficiently the capital and create more profit to enterprises.
Key words: ant colony algorithms (ACA); global optimization; investment planning
关键词:蚁群算法;全局优化;投资规划
中图分类号:F830.59 文献标识码: A 文章编号:1003-3890(2008)08-0067-03
企业投资规划受到许多条件制约,除了投资预算额的限制外,还存在一些错综复杂的经济限制因素,各种因素之间存在着相互制约的逻辑关系。因此,在我国当前的投资宏观调控中,尤其是在现在货币从紧的政策下,怎样科学地确定投资方案,用有限的资金创造最大的价值越来越引起人们的普遍关注。对这样的复杂非线性问题,人工智能的方法比较擅长解决,比如遗传算法(Genetic Algorithms,GA)[1],GA是一种模拟自然界优胜劣汰的算法。虽然GA有它的优点,但缺点也很明显,最常见的被叫作“遗传漂变(Genetic Drift)”——算法收敛于并不是全局优化的点[2]。而蚁群算法则能得到全局优化的解,从而较好地解决企业投资规划问题。
一、基本蚁群算法
蚁群算法(ant colony algorithm,ACA)是一种新型的后启发式智能模拟算法,这种算法同其他模拟算法一样,都是从对自然界的观察中受到启发而产生的,它的基本思想是模仿蚂蚁依赖信息素进行通信而显示出的社会性行为,它是一种随机的通用试算法,一种能够对复杂问题给出近似解的算法。此方法首先由Colorni等提出[3],用来解决旅行商问题(TSP)。TSP问题是说一个销售员从一个城市出发选择一条最短的路程分别拜访一次所有他的客户所在城市然后回到出发点。
ACA的概念是基于自然界中真实蚂蚁觅食的行为,纵然存在很多条路,生物学家们发现蚂蚁总能够发现从洞穴到食物来源间最短的路程。蚂蚁之间交流的媒介被称为信息素(Pheromone),蚂蚁会在走过的路上留下这些信息素用以告诉后来者,一条路上信息素越多,越会吸引蚂蚁过来。这些信息素会随着时间推移蒸发,但同一条路上的信息素的浓度也会因为其他蚂蚁走过而增加。随后而来的蚂蚁会倾向于选择信息素较高的那条路前进,从而信息素少的路程会随着时间推移变得越来越不吸引蚂蚁,直至被放弃;而信息素最高的那条路程则会吸引几乎所有的蚂蚁,这条路往往会是从洞穴到食物之间最短的那条路[4]。ACA的机制在图1中得到了形象的体现:起初阶段,蚂蚁会随机地选择从洞穴到食物的路程,因此几乎所有的路上都会有蚂蚁在搬运食物;但是,在较短路上的蚂蚁会较早回来,从而在相同的时间内,在这条路上会有较多的蚂蚁来回行走,所以,这条路上的信息素会比其他较长路程上的要多,而浓度较高的信息素会吸引更多的蚂蚁,这些情况在第二和第三阶段中得以体现。到最后,几乎所有蚂蚁都在同一条路径上搬运食物,这条路就是目前寻找到的最佳路径。然而,我们注意到很小一部分蚂蚁仍然会在其他路上行走,这表示,这些蚂蚁在探索其他可能更佳的路程,这就保证了整个系统的最优化和多样化。
Solimanpur等学者认为,在这个算法中每一只蚂蚁都被看作是1个计算单元,这个单元并不是严格地表现为真实蚂蚁的行为[6]。比如人工蚂蚁不仅能够记忆它们走过的路径并且在选择路径时包括了启发式信息(Heuristic Information)。ACA被广泛地用于解决各种各样的问题,除了TSP,蚁群算法还应用于flowshop问题)[7],建设项目成本优化(Cost Optimization)问题等方面[8]。
二、蚁群算法在企业一般投资规划中的应用
常见的企业投资模型可以简单地描述如下:某企业在一个n年计划期内诸年的投资预算额为bi (i=1,2,…n),有m个不同的建设项目需要投资。已知dij表示第i年第j个投资项目每元投资所获的利润(j=1,2,…m)。目标是在这个计划期内总的利润达到最大。解决好这样的问题将会为企业带来较好的经济收益。
表1显示了待确定的投资方案,其中变量Xij为第i年给第j个投资项目所投放的资金。
求Smax=d11X11+d12X12+…+dimXim+…+dn1Xn1+dn1Xn2+…+dnmXnm=ΣΣdijXij
且满足约束条件:ΣXij≤bi(i=1,2,…,n),式中:dij为第i年第j个项目投放一万元所获得的利润;Smax为最大总利润;bi为某个项目的总投资额;Xij≥0(i=1,2,…,n;j=1,2,…,m)。其中,各投资项目在第i年所需的投资额总和不能超过第i年的投资预算额,投资额不能为负数。
上述模型是一般的投资规划模型,在实际应用中可将上述模型略作修改,推广应用到其他经济活动中去(如:建设项目的选择、外资的利用)。结合最优化问题的要求,可以对基本蚁群算法做些修改来适应此类问题的解决。
下面以一个具体投资计划为案例,讨论蚁群算法的具体应用。某企业在3年计划期需要给下面4个开发项目投资:项目A从第1年到第3年每年年初都可以投资,预计每年每万元投资可以从投资项目中获得利润0.2万元,每年又可以重新将当年所得本利纳入投资计划。项目B需要在第1年年初投资,经过2年每万元投资可获利0.5万元,又可以重新将所获资金纳入投资计划,但用于该项目的最大投资额不得超过20万元。项目C需要在第2年年初投资,经过2年每年每万元投资可获利0.6万元,但用于这个项目投资额不得超过10万元。项目D需要在第3年投资,每万元投资可获利0.4万元,但用于这个项目的投资额不得超过15万元。在整个计划期内,该企业可供投资的金额为30万元。需要解决的是采用何种投资方案才能使该企业在整个投资计划内获得最大利润。
这是一个确定最优投资方案问题,满足这个投资规划的可行方案有很多,由于受各种投资条件的限制,使得用一般方法很难找到最优的投资方案,这里我们用蚁群算法这一人工智能的方法去找一个最佳的投资方案。
设变量XiA(i=1,2,3)表示第i年年初给A项目的投资额;类似的XiB,XiC,XiD分别表示第i年年初给项目B、C、D的投资额。本投资计划的目标是各项目在不同投资期所获得利润的条件限制下总利润达到最大。所以目标函数为:
Smax=0.2X1A+0.2X2A+0.2X3A+0.5X1B+0.6X2C+0.4X3D(1)
约束条件可表示为:
X1A+X1B≤30
X2A+X2C≤30-X1B+0.2X1A
X3A+X3D≤30+0.5X1B+0.2X1A+0.2X2A-X2C
X2B≤20X2C≤15X3D≤10
X1A≥0,X2A≥0,X3A≥0,X1B≥0,X2C≥0,X3D≥0
约束条件可以整理简化为:
X1A+X1B≤30
-0.2X1A+X2A+X1B+X2C≤30
-0.2X1A-0.2X2A+X3A-0.5X1B+X2C+X3D≤30
X2B≤20X2C≤15X3D≤10
X1A≥0,X2A≥0,X3A≥0,X1B≥0,X2C≥0,X3D≥0
现改进蚁群算法使之应用于这个优化模型,根据上述基本蚁群算法的要素,可以作如下几步调整:
第一步,每1年的每个项目的投资额都有t=1至30万元可供选择,蚂蚁从变量s=X1A走至t=X3D选择不同的投资额,在满足各个约束条件的情况下使目标函数最大。
第二步,蚂蚁选择投资额的准则是根据这个额度上的信息素多少,信息素越多,选择这个选项的几率越大;如式(2)所示:
在式2中,pst(k)为第k只蚂蚁在变量s选择额度t的机率;?子st(k)为信息素;?琢为信息参数
更新信息素,当所有蚂蚁走完所有子项目,即完成一个循环,所有被走过的选项的信息素作如下更新,如式(3)所示:
?子st=(1-z)·?子stz·?驻?子
在式(3)中,z为信息挥发系数;?驻?子为信息反馈系数。
第三步,算法结束条件。我们选择一定的循环次数。
为了方便计算机实现,这里给出此模型流程图(如图2所示)。此案例用VB编程实现得到结果为26.9万元,表2所示数据即为相应的投资额度。
笔者利用一种新的优化算法——蚁群算法(ACA)建立了一个计算模型来解决企业投资规划问题。根据ACA的本质特性,文章还建立了对于此问题的程序流程图,编制了易于应用的计算程序,并利用实际工程算例验证了模型的有效性。从算例的结果来看,基于ACA的模型能够较好地解决投资优化问题,从而更有效地利用资本,为企业创造更多的利润。
蚁群算法在优化问题上有很强的解决能力,除此之外,还在建设项目计划,钢结构或者网架设计等领域也都有很广泛的应用。笔者只是应用了蚁群算法中的基本算法,对不同问题还可以对算法做一些相应的调整以更有效地解决问题。
参考文献:
[1]张子力.基于遗传算法的工程项目方案优选模型[J].武汉大学学报(工学版),2004,(6).
[2]Zhang, Y. (2007). “Optimizing construction time and cost using the ant colony system techniques”. M.Phil Thesis, The University of Hong Kong, Hong Kong
责任编辑:武玲玲
责任校对:何 军
Decision Model Research on Enterprise Investment Optimization
Li Yunsheng
(Hebei Branch of China Development Bank, Shijiazhuang 050051, China)
Abstract: Ant colony algorithms (ACA) is a kind of efficient optimizing approach which was developed in recent years. Using ACA in the field of enterprise investment can get the global optimization resolection, and then can utilize efficiently the capital and create more profit to enterprises.
Key words: ant colony algorithms (ACA); global optimization; investment planning