功能:采用优化方式进行线性规划求解

格式:
[mf, x] = LineProgByOpt(minExpress, Aless, bless, Aequ, bequ, vmax, vmin, vtype, x0)
[mf, x] = LineProgByOpt(minExpress, Aless, bless, Aequ, bequ, vmax, vmin, vtype)
[mf, x] = LineProgByOpt(minExpress, Aless, bless, Aequ, bequ, vmax, vmin)
[mf, x] = LineProgByOpt(minExpress, Aless, bless, Aequ, bequ, vmax)
[mf, x] = LineProgByOpt(minExpress, Aless, bless, Aequ, bequ)
[mf, x] = LineProgByOpt(minExpress, Aless, bless)

minExpress: 1*n或者n*1的矩阵变量,里面依次存储最小化目标表达式系数
Aless     : m*n的矩阵变量,每一行存储一个线性表达式系数,此参数表达式与bless组成小于等于约束
bless     : m*1的矩阵变量,每一行与Aless行对应
Aequ      : p*n的矩阵变量,每一行存储一个线性表达式系数,此参数表达式与bequ组成等于约束
bequ      : p*1的矩阵变量,每一行与Aequ行对应
vmax      : 数值或者1*n的矩阵变量,表示对应求解变量上限,此参数默认为10000.0
vmin      : 数值或者1*n的矩阵变量,表示对应求解变量下限,此参数默认为-10000.0
vtype     : 数值或者1*n的矩阵变量,表示对应求解变量类型(0为浮点数,1为整数, 2为01变量),此参数默认为0
x0        : 数值或者1*n的矩阵变量,表示对应求解变量初值,此参数默认为1

mf : 返回求得的目标最小值
x  : 返回对应变量的解

例子:
/*
求如下目标函数的最小值 

f = -0.75*x1 + 20*x2 - 0.5*x3 + 6*x4 

其约束条件如下 
0.25*x1 - 8*x2 - x3 + 9*x4 ≤ 0
0.5*x1 - 12*x2 - 0.5*x3 + 3*x4 ≤ 0 
x3 ≤ 1 
x1>=0,x2>=0,x3>=0,x4>=0 

且x1,x2,x3,x4为整数
*/ 

f = [-0.75, 20, -0.5, 6];
a = [0.25, -8, -1, 9
0.5, -12, -0.5, 3];
b = [0;0];
vmax = [10000,10000,1,10000];//设置x1,x2,x4上限为10000,x3上限为1
[mf, x] = LineProgByOpt(f, a, b, , , vmax, 0, 1)//所有变量下限设置为0,因为所有变量为整数,因此vtype设置为1,执行命令得到如下结果,即x1 = 1, x2 = 0, x3 = 1, x4 = 0
mf =
[-1.25000000000000 ]
x =
[ 1.00000000000000
  0.00000000000000
  1.00000000000000
  0.00000000000000 ]