美文网首页
基于时空数据分析的决策支持报告

基于时空数据分析的决策支持报告

作者: 奔跑骚年 | 来源:发表于2019-01-02 08:51 被阅读0次

    概 述

    本人完成了出租车经营策略研究中的基础分析、原地待命策略、低速巡游策略和选作中的城市POI分析与推荐。工程代码在压缩包的DSpj文件夹内。相关数据在data文件夹内。

    一、环境说明

    GUN GCC Compiler

    Code::Blocks 13.12

    Windows10 64bit

    二、算法与数据结构介绍

    2.1 geohash算法

    将经纬度hash成一个long long。算法流程如下,比如(120, 30) 范围精度是0-180 唯独是0-90:

    120>=(0+180)/2 故h[0]=1 30<=(0+90)/2 h[1]=0

    120<=(90+180)/2 h[2]=0 30>=(0+45)/2 h[3]=1

    120>=(90+135)/2 h[4]=1 30<=(22.5+45)/2 h[5]=0

    以此类推二分得到每个坐标唯一的hash值。

    因为用了64位,所以可以保证每个点的hash是唯一的。所以用这个确实可以查到最近的点,唯一的cheat是在分割线附近,比如经度90和经度89.9999999会有很大差别。但在线上的点很少,而且这种情况依然能查询到另外一边的最近的点,所以我觉得geohash非常适合这个pj。

    这个算法的优点是代码简单且容易维护,准确度高速度快。缺点是分割线上不能保证最优解。但大部分情况有最优解,极小部分有较优解。

    验证发现在前四十层分割线上1e-5范围内只有437个点

    空间复杂度O(nlogn)

    查询复杂度O(logn*E) E为从最hash值最接近的E个点找最近点。

    2.2 A*搜索算法

    A*搜索用于求指定起点和终点的最短路。估价函数采用当前点到终点的欧几里德距离。实现上用优先队列来弹出 到起点距离+估价值 最小的点,之后把所有相邻点插入优先队列。

    这里给大家介绍一种双向A*的算法。

    参考文档和完整的文档和源码下载地址:

    https://www.write-bug.com/article/1462.html

    相关文章

      网友评论

          本文标题:基于时空数据分析的决策支持报告

          本文链接:https://www.haomeiwen.com/subject/xdqelqtx.html