问题标签 [particle-swarm]

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 回答
1253 浏览

r - 在 R 中使用 PSO 进行神经网络训练

我需要在 R 环境中使用 PSO 算法训练神经网络。我已经知道所有关于神经网络的 R 包(neuralnet、AMORE 等),但其中没有一个包含 PSO 训练(只有反向传播)。

想法?谢谢您的帮助。

0 投票
1 回答
8010 浏览

c++ - C++ 中的粒子群优化

我需要在 C++ 中实现 PSO 算法。有没有我可以用来开始的 C++ 库?

0 投票
2 回答
11862 浏览

c++ - 我的粒子群优化代码在 C++ 和 MATLAB 中生成不同的答案

我用 C++ 编写了一个全局版本的粒子群优化算法。我尝试将其编写为与我之前编写的 MATLAB PSO 代码完全相同,但是此代码会生成不同且最糟糕的答案。MATLAB代码是:

其中,testfunc1 为:

C++ 代码是:

我已经多次调试了两个代码,但找不到导致答案不同的差异。它让我发疯!你能帮帮我吗?

更新:

请注意,函数均值仅用于报告一些信息,不用于优化过程。

0 投票
1 回答
275 浏览

genetic-algorithm - 随机优化算法

假设我们有 2 个随机优化算法(遗传算法、粒子群优化、布谷鸟搜索等),A 和 B,我们想要找到一个函数的全局最大值。那么,如果算法 A 在优化一维搜索空间上的函数 F 时比算法 B 执行得更好,那么它在优化 N 维搜索空间上的函数 F 时也比算法 B 执行得更好吗?

我将通过 F_ND 引用 N 维中的函数 F。请注意,F_1D 和 F_ND 是同一个函数,只是维度数不同;“风景”完全一样,只是维度不同。

例如:对于德容函数,我们有:

F_1D 和 F_5D 具有相同的“类型”/“方面”

...否则:

如果 general_performance(A,F_1D) > general_performance(B,F_1D) 那么 general_performance(A,F_ND) > general_performance(B,F_ND) (当然对于更大的 N)也成立吗?

0 投票
1 回答
250 浏览

java - 每次迭代保存模拟数据的最佳策略是什么?

我有一个针对复杂问题的多目标粒子群优化算法,它使用大量(4000 个粒子)并且是一个耗时的模拟(执行 4 - 6 小时)。

由于算法保存了一个存档,一个迄今为止找到的最佳解决方案的存储库,为了分析算法收敛和行为,我需要从这个存储库中保存一些数据,有时在每次迭代时从整个种群中保存一些数据。

目前在每次迭代中,我(用 Java 语言)从粒子的对象(从存储库和/或总体)复制一些属性,将其格式化为 StringBuffer,该方法在与模拟不同的线程中运行,并且仅在程序执行结束我将它保存到一个文本文件中。

我认为我的算法这样做会以一种糟糕的方式消耗内存。但是考虑到性能,我不知道保存所有这些数据的最佳方法是什么:我应该遵循相同的逻辑,但每次迭代都保存一个 .txt 文件,而不是在算法结束时保存吗?还是我应该保存到数据库?如果是这样,我应该在每次迭代中还是在最后或其他时间保存它?还是我应该以不同的方式处理它?

编辑:存储库数据通常在 [5 - 10] MB 范围内,而人口数据占用 [100 - 200] MB 内存。每次我运行程序时,我都需要大约 20 次模拟来分析平均收敛性。

0 投票
3 回答
2064 浏览

nonlinear-optimization - 粒子群优化惯性因子

我正在阅读软计算算法,目前在“粒子群优化”中,我大致了解该技术,但是,我停在数学或物理部分,我无法想象或理解它是如何工作的或它如何影响飞行,那部分是方程中更新速度的第一部分,称为“惯性因子” 公式 ,完整的更新速度方程是: 公式 我在第 2.3 节“惯性因子”的一篇文章中读到:

“算法的这种变体旨在平衡两种可能的 PSO 趋势(取决于参数化),即利用已知解决方案周围的区域或探索搜索空间的新区域。为此,这种变体侧重于粒子的动量分量”速度方程 2. 注意,如果你去掉这个分量,粒子的运动就不会记住之前的运动方向,它总是会接近找到的解。另一方面,如果使用速度分量,或者甚至乘以 aw(惯性权重,平衡动量分量的重要性)因子,粒子将倾向于探索搜索空间的新区域,因为它不能轻易地将其速度改变为最佳解决方案。它必须首先“抵消”先前的动量获得,在这样做的过程中,它能够探索新的区域,时间“花费抵消”先前的动量。这种变化是通过将先前的速度分量乘以权重值 w 来实现的。

完整的 pdf 位于:https ://www.google.com.eg/url?sa=t&rct=j&q=&esrc=s&source=web&cd=1&cad=rja&ved=0CDIQFjAA&url=http%3A%2F%2Fweb.ist.utl.pt %2F~gdgp%2FVA%2Fdata%2Fpso.pdf&ei=0HwrUaHBOYrItQbwwIDoDw&usg=AFQjCNH8vChXHXWz_ydHxJKAY0cUa94n-g

但我也无法想象这是如何在物理上或数值上发生的,以及这个因素如何影响从探索级别到开发级别,所以需要一个数值示例来了解它是如何工作的并想象它是如何工作的。

此外,在遗传算法中有一个模式定理,它证明了 GA 成功找到了最优解,PSO 是否有这样的定理。

0 投票
1 回答
699 浏览

java - 人工神经网络 PSO 训练

我正在使用 PSO 进行训练的 FF 神经网络(用于分类问题)。我只有一个隐藏层,我可以改变该层中神经元的数量。

我的问题是 NN 可以很容易地学习线性可分问题,但不能像它应该能够那样学习不能线性可分的问题(如 XOR)。

我相信我的 PSO 工作正常,因为我可以看到它试图最小化每个粒子的误差函数(使用训练集的均方误差)。

我尝试使用具有相似(坏)结果的 sigmoid 和线性激活函数。我也有一个偏置单元(这也没有多大帮助)。

我想知道的是,是否有一些我可能做错的特定事情可能导致这种类型的问题,或者可能只是一些我应该看看错误可能在哪里的事情。

我现在有点失落

谢谢

0 投票
1 回答
194 浏览

c# - 粒子群密码分析中解的坐标

我正在编写一个 C# 应用程序,它将使用粒子群算法解决单字母替换密码。

基本上我了解这个过程,并找到了更新向量等所需的所有算法。我无法解决的是如何计算 26 字符解决方案在问题空间中的位置/坐标,以便我可以在此处找到的算法中使用它:http: //www.codeproject.com/Articles/42258/Particle-swarm -优化功能优化

该位置是否只是与字母表中字符位置相关的整数数组?

任何帮助将不胜感激。

0 投票
3 回答
95 浏览

java - 两个向量误差的交叉函数

我的函数的目标是在两个 Vector 之间使用 1 点交叉函数来获得一个新的混合“Son” Vector,其中包含第一个 Vector 中的一些元素和第二个 Vector 中的一些元素。

有时它工作得很好,有时它给我“java.lang.ArrayIndexOutOfBoundsException”错误..一些想法?

0 投票
0 回答
1045 浏览

python - 如何使用粒子群优化作为搜索空间优化器

我有两个关于 PSO 的问题;

(1)。我有一个问题,我需要找到最优或接近最优的解决方案集。所以 PSO 应该作为一个优化器而不是一个函数最小化器。(2)。作为适应度函数,我拥有的是一组参数,它们的值要么是 1,要么是零(二进制参数)。因此,为了获得参数值,我必须运行一个外部布尔函数来检查一些经验规则。

那么如何为 PSO 编写基于规则的适应度函数呢?

伙计们,请帮助我。如果您碰巧知道任何方法/实现,请告诉我。

非常感谢。

编辑:对不起先生。这是我第一次提问。让我重新表述一下这个问题。这是我需要做的。我有一组候选解决方案,每个都有几个属性。现在我需要使用 PSO 从该集合中选择最佳/最优解决方案。在这里,我确实有 9 个参数,可用于检查每个粒子是否满足所有这些条件。这些参数的特点是它们有自己的范围来接受候选解决方案作为最佳解决方案。这是适应度函数和参数的示例:

在哪里:

注意:长度为 60 的粒子优于长度为 84 的粒子,压力为 200 的粒子优于压力为 126 的粒子