问题标签 [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.

0 投票
2 回答
4340 浏览

montecarlo - 比较蒙特卡罗方法和进化算法

蒙特卡洛方法进化算法之间有什么关系?从表面上看,它们似乎是用于解决复杂问题的不相关的模拟方法。哪种问题最适合?他们能解决同样的问题吗?两者之间有什么关系(如果有的话)?

0 投票
3 回答
12714 浏览

evolutionary-algorithm - 解释差分进化方法

有人可以解释一下差分进化方法吗?维基百科的定义非常技术性。

一个简单的解释和一个简单的例子将不胜感激:)

0 投票
2 回答
1176 浏览

optimization - 将决策问题转化为优化问题?(进化算法)

决策问题不适合在进化算法中使用,因为无法优化/进化简单的正确/错误适应度度量。那么,将决策问题转换为优化问题有哪些方法/技术?

例如,我目前正在研究一个问题,即个人的适应度在很大程度上取决于它产生的输出。根据基因的顺序,一个人要么不产生输出,要么产生完美的输出——没有“中间”(因此,没有山可以爬)。个体基因排序的一个微小变化可能会对个体的适应性产生巨大影响,因此使用进化算法本质上相当于随机搜索。

如果您知道的话,一些参考文献会很好。

0 投票
1 回答
2708 浏览

genetic-algorithm - 为什么这个遗传算法停滞不前?

Roger Alsing 编写了一个进化算法,用于使用 C#重新创建蒙娜丽莎。他的算法很简单:

  1. 生成一个大小为 2 的随机种群。
  2. 用最适合的克隆替换最不适合的个体。
  3. 变异其中一个个体。
  4. 转到第 2 步

有一个名为Watchmaker的 Java 进化算法框架。作者使用真正的遗传算法重新实现了蒙娜丽莎问题:http ://watchmaker.uncommons.org/examples/monalisa.php

开始时还不错,但在 30 分钟内,Watchmaker 的实现因近似不佳而停滞不前,而 Roger 的实现看起来接近完成。我尝试使用这些设置,但没有太大帮助。为什么 Watchmaker 的实施比 Roger 的慢得多,为什么会停滞不前?

链接

0 投票
3 回答
831 浏览

genetic-algorithm - 使用遗传编程的蚁群行为

我正在研究能够使用基因编程进行食物觅食行为的进化蚂蚁,正如 Koza在这里所描述的那样。每个时间步,我遍历每只蚂蚁,执行它的计算机程序(同一个程序被蚁群中的所有蚂蚁使用)。目前,我已经定义了简单的指令,如MOVE-ONE-STEPTURN-LEFTTURN-RIGHT等。但我也有一个PROGN按顺序执行参数的函数。我遇到的问题是,因为PROGN可以按顺序执行指令,这意味着蚂蚁可以在一个时间步内执行多个操作。与自然不同,我不能并行运行蚂蚁,这意味着一只蚂蚁可能会去执行几个动作,操纵环境,而所有其他蚂蚁都在等待轮到他们。

我只是想知道,这是通常的做法,还是有更好的方法?Koza 似乎没有提及任何关于它的事情。问题是,我想扩展场景以拥有其他代理(例如敌人),这可能依赖于在单个时间步中仅发生一次的事情。

0 投票
5 回答
14637 浏览

genetic-algorithm - 遗传算法和进化策略有什么区别?

我已经阅读了一些书籍的介绍性部分以及关于这两个主题的一些论文,在我看来这两种方法几乎完全相同。也就是说,我还没有时间真正深入研究这些主题,所以我可能错了。

遗传算法和进化策略有什么区别?是什么让它们不同,它们的相似之处在哪里?

0 投票
5 回答
3876 浏览

algorithm - 遗传算法中的交叉方法

在阅读遗传算法的交叉部分时,书籍和论文通常指的是简单地交换两个选定候选者的数据中的比特的方法,这些候选者要复制。

我还没有看到用于实际行业应用的已实现遗传算法的实际代码,但我发现很难想象它足以对简单的数据类型进行操作。

我一直认为遗传算法的各个阶段将在涉及复杂数学运算的复杂对象上执行,而不是仅仅交换单个整数中的一些位。

甚至维基百科也只是列出了这些类型的交叉操作。

我是否遗漏了一些重要的东西,或者这些交叉方法真的是唯一使用的东西吗?

0 投票
3 回答
678 浏览

c++ - 哪种进化算法用于优化二元问题?

在我们的程序中,我们多年来一直使用遗传算法来解决 n 个变量的问题,每个变量都有一组固定的 m 个可能值。这通常适用于约 1,000 个变量和 10 种可能性。

现在我有一个新任务,其中每个变量只有两种可能性(开/关),但我可能需要解决具有 10,000 个或更多变量的系统。现有的 GA 确实有效,但解决方案的改进非常缓慢。

我发现的所有 EA 都是为连续或整数/浮点问题而设计的。哪一个最适合二元问题?

0 投票
3 回答
529 浏览

algorithm - 类似背包优化问题的遗传算法

我有一个优化问题,我正在尝试使用遗传算法来解决。基本上,有一个包含 10 个绑定实值变量的列表(-1 <= x <= 1),我需要最大化该列表的某些功能。问题是列表中最多只有 4 个变量可能是 != 0 (子集条件)。

从数学上讲:对于某些函数 f: [-1, 1]^10 -> R min f(X) st |{var in X with var != 0}| <= 4

f 的一些背景知识:该函数与任何类型的背包目标函数(如 Sum x*weight 或类似的函数)都不相似。

到目前为止我已经尝试过:

只是基因组 [-1, 1]^10 的基本遗传算法,具有 1 点交叉和变量的一些高斯突变。我试图通过仅使用前 4 个非零(零足够接近 0)值来对适应度函数中的子集条件进行编码。这种方法效果不佳,算法停留在前 4 个变量上,并且从不使用超出该变量的值。我看到了 01-knapsack 问题的某种 GA,这种方法效果很好,但显然这只适用于二进制变量。

你会推荐我接下来尝试什么?

0 投票
2 回答
845 浏览

genetic-algorithm - 遗传算法中终止条件的书籍资源

我目前正在写一篇关于遗传算法的论文。我想有一个关于终止条件的小部分,它决定了算法何时必须停止。

我发现了这个不错的网站:

http://www.nd.com/genetic/termination.html

其中列出了一些很好的方法,通过这些方法可以确定遗传算法中的终止条件。然而,负责我论文的教授非常不愿意接受随机的互联网站点作为来源。

您能否提供一些关于书籍的建议(如果我能以电子书的形式获得它们会非常好),其中包含有关这些终止条件的更多信息,并且可能会扩展各种方法的优点或缺点?