建模学习资料汇总(基于2017年十四届研究生数学建模A题(西安理工大学10700045))。

2017年十四届研究生数学建模A题(西安理工大学10700045)以下是所用的算法

数学建模中十大算法实现步骤与代码 - CSDN博客  https://blog.csdn.net/lemaden520/article/details/77931930

数学建模算法总结(一) - CSDN博客 https://blog.csdn.net/sanganqi_wusuierzi/article/details/54800341

数学建模算法总结(二) - CSDN博客 https://blog.csdn.net/sanganqi_wusuierzi/article/details/54801723

数学建模算法总结(三) - CSDN博客 https://blog.csdn.net/sanganqi_wusuierzi/article/details/54802355

数学建模常见的综合评价方法及预测方法 https://blog.csdn.net/sanganqi_wusuierzi/article/details/54800283

数学建模四大模型总结 - CSDN博客 https://blog.csdn.net/qq_27848507/article/details/52160863

16种常用的数据分析方法汇总 - CSDN博客 https://blog.csdn.net/anxixiaomu/article/details/69075286

数学建模算法总结 - 简书 https://www.jianshu.com/p/7b4a86000a21?from=groupmessage

贪心算法、蚁群算法、遗传算法、模拟退火算法介绍 - CSDN博客 https://blog.csdn.net/u010159842/article/details/67639262

数学建模学习笔记 - CSDN博客 https://blog.csdn.net/sanganqi_wusuierzi/article/details/54802718

《数学建模竞赛入门与提高》读书笔记 - CSDN博客 https://blog.csdn.net/sanganqi_wusuierzi/article/details/54800168

问题一

(1)(非线性规划模型)贪心算法

贪心算法思想 - nba76ers - 博客园   https://www.cnblogs.com/foreverking/articles/2349540.html

贪心算法基本思想和典型例题 - CSDN博客   https://blog.csdn.net/fbz123456/article/details/51072736

MATLAB-用贪心算法模拟出随机产生的20个点间的最短路径   https://blog.csdn.net/wg_rui/article/details/80393050

贪心算法的基本思想是找出整体当中每个小的局部的最优解,并且将所有的这些局部最优解合起来形成整体上的一个最优解。因此能够使用贪心算法的问题必须满足下面的两个性质:

        1.整体的最优解可以通过局部的最优解来求出;

        2.一个整体能够被分为多个局部,并且这些局部都能够求出最优解。使用贪心算法当中的两个典型问题是活动安排问题和背包问题

      在对问题求解时,总是作出在当前看来是最好的选择。也就是说,不从整体上加以考虑,它所作出的仅仅是在某种意义上的局部最优解(是否是全局最优,需要证明)。

特别注意: 若要用贪心算法求解某问题的整体最优解,必须首先证明贪心思想在该问题的应用结果就是最优解!!

以经典的活动安排为例:

      1、若A是E的最优解,那么E-A 也是问题的最优解,在余下的问题里,继续拿最早结束的;

     2、拿可以开始的最早结束。(所以要按结束时间排序一次,然后把可以开始的选择上,然后继续向后推)

    贪心子结构是独立的(往往用标志判断而已),不同于动态规划(后面每一边的计算要用到前一步的值,另外开辟空间来保存)

贪心算法的基本步骤 :

1、从问题的某个初始解出发。

2、采用循环语句,当可以向求解目标前进一步时,就根据局部最优策略,得到一个部分解,缩小问题的范围或规模。

(while 能朝给定总目标前进一步 do
   求出可行解的一个解元素;)

3、将所有部分解综合起来,得到问题的最终解。

选择能产生问题最优解的最优度量标准是使用贪心法的核心问题。

如最经典的活动安排问题,按结束时间从小到大排序,这样找出第一个节目后,剩下的节目已经是最safe的子结构了,再从子结构中最早结束但又不和上一次观看的节目有冲突的节目

算法复习笔记(分治法、动态规划、贪心算法) - CSDN博客  https://blog.csdn.net/IT_moshang/article/details/80398597

(2)(线性规划模型)禁忌搜索算法

禁忌搜索算法(Tabu Search)求解TSP_hellosmu_新浪博客 http://blog.sina.com.cn/s/blog_9de40b570102whnz.html

算法思路:

(1)随机生成某一初始解,并计算出该初始解的目标函数值,将初始可行解下的目标函数设为当前最优目标值。
(2)生成当前解的邻域解,计算出各邻域解的目标函数值。
(3)根据藐视准则来评价当前解的邻域解,更新当前解与禁忌表。若候选解的目标值优于当前的最优目标值,不管其禁忌属性如何,更新为当前最优解并更新禁忌表,否则判别该方案的两个客户交换是否被禁忌:若被禁忌,选取次优解后继续该步骤;若未被禁忌,更新该解为当前解并更新禁忌表。
(4)若所有的候选对象均被禁忌,则根据队列FIFO原则,对禁忌表中队头元素取消其禁忌属性;禁忌表的更新为将其中所有的禁忌对象的禁忌长度减1,禁忌长度为0的对象取消其禁忌属性。
(5)重复迭代指定步长的(2)~(4),输出最终结果。

——————————MATLAB代码见原网址——————————

问题二

(1)(均分法)(线性规划模型)模拟退火法

模拟退火算法——自我总结 - CSDN博客 https://blog.csdn.net/gmh1314/article/details/78883408

TSP_旅行商问题 - 模拟退火算法(三) - CSDN博客 https://blog.csdn.net/Houchaoqun_XMU/article/details/54578089

问题三

(线性规划模型)蚁群算法 ---狼群算法

狼群算法_百度百科  https://baike.baidu.com/item/%E7%8B%BC%E7%BE%A4%E7%AE%97%E6%B3%95/19460868

多配送中心车辆路径问题的狼群算法 - 豆丁网
http://www.docin.com/p-1747394333.html?docfrom=rrela

问题四

(线性规划模型)蚁群算法--(非线性规划模型)对结果小幅度优化

蚁群算法原理及Matlab实现 - CSDN博客 https://blog.csdn.net/kwame211/article/details/80347593

蚁群算法 matlab程序详细解答-菜鸟也能看懂 - CSDN博客 https://blog.csdn.net/wayjj/article/details/72809344

蚁群算法应用在旅行商问题 - CSDN博客    https://blog.csdn.net/coutamg/article/details/53021020

比较模拟退火算法和遗传算法相同点和不同点:

模拟退火的话进化是由参数问题t控制的,然后通过一定的操作产生新的解,根据当前解的优劣和温度参数t确定是否接受当前的新解。
遗传算法主要由选择,交叉,变异等操作组成,通过种群进行进化。
主要不同点是模拟退火是采用单个个体进行进化,遗传算法是采用种群进行进化。模拟退火一般新解优于当前解才接受新解,并且还需要通过温度参数t进行选择,并通过变异操作产生新个体。而遗传算法新解是通过选择操作进行选择个体,并通过交叉和变异产生新个体。
相同点是都采用进化控制优化的过程

终于找到大白话

------------为了找出地球上最高的山,一群有志气的兔子们开始想办法。 
(1)兔子朝着比现在高的地方跳去。他们找到了不远处的最高山峰。但是这座山不一定是珠穆朗玛峰。这就是爬山法,它不能保证局部最优值就是全局最优值。 
(2)兔子喝醉了。他随机地跳了很长时间。这期间,它可能走向高处,也可能踏入平地。但是,他渐渐清醒了并朝他踏过的最高方向跳去。这就是模拟退火。 
(3)兔子们知道一个兔的力量是渺小的。他们互相转告着,哪里的山已经找过,并且找过的每一座山他们都留下一只兔子做记号。他们制定了下一步去哪里寻找的策略。这就是禁忌搜索。 
(4)兔子们吃了失忆药片,并被发射到太空,然后随机落到了地球上的某些地方。他们不知道自己的使命是什么。但是,如果你过几年就杀死一部分海拔低的兔子,多产的兔子们自己就会找到珠穆朗玛峰。这就是遗传算法。

猜你喜欢

转载自blog.csdn.net/bellediao/article/details/81907835