使用遗传算法和matlab进行资源分配

时间:2012-07-13 11:52:02

标签: algorithm genetic

我正在处理资源分配问题,在这个我有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。

请任何人告诉我如何使用遗传算法。

谢谢。

1 个答案:

答案 0 :(得分:0)

评估函数不足以确定遗传算法的外观,因为即使评估函数非常重要,它也不是问题的唯一部分。为了全面评估您的问题,需要至少知道以下内容:

  1. 每个模块和总数有哪些限制 分配?例如,每个都有容量限制 模块?
  2. 我们正在处理什么样的资源?在那儿 资源之间的依赖关系,无论是函数还是时间?
  3. 我们处理的是什么问题?是否所有资源都是如此 已分配或我们是否打算使用它们来执行某项任务 (因此,我们将在每个模块中使用特定类型的资源)?
  4. 假设您需要分配所有资源,最简单(也许是最愚蠢的)解决方案是将每个资源将被指定到染色体中的模块编码,并且具有50.000长串1,2,3,......和6的。当然,所有位串运算符都可以应用于此解决方案,但稍作修改。

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