优化-运输问题
问题一:运输问题模型所求问题都是以产销平衡为前提的条件下进行的,但是在实际问题中绝大多数问题往往都是产销不平衡的,因此就需要将产销不平衡问题转化为产销平衡问题。
当产大于销时:
只需要假想增加一个销地(可以看做为一个存储地),该城销售量为产大于销的部分,而在单位运价表中从个产地销往此假想销售地的运价为0,由此转化为一个产销平衡问题。
当销大于产时:
可以假想增加一个产地,该产地的产量为实际需求量大于实际产量部分,而从该假想产地到个销售地的运价为0,由此转化为一个产销平衡问题。
https://img-blog.csdnimg.cn/201907291233176.png
model:
!4发点4收点运输问题,增加了一个虚拟产地;
sets:
warehouses/wh1..wh4/: capacity;
vendors/v1..v4/: demand;
links(warehouses,vendors): cost, volume;
endsets
!目标函数;
min=@sum(links: cost*volume);
!需求约束;
@for(vendors(J):
@sum(warehouses(I): volume(I,J))=demand(J));
!产量约束;
@for(warehouses(I):
@sum(vendors(J): volume(I,J))<=capacity(I));
!这里是数据;
data:
capacity=6 4 9 1;
demand=2 8 5 5;
cost=3 12 3 9
1 9 2 8
7 4 10 5
0 0 0 0;
enddata
end
不进行假设
lingo解决6个发点8个收点的最小运输费用问题
https://img-blog.csdnimg.cn/20190729122243532.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3FxXzQyMzgwNTE1,size_16,color_FFFFFF,t_70
https://img-blog.csdnimg.cn/20190729122250393.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3FxXzQyMzgwNTE1,size_16,color_FFFFFF,t_70
model:
!6 发点8 收点运输问题;
sets:
warehouses/wh1..wh6/: capacity;
vendors/v1..v8/: demand;
links(warehouses,vendors): cost, volume;
endsets
!目标函数;
min=@sum(links: cost*volume);
!需求约束;
@for(vendors(J):
@sum(warehouses(I): volume(I,J))=demand(J));
!产量约束;
@for(warehouses(I):
@sum(vendors(J): volume(I,J))<=capacity(I));
!这里是数据;
data:
capacity=60 55 51 43 41 52;
demand=35 37 22 32 41 32 43 38;
cost=6 2 6 7 4 2 9 5
4 9 5 3 8 5 8 2
5 2 1 9 7 4 3 3
7 6 7 3 9 2 7 1
2 3 9 5 7 2 6 5
5 5 2 2 8 1 4 3;
enddata
end
————————————————
版权声明:本文为CSDN博主「bigheart-yan」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/qq_42380515/article/details/97633479
页:
[1]