绝了,通用Lingo模型巧解运输问题:同时兼顾产销平衡与不平衡

        在运筹学领域,运输问题是一个经典且实用的优化模型,旨在寻找最低成本的货物分配方案,以满足多个供应点向多个需求点的配送需求。运输问题可分为两类:产销平衡与产销不平衡。本文将以Lingo编程语言为例,介绍一个灵活的模型框架,既能处理标准的产销平衡情况,也能适应产销不平衡的。

模型概述

基础设定

  • 供应点集合(Supply):假设有19个供应点,每个点有其特定的供应能力CA
  • 需求点集合(Market):涵盖14个需求点,每个点有特定的需求量De
  • 运输路径(ij):定义了每一对供应点到需求点的可能运输路径,包括每单位运输的成本Co及实际运输量X

3、总运输量约束(重要关键):不管是供不应求还是供过于求,总运输量为两者取小,从而有效处理了供不应求或供过于求的情况。

假设TS 代表总供应量,即所有供应点的供应能力之和;TD 代表总需求量,即所有需求点的需求量之和。那么,总运输量 TT 应当不超过这两个值中的较小者。

ligno代码如下:

Model
!By William ,2024/6/16;
SETS:
    Supply /1..19/: CA;      ! 定义供应点集合,有19个供应点,每个供应点有供应量CA;
    Market /1..14/: De;      ! 定义需求点集合,有14个需求点,每个需求点有需求量De;
    ij(Supply, Market): Co, X; ! 定义运输路径集合,表示从任意供应点到任意需求点的路径,Co为单位运输成本,X为运输量;
ENDSETS

DATA:
    Ca ,De , Co =@ole("gen_trans_data.xlsx") ; ! 从Excel文件gen_trans_data.xlsx中读取供应量CA、需求量De和单位运输成本Co的数据;
    @ole("gen_trans_data.xlsx")=x ;           ! 将解(即各路径的运输量X)写回同一个Excel文件;
ENDDATA

MIN = @SUM(ij: Co*X); ! 目标是最小化总运输成本,即所有路径运输量X乘以对应路径的单位成本Co之和;

TS=@sum(supply:Ca);          ! 计算总供应量TS;
TD=@sum(market:De);          ! 计算总需求量TD;
TT=@smin(TS,TD);             ! 总运输量TT取TS和TD中的较小值;

TT=@sum(ij:X);               ! 用总运输量对各运输量进行约束;

@FOR(Supply(I): @SUM(Market(J): X(I,J))<= CA(I)); ! 供应约束,确保每个供应点的总输出不超过其供应能力CA;
@FOR(Market(J): @SUM(Supply(I): X(I,J))<= De(J));  ! 需求约束,确保每个需求点的总输入不超过其需求量De;
end
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

William数据分析

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值