求解证券最优组合的遗传算法_遗传算法论文

遗传算法求解最佳证券投资组合,本文主要内容关键词为:算法论文,投资组合论文,证券论文,此文献不代表本站观点,内容供学术参考,文章仅供参考阅读下载。

1前言

证券投资是证券市场运行环节中的重要组成部分。作为最重要的证券投资理论之一的证券组合理论,通过数学方法来分析计算由不同证券构成的证券组合,作为一个整体的风险与收益关系,进而求出一个最佳的证券组合。通常意义下,求解最佳证券组合问题的关键是解一个满足多个约束条件下的极值问题,从数学的角度看,可归入求解一类二次规划问题,具有标准的解法,但实际的求解过程往往十分繁杂,而且对求解者的数学理论基础有较高要求。因此,如果能够寻求到一种新求解方法,使求解过程更简洁、直观,便于操作,将有助于证券组合理论在实际工作中的推广应用。

近几十年来,随着生命科学与工程科学的相互交叉、渗透和促进,形成了一种用机器模拟自然过程来求解复杂问题的随机搜索算法——进化算法。遗传算法作为进化算法的一种,借鉴达尔文进化论中“适者生存、不适应者淘汰”的自然选择和自然遗传机理,其本质是求解问题的一种高效、并行的全局优化搜索方法,它能在搜索过程中自动获取和积累有关搜索空间的知识,并自适应地控制搜索过程以求得最优解。目前遗传算法已应用到许多领域,在求解科学研究和工程技术中各种组合优化搜索与优化计算问题方面取得了成功,已确定了它在21世纪智能计算技术中的关键地位。

遗传算法作为一种新的全局优化搜索算法,以其简单通用、鲁棒性强、适于并行处理以及应用范围广等显著特点,已在解决诸多典型组合优化问题中显示了良好的性能和效果。由于最佳证券组合的求解实际上属于一类组合优化问题,所以可以尝试利用遗传算法来求解最佳证券组合问题。

2遗传算法框架

遗传算法是模拟生物进化过程的计算模型,是一个以适应度函数(或目标函数)为依据,通过对群体个体施加遗传操作实现群体内个体结合重组的迭代处理过程。在这一过程中,群体个体(问题的解)一代一代地得以优化并逐渐逼近最优解。

遗传算法是具有“生成加检测”的迭代过程的搜索算法。它的基本处理流程如图1所示。

图1遗传算法基本处理流程图

由图可见,遗传算法是一种群体性操作,该操作以群体中的所有个体为对象。选择、交叉和变异是遗传算法的三个主要操作算子,它们构成了所谓的遗传操作,使遗传算法具有了其它传统方法所没有特性。遗传算法的实现涉及5个基本要素:参数的编码;初始群体的设定;评估函数即适应度函数的设计;遗传操作的设计和算法控制参数的设定(主要是指群体大小和使用遗传操作的概率等)。这五个要素构成了遗传算法的核心内容。

由于遗传算法不能直接处理解空间的解数据,因此必须通过编码将它们转换成遗传空间的解个体串,这一转换操作称为编码。大多数问题都可以采用基于(0,1)字符集的二集编码形式,如可以将十进制的(36)10转换二进制的串(100100)2,反过来也可以将一个二进制串解码为一个十进制数。

遗传操作是对众多个体同时进行的。这众多的个体组成了群体,第一代群体称为初始群体,初始群体中的个体都是通过随机方法产生的。在遗传算法处理流程中,以初始群体为起点、一代代进化直到按某种进化停止准则终止进化过程,由此得到最后一代。群体中的个体数目称为群体规模,在实际应用中,需保持适度的群体规模。

遗传算法在进化搜索中基本不用外部信息,仅用评估函数即适应度函数来评估个体或解的优劣,并作为以后遗传操作的依据。在具体问题中,适应度函数的设计要结合求解问题本身的要求而定,通常可用目标函数作为适应度函数。

遗传操作是模拟生物基因遗传的操作,它的任务就是对群体中的个体按照适应度评估施加一定的操作,从而实现优胜劣汰的进化过程。从优化搜索的角度而言,遗传操作可使问题的解一代又一代地优化,并逼近最优解。

从群体中选择优胜的个体、淘汰劣质个体的操作称为选择。选择操作是建立在个体适应度评估基础上的,选择的目是把优化的个体直接遗传到下一代或通过配对交叉产生新的个体再遗传到下一代。常用的选择方法有适应度比例方法、最佳个体保存方法等。

交叉在遗传操作中起核心作用,它是指两个父代个体的部分结构加以替换重组而生成新个体的操作。通过交叉,遗传算法的搜索能力得以飞跃提高。对于二值编码而言,交叉操作按预先设定的交叉概率P。对经过随机配对的个体设定交叉点,然后再对这些点前后的配对个体的部分结构进行互换,并生成两个新个体。以基本的一点交叉为例:

配对个体

 交叉点

 交叉

个体A1001 111→1001000新个体A'

个体B0011 000→0011111新个体B'

变异是指以事先设定的变异概率P[,m]来对个体串的某些基因座上的基因值作变动。对于二值编码而言,变异操作就是把基因值取反,即0→1或1→0。遗传算法导入变异的目的主要是为了加强算法的局部搜索能力以及维持群体的多样性。

一般来说,遗传操作的终止条件是:若发现个体的进化已趋于稳定状态,即发现某一代中占一定比例的个体已完全是同一个体,则可认为已找到最优解。

3遗传算法求解最佳证券组合

我们用一个简单的例子来说明用遗传算法求解最佳证券组合的工作过程。

设证券组合P由三只风险证券组成,该组合可表示为P=(x[,1]、x[,2]、x[,3]),其中x[,1]、x[,2]、x[,3]分别表示这三只证券在组合中所占的投资资金比例,若三只证券各自的期望收益率E(r)和风险(用r的方差σ[2](r)表示)分别为:

E(r[,1])=5.8%,E(r[,2])=8.8%,

E(r[,3])=7.9%;

σ[2](r[,1])=4.0%,σ[2]=11.8%,

σ[2]=(r[,3])=8.1%

此外该证券组合中任意两只证券间的协方差分别为:

合的期望收益率为E(r[,p])的条件下,利用遗传算法求组合P=(x[,1]、x[,2]、x[,3]),使风险σ[2,p]最小,亦即考虑:

求p=(x[,1]、x[,2]、x[,3]),使目标函数取最小值。

任意设定以上证券组合的期望收益率为E(r[,p])=6.8%,由求解问题的限制条件可知:

0.058x[,1]+0.088x[,2]+0.079(1-x[,1]-x[,2])=0.068,解得0.53≤x[,1]≤0.67,为了方便采用最常见的二进制无符号整数表示形式来对解数据x[,1]进行编码,将x[,1]放大100倍,有53≤x[,1]≤67,由此确定x[,1]的编码长度为7位,如x[,1]=56可用编码表示为x[,1]=0111000。

在x[,1]的值确定后,依照限制条件可推得x[,2]和x[,3]的值。

将求解问题的目标函数作为遗传操作的评估准则,即适应度函数,代入数值后有:

f(x[,1]、x[,2]、x[,3])=0.04x[2,1]+0.118x[2,2]+0.081

x[2,3]+0.036x[,1]x[,2]+0.044x[,1]x[,3]+0.148x[,2]x[,3]

设群体规模为n=4,根据x[,1]的取值范围,任意确定4个解个体构成初始群体如下:

初始群体确定后,接下来要进行的是遗传操作。选择、交叉、变异是三个基本的遗传算子,它们的共同特点是:随机化操作、受操作概率控制、操作方法随具体求解问题的不同而异。

选择操作是建立在解个体适应度评估基础上的。针对上面的求解问题,我们采用最佳个体保存方法进行选择操作。该方法的思想是把群体中适应度最佳的个体不进行配对交叉而直接复制到下一代中。采用这种方法的优点是进化过程中,某一代的最优解可不被交叉和变异操作所破坏。在复制最佳个体到下一代的同时,为了保证群体规模数不变,我们淘汰下一代中的最差个体。于是可知选择概率P[,si]为:

P[,si]=0(当f(x[,i])=msxf(x[,i])时)或P[,si]=1(当f(x[,i])≠maxf(x[,i])时)。

交叉操作中我们采取基本的一点交叉策略,交叉点随机选择,交叉概率P[,c]设定为1。为防止接近最优的解个体结构被变异操作所破坏,将变异概率P[,m]设为较小值,为0.01。

初始群体:

minf(x[,i])=376.46,对应最佳解个体为S3。

第一代:

minf(x[,i])=376.44,对应解个体为S[,3];maxf(x[,i])=389.34,对应解个体为S2。

第二代:

minf(x[,i])=376.46,对应解个体为S[,2];maxf(x[,i])=386.71,对应解个体为S4。

第三代:

minf(x[,i])=376.44,对应解个体为S[,2]、S[,3];maxf(x[,i])=382.11,对应解个体为S1。

对初始群体进行交叉操作,形成第一代。根据选择策略,淘汰最差解个体S[,2],复制初始群体中的最佳解个体S[,3]至第一代中,形成解个体S[,5]。对第一代解群体进行交叉操作,形成第二代。

根据选择策略,淘汰最差解个体S[,4],复制第一代中的最佳解个体S[,3]至第二代中,形成解个体S[,5],淘汰不符合限制条件的解个体S[,3],用第一代中的最佳解个体S[,3]代替,形成解个体S[,6]。对第二代解群体进行交叉操作,形成第三代。

根据选择策略,淘汰最差解个体S[,1],复制第二代中的最佳解个体S[,2]至第三代中,形成解个体S[,5]。显然,经选择操作后的四个解个体无论怎样进行交叉操作,均不能再形成新的个体,根据遗传操作的终止条件,可以认为在第三代中已出现最佳解个体,即S[,2]和S[,3]。该最佳解个体对应的x[,1]、x[,2]、x[,3]值分别为x[,1]=61、x[,2]=20、x[,3]=19。由此可得所求最佳证券组合为P=(61%、20%、19%)。采用传统求解方法验证,解方程组:

x[,3]=19,与遗传算法的求解结果一致。遗传算法共执行了三代即找到最优解,若组合中证券数目更多,可借助计算机进行数据处理,由于遗传算法所固有的并行性,采用基于该算法的计算机程序求解,其优势将更明显。

标签:;  

求解证券最优组合的遗传算法_遗传算法论文
下载Doc文档

猜你喜欢