当前位置:网站首页>Matlab simulation of solving multi-objective optimal value based on PSO optimization
Matlab simulation of solving multi-objective optimal value based on PSO optimization
2022-07-23 15:04:00 【I love c programming】
Catalog
3. Preview of some simulation drawings
4. Source code acquisition method
1. Algorithm description
stay PSO in , Each particle in a group is represented as a vector . In the context of portfolio optimization , This is a weight vector , Represents the allocated capital of each asset . The vector is transformed into a position in the multidimensional search space . Each particle will also remember its best historical position . about PSO Every iteration of , Find the global optimal location . This is the best position in the group . Once the global optimal location is found , Each particle will be closer to its local optimal position and global optimal position . When executed in multiple iterations , The process produces a good solution to the problem , Because the particles converge on the near optimal solution .
Ray Wait for someone to pass PSO Algorithm and Pareto The sorting mechanism wants to be combined . use Pareto Sorting method to select a group of elite solutions , The global optimal particle is selected by roulette . In actual operation , Only a few individuals have a high probability of selection , The population diversity is not maintained well .Coello Wait in PSO In the algorithm, the best position of the group is selected by introducing Pareto Competition mechanism and particle knowledge base . This knowledge base is used to store the flight experience of particles after each flight cycle , The knowledge base is updated by considering a geography based system , The system is defined in terms of the objective function value of each particle . This knowledge base is used by particles to identify a leader who guides the search . At the same time, the non inferior solution is determined by comparing the candidate individuals with the comparison set randomly selected from the population , Therefore, the parameters of the comparison set have a crucial impact on the success of the algorithm . If the parameter is too large , Is prone to premature convergence , And the parameter is too small , Then the number of non inferior solutions selected in the population may be too small .
2. Partial procedure
for it=1:MaxIt
for i=1:nPop
rep_h=SelectLeader(rep,beta);
particle(i).Velocity=w*particle(i).Velocity ...
+c1*rand*(particle(i).Best.Position - particle(i).Position) ...
+c2*rand*(rep_h.Position - particle(i).Position);
particle(i).Velocity=min(max(particle(i).Velocity,-VelMax),+VelMax);
particle(i).Position=particle(i).Position + particle(i).Velocity;
flag=(particle(i).Position<VarMin | particle(i).Position>VarMax);
particle(i).Velocity(flag)=-particle(i).Velocity(flag);
particle(i).Position=min(max(particle(i).Position,VarMin),VarMax);
particle(i).Cost=CostFunction(particle(i).Position);
if Dominates(particle(i),particle(i).Best)
particle(i).Best.Position=particle(i).Position;
particle(i).Best.Cost=particle(i).Cost;
elseif ~Dominates(particle(i).Best,particle(i))
if rand<0.5
particle(i).Best.Position=particle(i).Position;
particle(i).Best.Cost=particle(i).Cost;
end
end
end
particle=DetermineDomination(particle);
nd_particle=GetNonDominatedParticles(particle);
rep=[rep
nd_particle];
rep=DetermineDomination(rep);
rep=GetNonDominatedParticles(rep);
for i=1:numel(rep)
[rep(i).GridIndex rep(i).GridSubIndex]=GetGridIndex(rep(i),G);
end
if numel(rep)>nRep
EXTRA=numel(rep)-nRep;
rep=DeleteFromRep(rep,EXTRA,gamma);
rep_costs=GetCosts(rep);
G=CreateHypercubes(rep_costs,nGrid,alpha);
end
disp(['Iteration ' num2str(it) ': Number of Repository Particles = ' num2str(numel(rep))]);
w=w*wdamp;
end3. Preview of some simulation drawings



4. Source code acquisition method
Click the download link :
Access method 2:
Blog resource item , Search for resources with the same name as blog .
Access method 3:
If the download link fails , Blogger wechat contact .
A_055
边栏推荐
- OpenCV计算外包矩形
- 【无标题】
- MySQL 常用命令
- Supervisor installation and use
- ESP三相SVPWM控制器的simulink仿真
- 粒子边界碰撞的处理
- The self-developed data products have been iterated for more than a year. Why not buy third-party commercial data platform products?
- 智头条:智装论坛将于8月4日举行,2022全屋智能销售将破100亿
- Transferred from Yuxi information disclosure: products such as mRNA covid-19 vaccine and Jiuzhou horse tetanus immunoglobulin are expected to be on the market within this year.
- [untitled]
猜你喜欢

21 - 二叉树的垂直遍历

初识C语言函数

粒子边界碰撞的处理

Redis | 非常重要的中间件

他山之石 | 阿里多模态知识图谱探索与实践

基于matlab的CBOC信号调制解调仿真,输出其相关性,功率谱以及频偏跟踪

读写锁ReadWriteLock还是不够快?再试试S…

Simulation de modulation et de démodulation du signal CBOC basée sur MATLAB, sortie de corrélation, spectre de puissance et suivi de décalage de fréquence

Subsequence --- edit distance

The pit trodden by real people tells you to avoid the 10 mistakes often made in automated testing
随机推荐
精品国创《少年歌行》数字藏品开售,邀你共铸少年武侠江湖梦
numpy和pytorch的版本对应关系
452. Detonate the balloon with the minimum number of arrows
C thread lock and single multithreading are simple to use
基于matlab的BOC调制解调的同步性能仿真,输出跟踪曲线以及不同超前滞后码距下的鉴别曲线
直播课堂系统03-model类及实体
The self-developed data products have been iterated for more than a year. Why not buy third-party commercial data platform products?
day18
Getting started with Prometheus (III)
Oracle 报表常用sql
leetcode-设置交集大小至少为2
Simulation of BOC modulation signal acquisition based on MATLAB
Liunx:浅析vim编辑器基本使用
【启发式分治】启发式合并的逆思想
The accuracy of digital addition
@FeignClient使用详细教程(图解)
Head pose estimation principle and visualization_ Loveliuzz's blog - Programmer's Homestead_ Head posture estimation
cmake笔记
Kettle实现共享数据库连接及插入更新组件实例
头部姿态估计原理及可视化_loveliuzz的博客-程序员宅基地_头部姿态估计