目录

1、引言

2、常见模型与算法

3、问题描述

4、遗传算法

5、仿真结果


1、引言

运筹学问题,包括任务规划、分配、决策,是数学建模比赛中常见的问题(参见2018年“高教杯”数学建模B题、2019年美赛MCM B题)。今天小编就和大家分享一下数学建模中运筹学问题的常见解决方法与技巧。本文相对适用于刚刚入门的小白同学以及对于数学建模有些接触的同学,当然也欢迎大神们交流讨论。

本文主要概述一下比赛中可能出现的问题,同时分享了遗传算法在运筹学问题中的应用。

另外小编也整理了一些参考文献,也是数学建模比赛时非常有用的参考,论文里面加上一定能让你脱颖而出的哦,想要的话请留言哦。

2、常见模型与算法

首先是运筹学中一些常见的模型与算法。大家如果不感兴趣可以直接跳到第二部分哈。常见的运筹学模型包括车辆路由问题(Vehicle Routing Problem,VRP)、旅行商问题(Travelling Salesmen Problem,TSP)及多旅行商问题(Multiple Travelling Salesmen Problem,MTSP)、网络优化问题(Network Flow Optimization,NFO)、混合整数线性规划(Mixed Integer Linear Programming,MILP)、协同多任务分配问题(Cooperative Multiple Task Assignment Problem,CMTAP)等。

对于单一类型的运筹学问题,例如最大流、最短路径问题,常常使用VRP、TSP 和 MTSP 模型。针对具体的任务需求以及任务约束,常常需要在基本的VRP、TSP 模型的基础上建立相应的扩展模型,如考虑时间窗的 VRPTW 和 TWMTSP 模型。

NFO 以及动态 NFO 模型最早产生于邮递行业的分配。其受实际物流网的启发,以任务执行者为供应商,将待分配、执行的任务作为网格中的物流,以任务代价作为网络流中流动的代价,建立商业供需网格并通过最小化网络流的总代价实现多任务的协同分配。

MILP 模型和 CMTAP 模型主要适用于任务关系复杂、多种约束下的运筹学问题。MILP 模型中问题的是由二进制变量和连续变量共同描述的,可以有效解决任务分配中的约束问题,CMTAP 是一种建立在 NFO 和 MILP 模型基础上的组合优化模型,能够处理不同任务间的时序关系与促进关系,广泛应用于多类型运筹学问题。

运筹学问题在数学上是一类组合优化问题,求解这类组合优化问题的方法包括经典整数规划与现代智能算法。分支定界方法(Branch and Bound,BNB)是任务分配中应用最广泛的一种经典整数规划方法。BNB通过分枝-定界-剪枝,逐步缩小搜索区域,对于小规模的问题可以在较短时间内获得满意的可行解。然而由于任务分配问题的NP(Non-deterministic Polynomial)特性,随着问题约束以及维度的增加,以BNB为首的经典整数规划算法难以获得较好的可行解。相比于确定性的经典算法,具有概率特性的智能优化算法在高维问题上体现出了一定的优势。现代智能算法包括遗传算法(Genetic Algorithm,GA)、差分进化(Differential Evolution Algorithm,DEA)等进化类算法和粒子群优化(Particle Swarm Optimization,PSO)、蚁群算法等群智能算法。本文主要讲解一下遗传算法在运筹学问题中的应用,当然一些局部优化算法也是可以使用的,而且在比赛时使用一些局部算法会有意想不到的惊喜,本文暂且不表,放到下一次进行讲解。

3、问题描述

以一个任务分配为例,任务分配的优化变量通常为整数,在实际建模过程中通常有两种表示:

一是采用分配序号向量:

二是采用0-1分配矩阵:

同时对于任务分配问题,还需要有优化的目标,通常为时间最优或者成本最少。

4、遗传算法

遗传算法是一种全局优化方法,理论上具备寻找到全局最优解的能力。通常使用遗传算法需要对问题变量进行编码,由于任务分配问题本身决策变量就是一串整数,因此可以直接用决策变量作为基因编码进行优化。

5、仿真结果

下面给出一个旅行商问题的仿真计算。假设地图上有50座城市,一个商人需要遍历所有城市并最终回到起点,优化目标为总距离最短。这个问题的决策变量可以由1到50的排列序列的向量表示,该向量可以直接作为遗传算法的基因编码。在仿真中,城市位置随机选取,种群个数为60个,迭代次数为10000次。

下图给出了50个城市的坐标位置:

使用遗传算法迭代过程:

最终优化结果:

以及使用遗传算法迭代时的适应度曲线:

使用matlab运算大概只需要几秒钟就能算出啦。

数学建模之运筹学问题相关推荐

  1. 数学建模、运筹学之非线性规划

    数学建模.运筹学之非线性规划 一.最优化问题理论体系 二.梯度下降法--无约束非线性规划 三.牛顿法--无约束非线性规划 四.只包含等值约束的拉格朗日乘子法 五.不等值约束非线性规划与KKT条件 一. ...

  2. 数学建模、运筹学之整数规划(原理、例题、代码)

    数学建模.运筹学之整数规划(原理.例题.代码) 一.何为整数规划? 二.整数规划与线性规划 三.分枝定界法 四.0-1整数规划 一.何为整数规划? 整数规划具有深远的实际应用价值,因为现实生活中的规划 ...

  3. 数学建模workflow

    本人原创,转载请注明出处:https://blog.csdn.net/tyhj_sf/article/details/85227117 0. 引言 数学建模过程是一个创造性地将数学知识直接运用于生产实 ...

  4. 数学建模优化模型简单例题_数学建模之优化模型:存储模型

    点击上方「蓝字」关注我们 最近,为申报市级精品课程,我为我校"数学建模与科学计算"课程录制了讲课视频,下面是3.1节优化模型的第一个例子:存储模型.敬请大家批评指正! 优化模型是数 ...

  5. 数学建模c语言仿真软件,数学建模十五大经典数学模型

    数学建模十五大经典数学模型 1.灰色预测 基于灰色建模理论的灰色预测法,按照其预测问题的特征,可分为五种基本类型,即数列预测.灾变预测.季节灾变预测.拓扑预测和系统综合预测.这五种类型的预测方法,都是 ...

  6. 【数学建模】线性规划模型MATLAB求解(最优化)

    文章目录 一.算法介绍 二.适用问题 三.算法总结 1.可以转化为线性规划的问题 四.应用场景举例 1. 例1.1: 2. 解: 2. 例1.2: 2. 解: 五.MATLAB操作 六.实际案例(投资 ...

  7. Python小白的数学建模课-07.选址问题

    选址问题是要选择设施位置使目标达到最优,是数模竞赛中的常见题型. 小白不一定要掌握所有的选址问题,但要能判断是哪一类问题,用哪个模型. 进一步学习 PuLP工具包中处理复杂问题的字典格式快捷建模方法. ...

  8. Python小白的数学建模课-05.0-1规划

    0-1 规划不仅是数模竞赛中的常见题型,也具有重要的现实意义. 双十一促销中网购平台要求二选一,就是互斥的决策问题,可以用 0-1规划建模. 小白学习 0-1 规划,首先要学会识别 0-1规划,学习将 ...

  9. 亚太地区数学建模优秀论文_数学建模美赛强势来袭!

    01 美赛,即美国大学生数学建模竞赛(MCM/ICM)又要来啦!赛题内容涉及经济.管理.环境.资源.生态.医学.安全.未来科技等众多领域.竞赛要求三人(本科生)为一组,在四天时间内,就指定的问题完成从 ...

最新文章

  1. 滤波、漫水填充、图像金字塔、图像缩放、阈值化
  2. ReactiveCocoa初步
  3. python的函数式编程_Python函数式编程-概念理解,python
  4. 扩展java.lang.Thread类
  5. 前端学习(3196):虚拟dom和真实dom
  6. linux下u盘病毒msdos,浅谈U盘病毒——MS-DOS.com 以及做最便民的杀毒软件
  7. 记一次网络访问故障排查
  8. php parse_url,pathinfo,basename函数
  9. git gc 的使用
  10. 马尔科夫链(Markov Chain),机器学习和人工智能的基石
  11. 中兴机顶盒服务器地址大全,中兴机顶盒网络设置无线路由器教程
  12. 微分方程求解二(偏微分方程求解)
  13. 使用 Python 全栈打造淘宝客微信机器人(上)
  14. nodeJS中express+busboy实现文件上传
  15. Linux下使用crontab来执行定时任务计划----执行每晚12点多执行移动log日志文件操作
  16. 数说CS|中国人民大学高瓴人工智能学院保研生源大起底!
  17. 计算机语音输入软件,语音输入法_语音输入法电脑版_语音输入法哪个好【最新】-太平洋电脑网...
  18. 怎么成为解决问题的高手
  19. 2021.01.05丨根据基因名称拼接表达量与相关注释
  20. 《痞子衡嵌入式半月刊》 第 57 期

热门文章

  1. 脑电信号特征提取算法c语言_应用深度学习EEGNet来处理脑电信号
  2. mysql命令行查看表的触发器_Mysql事项,视图,函数,触发器命令(详解)
  3. python编写ftp客户端_用Python写FTP客户端程序
  4. java project 部署_关于Java Project项目在Linux下部署步骤及注意事项
  5. Mybatis源码解析-sql执行
  6. 在PPT的时候,发现用Python十几行代码就可以实现Logo换色
  7. 化工热力学重修补考第二章重点内容
  8. 二十、预处理CSS的LESS
  9. 七十八、 回溯法解决八皇后问题
  10. 杭州内推 | 阿里巴巴达摩院自然语言基础研究组招聘研究型实习生