约束最优化问题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
约束最优化问题
一实习目的
1.熟练掌握科学与工程计算中常用的基本算法;
2.掌握分析问题,设计算法的能力;
3.掌握模块化程序设计的基本思想,注重模块的“高内聚,低耦合”;
4.采用自顶向下,逐步细化的编程思想完成程序书写;
5.牢固建立“清晰第一,效率第二”的软件设计观念;
6.掌握软件调试,测试的基本技能和方法;
7.提高科技报告的书写质量;
8.在掌握无约束最优化问题求解方法的前提下,对一般情形下的约束最优化问题进行研究,通过实习掌握外点罚函数法、内点罚函数法、乘子法、线性近似规划法和序列二次规划法在求解一般情形下的约束最优化问题的应用。
二问题定义及题目分析
问题1:
要求用外点罚函数法和内点罚函数法解决约束问题:
Min f(x)=错误!未找到引用源。
s.t. 错误!未找到引用源。
错误!未找到引用源。
错误!未找到引用源。
问题2:
要求用乘子法解决约束问题:
Min 错误!未找到引用源。
s.t. 错误!未找到引用源。
错误!未找到引用源。
(错误!未找到引用源。)
问题3:
要求用线性近似规划法和序列二次规划法解决约束问题:
Min 错误!未找到引用源。
s.t. 错误!未找到引用源。
错误!未找到引用源。
错误!未找到引用源。
错误!未找到引用源。
三程序概要设计
1.外点罚函数法
Step1. 给定初始点错误!未找到引用源。,罚参数序列{错误!未找到引用源。}(常取错误!未找到引用源。),精度错误!未找到引用源。,并令k=0;
Step2. 构造增广目标函数错误!未找到引用源。;
Step3. 求解无约束优化问题min 错误!未找到引用源。,x错误!未找到引用源。,其解记为错误!未找到引用源。;
Step4. (终止准则:惩罚项充分小,或等价地错误!未找到引用源。近似可行)若错误!未找到引用源。,或者错误!未找到引用源。,错误!
未找到引用源。,则得解错误!未找到引用源。,否则令k=k+1,转 Step2.
2.内点罚函数法:
Step1. 给定初始可行解错误!未找到引用源。,罚参数序列{错误!未找到引用源。}(常取错误!未找到引用源。),精度错误!未找到引用源。,并令
k=0;
Step2. 构造增广目标函数错误!未找到引用源。;
Step3. 求解无约束优化问题min 错误!未找到引用源。,x错误!未找到引用源。,其解记为错误!未找到引用源。;
Step4. (终止准则)若错误!未找到引用源。,则得解错误!未找到引用源。,否则令k=k+1,转 Step2.
3.乘子法:
Step1. 给定初始点错误!未找到引用源。,初始lagrange乘子错误!未找到引用源。,i错误!未找到引用源。罚参数序列{错误!未找到引用源。},
精度错误!未找到引用源。,并令k=0;
Step2. 构造增广目标函数错误!未找到引用源。
Step3. 求解无约束优化问题min 错误!未找到引用源。,x错误!未找到引用源。,其解记为错误!未找到引用源。;
Step4. (终止准则)若错误!未找到引用源。,则得解错误!未找到引用源。,否则令
K=k+1,转Step2.
4.线性近似规划法:
Step1. 给定初始点错误!未找到引用源。,步长限制错误!未找到引用源。,缩小系数错误!未找到引用源。。精度错误!未找到引用源。,并令k=0;Step2. 求解线性规划问题:min 错误!未找到引用源。
S.t. 错误!未找到引用源。
错误!未找到引用源。
错误!未找到引用源。
其解记为错误!未找到引用源。.
Step3. 若错误!未找到引用源。是约束优化问题的可行解,则令错误!未找到引用源。,转Step4;否则,取错误!未找到引用源。j=1,...,n,转Step2;Step4. (终止准则)若错误!未找到引用源。,且满足错误!未找到引用源。,或者若错误!未找到引用源。,则得问题的近似解错误!未找到引用源。;
否则令错误!未找到引用源。,k=k+1,转Step2。
5.序列二次规划法:
Step1. 给定初始点错误!未找到引用源。,令k=0;
Step2. 若错误!未找到引用源。满足约束问题的k-T条件,停止计算,得到解错误!未找到引用源。;否则,转Step3;
Step3. 解二次规划问题 min 错误!未找到引用源。
s.t. 错误!未找到引用源。
错误!未找到引用源。
得解错误!未找到引用源。;
Step4. 令错误!未找到引用源。,转Step2.
四实验结果
第一题运行结果为:x=(1,0)
第二题运行结果为:x=(1,1)
第三题运行结果为:x=(2,2)
五结果分析及总结
经过理论运算,程序所得结果与理论值相同。通过这次实习,了解了非线性约束条件下最优化问题的几种求解方法:罚函数法,乘子法和线性近似规划法。了解了不同方法之间的优点和不足,如外点罚函数法不能保证运算过程中的点在可行域内,但是对初始条件要求不高等。
六源代码
1,2,3题通用函数:
function [x,minf] = minNT(f,x0,var,eps)
format long;
if nargin == 3
eps = 1.0e-6;
end
tol = 1;