登录
首页 » MATLAB » 蚁群算法(ACA)及其Matlab实现.m

蚁群算法(ACA)及其Matlab实现.m

于 2021-05-06 发布
0 165
下载积分: 1 下载次数: 3

代码说明:

采用蚁群算法求取TSP问题 1基本原理: 本质上也是一种概率算法,通过大概率收敛到最佳值,和其他的智能算法很相似。蚁群分泌的信息素存在正反馈,使得较佳的解具有大概率被选到,当全局都选用较佳的解,变可以得到整体的最优解。 2几个关键点:  1)概率选择:受信息素浓度和启发函数影响,启发函数为距离的倒数   2)信息素挥发:考虑到信息素随时间的挥发,加入挥发因子  3程序设计步骤:  1)初始化各个参数:包括各点的距离,信息素的初始浓度,蚂蚁数量,信息素挥发因子,信息素和启发函数的重要度因子,启发函数,最大迭代次数,路径记录表等等 2)迭代:对每个蚂蚁随机制定初始值,再根据概率选择,选择出每只蚂蚁的路径,确定每只蚂蚁的路径总长度,以及蚁群的最佳路径长度和平均长度,并对信息素进行更新。   3)展示:展示出最佳路径,以及最佳路径对迭代的变化图  4Matlab代码 程序说明:采用蚁群算法求取TSP问题,共有34个城市,从txt文件加载数据: 运行结果:

下载说明:请别用迅雷下载,失败请重下,重下不扣分!

发表评论

0 个回复

  • 室内定位算法合集
    卡尔曼滤波 粒子滤波等等 【源码目录】 bachelor-project-master ├── KalmanFilter │   ├── kf_initialization.m │   ├── kf_params.m │   ├── kf_plots.m │   ├── kf_prediction.m │   └── kf_update.m ├── LICENSE ├── Multilateration │   ├── lateration_murphyHerman.m │   ├── lateration_paulaAnaJose.m │   ├── lateration_plot.m │   └── lateration_weightedMurphyHerman.m ├── ParticleFilter │   ├── R2d.m │   ├── initialise_particles.m │   ├── motion_model.m │   ├── observation_model.m │   ├── plot_particles.m │   └── resampling.m ├── README.md ├── SignalModel │   ├── inv_path_loss_model.m │   └── path_loss_model.m ├── build_map.m ├── common.m ├── kf_main.m ├── lateration_main.m ├── osm │   ├── LICENSE │   ├── README.md │   ├── assign_from_parsed.m │   ├── debug_openstreetmap.m │   ├── dependencies │   │   ├── gaimc │   │   │   ├── dijkstra.m │   │   │   └── sparse_to_csr.m │   │   ├── hold │   │   │   ├── restorehold.m │   │   │   └── takehold.m │   │   ├── lat_lon_proportions │   │   │   └── lat_lon_proportions.m │   │   ├── plotmd │   │   │   └── plotmd.m │   │   ├── textmd │   │   │   └── textmd.m │   │   ├── xml2struct │   │   │   └── xml2struct_fex28518.m │   │   └── xml2struct.m │   ├── extract_connectivity.m │   ├── extract_sensors.m │   ├── get_unique_node_xy.m │   ├── get_way_tag_key.m │   ├── load_osm_xml.m │   ├── main_mapping.m │   ├── parse_openstreetmap.m │   ├── parse_osm.m │   ├── plot_nodes.m │   ├── plot_road_network.m │   ├── plot_route.m │   ├── plot_way.m │   ├── route_planner.m │   ├── show_map.m │   └── usage_example.m ├── pf_main.m ├── standalone │   ├── KalmanFilter │   │   ├── KF1D.m │   │   └── KF2D.m │   ├── Lateration │   │   ├── MurphyHerman.m │   │   ├── PaulaAnaJose_v1.m │   │   ├── PaulaAnaJose_v2.m │   │   ├── Trilateration.m │   │   ├── WeightedMultilaterationLLS.m │   │   └── WeightedMurphyHerman.m │   ├── ParticleFilter │   │   ├── particle_filter_sd_2d.m │   │   └── particle_filter_student_dave_basic_ex1.m │   └── misc │       ├── NearestNeighbor.m │       ├── ProjectPointOnSegment.m │       └── WeightedMultilaterationLLS.m └── utils     ├── R2d.m     ├── cart2geo.m     ├── convert2Cartesian.m     └── geo2cart.m 18 directories, 69 files
    2021-06-10 00:31:06下载
    积分:1
  • matlab 排列熵 示例源码
    用于求取时间序列的排列熵
    2019-11-18下载
    积分:1
  • ESPRIT算法
    【实例简介】相控阵测角ESPRIT算法,DOA
    2021-07-20 00:31:48下载
    积分:1
  • 模拟退火TSP问题(SA_TSP.m)
    运用模拟退火算法解决TSP问题可解决数学建模中的旅行商、距离优化问题
    2021-05-06下载
    积分:1
  • 司守奎数学建模与算法应用第二版源程序
    【实例简介】本实例是司守奎老师建模指导书第二版所有源程序
    2021-07-28 00:31:06下载
    积分:1
  • 于混合算法的车间调度问题
    使用遗传算法、粒子群算法和模拟退火算法对车间调度问题(FT10x10)进行分析,可运行,亲测有效。压缩包内为全部程序,包含甘特图。
    2020-12-09下载
    积分:1
  • 权重确定方法归纳.docx
    权重确定方法归纳多指标综合评价是指人们根据不同的评价目的,选择相应的评价形式 据此选择多个因素或指标,并通过一定的评价方法将多个评价因素或指标转化为能反映评价对象总体特征的信息,其中评价指标与权重系数确定将直接影响综合评价的结果。按照权数产生方法的不同多指标综合评价方法可分为主观赋权评价法和客观赋权评价法两大类,其中主观赋权评价法采取定性的方法由专家根据经验进行主观判断而得到权数,然后再对指标进行综合评价,如层次分析法、综合评分法、模糊评价法、指数加权法和功效系数法等。客观赋权评价法则根据指标之间的相关关系或各项指标的变异系数来确定权数进行综合评价,如熵值法、神经网络分析法、TOPSIS法、灰色关联分析法、主成分分析法、变异系数法等。两种赋权方法特点不同,其中主观赋权评价法依据专家经验衡量各指标的相对重要性,有一定的主观随意性,受人为因素的干扰较大,在评价指标较多时难以得到准确的评价。客观赋权评价法综合考虑各指标间的相互关系,根据各指标所提供的初始信息量来确定权数,能够达到评价结果的精确 但是当指标较多时,计算量非常大。下面就对当前应用较多的评价方法进行阐述。一、变异系数法(一)变异系数法简介变异系数法是直接利用各项指标所包含的信息,通过计算得到指标的权重。是一种客观赋权的方法。此方法的基本做法是:在评价指标体系中,指标取值差异越大的指标,也就是越难以实现的指标,这样的指标更能反映被评价单位的差距。例如,在评价各个国家的经济发展状况时,选择人均国民生产总值(人均GNP)作为评价的标准指标之一,是因为人均GNP不仅能反映各个国家的经济发展水平,还能反映一个国家的现代化程度。如果各个国家的人均GNP没有多大的差别,则这个指标用来衡量现代化程度、经济发展水平就失去了意义。由于评价指标体系中的各项指标的量纲不同,不宜直接比较其差别程度。为了消除各项评价指标的量纲不同的影响,需要用各项指标的变异系数来衡量各项指标取值的差异程度。各项指标的变异系数公式如下: 式中:是第项指标的变异系数、也称为标准差系数;是第项指标的标准差;是第项指标的平均数。各项指标的权重为: (二)案例说明例如,英国社会学家英克尔斯提出了在综合评价一个国家或地区的现代化程度时,其各项指标的权重的确定方法就是采用的变异系数法。案例:利用变异系数法综合评价一个国家现代化程度时的指标体系中的各项指标的权重。数据资料是选取某一年的数据,包括中国在内的中等收入水平以上的近40个国家的10项指标作为评价现代化程度的指标体系,计算这些国家的变异系数,反映出各个国家在这些指标上的差距,并作为确定各项指标权重的依据。其标准差、平均数数据及其计算出的变异系数等见表1-1。   表1-1      现代化水平评价指标的权重指标人均GNP农业占GDP的比重第三产业占GDP比重非农业劳动力比重城市人口比重人口自然增长率平均预期寿命成人识字率大学生占适龄人口比重每千人拥有医生总(美元)(%)(%)(%)(%)(%)(岁)(%)(%)(人)和平均数11938.49.35254.860.82669.7920.721472.63293.3436.5562.446—标准差7966.277.31612.940.1719.3390.83195.3759.0520.4771.314—变异系数0.6670.7820.2360.2060.2771.1530.0740.0970.560.5374.59权重0.1450.170.0510.0450.060.2510.0160.0210.1220.1171 计算过程如下:(1)先根据各个国家的指标数据,分别计算这些国家每个指标的平均数和标准差;(2)根据均值和标准差计算变异系数。即:这些国家人均GNP的变异系数为: 农业占GDP比重的变异系数: 其他类推。(3)将各项指标的变异系数加总: (4)计算构成评价指标体系的这10个指标的权重:人均GNP的权重: 农业占GDP比重的权重: 其他指标的权重都以此类推。(三)变异系数法的优点和缺点当由于评价指标对于评价目标而言比较模糊时,采用变异系数法评价进行评定是比较合适的,适用各个构成要素内部指标权数的确定,在很多实证研究中也多数采用这一方法。缺点在于对指标的具体经济意义重视不够,也会存在一定的误差。二、层次分析法(一)层次分析法概述人们在对社会、经济以及管理领域的问题进行系统分析时,面临的经常是一个由相互关联、相互制约的众多因素构成的复杂系统。层次分析法则为研究这类复杂的系统,提供了一种新的、简洁的、实用的决策方法。层次分析法(AHP法) 是一种解决多目标的复杂问题的定性与定量相结合的决策分析方法。该方法将定量分析与定性分析结合起来,用决策者的经验判断各衡量目标能否实现的标准之间的相对重要程度,并合理地给出每个决策方案的每个标准的权数,利用权数求出各方案的优劣次序,比较有效地应用于那些难以用定量方法解决的课题。(二)层次分析法原理层次分析法根据问题的性质和要达到的总目标,将问题分解为不同的组成因素,并按照因素间的相互关联影响以及隶属关系将因素按不同层次聚集组合,形成一个多层次的分析结构模型,从而最终使问题归结为最低层(供决策的方案、措施等)相对于最高层(总目标)的相对重要权值的确定或相对优劣次序的排定。层次分析法的特点是在对复杂的决策问题的本质、影响因素及其内在关系等进行深入分析的基础上,利用较少的定量信息使决策的思维过程数学化,从而为多目标、多准则或无结构特性的复杂决策问题提供简便的决策方法。尤其适合于对决策结果难于直接准确计量的场合。(三)层次分析法的步骤和方法 1. 建立层次结构模型利用层次分析法研究问题时,首先要把与问题有关的各种因素层次化,然后构造出一个树状结构的层次结构模型,称为层次结构图。一般问题的层次结构图分为三层,如图所示。最高层为目标层(O):问题决策的目标或理想结果,只有一个元素。中间层为准则层(C):包括为实现目标所涉及的中间环节各因素,每一因素为一准则,当准则多于9个时可分为若干个子层。最低层为方案层(P):方案层是为实现目标而供选择的各种措施,即为决策方案。一般说来,各层次之间的各因素,有的相关联,有的不一定相关联;各层次的因素个数也未必一定相同.实际中,主要是根据问题的性质和各相关因素的类别来确定。         层次分析法所要解决的问题是关于最低层对最高层的相对权重问题,按此相对权重可以对最低层中的各种方案、措施进行排序,从而在不同的方案中作出选择或形成选择方案的原则。2. 构造判断(成对比较)矩阵构造比较矩阵主要是通过比较同一层次上的各因素对上一层相关因素的影响作用.而不是把所有因素放在一起比较,即将同一层的各因素进行两两对比。比较时采用相对尺度标准度量,尽可能地避免不同性质的因素之间相互比较的困难。同时,要尽量依据实际问题具体情况,减少由于决策人主观因素对结果造成的影响。设要比较个因素对上一层(如目标层)的影响程度,即要确定它在中所占的比重。对任意两个因素和,用表示和对的影响程度之比,按1~9的比例标度来度量.于是,可得到两两成对比较矩阵,又称为判断矩阵,显然,因此,又称判断矩阵为正互反矩阵.比例标度的确定:取1-9的9个等级,取的倒数,1-9标度确定如下:= 1,元素与元素对上一层次因素的重要性相同;= 3,元素比元素略重要;= 5,元素比元素重要;= 7, 元素比元素重要得多;= 9,元素比元素的极其重要;,元素与的重要性介于与之间;,当且仅当。由正互反矩阵的性质可知,只要确定的上(或下)三角的个元素即可。在特殊情况下,如果判断矩阵的元素具有传递性,即满足则称为一致性矩阵,简称为一致阵.3. 层次单排序及一致性检验3.1相对权重向量确定(1)和积法取判断矩阵个列向量归一化后的算术平均值,近似作为权重,即类似地,也可以对按行求和所得向量作归一化,得到相应的权重向量。(2)求根法(几何平均法)将的各列(或行)向量求几何平均后归一化,可以近似作为权重,即(3)特征根法设想把一大石头分成个小块,其重量分别为,则将块小石头作两两比较,记的相对重量为,于是可得到比较矩阵显然,为一致性正互反矩阵,记,即为权重向量.且则这表明为矩阵的特征向量,且为特征根.事实上:对于一般的判断矩阵有,这里是的最大特征根,为对应的特征向量.将作归一化后可近似地作为的权重向量,这种方法称为特征根法。注:现有软件求得最大特征根与特征向量。3.2一致性检验通常情况下,由实际得到的判断矩阵不一定是一致的,即不一定满足传递性和一致性.实际中,也不必要求一致性绝对成立,但要求大体上是一致的,即不一致的程度应在容许的范围内.主要考查以下指标:(1)一致性指标:.(2)随机一致性指标:,通常由实际经验给定的,如表2-1。表2-1  随机一致性指标 (3)一致性比率指标:,当时,认为判断矩阵的一致性是可以接受的,则对应的特征向量可以作为排序的权重向量。此时其中表示的第个分量。4.计算组合权重和组合一致性检验(1)组合权重向量设第层上个元素对总目标(最高层)的排序权重向量为第层上个元素对上一层(层)上第个元素的权重向量为则矩阵是阶矩阵,表示第层上的元素对第层各元素的排序权向量.那么第层上的元素对目标层(最高层)总排序权重向量为或    对任意的有一般公式其中是第二层上各元素对目标层的总排序向量.(2)组合一致性指标设层的一致性指标为,随机一致性指标为则第层对目标层的(最高层)的组合一致性指标为组合随机一致性指标为组合一致性比率指标为当时,则认为整个层次的比较判断矩阵通过一致性检验.(四)案例说明实例:人们在日常生活中经常会碰到多目标决策问题,例如假期某人想要出去旅游,现有三个目的地(方案):风光绮丽的杭州( )、迷人的北戴河()和山水甲天下的桂林()。假如选择的标准和依据(行动方案准则)有5个景色,费用,饮食,居住和旅途。1.建立层次结构模型 目标层   准则层   2.构造判断矩阵      构造所有相对于不同准则的方案层判断矩阵(1)相对于景色   (2)相对于费用    (3)相对于居住    (4)相对于饮食      (5)相对于旅途   3. 层次单排序及一致性检验3.1用matlab求得判断矩阵的最大特征根与特征向量:,对应于的正规化的特征向量为:判断矩阵的最大特征值与特征向量判断矩阵的最大特征值与特征向量判断矩阵的最大特征值与特征向量判断矩阵的最大特征值与特征向量判断矩阵的最大特征值与特征向量4.一致性检验对于判断矩阵进行一致性检验:查表知平均随机一致性指标RI,从而可检验矩阵一致性:同理,对于第二层次的景色、费用、居住、饮食、旅途五个判断矩阵的一致性检验均通过。利用层次结构图绘出从目标层到方案层的计算结果: 5.层次总排序各个方案优先程度的排序向量为:决策结果是首选旅游地为 其次为,最后为。(五)优点与缺点人们在进行社会的、经济的以及科学管理领域问题的系统分析中,面临的常常是一个由相互关联、相互制约的众多因素构成的复杂而往往缺少定量数据的系统。层次分析法为这类问题的决策和排序提供了一种新的、简洁而实用的建模方法。在应用层次分析法研究问题时,遇到的主要困难有两个:(i)如何根据实际情况抽象出较为贴切的层次结构;(ii)如何将某些定性的量作比较接近实际定量化处理。层次分析法对人们的思维过程进行了加工整理,提出了一套系统分析问题的方法,为科学管理和决策提供了较有说服力的依据。但层次分析法也有其局限性,主要表现在:(i)它在很大程度上依赖于人们的经验,主观因素的影响很大,它至多只能排除思维过程中的严重非一致性,却无法排除决策者个人可能存在的严重片面性。(ii)当指标量过多时,对于数据的统计量过大,此时的权重难以确定。AHP 至多只能算是一种半定量(或定性与定量结合)的方法。三、熵值法(一)熵值法的原理在信息论中,熵是对不确定性的一种度量。信息量越大,不确定性就越小,熵也就越小;信息量越小,不确定性越大,熵也越大。根据熵的特性,我们可以通过计算熵值来判断一个事件的随机性及无序程度,也可以用熵值来判断某个指标的离散程度,指标的离散程度越大,该指标对综合评价的影响越大。(二)算法实现过程1.数据矩阵   其中为第个方案第个指标的数值。2. 数据的非负数化处理  由于熵值法计算采用的是各个方案某一指标占同一指标值总和的比值,因此不存在量纲的影响,不需要进行标准化处理,若数据中有负数,就需要对数据进行非负化处理。此外,为了避免求熵值时对数的无意义,需要进行数据平移:对于越大越好的指标:   对于越小越好的指标:为了方便起见,仍记非负化处理后的数据为3.计算第项指标下第个方案占该指标的比重4.计算第项指标的熵值   5.计算第项指标的差异系数。对于第项指标,指标值的差异越大,对方案评价的作用越大,熵值就越小。6.求权数7.计算各方案的综合得分(三)熵值法的优缺点熵值法是根据各项指标值的变异程度来确定指标权数的,这是一种客观赋权法,避免了人为因素带来的偏差,但由于忽略了指标本身重要程度,有时确定的指标权数会与预期的结果相差甚远,同时熵值法不能减少评价指标的维数。四、主成分分析法(一)主成分分析法简介  主成分分析是将多个变量通过线性变换以选出较少个数重要变量的一种多元统计分析方法,又称主分量分析。在实际问题中,为了全面分析问题,往往提出很多与此有关的变量(或因素),因为每个变量都在不同程度上反映这个课题的某些信息。但是,在用统计分析方法研究这个多变量的课题时,变量个数太多就会增加课题的复杂性。人们自然希望变量个数较少而得到的信息较多。在很多情形,变量之间是有一定的相关关系的,当两个变量之间有一定相关关系时,可以解释为这两个变量反映此课题的信息有一定的重叠。  主成分分析是对于原先提出的所有变量,建立尽可能少的新变量,使得这些新变量是两两不相关的,而且这些新变量在反映问题的信息方面尽可能保持原有的信息。信息的大小通常用离差平方和或方差来衡量。(二)主成分分析原理主成分分析是数学上对数据降维的一种方法。其基本思想是设法将原来众多的具有一定相关性的指标,,…,(比如个指标),重新组合成一组较少个数的互不相关的综合指标来代替原来指标。那么综合指标应该如何去提取,使其既能最大程度的反映原变量所代表的信息,又能保证新指标之间保持相互无关(信息不重叠)。设表示原变量的第一个线性组合所形成的主成分指标,即,由数学知识可知,每一个主成分所提取的信息量可用其方差来度量,其方差越大,表示包含的信息越多。常常希望第一主成分 所含的信息量最大,因此在所有的线性组合中选取的应该是,,…,的所有线性组合中方差最大的,故称为第一主成分。如果第一主成分不足以代表原来个指标的信息,再考虑选取第二个主成分指标,为有效地反映原信息,已有的信息就不需要再出现在中,即与要保持独立、不相关,用数学语言表达就是其协方差,所以是与不相关的,,…,的所有线性组合中方差最大的,故称为第二主成分,依此类推构造出的、、……、为原变量指标,,…,第一、第二、……、第m个主成分。(三)利用主成分确定权重现举例说明: 假设我们对反映某卖场表现的4项指标(实体店、信誉、企业形象、服务)进行消费者满意度调研。调研采取4级量表,分值越大,满意度越高。现回收有效问卷2000份,并用SPSS录入了问卷数据。部分数据见下图。图4-1 主成分确定权重示例数据(部分)  1、操作步骤: Step1:选择菜单:分析——降维——因子分析 Step2:将4项评价指标选入到变量框中 Step3:设置选项,具体设置如下:  2、 输出结果分析 按照以上操作步骤,得到的主要输出结果为表1——表3,具体结果与分析如下:表4-1  KMO 和 Bartlett 的检验      表3是对本例是否适合于主成分分析的检验。KMO的检验标准见图2。图4-2   KMO检验标准   从图3可知,本例适合主成分分析的程度为‘一般’,基本可以用主成分分析求权重。表4-2  解释的总方差      从表4可知,前2个主成分对应的特征根>1,提取前2个主成分的累计方差贡献率达到94.513% ,超过80%。因此前2个主成分基本可以反映全部指标的信息,可以代替原来的4个指标(实体店、信誉、企业形象、服务)。表4-3   成份矩阵      从表3可知第一主成分与第二主成分对原来指标的载荷数。例如,第一主成分对实体店的载荷数为0.957。 3、确定权重    指标权重等于以主成分的方差贡献率为权重,对该指标在各主成分线性组合中的系数的加权平均的归一化, 因此,确定指标权重需要知道三点:①指标在各主成分线性组合中的系数②主成分的方差贡献率③指标权重的归一化。 (1)指标在不同主成分线性组合中的系数 用表4-3中的载荷数除以表4-2中第1列对应的特征根的开方。 例如,在第一主成分 的线性组合中,实体店的=0.957/(2.775)1/2 ≈0.574。 按此方法,基于表4-3和表4-2的数据,在excel中可分别计算出各指标在两个主成分线性组合中的系数(见下图)。图4-3 各指标在两个主成分线性组合中的系数     由此得到的两个主成分线性组合如下: (2)主成分的方差贡献率 表4中“初始特征值”的“方差%”表示各主成分方差贡献率,方差贡献率越大则该主成分的重要性越强。  因此,方差贡献率可以看成是不同主成分的权重。 由于原有指标基本可以用前两个主成分代替,因此,指标系数可以看成是以这两个主成分方差贡献率为权重,对指标在这两个主成分线性组合中的系数做加权平均。 按上述思路,实体店这个指标的系数为:  这样,我们可以用excel计算出所有指标的系数(见下图)图4-4 所有指标在综合得分模型中的系数 由此得到综合得分模型为:(3)指标权重的归一化    由于所有指标的权重之和为1,因此指标权重需要在综合模型中指标系数的基础上归一化 。    图4-5 指标权重的确定 上图显示了我们基于主成分分析,最终所得到的指标权重。(四)优点和缺点主成分分析法具有处理多个具有一定相关性变量的能力,因此,主成分分析法使用与任何领域的多变量分析。主成分分析法对于各评价指标排序,可以直观的分析出起决定性作用和对综合评价结果影响较大的评价指标。但是,它对于主要指标的依赖性过大,对研究所选取指标体系是一个考验。  
    2020-06-12下载
    积分:1
  • matlab车牌识别代码
    matlab车牌识别代码
    2021-05-06下载
    积分:1
  • 音周期估计实验
    【实例简介】有具体实例 和完整代码
    2021-06-11 00:31:16下载
    积分:1
  • 决策树(matlab源码+文档)
    【实例简介】画出决策树
    2021-11-20 00:33:04下载
    积分:1
  • 696518资源总数
  • 104269会员总数
  • 42今日下载