问题标签 [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 投票
1 回答
196 浏览

c - DEoptim appears to freeze in R

I have encountered a situation where DEoptim appears to freeze. I can't figure out why and was hoping somebody with more experience in C could take a look at it.

It is rather difficult to create a reproducible example, so I simply saved the entire environment 50 iterations before the DEoptim freezes. The file below, 'Envir650.Rdata' can be found here.

Many thanks in advance!

EDIT: I hope the problem is now reproducible.

0 投票
2 回答
4644 浏览

python - 使用 scipy 差分进化对参数的约束

我正在尝试使用差异进化来根据成本优化可用性。但是,我在这里有三个未知参数(a、b、c),我可以使用边界来定义范围。但是,我想将附加约束定义为 a+b+c <= 10000。我正在使用 python 来执行此操作,并且我尝试在差分进化中使用选项“args”,但它不起作用。任何信息将不胜感激。

0 投票
1 回答
94 浏览

java - 一次将三个功能实现到不同的进化优化器中

我已经按照https://github.com/skarjoko/differential-evolution/blob/master/Main.java上的说明安装了差分进化 (DE) 优化器,并且只需在 eclipse 中运行代码就可以很好地轻松让我优化示例函数。

现在我的问题是:在默认模式下,DE 只运行一个奇异函数的优化(例如 f(x1) = y1 ),只抛出一个函数的值。

我需要优化的模型包含三个函数(例如 f(x1) = y1, f(x2) = y2, f(x3) = y3) ),我需要为每个函数分别设置一个值。我应该如何继续在 DE 中实现这三个功能?

关于模型的背景信息:我需要优化的模型由可能采用或可能不采用某种行为的人的三个可能部分组成(刚刚了解创新的部分人、打算使用创新的人的部分和一小部分已经使用创新的人)。采用的扩散是在基于时间和空间离散代理的模型中模拟的。

预先感谢您的帮助!

0 投票
1 回答
1533 浏览

python - Scipy.optimize different_evolution 索引错误:元组索引超出范围

我有一个平滑函数 f(x) = sin(x / 5) * exp(x / 10) + 5 * exp(-x / 2) 任务是找到一个非平滑函数 h(x) 的最小值= int(f(x)) 在 1 到 30 的区间上。换句话说,f(x) 的每个值都转换为 int 类型,并且该函数只接受整数值。

我正在使用 2 种方法从 scipy.optimize 中找到最小值:最小化和差分进化。最小化给了我-5的结果,而difficult_evolution给了Index error: tuple index out of range 问题是为什么和什么是错的?

这是代码:

0 投票
1 回答
284 浏览

evolutionary-algorithm - 如何使用差分进化算法选择最佳参数

对于课堂作业,我需要优化 4 个 10 维函数,在实施差分进化时,我注意到所有函数都需要不同的参数设置。通过玩弄它似乎特别是在选择高交叉率和大约 0.5 的 F 似乎工作正常时。

然而,在一个函数上,10 维 Katsuura 函数,我的微分算法似乎失败了。我尝试了一堆参数,但在满分 10 分中得分为 0.01。差分进化是否不适用于某些目标函数?

我也尝试为这个问题实现 PSO,但也失败了,所以我似乎认为这个函数具有某些属性,只能通过某些算法来解决?

我在这篇文章中启发了我的 DE: https ://en.wikipedia.org/wiki/Differential_evolution

亲切的问候,

基斯蒂尔

0 投票
2 回答
1654 浏览

python - 如何为差分进化添加几个约束?

我有与这个问题相同的问题,但不想只向优化问题添加一个而是几个约束。

因此,例如,我想用和小于和小于x1 + 5 * x2的约束来最大化(不用说,实际问题要复杂得多,不能像这个一样被扔进去;它只是用来说明问题。 ..)。x1x25x23scipy.optimize.minimize

我可以像这样进行丑陋的黑客攻击:

这将打印

正如人们所期望的那样。

有没有比使用相当“危险”更好/更直接的方法来添加几个约束eval

0 投票
0 回答
457 浏览

python - 使用 scipy.optimize.differential_evolution 进行优化

我有一个自定义函数,它接受 3 个值在 0 和 1 之间的参数。我想使用Scipy 中的差分进化来优化这些参数。如何将需要优化的函数的参数传递给differential_evolution函数?请参阅下面我的自定义函数的代码片段。

我想用一些随机初始值初始化参数 x、y 和 z,并找出这些参数的哪种组合产生最佳结果。我该怎么做?

0 投票
2 回答
339 浏览

python - 通过 scipy 差分进化最小化的二元变量

我有一个非线性最小化问题,它将连续变量和二进制变量的组合作为输入。把它想象成一个网络流量问题,阀门可以控制吞吐量,泵可以改变方向。

一个“自然的”简约的表述可能是:

目标函数是确定性的,但求解成本很高。如果我不考虑二元变量,Scipy 的差分进化算法结果证明是解决我的问题的有用方法(收敛速度比盆地跳跃更快)。

已经有一些关于在基于差分进化的最小化问题中包含整数变量的证据。建议的方法将 y2,y3 变成连续变量 x2,x3 \in [0,1],然后修改目标函数如下:

第三种,可能是幼稚的方法是将二进制变量组合成单个连续变量 z \in [0,1],从而减少优化变量的数量。

例如,

应该首选以上哪一项,为什么?我很想知道如何以智能的方式将二进制变量集成到连续差分进化算法(例如 Scipy 的)中。

PS。我知道有一些文献提出了专门的混合整数进化算法。现在,我想和 Scipy 呆在一起。

0 投票
1 回答
1714 浏览

python - SciPy 中的差异进化

我正在尝试differential_evolution从 SciPy 使用。我有三个矩阵:x、y 和 P - 大小均为 (14,6)。我必须使用以下公式:

找到最小化的 c 值(从 0 到 2 的实数):

这个表达。我尝试的是这个(为方便起见,我提供了数据):

我得到这个错误:TypeError: func() takes exactly 2 arguments (3 given)。有没有什么办法解决这一问题?

0 投票
0 回答
149 浏览

optimization - “NP变量”的含义

NP变量的含义是什么?

我遇到了一篇关于差分进化的论文,它指出 -DE是一种基于种群的搜索技术,它利用NP 变量作为每一代的 D 维参数向量的种群。如果没有关于该问题的信息,则随机选择初始总体。在可用初步解决方案的情况下,通常通过将正态分布随机偏差添加到初步解决方案来生成初始总体。背后的基本思想DE是一种用于生成试验参数向量的新方案。