-
术语
-
遗传算法流程
-
编解码过程
-
遗传编码
-
编码原则
-
完备性:问题空间的所有解都能表示为所设计的基因型
-
健全性:任何一个基因型都对应于一个可能解
-
非冗余性:问题空间(表现型)和表达空间(基因型)一一对应
-
将优化变量转为基因的组合表示形式
-
二进制编码:个体基因型使用二值符号集{0,1}来构成,整个基因型是一个二进制编码符号串。二进制编码符号串的长度与问题所要求的求解精度有关。
-
优点:实现简单
-
缺点:变异后表现型很大,不连续,对于连续函数的优化问题,随机性会让局部搜索能力变差
-
-
实数编码:解决数值优化问题(尤其是高维、连续优化问题)
-
优点:计算精确度高,便于和经典连续优化算法结合,适合数值优化
-
缺点:使用范围有限,只能用于连续变量问题
-
计算方法
-
确定每个决策变量的取值范围。对于每个实数参数,需要确定其取值范围,例如 [0, 1] 或 [-10, 10] 等。
-
确定每个个体的维度。维度决定了实数向量的长度,通常根据问题的复杂度和精度要求来确定。例如,若需要保留小数点后 2 位,则向量长度为 10。
-
随机生成符合要求的实数向量。对于每个个体,随机生成一个实数向量 x = (x1, x2, … xn),其中 n 表示维度。对于每个 xj,将其映射到相应的取值范围内,可以使用线性变换公式**:xj’ = li + (ui - li) * r**,其中 li 和 ui 分别是第 j 个决策变量的下限和上限,r 是 [0, 1] 之间的随机数。
-
将符合要求的实数向量作为个体加入种群。生成符合要求的实数向量后,将其作为一个个体加入种群中。
-
-
-
符号编码:符号的顺序不同表示不同的意义。在使用符号编码时,交叉编译的结果是对符号顺序的改变,而不是改变符号本身所表达的意义。(用于TSP问题)
-
整数编码:在使用符号编码时,交叉编译的结果是对符号顺序的改变,而不是改变符号本身所表达的意义。常用于优化问题,如序列排序问题、调度问题等
-
排列编码:
-
参考链接:
https://blog.csdn.net/KOBEYU652453/article/details/115505145