网站大量收购闲置独家精品文档,联系QQ:2885784924

蚁群算法人工智能实验报告.doc

  1. 1、本文档共8页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
蚁群算法人工智能实验报告蚁群算法人工智能实验报告

人工智能实验报告 姓名: 学号: 班级: 实验时间: 蚁群算法 实验原理: 蚂蚁在觅食过程中可以找出巢穴到食物源的最短路径,为什么? (1)信息素(pheromone) (2)正反馈现象:某一路径上走过的蚂蚁越多,则后来者选择该路径的概率就越大。 (3)挥发现象:路径上的信息素浓度会随着时间推进而逐渐衰减。 蚁群算法的缺点: 1)收敛速度慢 2)易于陷入局部最优 改进: 1)采用局部优化,设计了三种优化算子。 2)采用蚁群优化算法。 3)其它优化算法 实验内容: 旅行商问题(TSP,traveling salesman problem): 一商人去n个城市销货,所有城市走一遍再回到起点,使所走路程最短。 实验步骤: 算法代码: %%蚁群算法的优化计算——旅行商问题(TSP)优化 %% 清空环境变量 clear all clc %% 导入数据 load citys_data.mat %% 计算城市间相互距离 n = size(citys,1); D = zeros(n,n); for i = 1:n for j = 1:n if i ~= j D(i,j) = sqrt(sum((citys(i,:) - citys(j,:)).^2)); else D(i,j) = 1e-4; end end end %% 初始化参数 m = 50; % 蚂蚁数量 alpha = 1; % 信息素重要程度因子 beta = 5; % 启发函数重要程度因子 rho = 0.1; % 信息素挥发因子 Q = 1; % 常系数 Eta = 1./D; % 启发函数 Tau = ones(n,n); % 信息素矩阵 Table = zeros(m,n); % 路径记录表 iter = 1; % 迭代次数初值 iter_max = 200; % 最大迭代次数 Route_best = zeros(iter_max,n); % 各代最佳路径 Length_best = zeros(iter_max,1); % 各代最佳路径的长度 Length_ave = zeros(iter_max,1); % 各代路径的平均长度 %% 迭代寻找最佳路径 while iter = iter_max % 随机产生各个蚂蚁的起点城市 start = zeros(m,1); for i = 1:m temp = randperm(n); %返回n个[0, n]间的随机元素向量 start(i) = temp(1); end Table(:,1) = start; % 构建解空间 citys_index = 1:n; %访问1~n这n个城市 % 逐个蚂蚁路径选择 for i = 1:m % 逐个城市路径选择 for j = 2:n %各个蚂蚁都需要访问n-1个城市 tabu = Table(i,1:(j - 1)); % 已访问的城市集合(禁忌表) allow_index = ~ismember(citys_index,tabu); %判断citys_index中元素有没有在tabu中出现,出现用1表示,否则用0表示。 allow = citys_index(allow_index); % 待访问的城市集合 P = allow; % 计算城市间转移概率 f

文档评论(0)

skewguj + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档