数模基于粒子群算法的水库群联合优化调度问题_数学建模竞赛论文(编辑修改稿)内容摘要:

nx=nn(1)。 for i=1:nx N1=***min(*4,y1(i))*(x1(i)x3(i))。 N2=***min(200*2,y2(i))*(x2(i)x3(i))。 N3=***min(698*4,y3(i))*(x3(i)x4(i))。 N4=*min(*10^5,**min(500*6,y4(i))*)。 if(N1= amp。 amp。 N1=109) N1=inf。 endif(N2= amp。 amp。 N2=) N2=inf。 endif(N3=124 amp。 amp。 N3=500) N3=inf。 endif(N4= amp。 amp。 N4=125) N4=inf。 endend temp=N1+N2+N3+N4。 z(i,:)=temp。 N1,N2,N3,N4 附件(2):主程序clearclcformat long。 x1_range=[,]。 x2_range=[205,206]。 x3_range=[202,203]。 x4_range=[,]。 y1_range=[0,7000]。 y2_range=[0,2000]。 y3_range=[0,15000]。 y4_range=[0,15000]。 y1_range=230()*((x1_range).^^2)+(16390/)*()y2_range=123()*((x2_range).^2206^2)y3_range=y1_range+y2_range+()*((x3_range.^3)203^3)+(24216/)*(x3_range203)y4_range=y3_range(98/)*((x4_range).^^2)(33754/)*()range=[x1_range。 x2_range。 x3_range。 x4_range。 y1_range。 y2_range。 y3_range。 y4_range]。 Max_V=。 %最大速度取范围的10%~20%n=8。 PSOparams=[50 600 2000 2 2 2000 1e50 250 NaN 0 0]。 %个体数目600,迭代次数500pso_Trelea_vectorized(39。 Max_N39。 ,n,Max_V,range,1,PSOparams)附件(3):粒子群工具箱中pso_Trelea_vectorized的M文件% % Usage:% [optOUT]=PSO(functname,D)% or:% [optOUT,tr,te]=...% PSO(functname,D,mv,VarRange,minmax,PSOparams,plotf,PSOseedValue)%% Inputs:% functname string of matlab function to optimize% D of inputs to the function (dimension of problem)% % Optional Inputs:% mv max particle velocity, either a scalar or a vector of length D% (this allows each ponent to have it39。 s own max velocity), % default = 4, set if not input or input as NaN%% VarRange matrix of ranges for each input variable, % default 100 to 100, of form:% [ min1 max1 % min2 max2% ...% minD maxD ]%% minmax = 0, funct minimized (default)% = 1, funct maximized% = 2, funct is targeted to P(12) (minimizes distance to errgoal)%% PSOparams PSO parameters% P(1) Epochs between updating display, default = 100. if 0, % no display% P(2) Maximum number of iterations (epochs) to train, default = 2000.% P(3) population size, default = 24%% P(4) acceleration const 1 (local best influence), default = 2% P(5) acceleration const 2 (global best influence), default = 2% P(6) Initial inertia weight, default = % P(7) Final inertia weight, default = % P(8) Epoch when inertial weight at final value, default = 1500% P(9) minimum global error gradient, % if abs(Gbest(i+1)Gbest(i)) gradient over % certain length of epochs, terminate run, default = 1e25% P(10) epochs before error gradient criterion terminates run, % default = 150, if the SSE does not change over 250 epochs% then exit% P(11) error goal, if NaN then unconstrained min or max, default=NaN% P(12) type flag (which kind of PSO to use)% 0 = Common PSO w/intertia (default)% 1,2 = Trelea types 1,2% 3 = Clerc39。 s Constricted PSO, Type 1% P(13) PSOseed, default=0% = 0 for initial positions all random% = 1 for initial particles as user input%% plotf optional name of plotting function, default 39。 goplotpso39。 ,% make your own and put here%% PSOseedValue initial particle position, depends on P(13), must be% set if P(13) is 1 or 2, not used for P(13)=0, needs to% be nXm where n=ps, and m=D% If nps and/or mD then remaining values are set random% on Varrange% Outputs:% optOUT optimal inputs and associated min/max output of function, of form:% [ bestin1% bestin2% ...% bestinD% bestOUT ]%% Optional Outputs:% tr Gbest at every iteration, traces flight of swarm% te epochs to train, returned as a vector 1:endepoch function [OUT,varargout]=pso_Trelea_vectorized(functname,D,varargin) rand(39。 state39。 ,sum(100*clock))。 if nargin 2 error(39。 Not enough arguments.39。 )。 end % PSO PARAMETERSif nargin == 2 % only specified functname and D VRmin=ones(D,1)*100。 VRmax=ones(D,1)*100。 VR=[VRmin,VRmax]。 minmax = 0。 P = []。 mv = 4。 plotf=39。 goplotpso39。 elseif nargin == 3 % specified functname, D, and mv VRmin=ones(D,1)*100。 VRmax=ones(D,1)*100。 VR=[VRmin,VRmax]。 minmax = 0。 mv=varargin{1}。 if isnan(mv) mv=4。 end P = []。 plotf=39。 goplotpso39。 elseif nargin == 4 % specified functname, D, mv, Varrange mv=varargin{1}。 if isnan(mv) mv=4。 end VR=varargin{2}。 minmax = 0。 P = []。 plotf=39。 goplotpso39。 elseif nargin == 5 % Functname, D, mv, Varrange, and minmax mv=varargin{1}。 if isnan(mv) mv=4。 end VR=varargin{2}。 minmax=varargin{3}。 P = []。 plotf=39。 goplotpso39。 elseif nargin == 6 % Functname, D, mv, Varrange, minmax, and psoparams mv=varargin{1}。 if isnan(mv) mv=4。 end VR=varargin{2}。 minmax=varargin{3}。 P = varargin{4}。 % psoparams plotf=39。 goplotpso39。 elseif nargin == 7 % Functname, D, mv, Varrange, minmax, and psoparams, plotf mv=varargin{1}。 if isnan(mv) mv=4。 end VR=varargin{2}。 minmax=varargin{3}。 P = varargin{4}。 % psoparams plotf = varargin{5}。 elseif nargin == 8 % Functname, D, mv, Varrange, minmax, and psoparams, plotf, PSOseedValue mv=varargin{1}。 if isnan(mv) mv=4。 end VR=varargin{2}。 minmax=varargin{3}。 P = varargin{4}。 % psoparams plotf = varargin{5}。 PSOseedValue = varargin{6}。 else error。
阅读剩余 0%
本站所有文章资讯、展示的图片素材等内容均为注册用户上传(部分报媒/平媒内容转载自网络合作媒体),仅供学习参考。 用户通过本站上传、发布的任何内容的知识产权归属用户或原始著作权人所有。如有侵犯您的版权,请联系我们反馈本站将在三个工作日内改正。