线性规划问题规范型算法计算机实现研究
- 格式:doc
- 大小:23.50 KB
- 文档页数:5
线性规划问题的求解算法和应用线性规划是一种常见的数学优化问题,求解线性规划问题具有广泛的应用。
本文将对线性规划相关算法进行介绍,并讨论线性规划在实际问题中的应用。
一、线性规划基本概念线性规划是指在一定约束条件下,优化一个线性目标函数的问题。
线性规划问题的一般形式如下:\begin{equation}\begin{aligned} \max/min & \quadc_{1}x_{1}+c_{2}x_{2}+...c_{n}x_{n} \\ \text{s.t.} & \quada_{11}x_{1}+a_{12}x_{2}+...a_{1n}x_{n}\leq b_{1} \\ & \quada_{21}x_{1}+a_{22}x_{2}+...a_{2n}x_{n}\leq b_{2} \\ & \quad ... \\ & \quad a_{m1}x_{1}+a_{m2}x_{2}+...a_{mn}x_{n}\leq b_{m} \\ & \quad x_{i}\geq 0(i=1,2,...,n) \end{aligned}\end{equation}其中,$c_{i}$是目标函数的系数,$a_{ij}$是约束条件的系数,$b_{i}$是约束条件的右端常数,$x_{i}$是决策变量。
线性规划的基本概念包括可行解、最优解、最优值等。
可行解是指满足约束条件的解。
最优解是指目标函数取得最优值时的决策变量取值。
最优值是指目标函数在可行解集合中取得的最大或最小值。
二、线性规划的求解方法线性规划的求解方法主要分为两种:单纯形法和内点法。
下面对这两种方法进行简要介绍。
1. 单纯形法单纯形法是目前解决线性规划问题的最主要方法。
其基本思想是通过不断地在可行解集合内移动,最终找到最优解。
它的具体步骤是:选择一个基本可行解作为起始点,然后通过寻找相邻可行解的方式来不断移动,直至找到最优解。
线性规划问题的算法综述本文从网络收集而来,上传到平台为了帮到更多的人,如果您需要使用本文档,请点击下载按钮下载本文档(有偿下载),另外祝您生活愉快,工作顺利,万事如意!线性规划概念是在1947年的军事行动计划有关实践中产生的,而相关问题1823年Forier和口1911年PQusi就已经提出过,发展至今已有将近100年的历史了。
现在已成为生产制造、市场营销、银行贷款、股票行情、出租车费、统筹运输、电话资费、电脑上网等等热点现实问题决策的依据。
线性规划就是在满足线性约束下,求线性函数的极值。
毋庸置疑,数学规划领域的重大突破总是始于线形规划。
提到线性规划算法,人们最先想到的是单纯形法和内点法。
单纯形法是实际应用中使用最普遍的一种线性规划算法,而研究者们已证明在最坏的情况下单纯形法的计算复杂度是指数级的,内点算法的计算复杂度是多项式时间的。
把两种算法相提并论,要么是这两种算法都已经非常完备,要么都有需改进之处。
显然不属于前者,即两者都有需要改进之处。
几十年来,研究者通过不断努力,在两种算法的计算上都取得相当的进展。
1数学模型线性规划问题通常表示成如下两种形式:标准型、规范型。
设jj(2…,n)是待确定的非负的决策变量;认2…,n)是与决策变量相对应的价格系数;K2…mj=l2…n)是技术系数;b(i12…,m)是右端项系数;线性规划是运筹学最基本、运用最广泛的分支,是其他运筹学问题研究的基础。
在20世纪50年代到60年代期间,运筹学领域出现许多新的分支:非线性规划(nonlinearprogranming、商业应用(crnxmereialpplieation、大尺度方法(laresealemeh-Qd)随机规划(stochasticPKgiamniig)、整数规划(ntegerprogramming)、互补转轴理论(amplmentaiyPivotheor)多项式时间算法(polynomialtjneagatm)等。
用電腦解線性規劃問題撰寫學生 : 張馨云指導老師 : 吳秉鋒 主任摘要:線性規畫所研究的問題主要有兩類:1.一項任務確定後,如何統籌安排,盡量做到用最少的人力、物力資源去完成這一任務;2.有一定數量的人力物力資源,如何安排使用它們,使得完成任務最多。
總之,就是尋求整個問題的某個整體指標最優的問題。
應用在運輸問題、生產的組織與計劃問題、合理下料問題、配料問題、佈局問題等。
線性規劃最基本的理論和方法是:圖上作法和單純形法,但如果要計算較複雜的問題,例如要算報表之類的問題,用圖上作法或單純形法會花很多時間,所以可使用excel解決此類問題,便可很快速算出所要的答案。
關鍵字:線性規劃、試算表、excel壹、專題動機在一次機緣下問了一題有關線性規劃的問題,老師告訴我這種問題可以使用電腦一下子就算出來,比親手算的速度快好幾倍,在好奇心的驅使下,變想要一探究竟,產生莫大的興趣。
貳、專題目標有了這個技巧,以後要算報表.最佳工讀生值班表.投資理財最有效的投資組合等這種要算最大利潤或最小成本之類的問題,就可以很有效率的算出來,對生活有很大的幫助。
参、所遇問題與其解決方法剛開始很多有關線性規劃的問題,不知道如何解,加上用excel解線性規畫是我第一次的經驗,過程許多都看不懂,但經過老師的指導後,終於恍然大悟。
肆、相關研究及討論一、介紹線性規劃在數學中,線性規劃問題是目標函數和約束條件都是線性的最優化問題。
線性規劃是最優化問題中重要的領域之一。
很多運籌學中的實際問題都可以用線性規劃問題來表述。
線性規劃的某些特殊情況,例如網路流問題和多商品流量問題,都被認為很重要,以致產生出對其專門的演算法的大量研究。
同樣地,在微觀經濟學和商業管理領域,線性規劃被大量應用地於收入極大化或生產過程的成本極小化。
喬治.丹齊格被認爲是線性規劃之父。
線性規劃理論所能解決的管理問題,其中有關的未知數,應變數與自變數之間,係呈線性關係。
問題中的應變數,通常表示求取某項經濟上的目標,例如利潤、成本、產量、容量的極大值或極小值。
线性规划问题计算机解法本节将简要介绍几种软件求解线性规划问题的方法.1.6.1应用EXCEL求解线性规划问题以EXCEL2007为例,首先加载EXCEL规划求解加载项,具体操作步骤为:Office按钮——EXCEL选项——加载项——转到——加载宏——规划求解加载项,此时在“数据”选项卡中出现带有“规划求解”按钮的“分析”组.下面仍然以例1.5为例,说明其求解过程:1设计电子表格将模型中的数据直接输入到工作表中并保存文档.其中,A列为说明性文字,A3为决策变量的初始值,可以任意给定,本例均设为0;在D4其中键入“=SUMPRODUCT (B$3:C$3,B4:C4)”或者从直接从函数中选择,SUMPRODUCT是EXCEL的一个内置函数,,x x初始其功能是两个向量或者矩阵对应元素乘积的和,因此表示表示目标函数值,由于12值设为0,因而显示0;同理在D5其中键入“=SUMPRODUCT(B$3:C$3,B5:C5)”,以此类推,其显示值均为0.2设置规划求解参数点击“分析”组中的“规划求解”按钮即可弹出如下对话框:在设计目标目标单元格中键入$D$4,或者直接点击单元格D4,并选择“最大值”选项,如下图所示点击对话框中“添加”,弹出如下对话框在“单元格引用位置”栏中键入“$D$ 5”(或点击单元格D5),选择“<=”(点击出现下拉菜单,可以选择其他约束形式),在约束值栏中键入“$F$5”(或点击单元格F5),确定后弹出下面对话框:类似于上一步操作,添加所有的约束条件后如下图所示:3 应用规划求解工具:点击“求解”弹出如下对话框,选择“保存规划求解结果”与“运算结果报告”确定后则形成一张新的工作表:如果想得到价值系数、资源向量等条件对最优值的影响,可以在步骤3中选择输出“敏感性报告”.1.6.1应用LINGO求解线性规划问题从上面的介绍中看出,用EXCEL求解线性规划问题时操作简单,而其在输入数据方面有其方便之处.但如果决策变量和约束条件很多的话,其运行速度就不及专业的优化软件了.本节介绍一种专业的优化软件--LINGO的使用方法.LINDO 是 Linear Interactive Discrete Optimizer的缩写,是一个线性和整数规划的软件系统. LINDO /386 5.3以上版本,最大规模的模型的非零系数可以达到1,000,000个,最大变量个数可以达到100,000个,最大目标函数和约束条件个数可以达到32000个,最大整数变量个数可以达到100,000个。
线性规划问题的两种求解方式线性规划是运筹学中研究较早、发展较快、应用广泛、方法较成熟的一个重要分支,它是辅助人们进行科学管理的一种数学方法。
线性规划所研究的是:在一定条件下,合理安排人力物力等资源,使经济效果达到最好。
一般地,求线性目标函数在线性约束条件下的最大值或最小值的问题,统称为线性规划问题。
解决线性规划问题常用的方法是图解法和单纯性法,而图解法简单方便,但只适用于二维的线性规划问题,单纯性法的优点是可以适用于所有的线性规划问题,缺点是单纯形法中涉及大量不同的算法,为了针对不同的线性规划问题,计算量大,复杂繁琐。
在这个计算机高速发展的阶段,利用Excel建立电子表格模型,并利用它提供的“规划求解”工具,能轻松快捷地求解线性模型的解。
无论利用哪种方法进行求解线性规划问题,首先都需要对线性规划问题建立数学模型,确定目标函数和相应的约束条件,进而进行求解。
从实际问题中建立数学模型一般有以下三个步骤;1、根据所求目标的影响因素找到决策变量;2、由决策变量和所求目标的函数关系确定目标函数;3、由决策变量所受的限制条件确定决策变量所要满足的约束条件。
以下是分别利用单纯形法和Excel表格中的“规划求解”两种方法对例题进行求解的过程。
例题:某工厂在计划期内要安排生产I、II两种产品,已知生产单位产品所需的设备台时分别为1台时、2台时,所需原材料A分别为4单位、0单位,所需原材料B分别为0单位、4单位,工厂中设备运转最多台时为8台时,原材料A、B的总量分别为16单位、12单位。
每生产出I、II产品所获得的利润为2和3,问I、II两种产品的生产数量的哪种组合能使总利润最大?问题的决策变量有两个:产品I的生产数量和产品II的生产数量;目标是总利润最大;需满足的条件是:(1)两种产品使用设备的台时<= 台时限量值(2) 生产两种产品使用原材料A、B的数量<= 限量值(3)产品I、II的生产数量均>=0。
3. 线性规划的应用及计算机求解迄今为止,线性规划可以说是最成功的定量分析工具之一。
特别是随着信息技术的发展, 线性规划在国民经济的各行各业中,特别是在金融,企业管理,市场销售,人力资源,和生产管理等领域获得广泛应用。
实践证明,利用线性规划分配资源可为企业和社会节约大量财富。
在本章中,我们将要研究常见的资源配置问题并说明如何利用线性规划工具求解最优配置问题。
对于那些愿意将工作完成更好的个人或机构,为满足某一特定目标而对有限资源进行分配是一件非常重要的工作。
3.1线性规划在制造业中的应用:制定生产计划在制造行业中,利用线性规划制订企业的生产计划是非常普遍现象。
详细的生产计划包括决定生产那些规格的产品以及对应于每种产品的数量,同时生产计划一方面应当考虑市场需求和有效地满足企业现有的原材料,人力,材料供应,和设备加工能力等约束条件,另一方面应当考虑产品之间的关系。
线性规划能够根据管理者的目标在各种可行的生产方案中挑选出一个最优的方案,比如说,寻求利润最大的生产方案。
3.1.1汽车生产计划首都汽车制造厂生产五种不同档次轿车,而生产轿车的关键原材料或部件,以及熟练技术工人的工时都是有限的,工厂经营者需要决定每款轿车的产量,使得总利润最大。
为了建立线性规划模型,我们首先定义决策变量如下:=1X 豪华型轿车的产量=2X 高档轿车的产量=3X 中档轿车的产量=4X 经济型轿车的产量=5X 微型豪华轿车的产量每辆轿车的车身都必须使用用同一种混合材料制造,其库存总量是000,502m 。
装配任何一款轿车都用到两种基础配件:配件A 和配件B ,而工厂现有库存量分别是000,10件和000,25件。
装配线上的工人必须接受过专业训练,工厂技术工人的总工时为000,2小时。
我们假设其他在轿车生产过程中的其他辅助材料,零配件,像轮胎,皮革,塑料成品等可以随叫随到,不受限制,还假设其他工种工人的工时数不受限制。
每款轿车的单车利润是单车销售收入减单车生产成本,假设各款轿车的单车利润分别为人民币58,43,25,17,和28万元,所以下述目标函数反应了生产计划的总利润:543212817254358X X X X X P ++++=在资源使用方面,每辆豪华型轿车的车身需用去252m 混合材料,高档轿车,中档轿车,经济型轿车,和微型豪华轿车的单车用料分别为15,10,5,和12m 。
求解线性规划问题的整数规划算法研究Introduction线性规划问题是运筹学中最基本的问题之一,是一种优化问题,在数学和计算机科学中都有广泛的应用。
而整数规划算法则是针对线性规划问题中所有变量都必须取整的情况而设计的一类算法。
在实际应用中,很多情况下最优解需要得到整数解。
本文主要研究求解线性规划问题的整数规划算法,并介绍其中比较常见的两种算法:分支定界法和割平面法。
分支定界法分支定界法是将整数规划问题分成若干个子问题,每个子问题是原问题的一个部分,可以得到其最优解。
该算法的基本思想是先找到一个松弛线性规划问题的最优解,然后选择一个变量进行分支。
具体实现方式是拆分成两个子问题,一个子问题中该变量小于等于其整数部分,另一个子问题中该变量大于等于其整数部分加1,然后分别对这两个子问题进行求解,直到找到最优解。
当子问题的最优下界大于等于全局最优解的上界时,就可以在子问题中停止搜索。
分支定界法的主要思想是通过不断地削减搜索空间,来避免不必要的计算。
割平面法割平面法是将整数规划问题转化成线性规划问题,并在每个子问题中添加一些割平面来逼近整数解。
该算法的基本思想是先转化成松弛线性规划问题,在其中添加限制条件,即割平面,来求出一组整数解。
割平面是原问题整数约束条件的线性组合,可以有效地削减搜索空间,进而提高搜索效率。
该方法的主要难点在于如何构造合适的割平面,以减小搜索空间的大小并在短时间内找到最优解。
相比于分支定界法,割平面法在求解时需要添加额外的限制条件,使得问题转化为线性规划问题。
因此,该算法需要更多的计算资源。
但是,相对于分支定界法,割平面法的搜索空间更小,因此在实际应用中经常会使用这种方法来求解整数规划问题。
Conclusion整数规划问题作为线性规划问题的一种扩展,广泛应用于各个领域。
分支定界法和割平面法是求解整数规划问题时使用较为频繁的算法。
虽然它们的实现细节不同,但都具有削减搜索空间、减小计算量的优点。
线性规划问题规范型算法的计算机实现研究
摘要:随着科技的飞速发展,现如今世界已经步入信息时代,掌握一定的计算机技能是每一个当代人必备的一项生存手段。
然而在计算机专业技术的教学和学习过程中,算法便是计算机编程技术的核心思想,如何将算法研究到位制约着计算机技术学习得好坏,因此,笔者在平时的计算机学习与教学过程中比较关注各种计算机算法的应用,本文重点阐述关于线性规划问题规范算法的计算机实现研究,希望本文的研究成果能够为从事计算机事业和教育界带来一些有意义的帮助。
关键词:线性规划;规范型算法;计算机实现
中图分类号:tp301.6文献标识码:a文章编号:1007-9599 (2013) 07-0000-02
编程对于学习计算机的人而言并不陌生,对于大多数不熟悉计算机的人士而言,其实编程就是编制程序的意思。
编制程序就是在实际生活中遇到一些棘手而复杂的实际问题难以解决的时候,运用计算机语言编制一定的算法和代码,借助计算机运行来解决这些问题。
真正学好并运用好计算机必须掌握几种常见的算法。
本文主要介绍线性规划问题规范型算法的背景、定义、应用以及意义,希望这些研究对于计算机的使用和计算机技术的学习提供必要的帮助。
一、线性规划问题规范型算法的背景
对于线性规划,最初来自于数学领域,它属于运筹学的范畴,对于处理线性目标函数以及应用线性约束来求解最优化解的问题方
面,应用较多。
但是鉴于近年来越来越多的实际问题需要运用计算机编程,通过运用计算机能够处理巨大规模的运算数据的能力来解决数学、天文、生物、化学、物理、金融等各个领域的实际问题,线性规划问题规范型算法便应用而生。
经过实践证明,这种算法在使用过程中,操作比较精简而凝练,剪短了计算机运行程序的时间,降低了编制程序的复杂性,因此,它的使用相对其他算法来说是非常广泛的,目前,除了数学、物理、化学等自然科学应用这种算法外,还有像心理学、金融学、统计学等社会性质的学科也会应用这种算法处理大量数据。
二、线性规划问题规范型算法的定义
线性规划问题算法
设线性规划问题的一般形式为:
其中为待定的决策变量,已知的系数组成的矩阵,称为约束矩阵,的列向量记为,,的行向量为,,称为目标函数,记为,向量称为价值向量,称为价值系数,向量称为右端向量,条件称为非负约束。
一个满足所有约束条件的向量称为上述问题的可行解或者可行点,所有的可行点,所有的可行点组成的集合称为上述问题的可行区域,记为。
由线性代数和微积分中求条件极值的知识,给定一个线性问题,下列三种情况必居其一:
(1),称问题无解或不可行。
(2),但目标函数在上无界,此时称该问题无界。
(3),且目标函数有有限的最优值,此时称该问题有最优解。
当时,上述形式的线性规划用矩阵向量的形式表示为:
,其中,称为线性规划的规范形式。
当时,问题为
,称此形式的线性规划为标准形式。
三、线性规划问题规范型算法
(一)单纯形法
仍考虑标准形式的线性规划,这里假设,秩(),,为一的实矩阵。
假设已找到一个非退化的基本可行解,即找到一个基。
此时,可将方程组化成与之等价的方程组
(二)对偶单纯形法
考虑到大家经常使用的一般形式的线性规划问题
因此为了使用最优化原则,我们必须将其变为标准形式的线性规划问题,所以对于的每一个不等式约束,减去一个不是正的约束变量,那么我们可以得知,每一个变量,都可以用两个相关的变量来将其代替,所以我们就可以得到以下形式的线性规划问题:上述简单介绍了线性规划问题的数学模型以及数学方程概念,通过上述介绍,相信读者对于单纯形法和对偶单纯形法有了一定的了解,在学习计算机编程语言的过程中,这种最为原始的理论基础总是能够起到纵观全局的作用。
无论是单纯形法还是对偶单纯形法,这两种方法的存在都是线性规划算法的应用表现方式,一般的规划最优化原理可以总结如下:当我们的实际生活中出现一个动态的过程时,不管初始状态如何,只要以后的状态都根据第一个状态的决策来做出决策,步步紧推,就能够将整个过程的策略编程变成一个最优化的策略。
四、线性规划问题规范型算法的意义
当下数学研究领域,对于整数规划、0—1规划以及非线性规划等都是现代规划领域的难题,尤其是0—1规划问题已被确认为np难题,本文对于研究线形规划的算法,对这些问题的算法研究都是有启示及推动作用的。
线性规划问题规范型算法对于计算机编程技术带来了不同凡响的改变,使得编程变得简洁而方便,对于编程人员来讲,降低了难度和简化了测试,节省了时间和空间。
通过以上四个方面的叙述和讨论,相信读者一定对于线性规划问题规范型算法有了初步的了解,基于这样的了解,在计算机编程过程中使用,一定能够收到不错的成效。
当然本文的研究仅仅做了科研工作的小小一部分,还需要进一步深入和探讨。
参考文献:
[1]高国成.关于求线性规划初始可行基的生成算法[j].数学杂志,2000,20(3):320-322.
[2]朱明权,陈明飞.关于单纯形方法的若干新算法[j].数值计算与计算机应用,1997,18(3):206-217.。