运筹学这个名字听起来挺厉害的,我当初听这个名字时觉得如果学会了它,就能掌握一种玄妙的指挥艺术,像一个指挥官一样调度千军万马,有一种“运筹帷幄”的感觉。其实呢,运筹学这门课讲的东西没有那么高大上,也没有那么虚无,它分析处理的都是平时生产生活中非常常见,很接地气的内容。今天我就以现实生活中遇到的问题为引子,给大家介绍一下运筹学这门学科都分析处理些什么问题。
今天先介绍一下规划问题
工厂里有钢铁,木材,橡胶等三种原料,可以生产车,机床等两种产品。由于车和机床的利润率不一样,为了最大化工厂的利润,需要合理安排车和机床的产量。这种安排并不是简单的比较生产一台车和机床哪个利润高,需要考虑到钢铁,木材,橡胶等原材料储量的限制。于是这种生产问题就转化成了一个约束条件下的规划问题,即线性规划。之所以叫“线性规划”,是因为问题中的限制条件以及最后要优化的函数都是一条直线,一个平面等等这些线性几何元素。
线性规划里有很多需要考虑的问题。比如还是上面例子中的工厂,假设有一天厂长要把一部分原材料卖出去,他应该卖什么价钱合适?作为一个厂长,最基本的考虑应该是,卖的价钱不能比这些原料拿来生产赚的钱少,否则还不如自己开工干活算了。于是我们就要从产品的价格来逆向计算原材料的价格,这就是线性规划中的对偶问题;当需要扩大生产而资金有限,优先购买哪种原材料可以最大化的增长利润?比如生产车和机床需要消耗大量的钢铁和少量的橡胶,如果橡胶不是储量告急的话,应该先买点钢铁回来。于是就要进行灵敏度分析,计算出利润对哪种原材料的变动最为敏感。
线性规划是最基本的规划问题,在它的基础之上,还衍生了很多别的规划问题。假如工厂生产三种产品,车,轮胎和机床,买车的人可能还愿意再买个轮胎,但机床就算了。于是车的销量对轮胎有促进作用,那最终的利润就不是几个产品简单相加就行了,规划问题变成了一个非线性问题,于是就有了非线性规划;有些产品的产量可以用实数来表示,比如生产的化肥重量,可是有些产品的产量只能用整数表示,比如生产了几辆车,总不能生产0.58台车吧?于是就有了整数规划。绝大部分原料的价格都要随市场变化而波动,规划问题的约束条件也随之变动,于是就有了动态规划;