本文主要讲述使用MindOpt工具优化仓库选址的数学规划问题。
视频讲解👈👈👈👈👈👈👈👈👈
一、案例场景
仓库选址问题在现代物流和供应链管理中具有重要的应用。因为仓库的位置直接影响到货物的运输成本、交货时间和库存量等因素。
涉及的行业有:
农业的农产品的输出和分销需要适当的仓储设备,尤其对于易腐烂的农产品,像水果、蔬菜等等。在制造业中,为存放一些原料、半成品或成品,制造业需在生产基地附近或靠近市场的地方建立仓库。
零售业的零售商通常需要在城市中心或人口密集区域附近设计仓库,以便商品的快速配送。
电子商务、食品行业以及医药行业等应用非常广泛。
通常考虑以下因素:运输成本,考虑与供应商和消费市场的距离;地理位置、土地成本等等。
二、数学规划
仓库选址问题也可以使用数学规划的方法。数学规划是一种数学优化方法,主要是寻找变量的取值在特定的约束情况下使我们的决策目标得到一个最大或最小值的决策。常见规划方法有线性规划、整数规划还有非线性规划。
工具:
MindOpt优化求解器:帮我们求解大规模数据的数学规划问题。
三、问题描述
某公司有很多家商店,要建造多个工厂为商店供货。不同工厂库存容量和建设成本不同,每个商店的需求和每个工厂向商店运输商品的成本也不同。如何选择最优的工厂建造方案和供货方案使得总成本最低?
这个例题主要考虑了以下四点因素:
一是仓库建设成本,包括土地成本、建筑成本,以及设备成本等。在实际应用中,这个成本因素通常是已知的。因为仓库建设成本比较稳定,所以通过市场价格或预算确定。
二是库存成本,是在仓库中维护和管理存货所需成本,成本因素包括储存成本、订单处理成本,还有库存租金、保险费用等。在实际的应用中,需要调查和分析得出成本因素,以便在模型中考虑成本的影响。
三是运输成本,将货物从仓库运输到客户所需的成本,因素通常有运输距离、运输方式、运输时间、运输成本等,通常经过一定调查和分析之后得出,可通过运输网络模型、运输成本数据库或者实地考察等方式确定。
四是交通需求,是客户对货物的需求量,这个数据可通过客户的订单量、历史数据等方式获取。在实际的应用中,需要考虑客户对不同商户的需求量,以便在模型中考虑到对总成本的影响。
代码解析
使用工具:
- MindOpt Studio 云建模平台,在线开发调试,免下载
- MindOpt APL(MAPL)建模语言编程,代数建模语言,语法与数学公式相近
声明集合、参数
声明的集合:「PLANTS」是工厂的类型,「STORES」是拥有的商店数量。
声明的参数是每个工厂建造的成本和每个工厂的库存容量。
声明变量
在这个问题中,可以控制的决策变量是建造什么类型的工厂和由哪个工厂运输商品给哪个商店。所以声明两个二进制的决策变量,用0和1分别代表不建造不运输和建造运输两个场景,“1”表示建造工厂,“0”表示不建筑工厂。
声明目标函数
我们的决策目标是最小化成本。所以需要计算建造成本、运输成本,也就每个工厂建造的代价,以及建造的每个工厂+每个工厂运输商品到对应店的代价之和最小化。
声明约束
- 我们声明的约束在实际生活中,每个商店有不同工厂的选择。为了简化问题,我们假设每个商店只能选择一个工厂供货,
- 第二条约束是建造工厂才能提供货物给商店,由于第一条约束是每个商店只能选择一个工厂供货,所以我们需建造的工厂数量至少满足将商品提供给每个商店,也就是至少有一个工厂可以向所有的商店供货。比如A工厂,A工厂的二进制是“1”,即建造A工厂,然后A工厂提供给每一个商店的二进制状态也是“1”,也就是至少有一个工厂建造。
- 第三条约束是每间工厂的库存不能小于其所提供的商店需求之和,每个工厂储存的商品数量有限,一个工厂商品清空后,需要从另一个工厂运输。比如A工厂的库存是40,从A工厂运输到商店1、2、3,那么1、2、3商店需要的商品数量不能超过A工厂的库存数量。
结果解析
我们对这个问题进行求解。最后得出的结果是最小化的总成本是1457。我们建造了一个A工厂、一个C工厂,二号商店是由A工厂供货,三号商店也是由A工厂供货。
四、内容回顾
我们本期主要讲述的是仓库选址问题,考虑仓库的建设成本、运输成本、库存成本、交货需求四个因素最小化总成本。
扫描二维码获取源代码