初识运筹学

《运筹学》系列文章:

  1. 初识运筹学
  2. 线性规划与单纯形法
  3. 番外篇: 从线性规划作业说起

运筹帷幄之中,决胜千里之外。
——《史记》

初识运筹学_第1张图片
学习金字塔

1.什么是运筹学?

首先看什么叫 运筹? 正如司马迁在史记中所写: 在小小的军帐之内作出正确的部署,能决定千里之外战场上的胜负。我觉得 “部署、规划”等词都可以用来解释运筹的意思。
一个很形象的比喻就是:领导和他的智囊团在一个会议室里面规划某一个具体的项目以达到预期的目标。 而运筹学就是研究如何更好地进行规划以达到这个目标的学问,它可以给出一个具体的方案,或者给出一些有力的信息。当然了对于一个领导而言,想想也不大可能就完全参考运筹学中一个模型直接给出的方案,再加上有时候并不能直接给出一个方案,而是一些参考的有价值的结论。所有我觉得课本中有一句话总结的很好:

它的目的是为行政管理人员在做决策时提供科学的依据。
—— 《运筹学》[1]

其实不只是领导,我们日常生活中就有很多的例子就可以进行规划,例如我如何从中科大厦去外滩,我们可以选择做地铁、公交甚至直接一辆小黄车骑过去,本着最经济的目标我可以规划出一个方案来。但是因为这些是生活中的小事,我们一般利用一些常识即可判断。

2.化具体为抽象:

我们来进一步看一下那个从中科大厦去外滩的那个规划问题。

完善过程 输入 输出
在一个理想化的世界中,假设其它一切条件都很好 起点,终点,日期 最经济的路线
考虑天气 起点,终点,日期,天气状况 最经济的路线
纳入地铁运营时刻表,公交车信息等交通状况 起点,终点,日期,天气状况,交通状况 最经济的路线
假如个人喜好 起点,终点,日期,天气状况,交通状况,个人喜好 最经济的路线

我们先只考虑这一些因素,然后我们再对输入变量进行一下分类:

输入元素 类别 符号化表示
起点,终点,日期 可控变量,这些因素你自己可控 xi
交通状况(地铁),个人喜好 已知参数,地铁一般有固定的班次,个人喜好短时间也不会变 yj
交通状况(公交车),天气状况 随机因素,这些有随机性 ek

这些输入元素有一定的约束条件,我们用g()来表示。
同时他有评价的标准,我们这里用U=f()来表示。在这个例子中评价标准是“最经济”。

以上这些写成专业化的术语就是《运筹学》课本第7页。

初识运筹学_第2张图片
模型的一般数学形式

3. 一些问题:

1. 为什么这个《运筹学》中有这么多的数学,这些数学还是我们在本科的时候学的比较冷门的科目:比如《线性代数》与《图论》?我完全可以不懂数学就可以规划啊,我想很多领导也肯定不是数学背景出身的吧。

我们把这两个问题分为两个亚问题。

为什么要用到数学?

后面的一个问题比较有趣,我们就以上面那个从中科大厦去外滩为例,我完全不需要懂什么线性规划啊这些充满数学符号的理论。简单点,我直接做地铁,因为路程相对比较远,地铁比较快,不易堵车。从这个例子中可以看到确实是这样我们不需要用到数学,从实际的经验来看,做地铁也是很好的选择。

但是我们把目光放远一点,如果你要处理的是像课本中说道的比如:“2008年度,制定荷兰火车新时刻表”的这个问题。

到2006年荷兰铁路从1970年的80亿人 · 千米增加到154亿人 · 千米.在不改变时刻表的结构情况下要求计划有更多更长的火车发出。2006年荷兰铁路要求开发一个新的时刻表。
——《运筹学》:P9

这时,我想你是绝对不大可能不动用数学去规划这个问题的。你不可能看看地图,看看火车的参数就直接在纸上写出应该如何安排。所以我们不应该拘泥于一些小的问题,现在把目光放大,放远。课本中又举了一些例子:比如在军事上的,市场销售上的。这时解决这些科学规划问题你不得不去动用数学。

为什么有那么多的《线性代数》的内容,我生物学本科可没怎么学,这些感觉好冷门啊?

其实《线性代数》一点也不冷门。在我国的学科设置上有大致十二个学科门类,一般认为的自然科学指的是:理工农医四大学科门类:只是生物学的两大应用学科:农学医学 比较重视实验,一般不需要这么多的数学知识。但对于广大的工科专业来说,《线性代数》是非常重要的一门课,很多专业课上要运用大量的数学。我在本科上《数值分析》(数学系的一门专业核心课)课时,当时的数学老师常说:很多工科专业学得比我们数学专业还要深。

下面进入正题:为什么那么多的线性代数,首先我说一个让人听了有一点不明觉厉的论点:矩阵的这些理论是第二代数学建模语言。 为了说明这个论点,我分为两部分内容:

1. 数学是什么?

语言这个概念不知道大家有没有注意过,它是人类最重要的交际工具,是人们进行沟通交流的各种表达符号,是人们保存和传递人类文明的成果的重要工具。我们一般熟知的有普通话和英语,但是其实数学就是一种语言只不过它注重的是读和写,充满的是大量的逻辑、结构与符号化的形式体系。在二十世纪初,曾经有三大数学学派:第一,以希尔伯特为代表的形式化学派,认为数学就是一种形式;第二,法国的结构数学学派,认为数学是一种结构;第三,逻辑学派,认为数学就是逻辑。但是后来我们知道不能简单认为数学就是其中之一,而是应该将三者综合来看待。

我们辩证地来看待一下,既然数学这门语言是充满的是大量的逻辑、结构与符号化的形式体系的,那它肯定没有自然语言(普通话、英文等)所拥有的一些能够愉悦人的特性,比如写成小说啊,讲笑话啊这些功能。

没错数学是科学的语言,伽利略层有过类似的名言!这里还要区分两个重要的概念:数学和算术的区别!很显然的一个例子是:我们中国古代很早就知道“勾三股四弦五”,我们在生产实际中如果需要用到直角三角形如果已知两条直角边是3和4,那么可以算出第三条边是5,这是算术。但是上升到勾股定理:a^2 + b^2 = c^2,那就抽象出来上升为数学了。

2. 矩阵是什么?

在这个问题上,我强烈建议大家看一下孟岩老师的两篇博文:理解矩阵。

一般来说,语言最基本的元素是词汇,搭配和语法。向量就相当于数学语言中的单词,而矩阵就是搭配,再配合上一定的语法,就构成了我们看到的矩阵描述(如课本59页:单纯形法的矩阵描述)。

下面说一点闲外话,《黑客帝国》中的用来禁锢人的那个系统也叫矩阵(Matrix)。Matrix 作为一套复杂的模拟系统程序,其基本的运算语言肯定是矩阵。大家可以看看这篇博文。

还有我们在下学期要学的《生物统计学》,它是可以写成矩阵形式的,但是我看它没有这样做,我本科学的《生物统计与田间试验》的时候就学了矩阵的表达形式。

3. 利用向量构建数学模型

我们回顾一下高中曾经算的很头疼的解析几何,我们打的交道最多的应该就是韦达定理了。这个解析几何一般算错一步后面就实在很难算下去。后来进入大学后我发现,有《高等代数》这一门课(线性代数是高等代数中的一部分内容)。大学的计算方式就是利用向量和矩阵来进行运算。它最基本的运算不再是一个实数的运算,而是一群实数同时运算。

我们再来看什么是一个数学模型:对于一个问题,我们能够显式的拿出一个f(x)在求解这个问题,给出一个解。那这个f(x)就是一个数学模型。只是这个x不再是一个实数,而是一个向量或者矩阵。


利用矩阵这排理论我们可以更好地来探讨《运筹学》中的规划问题,所以课本有这么多的线性代数的内容。当然其实我们也没有必要对这些东西研究的很透。正如课本在导言中所写(见下问),我们会用即可!

目前国内流行的有关运筹学的教科书,多半偏重于数学方法的论证,对于解决实际问题时所需建立模型的概念与解题的技巧不够重视。

参考资料:


  1. 《运筹学》第四版,清华大学出版社。 ↩

你可能感兴趣的:(初识运筹学)