MATLAB求解SDP问题—使用SeDuMi和YALMIP

上传人:hs****ma 文档编号:565025327 上传时间:2022-11-21 格式:DOCX 页数:4 大小:28.73KB
返回 下载 相关 举报
MATLAB求解SDP问题—使用SeDuMi和YALMIP_第1页
第1页 / 共4页
MATLAB求解SDP问题—使用SeDuMi和YALMIP_第2页
第2页 / 共4页
MATLAB求解SDP问题—使用SeDuMi和YALMIP_第3页
第3页 / 共4页
MATLAB求解SDP问题—使用SeDuMi和YALMIP_第4页
第4页 / 共4页
亲,该文档总共4页,全部预览完了,如果喜欢就下载吧!
资源描述

《MATLAB求解SDP问题—使用SeDuMi和YALMIP》由会员分享,可在线阅读,更多相关《MATLAB求解SDP问题—使用SeDuMi和YALMIP(4页珍藏版)》请在金锄头文库上搜索。

1、MATLAB 求解 SDP 问题一使用 SeDuMi 和 YALMIPSDP(SemiDefi nite Programi ng,半定规划)是凸优化(Co nvex Optimizatio n)的一种,貌似近 些年来比较热,反正这个东西常常出现在我看的论文中。论文里一般是把一个问题转化为 SDP,然后极不负责任的扔了一句可以使用SeDuMi等工具箱解决就完事了,搞的本人非常 迷茫,于是决定一探究竟,谁知还搞了个意外收获,那就是YALMIP工具箱。SeDuMi和 YALMIP都是Matlab的工具箱,下载和安装请参见它们的主页。下面我就分别谈谈怎么样 将两个工具箱应用于SDP求解吧。SDP 问题

2、的对偶原型及求解步骤下面就是一个典型的 SDP 问题:ttiin I 1 y-Iry =加+ yiFi + + ypFt) 0目标函数是线性的,有一个等式约束,有一个不等式约束,最后一个是LMI(Li near Matrix In equality,线性矩阵不等式)约束。使用SeDuMi来解决此类问题,我们就要自行构造调用 SeDuMi的核心函数sedumi(Att,bt,ct,K)的四个参数。-1/(:. -z) = uec(far i = 1p-Atf = A:冬:l)t = i ci =0:一机:八*等式约束的个数* : 1 *不等式约束的个数.I *LMI中矩阵的阶数这样,我们就可以调

3、用来求解了,其中的y即为优化后得到的最优解。一个典型的例子这里举一个简单的例子,并给出Matlab的实际代码,以便能更好地理解运用上节的知识。 SDP的一个最简单的应用就是最大化矩阵的特征值问题。如我们要找使矩阵:;,-的特征值最大化,其中;J-分别为:20由-0.6_0 1 0州=-0.520.4.1 =1 n 0-0.6(),.13 _0 0 0()()1_()/)0 n ”3 =n 0110 nn 1(同时,我们对- -匸也给出一个不等式限制和一个等式限制: /I 1 :V2 0小+业+側=1那么这个问题可以描述成以下形式:ttdn I氛7.S = bl止 M 2 2f 1 一(耳 +

4、yi Fl + y212 + 脚巧) 0其中 - 的取值分别为:y =的她如 f1 - -41 = 1.1.1.0()占=1 & =【L 7. 1,0, (13.0J A2 =()o )【) )1 )F面我们就可以使用sedumi函数进行优化求解了,给出Matlab代码:A2blL.2FF4At10 0 0;-丄0 0%0 100; 0-i 0 0;1;0,7 -丄尅-0.3 0.2-0. 5 -0. 6; -0!.52 0.4;-0.60,4 3;:0丄0; 10 0J 00:00 1; 00 0; 10叭;0 S: 00 1J 01俎j.:2;-vec(Fl 1vec(F2)vecfF3)

5、vec(F4);上丄1 0jfttt :占:Al; -A2; fttbt = -d 0 0 丄j ;ct = bl; -b2; vec(F01j K.f = size(Aljl);K, 1 ::5ize( A2 jl J;1(, s = sizefFtljl) j, info = sedtiiiii( Att bt ctK );最后得到的 y 即为最优解,它的前三个分量就是我们想要的答案。如下图所示:iter seconds digitsc*xb*y30.29.2It&21190246Be4-&01.621190245Be+&0|AK-b| =2.35-19 Ay-c_4- =2.3E-I0.

6、 |k|=1.7e+&_, |y| =1 .Be+&0Detailed timing (sec)PreI PMPost4.&36E-021.602E-0I2.B15E-02Max-nonns; |b = 1, |c| = 3匚holesky |add|=0T |skip| = 0j |L.L| = 1, y0.70000.30000.0000-1.&212YALMIP 出,谁与争锋我们从上面也可以看到,SeDuMi的求解过程还是比较复杂的,不仅需要将优化问题先化成 SDP的标准形式,而且参数的配置也相当费功夫,很不直观!在搜索SeDuMi的过程中,我 又发现了一个叫YALMIP的工具箱,它的命

7、名挺有意思,Yet An other LMI Package又一个 LMI包,呵呵,不过它可不是徒有虚名啊!简单的说,它可以非常直观的将目标函数和约束 条件赋给它的核心函数solvesdp(ConstraintQbjective),下面我们就看看解决同样的问题 YALMIP是怎么操作的,废话不说了,直接上Matlab代码:丄t = sdpvari ); % sdp-变量2y = sclpvarji, full);F0 = 2 -0.5 -0.6; -0.5 2斗;-0.(5 0斗 3;4F_t =0 10:丄 0 0; 0 0 尅;5F2 =001; 000;丄 0 0;6F30 0 0J 0

8、 0 Ij 0 1 0 Ja = suni(y)=!; % 等式纳策Sb 二0,7=3/(1)=1, 0=5-(2)=0;济等式约束9c = t + eye(3)-(Fe + y I)+ F1 + y(2)*F2 + y(3)*F3)=0; % LT约束丄abj = t;丄上tonstraint = a, b, c .;12solvesdpt tonstraint,cbj j;丄审daublef y)结果如下图所示:iter 弓已conds digitsc*xb*y90.29.7 -3.1B23272B5Be+W - 3. lB23272B51e+W|Ax-b| = 5-le-iaj Ay-c

9、_+ =乩呂E-l比 |x|= 1.6+00 |y|= 3.Detailed timing (sec)PreI PMPost5.492E-031.129E-012.122E-03Max-norms:|b|=1f |c| = 3jtholesky |add|=0j |skip| = 0, |L.L| = 1.ans =0x70000x3000-0.0000可以看到两者的结果基本是一致的,当然,我怀疑YALMIP在操作的过程中有调用SeDuMi 的可能性,但是不管怎么说,YALMIP的代码则更直观,更容易理解,甚至连双向不等式都 可以直接书写,这都是明显的,可见它的牛逼,所以必然果断抛弃其他一切优化工具箱,你 的意见呢?嘿嘿

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 学术论文 > 其它学术论文

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号