2017华为软件精英挑战赛解分析
后经在复赛赛题上测试,效果并不好,只适合部分数据集,并且没有理论支持,放出来只为启发——
以下方法初中级样例1s以内,高级样例10s内出最优解——
不随机,无启发式,走优化的方法。采用反馈-迭代的方法逼近最优解
贴上在各算例上的运行时间以及结果【基本上迭代个10几次就收敛了】
**一开始是为吸引下注意其实不是最优解是近似最优解
程序运行过程中截图
思路
改图——
设置超级源超级汇。源点和所有节点相连,带宽无穷大,cost待定;汇点和所有消费节点相连,带宽为消费需求,cost为0。则问题变成单一源到单一汇点的最小费用流问题。
至于在哪设服务器,在不想做服务器的地方,其实只要把源点到该点的连接cost改成特别大,在求最小费用流时算法自然不会考虑该条路径,即,不会把该节点当成服务器。这样离散问题就变成了连续问题
问题是服务器要摆哪。
****我们把服务器架设费用换成连接的cost。假设 P点设一服务器,服务器架设费用 c,在求得的最小费用流实际方案中,源到P点流量 f【以下"流量"都是说的超级源到某一点的流量】,那么按道理源到 P的那条连接的cost一开始该设成 c/f ,就可以不用单独考虑服务器架设费用。就按这个思路,对于任意一个节点,先预测假如把他作为服务器的可能流量,计算源点到该点连接的cost=c/f ,然后求最小费用流,然后根据实际流量调整一开始预测的流量,然后再求最小费用流,,,
梨子——
假如一网络拓扑如下、节点 1和 节点3是消费节点,则改图加上超级源s 超级汇t之后的网络如下图
假设节点 1需求为 7,节点 3需求 1
不考虑带宽,把cost当成距离,各点的流量假设就让他只满足离他最近的那个消费节点的须要,则各点预测流量如下
再假设服务器架设费用280
计算一开始 s到各点的连接 cost如下
cost[s-1]=280/7=40, cost[s-2]=40, cost[s-3]=280, cost[s-4]=280, cost[s-5]=280
然后就是计算最小费用流以及根据实际求得的流量调整预测值以及相应的 cost了,,
*来自我吹一波0,这样的求法可以保证每一次出来都是可行解【没有删路径只是改了源到某个点的cost】,不像概率变异的方法在不是解的地方浪费大量时间,服务器个数以及位置会在迭代过程中动态调整,将一个离散问题换成一个连续性问题,使迭代优化的方法成为可能,,
至于迭代为啥会收敛,,,嘿嘿,,你猜,,
算法步骤
do{
一、预测各点流量
暂抛开带宽限制,把cost看成是距离,简单起见,就假设一个点就只给离自己最近的消费节点提供流量,且是提供满足其所需的流量,够简单把?
按照预测的流量计算源到各个点的cost
二、求给定方案下的最小费用流
【一大波现成的算法正在赶来】
三、调整预测值
比如你算出来最终是从源到点 T上有流量1【点 T被设为服务器】,流量为 f1,设一开始预测的流量为 f0, 只要令 f0=f1, 同时记得调整相应的连接的cost。
**注意:**只修改被当成服务器的那些点,其他点的连接上的预测值保持不变。
}while();
代码块
哪天开心了会放在这的
以下是废话
你问我们队现在在哪呢,还能在哪,淘汰了呗【可惜了这么牛B的方法】
4月初才开始参赛,u盘坏了、网络断了、输出格式不对程序提交一直result error,烦,
只好我们的方法供出来,但愿能换钱0
看这里,如果对你有帮助,,嘿嘿,,捐助我【另,全套代码白送啦】
支付宝二维码——
注意:【我就喜欢有耐心看到最后的】为了使服务器趋于集中【而不是每个消费节点一个】,在最小费用流的计算过程中,如果实际的流已经大于预测值了,则源到该点的cost置为0,【这样算法就更倾向于继续选则流量从这个点走】。
迭代渐进的方法其实有个缺点,就是容易陷到沟里【局部极小值】。想办法扰动他一下,叫他跳出来
你看不到我你看不到我. ↩︎
2017华为软件精英挑战赛解分析相关推荐
- 2017华为软件精英挑战赛小结
// 2017华为软件精英挑战赛小结 // 不说废话,直接上货!希望对目前的参赛者,或日后学习的人,提供一些参考和思路. #include <赛题说明.pdf> // 见附录文件 ...
- 2017华为软件精英挑战赛参赛过程回顾与心得
参赛队名:武长区 枪林弹雨 2017年4月26日,一波三折的复赛终于结束了,我们队最终没能进入决赛.虽然在意料之中,不过还是有些小失望.已经为这个比赛忙了一个月,突然之间不知道干什么好了,干脆写一写自 ...
- 2017华为软件精英挑战赛决赛思路分享
大家好,我是月光. 历时一个多月的软挑终于落下了帷幕,收获了一个还不错的名次.这个不错是对我们自己而言的,可能对于观众来说,记住的永远只会是第一名,而其他角色终会随比赛过去而被遗忘.其实本身我希望过的 ...
- 最小费用流算法不完全指南-2017华为软件精英挑战赛
1.前言 整个比赛历时70多天,是一场持久战,期间看了不少资料,实现了一些算法,现总结如下. 初赛的思路是启发式+费用流,启发式实现了遗传算法.模拟退火,费用流实现了连续最短路(spfa),zkw/p ...
- 2017华为软件精英挑战赛系列一
看到题目时,首先就是读懂它.以下就是我对题目的一些分析. 需要解决的问题 在满足所有的住户小区视频播放需求的基本前提下,如何选择视频内容存储服务器放置位置,使得成本最小. 本次赛题通用性描述 网络结构 ...
- 2017华为软件精英挑战赛总结
1.题目 本次赛题是一个视频服务器的CDN规划问题 赛题包_百度网盘 2.解题思 2.1 思路一 整数规划 主要是要把模型建出来 包含了 0-1变量->是否布置服务器 边变量-> 表示该边 ...
- 2017华为软件精英挑战赛txt数据的读取(MATLAB实现)
path = 'case_example\case0.txt';fid = fopen(path,'r');caseData.nodEdgUserCount = zeros(1,3);b = fget ...
- 2017年华为软件精英挑战赛初赛解题思路
2017年华为软件精英挑战赛初赛解题思路 题目链接:http://codecraft.huawei.com/ 常规解题思路:网络流(最小费用最大流)+ 启发式搜索算法 + 算法性能优化 1. 最大流 ...
- 2016华为软件精英挑战赛:赛题及其答疑汇总
注:本文文字均摘自官方指定网站和论坛,权威且可信,答疑见中间部分,非常全,众玩家可放心阅读. 同时文末给出了包括自己在内的诸多玩家的解法. 前言 赛题源自"未来网络"业务发放中的路 ...
最新文章
- [Ahoi2008]Meet 紧急集合
- 记一次,jvm 内存溢出
- css中的滤镜,CSS中的filter(滤镜)属性
- 分析技术在PMP中的应用
- Error:Could not find com.android.tools.build:gradle:2.2.2.
- [渝粤教育] 西北农林科技大学 食品安全概论 参考 资料
- 银河麒麟支持php吗,银河麒麟Linux
- 抖音seo,抖音搜索排名系统,抖音seo源码开发。
- X-FRAME-OPTIONS 出现两个或多个的原因
- 迁移学习——Balanced Distribution Adaptation for Transfer Learning
- Hadoop Steaming编程示例
- WebGL空间变换以及gl_FragCoord的运用
- 阿里工程师谈,什么是好的代码?
- 详解 AJAX-SpringBoot 前后端数据交互
- 如何快速大批量进行复制粘贴数据?
- 思科6509 引擎720-3BXL 更换风扇造成设备重启
- UNetbootin使用
- windows下快速实现labelImg环境配置
- Linux仿Ubuntu图标包,优秀的 Ubuntu 14.04 图标主题
- 使用CAN总线数据与波形记录分析仪查找和解决波形台阶和信号幅值低的问题