初赛、复赛。比赛耗时50天。忙忙碌碌、紧紧张张。
西北赛区真的很强,最终成绩初赛6/64 复赛6/36。真是666!!! 简单说一下赛题: 赛题围绕两个点展开:销量预测问题、放置优化问题。 请求预测问题与简单解析:赛题给出了用户对于虚拟机请求的2-3个月的历史数据文档(txt文件),需要做的是通过读取和抽取文件中关键信息(时间信息)、统计历史虚拟机的请求数量。根据历史数据去预测接下来一段时间(时间的长短、时间的间隔有一些小花样需要处理)的不同规格的虚拟机请求数量,预测结果的准确性是考察的一部分。 放置优化问题与简单解析:预测出来的虚拟机请求数量了,接下来,要去部署这些虚拟机去,怎么样来部署呢把不同规格的虚拟机数量放置在固定规格的服务器上,服务器和虚拟机的规格(在一个input.txt)在文件给出,也是需要我们自己去获取关键信息,服务器的不同规格就像不同大小的容器(或者叫背包),虚拟机的不同规格就像不同大小的物品,我们要把这些不同规格的虚拟机(小物件)放在服务器(背包)上面。怎么样放得最满、最严实是我们要解决的问题。 举例: 给出8种虚拟机: flavor5 2 4096 flavor10 8 8192 flavor2 1 2048 flavor11 8 16384 flavor12 8 32768 flavor13 16 16384 flavor14 16 32768 flavor15 16 65536 给出3种服务器: General 56 128 1200 Large-Memory 84 256 2400 High-Performance 112 192 3600
怎么解决:根绝历史数据,预测出8种不同规格虚拟机的请求数量,把预测出来的结果部署在3种不同规格的服务器上。预测的准确度和放置的利用率直接影响到最终的得分,最终的得分有评分公式。
详情见:赛题链接:http://codecraft.devcloud.huaweicloud.com/home/detail
先来一张图镇楼(假装很厉害)。96.841分
———————————————————-分界线—————————————————————-
废话不多说,下面分享干货: 预测方法:二次指数平滑(发现到后面用的方法大部分都是这个,确实好用,简单有效,胜过其他逼格很高的预测算法),通过一次差分数据、二次差分数据、三次差分数据(用二次差分数据做归一化处理)。用这个3种数据做二次指数平滑,再加上一个奇怪的系数,这个系数只有自己去慢慢试才能得知。 放置方法:定向遍历可行解(解系附近)30万次,加上竖贪心放置算法,加上矫正算法,再加上得分公式来权衡利弊,从30万个可行解中选取一个得分最好的解进行输出,鲁棒性很高、很稳定、很放心,毕竟是30万次尝试的结果,复赛最终的放置率可以达到99.5%以上,完美解决。 预测准确度和放置利用率之间的利弊权衡也很关键,在假设自己知道标准预测答案的前提下:怎么样去找见预测准确度和放置利用率之间的权衡点,通过评分公式去权衡,比如:我就牺牲部分预测准确度去成全更高、更完美的放置利用率又何尝不行呢bsp;
声明:本站部分文章及图片源自用户投稿,如本站任何资料有侵权请您尽早请联系jinwei@zod.com.cn进行处理,非常感谢!