《1 引言》

1 引言

为了分散投资风险并取得适当的投资收益, 投资者往往采用组合投资方式, 把一笔资金同时投资于若干不同的证券, 投资者对其投资行为最关心的问题是预期收益率的高低和预期风险的大小。由H.M.Markowitz创立的现代组合证券投资理论[1]是分散投资风险决策的有效途径。组合证券理论已引起研究界的广泛重视, 国内外学者对此进行了深入研究[2]。笔者在前期工作的基础上, 提出用加速遗传算法解决组合证券投资决策问题, 可以取得较理想的结果。

《2 组合证券投资决策模型》

2 组合证券投资决策模型

沿用文献[2]中的记号, 假设投资者选定n种证券进行投资, 各单项证券的收益率均值为Ri, (i=1, 2, …, n) , E为n阶协方差矩阵, 投资比例系数向量为W= (w1, w2, …, wn) T, 预期投资收益率为R0, 风险为σ2。于是, 最优组合证券投资决策问题可转化为如下二次规划模型[2]:

minσ2(w1,w2,,wn)=WΤEW,(1.1)s.t.w1+w2++wn=1,(1.2)w1R1+w2R2++wnRn=R0,(1.3)w1,w2,,wn0(1.4)

σ2为优化准则函数, wj (j=1, 2, …, n) 为优化变量。

《3 基于加速遗传算法的组合证券投资决策算法》

3 基于加速遗传算法的组合证券投资决策算法

加速遗传算法 (AGA) 是我国学者金菊良教授在传统遗传算法 (TGA) 基础上提出的一种优化方法[3], AGA可以克服TGA的缺点:对搜索空间 (优化变量空间) 的大小变化适应能力差, 计算量大, 易出现早熟收敛, 控制参数的设置技术无明确准则指导。利用在传统遗传算法运行过程中搜索到的优秀个体, 逐步调整优化变量的搜索区间, 即可形成加速遗传算法[3]

加速遗传算法解决组合证券投资问题的步骤为:

Step1:优化变量初始化变化空间的离散和二进制编码。设编码长度为e, 把每个优化变量wj的初始化变化区间[0, 1]等分成2e-1个子区间, 则

wj=Ιjdj,(j=1,2,,n),(2)

式中, 子区间长度dj=1/ (2e-1) 是常数, 搜索步数Ij为<2e的任意十进制非负整数是变数。

经过编码, 优化变量的搜索空间离散成 (2e) n个网格点 (个体) , 它对应n个优化变量的一种可能取值状态, 并用ne位二进制数{ja (j, k) |j=1, 2, …, n;k=1, 2, …, e}表示:

Ιj=k=1eia(j,k)2k-1,(j=1,2,,n)(3)

通过式 (2) 和式 (3) 的编码, n个优化变量wj的取值状态、网格点、个体、n个二进制数{ia (j, k) }之间可建立一一对应关系。

Step2:初始父代群体的随机生成。设群体规模大小为q, 从上述 (2e) n个网格点中均匀随机选取q个满足约束条件式 (1.2) 和式 (1.3) 点作为初始父代群体。若在网格点中随机选取的点不满足约束条件式 (1.2) 和式 (1.3) , 则在网格点中重复产生随机点, 直至产生q个满足约束条件式 (1.2) 和式 (1.3) 的点, 于是, 生成q组 (如q=300) 在[0, 1]区间上的均匀随机数, 每组n个, 即{u (j, i) |j=1, 2, …, n;i=1, 2, …, q}, 经下式转换得到相应的随机搜索步数

Ιj(i)=int(u(j,t)2e)(j=1,2,,n;i=1,2,,q)(4)

它们可由式 (3) 对应二进制数{ia (j, k, i) |j=1, 2, …, n;k=1, 2, …, e;i=1, 2, …, q}, 又可由式 (2) 与q组优化变量{wj (i) |j=1, 2, …, n;i=1, 2, …, q}一一对应, 把它们作为初始父代个体。

Step3: 二进制数的解码和父代个体适应度评价。把父代个体编码串ia (j, k, i) 经过式 (3) 和式 (2) 解码成优化变量wj (i) , 把后者代入式 (1.1) 得相应的优化准则函数σi2, 把{σi2|i=1, 2, …, q}从小到大排序, 对应的优化变量{wj (i) }和二进制数{ia (j, k, i) }也跟着排序, 称排序后最前面几个个体为优秀个体。记优秀个体数目为s。定义排序后的第i个父代个体的适应度函数值为

Fi=1(σi2)2+0.001,(i=1,2,,q)(5)

Step4: 父代个体的概率选择。取比例选择方式, 个体i的选择概率为

pi=Fii=1qFi,(i=1,2,,q)(6)

pi=k=1ipk,(i=1,2,,q)

序列{pi|i=1, 2, …, q}把[0, 1]区间分成q个子区间, 并与q个父代个体一一对应。

生成q个随机数{u (k) |k=1, 2, …, q}。若u (k) ∈[pi-1, pi], 则第i个个体被选中, 其二进制数记为ia1 (j, k, i) 。同理可得另外的q个父代个体ia2 (j, k, i) 。于是从原父代群体中以概率pi选择第i个个体, 共选择两组各q个个体。

Step5:父代个体的杂交。由于杂交概率pc控制杂交算子应用的频率, 在每代新群体中, 有qpi对串进行杂交, pc越高, 群体中串的更新越快, TGA搜索新区域的机会越大[4], 因此取定杂交率pc=1.0[3]。由step4得到的两组父代个体随机两两配对, 成为q对双亲, 将双亲的二进制数组的任意一段值互换, 得到两组子代个体。

Step6:子代个体的变异。采用两点变异, 比单点变异更有助于增强群体的多样性[4]。设变异率为pm (如pm=1.0[3]) , 它是子代个体发生变异的概率。任取step5中的一组子代个体, 将它们的二进制数组的任意两值以概率pm进行翻转 (原值为0的变为1, 原值为1的变为0) 。

Step7:进行迭代。由step7得到的q个子代个体作为新的父代, 算法转入step3, 进入下一次进化过程, 如此循环两次, 优秀个体将逼近最优点。

Step8:加速循环。用第一次、第二次进化迭代所产生的优秀个体的变量变化区间作为新的初始变化区间, 算法进入step1, 重新运行TGA, 如此加速循环, 优秀个体的变量变化区间将逐步调整和收缩, 与最优点的距离越来越近, 直到最优个体的优化准则函数值达到稳定值, 结束整个算法的运行。此时, 把当前群体中最佳个体指定为AGA的结果。

组合证券投资决策加速遗传算法的计算机流程图见图1。

《图1》

图1 加速遗传算法计算机流程图

图1 加速遗传算法计算机流程图  

Fig.1 The computer flow chart of AGA model

《4 AGA控制参数的配置》

4 AGA控制参数的配置

AGA控制参数包括编码长度e, 父代个体数目q, 优秀个体数目s和变异率pm。这些参数的不同取值会对AGA的寻优性能产生很大影响, 要得到AGA运行的最优性能, 必须对这些参数进行适当配置。在AGA中, 控制参数的配置已有明确的指导准则, 可以事先设置[3]

1) 关于编码长度

TGA中, 对实变量优化问题, e太小则解的精度太低, 失去优化的意义;e越大则优化变量搜索区间的网格分得越细, 网格点就越多, 搜索效率越低, 需相应增加进化迭代次数或父代群体规模以提高搜索到最优解的成功率, 从而导致计算量猛增, 影响计算效率[4]。因AGA在算法step8中能逐步调整优化变量的变化空间, 随着AGA的运行网格自动细分, 它采用的是一种动态编码策略, e可取定10[3]

2) 关于变异率

AGA的pm反映个体向其他个体网格点变迁的概率。由于其可以保证算法的收敛性[3], pm越大, 搜索区域越大, 优秀个体包围、接近全局最优点的机会也越大, 越有利于克服早熟收敛, pm可取定1.0[3]

3) 关于父代个体数目q和优秀个体数目s

AGA原理知, q个父代个体是按选择概率从 (2e) n个优化变量空间网格中的一个随机抽样。大的群体可更好代表优化准则函数在搜索空间上的变化特性, 增强基于二进制编码的杂交操作能力, 阻止早熟收敛[3]。然而, 当q继续增加而s仍维持较小值不变时, 真正优秀个体产生后代的概率相对减少, 从而使优秀个体包围、接近最优点的机会也减少。在q一定时, s越大, 优秀个体包围、接近最优点的机会越大, 但收敛速度越慢。

TGA中, 当优秀优化变量的变化空间很大时, 其编码长度、父代个体数目也必须很大, 导致计算量大增, 算法控制参数的设置技术也趋复杂化[4]。而这些在AGA中却是不必要的。由于AGA利用进化迭代过程中产生的优秀个体所包含的优化准则函数在最优点附近各参数方向的变化特性的信息, 来调整整体优化变量变化空间的大小, 使AGA同时在n个参数方向寻优且收敛, 只要s与q配合合理, 就可望增强AGA对优化问题优化变量变化区间大小变化的适应能力。研究表明, q和s的配置应满足s/q>q/ (2ee) [3]。文献[3]建议在应用AGA时, 取q=300, s=10。

《5 实例研究》

5 实例研究

[2]设三种证券的协方差矩阵为

E=[140-120-150-120240100-150100300]

收益率均值分别为R1=16%, R2=18%, R3=20%, 预期收益率R0=19%, 试确定非负最优投资比例系数和相应的投资风险。

在文献[2]中, 得到如下结果:w1=0.233, w2=0.034, w3=0.733, σmin2=120.91。

用加速遗传算法 (AGA) 求解该问题, 计算过程见表1。于是, 有w1=0.23496530, w2=0.03228606, w3=0.73274860, σmin2=120.31520000。它优于文献[2]的结果。


  

表1 用AGA计算组合证券投资模型的权重和最优值  

Table 1 The weighs and optimal values of utilizing AGA to calculate the portfolios investment model

《图2》

表1 用AGA计算组合证券投资模型的权重和最优值

《6 结语》

6 结语

用加速遗传算法 (AGA) 求解组合证券投资决策问题有如下特点:

1) 算法的控制参数已有明确设置, 比传统遗传算法循环次数少, 计算量小, 可以避免早熟现象发生, 易于全局收敛。

2) 协方差矩阵无正定性要求, 更接近实际问题的需要。

3) 易于处理有非卖空 (即投资比例系数为非负) 条件要求的组合证券投资决策问题。

4) 算法可以推广到目标函数规模庞大甚至无明确解析表达式的情形。