2019年华为软件精英挑战赛,京津东北赛区初赛第13,复赛第18,呦车还没我跑的快。

  历时一个多月的华为软件精英大赛落下帷幕,很遗憾的止步了三十二强,从初赛到复赛更改了大大小小的版本将近50多个,通过改进调度算法、发车策略、路权系数、架构等几方面对自己的算法进行了无数次的改进。终于抽出时间把自己的算法整理一下:

算法大致流程图:

调度算法:

  调度算法的选择是我们刚开始遇到最大的难题,最开始我们使用时Dijkstra算法进行车辆路径的规划,算法复杂度为O(N^2),调度的过程中对每个时间片未出发车辆的路径根据实时的路况进行重新的调度。所以该算法的复杂度对我们而说在15分钟的时间内是不能完成比赛的,解决的办法是:采用SPFA算法,该算法是对拓扑路径的改进,算法复杂度为O(N+E)。通过改进前后对比,一万车辆的数据从半个小时降低到2分钟左右。(注意是每个时间片重新规划一次,所以时间还是比较长)

其中路权系数的设计:

  其中channel为当前道路的车道数,length为当前车道的长度,v_slow为当前道路上速度最小的车辆,n为当前道路上的总车辆数,β为可调节参数。

发车策略:

  • 将车辆分为优先级车辆和普通车辆,将两种车辆集合分别进行排序,首先将车辆按计划出发时间排序,计划出发时间相同的车辆按照起点均匀分布排序,以保证地图各道路负载均衡。
  • 每个时间片T控制发车的数量为:

    其中a为自适应系数,代表未出发车辆的比例,S为总车辆,同时对每个路口进行循环发车。

回溯解锁:

  死锁状态判定:当前时间片等待状态的车辆在两个循环内保持不变,即认为死锁。
  死锁解锁策略:因为实时更换路径当存在死锁便将所有的状态恢复到上一时刻的状态,并且判断是否可以成功解锁,如果可以就继续,否则找到死锁车辆修改路径信息并且锁死,回溯到0时间片重新调度。
  
  `
总结:

  这次比赛整体上来说,体验还是很不错的,在这里感谢两位队友,各种嗨皮各种玩儿。为什么会取得一个不让自己满意的成绩呢?我总结了以下三点:

  1. 动态实时规划路径,跑一个时间片规划一次,首先时间成本上去了,相对的调整代码的时间就少了。
  2. 动态实时规划路径时,调度算法嵌入到了判题器里面,对判题器作出了大量修改来满足实时调度的要求,增加了出错的概率,其实我们最后死就死在这的,找不到嵌入判题器的bug。
  3. 虽然这次比赛感觉不是很难,但还是对自己的脑逻辑提出了很大的挑战哈哈,讲道理就是费脑子,整体逻辑太繁琐。

  我们的实时调度算法也有很大的优点,一是肯定能跑出结果,二是在嵌入判题器不出bug的条件下,结果就一定是正确的,在复赛我们用我们的算法在练习的时候就跑到了4000+的成绩,奈何一个bug误终身,还是卡在了复赛现场,遗憾呐!!!!!!抛开这些,比赛给我的技术和思维带来了很大的提高,增涨了很多的见识,认识了很多参赛以及华为的大佬,还结识了华为一位非常nice的学长!!!!
  十分珍惜这段时间,期待还有下次,然而马上要毕业了!后悔这么晚才认识这个比赛,早干嘛去了!!!!

19华为软件精英挑战赛止步复赛相关推荐

  1. 2021华为软件精英挑战赛总结(复赛第12名)

    2021华为软件精英挑战赛 github 地址:https://github.com/DougZheng/Huawei_software 前言 无意中看到赛题,觉得很有意思,就匆忙在报名截止前几天上了 ...

  2. 2016华为软件精英挑战赛:赛题及其答疑汇总

    注:本文文字均摘自官方指定网站和论坛,权威且可信,答疑见中间部分,非常全,众玩家可放心阅读. 同时文末给出了包括自己在内的诸多玩家的解法. 前言 赛题源自"未来网络"业务发放中的路 ...

  3. 2017华为软件精英挑战赛参赛过程回顾与心得

    参赛队名:武长区 枪林弹雨 2017年4月26日,一波三折的复赛终于结束了,我们队最终没能进入决赛.虽然在意料之中,不过还是有些小失望.已经为这个比赛忙了一个月,突然之间不知道干什么好了,干脆写一写自 ...

  4. 2020华为软件精英挑战赛——总结

    2020华为软件精英挑战赛 github:https://github.com/jadyntao/HuaWei_CodeCraft_2020 队伍:助教小分队(粤港澳赛区) 初赛:0.2102(赛区第 ...

  5. 2023华为软件精英挑战赛,探寻软件人才与科技创新的最优解

    作者 | 曾响铃 文 | 响铃说 今天,软件行业正呈现出江河入海一般的大汇流趋势. 一方面是技术的汇流,诸如人工智能等前沿技术与软件行业的深度融合,正全面颠覆软件产品的开发模式和服务逻辑. 另一方面则 ...

  6. 2021华为软件精英挑战赛(杭厦第20名)

    写在前面 距离华为软件精英挑战赛结束也有一段时间了 我是浙工大投降战队的队长,第一次参加这种比赛能打到复赛我还是比较满意的 这次比赛我最大的收获就是认识了好多厉害的大佬 希望我们杭厦赛区晋级的战队总决 ...

  7. 2020华为软件精英挑战赛总结

    2020华为软件精英挑战赛总结 00 赛题描述 01 整体思路 02 数据读取以及正反向图构建 03 多线程找环运动 031 反向DFS 3层构建P3 032 正向DFS 4层找环 04 结果输出 0 ...

  8. 2021华为软件精英挑战赛总结分享

    2021华为软件精英挑战赛总结分享 随着大赛的结束,自己的2021软挑也落下了帷幕,很幸运在自己学业生涯的最后几个月能够再参加一次华为软挑,虽然成绩不是特别好,但已经满足了.这是自己第二次参加华为的比 ...

  9. 华为软件精英挑战赛2015

    华为软件精英挑战赛赛题 点击链接加入群[华为精英比赛]:http://jq.qq.com/?_wv=1027&k=ZSJmVU http://t.cn/RArNwTL 1 编程任务 编写牌手程 ...

  10. 2021华为软件精英挑战赛初赛代码及思路

    2021华为软件精英挑战赛训练赛.正式赛思路分享     有幸再次参加了华为软件精英挑战赛(去年由于不知道数据集有坑,导致没能进入复赛,今年决定再来一次弥补去年的遗憾)     今年的赛题相比去年个人 ...

最新文章

  1. 附pdf下载 | 入门深度学习和GAN的几本书
  2. 贪心算法--多处最优服务次序问题
  3. IDEA如何重新刷新pom.xml文件重新下载
  4. Mybatsi注解开发-基础操作
  5. SQL中的CASE WHEN用法
  6. Linux下Socket 函数集(三)
  7. 网络安全-配置dns服务器
  8. python 嵌套数组_兴趣是最好的老师,快速入门:十分钟学会python
  9. BaseRecyclerViewAdapterHelper结合autolayout使用
  10. windows10系统下MongoDB的安装及环境配置
  11. php umount强制,linux中mount/umount命令的基本用法及开机自动挂载方法
  12. 深度好文 | 战“疫”上云正当时:打开云计算的正确姿势
  13. 百度关键词点击ios_百度推广关键词点击价格高,如何处理?
  14. 【自用】Android 双击返回键退出
  15. linux exec操作文件描述符
  16. Angr安装与使用之使用篇(十三)
  17. 树莓派安装qq linux,在(Raspberry Pi)树莓派上安装NodeJS
  18. 应坚刚《概率论》第一章重点习题解答
  19. 2022-2027年中国网上阅卷系统行业发展前景及投资战略咨询报告
  20. 测试专业相机快门软件,检测快门次数软件 快门数量检测

热门文章

  1. 3D控件Aspose.3D 18年新版V18.1发布 | 附下载
  2. Shell编程之变量的高级用法
  3. 你想要的宏基因组-微生物组知识全在这(2022.1)
  4. 【心里效应】98 个著名的心理效应
  5. 这游戏为什么被称作是独立游戏的巅峰?
  6. 独立游戏大电影观后感
  7. Android框架揭秘-Android Service Framework
  8. ESXi7.0 安装 MacOS (ESXi Unlocker 3.0.3)
  9. 小米MAX Root,第三方REC,XP框架刷入
  10. 硬件学习笔记之稳压二极管