问题标签 [differential-evolution]

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 投票
3 回答
12714 浏览

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

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

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

0 投票
1 回答
947 浏览

r - 平行微分进化

我一直在玩 R 中的差分进化库,我想知道:这是一种并行化有意义的算法吗?在我看来,您可以将优化间隔分成几个段,在每个段上运行算法,然后比较每个段的结果并返回最小值。

0 投票
1 回答
1831 浏览

java - 使用差分进化的函数值

如何使用差分进化来找到函数函数 f(x) = -x(x+1) 从 -500 到 500 的最大值?我正在制作的国际象棋程序需要这个,我已经开始研究差分进化,但仍然发现它很难理解,更不用说用于程序了。任何人都可以通过以简单的方式向我介绍算法并可能为此类程序提供一些示例伪代码来帮助我吗?

0 投票
2 回答
11364 浏览

artificial-intelligence - 什么是差分进化,它与遗传算法相比如何?

从我目前所读到的内容来看,它们看起来非常相似。微分进化改用浮点数,解叫向量?我不太确定那是什么意思。如果有人可以概述一下两者的优缺点。

0 投票
1 回答
452 浏览

optimization - 差分进化算法中交叉的重要性是什么?

在用于优化问题的差分进化算法中。涉及三个进化过程,即突变交叉和选择

我只是一个初学者,但我已经尝试删除交叉过程,并且与原始算法没有显着差异。

那么在差分进化算法中,交叉的重要性是什么?

0 投票
1 回答
1486 浏览

r - 具有差异化演化的投资组合优化

我遇到了一个优化问题。我需要优化投资组合以衡量回报 Omega。我发现建议可以通过 DEoptim 使用差分进化来完成(Yollin 在R 工具中用于投资组合优化的非常好的幻灯片。可以在那里找到原始代码)。

我试图使这种方法适应我的问题(因为我只更改了数字,我希望没有犯任何错误。这里的作者完全归功于这个想法):

欧米茄的计算公式为 mean(pmax(retu-L,0))/mean(pmax(L-retu,0))

当资产数量非常小(例如 5)时,我得到的结果让我非常满意:资产权重加起来为 0.999???? 它非常接近 1,并且此类投资组合的 Omega 大于任何单一资产的 Omega(否则,为什么不将所有东西都投资于该单一资产)。这可以通过 100 次迭代来实现。但是当我将资产数量增加到 30 时,结果并不令人满意。权重之和为 3 或更多,并且欧米茄低于某些单一资产的权重。我认为这可能是由于迭代次数少(我使用了 1000 次),所以我尝试了 10 000 次,这非常慢。但结果几乎相同:重量加起来超过 1,而 Omega 似乎不是最佳的。使用 10 个资产的算法似乎可以找到接近 1 的权重,但 Omega 低于单个资产的权重。

我的电脑很旧,它有 Intel Core Duo 2 GHZ。但是,这种 1000 次迭代运行约 40 分钟的优化是否正常?

这里可能有什么问题?迭代次数是否太少,或者我对提供的算法的解释是完全错误的。谢谢您的帮助!

0 投票
1 回答
1806 浏览

evolutionary-algorithm - 所有版本的差分进化算法

解释差分进化的基本算法中的所有更新。我无法找到该算法的所有版本。将此算法的所有版本解释为调查,我不清楚维基百科中给出的该算法背后的理论。维基百科也只定义了差分进化的基本算法,但我想要这个算法的所有更新

0 投票
3 回答
1519 浏览

r - 何时以及为什么交叉对差异进化有益?

我为我正在做的一个副项目实现了一个差分进化算法。因为交叉步骤似乎涉及很多参数选择(例如交叉概率),所以我决定跳过它,只使用突变。该方法似乎工作正常,但我不确定如果我引入交叉是否会获得更好的性能。

主要问题:将交叉引入差异进化的动机是什么?您能否提供一个玩具示例,其中引入交叉优于纯突变?

我的直觉是交叉会在二维中产生类似下面的东西。假设我们有两个父向量(红色)。均匀交叉可以在其中一个蓝点产生一个新的试验向量。

我不确定为什么这种探索会是有益的。事实上,如果高适应度解决方案遵循某种线性趋势,这似乎会使性能变得更糟。在下图中,假设红点是当前人口,最优解在右下角。人口正在沿着山谷移动,因此右上角和左下角会产生不好的解决方案。左上角产生“好的”但次优的解决方案。注意均匀交叉如何产生正交试验(蓝色)向改进的方向发展。我使用了 1 的交叉概率和忽略的突变来说明我的观点(参见代码)。我想这种情况在优化问题中可能会经常出现,但可能是误解了一些东西。

注意:在上面的例子中,我隐含地假设人口是在这个空间中随机初始化的(均匀地),并且已经开始在中央山谷(左上到右下)收敛到正确的解决方案。

这个玩具例子是凸的,因此差分进化甚至不是合适的技术。然而,如果这个主题被嵌入到一个多模式的健身环境中,那么交叉似乎可能是有害的。虽然交叉确实支持探索,这可能是有益的,但我不确定为什么人们会选择在这个特定方向进行探索。

上面示例的 R 代码:

后续问题:如果交叉在某些情况下是有益的,是否有一种明智的方法来 a)确定您的特定问题是否会从交叉中受益,以及 b)如何调整交叉参数以优化算法?

一个相关的stackoverflow问题(我正在寻找更具体的东西,例如一个玩具示例):在差分进化算法中交叉的重要性是什么?

一个类似的问题,但不是特定于差分进化:遗传算法中的交叉效率

0 投票
1 回答
3045 浏览

r - ES 计算为列产生不可靠的结果(反向风险):1

我不断收到此错误:ES calculation produces unreliable result (inverse risk) for column: 1使用时出现消息DEoptim。也许我忽略了一些东西,所以我需要一些帮助来解决这个问题。我在网上搜索过,但似乎找不到答案。

我有一个xts名为RETS包含 127 行和 4 列的对象,这些对象具有日志返回:

我已经使用其他系列的日志返回运行此代码并且它可以工作,但我有时会针对一系列运行它并得到诸如此类的错误。

0 投票
1 回答
374 浏览

evolutionary-algorithm - 差分进化的标准误差

是否可以计算差分进化的标准误差?

从维基百科条目:

http://en.wikipedia.org/wiki/Differential_evolution

它不是基于导数的(这确实是它的优势之一),但是你如何计算标准误差呢?

我原以为某种引导策略可能适用,但似乎找不到任何来源,而不是将引导应用于 DE?

巴兹