[数学建模]线性规划与matlab,lingo解法

1.1线性规划问题

1.1.1什么情况下使用线性规划(规划)模型求解

线性规划通常研究资源的最优利用问题,总的来说有两类方面。

a.在任务确定的条件下,如何利用最少的资源(如资金、原材料、人工、设备)完成确定的任务

b.在资源一定的条件下,如何组织生产使得成本最小,利润最大

1.1.2线性规划解题的基本步骤

a.建立模型,列出线性规划模型的三要素(决策变量、目标函数、约束条件)。

b.利用软件计算得结果(excel,matlab,lingo)。

c.灵敏度分析和最优解判别,推荐使用lingo。

1.1.3经典问题

a.运输问题

b.指派问题

1.1.4程序代码

mtlab专用程序函数

[x,fval] = linprog(f,A,b,Aeq,beq,lb,ub,x0),下面分别介绍各参数的含义.

[x,fval]返回值中x为最优解,fval为最优值.

f表示目标函数中各个变量前面的系数向量,如果是求最小值问题,那么f就是各个变量的系数,如果是求最大值问题,那么f就是各个变量的系数的相反数.

A和b    表示不等式约束A*x <=b中的矩阵A和向量b.

Aeq和beq    表示等式约束Aeq*x =beq中的矩阵Aeq和向量beq.

lb和ub    分别表示自变量的上下界组成的向量,如果没有上下界,该选项用[]表示,如果只有部分变量有上下界,其余的变量没有,那么可以把没有上下界的变量的上下界设为-inf或者inf使lb或者ub的长度符合要求.

x0    表示变量的初始值,可以缺省.

1.1.5例题举例

min z=\left | x_{1} \right |+2\left | x_{2} \right |+3\left | x_{3} \right |+4\left | x_{4} \right |

x_{1}-x_{2}-x_{3}+x_{4}=0

x_{1}-x_{2}+x_{3}-3x_{4}=1

 x_{1}-x_{2}-2x_{3}+3x_{4}=-\frac{1}{2}

matlab代码

clc
clear
c=1:4;
c=[c,c]';
aeq=[1,-1,-1,1;
    1,-1,1,-3;
    1,-1,-2,3];
beq=[0,1,-1/2];
aeq=[aeq,-aeq];
[x,fval]=linprog(c,[],[],aeq,beq,zeros(8,1))
x=x(1:4)-x(5:end)

lingo代码

model:
sets:
col/1..4/:c,x;
row/1..3/:b;
links(row,col):a;
endsets
data:
c=1 2 3 4;
a=1 -1 -1 1 1 -1 1 -3 1 -1 -2 3;
b=0 1 -0.5;
enddata
min=@sum(col:c*@abs(x));
@for(row(i):@sum(col(j):a(i,j)*x(j))=b(i));
@for(col:@free(x));!x的取值可正可负;
end

猜你喜欢

转载自blog.csdn.net/weixin_42785537/article/details/81190903
今日推荐