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

2023-05-16

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

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

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

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

运筹学基础

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

推荐书籍: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)时空复杂度分析以及相关实验验证

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

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

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

运筹学从何学起?如何快速入门精确式算法? 的相关文章

  • Linux基础命令-chattr更改文件隐藏属性

    目录 前言 一 chattr命令介绍 二 语法及常用参数和模式 2 1 一样用help或man查看语法 2 2 常用参数 2 3 命令的模式 三 参考实例 3 1 给文件添加无法修改的权限 3 2 从指定文件移除隐藏属性 3 3 给目录添加
  • 四轴飞行器的串级PID参数整定经验

    串级PID即将两个PID控制器按照串联的方式连接起来 xff0c 前一个的输出作为后一个的输入两者共同控制控制对象 对于四旋翼来讲最普通的就是外环角度环 xff0c 内环角速度环 xff0c 两者怎么联系呢 xff0c 有的说法是 xff1
  • 嵌入式C语言复习——Day4

    嵌入式C语言复习 Day4 C语言函数的使用 1 函数概述 xff1a 一堆代码的集合 xff0c 用一个标签去描述它 xff0c 复用化 xff1b 函数三要素 xff1a 1 函数名 xff08 地址 xff09 2 输入参数 3 返回
  • C++基础复习——Day2

    类和对象 封装对象的初始化和清理构造函数和析构函数构造函数的分类及调用拷贝构造函数调用时机深拷贝与浅拷贝 C 43 43 对象模型和this指针友元运算符重载加号运算符重载左移运算符重载递增运算符重载赋值运算符重载 继承继承的基本用法继承方
  • 【模电基础复习】

    模拟电子技术 概念向 1 二极管杂质半导体的形成载流子是什么线性元件与非线性元件PN结形成原理及特性PN结的击穿二极管特性和主要参数二极管应用其他二极管类型 1 思考题为什么称空穴是载流子 xff1f 如何从PN结的电压电流特性方程来理解其
  • 【数电基础复习】

    数字电子技术 概念向 数制和码制数字量与模拟量位权十 二进制运算反码 补码奇偶校验 逻辑函数逻辑代数运算最小项和最大项逻辑函数化简方法 门电路CMOS门电路CMOS反相器CMOS电压传输特性和电流传输特性CMOS反相器静态输入特性和输出特性
  • 数据结构与算法——队列

    数据结构与算法 队列队列的链式存储结构创建一个队列入队列操作 出队列操作销毁一个队列 队列 队列 xff08 queue xff09 是只允许在一端进行插入操作 xff0c 而在另一端进行删除操作的线性表 与栈相反 xff0c 队列是一种先
  • 数据结构与算法——递归和分治

    数据结构与算法 递归斐波那契数列的递归实现 分治 递归 在现实当中 xff0c 我们只有在迫不得已的情况下才使用递归 xff0c 因为递归本身的效率并不理想 xff0c 但他的思想却值得我们留存在记忆之中 斐波那契数列的递归实现 使用递归实
  • 数据结构与算法——字符串

    数据结构与算法 字符串字符串的比较字符串的存储结构BF算法KMP算法 字符串 定义 xff1a 串 String 是由零个或多个字符组成的有限序列 xff0c 又名叫字符串 一般记为 s 61 a1a2a3 an n gt 61 0 串可以
  • 数据结构对齐规则(C语言)

    概念 xff1a 一些概念是为了容易理解 xff0c 自己定义的 1 基本对齐系数 xff1a 默认情况 xff1a 由编译器和操作系统决定 xff0c 一般来说32位系统对齐系数为4 xff08 字节 xff09 xff1b 64位系统对
  • ubuntu grace/xmgrace安装和使用

    grace是什么 xff1f Grace是 GRaphing Advanced Computation and Exploration of data 的缩写 它是在X Window系统和Motif下的所见即所得 xff08 所见及所得 x
  • OFDM多径传输时域和频域模型,以及循环前缀的作用

    1 多径信道传输模型 从信号传输的基本模型入手 考虑如下式所示的线性时不变系统 xff0c y t 61 h
  • 对单片机堆栈的理解

    看关于单片机方面的书籍的时候 xff0c 总是能看到别人说的一些堆栈啊什么的操作 xff0c 之前看到这个术语就直接跳过 xff0c 没想到去探究单片机内部的原理 但是最近课程学习微机原理这门课 xff0c 需要我们写汇编程序 xff0c
  • ROS 中package.xml文件详解01

    package xml文件时每一个ros包都要有的一个文件 xff0c 也是必须要包含的一个文件 1 最简单的xml文件 span class token operator lt span package format span class
  • 常用车载总线CAN、CAN FD、LIN、FlexRay、Ethernet介绍

    文章目录 前言 关于这些总线的详细介绍可分别参考如下 xff1a 一 为什么要这些总线二 车载总线的种类1 CAN1 1 CAN协议简介1 2 CAN协议特点 2 CAN FD2 1 CAN FD协议简介2 2 CAN FD协议特点 3 L
  • Leetcode刷题【8. 字符串转换整数】

    力扣第8题 xff0c 字符串转换整数 atoi 题目描述 xff1a 请你来实现一个 myAtoi string s 函数 xff0c 使其能将字符串转换成一个 32 位有符号整数 xff08 类似 C C 43 43 中的 atoi 函
  • Leetcode刷题【10. 正则表达式匹配】

    力扣第10题 xff0c 正则表达式匹配 题目描述 xff1a 给你一个字符串 s 和一个字符规律 p xff0c 请你来实现一个支持 和 的正则表达式匹配 匹配任意单个字符 匹配零个或多个前面的那一个元素 所谓匹配 xff0c 是要涵盖
  • Jetseon TX2 & IntelRealsense D435i & Python

    Jetseon TX2 amp IntelRealsense D435i amp Python amp Socket 一 IntelRealsense Python Wrapper GitHub 1 Installation pip ins
  • Unix 环境高级编程(一):开发环境

    Unix 环境高级编程 xff08 一 xff09 xff1a 开发环境 一 Unix操作系统二 Linux操作系统三 GNU编译工具 xff08 GCC xff09 1 简介2 基本用法3 文件后缀4 构建过程5 预处理指令6 预定义宏7
  • pyqt判断鼠标点击事件——左键按下、中键按下、右键按下、左右键同时按下等等

    我用自定义的myLabel类继承pyqt中的QLabel类 xff0c 然后在myLabel类中重载了鼠标按下事件函数 xff0c 在这一函数中实现了判断左右中键按下的代码 from PyQt5 import QtCore QtGui Qt

随机推荐

  • 无人驾驶学习笔记--路径规划(一)【Path Finding -- Hybrid A* 】

    无人驾驶学习笔记 路径规划 xff08 一 xff09 Path Finding Hybrid A 混合A算法 xff08 Hybrid A xff09 It uses continuous search space 连续空间It alwa
  • rosbag remp 以及/velodyne_packets和/velodyne_points的相互转换

    在采集velodyne雷达数据的时候 xff0c 本来想要采集的是 velodyne points topic xff0c 却不小心复制成了 velodyne packets topic 采完数据才发现不对 xff0c 一脸懵逼 赶紧查一下
  • 串口调试助手vc源程序及其详细编写过程

    目次 xff1a 1 建立项目 2 在项目中插入MSComm控件 3 利用ClassWizard定义CMSComm类控制变量 4 在对话框中添加控件 5 添加串口事件消息处理函数OnComm 6 打开和设置串口参数 7 发送数据 8 发送十
  • 18张含金量最高的大数据证书

    这年头从事数据行业很不赖 用人需求量之大达到创记录的水平 xff0c 薪资也水涨船高 几乎任何数据认证都会让你的薪资涨一涨 本文介绍了哪几大数据认证可以让你稳赚丰厚薪水 顶级数据技能拿顶薪 你是不是在想 xff1a 为获得那下一份数据认证付
  • XML解析——Java中XML的四种解析方式

    XML是一种通用的数据交换格式 它的平台无关性 语言无关性 系统无关性 给数据集成与交互带来了极大的方便 XML在不同的语言环境中解析方式都是一样的 只不过实现的语法不同而已 XML的解析方式分为四种 xff1a 1 DOM解析 xff1b
  • JVM调优总结 -Xms -Xmx -Xmn -Xss

    Xms 是指设定程序启动时占用内存大小 一般来讲 xff0c 大点 xff0c 程序会启动的快一点 xff0c 但是也可能会导致机器暂时间变慢 Xmx 是指设定程序运行期间最大可占用的内存大小 如果程序运行需要占用更多的内存 xff0c 超
  • Spring Boot 传参方式

    最近在搞Spring Boot的项目 xff0c 把传参方式总结一下 网上也参考一些文章 xff0c 总结的很不错 xff0c 这里借鉴一下 注解 64 RequestParam 这个注解用来绑定单个请求数据 xff0c 既可以是url中的
  • Java BigDecimal开方

    前言 一般开平方使用的是Math中的静态方法Math sqrt double a xff0c 涉及到金融计算的时候 xff0c Math sqrt double a 精度就不够了 金融领域的计算 xff0c 用的都是BigDecimal类型
  • Spring Boot 集成RabbitMQ

    RabbitMQ is an open source multi protocol messaging broker 前言 参照官方Messaging with RabbitMQ xff0c 记录在实战中的一些坑 搭建RabbitMQ服务
  • Java 获取接口所有实现类

    利用Spring的Bean工厂 xff0c 获取接口所有实现类 前言 在学习Spring Boot 集成RabbitMQ时 xff0c 发现定义了好几个bean xff0c 这些bean在什么地方用到呢 xff1f 查看RabbitAdmi
  • Intellij IDEA-SSH executable-Native

    Connecting to gitlab using PuTTY generated SSH key in IDEA 背景 项目开发中 xff0c 使用Gitlab搭建git服务 xff0c 做代码的版本管理 xff0c 一开始是使用htt
  • 匿名四轴PID参数调试讲解

    过程详解 1 要在飞机的起飞油门基础上进行PID参数的调整 xff0c 否则 烤四轴 的时候调试稳定了 xff0c 飞起来很可能又会晃荡 2 内环的参数最为关键 xff01 理想的内环参数能够很好地跟随打舵 xff08 角速度控制模式下的打
  • 使用cv2eigen或eigen2cv时注意头文件包含顺序

  • 对Socket CAN的理解(3)——【Socket CAN发送数据流程】

    转载请注明出处 xff1a http blog csdn net Righthek 谢谢 xff01 对于本文 xff0c 我们将从用户层使用Socket CAN进行数据发送时 xff0c 数据从用户空间到底层驱动的整个通信流程 xff0c
  • 【智能家居篇】嵌入式WIFI与普通WIFI的区别

    转载请注明出处 xff1a http blog csdn net Righthek 谢谢 xff01 既然我们这系列的文章名称为 智能家居篇 xff0c 那么我们有必要提出一个与智能家居相关的概念 曾经一次在TI的无线研讨会上 xff0c
  • 【智能家居篇】wifi网络接入原理(中)——认证Authentication

    转载请注明出处 xff1a http blog csdn net Righthek 谢谢 xff01 还是用手机来举例 xff0c 扫描完成后 xff0c 我们会选择想要加入的WIFI热点 此时 xff0c 大部分都会弹出一个输入密码的窗口
  • px4 UDP实现WIFI数传

    Mavros offboard 1 UDP实现wifi数传 机载电脑端设置 roscd mavros launch span class token function sudo span gedit px4 launch 随后修改gcs地址
  • PX4 Offboard的各种设置

    PX4 Offboard的各种设置 1 设置局域网PX4 span class token tag span class token tag span class token punctuation lt span launch span
  • 松耦合和紧耦合的架构设计及性能对比

    松耦合和紧耦合的架构设计及性能对比 laxcus大数据 2016 07 20 07 26 41 浏览756 评论0 架构 算法 性能优化 摘要 xff1a 在最近的一次大数据技术讨论会上 xff0c 本行业一家公司的技术高管谈到松耦合架构和
  • 运筹学从何学起?如何快速入门精确式算法?

    相信各位小伙伴在看到运筹学时 xff0c 第一反应肯定是 xff1a 前面我们聊过 xff0c 如何学习启发式算法 那么今天就聊聊如何学习精确式算法吧 和启发式算法不同的是 xff0c 精确式算法不仅需要数学基础 xff0c 还需要运筹基础