searchusermenu
  • 发布文章
  • 消息中心
点赞
收藏
评论
分享
原创

遗传算法应用场景

2025-03-28 06:19:25
8
0
  1. 数学表示复杂的问题
    由于遗传算法仅需要适应度函数的结果,因此它们可用于难以求导或无法求导的目标函数问题,大量参数问题以及参数混合问题类型。
  2. 没有数学表达式的问题
    只要可以获得分数值或有一种方法可以比较两个解,遗传算法就不需要对问题进行数学表示。
  3. 涉及噪声数据问题
    遗传算法可以应对数据可能不一致的问题,例如源自传感器输出或基于人类评分的数据。
  4. 随时间而变化的环境所涉及的问题
    遗传算法可以通过不断创建适应变化的新一代来响应较为缓慢的环境变化。
    遗传算法的组成要素
    遗传算法的核心是循环——依次应用选择,交叉和突变的遗传算子,然后对个体进行重新评估——一直持续到满足停止条件为止
    算法的基本流程
    以下流程图显示了基本遗传算法流程的主要阶段:

基本遗传算法流程
创建初始种群
初始种群是随机选择的一组有效候选解(个体)。由于遗传算法使用染体代表每个个体,因此初始种群实际上是一组染体。
计算适应度
适应度函数的值是针对每个个体计算的。对于初始种群,此操作将执行一次,然后在应用选择、交叉和突变的遗传算子后,再对每个新一代进行。由于每个个体的适应度独于其他个体,因此可以并行计算。
由于适应度计算之后的选择阶段通常认为适应度得分较高的个体是更好的解决方案,因此遗传算法专注于寻找适应度得分的最大值。如果是需要最小值的问题,则适应度计算应将原始值取反,例如,将其乘以值 (-1)。
选择、交叉和变异
将选择,交叉和突变的遗传算子应用到种群中,就产生了新一代,该新一代基于当前代中较好的个体。
选择 (selection) 操作负责当前种群中选择有优势的个体。
交叉 (crossover,或重组,recombination) 操作从选定的个体创建后代。这通常是通过两个被选定的个体互换他们染体的一部分以创建代表后代的两个新染体来完成的。
变异 (mutation) 操作可以将每个新创建个体的一个或多个染体值(基因)随机进行变化。突变通常以非常低的概率发生。
算法终止条件
在确定算法是否可以停止时,可能有多种条件可以用于检查。两种最常用的停止条件是:
● 已达到最大世代数。这也用于限制算法消耗的运行时间和计算资源
● 在过去的几代中,个体没有明显的改进。这可以通过存储每一代获得的最佳适应度值,然后将当前的最佳值与预定的几代之前获得的最佳值进行比较来实现。如果差异小于某个阈值,则算法可以停止
其他停止条件:
● 自算法过程开始以来已经超过预定时间
● 消耗了一定的成本或预算,例如CPU时间和/或内存
● 最好的解已接管了一部分种群,该部分大于预设的阈值
其他
精英主义 (elitism)
尽管遗传算法群体的平均适应度通常随着世代的增加而增加,但在任何时候都有可能失去当代的最佳个体。这是由于选择、交叉和变异运算符在创建下一代的过程中改变了个体。在许多情况下,丢失是暂时的,因为这些个体(或更好的个体)将在下一代中重新引入种群。
但是,如果要保证最优秀的个体总是能进入下一代,则可以选用精英主义策略。这意味着,在我们使用通过选择、交叉和突变创建的后代填充种群之前,将前 n 个个体( n 是预定义参数)复制到下一代。复制后的的精英个体仍然有资格参加选择过程,因此仍可以用作新个体的亲本。
Elitism 策略有时会对算法的性能产生重大的积极影响,因为它避了重新发现遗传过程中丢失的良好解决方案所需的潜在时间浪费。
小生境与共享
在自然界中,任何环境都可以进一步分为多个子环境或小生境,这些小生境由各种物种组成,它们利用每个小生境中可用的独特资源,例如食物和庇护所。例如,森林环境由树梢,灌木,森林地面,树根等组成;这些可容纳不同物种,它们生活在该小生境中并利用其资源。
当几种不同的物种共存于同一个小生境中时,它们都将争夺相同的资源,从而形成了寻找新的,无人居住的生态位并将其填充的趋势。
在遗传算法领域,这种小生境现象可用于维持种群的多样性以及寻找几个最佳解决方案,每个解决方案均被视为小生境。
例如,假设遗传算法试图最大化具有几个不同峰值的适应度函数:

全局最大值
由于遗传算法的趋势是找到全局最大值,因此一段时间后大多数个体集中在最高峰附近。在图中通过使用 × 标记的位置表示这些点,× 代表了当前代的个体。
但是有时,除了全局最大值外,我们还希望找到其他部分(或全部)峰值。为此,可以将每个峰视为小生境,以与其高度成比例的方式提供资源。然后,找到一种在占用资源的个体之间共享(或分配)这些资源的方法,理想情况下,这将促使物种进行相应的分配,最高峰会吸引最多的人,因为它提供的奖励最多,而其他峰由于提供较少的奖励而相应减少物种数量:

小生境
实现共享机制的一种方法是将每个个体的原始适应度值除以(与之相关的)其他所有个体的距离之和。另一种选择是将每个个体的原始适应度除以周围某个半径内的其他个体的数量。

0条评论
作者已关闭评论
c****r
1文章数
0粉丝数
c****r
1 文章 | 0 粉丝
c****r
1文章数
0粉丝数
c****r
1 文章 | 0 粉丝
原创

遗传算法应用场景

2025-03-28 06:19:25
8
0
  1. 数学表示复杂的问题
    由于遗传算法仅需要适应度函数的结果,因此它们可用于难以求导或无法求导的目标函数问题,大量参数问题以及参数混合问题类型。
  2. 没有数学表达式的问题
    只要可以获得分数值或有一种方法可以比较两个解,遗传算法就不需要对问题进行数学表示。
  3. 涉及噪声数据问题
    遗传算法可以应对数据可能不一致的问题,例如源自传感器输出或基于人类评分的数据。
  4. 随时间而变化的环境所涉及的问题
    遗传算法可以通过不断创建适应变化的新一代来响应较为缓慢的环境变化。
    遗传算法的组成要素
    遗传算法的核心是循环——依次应用选择,交叉和突变的遗传算子,然后对个体进行重新评估——一直持续到满足停止条件为止
    算法的基本流程
    以下流程图显示了基本遗传算法流程的主要阶段:

基本遗传算法流程
创建初始种群
初始种群是随机选择的一组有效候选解(个体)。由于遗传算法使用染体代表每个个体,因此初始种群实际上是一组染体。
计算适应度
适应度函数的值是针对每个个体计算的。对于初始种群,此操作将执行一次,然后在应用选择、交叉和突变的遗传算子后,再对每个新一代进行。由于每个个体的适应度独于其他个体,因此可以并行计算。
由于适应度计算之后的选择阶段通常认为适应度得分较高的个体是更好的解决方案,因此遗传算法专注于寻找适应度得分的最大值。如果是需要最小值的问题,则适应度计算应将原始值取反,例如,将其乘以值 (-1)。
选择、交叉和变异
将选择,交叉和突变的遗传算子应用到种群中,就产生了新一代,该新一代基于当前代中较好的个体。
选择 (selection) 操作负责当前种群中选择有优势的个体。
交叉 (crossover,或重组,recombination) 操作从选定的个体创建后代。这通常是通过两个被选定的个体互换他们染体的一部分以创建代表后代的两个新染体来完成的。
变异 (mutation) 操作可以将每个新创建个体的一个或多个染体值(基因)随机进行变化。突变通常以非常低的概率发生。
算法终止条件
在确定算法是否可以停止时,可能有多种条件可以用于检查。两种最常用的停止条件是:
● 已达到最大世代数。这也用于限制算法消耗的运行时间和计算资源
● 在过去的几代中,个体没有明显的改进。这可以通过存储每一代获得的最佳适应度值,然后将当前的最佳值与预定的几代之前获得的最佳值进行比较来实现。如果差异小于某个阈值,则算法可以停止
其他停止条件:
● 自算法过程开始以来已经超过预定时间
● 消耗了一定的成本或预算,例如CPU时间和/或内存
● 最好的解已接管了一部分种群,该部分大于预设的阈值
其他
精英主义 (elitism)
尽管遗传算法群体的平均适应度通常随着世代的增加而增加,但在任何时候都有可能失去当代的最佳个体。这是由于选择、交叉和变异运算符在创建下一代的过程中改变了个体。在许多情况下,丢失是暂时的,因为这些个体(或更好的个体)将在下一代中重新引入种群。
但是,如果要保证最优秀的个体总是能进入下一代,则可以选用精英主义策略。这意味着,在我们使用通过选择、交叉和突变创建的后代填充种群之前,将前 n 个个体( n 是预定义参数)复制到下一代。复制后的的精英个体仍然有资格参加选择过程,因此仍可以用作新个体的亲本。
Elitism 策略有时会对算法的性能产生重大的积极影响,因为它避了重新发现遗传过程中丢失的良好解决方案所需的潜在时间浪费。
小生境与共享
在自然界中,任何环境都可以进一步分为多个子环境或小生境,这些小生境由各种物种组成,它们利用每个小生境中可用的独特资源,例如食物和庇护所。例如,森林环境由树梢,灌木,森林地面,树根等组成;这些可容纳不同物种,它们生活在该小生境中并利用其资源。
当几种不同的物种共存于同一个小生境中时,它们都将争夺相同的资源,从而形成了寻找新的,无人居住的生态位并将其填充的趋势。
在遗传算法领域,这种小生境现象可用于维持种群的多样性以及寻找几个最佳解决方案,每个解决方案均被视为小生境。
例如,假设遗传算法试图最大化具有几个不同峰值的适应度函数:

全局最大值
由于遗传算法的趋势是找到全局最大值,因此一段时间后大多数个体集中在最高峰附近。在图中通过使用 × 标记的位置表示这些点,× 代表了当前代的个体。
但是有时,除了全局最大值外,我们还希望找到其他部分(或全部)峰值。为此,可以将每个峰视为小生境,以与其高度成比例的方式提供资源。然后,找到一种在占用资源的个体之间共享(或分配)这些资源的方法,理想情况下,这将促使物种进行相应的分配,最高峰会吸引最多的人,因为它提供的奖励最多,而其他峰由于提供较少的奖励而相应减少物种数量:

小生境
实现共享机制的一种方法是将每个个体的原始适应度值除以(与之相关的)其他所有个体的距离之和。另一种选择是将每个个体的原始适应度除以周围某个半径内的其他个体的数量。

文章来自个人专栏
文章 | 订阅
0条评论
作者已关闭评论
作者已关闭评论
0
0