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:指定 的相关文章

  • 神经网络如何使用遗传算法和反向传播来玩游戏?

    我碰到YouTube 上这段关于遗传算法的有趣视频 正如您在视频中看到的 机器人学会了战斗 现在 我已经研究神经网络一段时间了 我想开始学习遗传算法 这在某种程度上将两者结合起来 如何结合遗传算法和神经网络来做到这一点 在这种情况下 人们如
  • 遗传算法中防止近亲繁殖和单一栽培(新手问题)

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

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

    我需要求解联立线性方程 具有 7 个未知数的 5 个方程 即欠定问题 其中变量在很大范围内变化 0 1 00 000 有人可以建议我应该使用什么健身功能吗 我猜你指的是一个由 5 个线性方程组和 7 个变量组成的系统 这张纸似乎显示了您正在
  • SpyderKernelApp 警告没有这样的通讯

    通过 Anaconda 在spyder 上运行 GA 代码 脚本会运行到最后并在运行测井仪之前运行 见下文 Well Plotter pdf matplotlib backends backend pdf PdfPages ROP Log
  • 将DEAP(遗传算法库)与spark结合使用

    是否可以使用 DEAP http deap readthedocs io en master 与 Spark 集群来映射适应度评估函数 我想运行 GA 但适应度函数相当长 我计划将其分布在 Spark 集群上 你应该看看使用多个处理器DEA
  • 遗传算法中的轮盘选择

    谁能提供一些轮盘赌选择函数的伪代码 我将如何实现这个 我真的不明白如何阅读这个数学符号 我从来没有做过任何概率或统计数据 我自己这样做已经有几年了 但是在谷歌上很容易找到以下伪代码 for all members of population
  • 人工智能如何为战舰进行基因编程建模

    我有一个关于基因编程的问题 我将研究遗传算法游戏名为战舰 我的问题是 我如何决定人工智能进化的 决策 模型 这是如何运作的 我已经阅读了多篇论文和多个答案 这些论文和答案只是谈到使用不同的模型 但找不到具体的内容 不幸的是 我显然需要集中精
  • 为 qsort 的结构编写比较函数?

    我在编写比较函数时遇到问题qsortC 中的函数 这是我目前拥有的 int cmpfunc const void a const void b return Individual a gt fitness Individual b gt f
  • 进化算法:最优重新群体分解

    这确实是标题中的全部内容 但对于任何对进化算法感兴趣的人来说 这里有一个细分 在 EA 中 基本前提是随机生成一定数量的有机体 实际上只是参数集 针对问题运行它们 然后让表现最好的有机体生存下来 然后 你会重新填充幸存者的杂交品种 幸存者的
  • 动画系统的神经网络大小

    我决定使用神经网络来为我拥有的动画引擎创建行为 神经网络为我身体的每个部位接收 3 个向量和 1 个欧拉角 第一个向量 3 是位置 第二个向量是速度 第三个向量是角速度 欧拉角是身体部位的旋转角度 我的身体有 7 个部位 这些数据类型中的每
  • 通过适应度函数从群体中选择个体

    我一直在研究一种算法 我需要从大小为 k 的群体中选择 n 个个体 其中 k 比 n 大得多 所有个体都有适应度值 因此选择时应优先考虑较高的适应度值 然而 我不想简单地选择最好的n个人 最差的人也应该有机会 自然选择 因此 我决定找到人群
  • 遗传算法中的轮盘赌选择。需要先对人口进行排序吗?

    在遗传算法中 当使用轮盘赌选择方法选择交叉成员时 是否需要首先按适应度等级对群体进行排序 可能性似乎是 首先按适应度升序对人口进行排序 按适应度降序对人口进行排序 不要对人口进行排序 让轮盘赌球落到它可能落下的地方 我认为无论哪种方式排序都
  • 井字游戏的遗传算法

    因此 我被分配的问题是使用遗传算法编写 5x5x5 井字棋玩家 我的方法是从 3x3 开始 让它发挥作用 然后扩展到 5x5 然后扩展到 5x5x5 它的工作方式是这样的 模拟一大堆游戏 并在每个游戏的每个回合中 在相应的表 作为 C st
  • 遗传算法/遗传编程解决方案有哪些好的例子? [关闭]

    就目前情况而言 这个问题不太适合我们的问答形式 我们希望答案得到事实 参考资料或专业知识的支持 但这个问题可能会引发辩论 争论 民意调查或扩展讨论 如果您觉得这个问题可以改进并可能重新开放 访问帮助中心 help reopen questi
  • K-means:初始中心不明显

    我正在使用通航套餐 https cran r project org web packages GA GA pdf我的目标是找到 k 均值聚类算法的最佳初始质心位置 我的数据是 TF IDF 分数中单词的稀疏矩阵 可下载here https
  • 访问 ArrayList> 元素

    我有一个ArrayList of ArrayList我需要找到一种访问元素的简单方法 以便更容易理解 我已经制定了我想要实现的目标 如上图所示 主要ArrayList由组成m ArrayList 我希望通过使用 a 来获取元素get从 0
  • GA 中的排名选择?

    我已经实施了Roulette wheel selection in GA TotalFitness sum Fitness ProbSelection zeros PopLength 1 CumProb zeros PopLength 1
  • 如何使用 Bourbon Neat Framework 实现移动优先

    我一直在使用 bourbon clean 来进行桌面优先布局 效果很好 不过 我想做一个移动优先版本 从移动开始 然后逐步向上 默认网格为 12 列 对于移动设备 我通常使用 4 列网格 我尝试将网格更改为 4 列 然后扩展到 12 列 但
  • 当将遗传算法与 lme4 一起使用时,glmulti 无限期运行

    我在 R 中使用 glmulti 进行模型平均 我的模型中有大约 10 个变量 使得详尽的筛选不切实际 因此我需要使用遗传算法 GA 调用 method g 我需要包含随机效应 因此我使用 glmulti 作为 lme4 的包装器 此处提供

随机推荐

  • 使用 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