相信各位小伙伴在看到运筹学时,第一反应肯定是:

前面我们聊过,如何学习启发式算法。那么今天就聊聊如何学习精确式算法吧。

和启发式算法不同的是,精确式算法不仅需要数学基础,还需要运筹基础,代码基础等。

所以相对来说精确式算法相对会难一些。但是当你学完整个知识体系,会发现,其实精确式算法也差不多是那些套路。而且比启发式算法更加固定。学习顺序可参照以下:

运筹学基础

首先需要学习的是运筹学基础,包括整数规划、单纯型法、混合整数规划、建模思想、常见的运筹学问题以及算法等。

推荐书籍:Operations Research Applications and Algorithms, Wayne L. Winston(书籍下载请在后台留言【运筹学书籍】不包括【】即可下载)。可参考的公众号文章(可按顺序学习)。

基础部分:

  1. 运筹学教学|十分钟快速掌握单纯形法(附C++代码及算例)

  2. 运筹学教学|修正单纯形法(revised simplex algorithm)代码分享及详细注释

  3. 运筹学教学|运输问题代码分享(C++代码及详细注释)

  4. 运筹学教学 | 十分钟教你求解分配问题(assignment problem)

  5. 运筹学教学 | 十分钟快速掌握最短路算法(附C++代码及算例)

  6. 运筹学教学 | 十分钟快速掌握最大流算法(附C++代码及算例)

  7. 基础算法 | 关于图论中最小生成树(Minimum Spanning Tree)那些不可告人的秘密

进阶部分:

  1. 运筹学教学|动态规划例题分析(一)

  2. 干货|十分钟教你用动态规划算法解Travelling Salesman Problem(TSP)问题,附代码……

求解器Solver

有了基础知识以后,就可以做更深入的学习。首先要熟悉至少一款商业求解器的使用以便能方便快速地对数学模型进行检验,包括后面学习更高级的精确算法,也要用到求解器。可参考的文章如下:

  1. 干货 | 运筹学、数学规划、离散优化求解器大PK,总有一款适合你

  2. MOSEK,一个专注而卓越的优化求解器(一)

  3. 干货 | 关于数学规划求解器lp_solve 这里有份超全面超详细的教程,你离lpsolve高手只有一步之遥!

  4. 干货 | 嘿,双11快递,这里有份数学规划求解器SCIP超详细的使用教程,请你收下

  5. 干货 | cplex介绍、下载和安装以及java环境配置和API简单说明

  6. 干货 | JAVA调用cplex求解一个TSP模型详解

  7. 干货|十分钟快速掌握CPLEX求解VRPTW数学模型(附JAVA代码及CPLEX安装流程)

精确式算法-基础

有了运筹学的基础+求解器的熟悉使用,就可以开始精确式算法的学习了。这部分的算法包括最基础的branch and bound,column generation,branch and price,branch and cut,branch price and cut等等。可参考的文章如下:

  1. 干货 | 10分钟带你全面掌握branch and bound(分支定界)算法-概念篇

  2. 干货 | 10分钟搞懂branch and bound算法的代码实现附带java代码

  3. 干货 | 10分钟教你用branch and bound(分支定界)算法求解TSP旅行商问题

  4. 运筹学教学|分枝定界求解旅行商问题

  5. 干货 | 10分钟带你彻底了解Column Generation(列生成)算法的原理附java代码

  6. 运筹学教学|列生成(Column Generation)算法(附代码及详细注释)

  7. 干货 | 从下料问题看整数规划中的列生成方法(Python2.7调用gurobi进行求解,附代码)

  8. 干货 | 10分钟带你掌握branch and price(分支定价)算法超详细原理解析

  9. 干货 | 10分钟掌握branch and cut算法原理附带C++求解TSP问题代码

  10. 运筹学教学|快醒醒,你的熟人拉格朗日又来了!!

精确式算法-进阶

学习了各种算法的原理和部分实现代码后,可以进一步学习这些算法如何应用到具体问题中的,以及一些更高级的技术,参考的文章如下:

  1. 运筹学教学|分支定界法解带时间窗的车辆路径规划问题(附代码及详细注释)

  2. 干货 | 10分钟教你使用Column Generation求解VRPTW的线性松弛模型

  3. 干货 | VRPTW子问题ESPPRC的介绍及其求解算法的C++代码

  4. 干货 | 求解VRPTW松弛模型的Column Generation算法的JAVA代码分享

  5. 运筹学教学|Benders decomposition(一)技术介绍篇

  6. 运筹学教学|Benders decomposition (二)应用实例及算法实现(附源代码及详细的代码注释)

Additional

此部分当作扫盲和了解:

  1. 用单纯形法求解线性规划(linear programming)问题,速度到底有多快呢?

  2. 线性规划&整数规划求解速度PK

  3. 利用动态规划求解旅行商问题(Travelling Salesman Problem)时空复杂度分析以及相关实验验证

目前该提纲是基于公众号已有文章进行整理的,可能还会有很多关于这方面知识没有涉及。也随时欢迎大家指正。毕竟小编也只是做了一个暑假这方面的研究而已。

最后的最后,祝大家学有所成。

运筹学从何学起?如何快速入门精确式算法?相关推荐

  1. 学Mysql怎样快速入门?

    学Mysql怎样快速入门? 前言 MySQL是一个关系型数据库管理系统,由瑞典MySQL AB 公司开发,目前属于 Oracle 旗下产品. MySQL 是最流行的关系型数据库管理系统之一,在 WEB ...

  2. 视频教程-做游戏学Python-Python语言快速入门-Python

    做游戏学Python-Python语言快速入门 20年软件项目开发管理经验 工信部人才交流中心特聘专家讲师 日本U-CAN在线教育特聘主任讲师 国家十二·五规划软件工程教材作者(书:清华大学出版社出版 ...

  3. 计算机排版学些什么软件,一步一步学排版 InDesign快速入门技巧

    1建立版面.排版 InDesign的操作通常分为四个步骤:建立版面.排版.调整和修改.输出.本文将带给你相关的快速入门技巧. 一.建立版面 1)选文件菜单-新建-文档. 2)在出现的对话框中进行设定: ...

  4. 2020年 TPAMI长文, Ball k-means:一种无界的快速自适应精确k-means算法

    k-means是人工智能领域最常用的快速基础算法之一,广泛用于聚类.数据预分析及与改进其他机器学习算法等.为了进一步提高k-means算法效率,很多优秀的k-means算法通过对每个样本维持一个上下界 ...

  5. Ball k-means:一种无界的快速自适应精确k-means算法

    k-means是人工智能领域最常用的快速基础算法之一,广泛用于聚类.数据预分析及与改进其他机器学习算法等.为了进一步提高k-means算法效率,很多优秀的k-means算法通过对每个样本维持一个上下界 ...

  6. python学成需要多久-小白学python怎么快速入门?多久能完成一个项目?

    首先我们可以来看一下学完Python可以做什么? 1.网站后端程序员:使用它搭建网站,后台服务比较容易维护; 2.自动化运维:自动化处理大量的运维任务; 3.数据分析师:快速开发快速验证,分析数据得到 ...

  7. php laravel 入门教程,跟我学Laravel之快速入门

    安装 Laravel框架使用 Composer 执行安装和依赖管理.如果还没有安装的话,现在就开始 安装 Composer 吧. 安装Composer之后,你就可以通过命令行使用如下命令安装Larav ...

  8. java速学_5分钟快速入门Java,不看真的可惜了

    你好,世界! 源代码组织方式 Java程序由package+class组成,package对应目录的相对路径,class对应文件,如 关于class有如下几点规则: 文件的名字必须和class的名字一 ...

  9. a - 数据结构实验之串一:kmp简单应用_中高级面试必备:快速入门数据结构和算法

    一 前言 1 为什么要学习算法和数据结构? 解决特定问题. 深度优化程序性能的基础. 学习一种思想:如何把现实问题转化为计算机语言表示. 2 业务开发要掌握到程度? 了解常见数据结构和算法,沟通没有障 ...

  10. 快速入门数据结构和算法

    简介:有哪些常见的数据结构?基本操作是什么?常见的排序算法是如何实现的?各有什么优缺点?本文简要分享算法基础.常见的数据结构以及排序算法,给同学们带来一堂数据结构和算法的基础课. 一 前言 1 为什么 ...

最新文章

  1. console线驱动安装_centos7安装docker
  2. 使用Go语言访问JSON数据(gojsonq)
  3. oracle:自定义函数
  4. uml 工具_【推荐】灵活而丰富UML建模工具Enterprise Architect!
  5. Asp.net MVC中的ViewData与ViewBag
  6. Java Instanceof
  7. 【C++深度剖析教程5】C++中类的静态成员函数
  8. 关于电脑的基础单词笔记
  9. 我,大学没毕业,在OpenAI搞AI,想教教你如何提升“研究品味”
  10. typedef 的四个用途和两大陷阱
  11. 边缘计算是流行词还是风口?开发者怎样选开源项目?
  12. 为什么公司要对员工的薪资保密?
  13. 杂项-协议-HTTP:GET/POST/PUT/DELETE/INPUT/TRACE/OPTIONS/HEAD方法
  14. Java JSP技术详解:(一)JSP 简介
  15. 必备电子技术经典资料汇总:基础入门篇1.6G
  16. c语言程序设计的删除函数,详解C语言中的rename()函数和remove()函数的使用方法
  17. EtherCAT主站SOEM源码解析----ecx_siiPDO()
  18. 自定义悬浮球,提供一些快捷操作。比如一键静音,一键锁频,一键截屏,一键回桌面,手电筒等
  19. 什么降风噪最好的蓝牙耳机?2021主动降噪耳机推荐
  20. Codeforces Global Round 15 ABCD

热门文章

  1. python bin文件读写_Python读写文件
  2. 项目部署到tomcat出现js中文乱码解决方案
  3. Appium原理分析
  4. 嵌入式开发之交叉编译工具链制作
  5. app接口制作简单流程
  6. 微信后台红包系统架构设计与最佳实践
  7. Ubuntu22.04运行网易云音乐错误
  8. 《人人都是产品经理》读书笔记
  9. 梅特勒托利多xk3124电子秤说明书_梅特勒托利多电子秤校正标定方法
  10. axure 原型图 基础知识介绍