问题描述:
用搜索算法模拟解决地铁换乘问题!
例如:
输入:search('徐家汇', '人民广场')
输出: 徐家汇->A->B-C->人民广场
import
为了简化,这里不使用真实的地铁数据,而采用简单的随机生成的数据来进行模拟
station
绘制一下生成随机地铁路线
G
生成图信息,即无向图的连接信息(每个节点连接的节点是什么)
graph_info
标准的广度优先和深度优先遍历算法
def
以上可以验证一下深度优先和广度优先算法的正确性!
算法改进
从标准的广度优先算法改进成可以搜索A->B路径的算法,我们对每次访问的节点进行判断是否到达了目标点,如果到达则搜索完毕,返回路径
def
完成,可以达到预期效果
总结
该算法还有许多可以改进的地方
- 如果要添加中途点,那么搜索算法如何改进?
- 如果假如站与站之间的位置信息(两站时间消耗),搜索算法如何修改?
- 如果想最少换乘,搜索算法如何改进?
进一步改进会越来越接近地图里面的效果