公交路线设计

来源:互联网 发布:模拟植物生长算法代码 编辑:程序博客网 时间:2024/04/27 12:40

2).搜索直接到达的线路

 1. 有两种思路,一种方法是用一个大矩阵,行列均是总站点数,A[i][j]记录的是经过站点i,j的公交路线;另一种方法是,获取经过站点i的所有的公交路线,有序排列,获得经过站点j的所有公交路线并有序排列,取交集即可。

 

一般而言,越少换乘越好,所有公交路线的搜索流程也是按照直接到,换乘1次,换乘2次,换乘3次…如此搜索的。

 

固定起始点i和j,其中i为出发站点,j为目标站点。若i和j都在A的第k个行向量中.且i在j前,则i可通过第k条线路到达j.,并统计该线路上产生的时间z2和费用z1..若前面两个条件之一不满足,则i不能通过第k 条线路到达j.循环执行下一条线路。最后输出费用最小的线路和费用最小的线路, 对应完整线路(包括站点和车次)..

3)搜索换乘1次到达的线路

   固定起始点i和目标点j,循环执行每个站点.按前面方法判断站点i能否直接到达站点k,同时判断站点k能否直接到达站点j.统计每条i能直接到达k,k能直接到达j的线路.并计算该条以k为中转站的线路的时间z2和费用z1.共循环n次,就可以完成所有搜索.输出费用最小的线路和费用最小的’线路, 及对应完整线路(包括站点和车次)。

4) 搜索换乘2次到达的线路

  固定起始点i和目标点j,循环计算通过i的所有线路和通过j的所有线路。对通过i的某条线路r,通过j的某条线路s,若线路r中存在站点x1, 线路s存在站点x2,使x1可由某条线路直接到达x2,则获得一条iàx1àx2àj的换乘两次的线路。其中x1和x2为中转站。对通过i的所有线路,通过j的所有线路进行循环执行,且判断两条线路上的站点能否直接到达,就可以得到所有有两个中转站的线路,计算每条这样线路的时间z2和费用z3,最后输出时间最少的线路和费用最小的线路及对应完整线路(包括站点和车次).

5)搜索换乘d次()到达的线路

   固定起始点i和目标点j,任意取d个站点,判断i能否直接到达,能否直接到达,…,能否直接到达,能否直接到达j.若以上每条线路都可以直接到达,则获得一条iàà--..àj的线路。循环取,则可获得所有经过d次换乘的线路,最后输出时间最少的线路和费用最小的线路及对应完整线路(包括站点和车次)。

原创粉丝点击