整数规划运输问题的优化

问题:4个产地生产物品,6个接收物品,4个产地生产量为:1000,800,1500,600。6个接收500,600,450,850,1200,300。

产地向运输地的运输成本

整数规划运输问题的优化

整数规划运输问题的优化

这里只考虑 产出==接收(未考虑 产出>接收和产出<接收)

利用matlab优化函数 linprog

clc
clear
f=[4;3;2;3;4;1;
   2;6;1;3;6;7;
   5;1;1;5;2;3;
   3;2;4;2;3;4];
Aeq=[ones(1,6) zeros(1,18);
     zeros(1,6) ones(1,6) zeros(1,12);
     zeros(1,12) ones(1,6) zeros(1,6);
     zeros(1,18) ones(1,6) ;
     1 zeros(1,5) 1 zeros(1,5) 1 zeros(1,5) 1 zeros(1,5);
     0 1 zeros(1,5) 1 zeros(1,5) 1 zeros(1,5) 1 zeros(1,4);
     0 0 1 zeros(1,5) 1 zeros(1,5) 1 zeros(1,5) 1 zeros(1,3);
     0 0 0 1 zeros(1,5) 1 zeros(1,5) 1 zeros(1,5) 1 zeros(1,2)
     0 0 0 0 1 zeros(1,5) 1 zeros(1,5) 1 zeros(1,5) 1 0;
     0 0 0 0 0 1 zeros(1,5) 1 zeros(1,5) 1 zeros(1,5) 1 ;
     ]
 beq=[1000;800;1500;600;500;600;450;850;1200;300];
 lb=zeros(1,24)
 [xm,fm,flag,output,lambda]=linprog(f,[],[],Aeq,beq,lb,[])

f是优化目标,第一个【】和第二个【】是不等式A和b,Aeq是等式A矩阵,beq是等式b矩阵,lb是X取值的下界,最后一个【】是x的上界