A repository about HuaWei Software Challenge. (Including code, doc, etc.)
在 baseline 的基础上,改进每日购买服务器的数量。方案如下:
- 记录当天 add 请求中虚拟机配置需求最大的 Core 和 Memory,和 add 请求的数量 num。
- 购买 num/2 台服务器,每台服务器的需求恰好大于等于最大 Core 和 Memory 的需求。 结果: 总成本:9760608560;迁移次数:0;耗时:1.353
重新考虑一边部署一边买,对于今天新买的服务器,需要编号。
- 每次先检查已有服务器,优先部署已有的服务器;
- 若无法部署已有服务器,则找到最适合的服务器类型,并购买一台。
对于新购买的服务器需要进行编号。 结果: 总成本:2921036874;迁移次数:0;耗时:7.405
改动:
- 对服务器进行重排序,按照性价比升序排序;
问题:
- 如果根据请求顺序部署,会出现某个需求很大的虚拟机无法部署。
解决方案:
- 尝试了每天请求的虚拟机按照 核数 + 内存 的方式,降序排序,依然存在问题;
- 针对每个虚拟机,遍历整个服务器列表,找到一个服务器节点的核数、内存大小与当前虚拟机的核数、内存大小的 差距 最小。其中,差距计算如下:
报错:
服务器或虚拟机信息错误,服务器 ID 不存在
发生错误的服务器ID为134,你输出的操作为('add', ' vmPCXA5', 264022204)
在1.3的基础上,设置了步长 step
。如果连续 step
次 gap
的值未发生变化,则终止;