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) 是已知的

并且约束是

w(i)<=w ware 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. 我们正在处理什么样的问题?是否要分配所有资源,或者我们是否打算使用它们来执行特定任务(因此,我们将需要每个模块中特定类型的资源)?

假设您需要分配的所有资源,最简单(也许是最愚蠢)的解决方案是将每个资源将被指定到的模块编码到染色体中,并具有 50.000 长的 1、2、3、...和 ​​6 字符串。当然,所有位串运算符都可以应用于此解决方案,只需进行一些小的更改即可。

但是,由于使用 50.000 个字符长的字符串是可行的,因此我们需要替代方案。如果每个资源上有任何数字参数,我们可以考虑创建一个由组中心组成的表示,并根据它们与每个中心的接近程度对资源进行聚类。然而,应该将资源有意义地转置到多维实数集中。为了创造它,我们需要更多地了解资源本身。

于 2012-07-13T12:37:06.750 回答