当前位置: 首页 > news >正文

英语网站建设公司石家庄建站工具

英语网站建设公司,石家庄建站工具,免费的网站关键词查询工具,网站制作案例效果文章目录 1 前言2 导包导入数据集3 创建多路图#xff0c;导入节点和边信息3 绘制线路图4 计算最短路径 1 前言 最近正在学习图神经网络#xff0c;先pick up了一些最基础的图论知识并学习了一些好玩的应用。 本文启发于B站视频#xff08;BV1LY411R7HJ#xff09;#… 文章目录 1 前言2 导包导入数据集3 创建多路图导入节点和边信息3 绘制线路图4 计算最短路径 1 前言 最近正在学习图神经网络先pick up了一些最基础的图论知识并学习了一些好玩的应用。 本文启发于B站视频BV1LY411R7HJ其对于上海地铁站点图使用了无向图也就是nx.Graph()进行建模的Python的NetworkX库。但是由于上海地铁存在两个站点之间可有多条线路相通的情况如3号线和4号线共享了“虹桥路 ”、“延安西路”、“中山公园”、“金沙江路”、“曹杨路”等多个站点所以单纯的无向图严格来说不能充分解决该问题。 所以准确来讲应该建立一个多路图multigraph即节点与节点之间应可以创建多条边。下图是多路图(左)与普通图(右)之间的区别。 在NetworkX库中nx.Graph()的add_edges_from()方法是无法添加多条边的文档里是这样记载的 Notes-----Adding the same edge twice has no effect but any edge datawill be updated when each duplicate edge is added. 下面解决这个问题 2 导包导入数据集 import networkx as nx import pandas as pd import matplotlib.pyplot as plt import matplotlib.colors as mcolors %matplotlib inlineplt.rcParams[font.sans-serif][SimHei] # 用来正常显示中文标签 plt.rcParams[axes.unicode_minus]False # 用来正常显示负号# 上海地铁站点连接表 df pd.read_csv(shanghai_subway.csv) df.head()3 创建多路图导入节点和边信息 # 创建多路图 G nx.MultiGraph()for idx, row in df.iterrows(): # 遍历表格的每一行添加节点G.add_edges_from([(row[前一站], row[后一站])], linerow[地铁线], timerow[时间分钟])print(f节点个数{len(G)}连接个数{len(G.edges)})# 查看连接属性特征 print(G.edges(dataTrue))# 查看连接属性特征(multigraph) # 最后一个维度为边的index可能为 012... print(G.edges[(同济大学, 四平路, 0)])# 查看两个节点之间的边 print(G[上海火车站][中潭路])可以看到查看 G[‘上海火车站’][‘中潭路’] 可以看到所有连接两节点之间的边信息 3 绘制线路图 # 节点排版布局-默认弹簧布局 pos nx.spring_layout(G, seed123)# 设置其它可视化样式 options {font_size: 6,node_size: 300,node_color: white,edgecolors: black,linewidths: 1, # 节点线宽width: 2, # edge线宽 } plt.figure(figsize(15,15)) nx.draw_networkx(G, pos, **options)4 计算最短路径 下面计算昌吉东路到同济大学的最短路径 # 任意两节点之间是否存在路径 print(nx.has_path(G, source昌吉东路, target同济大学))# 任意两节点之间的最短路径 print(nx.shortest_path(G, source昌吉东路, target同济大学, weighttime))# 任意两节点之间的最短路径长度 print(nx.shortest_path_length(G, source昌吉东路, target同济大学, weighttime))# 指定起始站和终点站 A_station 昌吉东路 B_station 同济大学# 计算最短路径的节点序列 shortest_path nx.shortest_path(G, sourceA_station, targetB_station, weighttime)# 计算最短路径长度 shortest_path_length nx.shortest_path_length(G, sourceA_station, targetB_station, weighttime)# 找出最短路径经过的边 edges_in_path [] for i in range(len(shortest_path) - 1):u shortest_path[i]v shortest_path[i 1]# 找到具有最小权重的边min_weight float(inf)min_edge Nonefor key, data in G[u][v].items():if data[time] min_weight:min_weight data[time]line_id data[line] # 地铁线编号min_edge (u, v, line_id, data[time])edges_in_path.append(min_edge)print(fShortest path from {A_station} to {B_station}: {shortest_path}) print(fShortest path length from {A_station} to {B_station}: {shortest_path_length})print(Edges in the shortest path: ) for i in edges_in_path:print(f{i[0]}---{i[1]} {i[2]}号线 {i[3]}分钟)到此解决 我们还可以看到这里算出的从昌吉东路到同济大学的所用时间为58分钟但原视频是59分钟。这是因为从“上海火车站”到“宝山路”两个节点的两条边所用 time 不同 所以如果直接使用Graph的add_edges_from方法会把3号线的信息被覆盖成4号线就会失去3号线那段共享路线的信息导致路径计算出现差错。 本文代码https://github.com/aquamarineaqua/D2L-My-Note/blob/main/Graph-Neural-Network/C5_topost.ipynb
http://www.pierceye.com/news/30791/

相关文章:

  • 商务网站建设需要备案吗seo方案
  • 国内做的比较好的网站是什么企业网站推广的渠道
  • 基于asp.net的视频网站开发wordpress社交
  • 河南网站备案系统短信仿门户网站源码
  • 制作自己的网站需要什么软件好做app要多少钱
  • 易优cms仿站教程网页游戏魔域永恒魔石
  • 教育公司网站模板宣城市网站建设
  • 国家企业信用公示系统官方网站营销策划方案
  • 网站开发专业就业前景分析设计师用什么软件设计效果图
  • 怎么做国际购物网站织梦做英文网站
  • 高端 网站定制做车展招商的网站
  • 网站空间搭建公司建网
  • 如何制作微信网站wordpress配置要求
  • 合肥网站建设公司加盟网站规划与设计就业
  • 网站攻击一般有那些网站开发前台与后台的交互
  • 精品建站公司成都网站优化
  • 济南市做网站公司网站项目策划大纲
  • 公司最近想做个网站怎么办如何做网上推广产品
  • 中企动力 网站模板做网站公司(深圳信科)
  • 开发网站的申请怎么写wordpress文章分页付费
  • 网站内页做友情链接android应用软件开发
  • 如何去做一个网站搜建筑
  • filetype ppt 网站建设便利的菏泽网站建设
  • 嘉兴网站设计公司网站建设 义乌
  • 免费vip电影网站怎么做免费个人网站源码下载
  • 专做装修的网站网站模板制作流程
  • 长治推广型网站建设北京seo加盟
  • 苏州 网站建设 app单页网站模板wap
  • 常州城乡建设局网站首页wordpress 脚本
  • 山东广饶建设银行网站新媒体包不包括公司网站的建设