第三十章:算法大赛(四更)
书迷正在阅读:重生之全能明星学霸不太易、红楼之贾赦修仙记、[综漫]在下才不要穿小洋裙、抗日之超级壮丁、红楼之贵妃是个小花精、拯救二次元美女、他的陆太太很甜、抗战双子星、变身最强之病弱七实、大宋超级学霸
算法大赛是由国内知名的细细打车公司,于四月份在燕京召开的u生态大会上提出的,在演讲中李思燕表示,今年细细将举办首届“细细世界调度算法大赛”。 根据介绍,从生态大会举行的那天起,世界上所有的团队、个人都可以在细细移动端、c端官网上了解详细的赛程及流程,并且在大会结束一周以内可以开始报名活动,在“细细世界调度算法大赛”开始的第三天,也就是7月26号截止报名。 这次算法举办的目的是,希望与广大开发者一起探索算法的更多可能。 算法大赛设置了奖项,第一名是50万元的奖金,第二名是20万元奖金,还有第三名10万元奖金。 打车出行,是我们日常出行的一个重要的组成部分,已经有几百年的历史,不过在早期是黄包车,再往前是马车。 到了21世纪,互联网和打车的结合,给大家的出行带来了更多的便捷之处。 现在人们只需要在手机上下一个软件,乘客在上面说要在何时何地上车在什么地方下车,细细打车公司就会通过后台,给安装了司机版本a的手机上推送相应的消息。司机师傅看到后,可以在手机上cao作选择是否接单。 如果有师傅接单,打车者的手机就能收到已接单的提醒,然后就可以通过手机a看到车辆的位置、车牌号,还有司机的手机号码。 一般情况下司机会打个电话确认一下,只需要到时候乘客出现在约定好的上车地点就行,然后司机就开车带着乘客去目的地。 到了目的地,可以选择现金支付或者在线支付,这个流程就算是完成了。 但是调度是由以下各个环节组成的预测目的地、价格预估、时间预估、最佳路径匹配、司机和乘客匹配、订单分派、供需预测、预测乘客体验。 其中,司机和乘客匹配、订单分配是智能调度的核心。 在某个时刻有成千上万的乘客,同时也有成千上万的空闲车辆,要完成司机和乘客的最优匹配,最大限度提升匹配率和成交率。 一个好的调度算法,能让乘客等待更少的时间,带来更好的体验,同时也能让司机在相同的时间拉更多的人,带来更多的收入。 林奇详细的了解了这些存在的问题之后,就开始搜集相关的信息,然后进行调度算法的开发。 首先下载了一个小城市的地图,包含了大部分的商家、办公楼、地铁入口、公交站点、电影院、酒店、饭店、公园、小区等和生活息息相关的场所。然后写程序模拟城市中的随机乘客和固定数量的出租车。 没有拉人的时候,出租车在路上来回的跑,范围一般在自己家附近,也不跑太远的地方。 模拟的机器人有了出行计划之后,就会用手机打车,然后通知附近的车辆。算法会根据司机的位置,和上车地点目的地,这些所有的相关因素,综合考虑起来,最后给相关的人推荐,然后模拟司机抢单模式。 通过这样的方式,用一些固定的人固定的时间打车到不同的地方,来训练自己的算法程序。 刚开始的时候,林奇发现自己的算法,总是不尽人意。 分配的的订单总是有问题,有的时候给某些人分配的比较多的,而其他人分配的较少,并且乘客的等待时间,还有司机的等待时间、收入都不是很满意。 于是林奇不断地调整算法,每一次调整都是在曲折中前进,优化了很多次,每次能做到让乘客和司机更加满意。 不过还是无法和细细公司,公布出来的算法的结果相比。 一直到比赛的前几天,林奇才想到了一个新的算法,能更加优化这个算法。经过在不同的数据集里面测试,林奇发现这个算法模型比官方公布的数据效果还要好。 到了参赛的时间,林奇非常有信心的带上了自己的程序坐上火车去参加比赛。 做火车到了燕京之后,找到了细细公司说的比赛的地方之后,先到签到处签了到,然后在一个机器人充当引路人的指导之下来到了比赛大厅。 大厅里面已经来了很多的参赛者,大部分都是团队参赛的,很少有个人参赛,在40多个的参赛队伍中仅仅有3个是个人参赛。 林奇仔细看了参赛人员的配置,发现他们都自己带了电脑。 林奇有点尴尬,自己家里只有一个台式机,虽然性能还可以,但是太大了,自己来的时候也没有打包带来,结果到了这里遇到了没有电脑可用的尴尬局面。 赶紧向工作人员反映这个情况,大会的组织人员也惊呆了,他们也没有想到居然会有人不带电脑就来参赛,也怪公司没有在官网上说明必须自己带电脑,不过话又说回来,现在搞开发的,谁还没有一个笔记本电脑。 经过协调之后,工作人员从细细公司来参加比赛的同事那里,借来了一台acbook给林奇救急一下,并告诉了他电脑的密码。 林奇拿着acbook,打开了盖子。输入密码后,进入了系统,因为之前林奇从来没有用过ac电脑,所以对这个系统不是特别熟悉,进入了系统后林奇第一件事就是马上熟悉下新系统的使用。 算法大赛的主持人在台上开始了激情的演讲。 首先是细细的cto开始了一段激情的演讲,从细细的创立之初讲到了细细是如何发展成为现在这样大的规模,是怎么在之前的残酷的战争中胜利的,还有举办这场算法大塞的目的。 洋洋洒洒的一个小时过去了,除了林奇以外(林奇没有听过这些演讲所以很有兴趣),大家都有点想睡觉的时候,cto终于结束了他的演讲。 主持人接着开始了他的主持。 “我们今天的比赛是在一个虚拟的地图上进行的,这次的地图是由软件随机生成的一个大型而复杂的虚拟城市地图,再生成过程中参考了很多城市建筑,所以虽然是虚拟地图,但是也有很大的参考意义。和之前相同的是同样的是出租车的数量是固定的,还有随机出来了一些乘客,目的地也是随机的。但是每一个人拿到的都是相同的副本。我背后的大屏幕上出现的下载地址,是这次比赛需要用到的素材,大家可以自行下载。” “从现在开始在接下来的5个小时内,大家可以根据这个地图模型来随意调整自己的算法,你们可以在本地模拟多次,也可以提交多次,结果以最好的为准。” 林奇在电脑中输入了大屏幕显示的地址,开始下载模型,在刚才cto演讲的时候,林奇已经把他写的程序考到了电脑上,并且编译好了。 之前林奇在测试时候,就发现了一个问题,每次写了之后都要重新编译,会花费一定的时间。 后来林奇把程序修改了,只要程序改动不大,直接就能热编译,且编译速度非常的快,这给林奇带来了一些时间上的优势。 在这场比赛中这样的时间优势,也给林奇带来了不少的优势。 最终,林奇在这个算法大赛中获得了第二名。第一名受邀上台,讲了一下自己算法的核心思想。 林奇听完之后,感觉自己进入了一个神奇的世界。这个算法让林奇眼前一亮,顿时又有了新的想法,要不是时间不允许,林奇相信自己绝对能写出来比他更好的算法。 大会刚结束,林奇就赶紧向家里打了一个电话,说自己这次算法赢得了第二名,奖金有20万之多。 家里人听到之后,都非常的激动,二十万啊,一辈子都没有见过这么多钱,如果全部换成现金得有好几斤重吧! 赢得了20万元的奖励,林奇一路上高兴的都没有睡着觉。 回到家里,林奇把奖金都给了父母,和父母商量了一下,用一万多块钱买了一台acbook电脑,林奇在参赛的时候用过这个电脑,就对这个电脑念念不忘。 最后林奇开始了暑假最后一个月的冲刺。 只是他不知道他这一个月给开源世界带来了多大震惊。