本文主要是介绍2018华为软件精英挑战赛-复赛赛题,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
以下描述部分主要是相对初赛赛题的变化点,其他描述和条件均一致:
通用性描述变化点:
物理服务器:为了满足不同虚拟机规格的需求,实际物理服务器规格也有多种,假设云平台共有三种类型的物理服务器,分别为:通用型(General)、计算加强型(High-Performance)和内存加强型(Large-Memory),每种类型的物理服务器其CPU数量及内存大小均不一样。
资源维度:为了平衡各种资源的使用,需要同时考虑CPU和内存两种资源维度的同时优化。假设每个维度资源的优先级是等价的,即CPU与内存的权重各为0.5。
补充说明变化点:
1. 需要同时考虑CPU及内存的碎片率,即最终的资源利用率得分为两者的加权得分;
2. 需要预测的时间跨度为1~4个星期,且要预测的开始时间与训练数据集的结束时间不一定是连续的,会从0~15天后开始预测;
3. 复赛每个测试用例的训练数据集最多不超过20000条;
4. 程序运行时间不超过90s(单个用例);
5. 需要预测虚拟机规格类型和数量扩展到以下18种:
flavor1 1 1024
flavor2 1 2048
flavor3 1 4096
flavor4 2 2048
flavor5 2 4096
flavor6 2 8192
flavor7 4 4096
flavor8 4 8192
flavor9 4 16384
flavor10 8 8192
flavor11 8 16384
flavor12 8 32768
flavor13 16 16384
flavor14 16 32768
flavor15 16 65536
flavor16 32 32768
flavor17 32 65536
flavor18 32 131072
备注:flavor名称 CPU核数 内存大小(MB)
比赛胜负规则变化点:
比较参赛队伍程序输出的预测精度与资源利用率(利用率为CPU资源与内存资源两者的加权)的乘积,较大者胜出。如果出现得分相同的情况,则比较程序运行时间,时间较短者胜出。若运行时间也相同,则根据提交时间先后来区分排名。如输出结果不满足约束条件,得分为零。
程序输入与输出变化点:
输入文件格式
程序输入为一个以空格分隔的文本文件,文件每行以换行符(’\r\n’)为结尾。
文件格式为:
物理服务器类型数量(默认为3)
类型名称1 物理服务器CPU核数 内存大小(GB) 硬盘大小(GB)
类型名称2 物理服务器CPU核数 内存大小(GB) 硬盘大小(GB)
类型名称3 物理服务器CPU核数 内存大小(GB) 硬盘大小(GB)
(空行)
虚拟机规格数量
虚拟机规格名称1 CPU核数 内存大小(MB)
虚拟机规格名称2 CPU核数 内存大小(MB)
。。。(如上虚拟机规格信息若干行)
(空行)
预测开始时间
预测结束时间(时间跨度单位为:天)
(文件结束)
示例:
3
General 56 128 1200
Large-Memory 84 256 2400
High-Performance 112 192 3600
(备注:物理服务器类型名称不超过16个字符,CPU核数及内存大小均为不超过3位的整数,硬盘大小为不超过4位的整数。1GB=1024MB)
3
flavor5 2 4096
flavor10 8 8192
flavor15 16 65536
(备注:虚拟机规格名称最大不超过10位字符,CPU核数最大不超过2位字符,内存大小最大不超过6位字符。)
2017-01-09 00:00:00
2017-01-16 00:00:00 //注:即7天的时间跨度
(备注:日期与具体时间之间为空格符。需要预测的时间跨度为1~4个星期,且要预测的开始时间与训练数据集的结束时间不一定是连续的,会从0~15天后开始预测。)
(文件结束)
输出文件格式
程序输出为一个以空格分隔的文本文件,文件每行以换行符(’\n’)为结尾。
文件格式为:
预测的虚拟机总数
虚拟机规格名称1 虚拟机个数
虚拟机规格名称2 虚拟机个数
。。。(如上预测的不同规格虚拟机名称及数量若干行)
(空行)
物理服务器类型名称1 预测所需数量
名称1-服务器1 虚拟机规格名称1 能放置该类型虚拟机个数 虚拟机规格名称2 能放置该类型虚拟机个数 ……
名称1-服务器2 虚拟机规格名称1 能放置该类型虚拟机个数 虚拟机规格名称2 能放置该类型虚拟机个数 ……
……(如上每种类型物理服务器对应放置每种虚拟机规格数量若干行)
(空行)
物理服务器类型名称2 预测所需数量
名称2-服务器 虚拟机规格名称1 能放置该类型虚拟机个数 虚拟机规格名称2 能放置该类型虚拟机个数 ……
名称2-服务器2 虚拟机规格名称1 能放置该类型虚拟机个数 虚拟机规格名称2 能放置该类型虚拟机个数 ……
……(如上每种类型物理服务器的分别放置每种虚拟机规格数量若干行)
(空行)
物理服务器类型名称3 预测所需数量
名称3-服务器1 虚拟机规格名称 能放置该类型虚拟机个数 虚拟机规格名称2 能放置该类型虚拟机个数 ……
名称3-服务器2 虚拟机规格名称 能放置该类型虚拟机个数 虚拟机规格名称2 能放置该类型虚拟机个数 ……
……(如上每种类型物理服务器的分别放置每种虚拟机规格数量若干行)
(文件结束)
(备注:物理服务器名称可用“类型名称-阿拉伯数字”表示,如General-1)
示例:
6
flavor5 3
flavor10 2
flavor15 1
(备注:如果某种虚拟机规格的预测结果为零,即对应写0)
General 2
General-1 flavor5 2
General-2 flavor5 1 flavor10 1
Large-Memory 1
Large-Memory-1 flavor10 1
High-Performance 1
High-Performance-1 flavor15 1
(备注:每个字段之间用空格隔开即可。如果输出结果中某种类型的物理服务器所需个数为0,则不需要写出来,例如“General 0”这种情况可以直接省略不写。)
单个用例评分公式变化点:
:表示第i种虚拟机规格的实际数量;
:表示预测出来的第i种虚拟机规格数量;
:表示虚拟机规格的集合;
:表示预测到的第v个虚拟机的CPU资源大小;
:表示预测到的第v个虚拟机的内存资源大小;
:表示所放置的第h个物理主机的CPU资源容量;
:表示所放置的第h个物理主机的内存资源容量;
:表示预测出来的虚拟机集合;
:表示所需要的物理主机集合。
(备注:单个用例满分为100分。)
运行环境
开发语言支持:C/C++、Java 7/8、Python 2.7
CPU:Intel(R) Xeon(R) CPU E5-2680 V4 @ 2.40GHz
内存:2G
CPU核数:单核
编译器:gcc 4.8.4、java 1.8、python 2.7
操作系统:Ubuntu 14.04.4 LTS 64位,内核版本 Linux version 4.4.0-31-generic
SDK:为方便选手做题,分别提供c++(兼容c)、Java、Python的SDK包供参考(见DevCloud项目),详细描述信息请见SDK目录下的readme.txt。
CPU:Intel(R) Xeon(R) CPU E5-2680 V4 @ 2.40GHz
内存:2G
CPU核数:单核
编译器:gcc 4.8.4、java 1.8、python 2.7
操作系统:Ubuntu 14.04.4 LTS 64位,内核版本 Linux version 4.4.0-31-generic
SDK:为方便选手做题,分别提供c++(兼容c)、Java、Python的SDK包供参考(见DevCloud项目),详细描述信息请见SDK目录下的readme.txt。
这篇关于2018华为软件精英挑战赛-复赛赛题的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!