考研完到杭州迈睿机器人公司实习了一个月,感觉收获不少,学到了很多工程相关的经验,之前对大型工程没有什么概念,有无从下手的感觉,现在经过一个月的实习,大致对实际的开发流程有了了解。
这一个月的实习中,我基本上了解了MRTA的全部内容,并重写了一个利用最小费用最大流原理的算法取代了原本的匈牙利算法,测试小车数大于30辆时可以缩短时间10倍。然后基本了解了MRPP中的路径规划,学会了A*算法,交通管理没怎么看懂。给公司解决了实际应用下小车倒车以及出入库的近远端终点选择。
经过了一个月的实习,我了解了前端和底层数据可以通过JSON交互数据,这样可以实现JS做web的UI,C++实现底层的调度,再利用JAVA实现后端和有关数据库的整个软件系统的实现。并且认识到了设计模式和重构的重要性。
11:38 2018/12/28 到公司,安装环境
13:21 2018/12/28 看MRTA代码
8:38 2018/12/29 看MRTA代码
9:55 2018/12/29 利用#define和#ifdef进行注释开关
8:59 2019/1/2 学习了静态库和动态库的使用
13:38 2019/1/2 用匈牙利算法解决指派问题的理论搞懂
20:27 2019/1/2 最小费用最大流代码(spfa)写完
15:59 2019/1/3 最小费用最大流调试完成,但是发现比原本的匈牙利算法慢1.5倍
20:36 2019/1/3 发现主要问题应该是内存分配慢,原本的都是一开始分一个整体内存,我自己写的是每次用malloc
8:36 2019/1/4 内存问题解决,发现快了1/5,但是还是比匈牙利慢一倍
10:07 2019/1/4 已知最小费用最大流采用原始对偶法+dijkstra可以快一些,网上给的测试是spfa的1/3.3,尝试重写
16:31 2019/1/4 写出来发现比用spfa还慢,可能是因为本身负权比较少,这种算法不适用二分图最佳匹配
17:35 2019/1/4 还剩一个km算法可以选择,时间复杂度是O(n^3),需要递归,排除
9:40 2019/1/5 将工作的车辆数提高到100以上时,发现最小费用最大流的性能大约是匈牙利的20倍,原本测试7台车辆时两者差距不大,也就1倍;也就是当工作量小时两者差距不大,但工作量大时最小费用最大流优势很大
10:15 2019/1/5 开始考虑如何将已经到的那些车辆考虑进去
9:37 2019/1/7 vs调试学习
10:12 2019/1/7 看整个工程中的调度代码
11:09 2019/1/7 C++11中,用emplace_back()取代push_back(),有效率上的提升
13:34 20