问题标签 [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 回答
141 浏览

optimization - 一个可变长度的染色体可以用于粒子群优化吗?

颗粒可以有不同的长度吗?例如,有些人有 10 个基因,有些人有 20 个?

如果是这样,由于全球野兽、本地最佳和当前都可能具有不同的长度,如何更新速度?

0 投票
3 回答
5968 浏览

matlab - Matlab中如何充分利用CPU【提高重复、耗时程序的性能】

我正在研究一种在不同光照条件下的自适应和全自动分割算法,该算法的核心使用粒子群优化(PSO)来调整模糊系统,相信我这非常耗时:| 只有 5 个粒子和 100 次迭代,我必须等待 2 到 3 个小时!它只是从我的数据集中处理一张包含 100 多张照片的图像!

我正在使用 matlab R2013 ,带有 intel coer i7-2670Qm @ 2.2GHz //8.00GB RAM//64 位操作系统

问题是:启动程序时,它只使用了我的 CPU 的 12%-16%,并且只有一个内核在工作!

我进行了很多搜索并进入了 matlabpool,所以我将这一行添加到我的代码中:

现在当我启动程序时,任务管理器显示 98% 的 CPU 使用率,但这只是几秒钟!之后它又回到了 12-13% 的 CPU 使用率:|

你知道我怎样才能让这段代码运行得更快吗?!

0 投票
1 回答
422 浏览

java - 使用粒子群优化的魔方

我得到一个 nxn 矩阵,其中 n 的范围从 3 到 5。然后为该矩阵分配 1-n^2 的随机值。给定矩阵,我将优化电路板,以便得到幻方解。

随机棋盘示例:n = 3

我对 PSO 有一点了解,但我至少知道这一点:

我还被告知该问题不适用于 PSO 等算法,但我别无选择,只能将其用于此问题,因为它是所需的算法。

我在想粒子是数组中分配的数字,但是如何评估它的位置并更新粒子位置?

谢谢!

0 投票
1 回答
2615 浏览

algorithm - 使用粒子群优化的最短路径

我想使用in解决Shortest Path问题。我使用优先级编码 [ 1 ] 对路径进行编码,并且我正在使用收缩和速度钳位 [ 2 ]。PSOMATLAB

我面临的问题是代码与Dijkstra. 我首先测试 usingDijkstra以获得基准时间,然后运行PSO以找到它在该时间内可以实现的最低成本。的结果PSO总是要高得多。

如果我检查每次迭代完成的速度,我发现在Intel Core i3-2120处理器上有 1000 多个节点的路径需要几秒钟。

在下面的代码中,您需要先运行data.m初始化成本矩阵,然后运行 ​​Dijkstra 以获得时间基准。之后,在几秒钟内 修改allowedTime变量。pso.m

参数:

  • data.m
    • 尺寸:没有。节点数
  • pso.m
    • allowedTime:允许swarm运行的时间(以秒为单位)
    • swarm_size:没有。粒子数
    • 开始节点:没有。表示从哪里开始路径(在dimensions范围内)
    • 结束节点:没有。表示路径的结束位置(在dimensions范围内)
  • dijkstra.m
    • 接受 ( costMatrix, <start_node_id>, <end_node_id>)

对于凌乱的代码和不使用函数,我很抱歉,但我需要inline在代码完成后或当我中断时制作所有内容并查看所有值。

数据.m

pso.m

dijkstra.m

(1) 一种针对 SP 路由问题的非支配排序遗传算法
(2) 约束因素和参数

0 投票
2 回答
2087 浏览

matlab - matlab中的粒子群优化

我是 matlab 新手,需要一些有关 matlab 代码的帮助。我想做粒子群优化,我想点击鼠标来定义空间中的一个点,窗口大小为 [min1, max1] 和 [min2, max2]。然后由 n = 10 个粒子组成的集群初始化并搜索用户最初设置的点。

我的代码是这样的:

0 投票
1 回答
1288 浏览

neural-network - 如何在人工神经网络中应用 PSO

我很难理解粒子群算法的概念。为了编写代码,我们将一些文章分散到我们的空间中并试图找到一个地方(for example min of a function or desire target)。基于位置、速度等所有粒子最终到达我们想要的位置。现在我有一个问题如何将此代码应用到我的 ANN 设计中?

它对神经网络有什么帮助?(似乎 PSO 有很强的寻找全局乐观结果的能力,而反向传播有寻找局部的能力,对吗?)

如果您能给我任何有助于我理解的信息,我将不胜感激。提前致谢

0 投票
1 回答
2886 浏览

neural-network - 在matlab中使用粒子群优化训练神经网络

我想使用粒子群优化算法训练神经网络,但是 matlab 工具箱没有使用该算法训练网络的任何功能,我搜索并创建了一些 PSO 工具箱,但它们没有用。有人可以帮我吗?谢谢

0 投票
1 回答
698 浏览

java - 用于密码分析的粒子群优化中的速度是多少?

我正在尝试为密码分析本地搜索实现粒子群优化算法,以找到简单替换密码的密钥。

我了解这种方法如何工作的理论并且已经实现了大部分算法,但我就是不知道如何计算速度。

粒子类:

群体类:

粒子是我为另一种算法制作的字母类的扩展,本质上是 26 个可以打乱的字母组成的 char 数组。粒子的“位置”(据我所知,它只是它的字母表,或者它的一些数字表示)。

swarm 类很容易解释,但包括一个适应度类,它给粒子评分在 0 到 1 之间(1 是最好的),代表键产生的英文文本的数量。

我遇到了这个算法的实现(虽然没有代码)找到建议这些步骤的 vigenere 密码的密钥:

用于查找实际密钥的建议算法

  1. PSO 搜索算法参数的初始化

PSO 参数在第一步中设置。这些参数包括粒子数 (Np)、密钥大小 (Nd)、最大迭代次数 (Nt)、自信心因子 (C1)、Swarm 置信因子 (C2) 和惯性权重 (w)。

  1. 离散鸟类或种群的初始化

a) 对于 vigenere 密码的密码分析:粒子的初始位置通过随机选择大小 Nd 的排列来确定,从整数 0 到 25 随机均匀采样。 b) 使用以下方法初始化每个粒子的速度:

其中:vi 是粒子 i 的速度 vmax 是最大速度,vmin 是最小速度,rand 是 0 到 1 之间的随机数。

  1. 项目清单

计算每个粒子的适应度函数值

a) 以粒子的位置为密钥解密密文。b) 求步骤 3 (a) 中得到的文本的适应度函数值。

  1. 更新粒子的速度和位置

计算步骤 3 中讨论的每个粒子的适应度函数值。

我似乎无法将公式粘贴到此处,但可以在此处的第 426 页上看到:http ://www.enggjournals.com/ijcse/doc/IJCSE13-05-05-064.pdf

0 投票
1 回答
475 浏览

java - LibGDX 对点精灵进行蜂拥的正确方法?

有点悬而未决的问题,但我会尽量具体。

我在 Android Studio 中写了一些东西,现在使用 Eclipse+LibGDX 来研究游戏。这是一个相当高级/中等级别的 API,因此我们无法进一步深入了解如何绘制图形的较低级别。但是,我们知道它使用了四边形渲染方法。

现在,这种方法适用于大多数类型的游戏,但如果我想研究粒子群算法(比如 1000 个点),之前我使用的是Point Sprite渲染。看来 libgdx 没有使用这种方法。

问题:你知道 libgdx 是否支持 Point Sprites (1000+) 在屏幕上独立移动(基于我自己的公式)。随着要使用的精灵数量的增加,四边形渲染将大大减慢。例如,1000 个球在一个盒子周围弹跳。

注意 - 我不是在看粒子系统,因为它们似乎只是发射器,并定义了粒子如何从该源发射(例如烟花、爆炸)。

目标:我计划让许多对象在屏幕上移动,当从远处观看时,使用 Point Sprite 方法渲染(对于对象的绝对数量要快得多),然后在放大时恢复为四边形渲染(详见图形)。这仅用于优化目的。

这是 Libgdx 允许的吗?

非常感谢您提供的任何帮助。

亲切的问候,J

0 投票
1 回答
1210 浏览

matlab - 用粒子群优化训练神经网络的概念问题

我有一个通过粒子群优化 (PSO) 训练的 4 输入和 3 输出神经网络,使用 MATLAB 提供的 IRIS 数据库以均方误差 (MSE) 作为适应度函数。适应度函数被评估 50 次。实验是对特征进行分类。我有几个疑问

(1) PSO 迭代次数/代数是否 = 评估适应度函数的次数?

(2) 在许多论文训练曲线中,我看到 MSE 与世代的训练曲线正在绘制。图中,左边的图(a)是一个类似于NN的模型。它是一个 4 输入 0 隐藏层 3 输出认知图。图 (b) 是由同一 PSO 训练的 NN。本文的目的是展示新模型在 (a) 中对 NN 的有效性。

但他们提到该实验是说 Cycles = 100 次,Generations = 300。在这种情况下,(a)和(b)的训练曲线应该是 MSE vs Cycles 而不是 MSE vs PSO 代?例如,Cycle1 : PSO 迭代 1-50 --> Result(Weights_1,Bias_1, MSE_1, Classification Rate_1)。Cycle2:PSO 迭代 1- 50 -->Result(Weights_2,Bias_2, MSE_2, Classification Rate_2) 等等 100 个周期。(a),(b) 中的 X 轴为何不同,它们是什么意思?

(3) 最后,对于程序的每次独立运行(通过控制台独立运行 m 文件多次),我从来没有得到相同的分类率 (CR) 或相同的权重集。具体来说,当我第一次运行程序时,我得到 W(权重)值和 CR = 100%。当我再次运行 Matlab 代码程序时,我可能会得到 CR = 50% 和另一组权重!如下图所示,

正确的方法应该是什么?那么,我最终应该采用哪个权重集,如何说网络已经训练好?我知道进化算法由于它们的随机性永远不会给出相同的答案,但是我如何确保网络已经过训练?有义务澄清。