我正在尝试解决 MATLAB 或 CPLEX 上的优化问题。我们有两个集合 A(n 个元素)和 B(m 个元素)。我们必须将 A 中的一个元素准确地分配给 B 中的一个元素。
B 中的单个元素可以根据需要在 A 中分配任意数量的元素(最大 n)。将 A 中的元素 i 分配给 B = cij中的 j 元素是有代价的。
此外,与分配给 B 中的元素的 A 中元素的数量(负载)相关联的另一个成本。该成本是: lj = ( sum (分配给 j 的元素数) ^2 )
因此,总成本为:sum (cij+lj)
我们希望找到最优分配,使得 sum (cij+lj) 最小化。如果没有负载,该问题可以表述为二进制整数编程。我关心的是如何在 MATLAB 或 CPLEX 中编写这样的函数。