【问题标题】:distance+load assignment matlab OR cplex距离+负载分配matlab OR cplex
【发布时间】:2012-03-12 14:49:18
【问题描述】:

我正在尝试解决 MATLAB 或 CPLEX 上的优化问题。我们有两个集合 A(n 个元素)和 B(m 个元素)。我们必须将 A 中的一个元素准确地分配给 B 中的一个元素。

可以根据需要为 B 中的单个元素分配任意数量的元素(最大 n)。将 A 中的元素 i 分配给 B 中的 j 元素是有代价的 = cij

此外,分配给 B 中的元素的 A 中元素的数量(负载)还有另一个相关的成本。该成本是:lj = ( sum (分配给 j 的元素数) ^2 )

因此总成本为:sum (cij+lj)

我们希望找到最优分配,使得 sum (cij+lj) 最小化。 如果没有负载,该问题可以表述为二进制整数编程。我关心的是如何在 MATLAB 或 CPLEX 中编写这样的函数。

【问题讨论】:

    标签: matlab variable-assignment cplex


    【解决方案1】:

    您希望根据要分配的变量数量(从 1 到 n 包括),最小化从一个向量到另一个向量的赋值成本?如果是这样:

    [x,fval] = fminsearch(@(x) sum(arrayfun( @(y) y*cij+y^2,1:n)),1)
    

    function out = minFunc(x,n)
      out = 0
      for ii=1:n
        out = out + cij*ii + n^2;
      end
    end
    

    其中 cij=1 用于演示目的,Ij = N^2,N = 分配给 j 的元素数。这似乎对您的需求很简单,因为它总是会返回x = 1。但是,要最小化的变量x 没有使用,所以我不确定您要最小化什么。如果我可以进一步提供帮助,请告诉我。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-04-21
      • 2012-09-30
      • 1970-01-01
      相关资源
      最近更新 更多