1 表示/编码
编码的表示代表,编码对算法的效率至关重要,其必须满足连通性原理才能为元启发式算法所用,为的是保证任意两解之间都存在一条搜索路径,尤其是对最优解来说更是如此。
常见的编码:
- 二进制编码:解可表示为一个n位二值符号集,其搜索空间大小是 2 n 2^n 2n
- 离散编码:变量的值不再局限于0和1,而是离散值
- 实值编码:变量拥有真实的值
- 排列编码:解可以表示为一个大小为n的排列,其搜索空间大小是 ( n − 1 ) ! (n-1)! (n−1)!
- 基于图的编码
2 约束的满足
- 仅考虑可行解
- 惩罚不可行解:实际上对于不可行解的考虑会使得算法移向搜索空间中的其他区域,使得到的解更为多元化
- 修正不可行解
3 优化标准/目标函数
f
:
D
→
R
f:D→R
f:D→R
目标函数的构建必须非常仔细,因为如果目标函数定义不当,即使开发出有效的优化方法也是徒劳的。
值得注意的是,确定单个优化标准通常很难,很多实际问题本质上是多目标问题
4 性能分析
元启发式算法是随机方法,其性能分析应格外仔细。在保证公平的前提下,需要对几种元启发式算法进行对比。
s t e p 1 : step1: step1:实验设计,要明确实验目标(解对质量、计算时间、顽健性等)和使用的基准(构建实际基准、随机基准、学术基准等以便获取最优解等先验知识)
s t e p 2 : step2: step2:确定性能测量和指标(两者会直接关系到实验目标),便于计算
- 解的质量评估:若最优解已知,则评估计算所得解与最优解的质量差;若最优解未知,则可利用上下限来计算
注意,比较的是解的质量,而不是目标函数值的质量
- 顽健性的评估:同种方法运行若干次所产生的解的质量的变异性,运用统计检验方法来评估所得结果是否可信
参考书籍《大数据元启发式算法教程》