0

私はリソース割り当ての問題に取り組んでいます。これには合計50000のリソースがあり、6つのモジュールに分散させたいと考えています。目的は

f(i)=1-exp(-b(i)*w(i)); for i=1 to 6
g(i)=1+2*exp(-b(i)*w(i)); for i=1 to 6
ff=(c1-c2)*a(i)*v(i)*f(i)/g(i)+c2*a(i)+c3*w(i);  for i=1 to 6

a(i)、b(i)、c1、c2、c3およびv(i)は既知です

そしてconsrtaontは

w(i)<= w whare i=1から6

w(i)>=0および

r(i)= 1-exp(-b(i)* w(i))/ 1 + 2 * exp(-b(i)* w(i))> = 0.9; つまり、各モジュールのr(i)は> = 0.9

したがって、W(i)i = 1から6が必要で、合計wは50000です。

遺伝的アルゴリズムを使ってどうするか教えてください。

ありがとうございました。

4

1 に答える 1

0

評価関数を持つことは、遺伝的アルゴリズムがどのように見えるかを決定するのに十分ではありません。評価関数は非常に重要ですが、問題の唯一の部分ではないからです。問題を完全に評価するには、少なくとも次のことを知っておく必要があります。

  1. 各モジュールと全体の配布における制限は何ですか? たとえば、各モジュールの容量制限はありますか?
  2. どのようなリソースを扱っていますか? 機能または一時的なリソース間に依存関係はありますか?
  3. 私たちはどのような問題に取り組んでいますか?すべてのリソースを割り当てる必要がありますか、それとも特定のタスクを実行するためにそれらを使用するつもりですか (したがって、各モジュールで特定の種類のリソースが必要になります)。

すべてのリソースを割り当てる必要があると仮定すると、最も単純な (そしておそらく最もばかげた) 解決策は、各リソースが指定されるモジュールを染色体にエンコードし、1、2、3、...、および 6 の 50.000 の長い文字列を持つことです。もちろん、すべてのビット文字列演算子をこのソリューションに適用できますが、小さな変更は適用できます。

ただし、50.000 文字の長さの文字列を操作するのは難しいため、代替手段が必要です。各リソースに数値パラメーターがある場合は、グループ センターで作成された表現を作成し、各センターへの近さに応じてリソースをクラスター化することを検討できます。それにもかかわらず、多次元の実数セットへのリソースの意味のある転置があるはずです。それを作成するには、リソース自体についてもっと知る必要があります。

于 2012-07-13T12:37:06.750 に答える