0

我面临一个问题,我会感谢任何可以提供帮助的人。问题如下:

考虑我们有一个向量D = [D1;D2;D3;...;DN]和一组时间实例TI = {t1,t2,t3,...,tM}D向量,的每个元素Di对应于 的一个子集TI。例如D1可以对应于时间实例{t1,t2,t3}和 D2 到{t2,t4,t5}.

我想找到与 的D所有元素相对应的元素组合TI,而不需要多次考虑其中的任何一个,同时最小化成本函数sum(Dj)Dj是向量的元素,D每个元素对应一组时间实例。

让我举个例子。让我们考虑一个向量

D = [15;10;5;2;35;15;25;25;25;30;45;5;1;40] 

和一套

TI={5,10,15,20,25,30} 

每个 D 元素对应于

{[5 15];[5 20];[5 25];[5 30];[5 15 20];[5 20 25];[5 15 30];[5 20 25 30];[10 15];[10 20];[10 25];[10 15 20];[10 15 20 25];[10 30]} 

例如,D(1)=15 对应于时间实例 [5 15]。

该过程必须提出的解决方案是D(4)和D(12)的组合,即分别为2和1,具有最小的和并对应于所有时间实例。

我不得不提到,该过程必须能够处理大向量。

感谢您的每一次尝试帮助!

4

1 回答 1

1

二进制权重向量 x 在每个 D_i 上放置一个权重。

令 f=[D1;D2;...;DN]。

A的j列,A_j是一个二元向量。

如果 D_j 对应于 Tk,则 A_jk 为 1,否则为零。

问题是:

min f^T*x  s.t.  A*x=1;

然后用bintprog来解决。

x = bintprog(f,[],[],A,ones(M,1))
于 2013-03-04T17:07:42.653 回答