问题标签 [evolutionary-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# - C# 中的遗传编程
我一直在为 C# 寻找一些好的遗传编程示例。有人知道好的在线/书籍资源吗?想知道是否有用于进化/遗传编程的 C# 库?
computer-science - 进化算法:最优再增殖分解
它真的在标题中,但对于任何对进化算法感兴趣的人来说,这里有一个细分:
在 EA 中,基本前提是您随机生成一定数量的生物体(实际上只是一组参数),针对某个问题运行它们,然后让表现最好的人存活下来。
然后你用幸存者的杂交种、幸存者的突变以及一定数量的新随机生物重新填充。
这样做几千次,高效的有机体就会出现。
有些人还做一些事情,比如引入多个生物“岛”,它们是允许偶尔杂交的独立种群。
所以,我的问题是:最佳的重新填充百分比是多少?
我一直保持前 10% 的表现,并重新填充 30% 的杂交和 30% 的突变。剩下的 30% 用于新生物。
我也尝试了多岛理论,我也对你的结果感兴趣。
我并没有忘记这正是 EA 可以解决的问题类型。你知道有人在尝试吗?
提前致谢!
genetic-algorithm - 遗传算法中的轮盘赌选择
任何人都可以为轮盘赌选择功能提供一些伪代码吗?我将如何实现这一点:
我真的不明白如何阅读这个数学符号。我从不接受任何概率或统计数据。
algorithm - 轮盘选择算法
任何人都可以为轮盘赌选择功能提供一些伪代码吗?我将如何实现这个:我真的不明白如何阅读这个数学符号。我想要通用算法。
artificial-intelligence - 进化算法和神经网络是否在同一个领域中使用?
我试图了解各类机器学习算法之间的区别。
我知道进化算法的实现与神经网络的实现有很大不同。
然而,它们似乎都倾向于从一组潜在嘈杂的训练/历史数据中确定输入和输出之间的相关性。
从定性的角度来看,与进化算法相比,是否存在更适合神经网络目标的问题域?
我浏览了一些建议以互补方式使用它们的文章。有没有一个像样的用例示例?
algorithm - 进化图像匹配模拟的新适应度测量
我相信很多人已经看过使用遗传算法生成与样本图像匹配的图像的演示。你从噪声开始,逐渐变得越来越接近目标图像,直到你有一个或多或少精确的副本。
然而,我看到的所有示例都使用了相当简单的逐像素比较,从而导致最终图像的“淡入”相当可预测。我正在寻找的是更新颖的东西:一种比天真的方法更接近我们所认为的“相似”的适应度测量方法。
我没有具体的结果——我只是在寻找比默认值更“有趣”的东西。建议?
java - 用 Java 编写的 GA
我正在尝试根据我从“游戏程序员的人工智能技术”一书中学到的技术编写一个遗传算法,该技术使用二进制编码和适应度比例选择(也称为轮盘赌选择)对人口的基因进行选择在程序中随机生成一个二维数组。
我最近遇到了一段伪代码并尝试实现它,但是在我需要做的细节方面遇到了一些问题。我检查了许多书籍和一些开源代码,但仍在努力取得进展。我知道我必须得到人口总适应度的总和,在总和和零之间选择一个随机数,然后如果该数字大于父母将其覆盖,但我正在努力实现这些想法.
由于我的 Java 生锈了,因此非常感谢您对实现这些想法的任何帮助。
artificial-intelligence - 确定在进化算法中要权衡哪些输入
我曾经写过一个玩得很好的俄罗斯方块 AI。我使用的算法(在本文中描述)是一个两步过程。
第一步,程序员决定跟踪对问题“感兴趣”的输入。在俄罗斯方块中,我们可能对跟踪连续有多少间隙感兴趣,因为最小化间隙有助于更容易地放置未来的碎片。另一个可能是平均柱高,因为如果你即将失败,冒险冒险可能是个坏主意。
第二步是确定与每个输入相关的权重。这是我使用遗传算法的部分。只要根据结果随时间调整权重,任何学习算法都可以。这个想法是让计算机决定输入与解决方案的关系。
使用这些输入及其权重,我们可以确定采取任何行动的价值。例如,如果将直线形状一直放在右列将消除 4 个不同行的间隙,那么如果它的权重很高,那么这个动作可以得到很高的分数。同样,将其平放在顶部实际上可能会导致间隙,因此该动作会得到低分。
我一直想知道是否有一种方法可以将学习算法应用于第一步,在那里我们可以找到“有趣”的潜在输入。似乎可以编写一个算法,让计算机首先学习哪些输入可能有用,然后应用学习来衡量这些输入。以前有过这样的事情吗?它是否已经在任何人工智能应用程序中使用?