NEAT:指定

2023-12-21

我试图自己使用原始论文来实现整洁,但被卡住了。

假设在上一代我有以下物种:

Specie 1:     members: 100    avg_score: 100
Specie 2:     members: 150    avg_score: 120
Specie 3:     members: 300    avg_score: 50
Specie 4:     members: 10     avg_score: 110

我现在对下一代的尝试。如下:

  1. 从每个物种中,删除除一个随机基因组之外的每个基因组。
  2. 将每个基因组放入物种中/也许创建一个新基因组
  3. 将物种的得分设置为该物种中每个基因组得分的平均值。

    4.1 通过杀死每个物种中最差的 90% 来繁殖。

    4.2 根据分数选择一个物种。

    4.3 从该物种中选择2个基因组并培育出新的基因组。

我不确定这是否是正确的尝试,尤其是当我“杀死”了 90% 的基因组时。 这个百分比值是我现在随机选择的(这只是一个概念)。

如果一个物种在被杀死后有 0 个成员。那么它就灭绝了吗?

在我给出的例子中,如果我杀死 90%,Specie 4 很可能会灭绝。

我的尝试是否正确,或者一个物种通常是如何灭绝的?


首先,我强烈建议不要尝试从头开始实施 NEAT。这是一件比乍看起来要复杂得多的事情(请随意查看许多可用实现的公共存储库)。

现在,更具体地回答您的问题:

NEAT有很多种口味。就您而言,您的疑虑似乎涉及精英主义的概念,是的,这通常是您需要自己设定的参数。通常该算法的工作原理如下:

  1. 物种基因组。也就是说,将它们排列成给定数量的物种,使彼此更接近的物种放在一起(例如,k 均值物种形成)。
  2. 选拔精英。您从每个物种中保留给定数量或百分比的个体,并将它们传递给新一代。根据您如何应用这一点,每个物种中总会至少有一名成员存活下来!
  3. 根据适应性(或许也根据物种的适应性)选择用于繁殖的基因组。这也允许不同的特定实现风格。
  4. 再生产。有无性繁殖(所选基因组的变异)和有性繁殖。有性生殖的原理是从两个父母那里获取基因(同样是不同的实现方式),然后对一些基因进行突变。存在物种间和物种内的有性繁殖(来自同一物种或不同物种的另一亲本),但您可以随意禁用其中任何一个。
  5. 重新评估后代(设置新的适应度值)。
  6. 物种形成。

请注意,物种形成会定期重新应用(通常是每一代),因此物种实际上并没有一个强有力的定义(没有什么能真正阻止精英基因组,不加改变地复制到下一代,分配给新物种)。

如果您使用固定的种群规模和 k 均值物种形成,则无论如何都会有 k 个物种。从某种意义上说,它们每次迭代都是新物种。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

NEAT:指定 的相关文章

  • 使用Visual Genome API + python3使用及数据集详情

    Visual Genome数据集 Visual Genome 主页Visual Genome APIVisual Genome Python DriverVisual Genome 论文 注意 xff0c API多为python2的实现 x
  • 遗传算法中防止近亲繁殖和单一栽培(新手问题)

    我正在写一个遗传算法 我的人口很快就形成了单一文化 我使用的是具有少量离散基因 每个个体 24 个基因 的小群体 32 个个体 和单点交叉交配方法 将其与轮盘赌选择策略结合起来 很容易看出所有遗传多样性是如何在短短几十代内消失的 我想知道的
  • 轮盘赌选择算法[重复]

    这个问题在这里已经有答案了 谁能提供一些轮盘赌选择函数的伪代码 我将如何实现这个 我真的不明白如何阅读这个数学符号 我想要通用算法 其他答案似乎假设您正在尝试实现轮盘赌游戏 我认为您问的是进化算法中的轮盘赌选择 这是一些Java代码实现轮盘
  • Python multiprocessing.pool 与类目标函数和神经进化的交互

    警告 这将是很长一段时间 因为我想尽可能具体 确切的问题 这是一个多重处理问题 我确保我的类都按照之前实验中构建 预期的方式运行 编辑 事先说过线程 当我在线程环境中运行问题的玩具示例时 一切正常 然而 当我转向真正的问题时 代码就崩溃了
  • 如何防止遗传算法收敛于局部极小值?

    我正在尝试使用遗传算法构建 4 x 4 数独求解器 我对值收敛到局部最小值有一些问题 我正在使用排名方法并删除排名底部的两个答案可能性 并将它们替换为排名最高的两个答案可能性之间的交叉 为了获得避免局部最小值的额外帮助 我还使用了突变 如果
  • NEAT:指定

    我试图自己使用原始论文来实现整洁 但被卡住了 假设在上一代我有以下物种 Specie 1 members 100 avg score 100 Specie 2 members 150 avg score 120 Specie 3 membe
  • 用遗传算法建立排名,

    BIG 版本后的问题 我需要使用遗传算法建立排名 我有这样的数据 P a gt b 0 9 P b gt c 0 7 P c gt d 0 8 P b gt d 0 3 现在 让我们解释一下a b c d作为足球队的名称 以及P x gt
  • 用C#编写0-1背包的模拟退火算法

    我正在学习模拟退火算法 并且有一些关于如何修改示例算法来解决 0 1 背包问题的问题 我在CP上发现了这段很棒的代码 http www codeproject com KB recipes simulatedAnnealingTSP asp
  • 动画系统的神经网络大小

    我决定使用神经网络来为我拥有的动画引擎创建行为 神经网络为我身体的每个部位接收 3 个向量和 1 个欧拉角 第一个向量 3 是位置 第二个向量是速度 第三个向量是角速度 欧拉角是身体部位的旋转角度 我的身体有 7 个部位 这些数据类型中的每
  • 遗传算法:如何在“子集”问题中进行交叉?

    我有一个问题正在尝试用遗传算法解决 问题是选择 100 个整数的某个子集 比如 4 这些整数只是代表其他内容的 id 顺序并不重要 问题的解决方案是一组整数而不是有序列表 我有一个很好的健身功能 但在交叉功能上遇到了麻烦 我希望能够将以下两
  • 通过适应度函数从群体中选择个体

    我一直在研究一种算法 我需要从大小为 k 的群体中选择 n 个个体 其中 k 比 n 大得多 所有个体都有适应度值 因此选择时应优先考虑较高的适应度值 然而 我不想简单地选择最好的n个人 最差的人也应该有机会 自然选择 因此 我决定找到人群
  • NEAT 错误 - AttributeError:“tuple”对象没有属性“connections”

    我目前正在尝试创建一个 NEAT 算法来解决 FlappyBird 但在运行我的代码时遇到错误 参见标题 目前我已经设置了我的run功能和我的eval genomes功能 我已经简化了它们以删除pygame并试图将其保留在neat pyth
  • C++ 遗传算法的最佳数据结构?

    我需要实现一个针对我的问题 大学项目 定制的遗传算法 第一个版本将其编码为短矩阵 每条染色体的位数x人口大小 这是一个糟糕的设计 因为我声明了一个短路 但仅使用 0 和 1 值 但这只是一个原型 并且按预期工作 现在是时候开发一个新的了 改
  • 遗传算法 - 路径的交叉和变异算子

    我想知道是否有人知道图中路径的直观交叉和变异运算符 谢谢 问题有点老了 但问题似乎没有过时或解决 所以我认为我的研究仍然可能对某人有帮助 就 TSP 问题而言 突变和交叉是相当微不足道的 在最短路径或最优的情况下 每个突变都是有效的 即因为
  • 访问 ArrayList> 元素

    我有一个ArrayList of ArrayList我需要找到一种访问元素的简单方法 以便更容易理解 我已经制定了我想要实现的目标 如上图所示 主要ArrayList由组成m ArrayList 我希望通过使用 a 来获取元素get从 0
  • NSGA-II(非支配排序算法)

    我研究过非支配排序算法 nsga II 此链接给出了算法 http church cs virginia edu genprog images 2 2f Nsga ii pdf http church cs virginia edu gen
  • 使用正整数参数优化

    我需要解决一个需要比较具有相同列数的两个矩阵的问题 其中之一被操纵 直到获得最佳匹配 我对两个矩阵之间的差异进行评分的方式非常复杂 我仍然需要最终确定它 目前我真正感兴趣的是找到一种仅适用于正整数的搜索 优化算法 我创建了一个简单的示例 其
  • 无效的命令名称“tk_chooseDirectory”错误

    我使用 bioconductor 进行 WES 管道 并使用 tk choose dir 选择用户存储输入文件的目录 并将其存储以供进一步使用 这里是命令行 library tcltk dataDir lt dirname tk choos
  • 如何防止我的程序陷入局部最大值(前馈人工神经网络和遗传算法)

    我正在开发一个前馈人工神经网络 ffann 它将以简单计算的形式获取输入并返回结果 充当袖珍计算器 结果不会很准确 人工网络使用遗传算法对权重进行训练 目前我的程序陷入局部最大值 正确答案为 5 6 误差范围为 1 30 正确答案 10 误
  • 为什么在我的遗传算法中添加交叉会给我带来更糟糕的结果?

    我已经实现了遗传算法来解决旅行商问题 TSP 当我仅使用突变时 我找到了比添加交叉更好的解决方案 我知道普通的交叉方法不适用于 TSP 所以我实现了有序交叉 http www permutationcity co uk projects m

随机推荐

  • 使用 Chrome 进行 WebStorm 调试 - 具有有用控制台和在 WebStorm 中设置断点的最佳工作流程

    我想要实现的主要目标是直接在 WebStorm 中设置断点 而不必再次在 Chrome 中查找它们 我目前以警告作为最快的方法来做到这一点 而不丢失 Chrome 中可用的任何功能 我目前正在尝试从在 Chrome 中调试 JavaScri
  • 使用素数输入维度训练 CNN 的问题

    我目前正在使用 Keras 自动编码器 开发 CNN 模型 我的输入是这种类型 47 47 3 即具有 3 RGB 层的 47x47 图像 我过去曾使用过一些 CNN 但这次我的输入尺寸是素数 47 像素 我认为这会导致我的实现出现问题 特
  • 如何在 JavaScript 中将 Ajax 转换为 Fetch API?

    所以我正在使用RiveScript 的 JavaScript 端口 https cdnjs cloudflare com ajax libs rivescript 1 17 2 rivescript js它使用ajax 当然我不想再使用jQ
  • 如何跟踪Linux内核中的write系统调用?

    我正在尝试这样做 我通过 iperf 一种开源工具 从一台机器向另一台机器发送数据包 我想跟踪写入系统或发送调用 请帮助我做到这一点 如果有人可以指导通过 Ftrace 框架来跟踪系统调用 否则通过任何其他跟踪工具就太好了 困难的部分是准确
  • Git 克隆、推送和拉取都挂起,没有消息

    直到昨天 git在我的电脑上完美运行 现在 每当我尝试推送 拉取或克隆存储库时 git 都会挂起 我已经尝试过 SSH 和 HTTPS 与围绕此问题发布的许多其他 StackOverflow 问题不同 我的操作在同一早期阶段挂起 例如 运行
  • 如何在 Bazel 中静态链接系统库?

    如何在大多数静态模式下静态链接系统库 linkstatic 1 我尝试使用 Wl Bstatic lboost thread Wl Bdynamic 或 Wl Bstatic lboost thread Wl Bdynamic 但它们都不起
  • 不可见字符 - ASCII

    有没有无形的人物 我已经在谷歌上检查了隐形字符 最终得到了很多答案 但我不确定这些答案 Stack Overflow 上的人可以告诉我更多相关信息吗 我还检查了 Facebook 上的个人资料 发现该用户的个人资料中没有任何姓名 这怎么可能
  • 从 aws cloudformation 描述堆栈获取输出

    我正在使用下面的方法来获取堆栈信息 http docs aws amazon com cli latest reference cloudformation describe stacks html我想通过 AWS Cli aws clou
  • 对带有&不带重定向的“mysql -e”输出格式有点好奇

    说我跑步的时候mysql u user p e select id from db users limit 1 I got id 8434 当我将输出 标准输出重定向到某个文件时 例如mysql u user p e select id f
  • 写入 webroot 目录之外的文本文件

    我正在尝试使用 PHP 读取和写入文本文件 使用 html 页面上的按钮读取文件 该文件是使用 html 页面上的按钮编写的 该按钮从文本框中获取参数 当文本文件位于 webroot 目录中时 我成功写入文本文件 我希望能够读取 写入位于
  • 如何检测 jQuery 触发事件完成?

    我试图触发依赖于第一个事件的第二个事件 如下所示 productFamilyId val data contents productfamily productFamilyId trigger change function product
  • 使用起订量和 TDD,从哪里开始?

    我有一个服务器应用程序 我想知道如果我想开始实施 TDD 并使用 Moq 我应该从哪里开始 我可以读哪些关于这个主题的好书 而且不太 面向网络 我对此事有疑问 例如 我应该模拟我想要测试的每个对象 还是只模拟那些我无法实现的对象 例如文本编
  • 如何在 R 中添加副标题并更改 ggplot 图的字体大小?

    我尝试使用添加字幕 opts subtitle text 但什么也没有出现 主标题确实有效 opts title text 我还想为轴 标签和坐标 使用更大的字体 但我不知道该怎么做 theme get 将向您显示可以使用的 隐藏 选项op
  • UnboundLocalError:局部变量...在赋值之前引用[重复]

    这个问题在这里已经有答案了 import hmac base64 hashlib urllib2 base https def makereq key secret path data hash data path chr 0 data s
  • 未捕获的类型错误:数据[选项]不是函数 bootstrap.js:1215

    我使用 bootstrap lightbox 时收到以下错误here http ashleydw github io lightbox Uncaught TypeError data option is not a function boo
  • 模拟 Photoshop 的“色彩范围”算法

    我正在尝试用在服务器上完成的自动过程来替换在 PhotoShop 中完成的手动过程 目前 在 PhotoShop 中 颜色范围 工具用于使用 模糊度 系数来选择一系列颜色 并根据处理的部分从黑色或白色开始 我最初的方法包括使用 L a b
  • Midas/DataSnap 项目中的 DUnit 测试

    如何在 Delphi 2006 的 Midas DataSnap 项目中设置 DUnit 测试 Edit 如何在 TRemoteDataModule 中设置 Dunit 测试 Delphi 2006 中的项目向导不适用于 TRemoteDa
  • @XmlRootElement 和 抛出 IllegalAnnotationExceptions

    当我编组此类的实例时 XmlRootElement public static class TestSomething
  • AWS DynamoDB 始终面向互联网

    Question 试图找到一种将 DynamoDB 放入 VPC 中的方法 但目前尚未找到 对于 Lambda 它可以位于具有来自 VPC 子网的 IP 的 ENI 的 VPC 内 然后 Lambda 在没有 NAT 的情况下没有任何互联网
  • NEAT:指定

    我试图自己使用原始论文来实现整洁 但被卡住了 假设在上一代我有以下物种 Specie 1 members 100 avg score 100 Specie 2 members 150 avg score 120 Specie 3 membe