当前位置: 首页 > 知识库问答 >
问题:

在遗传算法中,变异率实际上指的是什么?

段干俊茂
2023-03-14

我已经实现了我的小遗传算法框架的第一个阿尔法前版本,到目前为止,它工作得非常好。现在,我正在编写文档并完成一些细节。我只是想澄清一些事情。

术语“突变率”。这是否意味着:

>

  • 给定染色体发生突变的可能性?

    染色体中给定基因被修改的可能性?

    或者基因中单个等位基因被修饰的可能性?

    根据以上哪个是正确答案(或者完全不同的答案),还请澄清我是否需要用其他值(例如染色体中的基因数量)来衡量突变率。

  • 共有2个答案

    卫成和
    2023-03-14

    虽然没有一个普遍接受的术语突变率的定义,但在大多数学术环境中,它指的是β,即每个个体在二进制编码遗传算法方案中单个比特的突变概率。

    只有在处理包含多个局部最优解的解空间时,变异率才真正发挥作用,并作为确保全局最优性的纠正措施。但是,它应该被限制在一个较低的值范围内,因为突变率越大,收敛时间越长。

    关于同样的详细讨论可以在这里找到。

    陈琪
    2023-03-14

    我不确定如何实现单个等位基因,但我想说的是,突变率是单个二进制突变的几率(例如,你有DNA 0000,每个二进制数字的25%几率,本例中的零“突变”为1)。

    在我自己做的项目中,我没有衡量突变率。

    编辑。

     类似资料:
    • 在程序里生宝宝, 杀死不乖的宝宝, 让乖宝宝继续生宝宝 所有的遗传算法 (Genetic Algorithm), 后面都简称 GA, 我们都需要一个评估好坏的方程, 这个方程通常被称为 fitness 在 GA 中有基因, 为了方便, 我们直接就称为DNA吧. GA 中第二重要的就是这DNA了, 如何编码和解码DNA, 就是你使用 GA 首先要想到的问题. 传统的 GA 中,DNA我们能用一串二进

    • 几周前,我问了一个关于如何在R中进行优化(使用Optimize R优化向量)的问题。现在我已经掌握了R中的基本优化,我想开始使用遗传算法来解决问题。 考虑到目标函数: 我使用genalg软件包进行优化,特别是“rbga.bin”函数。但问题是一个人似乎不能传递多个参数,即不能传递vol和cov。小地毯是我遗漏了什么,还是理解错误了。 编辑:在genalg包中,有一个名为rbga的函数。垃圾箱就是我

    • 我目前在我的大学学习数据结构课程,在之前的课程中确实做了一些算法分析,但这是我上一门课程中最困难的部分。我们现在正在我的数据结构课程中复习算法分析,所以我要回顾我上一门课程的教科书,看看它在这个问题上说了什么。 在教科书中,它说“对于我们想要分析的每个算法,我们需要定义问题的大小。”在谷歌上搜索时,还不完全清楚“问题大小”到底意味着什么。我试图对问题的大小有一个更具体的定义,这样我就可以在算法中识

    • 我正在尝试用实数遗传算法初始化我的种群。npop是我的人口规模。我创建了一个包含npop行和2列的矩阵。我想用第一列(0,5)和第二列(7,14)之间的随机数填充这个矩阵。问题是,每当我运行这个函数时,我得到的矩阵中充满了零,我有任何语法或逻辑错误吗?

    • 问题内容: 在构建RPM软件包的过程中,我必须指定BuildRoot,以后将在%install中使用它来侵害$ RPM_BUILD_ROOT。我一直认为$ RPM_BUILD_ROOT是RPM执行打包的假安装。然后,在使用RPM软件包进行安装时,它将安装到实际位置。例如: 我认为$ RPM_BUILD_ROOT仅用于打包过程,并且在某些方面,当用户执行“ rpm -ivh package.rpm”

    • 问题内容: 最近,我遇到了原始类型包装器类(如和)中的常量。在API中,第一个定义为: 一个常数,保持double型的正无穷大。它等于Double.longBitsToDouble(0x7ff0000000000000L)返回的值。 其他人也有同样的定义。 我遇到的麻烦是了解这些常数实际上是 什么 。他们实际上并不能 成为 或 代表 正/负无穷大,因为系统本质上是有限的。Java创建者认为仅仅是对

    • 参考资料:http://blog.csdn.net/b2b160/article/details/4680853/(冒昧的用了链接下的几张图) 百度百科:http://baike.baidu.com/link?url=FcwTBx_yPcD5DDEnN1FqvTkG4QNllkB7Yis6qFOL65wpn6EdT5LXFxUCmv4JlUfV3LUPHQGdYbGj8kHVs3GuaK 算法介绍

    • 我正试图把我的头缠在Apache Mesos上,需要澄清几个项目。 我对Mesos的理解是,它是一个安装在集群中的每个物理/VM服务器(“节点”)上的可执行文件,然后提供一个Java API(不知何故),将每个单独的节点视为计算资源(CPU/RAM/等)的集体池。因此,对于使用Java API编码的程序,他们只看到一组资源,而不必担心如何/在哪里部署代码。 因此,首先,我在这里的理解可能是根本错误