运筹学中的运输问题matlab

将上述问题转换为线性规划问题:

1. 设xij为Ai运输至Bj的货物量,设P=[6 4 1 8 9 2 4 3 6]为与x对应的单价,因此目标函数为最小化P'*x

2. 约束条件 sum(x1j) = 60,sum(x2j) = 100 …… sum(i3) = 50,共6个等式约束。

使用matlab求解上述线性规划问题

% 目标函数
f = [6 4 1 8 9 2 4 3 6]'; 

% 约束条件
m = 3;
n = 3;
Aeq1 =  repmat( eye(m),1,n );
beq1 = [140 110 50]';
Aeq2 =  kron( eye(m),[1 1 1] );
beq2 = [60 100 140]';
Aeq = [Aeq1;Aeq2];
beq = [beq1;beq2];
lb = zeros(m*n,1);       % 下限
ub = 200*ones(m*n,1);    % 上限

x = linprog(f,[],[],Aeq,beq,lb,ub)
y = f'*x

结果:


x =

     0
    60
     0
    50
     0
    50
    90
    50
     0


y =

        1250