CVX 基本和线性程序示例优化

问题描述

我正在解决一个优化问题,因为我正在学习使用 CVX 的一些基础知识

目标是最小化成本函数 fo(x) = 2x1 + 3.5x2 + 8x3 + 1.5x4 + 11*x5 + x6

有约束

90x1 + 120x2 + 106x3 + 97x4 + 130x5 + 180x6 ≥ 300

4x1 + 8x2 + 7x3 + 1.3x4 + 8x5 + 9.2x6 ≤ 10

15x1 + 11.7x2 + 0.4x3 + 22.6x4 + 0x5 + 17x6 ≥ 10

x1 + 5x2 + 9x3 + 0.1x4 + 7x5 + x6 ≥ 8

x5 ≥ 0.5

x2 ≤ 1

我为上述约束编写的基本代码是

cvx_begin quiet
variable x_1
variable x_2
variable x_3
variable x_4
variable x_5
variable x_6

minimize (2*x_1 + 3.5*x_2 + 8*x_3 + 1.5*x_4 + 11*x_5 + x_6)

subject to 
300<=90*x_1 + 120*x_2 + 106*x_3 + 97*x_4 + 130*x_5 + 180*x_6;

4*x_1 + 8*x_2 + 7*x_3 + 1.3*x_4 + 8*x_5 + 9.2*x_6<=10;

10<=15*x_1 + 11.7*x_2 + 0.4*x_3 + 22.6*x_4 + 17*x_6;

8<=x_1 + 5*x_2 + 9*x_3 + 0.1*x_4 + 7*x_5 + x_6;

0.5<= x_5;

x_2<=1; 
0<=x_1; 0<=x_2; 0<=x_3; 0<=x_4; 0<=x_5; 0<=x_6; 
 
cvx_end
cvx_optval
display(x_1);
display(x_2);
display(x_3);
display(x_4);
display(x_5);
display(x_6);
display(2*x_1 + 3.5*x_2 + 8*x_3 + 1.5*x_4 + 11*x_5 + x_6);

这是我为线性规划方法编写的代码

n=6 
c=[2; 3.5; 8; 1.5; 11; 1]

A=[90 120 106 97 130 80; 4 8 7 1.3 8 9.2; 15 11.7 0.4 22.6 0 17; 1 5 9 0.1 7 1; 0 0 0 0 1 0; 0 1 0 0 0 0]
b=[300; 10; 10; 8; 0.5; 1] 


cvx_begin
   variable x(n)
   dual variables y z
   minimize( c' * x  )
   subject to
      y : A * x == b;
cvx_end
cvx_optval

echo off

现在我对这两种方法的回答显然应该匹配。我做对了吗?需要专家的回答。我想我可能需要引入一些否定登录。

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)

相关问答

错误1:Request method ‘DELETE‘ not supported 错误还原:...
错误1:启动docker镜像时报错:Error response from daemon:...
错误1:private field ‘xxx‘ is never assigned 按Alt...
报错如下,通过源不能下载,最后警告pip需升级版本 Requirem...