群体智能的核心思想在于,由若干个简单个体组成的群体,通过它们之间的相互合作表现出较为复杂的功能,在缺少待求解问题局部信息和模型的情况下,仍能够完成复杂问题的求解。群体智能算法只需目标函数的输出结果,即函数的适应度值(Fitness Value),而无需其梯度信息,对待求解问题是否连续并无要求,这使得该类算法既适用具有连续性的数值优化,也适用于离散性的组合优化。更为重要的是,群体智能潜在的并行性和分布式特点为处理大规模问题和海量数据提供了技术保证。因此,群体智能研究越来越多地受到各个领域学者的关注,成为一个新的重要研究方向。 在群体智能优化算法对问题的求解中,其优化过程是动态的、发展式的。在求解过程中,最优解的搜索过程就是解群体在解空间中学习和发展的过程。优化算法在解空间中不断地更新解群体的数值,通过演化的方式,不断改善解的适应度值,改进算法的学习能力和发展能力将提高算法的性能和适用范围。发展式群体智能(Developmental Swarm Intelligence)是一种设计和分析群体智能优化算法的理论框架,其定义为拥有发展势能(Capacity Developing)和学习能力(Capability Learning)的群体智能优化算法 [1] 。发展势能关注于将算法的搜索转移到可能拥有更好解的区域,即具有更大搜索潜能的区域;而学习能力关注于单点优化算法的当前解,或群体智能优化算法的当前解集合的实际搜索。发展势能是一种上层学习或宏观层次的学习方法,描述了算法根据待求解问题上的搜索状态自适应地改变其参数、结构的发展潜能。简而言之,发展势能是算法拥有的搜索强度。学习能力是一种底层学习或微观层次的学习,描述了算法通过其学习能力从当前解集合迭代到更好的解集合的能力。通过对待求解问题大量解的数据进行分析,根据待求解问题特征与算法优化过程中生成解集合的分布情况,依据算法的学习能力,建立待求解问题解的结构(Landscape),在分析待求解问题与算法的关联基础上,改变算法的发展势能,更有针对性地求解问题。 头脑风暴优化算法(Brain Storm Optimization, BSO)是一种发展式的群体智能优化算法,算法模拟了一种人类集思广益求解问题的集体行为,也就是头脑风暴过程 [2, 3] 。算法融合了群体智能优化方法和数据挖掘/数据分析方法,以数据分析为基础去选择相对较好的解,经过不断迭代,最终收敛于足够好的解或解集合。在传统的群体智能优化算法,每个群体的解集合,都被引导向解空间中更好的解变化,优化的目标只关注改进最好的解。而在头脑风暴优化算法中,将所有的解视为整体,每个个体既是问题的一个解,也是一个数据点(Datum),为解空间中的一个样例(Sample),而个体构成的解集合为数据集(Data)。算法的目的不仅是改进最好的解,而且通过对解集合的变化分析,得到解空间中优秀解的分布情况,或者解空间中解的"峰值"的多寡,进而获得待求解问题的更多信息。作为一类启发式的随机算法,群体智能算法将最优化问题视作在解空间(Solution Space)上的搜索最优值的搜索问题,通过启发式信息来指导搜索过程。 将最优化问题建模为在解空间上搜索最优值的搜索问题,群体智能优化算法通过启发式信息来指导搜索过程。在搜索过程中,多个个体通过竞争与协作的方式,共同对解空间进行搜索。由于有多个个体同时协作地进行搜索,这使得群体智能优化算法具有一种潜在的并行性。不同于常规的分析和数值解法,群体智能优化算法对目标函数的性态(单调性、可导性、模态性)几乎没有限制,甚至不需要知道目标函数的表达式,因此群体智能优化算法的提出,极大的拓展了可解的最优化问题的范围。群体智能优化算法可以广泛地应用于各种优化问题中,如动态优化问题、约束优化问题、不确定环境优化问题、多目标优化问题、超多目标优化问题 [4] 等。 对于传统的群体智能优化方法,算法大多采用了模型驱动(Model-Driven)的方法,针对不同类型问题,算法采用了相同的算子选择和参数设计,算法缺乏求解不同类型问题的泛化能力。基于数据的研究(Data Science)越来越受到学术界认可,日益成为新的科学范式,基于数据驱动(Data-Driven)的研究有着广阔的研究前景和应用范围。将优化与学习相结合,采用数据驱动的策略,为优化算法求解问题提供了新的途径。通过对求解过程中数据的动态分析,根据算法的学习能力,在搜索中学习待求解问题信息,实时地辨别算法的求解状态,针对不同类型问题,选择不同的优化算子和参数设计,从而提高算法的求解效率,改进算法的发展势能。 传统机器学习或者数据挖掘方法属于基于数学模型的算法,通过建立数学模型来分析数据的分布和数据的属性。而面对海量数据,基于模型的方法往往难以取得好的分析结果,原因包括:1) 大数据的模型难以建立,传统模型一般基于小的数据集合;2) 传统模型难以表征大数据所包含的所有数据,存在遗漏;3) 传统模型难以表征大数据的时间特性;4) 大数据存在着数据缺失、数据冗余、含有不准确数据等特征,而传统模型难以处理这些约束;5) 对于大数据,用户希望获取多个方面和层次的信息,而传统模型往往基于一个目标,难以处理多目标问题 [5] 。 研究基于数据驱动的发展式头脑风暴优化算法,将头脑风暴优化算法与数据分析进行有机结合。在求解的过程中学习待求解问题的特征,通过数据分析的方法分析优化算法求解过程中产生的解集合数据,设计基于数据驱动的求解策略和优化算法;将数据分析问题建模为基于搜索的大规模优化问题,设计具有通用性的数据分析问题建模过程,利用发展式头脑风暴优化算法求解数据分析问题,并以动态蛋白质网络分析为例进行方法验证。通过基于数据驱动的发展式头脑风暴优化算法进行优化问题求解的新方法亦可推广到其他工程实际问题,为解决实际问题提供新的思路和途径。 目前主要问题的框架与内容