运筹学 — 概述
概述
- 概述
- 主要研究人类对各种资源的运用及筹划,在满足一定约束的条件下,以期发挥有限资源的最大效益,达到总体最优的目标--所谓运筹帷幄
- 最初由钱学森老先生引入中国,据说最开始的用途是优化航空/军工等领域。
- 别名
- 数学规划 (math programming)、优化 (optimization)、最优化理论、决策科学(Decision Science)等。
- 历史An Annotated Timeline of Operations Research - An Informal History | Saul I. Gass
- 1979年
- 电子表格和OR插件问世
- 世界上第一个电子表格软件VisiCalc于1979年10月问世,从那时起,OR相关插件也被引进,可以做例如线性、非线性和整数规划。随后,Excel、Lotus和Quattro Pro等电子表格也引入OR插件。
- Computers and Intractability; A Guide to the Theory of NP-Completeness 巨著问世
- 整数规划等问题被归类到NP难问题。
- 1980年
- Constraint Programming 引起运筹学重视
- 源于计算机科学和人工智能领域,被发现可以用来高效地求解优化问题,特别是排序和调度问题。
- Total Unimodular矩阵的分解定理
- TU矩阵被证明有很好的性质,当整数规划的系数矩阵为TU并且系数为整数时,其线性规划松弛解被证明与原问题等价(即多项式时间可解)。
- LINDO软件问世
- LINDO软件由Linus E. Schrage主要开发,可以解线性及整数规划问题。
- 1981年
- 模拟褪火(Simulated annealing)算法面世
- 该算法是以统计物理为原理的优化算法,用来解决NP难的组合优化问题。
- 分离问题(Separation Problem)和优化问题的等价性
- 定理概述:如果分离问题可以被多项式时间可解,那么原优化问题也是。
- 1982年
- 数学建模软件GAMS面世
- 优化求解器在此之前已经存在,但是需要较深的运筹学背景才能高效使用。由J. Bisschop研发的GAMS解决了这一痛点,让运筹学建模平民化。
- 单纯型法(Simplex method)的平均运算时间
- 虽然单纯型法是一种指数级复杂度的算法,但是在实际使用中被发现特别高效。
- 1984年
- 线性规划经典算法内点法(interior method)的证明
- 不同于单纯型法从一个极点跳到另一个极点,内点法从多面体的内部点进行搜索。
- 神经网络模型(Neural networks)被用来解优化问题
- NN被J.J. Hopfield和D.W. Tank用来解决组合优化经典问题旅行商问题(Travelling Salesman Problem)。
- 1985年
- 组合优化经典算法:分支分割法(Branch and cut)被世人熟知
- M. Padberg和他的共同作者证明B&C方法是解决旅行商问题最promising的方法。
- 1986年
- 元启发经典算法Tabu search问世
- 这个算法不断得修改搜索区域以试图跳出局部最优解,由Fred Glover在1986年的论文率先提出了该名词“Tabu search”。
- Theory of Linear and Integer Programming著作问世
- 1989年
- 供应链管理(Supply chain management)及运筹学的作用被世人熟知
- 运筹学顶刊之一的Informs Journal on Computing建刊
- Stochastic modeling and the theory of queues, by R. W. WOE, Rentice Hall, Engle 出版
- 随机优化和排队论的巨著。
- 1990年
- 运筹学在金融工程、市场的应用被熟知
- 运筹学早就被应用于资产配置优化问题,但是数学规划和蒙特卡罗模拟等方法开始被应用于例如衍生品定价、交易策略、对冲基金策略等问题。
- Operations Analysis in the United States Army Eighth Air Force in World War II (History of Mathematics) : Charles W. McArthur 著作问世
- 1993-1994
- NETWORK FLOWS Theory, Algorithms,and Applications 1993年问世
- 网络流的经典教材,作者James B. Orlin, Ravindra K. Ahuja, and Thomas L. Magnanti,我在Clemson上该门课的参考书籍。
- NEOS (Network-Enabled Optimization System) 1994年问世
- NEOS是一个开源免费的网络优化系统,集合了众多优化求解器。
- Markov Decision Processes: Discrete Stochastic Dynamic Programming 著作1994年问世
- 1995-1996
- ORSA和TIMS 于1995年合并为INFORMS
- Scheduling - Theory, Algorithms, and Systems | Michael L. Pinedo 著作于1995年问世
- Monte Carlo - Concepts, Algorithms, and Applications | George Fishman 于 1996年问世
- 1999-2004
- INFORMS旗下期刊Manufacturing & Service Operations于1999年建刊
- Foundations of Inventory Management (January 24, 2000 edition)著作于2000年问世
- Combinatorial Optimization - Polyhedra and Efficiency | Alexander Schrijver 著作于2003年问世
- 2004年MIT运筹学中心(ORC)建立50周年
流程
- 问题定义、搜集Data
- 决策者
- 目标
- 限制
- 建立数学模型
- 决策变数
- 目标函数
- 限制条件
- 发展解法
- 有系统的求解过程
- 测试修正
- 解是否合理
- 准备应用
- 开发软件
- 人事安排
- 建立资料库
- 正式实施
运筹学学科、专业
- 数学系运筹学专业–(非)线性规划,整数规划,多目标优化,最优化理论等
- 工商管理学院(School of Management)管理科学(Management Science)与工程专业–管理决策、供应链等
- 工程学院工业工程(Industrial Engineering)、物流工程专业–生产流程优化、物流、运输等
- 计算机学院理论计算机专业–偏算法方向,近似算法、遗传算法等
- 另外电子工程,通信,化工,自动化等专业往往也会开凸优化或数值优化(Numerical Optimization)等课程
运筹学分支
- 线性规划(Linear Programming)-- 最简单和基础的优化问题
- 非线性规划 (Nonlinear Programming)–目标函数或约束条件为非线性,例如2次函数;
- 凸优化 (Convex Optimization)–约束条件形成的可行域(feasible region)是凸的;
- (混合)整数规划 (Mixed Integer Programming)–自变量有整数变量,NP难问题(指数级算法复杂度)。
- 半正定规划 (Semi-definite Programming)–每一个自变量x代表一个矩阵;
- 网络流问题(Network Flow Problems)–一个特殊的混合整数规划问题,满足一个节点流出流量=流入流(或许你听说过最大流最小割定理);
- 动态规划(Dynamic Programming)、近似算法(Approximation Algorithms)、启发式算法(Heuristic Algorithms, Meta Heuristics)、遗传算法 (Genetic Algorithms)–用来解例如整数规划等NP难优化问题的算法,后俩个通常只能得到局部最优解,最经典的当属最大流最小割定理衍生出来的一些最大流算法(全局最优)。
- 鲁棒优化(Robust Optimization)–目标函数或约束条件有扰动(不确定性)的情况下,求解其最坏情况下的最优解;
- 多目标优化 (Muti-objective Optimization)–优化的目标函数是一个向量,通常通过引入权重权衡个目标函数,转化成单目标优化,或者寻找帕累托最优(Pareto Optimality) ;
- 双层优化(Bilevel Optimization)–和复合函数的概念类似,比如Max-Min Problem,在一个优化问题外嵌套另一个优化问题,通常用迭代法;
- 随机优化(Stochastic Programming)–加入了不确定的因素(通常以概率形式表现,目标函数变成求期望最大化);
- 最优控制(Optimal Control):严格说属于控制论的范畴,可以简单地把它理解为,优化问题中的变量由x变为f(x),并且通常f是时间t的函数(或者状态state的函数),约束条件常有偏微分方程。也就是说,控制论期望通过解一个优化问题,得到一个最优的函数f(t),使得这个函数在全局(空间+时间)上是最优的。而运筹学通过解一个优化问题,得到的是最优解x,使得目标函数在一个确定性(deterministic,通常与t无关,或者可以理解为在t的某一时刻)的环境下是最优的。
应用
- 路径优化问题(Routing Problem)–交通领域(GPS导航)
- 仓储、运输等物流(Logistics)以及供应链(Supply chain)领域
- 制造业里的生产流程优化(Process Optimization)
- 电力领域的电网的布局以及分配(Power Grid)
- 电子工程里的设施部件分配问题(Facility Layout Problem)
- 能源领域的优化,如:如何铺设输油管道
- 火车、课程、飞机时刻表安排问题等调度问题 (Scheduling Problem)
- 资产配置 (Asset Allocation)、风险控制 (risk management)等经济金融领域的应用;
- 作为优化或运筹学模型,在其他各个学科的应用,如统计、生物、博弈论、压缩感知(近十年很火)、稀疏问题、人工智能(能量函数能量最小化)等等;
运筹学的就业
- 滴滴算法工程师(高精尖高薪)–车辆路径规划及叫车资源匹配和调度;
- 顺丰、京东物流工程师(高精尖高薪)–仓储问题、快递寄送问题;
- 投资银行、大型企业工程师–资产配置、成本优化、利润最大化;
- 国家电网、中石油技术工程师–电力调度、石油管道最优化铺设;
- 铁路、航空公司–时刻表安排、定价策略、航班安排;