遗传是一门很深奥的学问,而遗传其实是有相关的算法的,虽然目前遗传还不能很准确,但至少能大致推断出遗传的方向,因此遗传算法原理还是值得研究一下的,但遗传算法原理比较难理解,接下来我们来了解一下遗传算法原理的相关知识吧。
多目标遗传也算是一种可靠点的理论,那么多目标遗传算法原理是什么呢?
对于单目标问题,遗传算法展示出其优越性。但是在多目标的优化问题中,人们首先碰到的最大的问题就是如何去衡量一个个体适应度好坏。打个比方,在一个班级里,每一个同学都有语数外三门成绩。如果我给与语数外一定的权重,那么我们可以将语数外三门成绩做加权处理,从而对所有同学的成绩做出排序,这样问题就退化成单目标优化问题了。
然而,如果我们不能给出语数外三个成绩的权重。也就是说语文100分,数学0分,英语0分与语文0分,数学100分,英语100分在没有说明权重的情况下是无法判断谁更好的。我们把这种关系叫做非支配。支配是人们用来判断多维向量适应度好坏一种关系。如果A在任何一个维度都比B要好,那么A就支配B。否则,A非支配B。所有相互非支配的向量被成为帕累托解集。如此,我们可以将班级中所有同学的成绩做出一个分类,而所有解集中,适应度最好的那个解集对应的适应度函数的值的集合。
遗传算法原理比较讲究负载均衡,那么遗传算法原理负载均衡是什么来的呢?
遗传算法的控制参数包括群体规模N、算法停止准则以及交配概率pc和变异概率pm。遗传算法是一个随机搜索算法,适用于数值求解具有多参数、多变量、多目标的复杂最优化问题。遗传算法对待求解问题的指标函数没有什么特殊的要求,如不要求连续性、导数存在、单峰值等假设,甚至不需要显示地写出指标函数。
经过编码以后,遗传算法几乎不需要任何与问题有关的知识,唯一需要的信息是适应值的计算。也不需要使用者对问题有很深入的了解和求解技巧,只需通过选择、交配和变异等简单的操作便可求解复杂的问题,是一个比较通用的优化算法。遗传算法具有天然的并行性,适用于并行化求解。
tsp问题遗传是有相关的算法的,那么tsp问题遗传算法原理有哪些呢?
tsp问题遗传算法将多目标按照线性加权的方式转化为单目标,然后应用传统遗传算法求解,其中w_i表示第i个目标的权重,f_k表示归一化之后的第i个目标值。我们很容易知道,这类方法的关键是怎么设计权重。比如,Random Weight Genetic Algorithm (RWGA) 采用随机权重的方式,每次计算适应度都对所有个体随机地产生不同目标的权重,然后进行选择操作。
Vector-Evaluated Genetic Algorithm (VEGA) 也是基于线性加权的多目标遗传算法。如果有K个目标,VEGA 会随机地将种群分为K个同等大小子种群,在不同的子种群按照不同的目标函数设定目标值,然后再进行选择操作。VEGA 实质上是基于线性加权的多目标遗传算法。VEGA 是第一个多目标遗传算法,开启了十几年的研究潮流。
遗传算法原理可以用公式来表达,那么遗传算法原理求函数最大值是什么呢?
将染色体表示为x,y的值(以bit的形式来表示),进行选择,交叉,变异。同时为了保证解具有较好的全局性,我们每次都选择最好的一个解来替代下一代的最差的一个解,同时提高变异率增加多样性。变异手段就是对某一个bit进行取反,随着变异率的提高,每一代最差个体的情况曲线变得比较稳定。
要知道交叉手段就是对某两个互异的染色体交换部分。当我们将搜索空间变大的时候,可以发现找到最优解的情况在变得不稳定,很容易就收敛到局部的最优解,这时候除了增加变异率,最有效的办法就是扩大种群的数量。