精华内容
下载资源
问答
  • 2019-09-28 09:57:51

    参考文献:

      量子行为粒子群优化算法研究[D] ,孙俊,博士论文2.4节.

    #include <iostream>
    #include <math.h>
    #include <time.h>
    using namespace std;
    
    #define M 50  //群体数目50
    #define N 4   //每个粒子的维数4
    //测试类
    class TestFunction
    {
        public:
            double resen(double x1,double x2,double x3,double x4)
            {
                double s=0;
                s=100*(x2-x1*x1)*(x2-x1*x1)+(1-x1)*(1-x1)+s;
                s=100*(x3-x2*x2)*(x3-x2*x2)+(1-x2)*(1-x2)+s;
                s=100*(x4-x3*x3)*(x4-x3*x3)+(1-x3)*(1-x3)+s;
                return s;
            }
    };
    
    class CQPSO
    {
        private:
            double delta;
            double (*w)[N];// = new double[50][4]; //总体粒子
            double *f;//=new double[M];//适应度值
            double *ff;//=new double[M];//相对f的比较值
            double (*p)[N];//=new double[M][N];
            double *g;//=new double[N];
            double *c;//=new double[N];
            TestFunction *tf;// = new TestFunction;
            double random()
            {
                double s;
                s=(abs(rand())%10000+10000)/10000.0-1.0;    
                return s;
            }
        public:
            CQPSO(double delta)
            {
                int i,j;
                this->delta=delta;
                w=new double[M][N];
                f=new double[M];
                ff=new double[M];
                p=new double[M][N];
                g=new double[N];
                c=new double[N];
                tf=new TestFunction;
                for(i=0;i<M;i++)
                {
                    for(j=0;j<N;j++)
                    {
                        w[i][j]=random();
                    }
                }
                
            }
    
            void CQPSOmethod(int count)
            {
                int i,j;
                if(count==1)
                {
                    for(i=0;i<M;i++)
                    {
                        for(j=0;j<N;j++)
                        {
                            p[i][j]=w[i][j];
                        }
                        f[i]=tf->resen(w[i][0],w[i][1],w[i][2],w[i][3]);
                    }
                    cqpso_p(f);//得出全局最优
                }
    
                if(count>1)
                {
                    cqpso_update( w );
                    for(i=0;i<M;i++)
                    {
                        ff[i]=tf->resen(w[i][0],w[i][1],w[i][2],w[i][3]);
                        if(ff[i]<f[i])
                        {    
                            f[i]=ff[i];
                            for(j=0;j<N;j++) p[i][j]=w[i][j];
                        }
                    }
                    cqpso_p(f);
                }
                cout<<(tf->resen(g[0],g[1],g[2],g[3]))<<endl;
            }
    
    
    
            void cqpso_p(double *f)//得到个体最优中最小值——全局最优
            {
                double temp=f[0];
                int i,j;
                for(i=1;i<M;i++)
                {
                    if(f[i]<temp)
                    {
                        temp=f[i];
                    }
                }
                for(i=0;i<M;i++)
                {
                    if(temp==f[i])
                    {
                        for(j=0;j<N;j++)
                        {
                            g[j]=p[i][j];
                        }
                        break;
                    }
                }
            }    
            void cqpso_c(double (*p)[N])
            {
                int i,j;
                for(i=0;i<N;i++)  c[i]=0;
                for(i=0;i<N;i++)
                {
                    for(j=0;j<M;j++)
                    {
                        c[i]=c[i]+p[j][i];
                    }
                }
                for(i=0;i<N;i++) c[i]=c[i]/M;
            }
    
            void cqpso_update( double (*w)[N] )
            {
                int i,j;
                double *fai=new double[N];
                double (*u)[N]=new double[M][N];
                double (*pp)[N]=new double[M][N];
                for(i=0;i<N;i++)
                {
                    fai[i]=random();
                }
                for(i=0;i<M;i++)
                {
                    for(j=0;j<N;j++)
                        u[i][j]=random();
                }
                cqpso_c( p );
                for(i=0;i<M;i++)
                {
                    for(j=0;j<N;j++)
                        pp[i][j]=fai[j]*p[i][j]+g[j]*(1-fai[j]);
                }
                for(i=0;i<M;i++)
                {
                    for(j=0;j<N;j++)
                        w[i][j]=pp[i][j]+delta*(abs(c[j]-w[i][j]))*log(1/u[i][j]);
                }
            }
        
    };
    
    int main()
    {
        int i;
        srand((unsigned)time(0)); 
        CQPSO *qo = new CQPSO(0.5);
        //qo->w=new double[M][N];
        for(i=1;i<100;i++)
        qo->CQPSOmethod(i);
    }

     

    转载于:https://www.cnblogs.com/dongzhuangdian/p/5149315.html

    更多相关内容
  • 在网络异常检测中
  • 量子粒子群算发代码,有中文注释,适合初学者编程学习。。。。。。。。。。
  • 提出了一种基于量子粒子群优化算法的光纤光栅参数重构方法。该方法通过传输矩阵法得到优化目标函数,并将待优化的光纤光栅参数以粒子表示,再让粒子在解空间模拟量子行为进行搜索。以均匀布拉格光栅和线性啁啾光纤...
  • 通过将量子粒子群优化算法和佳点集法相结合,提出一种改进的混沌量子粒子群优化算法,用于解决复杂函数问题。将佳点集融合到量子粒子群算法中,以提高解空间的遍历性,对函数实现全局寻优。用混沌序列改变惯性权重w...
  • 为了克服标准量子粒子群优化( SQPSO) 算法易陷入局部最优的缺点,引入变异机制,基于进化阶段的 概念,提出了自适应阶段变异量子粒子群优化( APMQPSO) 算法。以四种不同的变异概率减小方式阶段性地对 QPSO ...
  • 针对武器—目标分配(WTA)问题及其特点,提出一种带排序映射的量子粒子群优化算法。首先通过武器系统对目标攻击过程中得到的毁伤收益建立了目标分配模型;然后根据该模型的约束特点,提出一种基于排序映射的编码...
  • 提出一种基于量子粒子群算法的摄像机标定优化方法。... 利用量子粒子群优化算法, 建立了目标函数, 进一步优化摄像机参数。实验结果表明, 所提优化算法收敛快, 精度高, 能在一定程度上提高摄像机的标定精度。
  • 通过采用了一种新颖的量子粒子群算法,用量子位的概率幅对粒子位置编码,用量子旋转门实现粒子移动,完成粒子搜索;并采用量子非门来实现变异,从而提高种群多样性。由于每个量子都有两个概率幅,因此每个粒子实际占据两个...
  • 为提高量子粒子群算法的寻优能力,文中提出一种新的正态云模型自适应变异量子粒子群算法。该方法采用正态云模型优化策略,引入自身最差粒子和全局最差粒子,结合自身最优粒子和全局最优粒子自适应调整势阱中心位置与...
  • 针对量子粒子群优化算法(QPSO)存在着保持种群多样性差、容易陷入局部最优等缺陷,将耗散操作算子引入到QPSO量子角度更新中,提出了改进的耗散量子粒子群优化算法(DQPSO)。为验证算法的有效性,将DQPSO算法应用于标准...
  • 收缩—扩张(CE)系数是量子粒子群优化算法(QPSO)需要人工设定的最核心参数,如何选择该参数成为一个重要的问题。为寻找更为有效的CE系数控制方法,根据CE系数递减思想,提出了一种凸凹性可变的指数型非线性下降CE...
  • 针对粒子群优化算法搜索空间有限、容易出现早熟现象的缺陷,提出将量子粒子群优化算法用于求解作业车间调度问题。求解时,将每个调度按照一定的规则编码为一个矩阵,并以此矩阵作为算法中的粒子;然后根据调度目标...
  • 优化(QPSO) 和拥挤距离排序的多目标量子粒子群优化(MOQPSO-CD) 算法. MOQPSO-CD 利用QPSO 快速接近真 实的Pareto 最优解, 同时引入高斯变异算子以增强解的多样性. 采用拥挤距离排序的方法对外部存储器中最优解...
  • 针对量子粒子群优化算法(quantum delta Particle Swarm Optimization,PSO)在处理高维复杂函数时存在收敛速度慢、易陷入局部最优和算法通用性不强等缺点,提出了一种基于混沌优化机制的双量子粒子群优化算法。...
  • 在网络异常检测中
  • 针对量子粒子群优化算法早熟收敛的问题,提出一种双心扰动的变异机制。对粒子的势能中心和粒子群的重心进行自适应柯西变异,发挥两者在进化后期的协同引导能力,以提高进化后期粒子群对新空间的开拓能力。对4个典型...
  • 为了克服标准量子粒子群优化(SQPSO)算法易陷入局部最优的缺点, 引入变异机制, 基于进化阶段的概念, 提出了自适应阶段变异量子粒子群优化(APMQPSO)算法。以四种不同的变异概率减小方式阶段性地对QPSO算法中的全局...
  • 带交叉算子的自适应量子粒子群优化算法,陈琳,肖波,聚类分析是数据挖掘中一个很活跃的研究领域,其核心目标是将待处理对象的集合在相似的基础上分成多个类。随着研究的深入,新的聚
  • 关键帧提取是人体运动捕获数据分析与处理的重要研究内容,为此提出一种基于量子粒子群优化算法的运动捕获数据关键帧提取方法。量子粒子群优化算法具有较快的搜索能力,编码方式采用有序整数编码来保证搜索中运动序列...
  • 针对量子粒子群优化算法存在早熟收敛的问题,提出一种基于Logistics混沌映射变异的多种群量子粒子群优化算法(CMQPSO),采用分段Logistics混沌映射生成初始粒子群,根据适应度值将群体分为顶层和底层种群。...
  • 38 计算机与数字工程 第35卷 基于MATLAB的量子粒子群优化算法及其应用 余 健 郭 平 1) 2) ) (韩山师范学院数信学院1) 潮州 521041(北京师范大学信息科学学院2 北京 100875) 3 摘 要 量子粒子群优化(QPSO)算法是在...
  • 文章用一种量子粒子群优化算法对混合型有源电力滤波器(HAPF)参数进行多目标优化设计,优化目标包括系统的投资成本、无功补偿和滤波效果等,该算法解决了HAPF系统的参数匹配以及无源、有源容量的分配问题。...
  • 量子粒子群优化算法训练小波神经,粒子群算法优化神经网络,matlab源码.rar
  • 量子粒子群优化算法训练小波神经,粒子群算法优化神经网络,matlab源码.zip
  • 针对量子粒子群优化(QPSO)算法在优化过程中面临早熟问题,提出了在粒子的平均位置或全局最优位置上加入高斯扰动的QPSO算法,可以有效地阻止粒子的停滞,因此较容易地使粒子避免陷入局部最优。为了评估算法的性能,...
  • 基于QPSO和拥挤距离排序的多目标量子粒子群优化算法
  • 针对瓦斯涌出局部性、随机性、模糊性等特点,提出一种新的量子粒子群优化、支持向量核构造量子粒子群算法和向量回归模型,并且运用一种新型的智能量子粒子群优化算法优选模型参数。实验结果表明,所提出的量子粒子群...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 1,030
精华内容 412
关键字:

量子粒子群优化算法

友情链接: DianPanRemoteControl.zip