我正在尝试解决设施位置问题,我有一组客户和一组潜在的设施位置。虽然,传统问题是线性的,但我转换了一些约束,现在我遇到了一个非线性问题。
我知道 python 有非线性优化包,例如 SciPy,但我不明白我应该如何迭代大型集合。我可以只使用for循环来计算总和吗?以及如何在以下示例中说明约束中的“for all i in I”和“for all j in J”?
目标:最大值:Z=∑_i ∑_j (d_i * p_ij * a_ij * y_j)
服从: p_ij=(u_ij * a_ij * y_j)/(∑_j (u_ij * a_ij * y_j)) ∀ i ∈ I, j ∈ J
y_j ∈ {0,1} ∀ j ∈ J
其中 I 是客户集,J 是潜在设施位置集。d、a 和 u 已给出。p 和 y 由模型定义。
有人可以解释一下如何在 SciPy 中使用集合吗?或者,请给我发送一个包含此类优化问题的示例代码,以便我了解它是如何完成的。
谢谢!