首页 > 解决方案 > 多产品交付优化问题:简化模型和约束

问题描述

我正在尝试解决以下问题:

我们有不同的独特产品需要交付给客户(1 个产品 = 1 个客户)。我们有几家工厂,有些产品只能由一家工厂生产。一个产品需要 10 天才能在工厂里制造出来。然后我有几辆车来运送产品。一辆车可以运送多种产品。也可以将成品存放在生产地以外的其他工厂。

目标是降低运费。

例如,如果两个客户离工厂很近,最好将产品从一家商店转移到另一家商店,以便进行分组交付。

我使用了以下模型:

集合是:T代表时间

我为工厂

J 代表产品(或客户)

K 用于车辆

(并且 V 是节点,所以 V = I union J)

我的决策变量是: 在此处输入图像描述: 1 如果产品 j 是工厂 i 在时间 t 的产品

在此处输入图像描述: 1 如果产品 j 在时间 t 在车辆 k 上,并且路线 i1 -> i2(i1 和 i2 在 V)

在此处输入图像描述: 1 如果车辆 k 在时间 t 行驶路线 i1 -> i2

在此处输入图像描述: 1 如果车辆 k 在时间 t 访问节点 i。(我在 V)

最小化的函数是: 在此处输入图像描述(c[i1][i2] 是路线 i1 -> i2 的成本)

并且约束是:

我们只需要生产一次产品 在此处输入图像描述

我们需要交付每一个产品 在此处输入图像描述

路由的一致性: 在此处输入图像描述 在此处输入图像描述

生产后 10 天交货前 在此处输入图像描述

每个产品都有一个交货期限 在此处输入图像描述

产品只能装在车上 在此处输入图像描述

最后一个对我来说是个问题的约束:我们只能从放置的地方运输产品。所以我使用以下约束,这意味着要离开 i1,产品必须已经在 i1 中生产或之前已经到达 i1。

在此处输入图像描述

问题是这非常非常慢。5 个客户和 2 个工厂需要几分钟(T_max = 45)。

我需要找到一种方法在生产中使用下降速度算法,我将拥有 ap 30/40 客户、5 个工厂和 T_max = 90。

你知道如何固定算法吗?正是这最后的约束导致了缓慢的优化。

也许我的建模是错误的,有一种更简单的方法可以做到这一点。

或者我认为我们可以简化最后一个约束,例如添加另一个决策变量,但我没有找到解决方案。

非常感谢您的帮助 !

标签: optimizationmathematical-optimizationlinear-programmingpulpmixed-integer-programming

解决方案


推荐阅读