system: [SYSTEM]

user: 2. 研究的理论基础 2.1. 人工蜂群算法的基本原理 2.1.1. 人工蜂群算法简介 蜜蜂是一种群居型的动物，虽然单个个体的行为比较简单，但是由这些个体组成的群体的行为却极其复杂且有条不紊。蜜蜂种群个体之前能够相互分工协作和信息共享，使整个种群能极其高效的找到较好的蜜源。 人工蜂群算法 [ 10 ] (Artificial Bee Colony，简称ABC)是由土耳其学者Karaboga于2005年提出的基于群体智能的一种新型的随机优化算法，人工蜂群算法是从蜜蜂采蜜行为中受到启发，通过模拟其行为而提出的启发式算法。人工蜂群算法中有三个基本要素：采蜜蜂(Employed bees)、未采蜜蜂(Unemployed bees)和食物源(Food source)。同时定义了蜜蜂单个个体的两种基本行为：招募其他蜜蜂到优质蜜源以及放弃某个食物源。 食物源：即蜜源，在蜜蜂选择蜜源时，通常要考虑蜂巢与蜜源之间的距离、蜜源所含的花蜜量多少以及提取的难易程度等因素。在ABC算法中，食物源代表优化问题的可行解，食物源的花蜜量是评价指数，代表目标函数的适应值或解的质量。 采蜜蜂：采蜜蜂是负责采集花蜜的蜜蜂。在ABC算法中，采蜜蜂的数量与食物源的数量相等。采蜜蜂的主要任务是发现蜜源并且保存于蜜源相关的信息，如蜜源到蜂巢的距离、方位和蜜源所含花蜜量的多少等。将蜜源的信息带回蜂巢，以一定的概率与其他蜜蜂共享。 未采蜜蜂：即还没有采集花蜜的蜜蜂。在ABC算法中，未采蜜蜂主要是侦察蜂(Scout bees)和观察蜂(Onlooker bees)，观察蜂的数量与采蜜蜂的数量相等。观察蜂的主要任务是在蜂巢附近等待采蜜蜂回来分享食物源的信息，并以一定的概率选择要跟随的采蜜蜂，蜜源的花蜜量越丰富，采蜜蜂被观察蜂跟随的概率越大。如果某处蜜源经过一定次数开采后仍然没有更新食物源，则放弃该位置，此处的采蜜蜂变为侦察蜂在该蜜源附近搜索新蜜源从而替代原来较差的蜜源。 人工蜂群的搜索活动如下：采蜜蜂根据已有信息搜索到一个新的候选位置，检查新位置的花蜜量，如果新位置优于原位置，根据贪婪选择机制，采蜜蜂忘记原位置而记住新的位置，否则保留原位置。当采蜜蜂完成搜索过程之后，它们将回到舞蹈区跳八字舞，向观察蜂传递蜜源信息。观察蜂接收到这些信息，根据与花蜜量相关的概率选择蜜源位置，之后与采蜜蜂一样搜索新的位置，并做出相应改变。如果某处蜜源经过一定次数仍然没有改进，则放弃该位置，此处的采蜜蜂变为侦察蜂。 2.1.2. 工蜂群算法的主要步骤 1) 初始化种群 在使用ABC算法进行目标函数的优化时，蜂巢周围包含的食物源代表优化问题的目标函数的搜索空间，食物源的位置表示目标函数的可行解，食物源的花蜜量代表目标函数的适应值，也就是解的质量。 首先随机产生NP个初始解，NP即是蜜源的数量也是采蜜蜂的数量。每一个解 X i ( i = 1 ， 2 ， ⋯ ， N P ) 是一个D维向量，D是需要优化的参数的个数。同时要设置每个蜜源的最大开采次数Limit和最大迭代次数MaxCycle。 随机初始化的公式如下： X i ， j = X j min + r a n d ( 0 ， 1 ) ∗ ( X j max − X j min ) 其中， j ∈ { 1 ， 2 ， ⋯ ， D } ， i ∈ { 1 ， 2 ， ⋯ ， N P } ， r a n d ( 0 ， 1 ) 表示的是介于0到1之间的随机数， X i j 表示食物源的位置，也就是目标函数的可行解， X j max 和 X j min 分别表示可行解 X i j 的最大值和最小值。 随机初始化完成以后，采蜜蜂、观察蜂和侦察蜂在初始解的基础上开始循环搜索最优解。 2) 采蜜蜂进行搜索 采蜜蜂已知当前记忆位置，根据以下搜索方程产生新的候选位置 V i ， j = X i ， j + φ i ， j ( X i ， j − X k ， j ) 其中，k，j是随机选取的下标， k ∈ { 1 ， 2 ， ⋯ ， N P } ， j ∈ { 1 ， 2 ， ⋯ ， D } ， k ≠ j ； φ i ， j 是属于[−1，1]之间的随机数。计算新位置的适应值，如果新位置的适应值比原位置大，则记住新位置并且忘记原位置，否则保留原位置。 3) 观察蜂进行搜索 观察蜂根据采蜜蜂传递的蜜源花蜜量信息，选择某个蜜源的概率为 p i = f i t i / ∑ j = 1 N P f i t j 其中， f i t i 是第i处蜜源的适应值。之后，观察蜂通过同采蜜蜂一样的搜索方程产生新的候选位置，计算新位置的适应值。如果新位置的适应值比原位置大，则记住新位置并且忘记原位置，否则保留原位置。 4)侦察蜂进行搜索 若蜜源经过限定的次数Limit后仍然没有改进，则放弃该位置，此处采蜜蜂成为侦察蜂，侦察蜂通过下式产生新的位置。 X i ， j = X min ， j + r a n d ( 0 ， 1 ) ( X max ， j − X min ， j ) 其中， X max ， j 和 X min ， j 分别是搜索空间的上界和下界。 2.2. 差分进化算法 差分进化算法(Diﬀerential Evolution，简称DE) [ 11 ] 是由Stornce和Price在1995年首次提出的一种随机启发式搜索算法，主要用于求解优化问题，具有参数较少、易于实现、结构简单等特点。与其他算法一样，差分进化算法模拟生物进化，通过反复迭代，使适应环境的个体保留下来。差分进化算法通过差分变异、选择和杂交等算子来对群体不断演化，直到满足终止条件后退出。 2.3. 粒子群算法 粒子群算法(Particle Swarm Optimization，简称PSO)是由Eberhart和Kennedy在1995年提出的一种源于鸟群觅食行为的智能优化算法。设计的算法中将鸟看做无质量的粒子，其搜索思想是：在越优的粒子的领域存在适应值高的解的概率越大，所以为了增强算法的搜索效率，在较优粒子的领域分配更多的粒子；于此同时，为了避免盲目陷入局部最优，每个粒子也吸收其他信息。粒子群算法参数少收敛快是很大的优点。 2.4. 投资组合优化理论 2.4.1. Markowitz投资组合模型 通过大量的观察和分析，Markowitz认为投资者要追求高收益就必须承担高风险。为了规避和分散风险，投资者偏好持有多样化的证券投资组合。Markowitz从对收益和风险进行量化开始，系统地研究了投资组合的一些特性，从量化的角度提出了投资组合的优化方法。 基于对风险的规避，Markowitz建立了一个投资组合模型，其要点包括：投资组合的期望收益率及其方差；在给定期望收益水平下使投资组合的风险降到最低，或在给定的风险水平下使投资者的期望收益达到最高。利用数学规划，确定每只证券在投资者资金中所占的权重。Markowitz理论将期望及其波动方差作为投资者选择组合时的收益率和风险建立模型，因此也称为均值—方差模型。 均值—方差模型数学描述如下： min σ p = min ∑ i = 1 n ∑ j = 1 n     σ i ， j x i x j s .t .   ∑ i = 1 n   x i ≥ E ，     ∑ j = 1 n     x i = 1 ，     x i ≥ 0 其中 σ p 描述证券组合的风险， σ i ， j 为第i支股票与第j支股票之间的协方差， x i 为第i支股票的期望收益率，E为可接受的最低期望收益率， x i 为第i支股票的投资占组合总投资的比例。给定的最低期望收益率，通过最小化证券组合的方差使得投资风险最小。 2.4.2. 均值—方差模型的局限性 均值方差模型不仅需要可接受的最低收益率和投资组合的方差，还要计算预期收益。本文采取的人工蜂群算法不需要计算上述两个参数。 均值方差模型在股票数量很大的情况下是不实用的，因为算法的关键参数涉及的计算复杂度增加了解决时间。因此，本文提出了利用人工蜂群算法来解决多目标投资组合优化问题。 均值方差模型等式中涉及的最小化风险是基于收益服从正态分布的假设。收益是简单线性相关的，等价于假设资产收益的联合分布是正态的，但是在目前的金融市场中，由于政策因素、市场规则、经济政策以及非系统性风险，现实中的很多资产的收益不是服从正态分布的，这违背了均值方差模型中的协方差条件。因此，均值方差模型得出的结果是偏离实际的。本文提到的人工蜂群算法解决了这个问题，因为它不需要假设收益是服从正态分布的。