很佩服把OR (Operational Research) 翻译成运筹学的人,很传神的表达出那种凭借收集回来的高质量数据(情报)+模型(智谋),便取得战争胜利的风采与神韵。
运筹学是定量优化的决策科学,注意这个定义,其实是定义了运筹学的主要应用场景。它是计划工作最全面的分析方法之一,是"科学管理"的基础。
运筹学的传统应用领域包括供应链、物流、交通、能源、电网、航空排班、调度等优化。因为任何实体企业运营过程中都会涉及到供应链(从原料采购、物流、仓储、生产、定价一直到销售),而供应链在公司内又是数据最密集的职能之一,所以供应链优化里核心的数学模型和算法几乎都与运筹学相关。尤其是在信息化和数字化的浪潮中,运筹学在供应链领域内的应用更是有“一遇风云便化龙”的感觉。
运筹学也是一种系统性解决问题的思维方式,用我自己的语言描述,它大抵包括以下几个步骤:
1. 梳理系统要素:明确求解目标、控制变量、约束
2. 业务建模:梳理流程,厘清要素间逻辑关系
3. 数学表达:量化逻辑关系,写出目标函数
4. 模型求解:通过计算,得出当下可行解
5. 敏感性分析:量化(当前)约束对模型的影响
6. 逐步放开约束:持续优化模型和系统产出

前三个步骤类似于正向设计,从不确定到确定,形成可行解。后两个步骤则类似于持续改善,从确定到不确定,追求最优解。
在大多数业务场景中,基本系统框架比较明确,追求的是不断突破系统的当下瓶颈。那么通过敏感度分析以及对关键约束的松弛,在业务上提供前瞻性的方向,是比单纯求(当下)解更大的价值。
以上这些步骤里面其实最重要的是业务建模和数学表达。换言之,就是看现实问题和数学语言是怎么对应的。
建模这事情说难不难说易不易——
易在:好像就是定义几个变量,定义一下变量之间的关系和目标函数。
难在:
1. 对现实问题要看透:什么才是问题里面的最重要的因素,抓住重点
2. 找到最合适的数学语言和它对应,
3. 模型要尽量容易解。
第一点是因问题而异的,没法聊。
第二点是可以通过了解各种模型适用于刻画具有什么结构的问题来达到。运筹学里面有很多模型。举几个例子:
1. 线性规划能表示所有有线性结构的问题,例如做采购,我们知道了每家供应商的固定价格和最大供应量,我们希望最小化成本,那总成本=单价×数量,这个就是这个问题里面的线性关系。
2. 整数规划能处理一些线性规划处理不了的问题。例如还是采购,假如选了某家供应商,每选定一个供应商,还要增加一个固定成本,于是我们就要多设一个变量来代表是不是选了这个供应商,这时候就需要整数限制。不然那个变量解出来等于0.5,我们只选半个它?
3. 当现实问题涉及多个参与者,每个参与者都有自己优化的东西,这时候就涉及互动,就可以将博弈论派上用场了。
4. 如果见到一个系统是随时间变化的,就可以考虑用最优控制。等等等等。
懂了对自己身边的具体问题建模,再拿个软件解一下模型,对大部分人就够了。
当然,我们越是要熟练使用一个工具,越是要清晰这个工具的适用范围和边界。运筹学思维/方法有很多优势,但绝非尽善尽美,它存在自身的局限性。
1. 究竟是让模型适合问题,还是让问题适合模型,这一点其实非常难以把握平衡。很多时候我们容易陷入一个误区:就是在让管理问题"削足适履"——原始问题被加以抽象,但数学难点或计算难点都被舍去,从而使问题的解答失去实际应用价值。
2. 运筹学最终要得到问题的最优解,而从管理实践的角度来看,由于决策目标通常有多个,且各个目标间又存在冲突,因此,最终的解决方案只能是一种折衷。只要能给出一个近似的、比不用数学方法而单靠经验和直觉所得出的足够好的结果来就满不错了。管理者实际需要的是这种"满意解",而不是附加了各种假定条件的"最优解"。

网友评论