18基于遗传算法(粒子群算法、人工鱼群算法等)的投影寻踪模型MATLAB源代码

18基于遗传算法(粒子群算法、人工鱼群算法等)的投影寻踪模型MATLAB源代码
18基于遗传算法(粒子群算法、人工鱼群算法等)的投影寻踪模型MATLAB源代码

基于遗传算法(粒子群算法、人工鱼群算法等)的投影寻踪模型

MATLAB源代码

投影寻踪是一种处理多因素复杂问题的统计方法,其基本思路是将高维数据向低维空间进行投影,通过低维投影数据的散布结构来研究高维数据特征,可用于聚类、分类、综合评价、预测等。投影寻踪模型最终可归结为一个非线性连续函数优化模型,可以采用遗传算法、粒子群算法、人工鱼群算法或人工免疫克隆优化算法等进行求解,得到最优的投影向量。

%% 第一步:仿真参数设置

clc

clear

close all

load data1.txt

D=data1;%导入D矩阵

[n,p]=size(D);

K=300;%迭代次数

N=100;%种群规模

Pm=0.3;%变异概率

LB=-ones(1,p);%决策变量的下界

UB=ones(1,p);%决策变量的上界

Alpha=0.1;%窗口半径系数,典型取值0.1b

%% 调用遗传算法

[BESTX,BESTY,ALLX,ALL Y]=GAUCP(K,N,Pm,LB,UB,D,Alpha);

% GreenSim团队——专业级算法设计&代写程序

% 欢迎访问GreenSim团队主页→https://www.360docs.net/doc/e24720816.html,/greensim

%% 整理输出结果

Best_a=(BESTX{K})';%方向向量

d=zeros(n,p);

Djmax=max(D);

Djmin=min(D);

for i=1:n

d(i,:)=(D(i,:)-Djmin)./(Djmax-Djmin);

end

Z=zeros(n,1);

for i=1:n

Z(i)=abs(sum(Best_a.*d(i,:)));

end

Z=abs(Z);

figure%投影散布图

plot(abs(Z),'bd','LineWidth',1,'MarkerEdgeColor','k','MarkerFaceColor','b','MarkerSize',5);

%axis([1,12,0,2.5]);%图形边界根据需要显示

grid on

xlabel(' ','FontName','TimesNewRoman','FontSize',12);

ylabel('Projective Value','FontName','Times New Roman','Fontsize',12);

figure

[newZ,I]=sort(Z);

plot(abs(newZ),'bd','LineWidth',1,'MarkerEdgeColor','k','MarkerFaceColor','b','MarkerSize',5); %axis([1,12,0,2.5]);%图形边界根据需要显示

grid on

xlabel(' ','FontName','TimesNewRoman','FontSize',12);

ylabel('Projective Value','FontName','Times New Roman','Fontsize',12);

%%

disp('最佳投影向量为')

disp(Best_a);

function [BESTX,BESTY,ALLX,ALL Y]=IGAUCP(K,N,Pm,LB,UB,D,Alpha)

%%遗传算法求解投影寻踪模型

% GreenSim团队——专业级算法设计&代写程序

% 欢迎访问GreenSim团队主页→https://www.360docs.net/doc/e24720816.html,/greensim

%% 输入参数列表

% K 迭代次数

% N 种群规模,要求是偶数

% Pm 变异概率

% LB 决策变量的下界,M×1的向量

% UB 决策变量的上界,M×1的向量

% D 原始样本数据,n×p的矩阵

% Alpha 窗口半径系数,典型取值0.1

%% 输出参数列表

% BESTX K×1细胞结构,每一个元素是M×1向量,记录每一代的最优个体

% BESTY K×1矩阵,记录每一代的最优个体的评价函数值

% ALLX K×1细胞结构,每一个元素是M×N矩阵,记录全部个体

% ALL Y K×N矩阵,记录全部个体的评价函数值

%% 第一步:

M=length(LB);%决策变量的个数

%种群初始化,每一列是一个样本

farm=zeros(M,N);

for i=1:M

x=unifrnd(LB(i),UB(i),1,N);

farm(i,:)=x;

end

%输出变量初始化

ALLX=cell(K,1);%细胞结构,每一个元素是M×N矩阵,记录每一代的个体

ALL Y=zeros(K,N);%K×N矩阵,记录每一代评价函数值

BESTX=cell(K,1);%细胞结构,每一个元素是M×1向量,记录每一代的最优个体

BESTY=zeros(K,1);%K×1矩阵,记录每一代的最优个体的评价函数值k=1;%迭代计数器初始化

%% 第二步:迭代过程

while k<=K

%% 以下是交叉过程

newfarm=zeros(M,2*N);

Ser=randperm(N);%两两随机配对的配对表

A=farm(:,Ser(1));

B=farm(:,Ser(2));

P0=unidrnd(M-1);

a=[A(1:P0,:);B((P0+1):end,:)];%产生子代a

b=[B(1:P0,:);A((P0+1):end,:)];%产生子代b

newfarm(:,2*N-1)=a;%加入子代种群

newfarm(:,2*N)=b;

for i=1:(N-1)

A=farm(:,Ser(i));

B=farm(:,Ser(i+1));

P0=unidrnd(M-1);

a=[A(1:P0,:);B((P0+1):end,:)];

b=[B(1:P0,:);A((P0+1):end,:)];

newfarm(:,2*i-1)=a;

newfarm(:,2*i)=b;

end

FARM=[farm,newfarm];

%% 选择复制

SER=randperm(3*N);

FITNESS=zeros(1,3*N);

fitness=zeros(1,N);

for i=1:(3*N)

Beta=FARM(:,i);

FITNESS(i)=FIT(Beta,D,Alpha);

end

for i=1:N

f1=FITNESS(SER(3*i-2));

f2=FITNESS(SER(3*i-1));

f3=FITNESS(SER(3*i));

if f1<=f2&&f1<=f3

farm(:,i)=FARM(:,SER(3*i-2));

fitness(:,i)=FITNESS(:,SER(3*i-2));

elseif f2<=f1&&f2<=f3

farm(:,i)=FARM(:,SER(3*i-1));

fitness(:,i)=FITNESS(:,SER(3*i-1));

else

farm(:,i)=FARM(:,SER(3*i));

fitness(:,i)=FITNESS(:,SER(3*i));

end

end

%% 记录最佳个体和收敛曲线

X=farm;

Y=fitness;

ALLX{k}=X;

ALL Y(k,:)=Y;

minY=min(Y);

pos=find(Y==minY);

BESTX{k}=X(:,pos(1));

BESTY(k)=minY;

%% 变异

for i=1:N

if Pm>rand&&pos(1)~=i

AA=farm(:,i);

BB=GaussMutation(AA,LB,UB);

farm(:,i)=BB;

end

end

disp(k);

k=k+1;

end

源代码运行结果展示

(完整word版)基本粒子群算法的原理和matlab程序

基本粒子群算法的原理和matlab程序 作者——niewei120(nuaa) 一、粒子群算法的基本原理 粒子群优化算法源自对鸟群捕食行为的研究,最初由Kennedy和Eberhart提出,是一种通用的启发式搜索技术。一群鸟在区域中随机搜索食物,所有鸟知道自己当前位置离食物多远,那么搜索的最简单有效的策略就是搜寻目前离食物最近的鸟的周围区域。PSO 算法利用这种模型得到启示并应用于解决优化问题。PSO 算法中,每个优化问题的解都是粒子在搜索 空间中的位置,所有的粒子都有一个被优化的目标函数所决定的适应值,粒子还有一个速度值决定它们飞翔的方向和距离,然后粒子群就追随当前的最优粒子在解空间中搜索。 PSO 算法首先在给定的解空间中随机初始化粒子群,待优化问题的变量数决定了解空间的维数。每个粒子有了初始位置与初始速度。然后通过迭代寻优。在每一次迭代中,每个粒子通过跟踪两个“极值”来更新自己在解空间中的空间位置与飞翔速度。第一个极值就是单个粒子本身在迭代过程中找到的最优解粒子,这个粒子叫做个体极值。另一个极值是种群所有粒子在迭代过程中所找到的最优解粒子,这个粒子是全局极值。上述的方法叫全局粒子群算法。如果不用种群所有粒子而只用其中一部分作为该粒子的邻居粒子,那么在所有邻居粒子中的极值就是局部极值,该方法称为局部PSO 算法。 速度、位置的更新方程表示为: 每个粒子自身搜索到的历史最优值p i ,p i=(p i1,p i2,....,p iQ),i=1,2,3,....,n。所有粒子搜索到的最优值p g,p g=(p g1,p g2,....,p gQ),注意这里的p g只有一个。 是保持原来速度的系数,所以叫做惯性权重。 是粒子跟踪自己历史最优值的权重系数,它表示粒子自身的认识,所以叫“认知”。通常设置为2。 是粒子跟踪群体最优值的权重系数,它表示粒子对整个群体知识的认识,所以叫做“社会知识”,经常叫做“社会”。通常设置为2。 是[0,1]区间内均匀分布的随机数。 是对位置更新的时候,在速度前面加的一个系数,这个系数我们叫做约束因子。通常设 置为1 。

投影寻踪技术的理论及应用研究进展

第24卷第1期2009年2月柳 州 师 专 学 报Journal of Liuzhou Teachers College Vol 124No 11 Feb 12009  [收稿日期]2008-11-10  [基金项目]广西青年科学基金(0832092)  [作者简介]吴春梅(1970— ),女,讲师,研究方向:计算机应用和神经网络应用;罗芳琼(1971—),女(壮族),广西忻城人,讲师。投影寻踪技术的理论及应用研究进展 吴春梅,罗芳琼 (柳州师范高等专科学校数学与计算机科学系,广西柳州 545004) 摘 要:投影寻踪技术是国际统计界于70年代中期发展起来的、用来处理和分析高维观测数据,尤其是非正态、非线性高维数据的一种新兴统计方法。它利用计算机直接对高维数据进行投影降维分析,进行数据客观投影诊断,自动找出能反映高维空间规律的数据结构,达到研究分析高维数据的目的。本文对30多年来投影寻踪技术在应用领域方面的文献进行收集整理,探讨投影寻踪技术在相关领域的应用和发展状况,为从事投影寻踪研究或应用的专业人员获取和利用相关信息提供线索和参考。 关键词:投影寻踪;岭函数;回归分析 中图分类号: TP30116 文献标识码: A 文章编号: 1003-7020(2009)01-0120-06 0 前言 近三十多年来,随着计算技术的发展和计算机的普及,国际统计界发展了一类处理和分析高维数据的新兴统计方法———投影寻踪(Projection Pursuit ,简称 PP )法,它是采用“审视数据→模拟→预测”探索性数 据分析(Exploratory Data Analysis ,简称EDA )的新途径[1],适宜于非线性、非正态分布数据的处理,并能避免“维数祸根”,因为投影寻踪技术不需要人为地把高维数据整理成知识、构造成数据库进行训练后再推理,而是直接利用计算机对高维数据进行投影降维分析,进行数据客观投影诊断,自动找出能反映高维空间规律的数据结构,它具有稳健性、抗干扰性和准确度高等优点,因此在许多领域获得成功应用[2-3] 。 1 投影寻踪技术的产生背景与实现方 法 111 投影寻踪技术的产生背景 随着科学技术的发展,高维数据的统计分析越来越普遍,也愈来愈重要。多元分析方法是解决这类问题的有力工具。但传统的多元分析方法是建立在总体服从某种分布比如正态分布这个假定基础之上的,采用所谓的“对数据结构或分布特征作某种假定———按照一定准则寻找最优模拟———对建立的模型进行证实”,也就是“假定—模拟—检验”这样一种证实性 数据分析法(C onfirmatory Data Analysis ,简称CDA )。但实际问题中有许多数据并不满足正态分布,需要用稳健的或非参数的方法去解决。不过,当数据维数很高时,这些方法都将面临一些困难:(1)随着维数增加,计算量迅速增大;(2)对于高维数据,即使样本量很大,仍会存在高维空间中分布稀疏的“维数祸根”,非参数法也很难使用;(3)低维稳健性好的统计方法用到高维时稳健性变差。因此,当数据的结构或特征与假定不相符时,模型的拟合和预报的精度均差,尤其对高维非正态、非线性数据分析,传统的CDA 方法很难收到好的效果。其原因是它过于形式化、数学化,受束缚大,难以适应千变万化的客观世界,无法真正找到数据的内在规律,远不能满足高维非正态数据分析的需要。为了克服上述困难,需要对客观数据不作假定或只作极少假定,而采用“直接审视数据———通过计算机模拟数据结构———检验”这样一种探索性数据分析方法。而PP 就是实现这种新思维的一条行之有效的途径。 PP 最早由Kruskal 在70年代初提出并进行试 验。他把高维数据投影到低维空间,发现数据的聚类结构和解决化石分类问题[4-5] 。随后Friedman 和 Tukey 提出了一种把整体上的散布程度和局部凝聚 程度结合起来的新指标进行聚类分析,正式提出了 PP 概念[6]。1981年,Friedman 等人相继提出了PP 回归,PP 分类和PP 密度估计[7],Donoh 则提出了用 21

粒子群优化算法介绍及matlab程序

粒子群优化算法(1)—粒子群优化算法简介 PSO算法就是模拟一群鸟寻找食物的过程,每个鸟就是PSO中的粒子,也就是我们需要求解问题的可能解,这些鸟在寻找食物的过程中,不停改变自己在空中飞行的位置与速度。大家也可以观察一下,鸟群在寻找食物的过程中,开始鸟群比较分散,逐渐这些鸟就会聚成一群,这个群忽高忽低、忽左忽右,直到最后找到食物。这个过程我们转化为一个数学问题。寻找函数y=1-cos(3*x)*exp(-x)的在[0,4]最大值。该函数的图形如下: 当x=0.9350-0.9450,达到最大值y=1.3706。为了得到该函数的最大值,我们在[0, 4]之间随机的洒一些点,为了演示,我们放置两个点,并且计算这两个点的函数值,同时给这两个点设置在[0, 4]之间的一个速度。下面这些点就会按照一定的公式更改自己的位置,到达新位置后,再计算这两个点的值,然后再按照一定的公式更新自己的位置。直到最后在y=1.3706这个点停止自己的更新。这个过程与粒子群算法作为对照如下: 这两个点就是粒子群算法中的粒子。 该函数的最大值就是鸟群中的食物。 计算两个点函数值就是粒子群算法中的适应值,计算用的函数就是粒子群算法中的适应度函数。 更新自己位置的公式就是粒子群算法中的位置速度更新公式。 下面演示一下这个算法运行一次的大概过程: 第一次初始化 第一次更新位置

第二次更新位置 第21次更新 最后的结果(30次迭代) 最后所有的点都集中在最大值的地方。

粒子群优化算法(2)—标准粒子群优化算法 在上一节的叙述中,唯一没有给大家介绍的就是函数的这些随机的点(粒子)是如何运动的,只是说按照一定的公式更新。这个公式就是粒子群算法中的位置速度更新公式。下面就介绍这个公式是什么。在上一节中我们求取函数y=1-cos(3*x)*exp(-x)的在[0, 4]最大值。并在[0,4]之间放置了两个随机的点,这些点的坐标假设为x1=1.5,x2=2.5;这里的点是一个标量,但是我们经常遇到的问题可能是更一般的情况—x 为一个矢量的情况,比如二维z=2*x1+3*x22的情况。这个时候我们的每个粒子均为二维,记粒子P1=(x11,x12),P2=(x21,x22),P3=(x31,x32),......Pn=(xn1,xn2)。这里n 为粒子群群体的规模,也就是这个群中粒子的个数,每个粒子的维数为2。更一般的是粒子的维数为q ,这样在这个种群中有n 个粒子,每个粒子为q 维。 由n 个粒子组成的群体对Q 维(就是每个粒子的维数)空间进行搜索。每个粒子表示为:x i =(x i1,x i2,x i3,...,x iQ ),每个粒子对应的速度可以表示为v i =(v i1,v i2,v i3,....,v iQ ),每个粒子在搜索时要考虑两个因素: 1. 自己搜索到的历史最优值 p i ,p i =(p i1,p i2,....,p iQ ),i=1,2,3,....,n ; 2. 全部粒子搜索到的最优值p g ,p g =(p g1,p g2,....,p gQ ),注意这里的p g 只有一个。 下面给出粒子群算法的位置速度更新公式: 112()()()()k k k k i i i i v v c rand pbest x c rand gbest x ω+=+??-+??-, 11k k k i i i x x av ++=+. 这里有几个重要的参数需要大家记忆,因为在以后的讲解中将会经常用到,它们是: ω是保持原来速度的系数,所以叫做惯性权重。1c 是粒子跟踪自己历史最优值的权重系数,它表示粒子自身的认识,所以叫“认知”。通常设置为2。2c 是粒子跟踪群体最优值的权重系数,它表示粒子对整个群体知识的认识,所以叫做“社会知识”,经常叫做“社会”。通常设置为2。()rand 是[0,1]区间内均匀分布的随机数。a 是对位置更新的时候,在速度前面加的一个系数,这个系数我们叫做约束因子。通常设置为1。这样一个标准的粒子群算法就介绍结束了。下图是对整个基本的粒子群的过程给一个简单的图形表示。 判断终止条件可是设置适应值到达一定的数值或者循环一定的次数。 注意:这里的粒子是同时跟踪自己的历史最优值与全局(群体)最优值来改变自己的位置预速度的,所以又叫做全局版本的标准粒子群优化算法。

投影寻踪模型

投影寻踪方法及应用 内容摘要:本文从投影寻踪的研究背景出发,给出了投影寻踪的定义和投影指标,在此基础上得出了投影寻踪聚类模型,随后简单介绍了遗传算法。最后结合上市公司的股价进行实证分析,并给出结论和建议。 关键词:投影寻踪投影寻踪聚类模型遗传算法 一、简介 (一)产生背景 随着科技的发展,高维数据的统计分析越来越普遍,也越来越重要。多元分析方法是解决高维数据这类问题的有力工具。但传统的多元分析方法是建立在总体服从正态分布这个假定基础之上的。不过实际问题中有许多数据不满足正态假定,需要用稳健的或非参数的方法来解决。但是,当数据的维数很高时,即使用后两种方法也面临以下困难:第一个困难是随着维数增加,计算量迅速增大。第二个困难是对于高维数据,即使样本量很大,仍会存在高维空间中分布稀疏的“维数祸根”。对于核估计,近邻估计之类的非参数法很难使用。第三个困难是对低维稳健性好的统计方法,用到高维时则稳健性变差。 另一方面,传统的数据分析方法的一个共同点是采用“对数据结构或分布特征作某种假定——按照一定准则寻找最优模拟——对建立的模型进行证实”这样一条证实性数据分析思维方法〔简称CDA法)。这种方法的一个弱点是当数据的结构或特征与假定不相符时,模型的拟合和预报的精度均差,尤其对高维非正态、非线性数据分析,很难收到好的效果。其原因是证实性数据分析思维方法过于形式化、数学化,受束缚大。它难以适应千变万化的客观世界,无法真正找到数据的内在规律,远不能满足高维非正态数据分析的需要。针对上述困难,近20年来,国际统计界提出采用“直接从审视数据出发—通过计算机分析模拟数据—设计软件程序检验”这样一条探索性数据分析新方法,而PP就是实现这种新思维的一种行之有效的方法。 (二)发展简史 PP最早由Kruskal于70年初建议和试验。他把高维数据投影到低维空间,通过数值计算得到最优投影,发现数据的聚类结构和解决化石分类问题。1974年Frledman和Tukey加以改正,提出了一种把整体上的散布程度和局部凝聚程度结合起来的新指标进行聚类分析,正式提出了PP概念,并于1976年编制了计算机图像系统PRIM——9。1979年后,Friedman 等人相继提出了PP回归、PP分类和PP密度估计。在这以后Huber等人积极探索了PP的理论。1981年Donoho提出了用Shannan嫡作投影指标比wiggins用标准化峰度更好的方法,接着他又利用PP的基本思想给出了多元位置和散布的一类仿射同变估计。Diaeonis、Friedman和Jones等还讨论了与PP有关的其他理论问题。上述工作和结果在1985年Huber 的综述论文中作了概括和总结。

粒子群算法基本原理

4.1粒子群算法基本原理 粒子群优化算法[45]最原始的工作可以追溯到1987年Reynolds 对鸟群社会系统Boids (Reynolds 对其仿真鸟群系统的命名)的仿真研究 。通常,群体的行为可以由几条简单的规则进行建模,虽然每个个体具有简单的行为规则,但是却群体的行为却是非常的复杂,所以他们在鸟类仿真中,即Boids 系统中采取了下面的三条简单的规则: (1)飞离最近的个体(鸟),避免与其发生碰撞冲突; (2)尽量使自己与周围的鸟保持速度一致; (3)尽量试图向自己认为的群体中心靠近。 虽然只有三条规则,但Boids 系统已经表现出非常逼真的群体聚集行为。但Reynolds 仅仅实现了该仿真,并无实用价值。 1995年Kennedy [46-48]和Eberhart 在Reynolds 等人的研究基础上创造性地提出了粒子群优化算法,应用于连续空间的优化计算中 。Kennedy 和Eberhart 在boids 中加入了一个特定点,定义为食物,每只鸟根据周围鸟的觅食行为来搜寻食物。Kennedy 和Eberhart 的初衷是希望模拟研究鸟群觅食行为,但试验结果却显示这个仿真模型蕴含着很强的优化能力,尤其是在多维空间中的寻优。最初仿真的时候,每只鸟在计算机屏幕上显示为一个点,而“点”在数学领域具有多种意义,于是作者用“粒子(particle )”来称呼每个个体,这样就产生了基本的粒子群优化算法[49]。 假设在一个D 维搜索空间中,有m 个粒子组成一粒子群,其中第i 个粒子的空间位置为123(,,,...,)1,2,...,i i i i iD X x x x x i m ==,它是优化问题的一个潜在解,将它带入优化目标函数可以计算出其相应的适应值,根据适应值可衡量i x 的优劣;第i 个粒子所经历的最好位置称为其个体历史最好位置,记为123(,,,...,)1,2,...,i i i i iD P p p p p i m ==,相应的适应值为个体最好适应值 Fi ;同时,每个粒子还具有各自的飞行速度123(,,,...,)1,2,...,i i i i iD V v v v v i m ==。所有粒子经历过的位置中的最好位置称为全局历史最好位置,记为

粒子群算法简介和使用

粒子群算法 题目:求∑==10 12)(i i x x f 的最小值 1粒子群简介 粒子群优化算法PSO 也是起源对简单社会系统的模拟。最初设想是模拟鸟群觅食的过程。粒子群优化算法是由Kennedy 和Eberhart 通过对鸟群、鱼群和人类社会某些行为的观察研究,于1995年提出的一种新颖的进化算法。 PSO 算法属于进化算法的一种,和遗传算法相似,它也是从随机解出发,通过迭代寻找最优解,它也是通过适应度来评价解的品质,但它比遗传算法规则更为简单,它没有遗传算法的“交叉”和“变异” 操作,它通过追随当前搜索到的最优值来寻找全局最优。这种算法以其实现容易、精度高、收敛快等优点引起了学术界的重视,并且在解决实际问题中展示了其优越性。 2算法的原理 PSO 从这种模型中得到启示并用于解决优化问题。PSO 中,每个优化问题的潜在解都是搜索空间中的一只鸟,称之为粒子。所有的粒子都有一个由被优化的函数决定的适值( fitness value) ,每个粒子还有一个速度决定它们飞翔的方向和距离。然后粒子们就追随当前的最优粒子在解空间中搜索。 PSO 初始化为一群随机粒子(随机解),然后通过迭代找到最优解。在每一次迭代中,粒子通过跟踪两个极值来更新自己;第一个就是粒子本身所找到的最优解,这个解称为个体极值;另一个极值是整个种群目前找到的最优解,这个极值是全局极值。另外也可以不用整个种群而只是用其中一部分作为粒子的邻居,那么在所有邻居中的极值就是局部极值。 假设在一个D 维的目标搜索空间中,有N 个粒子组成一个群落,其中第i 个

粒子表示为一个D 维的向量 ),,,(21iD i i i x x x X =,N i ,,2,1 = 第i 个粒子的“飞行 ”速度也是一个D 维的向量,记为 ),,21i iD i i v v v V ,(= ,3,2,1 =i 第i 个粒子迄今为止搜索到的最优位置称为个体极值,记为 ),,,(21iD i i best p p p p =,N i ,,2,1 = 整个粒子群迄今为止搜索到的最优位置为全局极值,记为 ),,,(21gD g g best p p p g = 在找到这两个最优值时,粒子根据如下的公式(2.1)和( 2.2)来更新自己的速度和位置: ())(2211id gd id id id id x p r c x p r c v w v -+-+*= (2.1) id id id v x x += (2. 2) 其中:1c 和2c 为学习因子,也称加速常数,1r 和2r 为[0,1]范围内的均匀随机数。式(2.1)右边由三部分组成,第一部分为“惯性”或“动量”部分,反映了粒子的运动“习惯”,代表粒子有维持自己先前速度的趋势;第二部分为“认知”部分,反映了粒子对自身历史经验的记忆或回忆,代表粒子有向自身历史最佳位置逼近的趋势;第三部分为“社会”部分,反映了粒子间协同合作与知识共享的群体历史经验,代表粒子有向群体或邻域历史最佳位置逼近的趋势,根据经验,通常221==c c 。D i ,,2,1 =。id v 是粒子的速度,],[max max v v v id -∈,max v 是常数,由用户设定用来限制粒子的速度。1r 和2r 是介于[0,1]之间的随机数。 探索是偏离原来的寻优轨迹去寻找一个更好的解,探索能力是一个算法的全

基于遗传算法的库位优化问题

Logistics Sci-Tech 2010.5 收稿日期:2010-02-07 作者简介:周兴建(1979-),男,湖北黄冈人,武汉科技学院经济管理学院,讲师,武汉理工大学交通学院博士研究生,研究方向:物流价值链、物流系统规划;刘元奇(1988-),男,甘肃天水人,武汉科技学院经济管理学院;李泉(1989-),男,湖北 武汉人,武汉科技学院经济管理学院。 文章编号:1002-3100(2010)05-0038-03 物流科技2010年第5期Logistics Sci-Tech No.5,2010 摘 要:应用遗传算法对邯运集团仓库库位进行优化。在充分考虑邯运集团仓库所存放的货物种类、货物数量、出入库频 率等因素的基础上进行库位预分区规划,建立了二次指派问题的数学模型。利用遗传算法对其求解,结合MATLAB 进行编程计算并得出最优划分方案。 关键词:遗传算法;预分区规划;库位优化中图分类号:F253.4 文献标识码:A Abstract:The paper optimize the storage position in warehouse of Hanyun Group based on genetic algorithm.With thinking of the factors such as goods categories,quantities and frequencies of I/O,etc,firstly,the storage district is planned.Then the model of quadratic assignment problems is build,and genetic algorithm is utilized to resolve the problem.The software MATLAB is used to program and figure out the best alternatives. Key words:genetic algorithm;district planning;storage position optimization 1 库位优化的提出 邯郸交通运输集团有限公司(简称“邯运集团”)是一家集多种业务为一体的大型综合性物流企业。邯运集团的主要业务板块有原料采购(天信运业及天昊、天诚、天恒等)、快递服务(飞马快运)、汽贸业务(天诚汽贸)及仓储配送(河北快运)等。其中,邯运集团的仓储配送业务由河北快运经营,现有仓库面积总共40000㎡,主要的业务范围为医药、日用百货、卷烟、陶瓷、化工产品的配送,其中以医药为主。邯运集团库存货物主要涉及两个方面:一个是大宗的供应商货物,如医药,化工产品等;另一方面主要是大规模的小件快递货物,如日用百货等[1]。经分析,邯运集团在仓储运作方面存在如下问题: (1)存储货物繁多而分拣速度低下。仓库每天到货近400箱,有近200多种规格,缺乏一套行之有效的仓储管理系统。(2)货架高度不当而货位分配混乱。现在采用的货架高度在2米以上,而且将整箱货物直接码垛在货架上,不严格按货位摆放。当需要往货架最上层码放货物需要借助梯子,增加操作难度且操作效率较低。货物在拣货区货架摆放是以件为单位的,分拣和搬运速度较慢。 (3)拣货货架设计不当而仓储效率低下。发货前装箱工作主要由人工协同完成,出库效率低,出错率难以控制。 (4)存储能力和分拣能力不能满足需求。根据邯运集团的业务发展现状及趋势,现有的仓库储存和分拣能力远远达不到集团公司对配送业务量的需求。 当前邯运集团的货位分配主要采用物理地址编码的方式,很少考虑货位分配对仓储管理员工作效率的影响。对其进行库位优化设计不仅直接影响到其库存量的大小、出入库的效率,还间接影响到邯运集团的整体经营效益。本文对邯运集团的仓库货位进行优化时,结合考虑仓库所存放的货物种类、货物数量、出入库频率等因素,对仓库货位进行规划,以提高仓储效率。 2库位预分区规划 在进行仓库货位规划时,作如下假设: (1)货物的存放种类已知; (2)货物每种类的单位时间内存放的数量己知; (3) 每一种货物的存取频率已知。 在仓库货位优化中一个重要的环节即预分区。所谓预分区,是指没有存放货物时的分区,分区时只考虑仓储作业人员的速基于遗传算法的库位优化问题 Optimization of Storage Position in Warehouse Based on Genetic Algorithm 周兴建1,2,刘元奇1,李泉1 ZHOU Xing-jian 1,2,LIU Yuan-qi 1,LI Quan 1 (1.武汉科技学院经济管理学院,湖北武汉430073;2.武汉理工大学交通学院,湖北武汉430063) (1.College of Economics &Management,Wuhan University of Science &Engineering,Wuhan 430073,China; 2.School of Transportation,Wuhan University of Technology,Wuhan 430063,China) !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! 38

粒子群算法(1)----粒子群算法简介

粒子群算法(1)----粒子群算法简介 二、粒子群算法的具体表述 上面罗嗦了半天,那些都是科研工作者写论文的语气,不过,PSO的历史就像上面说的那样。下面通俗的解释PSO算法。 PSO算法就是模拟一群鸟寻找食物的过程,每个鸟就是PSO.中的粒子,也就是我们需要求解问题的可能解,这些鸟在寻找食物的过程中,不停改变自己在空中飞行的位置与速度。大家也可以观察一下,鸟群在寻找食物的过程中,开始鸟群比较分散,逐渐这些鸟就会聚成一群,这个群忽高忽低、忽左忽右,直到最后找到食物。这个过程我们转化为一个数学问题。寻找函数y=1-cos(3*x)*exp(-x)的在[0,4]最大值。该函数的图形如下: 当x=0.9350-0.9450,达到最大值y=1.3706。为了得到该函数的最大值,我们在[0,4]之间随机的洒一些点,为了演示,我们放置两个点,并且计算这两个点的函数值,同时给这两个点设置在[0,4]之间的一个速度。下面这些点就会按照一定的公式更改自己的位置,到达新位置后,再计算这两个点的值,然后再按照一定的公式更新自己的位置。直到最后在y=1.3706这个点停止自己的更新。这个过程与粒子群算法作为对照如下: 这两个点就是粒子群算法中的粒子。 该函数的最大值就是鸟群中的食物 计算两个点函数值就是粒子群算法中的适应值,计算用的函数就是粒子群算法中的适应度函数。 更新自己位置的一定公式就是粒子群算法中的位置速度更新公式。 下面演示一下这个算法运行一次的大概过程: 第一次初始化

第一次更新位置 第二次更新位置

第21次更新 最后的结果(30次迭代) 最后所有的点都集中在最大值的地方。

粒子群算法详解-附matlab代码说明

粒子群算法(1)----粒子群算法简介 一、粒子群算法的历史 粒子群算法源于复杂适应系统(Complex Adaptive System,CAS)。CAS理论于1994年正式提出,CAS中的成员称为主体。比如研究鸟群系统,每个鸟在这个系统中就称为主体。主体有适应性,它能够与环境及其他的主体进行交流,并且根据交流的过程“学习”或“积累经验”改变自身结构与行为。整个系统的演变或进化包括:新层次的产生(小鸟的出生);分化和多样性的出现(鸟群中的鸟分成许多小的群);新的主题的出现(鸟寻找食物过程中,不断发现新的食物)。 所以CAS系统中的主体具有4个基本特点(这些特点是粒子群算法发展变化的依据): 首先,主体是主动的、活动的。 主体与环境及其他主体是相互影响、相互作用的,这种影响是系统发展变化的主要动力。 环境的影响是宏观的,主体之间的影响是微观的,宏观与微观要有机结合。 最后,整个系统可能还要受一些随机因素的影响。 粒子群算法就是对一个CAS系统---鸟群社会系统的研究得出的。 粒子群算法(Particle Swarm Optimization, PSO)最早是由Eberhart和Kennedy于1995年提出,它的基本概念源于对鸟群觅食行为的研究。设想这样一个场景:一群鸟在随机搜寻食物,在这个区域里只有一块食物,所有的鸟都不知道食物在哪里,但是它们知道当前的位置离食物还有多远。那么找到食物的最优策略是什么呢?最简单有效的就是搜寻目前离食物最近的鸟的周围区域。 PSO算法就从这种生物种群行为特性中得到启发并用于求解优化问题。在PSO中,每个优化问题的潜在解都可以想象成d维搜索空间上的一个点,我们称之为“粒子”(Particle),所有的粒子都有一个被目标函数决定的适应值(Fitness Value ),每个粒子还有一个速度决定他们飞翔的方向和距离,然后粒子们就追随当前的最优粒子在解空间中搜索。Reynolds对鸟群飞行的研究发现。鸟仅仅是追踪它有限数量的邻居但最终的整体结果是整个鸟群好像在一个中心的控制之下.即复杂的全局行为是由简单规则的相互作用引起的。 二、粒子群算法的具体表述 上面罗嗦了半天,那些都是科研工作者写论文的语气,不过,PSO的历史就像上面说的那样。下面通俗的解释PSO算法。 PSO算法就是模拟一群鸟寻找食物的过程,每个鸟就是PSO中的粒子,也就是我们需要求解问题的可能解,这些鸟在寻找食物的过程中,不停改变自己在空中飞行的位置与速度。大家也可以观察一下,鸟群在寻找食物的过程中,开始鸟群比较分散,逐渐这些鸟就会聚成一群,这个群忽高忽低、忽左忽右,直到最后找到食物。这个过程我们转化为一个数学问题。寻找函数y=1-cos(3*x)*exp(-x)的在[0,4]最大值。该函数的图形如下:

粒子群算法论文

粒子群算法论文 SANY标准化小组 #QS8QHH-HHGX8Q8-GNHHJ8-HHMHGN#

粒子群算法的寻优算法 摘要:粒子群算法是在仿真生物群体社会活动的基础上,通过模拟群体生物相互协同寻优能力,从而构造出一种新的智能优化算法。这篇文章简要回顾了粒子群算法的发展历史;引入了一个粒子群算法的实例,对其用MATLAB进行编程求解,得出结论。之后还对其中的惯性权重进行了延伸研究,对惯性权重的选择和变化的算法性能进行分析。 关键词:粒子群、寻优、MATLAB、惯性权重 目录:

1.粒子群算法的简介 粒子群算法(Particle Swarm Optimization)是一种新的智能优化算法。谈到它的发展历史,就不得不先介绍下传统的优化算法,正因为传统优化算法自身的一些不足,才有新智能优化算法的兴起,而粒子群算法(PSO)就是在这种情况下发展起来的。 粒子群算法的研究背景 最优化是人们在科学研究、工程技术和经济管理等领域中经常遇到的问题。优化问题研究的主要内容是在解决某个问题时,如何从众多的解决方案中选出最优方案。它可以定义为:在一定的约束条件下,求得一组参数值,使得系统的某项性能指标达到最优(最大或最小)。传统的优化方法是借助于优化问题的不同性质,通常将问题分为线性规划问题、非线性规划问题、整数规划问题和多目标规划问题等。相应的有一些成熟的常规算法,如应用于线性规划问题的单纯形法,应用于非线性规划的牛顿法、共扼梯度法,应用于整数规则的分枝界定法、动态规划等。列举的这些传统的优化算法能够解决现实生活和工程上的很多问题,但工业和科学领域大量实际问题的困难程度正在日益增长,它们大多是根本无法在可接受的时间内找到解的问题。这类优化问题的困难性不仅体现在具有极大的规模,更为重要的是,它们多数是非线性的、动态的、多峰的、具有欺骗性的或者不具有任何导数信息。因此,发展通用性更强、效率更高的优化算法总是需要的。 起源 在自然界中,鸟群运动的主体是离散的,其排列看起来是随机的,但在整体的运动中它们却保持着惊人的同步性,其整体运动形态非常流畅且极富美感。这些呈分布状态的群体所表现出的似乎是有意识的集中控制,一直是许多研究者感兴趣的问题。有研究者对鸟群的运动进行了计算机仿真,他们通过对个体设定简单的运动规则,来模拟鸟群整体的复杂行为。 1986 年 Craig ReynolS 提出了 Boid 模型,用以模拟鸟类聚集飞行的行为,通过对现实世界中这些群体运动的观察,在计算机中复制和重建这些运动轨迹,并对这些运动进行抽象建模,以发现新的运动模式。之后,生物学家Frank Heppner 在此基础上增加了栖息地对鸟吸引的仿真条件,提出了新的鸟群模型。这个新的鸟群模型的关键在于以个体之间的运算操作为基础,这个操作也就是群体行为的同步必须在于个体努力维持自身与邻居之间的距离为最优,为此每个个体必须知道自身位置和邻居的位置信息。这些都表明群体中个体之间信息的社会共享有助于群体的进化。

投影寻踪 遗传算法MATLAB程序

clear close all Alpha=0.1; X=load('d:\data.txt'); for k=1:21 eval(sprintf('syms a%d',k)); end a=[a1,a2,a3,a4,a5,a6,a7,a8,a9,a10,a11,a12,a13,a14,a15,a16,a17,a18,a19,a 20,a21]; [n,p]=size(X); x=zeros(n,p); Xjmax=max(X); Xjmin=min(X); for i=1:n x(i,:)=(X(i,:)-Xjmin)./(Xjmax-Xjmin); end %构造投影指标 for i=1:n Z(i)=sum(a.*x(i,:)); end %计算投影指标函数 meanZ=mean(Z); Sa=0; for k=1:n sa=(Z(i)-meanZ).^2; Sa=Sa+sa; Sa=sqrt(Sa/n); end R=Alpha*Sa; Da=0; for k=1:n rik=abs(Z(i)-Z(k)); %if R>rik Da=Da+rik; %end end Qa=Sa*Da;

%选择操作 function ret =select(individuals,sizepop) individuals.fitness=1./(individuals.fitness); sumfitness=sum(individuals.fitness); sumf=individuals./fitness; index=[]; for i =1:sizepop pick=rand; while pick==0 pick=rand; end for j =1:sizepop pick =pick-sumf(j); if pick<0 index=[index j]; break; end end end indivlduals.chrom=indivuduals.chrom(index,:); individuals.fitness=individuals.fitness(index); ret=individuals; %交叉操作 function ret=Cross(pcross,lenchrom,chrom,sizepop,bound) for i=1:sizepop pick = rand(1,2); while prod(pick)==0 pick=rand(1,2); end index=ceil(pick.*sizepop); pick=rand; while pick==0 pick=rand; end if pick>pcross continue; end flag=0;

投影寻踪方法在边坡稳定性评价中的应用

投影寻踪方法在边坡稳定性评价中的应用Application of projection pu rsu it method to assessment of slope stability 汪明武,金菊良 (合肥工业大学土木建筑工程学院,安徽合肥230009) 摘要:探讨了基于实码加速遗传算法的边坡稳定性投影寻踪评价模型,并给出了相应算法和流程,实例表明应用投影寻踪方法来评价边坡稳定性是有效可行的,且取得了理想的结果。 关键词:投影寻踪;遗传算法;边坡稳定性;神经网络;综合评价 中图分类号:TU457文献标识码:A文章编号:1000-4548(2002)05-0619-03 作者简介:汪明武(1972-),男,安徽歙县人。2000年于南京大学获博士学位,副教授,现主要从事城市环境岩土工程、工程物探和计算机应用的教学和科研工作。 W ANG Ming-wu,JIN Ju-liang (School of Civil Engineeri ng,Hefei Univers ity of Technology,Hefei230009,China) Abstract:The model of assessment of slope s tability using projection pursuit(PP)method founded on real coding based accelerating genetic algo-rithm(RAGA)is investigated in this paper.The algorithm and the flowchart are also propo sed.T he practical example has s hown that the PP method is feasible and effective to assess the slope s tability. Key words:projection pursuit;genetic algorithm;slope stability;neu ral network;comprehensive evaluation 1引言X 人类活动对地质环境的影响,常诱发各种地质灾害,其中边坡失稳是最主要的一种灾害类型,边坡问题已成为全球性三大地质灾害源(边坡、地震和火山)之一。边坡失稳不仅产生重大经济损失,且多涉及生命财产,故边坡稳定性评价是边坡工程的重要核心内容之一,具有重要的社会和经济意义。 边坡是由漫长的地质作用造成的,地质环境的复杂性和影响边坡稳定性因素(如斜坡的外形、岩性、构造、水、地震和人为因素等)的不确定性,使边坡稳定性问题表现为多因素、多层次和多阶段的复杂动态非线性系统,故边坡稳定性评价是一项复杂的综合评价过程。人们尝试应用模糊综合评价、灰色聚类分析等数学方法进行综合评价,但是这些方法都忽略了评价指标的作用有些是相互依赖或相互关联的。用传统的统计学方法、力学计算法、可靠性分析方法等不能深刻揭示边坡灾害演化的非线性行为,因此传统力学计算方法难以精确解决问题。基于概率理论的可靠性分析方法的实质仍是用泰勒级数展开并忽略高阶项,以得到简单的解析关系[1~4]。基于人工神经网络的评价方法则受知识获取/瓶颈0问题限制,对于边坡工程这样复杂的巨系统,其知识获取将更是一件不容易的事,所以应用神经网络评价边坡稳定性有一定的适用范围和局限性[5,6]。传统的多元分析方法是建立在总体服从某种分布(如正态分布)假定基础上,是采用/假定)模拟)检验0的证实性数据分析法(confirmatory da ta analysis,简称CDA),但实际边坡问题中有许多数据并不满足正态分布,需要用稳健的或非参数的方法去解决。传统的CD A 方法对于高维非正态、非线性数据分析很难收到好的效果。20世纪70年代后期,国际统计界发展了一类处理和分析高维数据的新兴统计方法)))投影寻踪(projec-tion pursuit,简称PP)方法,它采用/审视数据)模拟)预测0探索性数据分析(exploratory data analysis,简称EDA)的新途径,适宜于非线性、非正态分布数据的处理,并能避免/维数祸根0,在许多领域获得了应用[7~12]。 影响与控制边坡稳定因素的数据大多具有高维和非线性特征,基于EDA的PP技术适宜分析和处理这类问题。本文将基于遗传算法的PP方法应用于边坡稳定性的评价预测,并将预测结果与神经网络方法预测结果相比较。 2投影寻踪基本原理 投影寻踪的基本思想是利用计算机技术,把高维数据通过某种组合,投影到低维(1~3维)子空间上,并通过极小化某个投影指标,寻找出能反映原高维数据结构或特征的投影,在低维空间上对数据结构进行分析,以达到研究和分析高维数据的目的[7~12]。 X基金项目:安徽省自然科学基金资助项目(01045409;01045102); 安徽省优秀青年科技基金资助项目;合肥工业大学博士专项基 金资助项目 收稿日期:2002-01-07 第24卷第5期岩土工程学报Vol.24No.5 2002年9月Chinese Journal of Geotechnical Engineering Sept.,2002

粒子群算法优化模糊pid知识讲解

本文选取常见的二阶惯性加纯滞后环节,传递函数为: s e G s (T i S 1)(T2S 1) 在这里,T i 1,,T2 2, 0.3 PID参数取为K p 2,心1,Q 2 本设计中的模糊控制器采用两输入(e, ec),三输出(P,I,D)的形式来调整 PID参数。e的论域为[-3,3],ec的论域为[-3,3]。推理机使用 {NB,NM,NS,O,PS, PM,PB},表示{负大,负中,负小,零,正小,正中,正大}为了可以调节尽可能多的系统,此控制器选定在负边界处和正边界处分别选用平滑连续的Z 型隶属度函数和S型隶属度函数,在中间部分采用灵敏度较强的三角形隶属度函数。规 则表如下图所示: ( clear clc %%参数设置 w = 0.6; %惯性因子 c1 = 1.414; %加速常数 c2 = 1.623; % 加速常数 Dim = 5; % 维数 SwarmSize = 100; %粒子群规模 ObjFun = @PSO_PID; % 待优化函数句柄 精品文档

MaxIter = 100; % 最大迭代次数 MinFit = 0.01; % 最小适应值 Vmax = 2; Vmin = -2; Ub = [20 50 1 1 1]; Lb = [0 0 0 0 0]; %% 粒子群初始化 VStep = rand(SwarmSize,Dim)*(Vmax -Vmin) + Vmin; fSwarm = zeros(SwarmSize,1); for i=1:SwarmSize fSwarm(i,:) = feval(ObjFun,Swarm(i,:)); end %% 个体极值和群体极值 [bestf,bestindex]=min(fSwarm); K_i = zeros(1,MaxIter); 精品文档 K_d = zeros(1,MaxIter); Range = ones(SwarmSize,1)*(Ub -Lb); Swarm = rand(SwarmSize,Dim).*Range + ones(SwarmSize,1)*Lb; % 初始化粒子群 % 初始化速度 zbest=Swarm(bestindex,:); gbest=Swarm; fgbest=fSwarm; fzbest=bestf; %% 迭代寻优 iter = 0; y_fitness = zeros(1,MaxIter); K_p = zeros(1,MaxIter); % 全局最佳 % 个体最佳 % 个体最佳适应值 % 全局最佳适应值 % 预先产生 4 个空矩阵

粒子群算法介绍

1.介绍: 粒子群算法(Particle Swarm Optimization, PSO)最早是由Eberhart 和Kennedy于1995年提出,它的基本概念源于对鸟群觅食行为的研究。设想这样一个场景:一群鸟在随机搜寻食物,在这个区域里只有一块食物,所有的鸟都不知道食物在哪里,但是它们知道当前的位置离食物还有多远。那么找到食物的最优策略是什么呢?最简单有效的就是搜寻目前离食物最近的鸟的周围区域。 经过实践证明:全局版本的粒子群算法收敛速度快,但是容易陷入局部最优。局部版本的粒子群算法收敛速度慢,但是很难陷入局部最优。现在的粒子群算法大都在收敛速度与摆脱局部最优这两个方面下功夫。其实这两个方面是矛盾的。看如何更好的折中了。 粒子群算法主要分为4个大的分支: (1)标准粒子群算法的变形 在这个分支中,主要是对标准粒子群算法的惯性因子、收敛因子(约束因子)、“认知”部分的c1,“社会”部分的c2进行变化与调节,希望获得好的效果。 惯性因子的原始版本是保持不变的,后来有人提出随着算法迭代的进行,惯性因子需要逐渐减小的思想。算法开始阶段,大的惯性因子可以是算法不容易陷入局部最优,到算法的后期,小的惯性因子可以使收敛速度加快,使收敛更加平稳,不至于出现振荡现象。经过本人测试,动态的减小惯性因子w,的确可以使算法更加稳定,效果比较好。但是递减惯性因子采用什么样的方法呢?人们首先想到的是线型递减,这种策略的确很好,但是是不是最优的呢?于是有人对递减的策略作了研究,研究结果指出:线型函数的递减优于凸函数的递减策略,但是凹函数的递减策略又优于线型的递减,经过本人测试,实验结果基本符合这个结论,但是效果不是很明显。 对于收敛因子,经过证明如果收敛因子取0.729,可以确保算法的收敛,但是不能保证算法收敛到全局最优,经过本人测试,取收敛因子为0.729效果较好。对于社会与认知的系数c2,c1也有人提出:c1先大后小,而c2先小后大的思想,因为在算法运行初期,每个鸟要有大的自己的认知部分而又比较小的社会部分,这个与我们自己一群人找东西的情形比较接近,因为在我们找东西的初期,我们基本依靠自己的知识取寻

相关文档
最新文档