SeDuMi教程(2)_线性规划的两种求解器的对比
对于标准的线性规划我们可以写成如下的形式,如果有不等式约束,则写出他的对偶问题:
我们以一个实例来看
解一下线性规划问题,通过linprog求解器和sedumi求解器分别求解。注意,使用sedumi求解前需要写出对偶形式,对对偶进行求解。
%%
clc
clear all
tic
b=[1 4]';
A=[-1 1 0 1 1;0 0 -1 1 2];
c=[0 2 0 3.5 6];
[x, y, info]=sedumi(A,b,c)
toc
time = toc
%%
tic
clear all
f = [-1;-4];
b = [0 2 0 3.5 6]';
A = [-1 1 0 1 1; 0 0 -1 1 2]';options = optimoptions('linprog','Algorithm','dual-simplex','Display','iter','MaxIterations',20)[x,fval,exitflag,output,lambda] = linprog(f,A,b,[],[],[],[],options)
toc
time = toc
我们对求解器运行时间也做了计时,进行对比:
SeDuMi 1.3 by AdvOL, 2005-2008 and Jos F. Sturm, 1998-2003.
Alg = 2: xz-corrector, Adaptive Step-Differentiation, theta = 0.250, beta = 0.500
eqs m = 2, order n = 6, dim = 6, blocks = 1
nnz(A) = 7 + 0, nnz(ADA) = 4, nnz(L) = 3it : b*y gap delta rate t/tP* t/tD* feas cg cg prec0 : 4.58E+01 0.0001 : 8.27E+00 1.37E+01 0.000 0.2992 0.9000 0.9000 1.99 1 1 1.3E+002 : 1.15E+01 3.16E+00 0.000 0.2304 0.9000 0.9000 1.81 1 1 2.4E-013 : 1.19E+01 5.77E-01 0.000 0.1826 0.9000 0.9000 1.19 1 1 4.1E-024 : 1.20E+01 2.97E-03 0.000 0.0051 0.9990 0.9990 1.01 1 1
iter seconds digits c*x b*y4 0.2 Inf 1.2000000000e+01 1.2000000000e+01
|Ax-b| = 0.0e+00, [Ay-c]_+ = 0.0E+00, |x|= 2.2e+00, |y|= 3.0e+00Detailed timing (sec)Pre IPM Post
6.900E-02 1.440E-01 1.700E-02
Max-norms: ||b||=4, ||c|| = 6,
Cholesky |add|=0, |skip| = 0, ||L.L|| = 1.80888.
x =(1,1) 1(5,1) 2
y =03
info = struct with fields:iter: 4feasratio: 1pinf: 0dinf: 0numerr: 0timing: [0.0690 0.1440 0.0170]wallsec: 0.2300cpusec: 0.2500
Elapsed time is 0.250347 seconds.
time =0.2504
options = linprog options:Options used by current Algorithm ('dual-simplex'):(Other available algorithms: 'interior-point', 'interior-point-legacy')Set properties:Algorithm: 'dual-simplex'Display: 'iter'MaxIterations: 20Default properties:ConstraintTolerance: 1.0000e-04MaxTime: InfOptimalityTolerance: 1.0000e-07LP preprocessing removed 1 inequalities, 0 equalities,
0 variables, and 1 non-zero elements.Iter Time Fval Primal Infeas Dual Infeas 0 0.002 0.000000e+00 0.000000e+00 2.672696e+00 2 0.002 -1.200000e+01 0.000000e+00 0.000000e+00 Optimal solution found.x =03
fval =-12
exitflag =1
output = struct with fields:iterations: 2constrviolation: 0message: 'Optimal solution found.'algorithm: 'dual-simplex'firstorderopt: 0
lambda = struct with fields:lower: [2×1 double]upper: [2×1 double]eqlin: []ineqlin: [5×1 double]
Elapsed time is 0.992132 seconds.
time =0.9922
linprog之前博客已经解释过,我们现在对sedumi做一次解释,因为对偶问题是最大化问题,这里求解信息中第一个b*y值可以看到在不断增大,在关注一个feasibility值,表示结果置信度,最后为0.999。gap是对偶间隙,这个对偶间隙要求越小越好,也可以看到,最后gap也缩小到e-3了。sedumi中还给出了计算时间,包括预处理时间,处理时间,后处理时间,这个求解过程占用时间都分别给出来了。
我们通过tic toc计时,发现sedumi求解速度比linprog快速很多。
SeDuMi教程(2)_线性规划的两种求解器的对比相关推荐
- 【Android 逆向】ART 脱壳 ( InMemoryDexClassLoader 脱壳 | 加固厂商在 ART 下使用的两种类加载器 | InMemoryDexClassLoader 源码 )
文章目录 一.加固厂商在 ART 下使用的两种类加载器 ( InMemoryDexClassLoader | DexClassLoader ) 二.InMemoryDexClassLoader 源码分 ...
- Java多线程两种实现方式的对比
Java多线程两种实现方式的对比 一种,直接继承Thread类 一种,实现Thread类的Runnable接口 两种方式的区别 比如,售票厅有四个窗口,可以发售某日某次列出的100张车票,此时,100 ...
- 1.18.2.Table APISQL(概念与通用API、两种计划器(Planner)的主要区别、创建 TableEnvironment、临时表、永久表、创建表、虚拟表、Connector 等)
1.18.2.概念与通用API 1.18.2.1.两种计划器(Planner)的主要区别: 1.18.2.2.Table API和SQL程序的结构 1.18.2.3.创建 TableEnvironme ...
- 盘中孔Via-In-Pad 和狗骨Dog-bone两种Fanout扇出方式对比
盘中孔Via-In-Pad 和狗骨Dog-bone两种Fanout扇出方式对比 1.1单端正常扇孔,盘中孔Via-In-Pad 和狗骨Dog-bone比较 BGA等高引脚密度的器件,在出线的时候会进行 ...
- a - 数据结构实验之串一:kmp简单应用_串的两种模式匹配方式(BF/KMP算法)
串的两种模式匹配方式(BF/KMP算法) 前言 串,又称作字符串,它是由0个或者多个字符所组成的有限序列,串同样可以采用顺序存储和链式存储两种方式进行存储,在主串中查找定位子串问题(模式匹配)是串中最 ...
- 有向图的广度优先遍历_图的两种遍历方式
1 引言 遍历是指从某个节点出发,按照一定的的搜索路线,依次访问对数据结构中的全部节点,且每个节点仅访问一次. 在二叉树基础中,介绍了对于树的遍历.树的遍历是指从根节点出发,按照一定的访问规则,依次访 ...
- win10可用空间变成未分配_教你两种方法有效利用Win10未分配的空间 - 易我科技...
Haley 于 2020/08/24更新 磁盘分区管理 摘要 文中介绍了两种方法充分利用Windows10未分配空间,分别为1)格式化Win10未分配空间来创建新的分区,2)在分区上添加未分配空间. ...
- prim算法求最小生成树_最小生成树的两种方法(Kruskal算法和Prim算法)
关于图的几个概念定义: 连通图:在无向图中,若任意两个顶点vivi与vjvj都有路径相通,则称该无向图为连通图. 强连通图:在有向图中,若任意两个顶点vivi与vjvj都有路径相通,则称该有向图为强连 ...
- Unity3D教程:播放视频的两种方式
Unity3D中播放游戏视频的方式有两种,第一种是在游戏对象中播放,就好比在游戏世界中创建一个Plane面对象,摄像机直直的照射在这个面上.第二种是在GUI层面上播放视频.播放视频其实和贴图非常相像, ...
最新文章
- 华北电力大学计算机图形学实验报告,华北电力大学计算机图形学实验报告分析.doc...
- R语言临床预测模型的评价指标与验证指标实战:净重新分类指数NRI(Net Reclassification Index, NRI)
- 8 月--菜鸟吐槽日志
- 使用ShareSDK完成第三方(QQ、微信、微博)登录和分享
- 柳传志:33年来,联想这13条管理经验从未改变
- 华为hwics格式产品文档打开方式
- Servlet实现上传下载
- AB PLC Modbus TCP通讯测试
- 两球完全弹性碰撞反弹方向问题
- Android 应用程序无响应(ANR)报错原因
- iOS App 签名的原理
- [转] ReactNative Animated动画详解
- Windows 中的键盘快捷方式
- JRtplib开发笔记(二):JRtplib库编译、示例演示
- 基础设施即代码:一场变革即将到来
- 我已经是糖尿病患者将近9年了。
- 黑客攻防从入门到精通 第7章及后文
- EPON:ONU注册流程简介
- 捷俊通称重软件教你如何处理简单地磅软件故障
- mysql 加写锁_MySQL中的读锁和写锁
热门文章
- python编程能有什么用_揭秘python都能做什么?
- 计算机的未来科技作文700字,未来的科技与绿*的作文700字
- 前端证券项目_证监会公告[2018]6号 证券公司投资银行类业务内部控制指引
- 火箭联盟服务器维护中怎么办,《火箭联盟》出现服务器问题 官方致歉并承诺会尽快修复...
- [置顶] 如何把你的笔记本电脑变成一个Wi-Fi路由器在Windows 7 8?
- shop--7.店铺信息编辑--Controller层
- k8s+jenkins
- 【UOJ】【BZOJ】 [Zjoi2016]小星星
- oracle 常用知识点整理
- 如何让百度快速收录文章