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。

猜你喜欢

转载自blog.csdn.net/susu0203/article/details/80042775