图-公交查询问题乱弹(二)

来源:互联网 发布:常州上元淘宝美工培训 编辑:程序博客网 时间:2024/04/29 22:37

 还是先上昨天鬼画符的图,有点改变


              

今天来谈谈两个站点之间的路线查找问题。

假设一个情景,你现在在站点A,你现在想去站点J。你输入了两个站点的A->J,然后我们的系统开始工作。

站点J在线路2和3上,而我现在在线路1和4上,我该乘那辆车啊?

在这本人引入了一个概念,叫做线路相关联度。我是这样来表示的(1,4)->1(个站点),(2,4)->1(个站点),(3,4)->0,我只是使用的两个路线的共同经过的站点的个数,如果在严格一点,应该向概率论那边考虑,不过我只是乱弹没那么严格,真做了在想想。

以此类推

(2,1)->2,(3,1)->2,(4,1)->1

(1,2)->2,(3,2)->3,(4,2)->1

(1,3)->2(2,3)->3,(4,3)->0

其实很多重复了,可以简化下,(1,4)和(4,1)是一样的。

我们在A上车,我要去J,在2,3号线,A在1,4号线,而(1,2)->2,(1,3)->2,(4,2)->1,(4,3)->0,你可能应该不怎么会上4号线,因为前面上1号线加起来的值是4而后面是1,如果在恨点,改一下图,(4,2)->0,那你就肯定乘一路车。

引入这个值是为了在向下深度查询的时候可以舍弃掉一些线路,不过这里面的关系还好好好研究研究,特使是进入一层后没有直接答案,在下一层时怎么取舍。

比如:与上图无关

需要A->K,比如A在线路a,K在线路k。小写的是线路,大写为站点

a->b=2

b->c=4

b->d=3

c->f=2

c->h=1

h->k=2

d->k=1

就是多层次的时候,在线路选择上怎么取舍,还有现在考虑的都时单向的,在路径查询时,加入反向时,数据结构又是怎么设计的,很多问题。


头有点大了,今天就讨论到这。




原创粉丝点击