最优化实验报告
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
最优化方法
课程设计报告班级:________________
: ______
学号: __________
成绩:
2017年 5月 21 日
目录
一、摘要 (1)
二、单纯形算法 (2)
1.1 单纯形算法的基本思路 (2)
1.2 算法流程图 (3)
1.3 用matlab编写源程序 (4)
二、黄金分割法 (7)
2.1 黄金分割法的基本思路 (7)
2.2 算法流程图 (8)
2.3 用matlab编写源程序 (9)
2.4 黄金分割法应用举例 (11)
三、最速下降法 (11)
3.1 最速下降法的基本思路 (11)
3.2 算法流程图 (13)
3.3 用matlab编写源程序 (13)
3.4 最速下降法应用举例 (13)
四、惩罚函数法 (17)
4.1 惩罚函数法的基本思路 (17)
4.2 算法流程图 (18)
4.3 用matlab编写源程序 (18)
4.4 惩罚函数法应用举例 (19)
五、自我总结 (20)
六、参考文献 (20)
一、摘要
运筹学是一门以人机系统的组织、管理为对象,应用数学和电脑等工具来研究各类有限资源的合理规划使用并提供优化决策方案的科学。通过对数据的调查、收集和统计分析,以及具体模型的建立。收集和统计上述拟定之模型所需要的各种基础数据,并最终将数据整理形成分析和解决问题的具体模型。
最优化理论和方法日益受到重视,已经渗透到生产、管理、商业、军事、决策等各个领域,而最优化模型与方法广泛应用于工业、农业、交通运输、商业、国防、建筑、通信、政府机关等各个部门及各个领域。伴随着电脑技术的高速发展,最优化理论与方法的迅速进步为解决实际最优化问题的软件也在飞速发展。其中,MATLAB软件已经成为最优化领域应用最广的软件之一。有了MATLAB这个强大的计算平台,既可以利用MATLAB优化工具箱〔OptimizationToolbox〕中的函数,又可以通过算法变成实现相应的最优化计算。
关键词:优化、线性规划、黄金分割法、最速下降法、惩罚函数法
二、单纯形算法
1.1 单纯形算法的基本思路
线性规划问题的可行域是n维向量空间Rn中的多面凸集,其最优值如果存在必在该凸集的某顶点处到达。顶点所对应的可行解称为基本可行解。
单纯形法的基本思想是:先找出一个基本可行解,对它进行鉴别,看是否是最优解;假设不是,则按照一定法则转换到另一改良的基本可行解,再鉴别;假设仍不是,则再转换,按此重复进行。因基本可行解的个数有限,故经有限次转换必能得出问题的最优解。如果问题无最优解也可用此法判别。
单纯形法是从某一基可行解出发,连续地寻找相邻的基可行解,直到到达最优的迭代过程,其实质是解线性方程组。
概述:根据单纯形法的原理,在线性规划问题中,决策变量〔控制变量〕x1,x2,…x n的值称为一个解,满足所有的约束条件的解称为可行解。使目标函数到达最大值〔或最小值〕的可行解称为最优解。这样,一个最优解能在整个由约束条件所确定的可行区域内使目标函数到达最大值〔或最小值〕。
求解线性规划问题的目的就是要找出最优解。用单纯形法求解线性规划问题所需的迭代次数主要取决于约束条件的个数。现在一般的线性规划问题都是应用单纯形法标准软件在电脑上求解,对于具有106个决策变量和104个约束条件的线性规划问题已能在电脑上解得。
求解时可能出现以下情况之一:①存在着一个最优解;②存在着无穷多个最优解;③不存在最优解,这只在两种情况下发生,即没有可行解或各项约束条件不阻止目标函数的值无限增大〔或向负的方向无限增大〕。
要缩小对最优解的搜索范围,就必须认识最优解的一般性质,最优解如果存在的话,则它必然处于可行区域的边界上。
任何一项约束条件的边界方程是用“=”号来替换该约束条件中的“≤”
或“≥”号而得到的。每一个边界方程确定一个超平面。因此,可行区域的边界是由那些满足一个或同时满足几个边界方程〔即处在作为边界的一个或几个超平面上〕的可行解所组成,而且最优解必在其中。最优解不仅是在可行区域的边界上,而且也在这个区域的一个隅角上。一个可行解,如果不处在由另两个可行解连接起来的任何线段上,它就是一个角点可行解。如果连接两个角点可行解的线段处在可行区域的边界上,这两个角点可行解就称为相邻的角点可行解。
角点可行解具有以下三个重要性质:
①如果存在着一个最优解,那么它必定是角点可行解。如果存在有多个最优解,那么至少有两个最优解必定是相邻的角点可行解。
②只存在有限个数的角点可行解。
③如果一个角点可行解按目标函数值来衡量时比其所有的相邻角点可行解
更好一些,那它就比所有其他角点可行解都更好,也就是最优解。
上述这些性质构成单纯形法的原理基础。
最后一个性质的重要性在于它为一个角点可行解是否是最优解提供了一种简便的检验标准,因而毋需列举所有的可行解。单纯形法正是利用了这个性质,只要检查少数的角点可行解,并且一旦这个最优性检验获得通过就可立即停止运算。
1.2 算法流程图
〔1〕、确定初始基可行解
①从线性规划标准形的系数矩阵中能直接找出m个线性独立的单位向量;
②对约束条件全为“<=”连接的LP,化为标准形,左端添加松弛变量后即形成一个单位子矩阵;
③约束条件中含有“<=”或“=”连接的方程,在插入剩余变量后找不到单位矩阵,则必须采用“人造基”法,
〔2〕、单纯形法的运算步骤可归结为:
①起始步骤──在一个角点可行解上开始。
②迭代步骤──移动至一个更好一些的相邻角点可行解〔根据需要反复进行这一步骤〕。
③停止法则──在当前角点可行解比所有相邻角点可行解都更好些时停止。当前角点可行解就是一个最优解。单纯形法的优点及其成功之处在于它只需要较少的有限次数的迭代,即可找到最优解。
〔3〕、单纯形法的算法流程如下:
①把线性规划问题的约束方程组表达成典范型方程组,找出基本可行解作为初始基本可行解。
②假设基本可行解不存在,即约束条件有矛盾,则问题无解。
③假设基本可行解存在,从初始基本可行解作为起点,根据最优性条件和可行性条件,引入非基变量取代某一基变量,找出目标函数值更优的另一基本可行解。
④按步骤3进行迭代,直到对应检验数满足最优性条件〔这时目标函数值不能再改善〕,即得到问题的最优解。⑤假设迭代过程中发现问题的目标函数值无界,则终止迭代。