0

私は問題に直面しており、助けてくれる人に感謝します。問題は次のとおりです。

D = [D1;D2;D3;...;DN]ベクトルと一連の時間インスタンスがあると考えてくださいTI = {t1,t2,t3,...,tM}。ベクトルの各要素はDDiのサブセットに対応し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は時間インスタンス[515]に対応します。

手順で考え出さなければならない解決策は、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です。それ以外の場合、A_jkはゼロです。

問題は:

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

次に、bintprogを使用して解決します。

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