1. figure
  2. [x,y] = meshgrid(-5:0.1:5,-5:0.1:5);
  3. z = x.^2 + y.^2 - 10*cos(2*pi*x) - 10*cos(2*pi*y) + 20;
  4. mesh(x,y,z)
  5. hold on
  6.  
  7. c1 = 1.49445;
  8. c2 = 1.49445;
  9.  
  10. maxgen = 1000;
  11. sizepop = 100;
  12.  
  13. Vmax = 1;
  14. Vmin = -1;
  15. popmax = 5;
  16. popmin = -5;
  17.  
  18. for i = 1:sizepop
  19. pop(i,:) = 5*rands(1,2);
  20. V(i,:) = rands(1,2);
  21. fitness(i) = fun(pop(i,:));
  22. end
  23.  
  24. [bestfitness bestindex] = max(fitness);
  25. zbest = pop(bestindex,:);
  26. gbest = pop;
  27. fitnessgbest = fitness;
  28. fitnesszbest = bestfitness;
  29.  
  30. for i = 1:maxgen
  31.  
  32. for j = 1:sizepop
  33. V(j,:) = V(j,:) + c1*rand*(gbest(j,:) - pop(j,:)) + c2*rand*(zbest - pop(j,:));
  34. V(j,find(V(j,:)>Vmax)) = Vmax;
  35. V(j,find(V(j,:)<Vmin)) = Vmin;
  36.  
  37. pop(j,:) = pop(j,:) + V(j,:);
  38. pop(j,find(pop(j,:)>popmax)) = popmax;
  39. pop(j,find(pop(j,:)<popmin)) = popmin;
  40.  
  41. fitness(j) = fun(pop(j,:));
  42. end
  43.  
  44. for j = 1:sizepop
  45. if fitness(j) > fitnessgbest(j)
  46. gbest(j,:) = pop(j,:);
  47. fitnessgbest(j) = fitness(j);
  48. end
  49.  
  50. if fitness(j) > fitnesszbest
  51. zbest = pop(j,:);
  52. fitnesszbest = fitness(j);
  53. end
  54. end
  55. yy(i) = fitnesszbest;
  56. end
  57. [fitnesszbest, zbest]
  58. plot3(zbest(1), zbest(2), fitnesszbest,'ro','linewidth',1.5)
  59. title('粒子群算法:绘制的目标函数三维网格图,红圈为最优点—Jason niu')
  60.  
  61. figure
  62. plot(yy)
  63. title('PSO:利用粒子群算法实现对目标函数寻找最优个体适应度—Jason niu','fontsize',12);
  64. xlabel('进化代数','fontsize',12);ylabel('适应度','fontsize',12);

PSO:利用PSO算法优化二元函数,寻找最优个体适应度—Jason niu的更多相关文章

  1. PSO:利用PSO+ω参数实现对一元函数y = sin(10*pi*x) ./ x进行求解优化,找到最优个体适应度—Jason niu

    x = 1:0.01:2; y = sin(10*pi*x) ./ x; figure plot(x, y) title('绘制目标函数曲线图—Jason niu'); hold on c1 = 1. ...

  2. PSO:利用PSO实现对一元函数y = sin(10*pi*x) ./ x进行求解优化,找到最优个体适应度—Jason niu

    x = 1:0.01:2; y = sin(10*pi*x) ./ x; figure plot(x, y) title('绘制目标函数曲线图—Jason niu'); hold on c1 = 1. ...

  3. Java实现蓝桥杯VIP算法训练 二元函数

    试题 算法训练 二元函数 资源限制 时间限制:1.0s 内存限制:256.0MB 问题描述 令二元函数f(x,y)=ax+by,a和b为整数,求一个表达式S的值. 只有满足以下要求的表达式才是合法的: ...

  4. 使用模拟退火算法优化 Hash 函数

    背景 现有个处理股票行情消息的系统,其架构如下: 由于数据量巨大,系统中启动了 15 个线程来消费行情消息.消息分配的策略较为简单:对 symbol 的 hashCode 取模,将消息分配给其中一个线 ...

  5. STL算法设计理念 - 二元函数,二元谓词以及在set中的应用

    demo 二元函数对象 #include <iostream> #include <cstdio> #include <vector> #include <a ...

  6. Java实现 蓝桥杯VIP 算法训练 二元函数

    问题描述 令二元函数f(x,y)=ax+by,a和b为整数,求一个表达式S的值. 只有满足以下要求的表达式才是合法的: 1.任意整数x是一个合法的表达式: 2.如果A和B都是合法的表达式,则f(A,B ...

  7. 实现手写数字识别(数据集50000张图片)比较3种算法神经网络、灰度平均值、SVM各自的准确率—Jason niu

    对手写数据集50000张图片实现阿拉伯数字0~9识别,并且对结果进行分析准确率, 手写数字数据集下载:http://yann.lecun.com/exdb/mnist/ 首先,利用图片本身的属性,图片 ...

  8. TF之RNN:实现利用scope.reuse_variables()告诉TF想重复利用RNN的参数的案例—Jason niu

    import tensorflow as tf # 22 scope (name_scope/variable_scope) from __future__ import print_function ...

  9. SA:利用SA算法解决TSP(数据是14个虚拟城市的横纵坐标)问题——Jason niu

    %SA:利用SA算法解决TSP(数据是14个虚拟城市的横纵坐标)问题——Jason niu X = [16.4700 96.1000 16.4700 94.4400 20.0900 92.5400 2 ...

随机推荐

  1. 【XSY2843】「地底蔷薇」 NTT什么的 扩展拉格朗日反演

    题目大意 给定集合\(S\),请你求出\(n\)个点的"所有极大点双连通分量的大小都在\(S\)内"的不同简单无向连通图的个数对\(998244353\)取模的结果. \(n\le ...

  2. Django_RBAC_demo2 升级版权限控制组件

    RBAC 升级版 预期要求 前端在无权限时不在提供操作标签 更改部分硬编码 实现更加精准的权限控制 未改动前的版本 在这里 ⬇ Django_rbac_demo 权限控制组件框架模型 具体更改 数据库 ...

  3. P3455 [POI2007]ZAP-Queries(莫比乌斯反演)

    题目 P3455 [POI2007]ZAP-Queries 解析 莫比乌斯反演. 给定\(n\),\(m\),\(d\),求\[\sum_{i=1}^{n}\sum_{j=1}^{m}[gcd(i,j ...

  4. BZOJ2870 最长道路

    题意:给定树,有点权.求一条路径使得最小点权 * 总点数最大.只需输出这个最大值.5w. 解:树上路径问题,点分治. 考虑合并两个子树的时候,答案的形式是val1 * (d1 + d2),当1是新插入 ...

  5. 【CH4302】Interval GCD

    题目大意:给定一个长度为 N 的序列,M 个操作,支持区间加,区间查询最大公约数. 题解: 先来看一个子问题,若是单点修改,区间最大公约数,则可以发现,每次修改最多改变 \(O(logn)\) 个答案 ...

  6. WebSocke实时通讯协议

    WebSocket 是什么? WebSocket 是一种网络通信协议.RFC6455 定义了它的通信标准. WebSocket 是 HTML5 开始提供的一种在单个 TCP 连接上进行全双工通讯的协议 ...

  7. 第十五节:HttpContext五大核心对象的使用(Request、Response、Application、Server、Session)

    一. 基本认识 1. 简介:HttpContext用于保持单个用户.单个请求的数据,并且数据只在该请求期间保持: 也可以用于保持需要在不同的HttpModules和HttpHandlers之间传递的值 ...

  8. js的事件循环机制:同步与异步任务(setTimeout,setInterval)宏任务,微任务(Promise,process.nextTick)

    javascript是单线程,一切javascript版的"多线程"都是用单线程模拟出来的,通过事件循环(event loop)实现的异步. javascript事件循环 事件循环 ...

  9. C/C++ 函数指针使用总结

    一 函数指针介绍 函数指针指向某种特定类型,函数的类型由其参数及返回类型共同决定,与函数名无关.举例如下: int add(int nLeft,int nRight);//函数定义 该函数类型为int ...

  10. tomcat日志格式中的含义

    %a - 远程IP地址 %A - 本地IP地址 %b - 发送的字节数,不包括HTTP头,或“ - ”如果没有发送字节 %B - 发送的字节数,不包括HTTP头 %h - 远程主机名 %H - 请求协 ...