01.from numpy import array
02.from random import random
03.from math import sin, sqrt
04.
05.iter_max = 10000
06.pop_size = 100
07.dimensions = 28.c1 = 29.c2 = 2
10.err_crit = 0.00001
11.
12.class Particle:
13. pass
14.
15.def f6(param):
16. '''Schaffer's F6 function'''
17. para = param*10
18. para = param[0:2]
19. num = (sin(sqrt((para[0] * para[0]) + (para[1] * para[1])))) * \
20. (sin(sqrt((para[0] * para[0]) + (para[1] * para[1])))) - 0.5
21. denom = (1.0 + 0.001 * ((para[0] * para[0]) + (para[1] * para[1]))) * \
22. (1.0 + 0.001 * ((para[0] * para[0]) + (para[1] * para[1])))
23. f6 = 0.5 - (num/denom)
24. errorf6 = 1 - f6
25. return f6, errorf6;
26.
27.#initialize the particles
28.particles = []
29.for i in range(pop_size):
30. p = Particle()
31. p.params = array([random() for i in range(dimensions)])
32. p.fitness = 0.0
33. p.v = 0.0
34. particles.append(p)
35.
36.# let the first particle be the global best
37.gbest = particles[0]
38.err = 999999999
39.while i < iter_max :
40. for p in particles:
41. fitness,err = f6(p.params)
42. if fitness > p.fitness:
43. p.fitness = fitness
44. p.best = p.params
45.
46. if fitness > gbest.fitness:
47. gbest = p
48. v = p.v + c1 * random() * (p.best - p.params) \
49. + c2 * random() * (gbest.params - p.params)
50. p.params = p.params + v
51.
52. i += 1
53. if err < err_crit:
54. break
55. #progress bar. '.' = 10%
56. if i % (iter_max/10) == 0:
57. print '.'
58.
59.print '\nParticle Swarm Optimisation\n'
60.print 'PARAMETERS\n','-'*9
61.print 'Population size : ', pop_size
62.print 'Dimensions : ', dimensions
63.print 'Error Criterion : ', err_crit
64.print 'c1 : ', c1
65.print 'c2 : ', c2
66.print 'function : f6'
67.
68.print 'RESULTS\n', '-'*7
69.print 'gbest fitness : ', gbest.fitness
70.print 'gbest params : ', gbest.params
71.print 'iterations : ', i+1
72.## Uncomment to print particles
73.#for p in particles:
74.# print 'params: %s, fitness: %s, best: %s' % (p.params, p.fitness, p.best)

最新文章

  1. TFS工作项数据统计及相关数据库结构分析
  2. 读艾伦的jQuery的无new构建,疑惑分析——jquery源码学习一
  3. Flex编译程序出现 Could not find compiled resource bundle &#39;SharedResources&#39; for locale &#39;en_US&#39;.
  4. C#回顾 - 3.NET的IO:字节流
  5. xcode 和 android studio中在Mac系统下的自动对齐快捷键
  6. google maps js v3 api教程(2) -- 在地图上添加标记
  7. tabbarcontroller 内嵌导航 控制器,2层push hide tabbar 后 ,第二层直接返回根视图控制器选择tabbarcontroller的其它vc 无法显示 tabbar的 问题解决方案
  8. 解决iframe缓存
  9. SASS、COMPASS 安装指南
  10. 有用的BitConverter
  11. asp.net MVC2.0学习笔记
  12. CF div2 D BFS
  13. MVC Remote 服务器验证
  14. Android为TV端助力 VelocityTracker 速度追踪器的使用及创建
  15. 文件处理----Properties文件处理
  16. Eclipse+maven 构建第一个简单的springmvc项目
  17. Servlet基本_サーブレットのライフサイクル、スレッドセーフ
  18. wpf根据X与Y轴获取内部值
  19. 基于TLS证书手动部署kubernetes集群(下)
  20. Andorid Dialog 显示宽度设置

热门文章

  1. C++ 中宏的使用 --来自:http://blog.csdn.net/hgl868/article/details/7058906
  2. Linux for windows cp 数据中文乱码
  3. SpringMVC利用拦截器防止SQL注入
  4. HNU 12827 NASSA’s Robot
  5. BestCoder Round #60 1001
  6. iPhone取消软件更新上边的1
  7. HDOJ 1870
  8. 使用msgfmt编译多语言文件
  9. 【Python】使用 sphinx 制作简洁而又美观的文档
  10. SpringMVC请求处理流程