从寻路算法聊一聊降维打击

        自从上次听了大佬的寻路算法之后的一点感触,关于降维和升维。

        之前想的,关于寻路,那就从四个方向,或者八个方向就去找,找到终点位置,先用djstra,再好一点 用A*,但是怎么也想不到其实这个问题就是一个排列组合的问题,算法问题用数学的排列组合就给解决了.

        我也看了一下推荐的hello,算法,没想到贪心的问题可以用几何求面积的思路解决,我对数学还是有点兴趣的,之前想学数学,学排列组合,学微积分,导数,积分,线代,几何有啥用,现在看来这里才是用处,说一个自己的小历史,其实我是有获得过全国数学竞赛奖的。

        这个用我们传统文化来说,就是一个字,妙,用道家来说,就是玄,易经说:龙战于野,其血玄黄。你知道黄,很黄,但是为什么黄,这里面就是玄之又玄了,所以说算法非常非常重要,可以极大的提升我们思考问题的维度,找到更有效率更优质的解决方案。

        我自己也比较喜欢看科幻小说,特别是三体,手机看了一遍,买书也看了一遍,在黑暗森林里面,我们人类最终是被其他文明的一个小卡拉米用二向泊给定格成宇宙中的一副画,这里也是佩服刘慈欣的浪漫主义精神哈,实际上如果是真实的宇宙中,估计我们人类文明可能就是灰飞烟灭了,就像是用原子弹去炸鱼一样的消失掉。

        人类还在想着多维展开的时候,其他文明已经实现了降温打击,那不覆灭才怪。

        最近有很多的数据统计的需求,而且数据量非常大,种类也很多,具体一点的,比如我们做广告统计,需要统计每个人看了多少活动,看完了多少活动,创角时间是什么,剩余多少货币,这些数据都是下载在不同的文件中,通常的做法就是将每个数据都处理一遍后,做最后的数据整合。        

        在单进程中去处理,但是速度还是有点慢,想着如何才能提升多文件处理速度,提升数据统计的速度,我们这个需求是cpu密集型的,基本上python的多线程是用不上的,因为GIL锁的问题,所以能否用多进程呢,充分使用多核,但是进程间的数据通信如何处理,通常的做法是socket,管道,信号,共享内存,但是在我们这个业务中用python去做,实际上就大费周章了。

        终于找到了一种解决方案,在python3.10中实现了一种进程池方案,可以实现进程间的数据共享问题,比较优雅的解决了这个问题,在我们的同样的样本量对比之下,从最开始的42s可以缩减到22s内完成,我的cpu是i5-9400F,所以,在问题可以拆分的情况下,可以使用多开进程的方案提高效率。

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值