File Exchange

image thumbnail

Quantum-Behaved Particle Swarm Optimization

version 1.0.0 (6.46 KB) by David Franco
The Q-PSO function + 11 benchmark functions.


Updated 18 Oct 2018

View License

The folder contain the Quantum PSO main code (QPSO) and 11 functions for benchmark.


fun = @griewankfcn;
D = 30;
nPop = 50;
lb = -600;
ub = 600;
maxit = 1000;
maxeval = 10000*D;

[xmin,fmin,histout] = QPSO(fun,D,nPop,lb,ub,maxit,maxeval);


[xmin,fmin,histout] = QPSO(@griewankfcn,30,50,-600,600,1000,10000*30);

Comments and Ratings (5)

It is showing this error.
Maximum recursion limit of 500 reached. Use set(0,'RecursionLimit',N) to
change the limit. Be aware that exceeding your available stack space can
crash MATLAB and/or your computer.
Error in QPSO


Thanks for the code. But I wanna ask a question, why update the position, not through quantum rotation gate? Do you have the code whose evolutionary process of quantum position is computed through quantum rotation gate? Thank you very much! I really need it. Thanks a lot

@Christophe Granet you can use x = (ub-lb).*rand(nPop,D) + lb;

There was no mention of the requirement to have access to the "Statistics Toolbox" when downloading the files. However, I get this error message when I try to run the program: To use 'unifrnd', you might need:
unifrnd - Statistics Toolbox

Is there a way to have this running without the need to purchase the "Statistic Toolbox"?

This code is impressive. Thanks a lot!

MATLAB Release Compatibility
Created with R2018b
Compatible with any release
Platform Compatibility
Windows macOS Linux