python - 用于在图中查找路线的搜索算法
问题描述
我正在尝试实施 DFS、BFS 和 UCS(统一成本搜索)以使用此CSV文件查找不同火车站之间的路线。如果您使用任何文本编辑器打开数据文件,您将看到文件的内容为:
"Harrow & Wealdstone", "Kenton", "Bakerloo", 3, "5", "0"
"Kenton", "South Kenton", "Bakerloo", 2, "4", "0"
· · ·
"Bank/Monument", "Waterloo", "Waterloo & City", 4, "1", "0"
CSV 文件中的每一行代表一个 Tube“步骤”,格式如下:
[StartingStation], [EndingStation], [TubeLine], [AverageTimeTaken], [MainZone], [SecondaryZone]
在哪里:
StartingStation
: 起点站EndingStation
: 一个直接连接的终点站TubeLine
:连接命名车站的管道AverageTimeTaken
:指定站点之间的平均时间,以分钟为单位MainZone
: 车站的主要区域SecondaryZone
:站点的次要区域,如果站点仅在一个区域中,则为“0”
我已经实现了搜索算法,但无法将 CSV 数据转换为合适的图形(使用 NetworkX)作为算法的输入。
我想打印与搜索相关的信息,例如站点、成本、扩展的节点数量等。如何表示一个状态以及如何从每个站点构建一个新状态,这些站点可以从当前状态但尚未访问过的站点到达到目前为止的当前路径?下面的代码在打印时产生一个空输出tube_data
?谢谢。
import pandas as pd
import networkx as nx
import matplotlib.pyplot as plt
tube_data = pd.read_csv('tubedata.csv')
Graphtype = nx.Graph()
tube_data = nx.read_edgelist(tube_data, delimiter=',')
解决方案
推荐阅读
- sql - 仅当差异为正时才获得差异
- c++ - 在函数内声明后更改向量值
- amazon-web-services - 关系数据库到单个 Dynamo 数据库表
- clojure - 无法在类型 `QueryRoot' 上查询字段 `XXX'。”(用于 GraphQL 的 Lacinia Clojure 库)
- python-3.x - 要打印井字游戏,哪种代码更好?
- reactjs - 在 React / Redux 中,如果一个函数组件正在使用 redux-thunk 调度一个函数,它如何 setIsLoading() 呢?
- automation - Github Actions - 比较并找出两个 OAS V3 文件之间的差异
- php - 如何在 laravel 6 中使用 ajax 更新(放置)而不刷新?
- python-3.x - 如何向下滚动不到一直到页面底部(无限滚动,pinterest)
- angular - Angular 8 和 Flask REST API 作为 Docker 群服务 CORS 请求未成功