问题标签 [genetic-algorithm]
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.
c++ - 如何构建遗传算法类层次结构?
我正在使用遗传算法做一些工作,并想编写自己的 GA 类。由于 GA 可以有不同的方法来进行选择、变异、交叉、生成初始种群、计算适应度和终止算法,我需要一种方法来插入这些不同的组合。我最初的方法是创建一个抽象类,将所有这些方法都定义为纯虚拟方法,并且任何具体类都必须实现它们。例如,如果我想尝试两个相同但具有不同交叉方法的 GA,我将必须创建一个继承自 GeneticAlgorithm 并实现除交叉方法之外的所有方法的抽象类,然后是两个具体类从这个类继承并且只实现交叉方法。
是否有另一种方法可以更好地解决这个问题?
ruby - 在遗传算法中跟踪健身
我仍然在为不死者帖子破解我的旧红宝石(我知道,我知道,停止尝试将帖子从死去的查克手中夺回)。但是代码已经有点失控了,现在我正在研究一种遗传算法,以创造生死攸关的终极战斗,而适应性是战斗持续多长时间。
所以,我已经掌握了它的基础知识;如何调整游戏的属性以及如何获取解决方案的适应度,我想不通的是如何存储适应度,以便我知道以前尝试过组合的时候。
我无法找到太多的遗传密码来查看,更不用说我可以很好地阅读以判断发生了什么的代码。有谁知道这通常是如何完成的,或者只是一个可以帮助我指出正确方向的算法?
artificial-intelligence - 遗传学算法理论题
我目前正在阅读“人工智能:一种现代方法”(Russell+Norvig)和“机器学习”(Mitchell)——并尝试学习 AINN 的基础知识。
为了理解一些基本的东西,我有两个“新手”问题:
Q1:在遗传算法中,给定两个父母 A 和 B 的染色体分别为 001110 和 101101,以下哪个后代可能是由单点交叉产生的?
一个:001101
乙:001110
Q2:以上哪个后代可能是由两点交叉产生的?为什么?
请指教。
genetic-algorithm - 应用于曲线拟合的遗传算法
假设我有一个未知函数,我想通过遗传算法来近似。对于这种情况,我假设它是 y = 2x。
我有一个由 5 个元素组成的 DNA,每个 x 一个 y,从 x = 0 到 x = 4,其中,经过大量试验和计算,我会接近某种形式:
best_adn = [ 0, 2, 4, 6, 8 ]
请记住,我事先不知道它是线性函数、多项式还是更难看的东西,另外,我的目标不是从 best_adn 推断函数的类型,我只想要这些点,所以我以后可以使用它们。
这只是一个示例问题。就我而言,我的 DNA 中不是只有 5 个点,而是 50 或 100 个。用 GA 找到最佳点集的最佳方法是什么?
- 产生 100 个人口,丢弃最差的 20%
- 重组剩下的80%?如何?在随机点切割它们,然后将父亲的 ADN 的第一部分与母亲的 ADN 的第二部分放在一起?
- 突变,我应该如何定义这种问题突变?
- 是否值得使用精英主义?
- 还有其他值得使用的简单想法吗?
谢谢
genetic-algorithm - 如何使用遗传算法求解节点之间的最短路径?
如果我有一个节点网络,我如何使用遗传算法来计算任意两个节点之间的最短路径?
.net - 什么是用于 .NET 的良好遗传算法 (GA) 或粒子群优化 (PSO) 框架?
我想知道你们建议用于实现 PSO 或 GA 等进化优化技术的好的、稳定的框架是什么?
我已经编写了自己的并且我喜欢它们,我有兴趣比较或添加现有的稳定的(或者如果它们是可靠且可扩展的,则只使用它们)。
c - 使用 c#,c/c++ 或 java 通过 GA 改进 BBN
我在我的小项目中遇到了一个小问题,希望有人能帮助我!
我打算在我的游戏 AI 中使用贝叶斯网络作为决策因素,我想改进每一步的决策,有人知道怎么做吗?任何教程/现有实现都会非常好,我希望你们中的一些人可以帮助我。
我听说这个社区的一个程序员为扑克游戏 AI 做了一个很好的实现。我打算像他一样使用它,但在另一个扑克(德克萨斯州)或者 Rentz 中。
寻找 C/c++ 或 c# 或 java 代码。
谢谢,迈克
algorithm - 为遗传算法创建“交叉”函数以改进网络路径
我正在尝试开发一种遗传算法,该算法将找到在指定位置连接给定数量节点的最有效方法。
网络上的所有节点都必须能够连接到服务器节点,并且网络内必须没有循环。它基本上是一棵树。
我有一个可以测量任何给定网络布局的“适合度”的功能。阻止我的是,我想不出一个交叉函数需要 2 个网络结构(父母)并以某种方式混合它们来创建满足上述条件的后代。
有任何想法吗?
澄清:每个节点都有一个固定的 x,y 坐标位置。只能更改它们之间的路线。
artificial-intelligence - 在遗传编程中实现交叉
我正在编写一个基因编程 (GP) 系统(用 C 语言,但这是一个小细节)。我读过很多文献(Koza、Poli、Langdon、Banzhaf、Brameier 等),但有些实现细节我从未见过解释。例如:
我使用的是稳态人口而不是世代相传的方法,主要是为了使用计算机的所有内存,而不是为临时人口保留一半。
Q1。在 GP 中,与 GA 不同,当您执行交叉时,您选择两个父母,但您是创建一个或两个孩子,还是您可以自由选择?
Q2。在稳态 GP 中,与世代系统相反,交叉创建的孩子取代了人口中的哪些成员?这是我没看到讨论过的。是两个父母,还是另外两个随机选择的成员?如果是后者,我可以理解,您可能会使用负锦标赛选择来选择替换成员,但这不会造成过早收敛吗?(在交叉事件之后,人口包含两个原始父母加上这些父母的两个孩子,另外两个随机成员被删除。精英主义是固有的。)
Q3。是否有专门针对 GP 的网络论坛或邮件列表?奇怪的是我还没有找到。雅虎的 GP 组几乎只用于发布公告,Poli/Langdon Field Guide 论坛几乎保持沉默,而像 gamedev.net 这样的通用/游戏编程网站上的 GP 讨论非常基础。
感谢您的任何帮助,您可以提供!
neural-network - 如何使用遗传算法优化神经网络?
我对这个主题很陌生,所以任何帮助都会很棒。我需要的是使用 GA 在 MATLAB 中优化神经网络。我的网络有 [2x98] 输入和 [1x98] 目标,我已经尝试咨询 MATLAB 帮助,但我仍然对该怎么做一无所知:(所以,任何帮助将不胜感激。提前致谢。
编辑:我想我没有像丹在第一个答案中所说的那样说要优化什么。我想最重要的是隐藏神经元的数量。可能还有隐藏层的数量和训练参数,比如 epoch 的数量。抱歉没有提供足够的信息,我还在学习这个。