问题标签 [genetic]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
algorithm - 防止零和博弈中的遗传算法合作
我有一个特定的游戏,它不是字面上的零和游戏,因为积分是在比赛中由游戏授予的,但接近它,在总分的数量有明确上限的意义上,所以你的积分越多得分,您的对手可获得的分数越少。游戏由 5 名玩家进行,没有任何团队。
我正在做一个遗传算法,在几代人之间用伪随机“突变”来对抗自己。
但在几百代之后,总会出现一种模式。该算法最终强烈支持特定玩家(例如:首先玩的玩家)。由于提供“最佳结果”的突变可以作为下一代的基础,这似乎朝着“如果你是第一个玩家,就这样玩(这种方式是一种非常具体但相当随机的技术,糟糕的,或者充其量是平均的结果),如果不是,那么就以这种间接但强烈有利于第一个玩家的特定方式进行游戏”。
然后,对于下一代,轮到被强烈支持的玩家开始完全随机变异,因为无论它做什么,只要算法中支持该玩家的部分仍然完好无损,它就会赢得每一轮。
我正在寻找一种方法来阻止这种特定的进化路线,但我无法弄清楚如何通过你自己的策略来“奖励”胜利而不是胜利,因为你得到了很多帮助。
optimization - 使用交叉遗传算子的优缺点是什么?
例如,我们有这个问题:
最大化函数 f(X) = X^2 ,其中 0 ≤ X ≤ 31
使用二进制编码,我们可以使用 5 位来表示个体。在经历了选择方法之后,我们得到了遗传算子。
对于这个问题(或任何优化问题),以下的优点和缺点是什么:
- 高或低交叉率
- 使用 1 点交叉
- 使用多点交叉
- 使用统一交叉
到目前为止,这是我想出的:
- 高交叉率和多点交叉会降低适应性良好的父母的质量,并产生更差的后代
- 低交叉率意味着解决方案需要更长的时间才能收敛到某个最优值
python - Python:遗传算法性能较弱
我目前正在开展一个学校项目,该项目包括在给定孔隙率的情况下从多孔介质中找到最大的水(因此我们找到了最佳的孔隙分布)。我使用遗传算法通过将介质建模为方形矩阵来解决这个问题,其中 0 表示空隙,1 表示固体介质,2 表示水。我在互联网上查找交叉率、突变率等的最佳值。问题是有时我达到最大值,然后它开始在几代人中下降,有时我在所有几代人的培养基中都被 0 水困住。我不知道我哪里出错了。如果您需要进化过程或交叉的代码,请随时在评论中告诉我。提前致谢。
交叉:此功能交叉两种介质并保持孔隙率,孩子应与父母双方具有相同的孔隙率。
该交叉是两点交叉。
进化代码:
编辑:将突变率提高到 0.05 后,遗传算法给了我很好的结果,但这是否意味着我失去了一些父母基因?另一个问题,如果我选择人口作为第一次 GA 运行的结果并在下一次运行中使用它,它会提高性能吗?
algorithm - 将遗传算法与局部优化相结合
我通常对将遗传算法与一些局部优化相结合并使用这种方法进行铁路调度优化感兴趣。如果有人能引导我找到本主题中的资源或示例,我将不胜感激,因为我还无法在互联网上找到相关信息。这里有类似的讨论
r - 覆盖R中if语句的先前迭代
我对 R 非常陌生,并且很难得到答案,所以我终于屈服于发布 - 所以提前道歉。
我正在使用遗传算法来优化对象的形状,并希望收集原型制作的中间步骤。我正在使用 genalg 的包允许监视功能来跟踪我可以很好地打印的数据。但我想将它存储在数据框中以供其他用途,并继续观察它是否会覆盖其他迭代。这是我的监控功能代码:
我知道这在 for 循环中有效,基于搜索没有问题,所以我一定做错了什么或者 if 语法不能做到这一点?
提前真诚感谢您的宝贵时间。
metadata - 从基因组 gbff 文件中提取元数据
我有超过 1000 个 .gbff.gz 基因组文件,我想从每个文件中提取元数据,并将元数据条目放在单独的列中。
neo4j - 未找到 Neo4j 最低共同祖先节点
我已经加载了 DNA SNP 的分层树 (DAG)。我想确定最低的共同祖先。
此查询有效,产生单个正确节点:
但是,这没有产生任何结果:
即使寻找两个收益节点的祖先的两个查询,其中一些是共享的:
和
似乎问题在于 R-Z11 在第二个查询的路径中,并且它本身就是祖先。换句话说,有时 LCA 处于最短路径的末端。有没有办法解决这个问题,以便 R-Z11 作为结果返回它是否在最短路径中?
python - 根据内部参数之一删除(或替换)多级列表中的项目
所以这里的目标是替换人口(列表)中的孩子的父母,我的方法是删除父母然后附加孩子,基于相同的计数器。列表的结构是[[chromosome],[fitness],[counter]]
,但是它们并不完全相同,因为我在选择过程中操纵了适应度以避免 0 概率。
我正在尝试索引具有相同计数器的项目并将它们从列表中删除,然后下一步将只针对append
孩子。
我一直在尝试一些不同的方法,但我无法让它正常工作,关于如何解决这个问题的任何想法?此外,如果有一种方法可以直接由孩子们替换它们而无需执行 2 个步骤(删除和附加),那也将非常受欢迎。谢谢!!
python - python遗传算法找到最优解
我解释说,我正在尝试开发一个程序来根据接收到的参数优化系统。我的程序将不得不改变这些参数以尝试找到最佳组合。
这是简化我的问题的代码:
我尝试(尝试)找到最大的数字,而不是天真地测试所有参数。因此使用遗传算法。1参数是列表参数中包含的列表,列表的内容是我的参数的一个varariante
知道在我的函数/我的系统中,一个不应该有 2 次相同的参数,例如这不应该发生: print (MySystem (parameters [1] [0], parameters [1] [0])) 或这个 print (MySystem(参数[2] [1],参数[2] [0]))
另一方面,参数的数量包含在 1 和 4 中(可以有 1、2、3 或 4 个参数)
在这里解决我的问题是我考虑的数据: 个人:它是带有名称的参数的变体(“toto1”,“tata3”,“toto2 = 12”......等) 人口:变体的集合参数的适应度:它是根据参数的函数的结果一个电路:一组参数
但与商务旅行者不同的是,我没有起始数据 => 也就是说我没有 GPS 坐标。正是在这个级别上,我被困在解决我的问题上。
谁能帮我?
编辑:
我一直在寻找一些示例,说明如何使用 Python 中的遗传算法方法找到函数达到最大值的点。我看了这个教程 https://lethain.com/genetic-algorithms-cool-name-damn-simple/
我的目标是找到“mySysteme”函数的较小数字我设置了一个新代码:je re-explique mon questione plus simplement。J'ai 遇到了 un code plus complet,加上 clair avec un algo génétique。
我更新了新代码。我的问题:我希望我的程序找到较小的数字
python - 遗传python算法制作最小的单词集
我有一门人工智能课程,我有一个练习来编写一个生成尽可能短的句子的代码(就字符数而言)我有一个 list2D 离开这只是单词列表,没有真正的英文句子。我不需要正确的英文句子
我必须使 3 个单词的句子尽可能小(以字符数计),我之前提出的示例的解决方案是“a do red”
这是我在遗传算法中所做的,我通过修改每个 gen 0.05% 的 pop 来寻找最有价值的 patite。
一个个体是一个句子,一个群体是一个短语集,我尝试生成尽可能小的句子。
问题是价值没有改变。在此先感谢您的帮助。