简介
这是一本为工商学专业学生编写的教科书,读者应具有数学知识背景,并且对强调应用之外的知识怀有浓厚的兴趣。学生学习过一门相当于理工科专业的微积分课程后就可以阅读本书。学习本书只要求读者了解微分学,最优化中用到的微积分的关键原理在第5章开始复习。对所需的向量与矩阵的背景知识在第2章介绍。
本书包含足够讲授两个学期的材料,并可作为多种课程(例如线性规划、最优化、计量管理法或运筹学等)的教材。
对于求解书中提出的许多问题,可以利用软件提高效率。在几章以及附录A中,对应用最优化软件包LINDO与LINGO提供了若干例子。在与向量和矩阵以及非线性最优化有关的几章中,还用到符号数学软件包Maple。附录B介绍Maple,说明如何在曲线拟合、网络问题求解和解线性规划问题中利用这个软件。附录C介绍德州仪器公司绘图计算软件TI—82与TI-92。
目标
本书的首要目标是为开始把数学规划作为一种工具使用提供所必需的知识背景。虽然主要重点是在管理方面的应用,但是能够证实数学方法在许多领域是很有用的。关键步骤在于使人们取得认识,即当数学模型可能有用的时候就接受它。即使对于不打算亲自使用数学的人,在其同实际从事问题分析的其他人共事或者监督他们工作时,无疑希望了解其中的思想,所以最终目标是达到鉴别介绍的各种方法的潜力,进而深入了解它们和提高应用它们的能力。
本书的第二目标是对与应用技术相关的数学方法有所认识与了解。这里指的是某些这样那样的证明,偶尔也涉及一些主题,如基本图论、线性代数、数学分析、算法性质和组合学。虽然这些从属性题材对于那些兴趣只在于应用方面的人而言大可不必理睬,但是对于打算把课程重点放在数学上的教师来说,这些主题却是值得提出并加以详细讨论的。
下面对各章的概述说明关键应用和数学重点这两个方面。
第1章:问题介绍
这是对问题类型的综述,用一种早期的观点提出可能的应用和所研究的工具。在某些情形,一个机构要实现某个问题的求解在于指明强调这些技术手段的关系。第3节提出我们在大多数模型中考虑到的线性结构以及同模型表示相关的某些问题。最后一节介绍求解两变量线性规划的一种图形方法。这就引入一个关键的管理工具,同时促进对求解多变量问题的代数方法的研究。
第2章:向量与矩阵
本章提出处理线性问题所需的思想并服务于两个目的。第一,包容学习线性规划的预备知识;第二,作为对矩阵代数的独立简介。学生或教师可以根据自己的目标舍弃本章内的某些节。
例如,矩阵求逆在两个地方讨论:2.4节简述2×2矩阵的求逆,而2.7节对n×n矩阵的情况做更详尽的讨论。在第2章之外,实际仅在3.3节的习题中需要求逆矩阵。因此,对逆矩阵并无特别兴趣的读者可以抛开2.7节。
2.6节是很重要的一节,因为在后面的单纯形算法中同样需要用到其中所用的行运算。
2.5节对后面也是重要的,这是由于向量的线性无关集同单纯形算法中的每一种基本解对应。我们利用对线性无关的讨论进而探讨某种基本的数学推理,这是任何学习数学的学生应该了解的。然后这些思想被用来证明几个涉及线性无关的命题。
第3章:线性规划
本书的中心主题是线性规划。3.2节和3.3节讨论单纯形算法。在3.4节我们证明单纯形算法是正确的。3.5节讨论问题的表达形式,因此,这对于那些由应用引发的大多数问题特别重要。3.6节把单纯形算法扩展到带有非标准约束的问题。3.7节讨论极小化问题的求解,其中用到一个相关的极大化问题。例3.7.8说明线性规划作为管理工具的某种能力,并有助于促进随后在3.8节对灵敏度分析的讨论。
第4章:网络模型
本章讲述四种网络问题:运输问题、关键路径问题、最短路径问题和最小生成树问题。这一章提供LINGO和LONDO中使用的抽样模型。
对最短路径与最小生成树的讨论要用到图论中的某些基本知识。本章也论及算法的有效性与正确性,并就最小生成树算法进行讨论。
. 第5章:无约束极值
我们在这一章讨论经典的最优化技术。其中需要用到一些微分学的知识。对与经济学上的订货量问题与库存管理问题相关的凸性做了讨论。5.5节专门论述最小二乘曲线拟合的应用。对构成最优化基础的理论进行讨论,并介绍利用Maple求解最优化问题。
第6章:约束极值
本章把前一章展开的讨论扩展到那些解受到约束的问题。求解凸问题的关键性定理当推Karush-Kuhn-Tucker定理。本章介绍的主要应用包括卡片盒成本的极小化、公用事业中的极大化、设备更换成本的极小化以及选择一种有价证券的投资组合,企求以最低风险获得可取的回报。本章以回顾线性规划作为结束,把线性规划看成凸规划的一种特例。
第7章:整数规划
在首先讨论对偶单纯形算法之后介绍整数规划。对于已经获得最优解而无需求解问题的线性规划,为了便于对其增加约束,需要使用对偶单纯形算法。这样就构成求解整数规划的分支定界法。本章考虑背包问题,以此导入分支定界法,然后再提出通用的分支定界算法。接下来讨论各式各样的整数规划模型,最后用一个求解流动推销员问题的方法结束。
第8章:动态规划导引
某些特定问题的解可以通过动态规划由一系列可达的操作步骤定义。首先介绍的例子是最长路径问题,这同在统筹法(CPM)中确定的最早时间非常相似。然后考虑两个扩充问题,一个是固定费用运输问题,另一个是从背包问题演变来的货物装载问题。我们再回到流动推销员问题,并指明由这类问题提出的某些计算上的挑战。动态规划有赖于递归,所以需要介绍与递归函数相关的主要思想。这样把读者短暂地引入河内塔(Towers ofHanoi)、斐波那契数和二项式展开。
第9章:实例研究
本章介绍几个远未终止的问题,这些问题适于作为更长的作业和小组项目,教师可以获取实例的解答和在课堂使用时的提示。
附录A:LINGO与LINDO简介
线性规划软件包LINDO在求解第3章中提出的线性规划、第7章中的整数规划模型和4.3节中的统筹法等问题时是极其有用的。本附录介绍所用的例子以及基本命令的用法。使用LINDO的例子请见3.5、3.8、4.3、7.1和9.1节。
这个附录也对LINGO做简要介绍,这是一个有关求解非线性问题的软件包。作为一种建模语言,LINGO以其能有效表示重复约束问题的能力而特别有用。在4.3和4.5节可以找到使用LINGO的例子,4.3节用于求解关键路径问题,4.5节用于确定最小生成树。LINGO在第6章也被用于求解非线性最优化问题。
附录B:Maple简介
符号计算软件包Maple是非常有用的,尤其可用于求解经典的最优化问题,如第5、6章提出的问题,以及矩阵计算、曲线拟合、解线性规划和解网络模型中遇到的问题。在2.7、5.4和5.6节也有对Maple的简要介绍。
附录C:介绍德州仪器公司绘图计算软件
对于处理某些问题,这可能是最具价值的计算软件。一个显著的例子就是求解一个决定关键点的方程,其次的例子是5.5节中讨论的曲线拟合和第9章中的动态规划。本附录对TI-82、TI—92以及它们在此类应用中的用法做简要介绍,其中包括求解货物装载问题的一个样例程序。
附录D:习题选答与提示
本附录提供很多习题的答案,其中主要针对题号为奇数的习题。对有些习题只给出提示而无答案。
对某些习题的解答虽然是有用的,但是学生们仍应寻求发挥他们检验自己解题正确性的能力。
对教师的建议
在卡内基—梅隆大学,为工商专业开设的第一门数学课程来自对理工专业开设的第一门微积分课程的变更,其中把重点放在商业与经济应用方面。因此,把第2章以及第5、6章的主题放在工商专业的下一门课程,其中从另外的教材补充微积分。第二门课程还要讨论复利计算,由此打下以后从事统计与经济工作的数学基础。第三门课程是面向应用的,通常包括第1章、第3章(其中3.4节只是略微提及)、第4章的大部分以及7.1、7.2、7.6和7.7节的大部分。
对数学与应用联系有兴趣的教师,应花一些时间讲授一点数学推理方法及其在2.5节讨论线性无关时的应用。其后讲授在3.4节与极值点和基本解有关的讨论中使用的间接证明方法,这一方法在4.5节讨论树时再次使用。此外,还要在4.4和4.5节涉及算法的有效性和正确性:在第5、6章包含对凸性的几个证明和一个导言,在8.1节介绍递归、组合、置换和二项式展开。
欲把重点放在算法研究上的教师,应像上面提及的那样强调3.4、4.4和4.5节,同时注重7.2-7.5节和7.7节中提出的分支定界法。此外,讲授7.3节中讨论的对偶单纯形算法以及8.4节中就流动推销员问题对动态规划方法的分析。
各章的小结列出具体的学习任务。对于多数任务提出一个说明性的例子和一道典型的习题。这使描述测验的内容变得非常简单。可以直接看出,测验将包含一组特定的任务。
主题之间的依赖关系
各章的题材以这样一种方式组织,即使得靠后的主题大体独立于靠前的主题,以便可以用多种形式选择课程内容。唯一基本的主题是线性规划。为了指导从本教材选择题材的途径,我们首先把线性规划确定为基本题材,然后讨论后面每一个主题所需的材料。
对线性规划的基本介绍至少应包含第1章前三节的某些材料,以便了解书中讨论的方法及其应用范围。然后第4节介绍图形求解方法。为了过渡到单纯形算法,需要用到第2章的2.4-2.6节。对于不把重点放在方法的数学基础上的课程,大半可以省略有关线性无关的一节。
第3章包含线性规划的基础。如果不试图验证单纯形算法,那么可以省略3.4节。在3.5节中首次用LINDO求解线性规划问题。
在其后的讨论中,我们将把1.2-1.4节、2.4-2.6节以及3.1-3.7节视为基本核心。
第4章涉及网络模型,可以放在有关线性规划的基本核心材料之后讨论。由于出现等式约束与对偶性,3.6和3.7节中的材料是特别重要的。
第5、6章中对经典非线性最优化的讨论同先前的任何材料基本无关,尽管从线性规划讨论中提出的约束极值和可行解的概念肯定是有益的。微分学的知识也构成这两章的基础。
第7章讨论整数规划,从其中选择主题时可以采用几种方法中的任何一种方法。除基本核心材料外,首先讲授4.1节和4.2节是有帮助的,这两节介绍网络,并把运输算法作为一个例子,其中变量的整数值是自动产生的。只考虑背包问题与流动销售员问题是一种方法。对于只对表示问题感兴趣而依靠软件包求解的课程,可以舍弃7.3~7.5节中对分支定界过程的讨论。讲授整个第7章则同时提供对模型与求解过程的介绍。
第8章是对前面从动态观点建立的模型的复习。这一章以4.2节讨论的运输问题、7.2节讨论的背包问题和7.7节讨论的流动推销员问题为基础。
第9章中的实例需要用到不同的背景知识,尽管对于多数人而言,读过第3、4章并具备使用线性规划软件包的能力就足够了。
Web网站
在作者网站http://www.math.cmu.edu/~rwlk/的主页上,提供本书的补充信息,包括某些习题的数据文件,以及对读者有帮助的各种链接。
致谢
对同事Deborah Brandon、Vipul Jain、Anthony Kearsley、Darren Mason、Reha Tutuncu、Nathan Richey、Steve Shreve、John Tolle和Bill Williams所做的贡献和有益的评论深表感谢。感谢学生Eric Hanover、Chris Knorr、Dan Rosenberg、Timothy Stoudt和Bill Walton做出的贡献。同时,感谢Florin Manolache提供的技术支持。
作者同样感谢审稿人Sanjo Zlobec(McGill大学)、Ognian B.Enchev(波士顿大学)、John E.Mitchell (Rensselaer工业学院)、Margaret M.Wiecek (Clemson大学)、Irwin S.Pressman (Carleton大学),小Antonio M.Lopez(Loyola大学)、Yuen-Fat Wong (DePaul大学)和James Calvert(Idaho大学),他们对本书提出许多建议和做出非常有益的评论。
本书是作者作为卡内基—梅隆大学学术创新中心教授会成员时写成的,对该中心的支持表示感谢。
还要感谢Prentice-Hall出版公司的Rick DeLorenzo、Bob Lentz、George Lobell以及其他人员的鼓励、支持与建议。
拉塞尔C.沃克
于匹兹堡