1、 本科 毕业论文 ( 设计 ) ( 20 届) Matlab 软件在运筹学中的应用 所在学院 专业班级 信息与计算科学 学生姓名 学号 指导教师 职称 完成日期 年 月 I 摘要: Matlab 软件是一种广泛应用于工程计算及数值分析领域的新型高级语言。而 运筹学 是近代应用数学的一个分支,主要是研 究如何将生产、管理等事件中出现的运筹问题加以提炼,然后利用数学方法进行解决的学科。运筹学是应用数学和形式科学的跨领域研究,利用像是统计学、数学模型和算法等方法,去寻找复杂问题中的最佳或近似最佳的解答。运筹学经常用于解决现实生活中的复杂问题,特别是改善或优化现有系统的效率。 本文首先介绍了 Matl
2、ab 软件和运筹学产生的背景,以及它们的发展历程和发展方向。接着叙述了用 Matlab 软件来解决运筹学中的问题的方法及其算法。我们通过分析问题建立数学模型,使用适当方法求出解,并对其进行分析得到该问题的最优值。最后运用这种 方法来解决相关实际问题,即它被应用的过程。 关键词 : Matlab 软件;运筹学;数学模型;最优值。 II Matlab software in the application of operations research Abstract: Matlab software is widely used in the field of engineering calcu
3、lations and numerical analysis of a new type of high-level language. The modern application of operations research is a branch of mathematics to study how the production, management and logistics for events such as the problem appears to be refined, and then use mathematical methods to solve the sub
4、jects. Operations research is a form of applied mathematics and interdisciplinary scientific research, the use of such statistical, mathematical models and algorithms and other methods to find complex issues in the best or near best solution. Operations research is often used to solve complex proble
5、ms in real life, in particular, to improve or optimize the efficiency of existing systems. This paper introduces the Matlab software and operations research background, and their development process and development. Then described using Matlab software to solve problems in operations research method
6、s and algorithms. We analyze a mathematical model of the problem, find the solution using the appropriate methods, and analyzed to get the optimal values. Finally, we use this method to solve practical problems related to, that is the application process. Keywords: Matlab software, Operations resear
7、ch, Mathematical model, The optimal value. III 目录 1 绪论 . 1 1.1 问题的背景、意义 . 1 2运筹学及 Matlab软件的历史 . 3 2.1 运筹学历史背景 . 3 2.2 MATLAB 历史背景 . 3 2.3运筹学的发展方向 . 4 3 运筹学的步骤及实际问题的解答 . 5 3.1 运筹学处理问题的步骤 . 5 3.2 运筹学在现实生活中的应用 . 6 3.2.1 线性规划 . 6 3.2.2 指派问题 . 8 3.2.3 动态规划 . 9 4 结论 . 15 致 谢 . 16 参考文献 . 错误 !未定义书签。 1 1 绪论
8、1.1 问题的背景、意义 运筹学是一门研究如何有效地组织和管理人机系统的科学。由于它同管理科学的紧密联系,它在 研究解决实际问题时所蕴涵的的系统整体优化思想,以及从提出问题、分析建模、求解到方案实施的一整套严密科学方法。 1 随着科学技术和生产的发展,运筹学已渗入很多领域里,发挥了越来越重要的作用。运筹学本身也在不断发展,现在已经是一个包括好几个分支的数学部门了。比如:数学规划(又包含线性规划;非线性规划;整数规划;组合规划等)、图论、网络流、决策分析、排队论、可靠性数学理论、库存论、对策论、搜索论、模拟等等。 2 现 在解决运筹学问题如果还像以前一样自己一步一步来计算明显效率不高,随着科技的
9、进步,我们需要一种软件能使我们能在计算机上能快速的计算出问题的答案。而 Matlab 软件这一常用软件正好符合我们的需求。 那什么是 MATLAB 软件? MATLAB 是由美国 mathworks 公司发布的主要面对科学计算、可视化以及交互式程序设计的高科技计算环境。它将数值分析、矩阵计算、科学数据可视化以及非线性动态系统的建模和仿真等诸多强大功能集成在一个易于使用的视窗环境中,为科学研究、工程设计以及必须进行有效数值计算的众多科学领域提供了一种 全面的解决方案,并在很大程度上摆脱了传统非交互式程序设计语言(如 C、 Fortran)的编辑模式,代表了当今国际科学计算软件的先进水平。 MAT
10、LAB 和 Mathematica、 Maple 并称为三大数学软件。它在数学类科技应用软件中在数值计算方面首屈一指。 MATLAB 可以进行矩阵运算、绘制函数和数据、实现算法、创建用户界面、连接其他编程语言的程序等,主要应用于工程计算、控制设计、信号处理与通讯、图像处理、信号检测、金融建模设计与分析等领域 。 MATLAB 的基本数据单位是矩阵,它的指令表达式与数学、工程中 常用的形式十分相似,故用 MATLAB 来解算问题要比用 C, FORTRAN 等语言完成相同的事情简捷得多,并且 mathwork 也吸收了像 Maple 等软件的优点 ,使 MATLAB 成为一个强大的数学软件。在新
11、的版本中也加入了对 C, FORTRAN, C+ , JAVA 的支持。可以直接调用 ,用户也可以将自己编写的实用程序导入到 MATLAB 函数库中方便自己以后调用,此外许多的 MATLAB 爱好者都编写了一些经典的程序,用户可以直接进行下2 载就可以用。 3 3 2. 运筹学及 Matlab 软件的历史 2.1 运筹学历史背景: 运筹学作为科学名词出现在 20 世纪 30 年代末。第二次世界大战期间,运筹学的研究与应用范围主要是战略、战术方面。随着世界性战争的结束,各国开始快速发展经济,世界范围内的剧烈竞争也体现在经济、技术方面,运筹学的研究也向些方面拓展。运筹学为了适应时代的要求,在近几十
12、年中,无论从理论上还是应用上都得到了快速的发展。在应用方面,今天运筹学已经涉及了服务、管理、规划、决策、组织、生产、建设等诸多方面,甚至可以说,很难找出它涉不到的领域 。在理论方面,由于运筹学的需要和刺激而发展起来的一些数学分支,如数学规划,应用概率与统计、应用组合数学、对策论、数理经济学、系统科学等,都得到了迅速发展。 4 第二次世界大战以后,运筹学的活动扩展到工业和政府等部门,它的发展大致可分为三个阶段: 1.从 1945 年到 20 世纪 50 年代初,被称为创建时期。此阶段的特点是从是运筹学研究的人数不多,范围较小,运筹学的出版物、学会等寥寥无几。 2.从 20 世纪 50 年代初期到
13、 50 年代末期,被认为是运筹学的成长时期。此阶段的一 个特点是电子计算机技术的迅速发展,使得运筹学中一些方法如单纯形法、动态规划方法等,使得以用来解决实际管理系统中的优化问题,促进了运筹学的推广应用。 3.自 20 世纪 60 年代以来,被认为是运筹学开始普及和迅速发展的时期。此阶段的特点是运筹学进一步细分为各个分支,专业学术团体迅速增多,更多的期刊创办,运筹学书籍大量出版,以及更多学校将运筹学课程纳入教学计划之中。 由于运筹学在提高组织机构的效率方面已取得显著成效,它的影响还在继续扩展。 5 6 2.2 MATLAB 历史背景: 随着科技的发展运筹学问题的计算也由越来越多的软件来代替,从而
14、节省解决问题的时间和精力,而 MATLAB 软件就是其中一种应用广泛的软件。 MATLAB 名字由 MATrix 和 LABoratory 两词的前三个字母组合而成。那是 20 世纪七十年代后期的事:时任美国新墨西哥大学计算机科学系主任的 Cleve Moler 教授出于减轻4 学生编程负担的动机,为学生设计了一组调用 LINPACK 和 EISPACK 库程序的 “ 通俗易用 ”的接口,此即用 FORTRAN 编写的萌芽状态的 MATLAB 。 3 经几年的校际流传,在 Little 的推动下,由 Little 、 Moler 、 Steve Bangert 合作,于 1984 年成立了 M
15、athWorks 公司,并把 MATLAB 正式推向市场。从这时起, MATLAB 的内核采用 C 语言编写,而且除原有的数值计算能力外,还新增了数据图视功能。 MATLAB 以商品形式出现后,仅短短几年,就以其良好的开放性和运行的可靠性,使原先控制领域里的封闭式软件包(如英国的 UMIST ,瑞典的 LUND 和 SIMNON ,德国的 KEDDC )纷纷淘汰,而改以 MATLAB 为平台加以重建。在时间进入 20 世纪九十年代的时候, MATLAB 已经成为国际控制界公认的标准计算软件。 7 Matlab软件是由美国 Mathworks公司推出的用于数值计算和图形处理的科学计算系统环境。它
16、具有强大的数值计算、绘图、优化和编程等功能。 Matlab 的基础是矩阵计算 ,但是由于它的开放性 ,并且 Mathwork 也吸收了像 Maple 等软件的优点 ,使 Matlab 成为一个强大的数学软件。总的来说 ,Matlab 有如下优势和特点 : 1) 友好的工作平台和编程环境。 2) 简单易用的程序语言。 3) 强大的科学计算机数据处理能力。 4) 应用广泛的模块集合工具箱。 5) 实用的程序接口和发布平台。 6) 应用软件开发。 在实际教学中主要是通过实例的方法来说明 Matlab 在教学过程中的方便性和直观性。 8 2.3 运筹学的发展方向 运筹学正朝着 3个领域发展: 运筹学应
17、用、运筹科学和运筹数学。 现代运筹学面临的新对象是经济、技术、社会、生态和政治等因素交叉在一起的复杂系统,因此必须注意大系统、注意与系统分析相结合,与未来学相结合,引入一些非数学的方法和理论,采用软系统的思考方法。总之,运筹学还在不断发展中,新的思想、观点和方法不断出现。 5 3. 运筹学的步骤及实际问题的解答 3.1 运筹学处理问题 的步骤 运筹学研究的内容十分广泛,其主要分支有:线性规划、非线性规划、整数规划、几何规划、大型规划、动态规划、图论、网络理论、博弈论、决策论、排队论、存贮论、搜索 论等。 应用运筹学处理问题时分为 5个阶段。 规定目标和明确问题:包括把整个问题分解成若干子问题,
18、确定问题的尺度、有效性度量、可控变量和不可控变量,以及用来表示变量界限和变量间关系的常数和参数。 收集数据和建立模型:包括定义关系、经验关系和规范关系。 求解模型和优化方案:包括确定求解模型的数学方法 ,程序设计和调试 ,仿真运行和方案选优。 检验模型和评价解答:包括检验模型的一致性、灵敏度、似然性和工作能力,并用试验数据来评价模型的解。一致性是指主要参数变动时(尤其是变到极值时)模 型得出的结果是否合理;灵敏度是指输入发生微小变化时输出变化的相对大小是否合适;似然性是指对于真实数据的案例,模型是否适应;工作能力则是指模型是否容易解出,即在规定时间内算出所需的结果。 方案实施和不断优化:包括应
19、用所得的解解决实际问题,并在方案实施过程中发现新的问题和不断进行优化。上述 5个阶段往往需要交叉进行,不断反复。 现代运筹学方法强调黑箱方法、数学模型和仿真运行。它重视系统的输入输出关系,即问题所处的环境条件和问题中主要因素与环境间的关系,而不追求系统内部机理,因而易于达到从系统整体出发 来研究问题的目的。常用的数学模型有:分配模型、运输模型、选址模型、网络模型、计划排序模型、存储模型、排队模型、概率决策模型、马尔可夫模型等。模型求解往往成为应用计算机程序进行仿真运行。现在已有各种运筹学软件包供应,使运筹学可以处理相当复杂的大型问题。随着运筹学应用于社会大系统,仅靠定量分析已难以找到合6 理的
20、优化方案,人们常采用定量与定性相结合、在定量分析的基础上进行定性分析的方法。因此,在许多情况下已很难划分运筹学、系统分析与政策分析的界限。 3.2 运筹学在现实生活中的应用: 运筹学作为一门新兴科学,其 应用范围是十分广泛的。对于不同类型问题,运筹学都有着不同的解决方法,因而形成了许多分支学科。它们虽然各有特性,但在运用系统观念分析问题,并对问题建立模型求解这两点上都是共同的。这些分支学科包括线性规划、非线性规划、动态规划、决策分析等等,在此主要介绍线性规划和动态规划在经济管理中的一些应用。 3.2.1 线性规划 线性规划是目前在经济管理中应用最广泛的一种优化法,它的理论已经十分成熟,可以应用
21、于生产计划、物资调用、资源优化配置等问题。它主要研究的是经济管理活动中经常遇到的两类问题:一类是在有限的劳动力、 设备、资金等资源条件下,研究如何合理安排,取得最大的经济效果(如生产经营利润);另一类是为了达到一定的目标(生产指标或其它指标),研究如何组织生产,或合理安排工艺流程,或调整产品的成份等等,以使消耗资料(人力、设备台数、资金原材料等)为最少去实现目标。这类统筹规划的问题用数学语言表达(即数学模型),先根据问题要达到的目标选取适当的变量,问题的目标通过用变量的函数形式表示 (称为目标函数 ),对问题的限制条件用有关变量的等式或不等式表达 (称为约束条件 )。当变量连续取值,且目标函数和约束条件均为线性时,称这类模型为 线性规划的数学模型。下面举例说明线性规划在经济管理中的应用。 线性规划是运筹学的一个大分支 数学规划的组成部分。数学规划可分为静态规划和动态规划;静态规划又可分为线性规划和非线性规划。静态线性规划一般来说是研究一个 n 元实函数(称为目标函数)在一组等式或不等式约束条件下的极值问题。如果目标函数和约束条件都是线性的,则称为线性规划;否则,称之为非线性规划。线性规划问题就是一个线性函数在一组约束条件下的极值问题,其数学模型的一般形式为: