谈谈2018华为精英挑战赛

翻译 2018年04月14日 23:55:26

    背景介绍云平台为了满足不同租户的需求,提供了一种可随时自助获取、可弹性伸缩的云服务器,即弹性云服务器(Elastic Cloud Server,ECS)。为容纳更多的租户请求、并尽可能提高资源利用率、降低成本,自动化、智能化的资源调度管理系统非常关键。由于租户对ECS实例(虚拟机,VM)请求的行为具有一定规律,可以通过对历史ECS实例请求的分析,预测到未来一段时间的ECS实例请求,然后对预测的请求分配资源(如图1所示),这样可以找到一个接近最优的分配策略,实现资源最大化利用,同时也能参考预测的结果制定云数据中心的建设计划。
这里写图片描述
    赛题更加详细的信息请参考2018华为软件精英挑战赛官网(http://codecraft.devcloud.huaweicloud.com/home/detail)代码介绍比赛赛题主要可以分成两个步骤:1. 根据历史虚拟机请求数量预测接下来几天的各类虚拟机请求数量(主要通过机器学习方法)2. 将预测出来的虚拟机放置进规定规格的物理服务器中,使得物理服务器的资源(CPU或者内存)利用率最高
1)第一个步骤需要先对数据进行预处理,比如去除节假日期间的异常请求值等等,然后应用机器学习的方法使用历史数据训练预测模型,最后使用训练出来的预测模型进行预测,不知道是测试用例原因还是我们使用的模型的原因,这一步骤做出来效果并不是太好,所以这部分暂时就先不放出来了,以免误导大家。
2)第二个步骤是寻找最优放置虚拟机方式,在上一步预测出来各种虚拟机数量之后,实际资源使用情况就已经确定了(一共多少CPU,多少内存),每个服务器的资源又是确定的,所以最终的资源使用率就只跟服务器数量有关,于是问题便转化为了:如何放置虚拟机可以使得使用的服务器数量最少?因为每次放置都要考虑虚拟机的CPU和内存两个维度,所以放置问题可以看作一个二维装箱问题(Bin packing),人们对二维装箱问题的研究一直在进行。第一种最简单的方法(也是官方文档示例方法)是首次适应法(FFD算法),即将所有的虚拟机按次序放入物理服务器中,对于每个虚拟机,检查服务器资源是否足够放下该虚拟机,如果可以放下就将其放在这台服务器上,如果服务器剩余资源不足以放下该虚拟机,则新建一台服务器,将虚拟机放入新建的服务器……直到最后放置完所有的虚拟机,将每个服务器放置的虚拟机输出即可。首次适应方法有个弊端,可能会造成每个服务器都有挺多资源剩余,但是却无法被后来的虚拟机利用。由于在采用首次适应法的前提下,虚拟机放置方式只与虚拟机初始排列顺序有关,所以我们可以用智能算法对初始排列顺序进行优化,求得接近最优解的解。我们可以采用模拟退火算法进行最优解的寻找,模拟退火算法(Simulated Annealing Algorithm)用于优化问题的出发点是基于物理中固体物质的退火过程与一般优化问题的相似性,关于该算法的详细介绍,请参考维基百科(https://zh.wikipedia.org/wiki/%E6%A8%A1%E6%8B%9F%E9%80%80%E7%81%AB)。使用模拟退火算法, 每次随机交换两个虚拟机的顺序,使用首次适应法将虚拟机放入服务器,并计算出服务器使用数目最少的一组,模拟退火算法收敛过后,我们即可得到一个最优解或者接近最优解的解,将其作为最终结果输出即可。
参考文献

华为2018软件精英挑战赛指导(含伪代码)

  • 2018年03月16日 11:48
  • 21KB
  • 下载

2018华为软件精英挑战赛实况记录

       今天想写一篇博客记录一下自己参加华为软挑的过程,估计会在接下来一个月陆续更新。题目其实几天前就看过了,代码也写了两天,不过报名还是今天的事。       今年的题目相对还是比较好理解的,...
  • xbb123456rt
  • xbb123456rt
  • 2018-03-18 22:11:07
  • 483

谈谈2018华为精英挑战赛

    背景介绍云平台为了满足不同租户的需求,提供了一种可随时自助获取、可弹性伸缩的云服务器,即弹性云服务器(Elastic C...
  • u012017783
  • u012017783
  • 2018-04-14 23:55:26
  • 78

2017华为软件精英挑战赛思路分析

声明:这篇博客仅用于(zhang)交(fang)流(wen)学(liang)习,让大家更快的熟悉赛题,不会涉及到具体的算法细节,所以不会影响到前排同学的排名,请不用担心。题目大意有一个无向网络,网路的...
  • mmy1996
  • mmy1996
  • 2017-03-21 15:59:14
  • 14936

c语言算法—背包问题进阶型(含有两个约束项)

在之前的01背包问题中,我们可以发现约束项都只有一个,下面我们来探讨两个约束项的情况;首先,我们考虑使用一维还是二维来表达:在有一个约束项时,我们需要二维,因为横向表示物品数,而竖向表示约束项的改变;...
  • Vernon917
  • Vernon917
  • 2017-03-28 14:35:30
  • 490

动态规划之背包问题(二):完全背包问题

完全背包问题 问题描述 在上一篇里,有关01背包问题,我们在状态转移函数、是否需要放满、利用一维数组优化空间复杂度几个方面做了阐述。本篇要解决的是完全背包问题,描述如下: 有N种物品和一个容量为...
  • siyu1993
  • siyu1993
  • 2016-10-19 14:09:49
  • 1426

2017 华为软件精英挑战赛

官方题目中的例子,但是我数了下只有44条边,用于测试吧28 44 12 100 0 1 20 1 0 2 16 1 0 3 13 1 0 6 13 2 0 7 25 2 0 8 36 2 0 9 ...
  • firenet1
  • firenet1
  • 2017-03-19 18:40:30
  • 16645

2018华为软件精英挑战赛

    今天12点,历时一个多月的2018华为软件精英挑战赛训练赛结束了,最后分数215.597(总分300),挺差的,很遗憾,前64都没能进,不过还算尽力坚持到最后。    3月初,华为软赛开始一周...
  • Justdcy
  • Justdcy
  • 2018-04-15 20:33:55
  • 145

2018华为软件精英挑战赛系列2——自己手撕的LSTM

    由于需要做的是时间预测,所以先选定了LSTM来做。由于不给调包,自己理解不够深入,所以自己手写了一个LSTM,但是这个效果很不好,最后没有用上这个模型,但是也算是自己手撕了这么多行代码,发上来...
  • sinat_27908213
  • sinat_27908213
  • 2018-04-13 23:17:50
  • 110

2018华为软件精英挑战赛总结

做了半个多月的华为软件精英挑战赛终于落下了帷幕,首先记录一下最好排名,51吧。最终得分221,无缘64强。     首先这是我们第一次参加比赛,完完全全是小白的状态一点一点查资料研究的,一开始都不知道...
  • pudao6842
  • pudao6842
  • 2018-04-16 15:27:28
  • 53
收藏助手
不良信息举报
您举报文章:谈谈2018华为精英挑战赛
举报原因:
原因补充:

(最多只允许输入30个字)