智能算法 | 遗传算法 处理 服务器资源分配问题

问题描述:给出一定用户的请求(各类虚拟机的数量),装在给定规格的服务器内 ,要求服务器的资源利用率最大。其中,虚拟机和服务器各有两个维度限制,CPU和内存(Mem)。

思路:本题实质是背包问题,考虑过dp,贪心,蚁群以及遗传。若单单解决该问题,则dp是最佳的选择,由于题目后期会有拓展(多维度多约束背包问题),并且有时间上的要求,考虑到这个原因,我就放弃了dp。个人觉得蚁群的复杂度较高,所以也放弃了蚁群。贪心在数据规格较小时,效果明显,一旦数据规格扩大时,则遗传效果明显。经过实验的对比,在一定数量的虚拟机下采用贪心算法,一旦超过了这个数量,怎用遗传来处理。遗传主要的难点是在编码方式上,数据量大时,二进制编码的缺点就暴露出来,思考过来决定用实数编码,然后做数据的映射。

方案:将所有的虚拟机用数组装载起来,数组的下标作为染色体,然后将染色体和虚拟机用数据结构关联在一起,方便后面的输出。


交叉算子采用多点交叉,步骤如下:

1)随机选择两个父染色体,随机生成交叉点,交叉点将染色体分成两部分,如图(a)所示;
2)交换两个染色体的第一部分或者是第二部分,生成新的染色体,如图(b)所示;

  • 3
    点赞
  • 21
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值