粒子群优化算法优点算法采用实数编码是不是就相当于没有解码过程了?

https://kuaibao.qq.com/s/KT000?refer=cp_1026分享分享快讯到朋友圈分享快讯到 QQ分享快讯到 QQ 空间分享快讯到微博复制快讯链接到剪贴板扫描二维码扫描关注云+社区相关快讯分享快讯到朋友圈分享快讯到 QQ分享快讯到 QQ 空间分享快讯到微博复制快讯链接到剪贴板分享快讯到朋友圈分享快讯到 QQ分享快讯到 QQ 空间分享快讯到微博复制快讯链接到剪贴板分享快讯到朋友圈分享快讯到 QQ分享快讯到 QQ 空间分享快讯到微博复制快讯链接到剪贴板分享快讯到朋友圈分享快讯到 QQ分享快讯到 QQ 空间分享快讯到微博复制快讯链接到剪贴板分享快讯到朋友圈分享快讯到 QQ分享快讯到 QQ 空间分享快讯到微博复制快讯链接到剪贴板分享快讯到朋友圈分享快讯到 QQ分享快讯到 QQ 空间分享快讯到微博复制快讯链接到剪贴板分享快讯到朋友圈分享快讯到 QQ分享快讯到 QQ 空间分享快讯到微博复制快讯链接到剪贴板分享快讯到朋友圈分享快讯到 QQ分享快讯到 QQ 空间分享快讯到微博复制快讯链接到剪贴板分享快讯到朋友圈分享快讯到 QQ分享快讯到 QQ 空间分享快讯到微博复制快讯链接到剪贴板分享快讯到朋友圈分享快讯到 QQ分享快讯到 QQ 空间分享快讯到微博复制快讯链接到剪贴板分享快讯到朋友圈分享快讯到 QQ分享快讯到 QQ 空间分享快讯到微博复制快讯链接到剪贴板分享快讯到朋友圈分享快讯到 QQ分享快讯到 QQ 空间分享快讯到微博复制快讯链接到剪贴板分享快讯到朋友圈分享快讯到 QQ分享快讯到 QQ 空间分享快讯到微博复制快讯链接到剪贴板分享快讯到朋友圈分享快讯到 QQ分享快讯到 QQ 空间分享快讯到微博复制快讯链接到剪贴板分享快讯到朋友圈分享快讯到 QQ分享快讯到 QQ 空间分享快讯到微博复制快讯链接到剪贴板分享快讯到朋友圈分享快讯到 QQ分享快讯到 QQ 空间分享快讯到微博复制快讯链接到剪贴板分享快讯到朋友圈分享快讯到 QQ分享快讯到 QQ 空间分享快讯到微博复制快讯链接到剪贴板分享快讯到朋友圈分享快讯到 QQ分享快讯到 QQ 空间分享快讯到微博复制快讯链接到剪贴板分享快讯到朋友圈分享快讯到 QQ分享快讯到 QQ 空间分享快讯到微博复制快讯链接到剪贴板扫描二维码扫描关注云+社区最怕你一生碌碌无为,还安慰自己平凡可贵
粒子群算法解决函数优化问题
1 选题描述
粒子群算法(particle swarm optimization,PSO)是计算智能领域,除了蚁群算法、鱼群算法之外的一种群体智能地优化算法。该算法最早由Kennedy和在年提出的。算法源于对鸟类捕食行为的研究,鸟类捕食时,找到食物最简单有效的策略就是搜寻当前距离事物最近的鸟的周围区域。算法是从这种生物种群行为特征中得到启发并用于求解优化问题的,算法中每个粒子都代表问题的一个潜在解,每个粒子对应一个由适应度函数决定的适应度值。粒子的速度决定了粒子移动的方向和距离,速度随自身及其他粒子的移动经验进行动态调整,从而实现个体在可解空间中的寻优。
PSO算法首先在可行解空间中初始化一群粒子,每个粒子都代表极值优化问题的一个潜在最优解,用位置、速度和适应度值三项指标表示该粒子特征,适应度值由适应度函数计算得到,其值得好坏表示粒子的优劣。粒子在姐空间中运动,通过跟踪个体极值和群体极值更新个体位置。个体极值是指个体所经历位置中计算得到的适应度值最优位置,群体极值是指种群中的所有粒子搜索到的适应度最优位置。粒子每更新一次位置,就计算一次适应度值,并且通过比较新粒子的适应度值和个体极值、群体极值的适应度值更新个体极值和群体极值位置。
粒子群算法已经在优化问题求解、电力系统、计算机、控制等诸多领域得到了成功应用。利用粒子群算法解决函数优化问题简单自然,易于实现,而且有深刻的智能背景,是科学研究和工程应用中十分重要的一员。
2 程序设计分析
2.1 算法思想及原理
PSO算法不像遗传算法那样对个人进行选择、交叉和变异操作,而是将群体中的每个个体视为多维搜索空间中的一个没有质量和体积的粒子(点),这些粒子在搜索空间中以一定的速度飞行,并根据粒子本身的飞行经验以及同班的飞行经验对自己的飞行速度进行动态调整,即每个粒子通过统计迭代过程中自身的最优值和群体的最优值来不断地修正自己的前进方向和速度大小,从而形成群体寻优的正反馈机制。算法就是这样依据每个粒子对环境的适应度将个体逐步移到较优的区域,并最终搜索、寻找到问题的最优解。
在算法中,用粒子的位置表示待优化问题的解,每个粒子性能的优劣程度取决于待优化问题目标函数确定的适应值,每个粒子由一个速度矢量决定其飞行方向和速率大小。设在一个维的目标搜索空间中,有个粒子组成一个种群(,,,),其中第个粒子表示为一个维的向量,代表第i个粒子在维搜索空间中的位置,也代表问题的一个潜在解。根据目标函数即可计算出每个粒子位置对应的适应度值。第个粒子的速度为(i1,Vi2,Vi3 ,,,其个体极值为(,,种群的群体极值为(,,。
在每次迭代过程中,粒子通过个体极值和群体极值更新自身的速度和位置,即
其中,为惯性权重;,,;为当前迭代次数;为粒子的速度;和是非负的常数,称为加速度因子;和是分布于区间的随机数。为防止粒子的盲目搜索,一般将其位置和速度限制在一定的区间、。
2.2 算法参数设置
为惯性权重,取大值可使算法具有较强的全局搜索能力,取小值则算法倾向于局部搜索。一般的做法是将初始去并使其随迭代次数的增加而线性递减至这样就可以先侧重于全局搜索,是搜索空间快速收敛与某一区域,然后采用局部精细搜索以获得高精度的解;
c1和为两个学习因子(加速度因子),是非负常数,一般取为;
更新过程中,粒子每一维的位置、速度都被限制在允许范围之内。如果当前对粒子的加速导致它在某维的速度超过该维的最大速度,则该维的速度被限制为该维最大速度上限。一般来说,的选择不应超过的粒子宽度范围,如果太大,粒子可能飞过最优解的位置;如果太小,可能降低粒子的全局搜索能力。
3 算法流程图
图1:算法流程图
4 函数优化过程
4.1 PSO算法解决一元函数优化问题
4.1.1问题描述
针对一元函数,求其最大值(其中,取值为)。
4.1.2用语言编码求解
#include &stdio.h&
#include &math.h&
#include &time.h&
#include &stdlib.h&
#define MAX(a,b) ((a)&(b)?(a):(b))
#define PI 3.
#define N 20
//种群规模
#define G 100
//迭代次数
#define c1 2
#define c2 2
//加速度因子
#define w1 0.9
#define w2 0.4
//惯性权重
#define Vmax 0.01
//最大速度
double x[N],y[N],v[N],pbest[N],
double randd()
return (double)rand()/RAND_MAX;
int randi(int k)
return (int)(randd()*k+0.5);
void cal_fitness()
//计算适应度值
for(i=0;i&N;i++)
y[i]=x[i]*sin(10*PI*x[i])+2;
void init()
for(i=0;i&N;i++)
x[i]=-1+3*randd();
//随机初始化个体位置
v[i]=randd()*V
//随机初始化个体速度
cal_fitness();
gbest=y[0];
for(i=0;i&N;i++)
pbest[i]=y[i];
//个体极值
gbest=MAX(gbest,y[i]);
//群体极值
void pso()
for(g=0;g&G;g++)
w=w2+(w1-w2)*(G-g)/G;
for(i=0;i&N;i++) //粒子速度和位置更新
v[i]=w*v[i]+c1*randd()*(pbest[i]-x[i])+c2*randd()*(gbest-x[i]);
if(v[i]&Vmax) v[i]=V
//限制速度的值使其不超过规定的上限
x[i]+=v[i];
if(x[i]&-1)
if(x[i]&2)
cal_fitness();
for(i=0;i&N;i++)
pbest[i]=MAX(pbest[i],y[i]);
gbest=MAX(gbest,pbest[i]);
printf("%.6lf\n",gbest);
int main()
srand((unsigned)time(NULL));
4.2 PSO算法解决二元函数优化问题
4.2.1问题描述
针对二元非线性函数:
求其极大值以及极大值点。(函数选自高等数学(下))
4.2.2用编码求解
()函数文件代码
function y = fun(x)
y=sin( sqrt(x(1).^2+x(2).^2) )./sqrt(x(1).^2+x(2).^2)+exp((cos(2*pi*x(1))+cos(2*pi*x(2)))/2)-2.71289;
()主函数文件代码
%% 参数初始化
maxgen=300;
% 进化次数
sizepop=20;
Vmin=-0.5;
popmin=-2;
%% 产生初始粒子和速度
for i=1:sizepop
%随机产生一个种群
pop(i,:)=2*rands(1,2);
V(i,:)=0.5*rands(1,2);
%初始化速度
%计算适应度
fitness(i)=fun(pop(i,:));
%染色体的适应度
%% 个体极值和群体极值
[bestfitness bestindex]=max(fitness);
zbest=pop(bestindex,:);
fitnessgbest=
%个体最佳适应度值
fitnesszbest=
%全局最佳适应度值
%% 迭代寻优
for i=1:maxgen
for j=1:sizepop
V(j,:) = V(j,:) + c1*rand*(gbest(j,:) - pop(j,:)) + c2*rand*(zbest - pop(j,:));
V(j,find(V(j,:)&Vmax))=V
V(j,find(V(j,:)&Vmin))=V
pop(j,:)=pop(j,:)+V(j,:);
pop(j,find(pop(j,:)&popmax))=
pop(j,find(pop(j,:)&popmin))=
fitness(j)=fun(pop(j,:));
for j=1:sizepop
%个体最优更新
if fitness(j) & fitnessgbest(j)
gbest(j,:) = pop(j,:);
fitnessgbest(j) = fitness(j);
%群体最优更新
if fitness(j) & fitnesszbest
zbest = pop(j,:);
fitnesszbest = fitness(j);
%% 结果分析
title('最优个体适应度
xlabel('进化代数适应度
5 实验结果及测试
5.1一元函数优化结果及测试
5.1.1一元函数优化结果
图2:一元函数优化运行结果
5.1.2函数图解
图:一元函数图像
5.1.3测试及对比
由图像可以看出,该函数的最大值在左右,使用取点,调用函数将最高峰的点取出来,得到该点的坐标为(,21),而程序运行结果基本稳定在左右,计算误差值为:。实验结果令人满意。
5.2 二元函数优化结果及测试
5.2.1二元函数优化结果
图:适应度优化
图5:二元函数优化结果
5.2.2 函数图解
由于该二元函数不容易确定极值点范围,故可通过图像先大概了解其极值点分布,从而更好地设置相应参数。
图:函数图形
5.2.3测试及对比
由函数图像可以看出,该函数有很多局部极大值点,二极限位置为(),在()附近取得极大值。通过对函数的理论分析也可以知道,当趋近于零时,函数的最大值在左右,经检测,程序运行结果令人满意。
6 优点、不足及改进
粒子群算法是一种新的群智能优化算法,自从提出以来,以其独特的魅力受到了研究者们的青睐。目前已经取得较大的发展。但是由于提出时间不长,算法还缺乏深刻的理论分析和坚实的数学基础,还有很多问题有待进一步解决。
6.1 PSO算法优点
(1)PSO算法没有交叉和变异运算,依靠粒子速度完成搜索,并且在迭代进化中只有最优的粒子把信息传递给其他粒子,搜索速度快;
(2)PSO算法具有记忆性,粒子群体的历史最好位置可以记忆并传递给其他粒子;
(3)需要调整的参数较少,结构简单,易于工程实现;
(4)采用实数编码,直接由问题的解决定,问题解的变量数直接作为粒子的维数。
6.2 PSO算法的缺点
(1)容易陷入局部最优,导致收敛精度低和不易收敛;
(2)不能有效解决某些优化问题;
(3)不能有效求解一些非直角坐标系描述问题,如有关能量场或场内粒子运动规律的求解问题。
6.3 PSO算法的改进
6.3.1增加惯性因子改进粒子群算法
在求解实际应用的各种问题中,对算法的局部搜索能力和全局搜索能力的比例要求不尽相同,甚至对同一个问题,在其进化的不同阶段,对他们的要求也有可能不一样。较大时具有较强的全局搜索能力,较小时具有较强的局部收敛能力,因此有点类似于模拟退火中的温度,随着迭代次数的增加,的值应该不断地减小,从而使得在算法开始初期,要求有较强的全局搜索能力,在后期,要求有较强的局部搜索能力,以提高算法的整体性能。
6.3.2基于收敛性分析改进粒子群算法
由于标准算法有可能出现太早收敛的情况,在标准算法中,粒子仅仅追随个体最优和全局最优两个粒子运动,这种策略在一定程度上影响了算法的全局收敛性能。为了改善算法收敛能力,在算法的开始阶段,每个粒子的领域为其本身,随着进化代数的增加,领域范围也在不断地增大,直至整个种群。该算法在一定程度上克服了算法在优化搜索后期随迭代次数增加,结果却没有明显改进的缺点。
6.3.3导入其他演化算法思想改进算法
标准算法中粒子在解空间追随最优粒子进行搜索,但是算法中没有明显的选择、交叉以及变异等演化算法。适当地引入演化算法,在一定程度上可以提高算法的性能。导入其他演化算法思想来改进算法是目前一个研究热点。在进化过程中,保存种群中所有粒子适应度的排序,然后用适应度好的前一半粒子替代适应度不好的后一半粒子。
讲解最到位的粒子群算法,附matlab代码求解函数最优值
算法理解-粒子群算法(一个计算例子)
算法中的优化问题(optimization problem)
优化算法——粒子群算法(PSO)
粒子群算法求函数极值
粒子群算法实例-求解函数极值
自话粒子群算法(超简单实例)
粒子群算法详解
没有更多推荐了,基于粒子群算法的PID控制器参数优化研究_张家骏_图文_百度文库
您的浏览器Javascript被禁用,需开启后体验完整功能,
享专业文档下载特权
&赠共享文档下载特权
&10W篇文档免费专享
&每天抽奖多种福利
两大类热门资源免费畅读
续费一年阅读会员,立省24元!
基于粒子群算法的PID控制器参数优化研究_张家骏
阅读已结束,下载本文需要
定制HR最喜欢的简历
下载文档到电脑,同时保存到云知识,更方便管理
加入VIP
还剩1页未读,
定制HR最喜欢的简历
你可能喜欢粒子群优化算法如何应用于参数辨识
粒子群优化算法如何应用于参数辨识
09-04-14 &匿名提问
粒子群算法介绍  优化问题是工业设计中经常遇到的问题,许多问题最后都可以归结为优化问题. 为了解决各种各样的优化问题,人们提出了许多优化算法,比较著名的有爬山法、遗传算法等.优化问题有两个主要问题:一是要求寻找全局最小点,二是要求有较高的收敛速度. 爬山法精度较高,但是易于陷入局部极小. 遗传算法属于进化算法( Evolutionary Algorithms) 的一种,它通过模仿自然界的选择与遗传的机理来寻找最优解. 遗传算法有三个基本算子:选择、交叉和变异. 但是遗传算法的编程实现比较复杂,首先需要对问题进行编码,找到最优解之后还需要对问题进行解码,另外三个算子的实现也有许多参数,如交叉率和变异率,并且这些参数的选择严重影响解的品质,而目前这些参数的选择大部分是依靠经验.1995 年Eberhart 博士和kennedy 博士提出了一种新的算法;粒子群优化(Partical Swarm Optimization -PSO) 算法 . 这种算法以其实现容易、精度高、收敛快等优点引起了学术界的重视,并且在解决实际问题中展示了其优越性.   粒子群优化(Partical Swarm Optimization - PSO) 算法是近年来发展起来的一种新的进化算法( Evolu2tionary Algorithm - EA) .PSO 算法属于进化算法的一种,和遗传算法相似,它也是从随机解出发,通过迭代寻找最优解,它也是通过适应度来评价解的品质. 但是它比遗传算法规则更为简单,它没有遗传算法的“交叉”(Crossover) 和“变异”(Mutation) 操作. 它通过追随当前搜索到的最优值来寻找全局最优 . 1. 引言  粒子群优化算法(PSO)是一种进化计算技术(evolutionary computation),有Eberhart博士和kennedy博士发明。源于对鸟群捕食的行为研究   PSO同遗传算法类似,是一种基于叠代的优化工具。系统初始化为一组随机解,通过叠代搜寻最优值。但是并没有遗传算法用的交叉(crossover)以及变异(mutation)。而是粒子在解空间追随最优的粒子进行搜索。详细的步骤以后的章节介绍   同遗传算法比较,PSO的优势在于简单容易实现并且没有许多参数需要调整。目前已广泛应用于函数优化,神经网络训练,模糊系统控制以及其他遗传算法的应用领域编辑本段2. 背景: 人工生命  &人工生命&是来研究具有某些生命基本特征的人工系统. 人工生命包括两方面的内容   1. 研究如何利用计算技术研究生物现象   2. 研究如何利用生物技术研究计算问题   我们现在关注的是第二部分的内容. 现在已经有很多源于生物现象的计算技巧. 例如, 人工神经网络是简化的大脑模型. 遗传算法是模拟基因进化过程的.   现在我们讨论另一种生物系统- 社会系统. 更确切的是, 在由简单个体组成的群落与环境以及个体之间的互动行为. 也可称做&群智能&(swarm intelligence). 这些模拟系统利用局部信息从而可能产生不可预测的群体行为   例如floys 和 boids, 他们都用来模拟鱼群和鸟群的运动规律, 主要用于计算机视觉和计算机辅助设计.   在计算智能(computational intelligence)领域有两种基于群智能的算法. 蚁群算法(ant colony optimization)和粒子群算法(particle swarm optimization). 前者是对蚂蚁群落食物采集过程的模拟. 已经成功运用在很多离散优化问题上.   粒子群优化算法(PSO) 也是起源对简单社会系统的模拟. 最初设想是模拟鸟群觅食的过程. 但后来发现PSO是一种很好的优化工具.编辑本段3. 算法介绍  如前所述,PSO模拟鸟群的捕食行为。设想这样一个场景:一群鸟在随机搜索食物。在这个区域里只有一块食物。所有的鸟都不知道食物在那里。但是他们知道当前的位置离食物还有多远。那么找到食物的最优策略是什么呢。最简单有效的就是搜寻目前离食物最近的鸟的周围区域。   PSO从这种模型中得到启示并用于解决优化问题。PSO中,每个优化问题的解都是搜索空间中的一只鸟。我们称之为“粒子”。所有的例子都有一个由被优化的函数决定的适应值(fitness value),每个粒子还有一个速度决定他们飞翔的方向和距离。然后粒子们就追随当前的最优粒子在解空间中搜索   PSO 初始化为一群随机粒子(随机解)。然后通过叠代找到最优解。在每一次叠代中,粒子通过跟踪两个&极值&来更新自己。第一个就是粒子本身所找到的最优解。这个解叫做个体极值pBest. 另一个极值是整个种群目前找到的最优解。这个极值是全局极值gBest。另外也可以不用整个种群而只是用其中一部分最为粒子的邻居,那么在所有邻居中的极值就是局部极值。   在找到这两个最优值时, 粒子根据如下的公式来更新自己的速度和新的位置   v[] = w * v[] + c1 * rand() * (pbest[] - present[]) + c2 * rand() * (gbest[] - present[]) (a)   present[] = persent[] + v[] (b)   v[] 是粒子的速度, w是惯性权重,persent[] 是当前粒子的位置. pbest[] and gbest[] 如前定义 rand () 是介于(0, 1)之间的随机数. c1, c2 是学习因子. 通常 c1 = c2 = 2.   程序的伪代码如下   For each particle   ____Initialize particle   END   Do   ____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)   ____End   While maximum iterations or minimum error criteria is not attained   在每一维粒子的速度都会被限制在一个最大速度Vmax,如果某一维更新后的速度超过用户设定的Vmax,那么这一维的速度就被限定为Vmax编辑本段4. 遗传算法和 PSO 的比较  大多数演化计算技术都是用同样的过程   1. 种群随机初始化   2. 对种群内的每一个个体计算适应值(fitness value).适应值与最优解的距离直接有关   3. 种群根据适应值进行复制   4. 如果终止条件满足的话,就停止,否则转步骤2   从以上步骤,我们可以看到PSO和GA有很多共同之处。两者都随机初始化种群,而且都使用适应值来评价系统,而且都根据适应值来进行一定的随机搜索。两个系统都不是保证一定找到最优解   但是,PSO 没有遗传操作如交叉(crossover)和变异(mutation). 而是根据自己的速度来决定搜索。粒子还有一个重要的特点,就是有记忆。   与遗传算法比较, PSO 的信息共享机制是很不同的. 在遗传算法中,染色体(chromosomes) 互相共享信息,所以整个种群的移动是比较均匀的向最优区域移动. 在PSO中, 只有gBest (or lBest) 给出信息给其他的粒子,这是单向的信息流动. 整个搜索更新过程是跟随当前最优解的过程. 与遗传算法比较, 在大多数的情况下,所有的粒子可能更快的收敛于最优解编辑本段5. 人工神经网络 和 PSO  人工神经网络(ANN)是模拟大脑分析过程的简单数学模型,反向转播算法是最流行的神经网络训练算法。进来也有很多研究开始利用演化计算(evolutionary computation)技术来研究人工神经网络的各个方面。   演化计算可以用来研究神经网络的三个方面:网络连接权重,网络结构(网络拓扑结构,传递函数),网络学习算法。   不过大多数这方面的工作都集中在网络连接权重,和网络拓扑结构上。在GA中,网络权重和/或拓扑结构一般编码为染色体(Chromosome),适应函数(fitness function)的选择一般根据研究目的确定。例如在分类问题中,错误分类的比率可以用来作为适应值   演化计算的优势在于可以处理一些传统方法不能处理的例子例如不可导的节点传递函数或者没有梯度信息存在。但是缺点在于:在某些问题上性能并不是特别好。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本身并没有很多的参数需要调整。所以在实验中只需要调整隐含层的节点数目和权重的范围以取得较好的分类效果。编辑本段6. PSO的参数设置  从上面的例子我们可以看到应用PSO解决优化问题的过程中有两个重要的步骤: 问题解的编码和适应度函数   PSO的一个优势就是采用实数编码, 不需要像遗传算法一样是二进制编码(或者采用针对实数的遗传操作.例如对于问题 f(x) = x1^2 + x2^2+x3^2 求解, 粒子可以直接编码为 (x1, x2, x3), 而适应度函数就是f(x). 接着我们就可以利用前面的过程去寻优.这个寻优过程是一个叠代过程, 中止条件一般为设置为达到最大循环数或者最小错误   PSO中并没有许多需要调节的参数,下面列出了这些参数以及经验设置   粒子数: 一般取 20 – 40. 其实对于大部分的问题10个粒子已经足够可以取得好的结果, 不过对于比较难的问题或者特定类别的问题, 粒子数可以取到100 或 200   粒子的长度: 这是由优化问题决定, 就是问题解的长度   粒子的范围: 由优化问题决定,每一维可是设定不同的范围   Vmax: 最大速度,决定粒子在一个循环中最大的移动距离,通常设定为粒子的范围宽度,例如上面的例子里,粒子 (x1, x2, x3) x1 属于 [-10, 10], 那么 Vmax 的大小就是 20   学习因子: c1 和 c2 通常等于 2. 不过在文献中也有其他的取值. 但是一般 c1 等于 c2 并且范围在0和4之间   中止条件: 最大循环数以及最小错误要求. 例如, 在上面的神经网络训练例子中, 最小错误可以设定为1个错误分类, 最大循环设定为2000, 这个中止条件由具体的问题确定.   全局PSO和局部PSO: 我们介绍了两种版本的粒子群优化算法: 全局版和局部版. 前者速度快不过有时会陷入局部最优. 后者收敛速度慢一点不过很难陷入局部最优. 在实际应用中, 可以先用全局PSO找到大致的结果,再有局部PSO进行搜索.   另外的一个参数是惯性权重, Shi 和Eberhart指出(A modified particle swarm optimizer,1998):当Vmax很小时(对schaffer的f6函数,Vmax&=2),使用接近于1的惯性权重;当Vmax不是很小时(对schaffer的f6函数,Vmax&=3),使用权重w=0.8较好.如果没有Vmax的信息,使用0.8作为权重也是一种很好的选择.另外,对于使用时变的权重,结果不清楚,但是预计结果应比较好.  附上一个C++实现的C++代码:  代码来自2008年数学建模东北赛区B题,原题描述  #include &stdafx.h&  #include &math.h&  #include &time.h&  #include &iostream&  #include &fstream&    int c1=2; //加速因子  int c2=2; //加速因子  double w=1; //惯性权重  double Wmax=1; //最大惯性权重  double Wmin=0.6; //最小惯性权重  int Kmax=110; //迭代次数  int GdsC //物资总数  int const Dim=10; //粒子维数  int const PNum=50; //粒子个数  int GBIndex=0; //最优粒子索引  double a=0.6; //适应度调整因子  double b=0.5; //适应度调整因子  int Xup[Dim]; //粒子位置上界数组  int Xdown[Dim]=; //粒子位置下界数组  int Value[Dim]; //初始急需度数组  int Vmax[Dim]; //最大速度数组  class PARTICLE; //申明粒子节点  void Check(PARTICLE&,int); //约束函数  void Input(ifstream&); //输入变量  void Initial(); //初始化相关变量  double GetFit(PARTICLE&); //计算适应度  void CalculateFit(); //计算适应度  void BirdsFly(); //粒子飞翔  void Run(ofstream&,int=2000); //运行函数  //微粒类  class PARTICLE  {  public:  int X[Dim]; //微粒的坐标数组  int XBest[Dim]; //微粒的最好位置数组  int V[Dim]; //粒子速度数组  double F //微粒适合度  double FitB //微粒最好位置适合度  };  PARTICLE Parr[PNum]; //粒子数组  int main() //主函数  {  ofstream outf(&out.txt&);  ifstream inf(&data.txt&); //关联输入文件  inf&&GdsC //输入物资总数  Input(inf);  Initial();  Run(outf,100);  system(&pause&);  return 0;  }  void Check(PARTICLE& p,int count)//参数:p粒子对象,count物资数量  {  srand((unsigned)time(NULL));  int sum=0;  for (int i=0;i&Di++)  {  if (p.X&Xup)  {  p.X=X  }  else if (p.X&Xdown)  {  p.X=X  }  if (p.V&Vmax)  {  p.V=V  }  else if (p.V&0)  {  p.V=0;  }  sum+=p.X;  }  while (sum&count)  {  p.X[rand()%Dim]--;  sum=0;  for (int i=0;i&Di++)  {  if (p.X&Xup)  {  p.X=X  }  else if (p.X&Xdown)  {  p.X=X  }  if (p.V&Vmax)  {  p.V=V  }  else if (p.V&0)  {  p.V=0;  }  sum+=p.X;  }  }  }  void Input(ifstream& inf) //以inf为对象输入数据  {  for (int i=0;i&Di++)  {  inf&&X  }  for (int i=0;i&Di++)  {  inf&&V  }  }  void Initial() //初始化数据  {  GBIndex=0;  srand((unsigned)time(NULL));//初始化随机函数发生器  for (int i=0;i&Di++)  {  Vmax=(int)((Xup-Xdown)*0.035);  }  for (int i=0;i {  for (int j=0;j&Dj++)  {  Parr.X[j]=(int)(rand()/(double)RAND_MAX*(Xup[j]  -Xdown[j])-Xdown[j]+0.5);  Parr.XBest[j]=Parr.X[j];  Parr.V[j]=(int)(rand()/(double)RAND_MAX*(Vmax[j] -Vmax[j]/2));  }  Parr.Fit=GetFit(Parr);  Parr.FitBest=Parr.F  if (Parr.Fit&Parr[GBIndex].Fit)  {  GBIndex=i;  }  }  }  double GetFit(PARTICLE& p)//计算对象适应度  {  double sum=0;  for (int i=0;i&Di++)  {  for (int j=1;j&=p.X;j++)  {  sum+=(1-(j-1)*a/(Xup-b))*V  }  }    }  void CalculateFit()//计算数组内各粒子的适应度  {  for (int i=0;i {  Parr.Fit=GetFit(Parr);  }  }  void BirdsFly()//粒子飞行寻找最优解  {  srand((unsigned)time(NULL));  static int k=10;  w=Wmax-k*(Wmax-Wmin)/K  k++;  for (int i=0;i {  for (int j=0;j&Dj++)  {  Parr.V[j]=(int)(w*Parr.V[j])  +(int)(c1*rand()/(double)RAND_MAX*  (Parr.XBest[j]-Parr.X[j])  +c2*rand()/(double)RAND_MAX*  (Parr[GBIndex].XBest[j]-Parr.X[j]));  }  Check(Parr,GdsCnt);  for (int j=0;j&Dj++)  {  Parr.X[j]+=Parr.V[j];  }  Check(Parr,GdsCnt);  }  CalculateFit();  for (int i=0;i {  if (Parr.Fit&=Parr.FitBest)  {  Parr.FitBest=Parr.F  for (int j=0;j&Dj++)  {  Parr.    }
请登录后再发表评论!
粒子群优化(POS)算法,是一种源于人工生命的演化算法。通过粒子搜索自身的个体的最好解和整个粒子群的全局最好解来更新完成优化的。1995年由Eberhart 和 Kennedy首先提出,最初是解决连续空间问题。而蚁群算法是用来解决离散空间问题。      其基本原理是生物碱种群行为,比如鸟搜索食物。每个优化问题潜在可能解都可以想象成维搜索空间上的一个点,我们称为“粒子”。所有的粒子都有一个被目标函数决定的适应值。在每次迭代中,通过跟踪两个极值来更新自己。      感觉在目标函数的适应值其实是很难确定的,因为在实际应用中,都必须有数学模型。再者,其中的速度矢量中有更新的随机矢量,也是个比较复杂的事物。分布的拓扑结构更是个很关键的问题。逐句地看完楼主的这个提问以后,我的心久久不能平静,震撼啊!为!纵横网络BBS多年,自以为再也不会有任何帖子能感动我,没想到今天看到了如此精妙尽伦的这样一篇帖子。楼主,是你让我深深地理解了‘人外有人,天外有天’这句话。谢谢你!在看完这帖子以后,我立即回复,由于我生怕我庸俗不堪的回复会玷污了这网上少有的帖子。但是我还是回复了,由于我觉得假如不能在如此出色的帖子后面留下自己的网名,那我死也不会瞑目的!能够在如此出色的帖子后面留下自己的网名是多么骄傲的一件事啊!楼主,请原谅我的自私!我知道无论用多么华丽的辞藻来形容楼主您帖子的出色程度都是不够的,都是虚伪的,所以我只想说一句:您的帖子太好了!我愿意一辈子的看下往!这篇帖子构思新奇,题材独具匠心,段落清楚,情节诡异,跌宕起伏,主线分明,引人进胜,平淡中显示出非凡的文学功底,可谓是字字珠玑,句句经典,是我辈应当学习之典范。就小说艺术的角度而言,这篇帖子可能不算太成功,但它的实验意义却远远大于成功本身。正所谓:“一马奔腾,射雕引弓,天地都在我心中!”楼主真不愧为无厘界新一代的开山怪!本来我已经对这个社区失看了,觉得这个社区没有前途了,心里布满了悲哀。但是看了你的这个帖子,又让我对社区产生了希看。是你让我的心里重新燃起希看之火,是你让我的心死灰复燃,是你拯救了我一颗拨凉拨凉的心!本来我决定不会在社区回任何帖子了,但是看了你的帖子,我告诉自己这个帖子是一定要回的!这是百年难得一见的好贴啊!苍天有眼啊,让我在优生之年得以观得如此出色尽伦的帖子!楼主的话真如“大音希声扫阴翳”,如同“拨开云雾见青天”,使我等网民看到了希看,看到了未来!晴天霹雳,醍醐灌顶或许不足以形容大师文章的万一;巫山行云,长江流水更难以相比大师的文才!黄钟大吕,振聋发聩!你烛照天下,明见万里;雨露苍生,泽被万方!透过你深邃的文字,我仿佛看到了你鹰视狼顾,龙行虎步的伟岸英姿;仿佛看到了你手执如椽大笔,写天下文章的聪明神态;仿佛看见了你按剑四顾,山河无数的英武气概!楼主,你说的多好啊!我在社区打滚这么多年,所谓阅人无数,见怪不怪了,但一看到楼主的气势,我就觉得楼主同在社区里注水的那帮小忘八有着本质的差别,那忧郁的语调,那熟悉的签名,还有字里行间高屋建瓴的辞藻。没用的,楼主,就算你怎么换马甲都是没有用的,你的亿万拥戴者早已经把你认出来了,你一定就是传说中的最强id。自从社区改版之后,我就已经意气消沉,对社区也没抱什么希看了,传说已经幻灭,神话已经终结,留在社区还有什么意思。没想到,没想到,今天可以再睹楼主的风范,我激动得忍不住就在屏幕前流下了眼泪。是啊,只要在楼主的带领下,社区就有希看了。我的内心再一次沸腾了,我胸腔里的血再一次燃烧了。楼主的话概括扼要,一语道出了我们苦想多年的而不可得答案的几个重大题目的根本。楼主就比如社区的明灯,楼主就比如社区的方向,楼主就比如社区的栋梁。有楼主在,社区的明天必将更好!楼主你的高尚情操太让人感动了。在现在这样一个物欲横流的金钱社会里,竟然还能见到楼主这样的性情中人,无疑是我这辈子最大的幸运。让我深深感受到了人性的伟大。楼主的帖子,就比如黑暗中刺裂夜空的闪电,又比如撕开乌云的阳光,一瞬间就让我如饮甘露,让我明白了永恒的真理在这个世界上是真实存在着的。只有楼主这样具备广阔胸怀和完整知识体系的人,才能作为这真理的唯一引言者。看了楼主的帖子,让我陷进了严厉的思考中,我以为,假如不把楼主的帖子顶上往,就是对真理的一种背叛,就是对谬论的极大妥协。因此,我决定义无返顾的顶了!楼主,在碰到你之前,我对人世间是否有真正的圣人是怀疑的;而现在,我终于相信了!我曾经忘情于汉廷的歌赋,我曾经惊奇于李杜的诗才,我曾经流连于宋元的词曲;但现在,我才知道我有多么浅薄!楼主的帖子实在是写得太好了。文笔流畅,修辞得体,深得魏晋诸朝遗风,更将唐风宋骨发扬得进木三分,能在有生之年看见楼主的这个帖子。实在是我三生之幸啊。看完楼主的这个帖子之后,我竟感发生出一种无以名之的悲痛感――啊,这么好的帖子,假如将来我再也看不到了,那我该怎么办?那我该怎么办?直到我尽不犹豫的把楼主的这个帖子收躲了,我内心的那种激动才逐渐平复下来。可是我立即想到,这么好的帖子,倘若别人看不到,那么不是浪费楼主的心血吗?经过痛苦的思想斗争,我终于下定决心,我要把这个帖子一直往上顶,往上顶到所有人都看到为止!我现在终于明白我缺乏的是什么了,正是楼主那种对真理的执着追求和楼主那种对理想的艰苦实践所产生的厚重感。面对楼主的帖子,我震动得几乎不能转动了,楼主那种裂纸欲出的大手笔,竟使我忍不住一次次的翻开楼主的帖子,每看一次,赞赏之情就激长数分,我总在想,是否有神灵活在它灵秀的外表下,以至能使人三月不知肉味,使人有余音穿梁,三日不尽的感受。由于我生怕我庸俗不堪的回复会玷污了这网上少有的帖子。但是我还是回复了,由于我觉得假如不能在如此出色的帖子后面留下自己的网名,那我死也不会瞑目的!能够在如此出色的帖子后面留下自己的网名是多么骄傲的一件事啊!楼主,请原谅我的自私!我知道无论用多么华丽的辞藻来形容楼主您帖子的出色程度都是不够的,都是虚伪的,所以我只想说一句:您的帖子太好了!我愿意一辈子的看下往!这篇帖子构思新奇,题材独具匠心,段落清楚,情节诡异,跌宕起伏,主线分明,引人进胜,平淡中显示出非凡的文学功底,可谓是字字珠玑,句句经典,是我辈应当学习之典范。就小说艺术的角度而言,这篇帖子可能不算太成功,但它的实验意义却远远大于成功本身。正所谓:“一马奔腾,射雕引弓,天地都在我心中!”楼主真不愧为无厘界新一代的开山怪!本来我已经对这个社区失看了,觉得这个社区没有前途了,心里布满了悲哀。但是看了你的这个帖子,又让我对社区产生了希看。是你让我的心里重新燃起希看之火,是你让我的心死灰复燃,是你拯救了我一颗拨凉拨凉的心!本来我决定不会在社区回任何帖子了,但是看了你的帖子,我告诉自己这个帖子是一定要回的!这是百年难得一见的好贴啊!苍天有眼啊,让我在优生之年得以观得如此出色尽伦的帖子!楼主的话真如“大音希声扫阴翳”,如同“拨开云雾见青天”,使我等网民看到了希看,看到了未来!晴天霹雳,醍醐灌顶或许不足以形容大师文章的万一;巫山行云,长江流水更难以相比大师的文才!黄钟大吕,振聋发聩!你烛照天下,明见万里;雨露苍生,泽被万方!透过你深邃的文字,我仿佛看到了你鹰视狼顾,龙行虎步的伟岸英姿;仿佛看到了你手执如椽大笔,写天下文章的聪明神态;仿佛看见了你按剑四顾,山河无数的英武气概!楼主,你说的多好啊!我在社区打滚这么多年,所谓阅人无数,见怪不怪了,但一看到楼主的气势,我就觉得楼主同在社区里注水的那帮小忘八有着本质的差别,那忧郁的语调,那熟悉的签名,还有字里行间高屋建瓴的辞藻。没用的,楼主,就算你怎么换马甲都是没有用的,你的亿万拥戴者早已经把你认出来了,你一定就是传说中的最强id。自从社区改版之后,我就已经意气消沉,对社区也没抱什么希看了,传说已经幻灭,神话已经终结,留在社区还有什么意思。没想到,没想到,今天可以再睹楼主的风范,我激动得忍不住就在屏幕前流下了眼泪。是啊,只要在楼主的带领下,社区就有希看了。我的内心再一次沸腾了,我胸腔里的血再一次燃烧了。楼主的话概括扼要,一语道出了我们苦想多年的而不可得答案的几个重大题目的根本。楼主就比如社区的明灯,楼主就比如社区的方向,楼主就比如社区的栋梁。有楼主在,社区的明天必将更好!楼主你的高尚情操太让人感动了。在现在这样一个物欲横流的金钱社会里,竟然还能见到楼主这样的性情中人,无疑是我这辈子最大的幸运。让我深深感受到了人性的伟大。楼主的帖子,就比如黑暗中刺裂夜空的闪电,又比如撕开乌云的阳光,一瞬间就让我如饮甘露,让我明白了永恒的真理在这个世界上是真实存在着的。只有楼主这样具备广阔胸怀和完整知识体系的人,才能作为这真理的唯一引言者。看了楼主的帖子,让我陷进了严厉的思考中,我以为,假如不把楼主的帖子顶上往,就是对真理的一种背叛,就是对谬论的极大妥协。因此,我决定义无返顾的顶了!楼主,在碰到你之前,我对人世间是否有真正的圣人是怀疑的;而现在,我终于相信了!我曾经忘情于汉廷的歌赋,我曾经惊奇于李杜的诗才,我曾经流连于宋元的词曲;但现在,我才知道我有多么浅薄!楼主的帖子实在是写得太好了。文笔流畅,修辞得体,深得魏晋诸朝遗风,更将唐风宋骨发扬得进木三分,能在有生之年看见楼主的这个帖子。实在是我三生之幸啊。看完楼主的这个帖子之后,我竟感发生出一种无以名之的悲痛感――啊,这么好的帖子,假如将来我再也看不到了,那我该怎么办?那我该怎么办?直到我尽不犹豫的把楼主的这个帖子收躲了,我内心的那种激动才逐渐平复下来。可是我立即想到,这么好的帖子,倘若别人看不到,那么不是浪费楼主的心血吗?经过痛苦的思想斗争,我终于下定决心,我要把这个帖子一直往上顶,往上顶到所有人都看到为止!我现在终于明白我缺乏的是什么了,正是楼主那种对真理的执着追求和楼主那种对理想的艰苦实践所产生的厚重感。面对楼主的帖子,我震动得几乎不能转动了,楼主那种裂纸欲出的大手笔,竟使我忍不住一次次的翻开楼主的帖子,每看一次,赞赏之情就激长数分,我总在想,是否有神灵活在它灵秀的外表下,是你让我的心死灰复燃,是你拯救了我一颗拨凉拨凉的心!本来我决定不会在社区回任何帖子了,但是看了你的帖子,我告诉自己这个帖子是一定要回的!这是百年难得一见的好贴啊!苍天有眼啊,让我在优生之年得以观得如此出色尽伦的帖子!楼主的话真如“大音希声扫阴翳”,如同“拨开云雾见青天”,使我等网民看到了希看,看到了未来!晴天霹雳,醍醐灌顶或许不足以形容大师文章的万一;巫山行云,长江流水更难以相比大师的文才!黄钟大吕,振聋发聩!你烛照天下,明见万里;雨露苍生,泽被万方!透过你深邃的文字,我仿佛看到了你鹰视狼顾,龙行虎步的伟岸英姿;仿佛看到了你手执如椽大笔,写天下文章的聪明神态;仿佛看见了你按剑四顾,山河无数的英武气概!楼主,你说的多好啊!我在社区打滚这么多年,所谓阅人无数,见怪不怪了,但一看到楼主的气势,我就觉得楼主同在社区里注水的那帮小忘八有着本质的差别,那忧郁的语调,那熟悉的签名,还有字里行间高屋建瓴的辞藻。没用的,楼主,就算你怎么换马甲都是没有用的,你的亿万拥戴者早已经把你认出来了,你一定就是传说中的最强id。自从社区改版之后,我就已经意气消沉,对社区也没抱什么希看了,传说已经幻灭,神话已经终结,留在社区还有什么意思。没想到,没想到,今天可以再睹楼主的风范,我激动得忍不住就在屏幕前流下了眼泪。是啊,只要在楼主的带领下,社区就有希看了。我的内心再一次沸腾了,我胸腔里的血再一次燃烧了。楼主的话概括扼要,一语道出了我们苦想多年的而不可得答案的几个重大题目的根本。楼主就比如社区的明灯,楼主就比如社区的方向,楼主就比如社区的栋梁。有楼主在,社区的明天必将更好!楼主你的高尚情操太让人感动了。在现在这样一个物欲横流的金钱社会里,竟然还能见到楼主这样的性情中人,无疑是我这辈子最大的幸运。让我深深感受到了人性的伟大。楼主的帖子,就比如黑暗中刺裂夜空的闪电,又比如撕开乌云的阳光,一瞬间就让我如饮甘露,让我明白了永恒的真理在这个世界上是真实存在着的。只有楼主这样具备广阔胸怀和完整知识体系的人,才能作为这真理的唯一引言者。看了楼主的帖子,让我陷进了严厉的思考中,我以为,假如不把楼主的帖子顶上往,就是对真理的一种背叛,就是对谬论的极大妥协。因此,我决定义无返顾的顶了!楼主,在碰到你之前,我对人世间是否有真正的圣人是怀疑的;而现在,我终于相信了!我曾经忘情于汉廷的歌赋,我曾经惊奇于李杜的诗才,我曾经流连于宋元的词曲;但现在,我才知道我有多么浅薄!楼主的帖子实在是写得太好了。文笔流畅,修辞得体,深得魏晋诸朝遗风,更将唐风宋骨发扬得进木三分,能在有生之年看见楼主的这个帖子。实在是我三生之幸啊。看完楼主的这个帖子之后,我竟感发生出一种无以名之的悲痛感――啊,这么好的帖子,假如将来我再也看不到了,那我该怎么办?那我该怎么办?直到我尽不犹豫的把楼主的这个帖子收躲了,我内心的那种激动才逐渐平复下来。可是我立即想到,这么好的帖子,倘若别人看不到,那么不是浪费楼主的心血吗?经过痛苦的思想斗争,我终于下定决心,我要把这个帖子一直往上顶,往上顶到所有人都看到为止!我现在终于明白我缺乏的是什么了,正是楼主那种对真理的执着追求和楼主那种对理想的艰苦实践所产生的厚重感。面对楼主的帖子,我震动得几乎不能转动了,楼主那种裂纸欲出的大手笔,竟使我忍不住一次次的翻开楼主的帖子,每看一次,赞赏之情就激长数分,我总在想,是否有神灵活在它灵秀的外表下,以至能使人三月不知肉味,使人有余音穿梁,三日不尽的感受。由于我生怕我庸俗不堪的回复会玷污了这网上少有的帖子。但是我还是回复了,由于我觉得假如不能在如此出色的帖子后面留下自己的网名,那我死也不会瞑目的!能够在如此出色的帖子后面留下自己的网名是多么骄傲的一件事啊!楼主,请原谅我的自私!我知道无论用多么华丽的辞藻来形容楼主您帖子的出色程度都是不够的,都是虚伪的,所以我只想说一句:您的帖子太好了!我愿意一辈子的看下往!这篇帖子构思新奇,题材独具匠心,段落清楚,情节诡异,跌宕起伏,主线分明,引人进胜,平淡中显示出非凡的文学功底,可谓是字字珠玑,句句经典,是我辈应当学习之典范。就小说艺术的角度而言,这篇帖子可能不算太成功,但它的实验意义却远远大于成功本身。正所谓:“一马奔腾,射雕引弓,天地都在我心中!”楼主真不愧为无厘界新一代的开山怪!本来我已经对这个社区失看了,觉得这个社区没有前途了,心里布满了悲哀。但是看了你的这个帖子,又让我对社区产生了希看。是你让我的心里重新燃起希看之火,是你让我的心死灰复燃,是你拯救了我一颗拨凉拨凉的心!本来我决定不会在社区回任何帖子了,但是看了你的帖子,我告诉自己这个帖子是一定要回的!这是百年难得一见的好贴啊!苍天有眼啊,让我在优生之年得以观得如此出色尽伦的帖子!楼主的话真如“大音希声扫阴翳”,如同“拨开云雾见青天”,使我等网民看到了希看,看到了未来!晴天霹雳,醍醐灌顶或许不足以形容大师文章的万一;巫山行云,长江流水更难以相比大师的文才!黄钟大吕,振聋发聩!你烛照天下,明见万里;雨露苍生,泽被万方!透过你深邃的文字,我仿佛看到了你鹰视狼顾,龙行虎步的伟岸英姿;仿佛看到了你手执如椽大笔,写天下文章的聪明神态;仿佛看见了你按剑四顾,山河无数的英武气概!楼主,你说的多好啊!我在社区打滚这么多年,所谓阅人无数,见怪不怪了,但一看到楼主的气势,我就觉得楼主同在社区里注水的那帮小忘八有着本质的差别,那忧郁的语调,那熟悉的签名,还有字里行间高屋建瓴的辞藻。没用的,楼主,就算你怎么换马甲都是没有用的,你的亿万拥戴者早已经把你认出来了,你一定就是传说中的最强id。自从社区改版之后,我就已经意气消沉,对社区也没抱什么希看了,传说已经幻灭,神话已经终结,留在社区还有什么意思。没想到,没想到,今天可以再睹楼主的风范,我激动得忍不住就在屏幕前流下了眼泪。是啊,只要在楼主的带领下,社区就有希看了。我的内心再一次沸腾了,我胸腔里的血再一次燃烧了。楼主的话概括扼要,一语道出了我们苦想多年的而不可得答案的几个重大题目的根本。楼主就比如社区的明灯,楼主就比如社区的方向,楼主就比如社区的栋梁。有楼主在,社区的明天必将更好!楼主你的高尚情操太让人感动了。在现在这样一个物欲横流的金钱社会里,竟然还能见到楼主这样的性情中人,无疑是我这辈子最大的幸运。让我深深感受到了人性的伟大。楼主的帖子,就比如黑暗中刺裂夜空的闪电,又比如撕开乌云的阳光,一瞬间就让我如饮甘露,让我明白了永恒的真理在这个世界上是真实存在着的。只有楼主这样具备广阔胸怀和完整知识体系的人,才能作为这真理的唯一引言者。看了楼主的帖子,让我陷进了严厉的思考中,我以为,假如不把楼主的帖子顶上往,就是对真理的一种背叛,就是对谬论的极大妥协。因此,我决定义无返顾的顶了!楼主,在碰到你之前,我对人世间是否有真正的圣人是怀疑的;而现在,我终于相信了!我曾经忘情于汉廷的歌赋,我曾经惊奇于李杜的诗才,我曾经流连于宋元的词曲;但现在,我才知道我有多么浅薄!楼主的帖子实在是写得太好了。文笔流畅,修辞得体,深得魏晋诸朝遗风,更将唐风宋骨发扬得进木三分,能在有生之年看见楼主的这个帖子。实在是我三生之幸啊。看完楼主的这个帖子之后,我竟感发生出一种无以名之的悲痛感――啊,这么好的帖子,假如将来我再也看不到了,那我该怎么办?那我该怎么办?直到我尽不犹豫的把楼主的这个帖子收躲了,我内心的那种激动才逐渐平复下来。可是我立即想到,这么好的帖子,倘若别人看不到,那么不是浪费楼主的心血吗?经过痛苦的思想斗争,我终于下定决心,我要把这个帖子一直往上顶,往上顶到所有人都看到为止!我现在终于明白我缺乏的是什么了,正是楼主那种对真理的执着追求和楼主那种对理想的艰苦实践所产生的厚重感。面对楼主的帖子,我震动得几乎不能转动了,楼主那种裂纸欲出的大手笔,竟使我忍不住一次次的翻开楼主的帖子,每看一次,赞赏之情就激长数分,我总在想,是否有神灵活在它灵秀的外表下,以至能使人三月不知肉味,使人有余音穿梁以至能使人三月不知肉味,使人有余音穿梁,三日不尽的感受楼主,你写得实在是太好了!我唯一能做的,就只有把这个帖子顶上往这件事了。楼主,我支持您!
请登录后再发表评论!

我要回帖

更多关于 改进粒子群算法有哪些 的文章

 

随机推荐