① 粒子群算法
粒子群算法(Particle Swarm Optimization),又称鸟群觅食算法,是由数学家J. Kennedy和R. C. Eberhart等开发出的一种新的进化算法。它是从随机解开始触发,通过迭代寻找出其中的最优解。本算法主要是通过适应度来评价解的分数,比传统的遗传算法更加的简单,它没有传统遗传算法中的“交叉”和“变异”等操作,它主要是追随当前搜索到的最优值来寻找到全局最优值。这种算法实现容易,精度高,收敛快等特点被广泛运用在各个问题中。
粒子群算法是模拟鸟群觅食的所建立起来的一种智能算法,一开始所有的鸟都不知道食物在哪里,它们通过找到离食物最近的鸟的周围,再去寻找食物,这样不断的追踪,大量的鸟都堆积在食物附近这样找到食物的几率就大大增加了。粒子群就是这样一种模拟鸟群觅食的过程,粒子群把鸟看成一个个粒子,它们拥有两个属性——位置和速度,然后根据自己的这两个属性共享到整个集群中,其他粒子改变飞行方向去找到最近的区域,然后整个集群都聚集在最优解附近,最后最终找到最优解。
算法中我们需要的数据结构,我们需要一个值来存储每个粒子搜索到的最优解,用一个值来存储整个群体在一次迭代中搜索到的最优解,这样我们的粒子速度和位置的更新公式如下:
其中pbest是每个粒子搜索到的最优解,gbest是整个群体在一次迭代中搜索到的最优解,v[i]是代表第i个粒子的速度,w代表惯性系数是一个超参数,rang()表示的是在0到1的随机数。Present[i]代表第i个粒子当前的位置。我们通过上面的公式不停的迭代粒子群的状态,最终得到全局最优解
② 粒子群算法
粒子群算法(particle swarm optimization,PSO)是计算智能领域中的一种生物启发式方法,属于群体智能优化算法的一种,常见的群体智能优化算法主要有如下几类:
除了上述几种常见的群体智能算法以外,还有一些并不是广泛应用的群体智能算法,比如萤火虫算法、布谷鸟算法、蝙蝠算法以及磷虾群算法等等。
而其中的粒子群优化算法(PSO)源于对鸟类捕食行为的研究,鸟类捕食时,找到食物最简单有限的策略就是搜寻当前距离食物最近的鸟的周围。
设想这样一个场景:一群鸟在随机的搜索食物。在这个区域里只有一块食物,所有的鸟都不知道食物在哪。但是它们知道自己当前的位置距离食物还有多远。那么找到食物的最优策略是什么?最简单有效的就是搜寻目前离食物最近的鸟的周围区域。
Step1:确定一个粒子的运动状态是利用位置和速度两个参数描述的,因此初始化的也是这两个参数;
Step2:每次搜寻的结果(函数值)即为粒子适应度,然后记录每个粒子的个体历史最优位置和群体的历史最优位置;
Step3:个体历史最优位置和群体的历史最优位置相当于产生了两个力,结合粒子本身的惯性共同影响粒子的运动状态,由此来更新粒子的位置和速度。
位置和速度的初始化即在位置和速度限制内随机生成一个N x d 的矩阵,而对于速度则不用考虑约束,一般直接在0~1内随机生成一个50x1的数据矩阵。
此处的位置约束也可以理解为位置限制,而速度限制是保证粒子步长不超限制的,一般设置速度限制为[-1,1]。
粒子群的另一个特点就是记录每个个体的历史最优和种群的历史最优,因此而二者对应的最优位置和最优值也需要初始化。其中每个个体的历史最优位置可以先初始化为当前位置,而种群的历史最优位置则可初始化为原点。对于最优值,如果求最大值则初始化为负无穷,相反地初始化为正无穷。
每次搜寻都需要将当前的适应度和最优解同历史的记录值进行对比,如果超过历史最优值,则更新个体和种群的历史最优位置和最优解。
速度和位置更新是粒子群算法的核心,其原理表达式和更新方式:
每次更新完速度和位置都需要考虑速度和位置的限制,需要将其限制在规定范围内,此处仅举出一个常规方法,即将超约束的数据约束到边界(当位置或者速度超出初始化限制时,将其拉回靠近的边界处)。当然,你不用担心他会停住不动,因为每个粒子还有惯性和其他两个参数的影响。
粒子群算法求平方和函数最小值,由于没有特意指定函数自变量量纲,不进行数据归一化。
③ pso的来源背景
为了说明粒子群优化算法的发展和形成背景,首先介绍一下早期的简单模型,即Boid(Bird-oid)模型。这个模型是为了模拟鸟群的行为而设计的,它也是粒子群优化算法的直接来源。
一个最简单的模型是这样的:每一个鸟的个体用直角坐标系上的点表示,随机地给它们赋一个初速度和初位置,程序运行的每一步都按照“最近邻速度匹配”规则,很快就会使得所有点的速度变得一样。因为这个模拟太简单而且远离真实情况,于是在速度项中增加了一个随机变量,即在迭代的每一步,除了满足“最近邻速度匹配”之外,每一步速度还要添加一个随机变化的量,这样使得整个模拟看起来更为真实。
Heppner设计了一个“谷地模型”来模拟鸟群的觅食行为。假设在平面上存在一个“谷地”,即食物所在地,鸟群开始时随机地分散在平面上,为了寻觅食物所在地,它们按照如下规则运动:
首先假设谷地的位置坐标为(x0,y0),单个鸟的位置和速度坐标分别为和(x,y),用当前位置到谷地的距离s:来衡量当前位置和速度的“好坏程度”,离谷地的距离越近,则越“好”,反之越“坏”。假设每一个鸟具有记忆能力,能够记住曾经达到的最好位置,记作pBest,并记a为系统规定的速度调节常数,rand为一个[0,1]间的随机数,设定速度项按照下述规则变化:
然后假设群体之间可以以某种方式通讯,每个个体能够知道并记住到当前为止整个群体的最好位置,记为gBest,记b为系统规定的速度调节常数,Rand为一个[0,1]间的随机数,则速度项在经过以上调整后,还必须按照下述规则变化:
在计算机上模拟的结果显示:当a/b较大时,所有的个体很快地聚集到“谷地”上;反之,粒子缓慢地摇摆着聚集到“谷地”的四周。通过这个简单的模拟,发现群体能很快地找到一个简单函数(2-1)的最优点。受该模型启发,Kennedy和Eberhart设计出了一种演化优化算法,并通过不断的试验和试错,最后将此算法的基本型固定为:
其中符号的意义同上。研究者认为每个个体被抽象为没有质量和体积,而仅仅具有速度和位置的微粒,故将此方法称为“粒子群”优化算法。
据此,可对粒子群算法小结如下:粒子群算法是一种基于种群的搜索过程,其中每个个体称作微粒,定义为在D维搜索空间中待优化问题的潜在解,保存有其历史最优位置和所有粒子的最优位置的记忆,以及速度。在每一演化代,微粒的信息被组合起来调整速度关于每一维上的分量,继而被用来计算新的微粒位置。微粒在多维搜索空间中不断改变它们的状态,直到到达平衡或最优状态,或者超过了计算限制为止。问题空间的不同维度之间唯一的联系是通过目标函数引入的。很多经验证据已经显示该算法是一个非常有效的优化工具。微粒群优化算法的流程图见图2-1。
以下给出微粒群算法的比较完整的形式化表述。在连续空间坐标系中,微粒群算法的数学描述如下:设微粒群体规模为N,其中每个微粒在D维空间中的坐标位置向量表示为,速度向量表示为,微粒个体最优位置(即该微粒经历过的最优位置)记为,群体最优位置(即该微粒群中任意个体经历过的最优位置)记为。不失一般性,以最小化问题为例,在最初版本的微粒群算法中,个体最优位置的迭代公式为:
群体最优位置为个体最优位置中最好的位置。速度和位置迭代公式分别为:
由于初始版本在优化问题中应用时效果并不太好,所以初始算法提出不久之后就出现了一种改进算法,在速度迭代公式中引入了惯性权重ω,速度迭代公式变为:
虽然该改进算法与初始版本相比复杂程度并没有太大的增加,但是性能却有了很大的提升,因而被广泛使用。一般的,将该改进算法称为标准微粒群算法,而将初始版本的算法称为原始微粒群算法。
通过分析PSO算法的收敛行为,Clerc介绍了一种带收缩因子的PSO算法变种,收缩因子保证了收敛性并提高了收敛速度。此时的速度迭代公式为:
显然,迭代公式(2-7)和(2-8)并无本质区别,只要适当选取参数,二者完全相同。
微粒群算法有两种版本,分别称为全局版本和局部版本。在全局版本中,微粒跟踪的两个极值为自身最优位置pBest和种群最优位置gBest。对应的,在局部版本中,微粒除了追随自身最优位置pBest之外,不跟踪种群最优位置gBest,而是跟踪拓扑邻域中的所有微粒的最优位置nBest。对于局部版本,速度更新公式(2-7)变为:
其中为局部邻域中的最优位置。
每一代中任意微粒迭代的过程见图2-2所示。从社会学的角度来看速度迭代公式,其中第一部分为微粒先前速度的影响,表示微粒对当前自身运动状态的信任,依据自身的速度进行惯性运动,因此参数ω称为惯性权重(Inertia Weight);第二部分取决于微粒当前位置与自身最优位置之间的距离,为“认知(Cognition)”部分,表示微粒本身的思考,即微粒的运动来源于自己经验的部分,因此参数c1称为认知学习因子(也可称为认知加速因子);第三部分取决于微粒当前位置与群体中全局(或局部)最优位置之间的距离,为“社会(Social)”部分,表示微粒间的信息共享与相互合作,即微粒的运动来源于群体中其他微粒经验的部分,它通过认知模拟了较好同伴的运动,因此参数c2称为社会学习因子(也可称为社会加速因子)。
自从PSO算法被提出以来,由于它直观的背景,简单而容易实现的特点,以及对于不同类型函数广泛的适应性,逐渐得到研究者的注意。十余年来,PSO算法的理论与应用研究都取得了很大的进展,对于算法的原理已经有了初步的了解,算法的应用也已经在不同学科中得以实现。
PSO算法是一种随机的、并行的优化算法。它的优点是:不要求被优化函数具有可微、可导、连续等性质,收敛速度较快,算法简单,容易编程实现。然而,PSO算法的缺点在于:(1)对于有多个局部极值点的函数,容易陷入到局部极值点中,得不到正确的结果。造成这种现象的原因有两种,其一是由于待优化函数的性质;其二是由于微粒群算法中微粒的多样性迅速消失,造成早熟收敛。这两个因素通常密不可分地纠缠在一起。(2)由于缺乏精密搜索方法的配合,PSO算法往往不能得到精确的结果。造成这种问题的原因是PSO算法并没有很充分地利用计算过程中获得的信息,在每一步迭代中,仅仅利用了群体最优和个体最优的信息。(3)PSO算法虽然提供了全局搜索的可能,但是并不能保证收敛到全局最优点上。(4)PSO算法是一种启发式的仿生优化算法,当前还没有严格的理论基础,仅仅是通过对某种群体搜索现象的简化模拟而设计的,但并没有从原理上说明这种算法为什么有效,以及它适用的范围。因此,PSO算法一般适用于一类高维的、存在多个局部极值点而并不需要得到很高精度解的优化问题。
当前针对PSO算法开展的研究工作种类繁多,经归纳整理分为如下八个大类:(1)对PSO算法进行理论分析,试图理解其工作机理;(2)改变PSO算法的结构,试图获得性能更好的算法;(3)研究各种参数配置对PSO算法的影响;(4)研究各种拓扑结构对PSO算法的影响;(5)研究离散版本的PSO算法;(6)研究PSO算法的并行算法;(7)利用PSO算法对多种情况下的优化问题进行求解;(8)将PSO算法应用到各个不同的工程领域。以下从这八大类别着手,对PSO算法的研究现状作一梳理。由于文献太多,无法面面俱到,仅捡有代表性的加以综述。
④ 粒子群算法的引言
优化问题是工业设计中经常遇到的问题,许多问题最后都可以归结为优化问题. 为了解决各种各样的优化问题,人们提出了许多优化算法,比较着名的有爬山法、遗传算法、神经网络算法等. 一是要求寻找全局最优点,
二是要求有较高的收敛速度. 近年来,一些学者将PSO算法推广到约束优化问题,其关键在于如何处理好约束,即解的可行性。如果约束处理的不好,其优化的结果往往会出现不能够收敛和结果是空集的状况。基于PSO算法的约束优化工作主要分为两类:
(1)罚函数法。罚函数的目的是将约束优化问题转化成无约束优化问题。
(2)将粒子群的搜索范围都限制在条件约束簇内,即在可行解范围内寻优。
根据文献介绍,Parsopoulos等采用罚函数法,利用非固定多段映射函数对约束优化问题进行转化,再利用PSO算法求解转化后问题,仿真结果显示PSO算法相对遗传算法更具有优越性,但其罚函数的设计过于复杂,不利于求解;Hu等采用可行解保留政策处理约束,即一方面更新存储中所有粒子时仅保留可行解,另一方面在初始化阶段所有粒子均从可行解空间取值,然而初始可行解空间对于许多问题是很难确定的;Ray等提出了具有多层信息共享策略的粒子群原理来处理约束,根据约束矩阵采用多层Pareto排序机制来产生优良粒子,进而用一些优良的粒子来决定其余个体的搜索方向。
但是,目前有关运用PSO算法方便实用地处理多约束目标优化问题的理论成果还不多。处理多约束优化问题的方法有很多,但用PSO算法处理此类问题目前技术并不成熟,这里就不介绍了。 粒子群优化算法(PSO)是一种进化计算技术(evolutionary computation),1995 年由Eberhart 博士和kennedy 博士提出,源于对鸟群捕食的行为研究 。该算法最初是受到飞鸟集群活动的规律性启发,进而利用群体智能建立的一个简化模型。粒子群算法在对动物集群活动行为观察基础上,利用群体中的个体对信息的共享使整个群体的运动在问题求解空间中产生从无序到有序的演化过程,从而获得最优解。
PSO同遗传算法类似,是一种基于迭代的优化算法。系统初始化为一组随机解,通过迭代搜寻最优值。但是它没有遗传算法用的交叉(crossover)以及变异(mutation),而是粒子在解空间追随最优的粒子进行搜索。同遗传算法比较,PSO的优势在于简单容易实现并且没有许多参数需要调整。目前已广泛应用于函数优化,神经网络训练,模糊系统控制以及其他遗传算法的应用领域。
⑤ 粒子群算法的介绍
粒子群算法,也称粒子群优化算法(Particle Swarm Optimization),缩写为 PSO, 是近年来由J. Kennedy和R. C. Eberhart等1开发的一种新的进化算法(Evolutionary Algorithm - EA)。PSO 算法属于进化算法的一种,和模拟退火算法相似,它也是从随机解出发,通过迭代寻找最优解,它也是通过适应度来评价解的品质,但它比遗传算法规则更为简单,它没有遗传算法的“交叉”(Crossover) 和“变异”(Mutation) 操作,它通过追随当前搜索到的最优值来寻找全局最优。这种算法以其实现容易、精度高、收敛快等优点引起了学术界的重视,并且在解决实际问题中展示了其优越性。粒子群算法是一种并行算法。
⑥ 粒子群算法属于什么学科
粒子群算法属于计算智能的范畴,如果按照学科分的话当然是计算机学科。
另外粒子群算法是一种进化计算技术(evolutionary computation),1995 年由Eberhart 博士和kennedy 博士提出,源于对鸟群捕食的行为研究 。
——————————————————————————
另外关于计算智能的相关介绍便可以了解
计算智能的主要方法有人工神经网络、遗传算法、遗传程序、演化程序、局部搜索、模拟退火等等。这些方法具有以下共同的要素:自适应的结构、随机产生的或指定的初始状态、适应度的评测函数、修改结构的操作、系统状态存储器、终止计算的条件、指示结果的方法、控制过程的参数。计算智能的这些方法具有自学习、自组织、自适应的特征和简单、通用、鲁棒性强、适于并行处理的优点。在并行搜索、联想记忆、模式识别、知识自动获取等方面得到了广泛的应用。
典型的代表如遗传算法、免疫算法、模拟退火算法、蚁群算法、微粒群算法(也就是粒子群算法,翻译不同罢了),都是一种仿生算法,基于“从大自然中获取智慧”的理念,通过人们对自然界独特规律的认知,提取出适合获取知识的一套计算工具。总的来说,通过自适应学习的特性,这些算法达到了全局优化的目的。
⑦ 量子粒子群优化算法到底是李士勇还是孙俊提出的
量子基金是全球着名的大规模对冲基金,美国金融家乔治·索罗斯旗下经营的五个对冲基金之一。量子基金是高风险基金,主要借款在世界范围内投资于股票、债券、外汇和商品。量子美元基金在美国证券交易委员会登记注册,它主要采取私募方式筹集资金。据说,索罗斯为之取名"量子",是源于索罗斯所赞赏的一位德国物理学家、量子力学的创始人海森堡提出"测不准定理"。索罗斯认为,就像微粒子的物理量子不可能具有确定数值一样,证券市场也经常处在一种不确定状态,很难去精确度量和估计。量子基金(QuantumFund)和配额基金(QuotaFund):都属于对冲基金(HedgeFund)。其中前者的杠杆操作倍数为八倍、后者可达20倍,意味着后者的报酬率会比前者高、但投资风险也比前者来得大,根据Micropal的资料,量子基金的风险波动值为6.54,而配额基金则高达14.08。量子基金由双鹰基金演变而来。双鹰基金由索罗斯和吉姆·罗杰斯于1969年创立,资本额为400万美元,基金设立在纽约,但其出资人皆为非美国国籍的境外投资者,从而避开美国证券交易委员会的监管。1973年,双鹰基金改名为索罗斯基金,资本额约1200万美元;1979年,索罗斯将公司更名为量子公司。至1997年末,量子基金已成为资产总值近60亿美元的巨型基金。1969年注入量子基金的1万美元在1996年底已增值至3亿美元,增长了3万倍。量子基金成为国际金融界的焦点,是由于索罗斯凭借该基金在20世纪90年代所发动的几次大规模货币狙击战。这一时期,量子基金以其强大的财力和凶狠的作风,在国际货币市场上兴风作浪,对基础薄弱的货币发起攻击并屡屡得手。
⑧ 粒子群优化参数寻优
研究PSO参数寻优中,采用粒子群算法对SVM的参数(惩罚参数C,核函数参数σ)进行最优选择。PSO是一种进化计算技术,由Eberhart和Kennedy于1995年提出,其思想源于鸟类捕食行为,算法的数学描述如下(何同弟等,2011):
设在一个D维搜索空间中,由有m个粒子组成的一个群体,其中第i个粒子的位置表示为向量zi=(zi1,zi2,…,ziD),i=1,2,…,m。第i个粒子的飞行速度表示为向量vi=(vi1,vi2,…,viD),其搜索的最佳位置pi=(pi1,pi2,…,piD),整个粒子群搜索到的最优位置pg=(pg1,pg2,…,pgD)。找到这两个最优位置时,各粒子根据如下公式更新自己的速度和位置:
高光谱遥感影像信息提取技术
式中:i=1,2,…,m;ψ是惯性权重函数,用来控制前面速度对当前速度的影响;c1和c2称为加速因子,为非负常数;r1和r2是[0,1]的随机数。
⑨ 什么是粒子群算法
Eberhart和Kennedy于1995年提出了粒子群优化算法(PSO)[66]。PSO与GA有很多共同之处
⑩ 离散粒子群优化算法的背景和意义是什么
定义粒子群优化算法(Particle Swarm optimization,PSO)又翻译为粒子群算法、微粒群算法、或微粒群优化算法。是通过模拟鸟群觅食行为而发展起来的一种基于群体协作的随机搜索算法。通常认为它是群集智能 (Swarm intelligence, SI) 的一种。它可以被纳入多主体优化系统 (Multiagent Optimization System, MAOS). 粒子群优化算法是由Eberhart博士和kennedy博士发明。PSO模拟鸟群的捕食行为PSO模拟鸟群的捕食行为。一群鸟在随机搜索食物,在这个区域里只有一块食物。所有的鸟都不知道食物在那里。但是他们知道当前的位置离食物还有多远。那么找到食物的最优策略是什么呢。最简单有效的就是搜寻目前离食物最近的鸟的周围区域。从模型中得到的启示PSO从这种模型中得到启示并用于解决优化问题。PSO中,每个优化问题的解都是搜索空间中的一只鸟。我们称之为“粒子”。所有的粒子都有一个由被优化的函数决定的适应值(fitnessvalue),每个粒子还有一个速度决定他们飞翔的方向和距离。然后粒子们就追随当前的最优粒子在解空间中搜索。PSO初始化PSO初始化为一群随机粒子(随机解),然后通过叠代找到最优解,在每一次叠代中,粒子通过跟踪两个“极值”来更新自己。第一个就是粒子本身所找到的最优解,这个解叫做个体极值pBest,另一个极值是整个种群目前找到的最优解,这个极值是全局极值gBest。另外也可以不用整个种群而只是用其中一部分最优粒子的邻居,那么在所有邻居中的极值就是局部极值。编辑本段算法介绍在找到这两个最优值时, 粒子根据如下的公式来更新自己的速度和新的位置v[] = v[] + c1 * rand() * (pbest[] - present[]) + c2 * rand() * (gbest[] - present[]) (a)present[] = persent[] + v[] (b)v[] 是粒子的速度, persent[] 是当前粒子的位置. pbest[] and gbest[] 如前定义 rand () 是介于(0, 1)之间的随机数. c1, c2 是学习因子. 通常 c1 = c2 = 2.程序的伪代码如下For each particle____Initialize particleENDDo____For each particle________Calculate fitness value________If the fitness value is better than the best fitness value (pBest) in history____________set current value as the new pBest____End____Choose the particle with the best fitness value of all the particles as the gBest____For each particle________Calculate particle velocity according equation (a)________Update particle position according equation (b)____EndWhile maximum iterations or minimum error criteria is not attained在每一维粒子的速度都会被限制在一个最大速度Vmax,如果某一维更新后的速度超过用户设定的Vmax,那么这一维的速度就被限定为Vmax。编辑本段遗传算法和PSO的比较共同点①种群随机初始化。②对种群内的每一个个体计算适应值(fitness value)。适应值与最优解的距离直接有关。③种群根据适应值进行复制 。④如果终止条件满足的话,就停止,否则转步骤② 。从以上步骤,我们可以看到PSO和遗传算法有很多共同之处。两者都随机初始化种群,而且都使用适应值来评价系统,而且都根据适应值来进行一定的随机搜索。两个系统都不是保证一定找到最优解。但是,PSO没有遗传操作如交叉(crossover)和变异(mutation),而是根据自己的速度来决定搜索。粒子还有一个重要的特点,就是有记忆。不同点与遗传算法比较,PSO的信息共享机制是很不同的。在遗传算法中,染色体(chromosomes)互相共享信息,所以整个种群的移动是比较均匀的向最优区域移动。在PSO中, 只有gBest (orlBest) 给出信息给其他的粒子, 这是单向的信息流动。整个搜索更新过程是跟随当前最优解的过程。与遗传算法比较, 在大多数的情况下,所有的粒子可能更快的收敛于最优解。编辑本段人工神经网络和PSO定义人工神经网络(ANN)是模拟大脑分析过程的简单数学模型,反向转播算法是最流行的神经网络训练算法。进来也有很多研究开始利用演化计算(evolutionary computation)技术来研究人工神经网络的各个方面。研究方面演化计算可以用来研究神经网络的三个方面:网络连接权重,网络结构(网络拓扑结构,传递函数),网络学习算法。不过大多数这方面的工作都集中在网络连接权重,和网络拓扑结构上。在GA中,网络权重和/或拓扑结构一般编码为染色体(Chromosome),适应函数(fitness function)的选择一般根据研究目的确定。例如在分类问题中,错误分类的比率可以用来作为适应值优缺点演化计算的优势在于可以处理一些传统方法不能处理的例子例如不可导的节点传递函数或者没有梯度信息存在。但是缺点在于:1、在某些问题上性能并不是特别好。2. 网络权重的编码而且遗传算子的选择有时比较麻烦。最近已经有一些利用PSO来代替反向传播算法来训练神经网络的论文。研究表明PSO 是一种很有潜力的神经网络算法。PSO速度比较快而且可以得到比较好的结果。而且还没有遗传算法碰到的问题。举例这里用一个简单的例子说明PSO训练神经网络的过程。这个例子使用分类问题的基准函数 (Benchmark function)IRIS数据集。(Iris 是一种鸢尾属植物) 在数据记录中,每组数据包含Iris花的四种属性:萼片长度,萼片宽度,花瓣长度,和花瓣宽度,三种不同的花各有50组数据. 这样总共有150组数据或模式。我们用3层的神经网络来做分类。现在有四个输入和三个输出。所以神经网络的输入层有4个节点,输出层有3个节点我们也可以动态调节隐含层节点的数目,不过这里我们假定隐含层有6个节点。我们也可以训练神经网络中其他的参数。不过这里我们只是来确定网络权重。粒子就表示神经网络的一组权重,应该是4*6+6*3=42个参数。权重的范围设定为[-100,100] (这只是一个例子,在实际情况中可能需要试验调整).在完成编码以后,我们需要确定适应函数。对于分类问题,我们把所有的数据送入神经网络,网络的权重有粒子的参数决定。然后记录所有的错误分类的数目作为那个粒子的适应值。现在我们就利用PSO来训练神经网络来获得尽可能低的错误分类数目。PSO本身并没有很多的参数需要调整。所以在实验中只需要调整隐含层的节点数目和权重的范围以取得较好的分类效果。