2017年华为软件精英挑战赛初赛解题思路
常规解题思路:网络流(最小费用最大流)+ 启发式搜索算法 + 算法性能优化
1. 最大流最小费用算法
假设一个超级源点和超级汇点,其中将整个网络设置反向。超级源点和所有的消费节点相连,连接边的最大流量就是消费节点的消费流量;超级汇点和所有的网络节点相连,连接边费用为零,如果该网络节点被选择设置为服务器连接点,则连街边最大流为无穷大,否则为0。
基于该假设可以选择使用景点的最小费用最大流求解。但是因为运行时间有限,可以采用改进的spfa算法进行运算,具体的实现思路和代码可以参考:https://github.com/lanyangyang2631546/20170308minimum-cost-flow-in-maximum-flow
后来还有效率更高的zkw算法:https://github.com/sanshanxiashi/MCMF_zkw ;
2. 启发式搜索算法
采用启发式搜索算法的目的就是寻找最优的网络节点挂载服务器。
大体看了一圈,貌似模拟退火的算法要比遗传算法效果好,效率高;但是我们采用的是兄弟实验室最新的成果:
论文 http://lamda.nju.edu.cn/yuy/GetFile.aspx?File=papers/aaai16-racos.pdf
3. 算法的性能优化
工程算法和学术算法不一致的地方就在于工程算法更加注重算法的性能优化,包括代码重构、循环剪枝等;
还有一个提升性能的方法就是选择合适的优化初始值,可以从直连节点进行比较筛选得到。
如果仅仅有1-3点还是不够的,还需要从两个方面进行考虑:
一方面,需要对搜索进行有效剪枝,避免在局部最优陷入过长时间等等。
另一方面,应当充分利用网络信息进行启发式搜索,比如寻找相邻的消费节点,访问度数较低的节点合并入访问度数高的节点等等。
2017年华为软件精英挑战赛初赛解题思路相关推荐
- 2021华为软件精英挑战赛初赛baseline
2021华为软件精英挑战赛初赛baseline,由ddmm大佬提供的单文件baseline按照工程开发格式改写,改为以类为单位,多文件的格式.同样没有在里面添加任何算法,相当于一个脚手架,帮助大家更快 ...
- 2021华为软件精英挑战赛初赛代码及思路
2021华为软件精英挑战赛训练赛.正式赛思路分享 有幸再次参加了华为软件精英挑战赛(去年由于不知道数据集有坑,导致没能进入复赛,今年决定再来一次弥补去年的遗憾) 今年的赛题相比去年个人 ...
- 2023华为软件精英挑战赛——全赛段思路分享与总结
去看高山,去看大海,去天地之间寻找意义- 我明白两个人最好的状态不是相互凝视,而是一同望向远方的星辰! 目录 写在前面 一.赛题介绍 1.任务背景 2.任务目标 3.交互方式 二.初赛思路 1.基于距 ...
- 2023华为软件精英挑战赛,探寻软件人才与科技创新的最优解
作者 | 曾响铃 文 | 响铃说 今天,软件行业正呈现出江河入海一般的大汇流趋势. 一方面是技术的汇流,诸如人工智能等前沿技术与软件行业的深度融合,正全面颠覆软件产品的开发模式和服务逻辑. 另一方面则 ...
- 2017华为软件精英挑战赛小结
// 2017华为软件精英挑战赛小结 // 不说废话,直接上货!希望对目前的参赛者,或日后学习的人,提供一些参考和思路. #include <赛题说明.pdf> // 见附录文件 ...
- 2017华为软件精英挑战赛参赛过程回顾与心得
参赛队名:武长区 枪林弹雨 2017年4月26日,一波三折的复赛终于结束了,我们队最终没能进入决赛.虽然在意料之中,不过还是有些小失望.已经为这个比赛忙了一个月,突然之间不知道干什么好了,干脆写一写自 ...
- 华为2020软件精英挑战赛初赛、复赛、决赛代码+心得分享
目录 写在前面 初赛 第一代思路 第二代思路 最终版思路 优化思路 多线程 数据结构设计 输入和输出的优化 复赛 规则描述 优化思路 算法 多线程 数据结构设计 复赛正式赛 总决赛 总结 写在前面 2 ...
- 2022年华为软件精英挑战赛区域初赛解读(基于数学规划模型附代码)
0 写在前面的 本文是对2022年华为软件精英挑战赛(普朗克计划)区域初赛的一个解读.首先说明的是本文的算法无法直接拿来参赛的,因为区域初赛的要求是不能调用其它的算法包,python的话只能用nump ...
- 2016华为软件精英挑战赛:赛题及其答疑汇总
注:本文文字均摘自官方指定网站和论坛,权威且可信,答疑见中间部分,非常全,众玩家可放心阅读. 同时文末给出了包括自己在内的诸多玩家的解法. 前言 赛题源自"未来网络"业务发放中的路 ...
最新文章
- Dat.gui 使用教程
- .NET : 通过配置文件指定跟踪(trace)选项
- Python 正则表达式-问号的四种用法
- springmvc执行流程(简述易懂)
- (二)Linux下的crontab定时执行任务命令详解
- 系统新模块增加需要哪些步骤_在1769系统里使用MVI69MCM的有福了
- IntelliJ IDEA导出设置
- docker 容器命令
- 手机电源键关不了屏幕_没有home键iphone强关机,关机你会吗?小的快来!
- Windows/Mac系统MySQL,MySQL驱动下载和安装
- 搜狗批量推送软件-搜狗批量推送工具【2022最新】
- win7共享wifi之bat文件
- Matlab中将横纵坐标改为自定义标签(set(gca,xtick)set(gca,xticklabel))
- GIS影像数据格式说明
- 关于matlab GUI重命名的问题。
- 参加Google Developer Day 2009归来,互联网营销
- 养眼的大自然色卡,设计师必备
- easydl code for classify
- 计算机机房学生上机制度,学生上机管理制度
- 微软桌面android,微软推 Android launcher 桌面 App, 电脑同步手机更方便!
热门文章
- 《LoadRunner 12七天速成宝典》—第2章2.5节参数和变量
- 巴西审定用于空客321飞机的AerSafe系统符合燃料箱可燃性降低规则
- JPG格式照片转PDF格式电子书
- Oracle同义词创建及其作用
- 英语话题 Shopping
- .NetCore学习笔记:一、UnitOfWork工作单元
- 漫谈CRM体系化建设5:CRM体系化解决方案
- 基于android系统的公交信息查询系统,基于Android平台的智能手机公交信息查询系统的设计与实现...
- 应用最广泛的8位单片机当然也是初学者们最容易上手学习的单片机
- cocos2d-x 中的pvr.ccz压缩图片的使用方法