现在的位置: 首页 > 综合 > 正文

蚁群算法的源代码

2013年10月31日 ⁄ 综合 ⁄ 共 1348字 ⁄ 字号 评论关闭

不知道现在是否还有人在研究蚁群算法?应该有吧。当初为了找C或C++源代码而不可得,在阅读了多份"杂七杂八"的代码的基础,总算写出来了。运行了三个TSP经典用例,基本符合要求。2008年3月份写的,现在贴出来大家共享一下,注释加的应该算齐全。仅仅是一份按照蚁群算法的原理写的代码,没有做任何优化。至于我做优化后的代码,就不发出来了吧,呵呵。环境为:Windows XP SP2 + VC 6.0.

 

  1. /********************************* 
  2. *作者:陈杰 
  3. *单位:四川大学计算机学院 
  4. *邮件地址:scucj@126.com 
  5. *完成时间:2008年3月 
  6. *********************************/  
  7.   
  8. #include<iostream>  
  9. #include<math.h>  
  10. #include<time.h>  
  11. using namespace std;  
  12.   
  13. //该程序是以蚁群系统为模型写的蚁群算法程序(强调:非蚂蚁周模型),以三个著名的TSP问题为测试对象  
  14. //通过微调参数,都可以获得较好的解  
  15.   
  16. /* 
  17. //----------(1)问题一:Oliver 30 城市 TSP 问题 best_length = 423.7406; ------------------------ 
  18. //该程序最好的结果是423.741,可运行多次获得 
  19. //城市节点数目 
  20. #define N 30 
  21. //城市坐标 
  22. double C[N][2]={ 
  23.     {2,99},{4,50},{7,64},{13,40},{18,54},{18,40},{22,60},{24,42},{25,62},{25,38}, 
  24.     {37,84},{41,94},{41,26},{44,35},{45,21},{54,67},{54,62},{58,35},{58,69},{62,32}, 
  25.     {64,60},{68,58},{71,44},{71,71},{74,78},{82,7},{83,46},{83,69},{87,76},{91,38} 
  26. }; 
  27. //----------上面参数是固定的,下面的参数是可变的----------- 
  28. //蚂蚁数量 
  29. #define M 30 
  30. //最大循环次数NcMax 
  31. int NcMax = 500; 
  32. //信息启发因子,期望启发式因子,全局信息素挥发参数,局部信息素挥发参数, 状态转移公式中的q0 
  33. double alpha = 2, beta = 3, rou = 0.1, alpha1 = 0.1,  qzero = 0.01; 
  34. //-----------问题一结束------------------------------------------------------------------------ 
  35. */  
  36.   
  37. /* 
  38. //----------(2)问题二:Elion50 城市 TSP 问题 best_length = 427.96; ---------------------------- 
  39. //该程序最好的结果是428.468,可运行多次获得 
  40. //城市节点数目 
  41. #define N 50 

抱歉!评论已关闭.