数学建模在计算机专业的应用
- 格式:doc
- 大小:107.00 KB
- 文档页数:10
数学建模与计算机的联系及重要性摘要:在当今科技发达的今天,计算机已经得到了广泛的应用,也为数学建模的计算提供了有力工具。
本文浅谈了数学建模与计算机在人类生产和生活中的重要性。
关键词:数学建模计算机重要性当今社会计算机已经被广泛的应用了,在计算机的协助下许多问题的求解变得简单、方便、快捷。
而数学建模是把现实世界中的实际问题加以提炼,抽象为数学模型,求出模型的解,验证模型的合理性,并用该数学模型所提供的解答来解释现实问题。
在科技迅猛发展的今天计算机和数学建模在人类的生存和发展中都具有举足轻重的作用。
一、数学建模与计算机息息相关其一、我们在模型求解时,有些计算单纯的用纸和笔是难以完成的,这就需要利用计算机上机计算、编制软件、绘制图形等,当结果通过计算机算出后也必须通过打印机随时进行输出。
其二、数学建模的学习对计算机能力的培养也起着极大推动作用,如报考计算机方向的研究生时,对数学的要求非常高;在进行计算机科学的研究时,也要求有极强的数学功底才能写出具有相当深度的论文,计算机科学的发展也是建立在数学基础之上的,许多为计算机的发展方面做出杰出贡献的人,在数学方面也颇有造诣。
我们在遇到一些实际问题时往往需要计算机和数学建模同时应用才能解决问题,否则问题将无法进行。
数学问题与计算机通常采用一些数学软件(lingo,Matlab,MathCAD 等等)的命令来描述算法,既简单又容易操作。
例如下面有这样一道题就是利用数学软件lingo 求解的。
例1 某工厂有两条生产线,分别用来生产M 和P 两种型号的产品,利润分别为200元每个和300元每个,生产线的最大生产能力分别为每日100和120,生产线没生产一个M 产品需要1个劳动日(1个工人工作8小时称为1个劳动日)进行调试、检测等工作,而每个P 产品需要2个劳动日,该工厂每天共计能提供160个劳动日,假如原材料等其他条件不受限制,问应如何安排生产计划,才能使获得的利润最大?解 设两种产品的生产量分别为1x 和2x ,则该问题的数学模型为:目标函数 12max 200300z x x =+约束条件 1212100,120,160,0,1,2.i x x x x x i ≤⎧⎪≤⎪⎨+≤⎪⎪≥=⎩编写LINGO 程序如下:MODEL:SETS:SHC/1,2 /:A,B,C,X; YF/1,2,3 /:J;ENDSETSDATA:A=1,2 ; B=100,120; C=200,300;ENDDATAMAX=@SUM(SHC:C*X);@FOR(SHC(I):X(I)<B(I)); @SUM(SHC(I):A(I)*X(I))<=160; END程序运行结果如下Global optimal solution found.Objective value: 29000.00Total solver iterations: 0Variable Value Reduced CostA( 1) 1.000000 0.000000A( 2) 2.000000 0.000000B( 1) 100.0000 0.000000B( 2) 120.0000 0.000000C( 1) 200.0000 0.000000C( 2) 300.0000 0.000000X( 1) 100.0000 0.000000X( 2) 30.00000 0.000000J( 1) 0.000000 0.000000J( 2) 0.000000 0.000000J( 3) 0.000000 0.000000Row Slack or Surplus Dual Price1 29000.00 1.0000002 0.000000 50.000003 90.00000 0.0000004 0.000000 150.0000最优解为12100,30,x x ==最优值为29000.00z =.即每天生产100个M 产品30个P 产品,可获得29000元利润.可见数学建模和计算机共同为问题求解提供了有效的手段,对其它课程的辅助学习帮助也是极大的。
数学建模技术在工程设计中的应用数学建模技术是指将现实问题转化为数学问题,并通过数学方法进行分析和求解的过程。
它已经成为解决实际问题的一种重要手段。
在工程设计中,数学建模技术发挥着不可替代的作用,可以提高设计效率、降低开发成本、提高产品竞争力。
一、数学建模技术在工程设计中的应用介绍1. 非线性优化模型非线性优化模型是数学建模技术中经常使用的一种模型。
在工程设计中,非线性优化模型可以应用于产品设计、工艺设计、资源配置等方面。
例如,有一个生产线需要进行最优的设备配置,此时可以使用非线性优化模型对设备的数量、型号、排列方式进行优化,使得生产线的生产效率最大化。
2. 计算机辅助设计(CAD)计算机辅助设计(CAD)是一种在计算机的帮助下进行图形化设计的技术。
CAD广泛应用于机械设计、建筑设计、电子设计等领域。
在工程设计领域中,CAD可以通过数学建模技术实现对复杂结构进行辅助设计,实现三维模型的自动生成,提高设计的质量和效率。
3. 数据分析与回归分析数据分析与回归分析是指对数据进行收集、分析、解释和预测的过程。
在工程设计中,数据分析与回归分析可以进行产品设计和市场预测。
例如,对于新产品的市场销售预测,可以通过数据分析和回归分析来预测其销售量,进而提供更为准确的市场预测结果。
二、数学建模技术在工程设计中的应用案例1. 飞机机翼设计飞机机翼的设计是一项复杂的工作,涉及到多个因素的影响。
在飞机机翼设计中,数学建模技术可以应用于翼型的优化设计、翼面上的空气流动分析、机翼的力学强度分析等方面。
通过数学建模技术的应用,可以提高机翼的设计性能,并且减少机翼的重量,从而提高飞机的飞行效率。
2. 铁路运输系统优化设计铁路运输是一种大众化的交通方式,对换乘效率和列车安全性有着极高的要求。
在铁路运输系统的优化设计中,数学建模技术可以应用于列车调度优化、铁路运输线路优化、列车制动力学分析等方面。
通过数学建模技术的应用,可以提高铁路系统的效率和安全性,减少列车运行成本。
数学与计算机的结合应用在当今数字化时代,数学与计算机的结合应用发挥着越来越重要的作用。
数学作为一门抽象思维和逻辑推理的学科,与计算机科学的应用结合,不仅丰富了数学的研究内容和方法,也推动了计算机科学的发展和应用。
本文将从数学与计算机的密切关系、数学在计算机领域的应用以及计算机在数学领域的应用等方面进行探讨。
一、数学与计算机的密切关系数学与计算机科学是紧密相关的学科,两者相辅相成,互为依托。
数学为计算机科学提供了严密的理论基础,而计算机则使数学的研究更加高效和便捷。
数学和计算机科学在方法和思想上有许多共同点:都强调逻辑推理、精确性和抽象思维。
同时,计算机科学注重实际问题的求解和应用,而数学则更加关注问题的本质和证明。
二、数学在计算机领域的应用1. 数据加密与解密数据加密是计算机安全的重要组成部分,而数学在数据加密算法中扮演着重要角色。
例如,RSA加密算法就是基于数论的一个典型例子。
该算法利用了大数分解的困难性,将数据加密成为只有私钥才能解密的形式,保障了数据的安全性。
2. 图像处理与计算机视觉图像处理是计算机视觉中的重要分支,而数学提供了图像处理算法中的数学模型和方法。
例如,数字图像处理中的卷积算法、图像变换等操作都依赖于数学的线性代数和傅里叶分析等理论基础。
这些数学方法能够对图像进行分析、增强、压缩等处理,从而实现计算机对图像的高效处理和识别。
3. 数据分析与机器学习数据分析和机器学习是计算机科学中非常热门的领域,而数学在其中起着至关重要的作用。
数据分析依赖于统计学的方法和模型,而机器学习则基于数学的优化算法和概率模型。
数学方法可以帮助我们从大量的数据中发现规律和模式,进而进行预测和决策,应用广泛。
三、计算机在数学领域的应用1. 符号计算与计算机代数系统符号计算是数学研究中的一项重要工具,可以进行复杂的代数运算和符号推导。
计算机代数系统(如Maple、Mathematica等)的出现使符号计算更加高效和方便。
数学建模与计算机的联系及重要性摘要:在当今科技发达的今天,计算机已经得到了广泛的应用,也为数学建模的计算提供了有力工具。
本文浅谈了数学建模与计算机在人类生产和生活中的重要性。
关键词:数学建模计算机重要性当今社会计算机已经被广泛的应用了,在计算机的协助下许多问题的求解变得简单、方便、快捷。
而数学建模是把现实世界中的实际问题加以提炼,抽象为数学模型,求出模型的解,验证模型的合理性,并用该数学模型所提供的解答来解释现实问题。
在科技迅猛发展的今天计算机和数学建模在人类的生存和发展中都具有举足轻重的作用。
一、数学建模与计算机息息相关其一、我们在模型求解时,有些计算单纯的用纸和笔是难以完成的,这就需要利用计算机上机计算、编制软件、绘制图形等,当结果通过计算机算出后也必须通过打印机随时进行输出。
其二、数学建模的学习对计算机能力的培养也起着极大推动作用,如报考计算机方向的研究生时,对数学的要求非常高;在进行计算机科学的研究时,也要求有极强的数学功底才能写出具有相当深度的论文,计算机科学的发展也是建立在数学基础之上的,许多为计算机的发展方面做出杰出贡献的人,在数学方面也颇有造诣。
我们在遇到一些实际问题时往往需要计算机和数学建模同时应用才能解决问题,否则问题将无法进行。
数学问题与计算机通常采用一些数学软件(lingo,Matlab,MathCAD 等等)的命令来描述算法,既简单又容易操作。
例如下面有这样一道题就是利用数学软件lingo 求解的。
例1 某工厂有两条生产线,分别用来生产M 和P 两种型号的产品,利润分别为200元每个和300元每个,生产线的最大生产能力分别为每日100和120,生产线没生产一个M 产品需要1个劳动日(1个工人工作8小时称为1个劳动日)进行调试、检测等工作,而每个P 产品需要2个劳动日,该工厂每天共计能提供160个劳动日,假如原材料等其他条件不受限制,问应如何安排生产计划,才能使获得的利润最大?解 设两种产品的生产量分别为1x 和2x ,则该问题的数学模型为:目标函数 12max 200300z x x =+约束条件 1212100,120,160,0,1,2.i x x x x x i ≤⎧⎪≤⎪⎨+≤⎪⎪≥=⎩编写LINGO 程序如下:MODEL:SETS:SHC/1,2 /:A,B,C,X; YF/1,2,3 /:J;ENDSETSDATA:A=1,2 ; B=100,120; C=200,300;ENDDATAMAX=@SUM(SHC:C*X);@FOR(SHC(I):X(I)<B(I)); @SUM(SHC(I):A(I)*X(I))<=160; END程序运行结果如下Global optimal solution found.Objective value: 29000.00Total solver iterations: 0Variable Value Reduced CostA( 1) 1.000000 0.000000A( 2) 2.000000 0.000000B( 1) 100.0000 0.000000B( 2) 120.0000 0.000000C( 1) 200.0000 0.000000C( 2) 300.0000 0.000000X( 1) 100.0000 0.000000X( 2) 30.00000 0.000000J( 1) 0.000000 0.000000J( 2) 0.000000 0.000000J( 3) 0.000000 0.000000Row Slack or Surplus Dual Price1 29000.00 1.0000002 0.000000 50.000003 90.00000 0.0000004 0.000000 150.0000最优解为12100,30,x x ==最优值为29000.00z =.即每天生产100个M 产品30个P 产品,可获得29000元利润.可见数学建模和计算机共同为问题求解提供了有效的手段,对其它课程的辅助学习帮助也是极大的。
数学建模方法应用
数学建模方法可以应用于各个领域,包括但不限于以下几个方面:
1. 物理建模:数学建模方法可以用于研究物理系统的运动、力学、电磁学等性质,从而预测和解释实验观测结果。
2. 经济建模:数学建模在经济学中的应用非常广泛,可以用于分析经济增长、市场竞争、货币政策等问题,帮助制定经济政策和决策。
3. 生物建模:数学建模可以用于研究生物系统的演化、生物群落的动态变化、遗传表达的调控机制等问题,从而帮助理解生物学中的各种现象和过程。
4. 工程建模:数学建模在工程学中的应用包括材料力学、流体力学、结构分析等方面,可以用于优化设计、预测性能和可靠性等方面。
5. 社会建模:数学建模可以用于研究社会系统中的人口迁移、流行病传播、人类行为模式等问题,帮助理解社会系统的运行规律和影响因素。
6. 计算机科学建模:数学建模在计算机科学中的应用包括算法设计、机器学习、数据挖掘等方面,可以帮助开发新的计算方法和解决实际问题。
数学建模方法在实际应用中具有很大的灵活性和适应性,可以根据具体问题的特
点和需求进行调整和扩展。
计算机技术与数学建模的有机联系计算机技术与数学建模的有机联系摘要本文阐述了计算机技术对数学建模的影响,以及它在数学建模竞赛中的应用,结合2012年全国大学生数学建模竞赛题目重点分析了数学建模的特点,探讨了多种计算机技术在数学建模中不可或缺的作用,为更好地开展数学建模,提出了建设性思路和方法。
关键词数学建模计算机技术计算机模拟一、引言计算机科学技术的迅猛发展,给许多学科带来了巨大的影响。
它不但使问题的求解变得更加方便、快捷和精确,而且使解决实际问题的领域变得更加广泛。
计算机适合于解决那些规模大、难以解析的数学模型。
在历届国际和中国大学生的数学建模(MCM)竞赛中,学生经常用计算机模拟方法求解,然后解释验证以及指导实际问题。
这个过程如果用人工实现,费时费力且短时期内可能得不到很好的解决,如果借助计算机来完成这些过程,就从根本上加快了数学建模全过程的进度,使数学建模的发展如虎添翼[1]。
因此,计算机技术是数学建模过程中不可缺少的工具和手段,数学建模也把大学生学习计算机技术与研究数学科学两者紧密结合在一起。
二、计算机技术在数学建模中的重要性众所周知,计算机是数学建模的产物,同时计算机技术的发展又极大地推动了数学建模活动,计算机高速的运算能力,非常适合数学建模过程中的数值计算;它的大容量贮存能力以及网络通讯功能,使得数学建模过程中资料存贮、检索变得方便有效;它的多媒体化,使得数学建模中一些问题能在计算机上进行更为逼真的模拟;它的智能化,能随时提醒、帮助我们进行数学模型求解[2]。
近年来的数学建模竞赛对学生的计算机技术的要求是越来越高,几乎所有的竞赛题目都涉及大量的数值计算或逻辑运算,因此不掌握计算机技术和相关数学软件的使用很难取得较好成绩的。
因此,计算机技术和数学建模之间具有密不可分的联系,两者只有有机结合,才能有效地提高学生灵活运用理论知识的能力、知识迁移的'能力、实际应用能力以及分析问题和解决问题的能力[3]。
计算机技术在数学建模中的应用数学建模是一种将现实问题抽象为数学模型并运用数学方法进行分析和求解的方法。
随着计算机技术的不断发展和应用,计算机在数学建模中的作用变得越来越重要。
本文将探讨计算机技术在数学建模中的应用,并从实际案例出发,论述其在数学建模中发挥的重要作用。
一、计算机在数学模型的建立中的应用数学建模的第一步是建立问题的数学模型,这要求我们能够准确地描述问题,并将其转化为数学形式。
计算机在这一过程中发挥着重要的作用。
例如,在非线性规划问题中,我们需要求解一个非线性的优化问题,这个问题的求解过程非常复杂。
借助计算机,我们可以将问题的目标函数和约束条件转化为数学表达式,并通过求解软件来获得问题的最优解。
计算机的高计算能力和快速运算速度,使得我们能够处理更加复杂的数学模型,并获得更准确的解答。
二、计算机在数学模型的求解中的应用数学建模的第二步是对建立好的数学模型进行求解,获得问题的解析解或近似解。
计算机在数学模型的求解过程中发挥着重要的作用。
例如,在微分方程求解中,我们常常需要借助计算机进行数值计算。
通过数值方法,我们可以将微分方程转化为差分方程,并借助计算机进行迭代计算。
这样,我们就可以获得微分方程的近似解。
计算机不仅可以进行有效的计算,还能够通过图像绘制等方式直观地展示问题的求解过程和结果,使得我们更加容易理解和分析问题。
三、计算机在数学模型的分析和验证中的应用数学建模的第三步是对求解得到的数学模型进行分析和验证,确保模型的有效性和适用性。
计算机在这一过程中也起到了关键的作用。
例如,在系统动力学建模中,我们需要对系统进行仿真分析,通过模拟系统的运行过程来研究系统的行为和性能。
计算机可以帮助我们建立系统的仿真模型,并进行模拟实验,观察系统的运行情况和结果。
通过对仿真结果的分析,我们可以进一步优化数学模型,确保模型的准确性和可靠性。
总结起来,计算机技术在数学建模中发挥着重要的作用。
它不仅可以帮助我们快速建立数学模型,还能够通过高效的计算和图像展示,帮助我们求解和分析数学模型,提高问题求解的效率和准确性。
数学专业的数学建模与计算机应用数学建模和计算机应用是当今数学专业的重要组成部分。
它们不仅是数学知识的应用和发展,而且也是解决实际问题的有力工具。
本文将介绍数学建模和计算机应用在数学专业中的重要性,以及它们对于现代社会的影响。
一、数学建模数学建模是通过技术手段将现实问题转化为数学问题,并利用数学方法来解决这些问题的过程。
它要求数学专业的学生具备扎实的数学基础知识,并具备将数学知识应用于实际问题的能力。
数学建模的过程包括对问题的分析、建立模型、求解模型和对结果的解释。
数学建模在数学专业中的重要性不言而喻。
通过数学建模,学生不仅可以将抽象的数学概念应用于实际问题,而且可以培养学生的创新意识和动手能力。
同时,数学建模也为数学专业的学生提供了一个实践和锻炼的平台,使他们能够更好地理解和掌握数学知识。
二、计算机应用计算机应用是指利用计算机技术和软件工具来解决实际问题的过程。
在数学专业中,计算机应用主要包括数值计算、数据处理和图像处理等方面。
通过计算机的强大计算和处理能力,数学专业的学生可以更加高效地求解数学问题,并且能够处理大量的数据和图像信息。
计算机应用在数学专业中的重要性不可忽视。
它不仅提高了学生的工作效率,而且也拓展了数学的研究领域。
借助计算机工具,数学专业的学生可以更加深入地研究和探索数学的各个领域,并且可以对数学模型进行仿真和实验。
三、数学建模与计算机应用的结合数学建模和计算机应用是相互关联和相互促进的。
数学建模需要计算机应用来进行数学模型的求解和仿真,而计算机应用也需要数学建模来提供数学基础和方法支持。
二者的结合使学生能够更加全面地理解和应用数学知识,同时也提高了问题的解决效率和准确性。
借助数学建模和计算机应用的结合,数学专业的学生可以解决更加复杂和实际的问题,并且可以开展更加深入和广泛的研究。
他们可以利用数学建模和计算机应用来研究和分析各种现象,探索数学的新理论和应用,为现代社会的发展做出更大的贡献。
数学建模在信息科学和工程领域中的应用随着信息技术的不断发展,信息科学和工程领域的需求也越来越多元化和复杂化。
为了解决这些问题,数学建模成为了一种有效的手段。
它通过将实际问题抽象为数学模型,并利用数学工具和方法求解,达到对问题的深入理解和解决。
本文将介绍数学建模在信息科学和工程领域中的应用,并探讨其未来发展趋势。
数学建模在信息科学中的应用在信息科学领域中,数学建模可以用于许多方面,以下是几个例子:1. 图像处理和计算机视觉图像处理和计算机视觉是信息科学领域的研究热点。
数学建模可以用于图像的去噪、图像的分割、目标检测等方面。
例如,利用偏微分方程和变分法对图像进行去噪,可以在保留图像细节的同时,去除噪声;通过对图像进行分割,可以将图像中的不同区域分割出来,从而识别出不同的物体。
在目标检测中,数学建模可以用于识别物体边缘、形状等信息,从而实现物体的自动识别和跟踪。
2. 数据挖掘与机器学习在海量数据的背景下,数据挖掘和机器学习成为了信息科学领域另一个重要研究方向。
数学建模可以用于建立相应的模型,从而解决数据挖掘和机器学习中的分类、聚类等问题。
例如,利用数学建模可以对数据进行分类,识别出不同的数据类别,并根据需求进行分析和预测。
在聚类方面,数学建模可以对数据进行聚类,从而实现数据的自动归类。
数学建模在工程领域中的应用在工程领域中,数学建模也发挥着不可替代的作用。
以下是几个例子:1. 电路设计和优化电路设计和优化是电子工程领域的重要问题。
数学建模可以用于电路的建模和模拟,从而辅助电路设计和优化。
例如,利用微分方程和高斯消元法可以对线性电路进行建模和求解,从而得到电路中电流、电势、电压等参数;利用非线性方程和差分方程可以对非线性电路进行建模,并利用数值方法求解。
2. 机械设计和控制在机械制造和控制领域中,数学建模可以用于机械系统的建模和分析,从而提高机械设计和控制的精度和效率。
例如,利用微分方程和矩阵分析方法可以对机械系统进行建模和求解,从而得到机械系统的动态响应;利用控制理论中的传递函数和反馈控制可以对机械系统进行控制,使其达到所需的运动状态和控制效果。
数学建模方法及其应用
数学建模方法是将现实问题抽象化为数学模型,通过符号、计算、推理和实验等手段进行研究解决问题的方法。
数学建模方法的应用十分广泛,包括经济学、工程学、物理学、计算机科学、生物学等领域。
1. 经济学领域:数学建模方法在经济学中的应用包括宏观经济模型、金融市场模型、产业研究模型等,可以帮助经济学家预测经济走势、分析市场趋势、评估政策效果等。
2. 工程学领域:数学建模方法在工程学中的应用包括流体力学模型、热传导模型、结构力学模型、控制系统模型等,可以用来优化设计、预测性能、进行稳定性分析等。
3. 物理学领域:数学建模方法在物理学中的应用包括量子力学模型、场论模型、统计物理模型等,可以帮助物理学家研究物理现象、发掘物理规律、解释实验结果等。
4. 计算机科学领域:数学建模方法在计算机科学中的应用包括图论模型、优化算法模型、人工智能模型等,可以用于解决最优化问题、分类问题、自然语言处理等任务。
5. 生物学领域:数学建模方法在生物学中的应用包括遗传学模型、成因变异模
型、癌症模型等,可以用于预测疾病风险、优化治疗方案、研究基因组学等问题。
总之,数学建模方法是一种十分有价值的计算工具,在各个领域都得到广泛的应用和推广。
应用一图论算法图论在计算机处理问题中占有重要地位,现实中的很多问题最终都可以转化成图论问题,或者要借助图结构来存储和处理。
但是怎么把一图存入计算机就要涉及到数学建模的知识。
比如下面一图:如果要求出从节点v1到节点v5的所有路径,就可以借助计算机来很轻松的解决。
但前提条件是,必须要把图以一种计算机可以理解的形式存进去,即要把它抽象为数学问题。
在此,我们需要定义一些关于图的概念,以便更好的描述问题。
边与顶点的关系有如下几种典型情况:简单图:无自回环,无重边的图。
无向图:边没有指向,1212e .i i i i i ψ()={v ,v }=v v 此时称边e i 与顶点12i i v ,v 关联,称顶点1i v 与顶点2i v 邻接。
有向图:边有指向,1212e .i i i i i ψ()=(v ,v )=v v下面是具体涉及到图如何存储的问题:1. 图G(V,E)的关联矩阵x R=(r )ij n m ,若G(V,E)为无向图,12i j ij i j j i j j v e r v e e v e e ⎧⎪=⎨⎪⎩与不关联与关联,为非自回环与关联,为自回环若G(V,E)为有向图,012i j ij i j i j v e r v e v e ⎧⎪=⎨⎪⎩与不关联是的起点是的终点因此该图可以用关联矩阵表示出来,如下所示110000*********10100100110100000111R ⎛⎫⎪⎪⎪= ⎪⎪ ⎪⎝⎭这样,我们就可以以矩阵的形式将图存入计算机2. 邻接矩阵图G(V,E)的邻接矩阵xn A=(a )ij n ,若G(V,E)为无向图,ij a =从i v 到的j v 边数,若不邻接,取0;若G(V,E)为有向图,ij a =从 i v 到j v 的有向边数,若无,取0.0110010011100110110101110A ⎛⎫⎪⎪ ⎪= ⎪ ⎪ ⎪⎝⎭应用二 动态规划问题动态规划是运筹学的一个分支,是求解决策过程最优化的数学方法。
20世纪50年代初美国数学家R.E.Bellman 等人在研究多阶段决策过程的优化问题时,提出了著名的最优化原理,把多阶段过程转化为一系列单阶段问题,利用各阶段之间的关系,逐个求解,创立了解决这类过程优化问题的新方法——动态规划。
也是信息学竞赛中选手必须熟练掌握的一种算法。
多阶段决策过程的最优化问题。
含有递推的思想以及各种数学原理(加法原理,乘法原理等等)。
动态规划一般可分为线性动规,区域动规,树形动规,背包动规四类。
举例线性动规:拦截导弹,合唱队形,挖地雷,建学校,剑客决斗等;区域动规:石子合并,加分二叉树,统计单词个数,炮兵布阵等;树形动规:贪吃的九头龙,二分查找树,聚会的欢乐,数字三角形等;背包问题:01背包问题,完全背包问题,分组背包问题,二维背包,装箱问题,挤牛奶。
多阶段决策的实际问题很多,下面通过具体例子,说明什么是动态规划模型中数学建模知识的运用。
最短路线问题:某工厂需要把一批货物从城市A运到城市E,中间可经过B1 、B2、B3、C1、C2、C3、D1、D2等城市,各城市之间的交通线和距离如下图所示,问应该选择一条什么路线,使得从A到E的距离最短?下面引进几个动态规划的基本概念和相关符号。
(1)阶段(Stage)把所给问题的过程,按时间和空间特征划分成若干个相互联系的阶段,以便按次序去求每个阶段的解,阶段总数一般用字母n表示,用字母k表示阶段变量。
如例中(最短路线问题)可看作是n=4阶段的动态规划问题,k=2表示处于第二阶段。
(2)状态(State)状态表示每个阶段开始时系统所处的自然状况或客观条件,它描述了研究问题过程状况。
描述各阶段状态的变量称为状态变量,常用字母s k表示第k阶段的状态变量,状态变量的取值围称为状态集,用S k表示。
如例l中,第一阶段的状态为A(即出发位置)。
第二阶段有三个状态:B1 、B2、B3,状态变量s2=B2表示第2阶段系统所处的位置是B2。
第2阶段的状态集S2={ B1 、B2、B3}。
动态规划中的状态变量应具有如下性质:当某阶段状态给定以后,在这个阶段以后过程的发展不受这个阶段以前各个阶段状态的影响。
也就是说,未来系统所处的状态只与系统当前所处的状态有关,而与系统过去所处的状态无关,即过去历史只能通过当前的状态去影响它未来的发展,这种特点称为无后效性(又称马尔可夫性)。
如果所选定的状态变量不具备无后效性,就不能作为状态变量来构造动态规划模型。
如例1中,当某阶段的初始状态即所在的城市选定以后,从这个状态以后的运货路线只与这个城市有关,不受以前的运货路线影响,所以是满足状态的无后效性的。
(3)决策(Decision)当系统在某阶段处于某种状态,可以采取的行动(或决定、选择),从而确定下一阶段系统将到达的状态,称这种行动为决策。
描述决策的变量,称为决策变量。
常用字母u k(s k)表示第k阶段系统处于状态s k时的决策变量。
决策变量的取值围称为决策集,用D k(s k)表示。
在例l的第二阶段中,若从状态B2出发,可以做出三种不同的决策,其允许的决策集为D2(B2)={ C1、C2、C3},决策u 2(B2)= C2表示第二阶段处于状态B2,选择的确行动下一阶段是走到C2。
(4)策略(Policy)系统从第k阶段的状态s k开始由每阶段的决策按顺序组成的决策序列{ up s。
k(s k) ,u k+1(s k+1),…,u n(s n)}称为一个策略(k=1,2, …,n),记作,()k n k 在例l中,p2,4(B2)={ u 2(B2)= C2,u3(C2)= D1,u 4(D1)=E}是一个策略,表示第二阶段从状态B2出发,沿着B2→C2→D1→E的方向走到终点。
注意策略必须是一串实际可行的序列行动。
(5)状态转移方程系统由这一阶段的—个状态进行决策后转变到下—阶段的另—个状态称为状态转移,状态转移既与状态有关,又与决策有关,描述状态转移关系的方程称为状态转移方程,记为:s k+1=T k (s k ,u k )它的实际意义是当系统第k 阶段处于状态s k 做决策u k 时,第k+1阶段系统转移到状态s k+1。
状态转移方程在不同的问题中有不同的具体表现形式,在例l 中,状态转移方程表示为:s k+1=u k (s k )。
(6)阶段指标阶段效益是衡量系统阶段决策结果的一种数量指标,记为:(,)k k k v s u表示系统在第k 阶段处于状态s k 做出决策u k 时所获得的阶段效益。
这里的阶段效益在不同的实际问题中有不同的意义。
在例l 中它表示两个中转站的距离,如2222222(,())(,)7v B u B C d B C ===表示从中转站B 2走到中转站C 2之间的距离为7。
更一般地有(,())(,())k k k k k k k v s u s d s u s =。
(7)指标函数指标函数是用来街量所实现过程的优劣的一种数量指标,它是一个定义在全过程和所有后部子过程上的确定的数量函数,记为:,11(,,,,,,)1,2,,k n k k k k k k V s u s u s u k n ++=它应具有可分离性,并满足递推关系式:,111,11(,,,,,,)[,,(,,,,)]k n k k k k k k k k k n k k k k V s u s u s u s u V s u s u ϕ+++++=常见的指标函数的形式是:1)过程和任一子过程的指标是它所包含的各阶段指标的和。
既,111,111(,,,,,,)(,)(,)(,,,,)]nk n k k k k k k j j j k k k k n k k k k j V s u s u s u v s u v s u V s u s u +++++===+∑2)过程和任一子过程的指标是它所包含的各阶段指标的积。
既,111,111(,,,,,,)(,)(,)(,,,,)]nk n k k k k k k j j j k k k k n k k k k j V s u s u s u v s u v s u V s u s u +++++===⋅∏(8)最优值函数指标函数的最优值,称为最优值函数,记为()k k f s 。
它表示系统在第k 阶段处于状态s k 时按最优策略行动所获得总的效益。
既,,11()()(,,,,,,)k n k k k k n k k k k k k p s f s opt V s u s u s u ++=其中opt 是最优化(optimization )的缩写,根据实际问题可取max(最大值)和min(最小值),,()k n k p s opt 表示对所有允许策略,()k n k p s 使后面算式取最优。
下面利用动态规划的逆推归纳法,将例1从最后一个城市E 逐步推算到第一个城市A ,在此()k k f s 表示第k 阶段从城市s k 到城市E 最短路。
1)当k=4时:要求44()f s ,由于第4阶段只有两个城市D 1、D 2(即s 4的取值为D 1、D 2),从D 1到E 只有一条路,故*41141()(,)4,()f D d D E u D E ===,同理*42242()(,)3,()f D d D E u D E ===。
2)当k=3时:s 3的取值为C 1、C 2、C 3,从C 1出发到E 有两条路,一条是经过D 1到E ,另一条是经过D 2到E ,显然:1141*313111242(,)()34()min min 7,()(,)()53d C D f D f C u C D d C D f D ++⎧⎫⎧⎫====⎨⎬⎨⎬++⎩⎭⎩⎭即从C 1出发到E 的最短路为7,相应决策为*311()u C D =,最短路线是C 1→D 1→E 。
同理 2141*323222242(,)()64()5,()(,)()23d C D f D f C u C D d C D f D ++⎧⎫⎧⎫====⎨⎬⎨⎬++⎩⎭⎩⎭3141*333313242(,)()14()5,()(,)()33d C D f D f C u C D d C D f D ++⎧⎫⎧⎫====⎨⎬⎨⎬++⎩⎭⎩⎭2)当k=2时:s 2的取值为B 1、B 2、B 3,从B 1出发到E 有三条路,分别是经过C 1、C 2、C 3到E ,则有:1131*2112322121333(,)()67()(,)()459,()55(,)()d B C f C f B d B C f C u B C d B C f C ++⎧⎫⎧⎫⎪⎪⎪⎪=+=+==⎨⎬⎨⎬⎪⎪⎪⎪++⎩⎭⎩⎭同理 2131*2222322232333(,)()87()(,)()7511,()65(,)()d B C f C f B d B C f C u B C d B C f C ++⎧⎫⎧⎫⎪⎪⎪⎪=+=+==⎨⎬⎨⎬⎪⎪⎪⎪++⎩⎭⎩⎭3131*233232233333(,)()77()(,)()8512,()75(3,)()d B C f C f B d B C f C u B C d B C f C ++⎧⎫⎧⎫⎪⎪⎪⎪=+=+==⎨⎬⎨⎬⎪⎪⎪⎪++⎩⎭⎩⎭2)当k=1时:s 1的只有一个取值为A. 从A 出发到E 有三条路,分别是经过B 1、B 2、B 3到E ,则有:121*122211323(,)()89()min (,)()min 91117,()612(,)()d A B f B f A d A B f B u A B d A B f B ++⎧⎫⎧⎫⎪⎪⎪⎪=+=+==⎨⎬⎨⎬⎪⎪⎪⎪++⎩⎭⎩⎭于是得到从A 到E 的最短距离17,为了找出最短路线,按计算的顺序逆推回去,可得到最优策略为:****1,41121232242(){(),(),(),()}p A u A B u B C u C D u D E =====,最短路线是A →B 1→C 2→D 2→E 。