指点成金-最美分享吧

登录

matlab Cplex使用

佚名 举报

篇首语:本文由小编为大家整理,主要介绍了matlab Cplex使用相关的知识,希望对你有一定的参考价值。

安装cplex

安装yalmip http://blog.csdn.net/xixi_0921/article/details/47981869

示例

% value:5 constraint:2

% max z=2x1+x2+4x3+3x4+x5

% 2x2+x3+4x4+2x5<=54

% 3x1+4x2+5x3-x4-x5<=62

% x1,x2<=0,x3<=3.32,x4<=0.678,x5<=2.57

 

f=-[2 1 4 3 1]";%目标函数系数 (每条边对应的距离)

A=[0 2 1 4 2;3 4 5 -1 -1];%变量系数

B=[54;62];%约束右侧系数

xm=[0,0,3.32,0.678,2.57]";%变量约束

P=intvar(5,1);%创建m*n的连续型决策变量矩阵

g=f"*P;

set=[];

set=[set;A*P<=B;xm<=P];

options=sdpsettings("solver","cplex");

optimize(set,g);

P=double(P)% 查看各变量取值

double(g)% 查看目标函数

 

%% another

% max z=4x1+6x2+2x3

% -x1+3x2<=8

% -x2+3x3<=10

% 5x1-x3<=8

% x1,x2,x3>=0且为整数

 

% 目标函数 决策变量,整数型:intvar 连续型:sdpvar 二值型:binvar

x=intvar(1,3);

f=[4 6 2]*x";

% 约束x1,x2,x3

F=set(x>0)+set([-1 3 0]*x"<=8)+set([0 -1 3]*x"<=10)+set([5 0 -1]*x"<=8);

%在约束F下求目标函数f最大值

solvesdp(F,-f);

% 查看目标函数

double(f)

% 查看各变量取值

double(x)

 

 

x=intvar(1,5);

f=[1 1 3 4 2]*(x".^2)-[8 2 3 1 2]*x";F=set(0<=x<=99);

F=F+set([1 1 1 1 1]*x"<=400)+set([1 2 2 1 6]*x"<=800)+set(2*x(1)+x(2)+6*x(3)<=800);

F=F+set(x(3)+x(4)+5*x(5)<=200);solvesdp(F,-f);

 

 

 

 

 

 

 

 

 

 

以上是关于matlab Cplex使用的主要内容,如果未能解决你的问题,请参考以下文章