### 2021华为软件精英挑战赛
-----
#### 关于队伍
* 粤港澳赛区初赛25名,复赛15名
![](https://i.bmp.ovh/imgs/2021/04/426acc60199ce5bb.png)
-----
#### 购买策略
* 服务器按照硬件成本+7/10 * 剩余天数 * 能耗成本排序,每次服务器资源不够时购买最便宜的
* 购买新服务器时,如果当前要分配的虚拟机出现需要的资源很不平衡(CPU核数远大于内存或内存远大于CPU核数)的情况,
给购买增加惩罚机制,需要有比虚拟机要求的更多的资源才能分配。举个例子,如果虚拟机需要的资源是80、10,
那么新购买的虚拟机就需要有100、10的资源才可满足,这样最后剩下的CPU核数至少为20,而不是0
* 如果虚拟机需要的资源极多,在惩罚机制下没有新服务器可以满足,则去掉惩罚机制开启第二轮购买
-----
#### 分配策略
* 每天的虚拟机操作以删除操作为边界,进行分段排序,占用资源大的虚拟机操作放在前面,有利于让小型虚拟机填满剩余资源
* 分配双节点虚拟机前,把服务器实例按照剩余总资源升序排序
* 分配单节点虚拟机前,把服务器实例按照单节点最高剩余资源升序排序
* 和购买策略一样,分配策略也引入了惩罚机制
-----
#### 迁移策略
* 维护两个服务器实例列表,分别按照剩余资源最多和最少排序
* 剩余资源最少的排序列表中,只包含剩余资源大于总资源1/17的。这是为了减少比较次数,对成本影响不大,但可以很大程度上提升性能
* 把剩余资源最多的服务器中全部虚拟机迁移到剩余资源最少的服务器上,如果某个服务器有一个虚拟机无法迁移,则直接跳到下个服务器
* 每个迁出的服务器虚拟机都迁移后,满足 当天迁移总量 % 3 == 2 则把保存剩余资源最少的排序列表重新排序
(这里不是每次迁移都排序主要是效果和时间之间的权衡)
---
#### 输入输出
* 把输出结果保存到String中,一次输出,可以比频繁调用print输出有更好的性能
没有合适的资源?快使用搜索试试~ 我知道了~
温馨提示
【资源说明】 1、该资源包括项目的全部源码,下载可以直接使用! 2、本项目适合作为计算机、数学、电子信息等专业的竞赛项目学习资料,作为参考学习借鉴。 3、本资源作为“参考资料”如果需要实现其他功能,需要能看懂代码,并且热爱钻研,自行调试。 2021华为软件精英挑战赛复赛源码+学习说明(15名).zip
资源推荐
资源详情
资源评论
收起资源包目录
2021华为软件精英挑战赛复赛源码+学习说明(15名).zip (21个子文件)
code_20105
CodeCraft_zip.sh 348B
makelist.txt 614B
build_and_run.sh 114B
bin
startup.sh 275B
.gitignore 288B
README.md 2KB
build.sh 702B
code
CodeCraft-2021
src
com
huawei
java
operation
Operation.java 67B
DistributeServerOperation.java 608B
MigrateServerOperation.java 494B
BuyServerOperation.java 492B
DeleteVMOperation.java 226B
VMOperation.java 560B
utils
OutputUtil.java 3KB
FileUtil.java 3KB
model
ServerInstance.java 4KB
VM.java 593B
Server.java 1KB
VMInstance.java 803B
main
Main.java 21KB
data
training-1.txt 2.9MB
共 21 条
- 1
资源评论
土豆片片
- 粉丝: 1801
- 资源: 5647
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功