Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/283.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 如何在运输优化问题中限制DCs?_Python_Optimization_Mathematical Optimization_Linear Programming_Pyomo - Fatal编程技术网

Python 如何在运输优化问题中限制DCs?

Python 如何在运输优化问题中限制DCs?,python,optimization,mathematical-optimization,linear-programming,pyomo,Python,Optimization,Mathematical Optimization,Linear Programming,Pyomo,在典型的运输优化问题中,我们对给定的来源(配送中心)和需求(商店)点进行成本优化 在下面的示例中,我们如何添加附加约束以限制配送中心(DC)的数量 i、 e。 问题: if dc_lim=10 total_available_DCs=30 Then Total DCs in optimize network<=dc_lim. 如果dc\u lim=10 可用总信用证=30 然后优化网络中的总DCs最好看数学,而不是一堆代码。我们开始吧 min sum((c,s,k), T(c,s,k)

在典型的运输优化问题中,我们对给定的来源(配送中心)和需求(商店)点进行成本优化

在下面的示例中,我们如何添加附加约束以限制配送中心(DC)的数量

i、 e。 问题:

if dc_lim=10 
total_available_DCs=30
Then Total DCs in optimize network<=dc_lim.
如果dc\u lim=10
可用总信用证=30

然后优化网络中的总DCs最好看数学,而不是一堆代码。我们开始吧

min sum((c,s,k), T(c,s,k)*x(c,s,k))
    sum((c,k), x(c,s,k)) ≤ supply(s)    ∀s
    sum(s, x(c,s,k)) = demand(c,k)      ∀c,k
    x(c,s,k) ≤ M(c,s,k)*y(s)            ∀c,s,k     "if closed don't ship from DC" 
    sum(s,y(s)) ≤ limit                            "limit number of open DCs" 
    y(s) ∈ {0,1}                                   "DC is open or closed"
    x(c,s,k) ≥ 0 
    M(c,s,k) = min(supply(s),demand(c,k))          "constants" 

将其转录到代码中并不重要。

嘿@Erwin,感谢您提供的有用见解。我只是在理解上有点困难,M(c,s,k)=min(供给,需求),我们如何定义它?它是一个数组,包含来自“s”的最小供应量还是每个(c,s,k)的需求量“c,k”?这是正确的。你可以把M变成Python数组或列表。谢谢,就在上一期,模型是不可行的,我想这是因为“x(c,s,k)≤ M(c,s,k)*y(s)∀c、 s,k“,这是一个限制吗?将
限制增加到30,看看会发生什么。您需要学习如何调试不可行的模型,以便能够有效地使用优化工具。看到op如何更新其代码以反映这一唯一的数学答案将是一件令人满意的事情
min sum((c,s,k), T(c,s,k)*x(c,s,k))
    sum((c,k), x(c,s,k)) ≤ supply(s)    ∀s
    sum(s, x(c,s,k)) = demand(c,k)      ∀c,k
    x(c,s,k) ≤ M(c,s,k)*y(s)            ∀c,s,k     "if closed don't ship from DC" 
    sum(s,y(s)) ≤ limit                            "limit number of open DCs" 
    y(s) ∈ {0,1}                                   "DC is open or closed"
    x(c,s,k) ≥ 0 
    M(c,s,k) = min(supply(s),demand(c,k))          "constants"