股票量化交易软件:群体优化算法粒子群(PSO)

大概有许多读者对斯坦尼斯瓦夫·莱姆(Stanisław Lem)的科幻名作《无敌》("The Invincible")耳熟能详。令人意想不到的是,其中对“群体”智能的描述实际上是最早的探索之一。这一故事描绘了未经集中控制的幸存机器人,而其中最简单和数量庞大的样本能幸存下来,而非最复杂、最聪明或最强大的样本。
在长达数千年的演化过程中,这些机器学会了高效应对竞争对手,在智力和能源利用方面都遥遥领先。他们不仅与其它机器人作战,还与星球上的生命世界进行对抗。这部作品中的想象力丰富的元素可与自然进化和本身的自然法则进行可靠比较。
自古以来,人们就对群体动物的行为,即所谓的群体行为,充满好奇。例如,迁徙到温暖地带的鸟群如何协同;蜜蜂如何合作生产食物;蚂蚁如何在构建复杂结构的同时生存下来;鱼群如何行动整齐一致,以及它们为何如此同步。社会中的独立组织呈现出协调良好的整体有机体的模式,这些都启发了算法优化领域的新视角。
群体智能描述的是模拟自组织系统的集体行为,涉及相当多的此类算法。在J.Kennedy和R.Eberhart于1995年编写的规范版本中,该方法的基础模型得以简化,源自雷诺兹(Reynolds)模型。在这种简化成果中,种群中的不同个体开始作为独立物体出现,这些物体虽无大小,但具有一定速度。
这一方法产生了极端类似于物质粒子的简单物体,因此它们被称为粒子,它们的种群被称为群体。在每个时刻(每次迭代)中,粒子在空间中具有一定位置和速度向量。根据粒子的每个位置计算出目标函数的相应值,并在此基础上,按照一定的规则,在搜索空间中改变粒子的位置和速度。在确定粒子的下一位置时,还会考虑来自所有其他相邻粒子中的最佳位置信息,对应于适应度函数的任务。
群体算法的一些例子包括:
粒子群法
蚂蚁算法
蜜蜂算法
人工免疫系统
灰狼算法
蝙蝠算法
引力搜索算法
利他主义算法
以及许多其他算法
从模拟集体行为到集体优化的过渡是基于以下生物学观点:群居生物体的团结一致性能够改善其生活条件。总的来说,与独立生物体相比,群体生活可以更有效地寻找、处理和储存食物,等等。换言之,任何群居生物在其生存期间都会以不同程度的效率解决各种优化问题,例如最大化食物供应,同时最小化捕食者造成的损失。这为构建各种数学优化方法提供了基础。
粒子群自其创立以来,一直是最著名和最受欢迎的优化算法之一。许多实现该算法的作者声称,它在优化具有许多参数的复杂函数方面非常有效,甚至适用于训练神经网络。
在本文中,赫兹量化软件将尝试探究该算法是否真的适合解决复杂问题。在算法的经典版本以及许多修订版中,存在重大限制。相关的问题是优化函数必须是平滑和连续的,这意味着它完全不适用于离散函数。然而,根据该系列文章,所有正在考虑的算法都将以这种方式进行调整(如果有任何限制),从而消除缺陷,使算法至少能够纯技术地运作。换句话说,所有算法都必须无差别地处理函数的平滑性(例如交易者问题中的),并且在参数步骤上没有限制。
2. 算法原理
虽然前文介绍了优化世界,但它没有深入到主程序(如EA、脚本、指标)与优化算法核心的交叉原理。理解这一点极为重要,
