# 2022年华为软挑 **Repository Path**: loxs/codecraft-2022 ## Basic Information - **Project Name**: 2022年华为软挑 - **Description**: 2022华为软挑神经网络做法 - **Primary Language**: Python - **License**: MIT - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2022-03-18 - **Last Updated**: 2022-05-27 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # 2022华为软件精英挑战赛 ## 下界的分析 这个题目是存在一个优化下界的,TOP5节点若分配合理,那么目标函数值是要大于任何一个时刻除去top5边缘节点的和的。所以若是提前分配好top5节点,那么要想方设法让剩余时刻的尽量贴近于使用流量最大时刻的边缘节点流量分布。 ## 思路 ### 挑选TOP5节点 贪心:流量使用最大时刻的最大可承受流量的边缘节点,使用优先队列实现 ### 训练剩余节点 #### 初始化 1. 随机种子 2. 每个客户节点流量均分给每个能分配的边缘节点 #### 损失 最小化剩余边缘节点的最大值,此处设置了三种损失 1. 最大值损失:对最大值的边缘节点计算损失【减少此处节点流量】 2. 未到最大值损失:对不到最大值的边缘节点计算损失【增加此处节点流量】 3. 超出阈值损失:超出边缘节点阈值计算损失【减少此处节点流量】 ### 转为整数 神经网络得到的结果为小数形式,需要转化成整数形式 1. 对分配量进行下取整,对客户节点剩余部分进行再分配【下取整的误差】 2. 对超出边缘节点阈值部分进行再分配 PS:再分配时,先选择不到top5或者top5往上的边缘节点,再选择top5边缘节点 ## 算法缺陷 对于高压数据优化效果不明显