1.线性规划的求解方法
线性规划问题的标准形式为:
或者写成矩阵形式:
一般来说线性规划包括单纯形规划和多目标规划
1.1单纯形线性规划
单纯形法时从所有基本的可行解的一个较小部分中通过迭代过程选出最优解
matlab中求解线性规划的函数时linprog,使用方法如下:
一般情况下,Linprog命令的参数形式为[x,fval] = linprog(f,A,b,Aeq,beq,lb,ub,x0),下面分别介绍各参数的含义.
[x,fval,exitflag,output,lamnda]:返回值中x为最优解,fval为最优值,output包含优化信息的输出变量
f:表示目标函数中各个变量前面的系数向量,如果是求最小值问题,那么f就是各个变量的系数,如果是求最大值问题,那么f就是各个变量的系数的相反数.
A,b:表示不等式约束
中的矩阵A和向量b,若不存在不等式关系
Aeq,beq:表示线性等式约束Aeq*x =beq中的矩阵Aeq和向量beq,若等式约束不存在则令Aeq=[ ],beq=[ ]
lb,ub :分别表示自变量的上下界组成的向量,如果没有上下界,该选项用[]表示,如果只有部分变量有上下界,其余的变量没有,那么可以把没有上下界的变量的上下界设为-inf或者inf使lb或者ub的长度符合要求.
x0:表示变量的初始值,可以缺省。
有如下例子:
由于没有等式约束,所以Aeq=[ ],beq=[ ]
不等式的条件系数为:
由于没有上界要求:
clear all
clc
f=[-5;-4;-6];
A=[1 -1 1;3 2 4;3 2 0];
b=[20;42;30];
lb=zeros(3,1);
[x,fval,exitflag,output,lambda]=linprog(f,A,b,[],[],lb)
>>
x =
0.0000
15.0000
3.0000
fval =
-78.0000
exitflag =
1
exitflag =1表示正常收敛于解x处。
1.2 多目标线性规划
多目标线性规划有着两个或两个以上的目标函数