数学建模之线性规划
- 格式:doc
- 大小:923.00 KB
- 文档页数:19
第一章 线性规划§1 线性规划在人们的生产实践中,经常会遇到如何利用现有资源来安排生产,以取得最大经济效益的问题。
此类问题构成了运筹学的一个重要分支—数学规划,而线性规划(Linear Programming 简记LP)则是数学规划的一个重要分支。
自从1947年G. B. Dantzig 提出求解线性规划的单纯形方法以来,线性规划在理论上趋向成熟,在实用中日益广泛与深入。
特别是在计算机能处理成千上万个约束条件和决策变量的线性规划问题之后,线性规划的适用领域更为广泛了,已成为现代管理中经常采用的基本方法之一。
1.1 线性规划的实例与定义例1某机床厂生产甲、乙两种机床,每台销售后的利润分别为4000元与3000元。
生产甲机床需用B A 、机器加工,加工时间分别为每台2小时和1小时;生产乙机床需用C B A 、、三种机器加工,加工时间为每台各一小时。
若每天可用于加工的机器时数分别为A 机器10小时、B 机器8小时和C 机器7小时,问该厂应生产甲、乙机床各几台,才能使总利润最大?上述问题的数学模型:设该厂生产1x 台甲机床和2x 乙机床时总利润最大,则21,x x 应满足(目标函数)2134m ax x x z += (1)s.t.(约束条件)⎪⎪⎩⎪⎪⎨⎧≥≤≤+≤+0,781022122121x x x x x x x (2)这里变量21,x x 称之为决策变量,(1)式被称为问题的目标函数,(2)中的几个不等式是问题的约束条件,记为s.t.(即subject to)。
由于上面的目标函数及约束条件均为线性函数,故被称为线性规划问题。
总之,线性规划问题是在一组线性约束条件的限制下,求一线性目标函数最大或最小的问题。
在解决实际问题时,把问题归结成一个线性规划数学模型是很重要的一步,但往往也是困难的一步,模型建立得是否恰当,直接影响到求解。
而选适当的决策变量,是我们建立有效模型的关键之一。
1.2 线性规划的Matlab 标准形式线性规划的目标函数可以是求最大值,也可以是求最小值,约束条件的不等号可以是小于号也可以是大于号。
数学建模线性规划与整数规划数学建模是一门将实际问题转化为数学问题,并利用数学方法解决的学科。
线性规划和整数规划是数学建模中常用的两种模型,它们在实际问题中有着广泛的应用。
本文将重点介绍线性规划和整数规划的概念、模型形式以及求解方法。
一、线性规划(Linear Programming)线性规划是一种在约束条件下求解线性目标函数最优解的数学模型,它的基本形式可以表示为:Min(或Max):C₁X₁ + C₂X₂ + ... + CₙXₙSubject to:A₁₁X₁ + A₁₂X₂ + ... + A₁ₙXₙ ≤ b₁A₂₁X₁ + A₂₂X₂ + ... + A₂ₙXₙ ≤ b₂...Aₙ₁X₁ + Aₙ₂X₂ + ... + AₙₙXₙ ≤ bₙX₁, X₂, ... , Xₙ ≥ 0在上述模型中,C₁,C₂,...,Cₙ为目标函数的系数,Aᵢₙ为不等式约束条件的系数,bᵢ为不等式约束条件的右端常数,X₁,X₂,...,Xₙ为决策变量。
线性规划的求解可以通过单纯形法或内点法等算法实现。
通过逐步优化决策变量的取值,可以得到满足约束条件并使目标函数达到最优的解。
二、整数规划(Integer Programming)整数规划是在线性规划基础上增加了决策变量必须取整的要求,其模型形式为:Min(或Max):C₁X₁ + C₂X₂ + ... + CₙXₙSubject to:A₁₁X₁ + A₁₂X₂ + ... + A₁ₙXₙ ≤ b₁A₂₁X₁ + A₂₂X₂ + ... + A₂ₙXₙ ≤ b₂...Aₙ₁X₁ + Aₙ₂X₂ + ... + AₙₙXₙ ≤ bₙX₁, X₂, ... , Xₙ ≥ 0X₁,X₂,...,Xₙ为整数整数规划在实际问题中常用于需要求解离散决策问题的情况,如装配线平衡、旅行商问题等。
然而,由于整数规划问题的整数约束,其求解难度大大增加。
求解整数规划问题的方法主要有分支定界法、割平面法、遗传算法等。
第一章 线性规划§1 线性规划在人们的生产实践中,经常会遇到如何利用现有资源来安排生产,以取得最大经济效益的问题。
此类问题构成了运筹学的一个重要分支—数学规划,而线性规划(Linear Programming 简记LP)则是数学规划的一个重要分支。
自从1947年G. B. Dantzig 提出求解线性规划的单纯形方法以来,线性规划在理论上趋向成熟,在实用中日益广泛与深入。
特别是在计算机能处理成千上万个约束条件和决策变量的线性规划问题之后,线性规划的适用领域更为广泛了,已成为现代管理中经常采用的基本方法之一。
1.1 线性规划的实例与定义 例1 某机床厂生产甲、乙两种机床,每台销售后的利润分别为4000元与3000元。
生产甲机床需用B A 、机器加工,加工时间分别为每台2小时和1小时;生产乙机床需用C B A 、、三种机器加工,加工时间为每台各一小时。
若每天可用于加工的机器时数分别为A 机器10小时、B 机器8小时和C 机器7小时,问该厂应生产甲、乙机床各几台,才能使总利润最大?上述问题的数学模型:设该厂生产1x 台甲机床和2x 乙机床时总利润最大,则21,x x 应满足(目标函数)2134max x x z += (1)s.t.(约束条件)⎪⎪⎩⎪⎪⎨⎧≥≤≤+≤+0,781022122121x x x x x x x (2)这里变量21,x x 称之为决策变量,(1)式被称为问题的目标函数,(2)中的几个不等式是问题的约束条件,记为s.t.(即subject to)。
由于上面的目标函数及约束条件均为线性函数,故被称为线性规划问题。
总之,线性规划问题是在一组线性约束条件的限制下,求一线性目标函数最大或最小的问题。
在解决实际问题时,把问题归结成一个线性规划数学模型是很重要的一步,但往往也是困难的一步,模型建立得是否恰当,直接影响到求解。
而选适当的决策变量,是我们建立有效模型的关键之一。
1.2 线性规划的Matlab 标准形式线性规划的目标函数可以是求最大值,也可以是求最小值,约束条件的不等号可以是小于号也可以是大于号。
线性规划1.简介:线性规划是运筹学中研究较早、发展较快、应用广泛、方法较成熟的一个重要分支,它是辅助人们进行科学管理的一种数学方法.在经济管理、交通运输、工农业生产等经济活动中,提高经济效果是人们不可缺少的要求,而提高经济效果一般通过两种途径:一是技术方面的改进,例如改善生产工艺,使用新设备和新型原材料.二是生产组织与计划的改进,即合理安排人力物力资源.线性规划所研究的是:在一定条件下,合理安排人力物力等资源,使经济效果达到最好.规划问题。
一般地,求线性目标函数在线性约束条件下的最大值或最小值的问题,统称为线性线性约束条件的解叫做可行解,由所有可行解组成的集合叫做可行域。
在优化模型中,如果目标函数f(x)和约束条件中的gi(x)都是线性函数,则该模型称为线性规划。
2.线性规划的3个基本要素(1)决策变量(2)目标函数f(x)(3)约束条件(gi(x)≤0称为约束条件)3.建立线性规划的模型(1)找出待定的未知变量(决策变量),并用袋鼠符号表示他们。
(2)找出问题中所有的限制或者约束,写出未知变量的线性方程或线性不等式。
(3)找到模型的目标或判据,写成决策变量的线性函数,以便求出其最大值或最小值。
以下题为例,来了解一下如何将线性规划用与实际的解题与生活中。
生产计划问题某工厂生产甲乙两种产品,每单位产品消耗和获得的利润如表试拟订生产计划,使该厂获得利润最大解答:根据解题的三个基本步骤(1)找出未知变量,用符号表示:设甲乙两种产品的生产量分别为x1与x2吨,利润为z万元。
(2)确定约束条件:在这道题目当中约束条件都分别为:钢材,电力,工作日以及生产量不能为负的限制钢材:9x 1+5 x 2≤360,电力:4x 1+5 x 2≤200,工作日:3x 1+10 x 2≤300,x 1 ≥0 ,x 2 ≥0,(3)确定目标函数:Z=7x 1+12 x 2所以综合上面这三步可知,这个生产组合问题的线性规划的数学模型为:max Z=7x 1+12 x 2s.t.⎪⎪⎪⎩⎪⎪⎪⎨⎧≥≥≤+≤+≤+00300103200543605921212121x x x x x x x x4.使用MATLAB 解决线性规划问题依旧是以上题为例,将其用MATLAB 来表示出来1.将目标函数用矩阵的乘法来表示max Z=(7 12)⎪⎪⎭⎫ ⎝⎛21x x 2.将约束条件也用矩阵的乘法表示s.t.⎪⎪⎪⎩⎪⎪⎪⎨⎧⎪⎪⎭⎫ ⎝⎛≤⎪⎪⎭⎫ ⎝⎛⎪⎪⎪⎭⎫ ⎝⎛≤⎪⎪⎭⎫ ⎝⎛⎪⎪⎪⎭⎫ ⎝⎛2121003002003601035459x x x x 编写MATLAB 的程序如下:c=[-7 -12]; (由于是max 函数,因此将目标函数的系数全部变为负数)A=[9,5;4,5;3,10];b=[360;200;300];Aeq=[];beq=[];vlb=[0;0];vub=[];[x,fval]=linprog(c,A,b,Aeq,beq,vlb,vub)其运行结果显示如下:x =20.000024.0000fval =-428.00005.MATLAB 求解线性规划的语句(1)c=[ ] 表示目标函数的各个决策变量的系数(2)A=[ ] 表示约束条件中≥或≤的式子中的各个决策变量的系数。
常见数学建模模型一、线性规划模型线性规划是一种常用的数学建模方法,它通过建立线性函数和约束条件,寻找最优解。
线性规划可以应用于各种实际问题,如生产调度、资源分配、运输问题等。
通过确定决策变量、目标函数和约束条件,可以建立数学模型,并利用线性规划算法求解最优解。
二、整数规划模型整数规划是线性规划的一种扩展形式,它要求决策变量为整数。
整数规划模型常用于一些离散决策问题,如旅行商问题、装箱问题等。
通过引入整数变量和相应的约束条件,可以将问题转化为整数规划模型,并利用整数规划算法求解最优解。
三、非线性规划模型非线性规划是一类目标函数或约束条件中存在非线性项的优化问题。
非线性规划模型常见于工程设计、经济优化等领域。
通过建立非线性函数和约束条件,可以将问题转化为非线性规划模型,并利用非线性规划算法求解最优解。
四、动态规划模型动态规划是一种通过将问题分解为子问题并以递归方式求解的数学建模方法。
动态规划常用于求解具有最优子结构性质的问题,如背包问题、最短路径问题等。
通过定义状态变量、状态转移方程和边界条件,可以建立动态规划模型,并利用动态规划算法求解最优解。
五、排队论模型排队论是一种研究队列系统的数学理论,可以用于描述和优化各种排队系统,如交通流、生产线、客户服务等。
排队论模型通常包括到达过程、服务过程、队列长度等要素,并通过概率和统计方法分析系统性能,如平均等待时间、系统利用率等。
六、图论模型图论是一种研究图结构和图算法的数学理论,可以用于描述和优化各种实际问题,如网络优化、路径规划、社交网络等。
图论模型通过定义节点、边和权重,以及相应的约束条件,可以建立图论模型,并利用图算法求解最优解。
七、随机模型随机模型是一种考虑不确定性因素的数学建模方法,常用于风险评估、金融建模等领域。
随机模型通过引入随机变量和概率分布,描述不确定性因素,并利用概率和统计方法分析系统行为和性能。
八、模糊模型模糊模型是一种用于处理模糊信息的数学建模方法,常用于模糊推理、模糊控制等领域。
数学建模常用方法数学建模是利用数学工具和方法来研究实际问题,并找到解决问题的最佳方法。
常用的数学建模方法包括线性规划、非线性规划、动态规划、整数规划、图论、最优化理论等。
1. 线性规划(Linear Programming, LP): 线性规划是一种在一定约束条件下寻找一组线性目标函数的最佳解的方法。
常见的线性规划问题包括生产调度问题、资源分配问题等。
2. 非线性规划(Nonlinear Programming, NLP): 非线性规划是指当目标函数或约束条件存在非线性关系时的最优化问题。
非线性规划方法包括梯度方法、牛顿法、拟牛顿法等。
3. 动态规划(Dynamic Programming, DP): 动态规划方法是一种通过将复杂的问题分解成多个子问题来求解最优解的方法。
动态规划广泛应用于计划调度、资源配置、路径优化等领域。
4. 整数规划(Integer Programming, IP): 整数规划是一种在线性规划的基础上,将变量限制为整数的最优化方法。
整数规划常用于离散变量的问题,如设备配置、路径优化等。
5. 图论(Graph Theory): 图论方法研究图结构和图运算的数学理论,常用于解决网络优化、路径规划等问题。
常见的图论方法包括最短路径算法、最小生成树算法等。
6. 最优化理论(Optimization Theory): 最优化理论是研究寻找最优解的数学方法和理论,包括凸优化、非凸优化、多目标优化等。
最优化理论在优化问题建模中起到了重要的作用。
7. 离散数学方法(Discrete Mathematics): 离散数学方法包括组合数学、图论、概率论等,常用于解决离散变量或离散状态的问题。
离散数学方法在计算机科学、工程管理等领域应用广泛。
8. 概率统计方法(Probability and Statistics): 概率统计方法通过对已有数据进行分析和建模,提供了一种推断和预测的数学方法。
概率统计方法在决策分析、风险评估等领域起到了重要的作用。
数学建模常用模型及代码
一.规划模型
1.线性规划
线性规划与非线性规划问题一般都是求最大值和最小值,都是利用最小的有限资源来求最大利益等,一般都利用lingo工具进行求解。
点击进入传送门
2.整数规划
求解方式类似于线性规划,但是其决策变量x1,x2等限定都是整数的最优化问题。
传送门
3. 0-1规划
决策变量只能为0或者为1的一类特殊的整数规划。
n个人指派n项工作的问题。
传送门
4.非线性规划
目标函数或者存在约束条件函数是决策变量的非线性函数的最优化问题。
传送门
5.多目标规划
研究多于一个的目标函数在给定区域上的最优化。
把求一个单目标,在此单目标最优的情况下将其作为约束条件再求另外一个目标。
传送门
6.动态规划
运筹学的一个分支。
求解决策过程最优化的过程。
传送门
二. 层次分析法
是一种将定性和定量相结合的,系统化的,层次化的分析方法,主要有机理分析法和统计分析法。
传送门
三.主成分分析
指标之间的相关性比较高,不利于建立指标遵循的独立性原则,指标之间应该互相独立,彼此之间不存在联系。
传送门。
数学建模常用算法模型数学建模是将实际问题抽象为数学模型,并利用数学方法求解问题的过程。
在数学建模中,算法模型是解决问题的关键。
下面介绍一些常用的数学建模算法模型。
1.线性规划模型:线性规划是一种用于求解线性约束下的最优化问题的数学方法。
线性规划模型的目标函数和约束条件均为线性函数。
线性规划广泛应用于供需平衡、生产调度、资源配置等领域。
2.非线性规划模型:非线性规划是一种用于求解非线性目标函数和约束条件的最优化问题的方法。
非线性规划模型在能源优化调度、金融风险管理、工程设计等方面有广泛应用。
3.整数规划模型:整数规划是一种在决策变量取离散值时求解最优化问题的方法。
整数规划模型在网络设计、物流调度、制造安排等领域有广泛应用。
4.动态规划模型:动态规划是一种通过将问题分解为多个阶段来求解最优化问题的方法。
动态规划模型在资源分配、投资决策、路径规划等方面有广泛应用。
5.随机规划模型:随机规划是一种在目标函数和约束条件存在不确定性时求解最优化问题的方法。
随机规划模型在风险管理、投资决策、资源调度等方面有广泛应用。
6.进化算法模型:进化算法是一种通过模拟生物进化过程来求解最优化问题的方法。
进化算法模型包括遗传算法、粒子群算法、蚁群算法等,被广泛应用于参数优化、数据挖掘、机器学习等领域。
7.神经网络模型:神经网络是一种模仿人脑神经元连接和传递信息过程的数学模型。
神经网络模型在模式识别、数据分类、信号处理等领域有广泛应用。
8.模糊数学模型:模糊数学是一种用于处理不确定性和模糊信息的数学模型。
模糊数学模型在风险评估、决策分析、控制系统等方面有广泛应用。
除了以上常用的数学建模算法模型,还有许多其他的算法模型,如图论模型、动力系统模型、马尔科夫链模型等。
不同的问题需要选择合适的算法模型进行建模和求解。
数学建模算法模型的选择和应用需要根据具体的问题和要求进行。
数学建模方法详解三种最常用算法数学建模是指将实际问题转化为数学模型,并通过数学方法进行求解和分析的过程。
在数学建模中,常用的算法有很多种,其中最常用的有三种,分别是线性规划、整数规划和动态规划。
一、线性规划线性规划是一种优化方法,用于在给定的约束条件下,寻找目标函数最大或最小值的一种方法。
它的数学形式是以线性约束条件为基础的最优化问题。
线性规划的基本假设是目标函数和约束条件均为线性的。
线性规划通常分为单目标线性规划和多目标线性规划,其中单目标线性规划是指在一个目标函数下找到最优解,而多目标线性规划则是在多个目标函数下找到一组最优解。
线性规划的求解方法主要有两种:单纯形法和内点法。
单纯形法是最常用的求解线性规划问题的方法,它的核心思想是通过不断迭代改进当前解来达到最优解。
内点法是一种相对较新的求解线性规划问题的方法,它的主要思想是通过从可行域的内部最优解。
二、整数规划整数规划是线性规划的一种扩展形式,它在线性规划的基础上增加了变量必须取整数的限制条件。
整数规划具有很强的实际应用性,它能够用于解决很多实际问题,如资源分配、生产优化等。
整数规划的求解方法通常有两种:分支定界法和割平面法。
分支定界法是一种常用的求解整数规划问题的方法,它的基本思想是通过将问题划分为若干个子问题,并通过求解子问题来逐步缩小解空间,最终找到最优解。
割平面法也是一种常用的求解整数规划问题的方法,它的主要思想是通过不断添加线性割平面来修剪解空间,从而找到最优解。
三、动态规划动态规划是一种用于求解多阶段决策问题的数学方法。
多阶段决策问题是指问题的求解过程可以分为若干个阶段,并且每个阶段的决策都受到之前决策的影响。
动态规划的核心思想是将问题划分为若干个相互关联的子问题,并通过求解子问题的最优解来求解原始问题的最优解。
动态规划通常分为两种形式:无后效性和最优子结构。
无后效性是指一个阶段的决策只与之前的状态有关,与之后的状态无关。
最优子结构是指问题的最优解能够由子问题的最优解推导而来。
数学建模:常见的线性规划问题求解方法1. 引言在数学建模中,线性规划是一种常见的数学模型。
它通常用于求解优化问题,在多个约束条件下找到使目标函数最大或最小的变量值。
本文将介绍几种常见的线性规划问题求解方法。
2. 单纯形法单纯形法是一种经典且高效的线性规划问题求解方法。
它通过不断移动基变量和非基变量来搜索可行解集,并在每次移动后更新目标函数值,直到达到最优解。
该方法适用于标准形式和松弛法形式的线性规划问题。
2.1 算法步骤1.初始化:确定基变量和非基变量,并计算初始相应坐标。
2.计算检验数:根据当前基变量计算检验数,选取检验数最小的非基变量作为入基变量。
3.计算转角系数:根据入基变量计算转角系数,并选择合适的出基变量。
4.更新表格:进行行列交换操作,更新表格中的各项值。
5.结束条件:重复2-4步骤,直至满足结束条件。
2.2 优缺点优点: - 单纯形法的时间复杂度较低,适用于小规模线性规划问题。
- 可以处理带等式约束和不等式约束的线性规划问题。
缺点: - 在某些情况下,单纯形法会陷入梯度消失或梯度爆炸的情况,导致无法找到最优解。
- 处理大规模问题时,计算量较大且可能需要较长时间。
3. 内点法内点法是另一种常见的线性规划求解方法。
与单纯形法不同,内点法通过在可行域内搜索目标函数的最优解。
它使用迭代过程逼近最优解,直到满足停止条件。
3.1 算法步骤1.初始化:选取一个可行解作为初始点,并选择适当的中心路径参数。
2.计算对偶变量:根据当前迭代点计算对偶变量,并更新目标函数值。
3.迭代过程:根据指定的迭代更新方程,在可行域内搜索目标函数的最优解。
4.结束条件:重复2-3步骤,直至满足结束条件。
3.2 优缺点优点: - 内点法相对于单纯形法可以更快地收敛到最优解。
- 在处理大规模问题时,内点法的计算效率更高。
缺点: - 内点法需要选择适当的中心路径参数,不当的选择可能导致迭代过程较慢。
- 对于某些复杂的线性规划问题,内点法可能无法找到最优解。
01-线性规划(数学建模) 线性规划是一种数学建模技术,用于解决一类特定的优化问题。
这些问题通常涉及到在一组线性约束条件下最大化或最小化一个线性目标函数。
线性规划的应用广泛,包括诸如生产计划、货物运输、资源分配等问题。
线性规划的基本模型由以下三个要素组成:1.决策变量:这是我们希望优化的变量。
它们通常是连续的实数变量,可以在问题中自由设定其范围。
2.目标函数:这是我们希望最大化或最小化的函数。
目标函数通常是决策变量的线性函数。
3.约束条件:这些是限制决策变量选择的条件。
它们通常是由决策变量的线性不等式或等式表示。
线性规划问题的一般形式可以表示为:最大化(或最小化)目标函数: c^T x在满足以下条件的情况下:Ax = bx >= lbx <= ub其中,c是目标函数的系数向量,x是决策变量向量,A是约束条件的系数矩阵,b是约束条件的右侧常数向量,lb和ub分别是决策变量的下界和上界。
线性规划问题的求解方法有很多种,其中最常用的方法是使用单纯形法。
单纯形法的基本思想是通过在约束条件下不断迭代,寻找最优解。
在每次迭代中,我们根据目标函数的系数和约束条件,计算出每个约束条件的"优势",然后选择具有最大优势的约束条件进行扩展,直到找到最优解或确定无解。
线性规划问题在现实世界中的应用非常广泛。
例如,我们可以使用线性规划来安排生产计划,使得总成本最低。
我们也可以使用线性规划来分配资源,使得某种资源的需求总和不超过供应总和。
下面是一个具体的例子:假设我们有一个公司,生产三种产品:A、B和C。
每种产品都有各自的生产成本(单位成本),以及各自的预期销售量(单位售价)。
我们希望确定每种产品的生产量,以使得总生产成本最低,同时总销售收入最高。
这个问题可以通过一个线性规划来解决。
我们可以将生产量作为决策变量,将总生产成本和总销售收入分别作为目标函数和约束条件。
通过求解这个线性规划问题,我们可以得到最优的生产计划。
常用数学建模方法及实例数学建模是将实际问题转化为数学模型,通过数学方法进行求解和分析的过程。
常用的数学建模方法包括线性规划、整数规划、非线性规划、图论、动态规划等。
一、线性规划线性规划是一种用于求解线性约束下目标函数的最优值的方法。
它常用于资源分配、生产计划、供应链管理等领域。
例1:公司有两个工厂生产产品A和产品B,两种产品的生产过程需要使用原材料X和Y。
产品A和产品B的利润分别为10和8、工厂1每小时生产产品A需要1个单位的X和2个单位的Y,每小时生产产品B需要2个单位的X和1个单位的Y。
工厂2每小时生产产品A需要2个单位的X和1个单位的Y,每小时生产产品B需要1个单位的X和3个单位的Y。
公司给定了每种原材料的供应量,求使公司利润最大化的生产计划。
二、整数规划整数规划是线性规划的一种扩展,要求变量的取值为整数。
整数规划常用于离散决策问题。
例2:公司有5个项目需要投资,每个项目的投资金额和预期回报率如下表所示。
公司有100万元的投资资金,为了最大化总回报率,应该选择哪几个项目进行投资?项目投资金额(万元)预期回报率1207%2306%3409%4104%5508%三、非线性规划非线性规划是一种求解非线性目标函数下约束条件的最优值的方法。
它广泛应用于经济、金融和工程等领域。
例3:公司通过降低售价和增加广告费用来提高销售额。
已知当售价为p时,销量为q=5000-20p,广告费用为a时,销售额为s=p*q-2000a。
已知售价的范围为0≤p≤100,广告费用的范围为0≤a≤200,公司希望最大化销售额,求最优的售价和广告费用。
四、图论图论是一种用于研究图(由节点和边组成)之间关系和性质的数学方法,常用于网络分析、路径优化、社交网络等领域。
例4:求解最短路径问题。
已知一个有向图,图中每个节点表示一个城市,每条边表示两个城市之间的道路,边上的权重表示两个城市之间的距离。
求从起始城市到目标城市的最短路径。
五、动态规划动态规划是一种通过将问题划分为子问题进行求解的方法,常用于求解最优化问题。
第一章 线性规划§1 线性规划在人们的生产实践中,经常会遇到如何利用现有资源来安排生产,以取得最大经济效益的问题。
此类问题构成了运筹学的一个重要分支—数学规划,而线性规划(Linear Programming 简记LP)则是数学规划的一个重要分支。
自从1947年G. B. Dantzig 提出求解线性规划的单纯形方法以来,线性规划在理论上趋向成熟,在实用中日益广泛与深入。
特别是在计算机能处理成千上万个约束条件和决策变量的线性规划问题之后,线性规划的适用领域更为广泛了,已成为现代管理中经常采用的基本方法之一。
1.1 线性规划的实例与定义例1某机床厂生产甲、乙两种机床,每台销售后的利润分别为4000元与3000元。
生产甲机床需用B A 、机器加工,加工时间分别为每台2小时和1小时;生产乙机床需用C B A 、、三种机器加工,加工时间为每台各一小时。
若每天可用于加工的机器时数分别为A 机器10小时、B 机器8小时和C 机器7小时,问该厂应生产甲、乙机床各几台,才能使总利润最大?上述问题的数学模型:设该厂生产1x 台甲机床和2x 乙机床时总利润最大,则21,x x 应满足(目标函数)2134m ax x x z += (1)s.t.(约束条件)⎪⎪⎩⎪⎪⎨⎧≥≤≤+≤+0,781022122121x x x x x x x (2)这里变量21,x x 称之为决策变量,(1)式被称为问题的目标函数,(2)中的几个不等式是问题的约束条件,记为s.t.(即subject to)。
由于上面的目标函数及约束条件均为线性函数,故被称为线性规划问题。
总之,线性规划问题是在一组线性约束条件的限制下,求一线性目标函数最大或最小的问题。
在解决实际问题时,把问题归结成一个线性规划数学模型是很重要的一步,但往往也是困难的一步,模型建立得是否恰当,直接影响到求解。
而选适当的决策变量,是我们建立有效模型的关键之一。
1.2 线性规划的Matlab 标准形式线性规划的目标函数可以是求最大值,也可以是求最小值,约束条件的不等号可以是小于号也可以是大于号。
为了避免这种形式多样性带来的不便,Matlab 中规定线性规划的标准形式为b Ax xc xT ≤ that such min beq x Aeq =⋅ ub x lb ≤≤其中c 和x 为n 维列向量,A 、Aeq 为适当维数的矩阵,b 、beq 为适当维数的列向量。
例如线性规划b Ax xc xT ≥ that such max的Matlab 标准型为b Ax xc xT -≤-- that such min 1.3 线性规划问题的解的概念 一般线性规划问题的标准型为∑==nj j j x c z 1max(3)s.t.nj x mi b x a j nj ij ij,,2,10,,2,11ΛΛ=≥==∑=(4)可行解 满足约束条件(4)的解),,,(21n x x x x Λ=,称为线性规划问题的可行解,而使目标函数(3)达到最小值的可行解叫最优解。
可行域 所有可行解构成的集合称为问题的可行域,记为R 。
求解例1。
对于每一固定的值z ,使目标函数值等于z 的点构成的直线称为目标函数等位线,当z 变动时,我们得到一族平行直线。
对于例1,显然等位线越趋于右上方,其上的点具有越大的目标函数值。
不难看出,本例的最优解为Tx )6,2(*=,最优目标值26*=z 。
从上面的图解过程可以看出并不难证明以下断言:(1)可行域R 可能会出现多种情况。
R 可能是空集也可能是非空集合,当R 非空时,它必定是若干个半平面的交集(除非遇到空间维数的退化)。
R 既可能是有界区域,也可能是无界区域。
(2)在R 非空时,线性规划既可以存在有限最优解,也可以不存在有限最优解(其目标函数值无界)。
(3)若线性规划存在有限最优解,则必可找到具有最优目标函数值的可行域R 的“顶点”。
上述论断可以推广到一般的线性规划问题,区别只在于空间的维数。
在一般的n 维空间中,满足一线性等式∑==ni ii b xa 1的点集被称为一个超平面,而满足一线性不等式∑=≤ni ii b xa 1(或∑=≥ni i i b x a 1)的点集被称为一个半空间(其中),,(1n a a Λ为一n 维行向量,b 为一实数)。
若干个半空间的交集被称为多胞形,有界的多胞形又被称为多面体。
易见,线性规划的可行域必为多胞形(为统一起见,空集Φ也被视为多胞形)。
在一般n 维空间中,要直接得出多胞形“顶点”概念还有一些困难。
二维空间中的顶点可以看成为边界直线的交点,但这一几何概念的推广在一般n 维空间中的几何意义并不十分直观。
为此,我们将采用另一途径来定义它。
定义 1 称n 维空间中的区域R 为一凸集,若R x x ∈∀21,及)1,0(∈∀λ,有R x x ∈-+21)1(λλ。
定义2 设R 为n 维空间中的一个凸集,R 中的点x 被称为R 的一个极点,若不存在R x x ∈21、及)1,0(∈λ,使得21)1(x x x λλ-+=。
定义1 说明凸集中任意两点的连线必在此凸集中;而定义2 说明,若x 是凸集R 的一个极点,则x 不能位于R 中任意两点的连线上。
不难证明,多胞形必为凸集。
同样也不难证明,二维空间中可行域R 的顶点均为R 的极点(R 也没有其它的极点)。
1.5 求解线性规划的Matlab 解法单纯形法是求解线性规划问题的最常用、最有效的算法之一。
这里我们就不介绍单纯形法,有兴趣的读者可以参看其它线性规划书籍。
下面我们介绍线性规划的Matlab 解法。
Matlab 中线性规划的标准型为b Ax xc T x≤ such that minbeq x Aeq =⋅ub x lb ≤≤基本函数形式为linprog(c,A,b),它的返回值是向量x 的值。
还有其它的一些函数调用形式(在 Matlab 指令窗运行 help linprog 可以看到所有的函数调用形式),如:[x,fval]=linprog(c,A,b,Aeq,beq,LB,UB,X 0,OPTIONS) 这里fval 返回目标函数的值,LB 和UB 分别是变量x 的下界和上界,0x 是x 的初始值,OPTIONS 是控制参数。
例2 求解下列线性规划问题 321532m ax x x x z -+=⎪⎩⎪⎨⎧≥≥+-=++0,,10527321321321x x x x x x x x x 解 (i )编写M 文件 c=[2;3;-5];a=[-2,5,-1]; b=-10; aeq=[1,1,1]; beq=7;x=linprog(-c,a,b,aeq,beq,zeros(3,1)) value=c'*x(ii )将M 文件存盘,并命名为example1.m 。
(iii )在Matlab 指令窗运行example1即可得所求结果。
例3 求解线性规划问题32132 m in x x x z ++=⎪⎩⎪⎨⎧≥≥+≥++0,,62382432121321x x x x x x x x 解 编写Matlab 程序如下: c=[2;3;1];a=[1,4,2;3,2,0]; b=[8;6];[x,y]=linprog(c,-a,-b,[],[],zeros(3,1))1.6 可以转化为线性规划的问题很多看起来不是线性规划的问题也可以通过变换变成线性规划的问题来解决。
如: 例4 规划问题为bAx x x x n ≤+++ t.s.||||||min 21Λ其中Tn x x x ][1Λ=,A 和b 为相应维数的矩阵和向量。
要把上面的问题变换成线性规划问题,只要注意到事实:对任意的i x ,存在0,>i i v u 满足i i i v u x -=,i i i v u x +=||事实上,我们只要取2||i i i x x u +=,2||ii i x x v -=就可以满足上面的条件。
这样,记T n u u u ][1Λ=,Tn v v v ][1Λ=,从而我们可以把上面的问题变成∑=+ni i iv u1)(min⎩⎨⎧≥≤-0,)( t.s.v u bv u A 例5 |}|max {min i y x iiε其中i i i y x -=ε。
对于这个问题,如果我们取||max 0i y ix ε=,这样,上面的问题就变换成0minx0011,, t.s.x y x x y x n n ≤-≤-Λ此即我们通常的线性规划问题。
§2 运输问题(产销平衡)例6 某商品有m 个产地、n 个销地,各产地的产量分别为m a a ,,1Λ,各销地的需求量分别为n b b ,,1Λ。
若该商品由i 产地运到j 销地的单位运价为ij c ,问应该如何调运才能使总运费最省?解:引入变量ij x ,其取值为由i 产地运往j 销地的该商品数量,数学模型为∑∑==m i nj ijij xc 11mins.t. ⎪⎪⎪⎩⎪⎪⎪⎨⎧≥====∑∑==0,,2,1,,,1,11ij mi j ij nj i ij x n j b x m i a x ΛΛ显然是一个线性规划问题,当然可以用单纯形法求解。
对产销平衡的运输问题,由于有以下关系式存在:∑∑∑∑∑∑=======⎪⎭⎫ ⎝⎛=⎪⎪⎭⎫ ⎝⎛=mi i nj n j m i ij mi n j ij j a x x b 111111其约束条件的系数矩阵相当特殊,可用比较简单的计算方法,习惯上称为表上作业法(由康托洛维奇和希奇柯克两人独立地提出,简称康—希表上作业法)。
§3 指派问题3.1 指派问题的数学模型例7拟分配n 人去干n 项工作,每人干且仅干一项工作,若分配第i 人去干第j 项工作,需花费ij c 单位时间,问应如何分配工作才能使工人花费的总时间最少?容易看出,要给出一个指派问题的实例,只需给出矩阵)(ij c C =,C 被称为指派问题的系数矩阵。
引入变量ij x ,若分配i 干j 工作,则取1=ij x ,否则取0=ij x 。
上述指派问题的数学模型为∑∑==n i nj ijij xc 11mins.t.1 01111⎪⎪⎪⎩⎪⎪⎪⎨⎧===∑∑==或ij ni ij nj ij x x x (5)(5)的可行解既可以用一个矩阵表示,其每行每列均有且只有一个元素为1,其余元素均为0,也可以用n ,,1Λ中的一个置换表示。
(5)的变量只能取0或1,从而是一个0-1规划问题。
一般的0-1规划问题求解极为困难。
但指派问题并不难解,其约束方程组的系数矩阵十分特殊(被称为全单位模矩阵,其各阶非零子式均为1±),其非负可行解的分量只能取0或1,故约束10或=ij x 可改写为0≥ij x 而不改变其解。