比赛总结
这个比赛花了太多的时间,最后的结果还是有点遗憾
赛题主要内容和目的
初赛题目和内容
放置部分
- 放置部分主要是一个装箱问题, 但由于cpu和mem的关系比较特殊(1:1, 1:2, 1:4),可以规约为二维空间的0-1背包进行求解
- 每种物品只有一件, 可以选择放与不放
- 用子问题定义状态: 即f(i, u, v)表示前i件物品(虚拟机)放入到一个容量为U, V的背包可以获得的最大价值, 状态转移方程为:
- f(i, u, v) = max{cpu+mem+f(i-1,u-cpu,v-mem), f(i-1, u, v)} //价值就是cpu+mem(cpu个数+内存大小)
- 将前i件物品放入到容量为v的背包中, 这个子问题只考虑第i件物品的策略(放与不放)
- 如果将第i件物品放入背包中, 那么问题转换为前i-1件物品放入剩下容量为v-Ci的背包中, 此时能够回的的最大价值是f(i-1, v-Ci),再加上通过放入第i件物品获得的价值Wi
- 如果不将第i件物品放入到背包中, 那么问题就可以转换为前i-1件物品放入容量为v的背包中, 价值为f(i-1, v);
- 利用贪心的策略, 选择获取利益最大的方式放还是不放第i件物品
- 填包策略: 二维空间的0-1背包问题求解装箱, 很可能会出现最后一个包(物理机)不满的情况, 两种方案
- 第一种是暴力填充;第二种方案是暴力删除, 到底是删包还是填充, 应该计算分数的公式来决定, 那种方案分数高, 就选择那种方案
复赛变化点
- 增加了三种不同的服务器类型(普通、高性能、大内存), 预测时间不连续,要求预测时间更长,虚拟机种类更多
- 服务器放置更改为线性规划+比例优先+动态规划优化
- 预测归一化后用指数平滑和最小二乘的融合算法
2018年华为软件精英挑战赛总结
原文:https://www.cnblogs.com/longjiang-uestc/p/9539454.html