iis服务器助手广告广告
返回顶部
首页 > 资讯 > 后端开发 > Python >python中最短路径问题的示例分析
  • 555
分享到

python中最短路径问题的示例分析

2023-06-20 20:06:02 555人浏览 独家记忆

Python 官方文档:入门教程 => 点击学习

摘要

小编给大家分享一下python中最短路径问题的示例分析,希望大家阅读完这篇文章之后都有所收获,下面让我们一起去探讨吧!说明最短路径问题是图论研究中的经典算法问题,用于计算从一个顶点到另一个顶点的最短路径。最短路径问题有几种形式:确定起点的最

小编给大家分享一下python中最短路径问题的示例分析,希望大家阅读完这篇文章之后都有所收获,下面让我们一起去探讨吧!

说明

最短路径问题是图论研究中的经典算法问题,用于计算从一个顶点到另一个顶点的最短路径。

最短路径问题有几种形式:确定起点的最短路径,确定终点的最短路径,确定起点和终点的最短路径,全局最短路径问题。

路径长度是将每个顶点到相邻顶点的长度记为1,而不是指两个顶点之间的道路距离——两个顶点之间的道路距离是连接边的权利。

实例

def findMin(row):    minL = max(row)    for i in row:        if i != -1 and minL > i:            minL = i    return minLdef initRow(row, plus):    r = []    for i in row:        if i != -1:            i += plus        r.append(i)    return r def getMinLen(table, e, t):    count = len(table) - 1    startPoint = 1    #记录原点到各点最短距离 初始值为-1,即不可达    lenRecord = list((-1 for i in range(count+1)))    lenRecord[startPoint] = 0    #记录每次循环的起点    points = [startPoint]    #已得到最短距离的点    visited = set()    while len(points)>0:        #当前起点        curPoint = points.pop()        #原点到当前起点的距离        curLen = lenRecord[curPoint]        #当前起点到各点的距离        curList = initRow(table[curPoint], t)        #当前起点到各点的最短距离        curMin = findMin(curList)        visited.add(curPoint)        idx = 0        while idx<count:            idx += 1            #当前点不可达或到当前点的最短距离已计算出 则跳过            if curList[idx] == -1 or idx in visited:                continue            #记录距离当前起点最近的点作为下次外层循环的起点            if curList[idx] == curMin:                points.append(idx)            #如果从原点经当前起点curPoint到目标点idx的距离更短,则更新            if lenRecord[idx] == -1 or lenRecord[idx] > (curLen+curList[idx]):                lenRecord[idx] = curLen+curList[idx]    return lenRecord[e] def processInput():    pointCnt, roadCnt, jobCnt = (int(x) for x in raw_input().split())    table = []    for i in range(pointCnt+1):        table.append([-1] * (pointCnt+1))    for i in range(roadCnt):        (x, y, w) = (int(n) for n in raw_input().split())        if table[x][y] == -1 or table[x][y] > w:            table[x][y] = w            table[y][x] = w    res = []    for i in range(jobCnt):        e, t = (int(x) for x in raw_input().split())        res.append(getMinLen(table, e, t))    for i in res:        print(i) processInput()

看完了这篇文章,相信你对“Python中最短路径问题的示例分析”有了一定的了解,如果想了解更多相关知识,欢迎关注编程网Python频道,感谢各位的阅读!

--结束END--

本文标题: python中最短路径问题的示例分析

本文链接: https://www.lsjlt.com/news/299994.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • python中最短路径问题的示例分析
    小编给大家分享一下python中最短路径问题的示例分析,希望大家阅读完这篇文章之后都有所收获,下面让我们一起去探讨吧!说明最短路径问题是图论研究中的经典算法问题,用于计算从一个顶点到另一个顶点的最短路径。最短路径问题有几种形式:确定起点的最...
    99+
    2023-06-20
  • Webpack中publicPath路径问题的示例分析
    这篇文章主要为大家展示了“Webpack中publicPath路径问题的示例分析”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“Webpack中publicPat...
    99+
    2024-04-02
  • css中图片路径问题的示例分析
    这篇文章主要介绍css中图片路径问题的示例分析,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!在CSS文件里,有时要用到background,即加一个背景图片,一般在做按钮样式时会经常用到。 css中加背景图片根据图片...
    99+
    2023-06-08
  • Python实现最短路径问题的方法
    目录一、创建图二、问题来源三、Dijkstra算法四、Floyd算法五、代码测试一、创建图 在开始之前,我们先创建一个图,使用邻接矩阵表示有向网: class Graph(obj...
    99+
    2024-04-02
  • Python&Matlab实现蚂蚁群算法求解最短路径问题的示例
    目录1 知识点 1.1 蚁群算法步骤1.2 蚁群算法程序2 蚂蚁算法求解最短路径问题——Python实现2.1 源码实现2.2&...
    99+
    2024-04-02
  • PHP数据结构-图的应用:最短路径的示例分析
    这篇文章主要介绍了PHP数据结构-图的应用:最短路径的示例分析,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。什么是最短路径今天我们学习的是图的应用中另外一个经典的问题,也就是...
    99+
    2023-06-20
  • HDFS短路读的示例分析
    这篇文章主要介绍HDFS短路读的示例分析,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!背景Hadoop的一个重要思想就是移动计算,而不是移动数据。我们更愿意尽可能将计算移动到数据所在节点。因此,HDFS中经常出现客户...
    99+
    2023-06-02
  • 详解Dijkstra算法之最短路径问题
    目录一、最短路径问题介绍二、Dijkstra算法介绍2.1、算法特点2.2、算法的思路三、Dijkstra算法示例演示四、Dijkstra算法的代码实现(c++)一、最短路径问题介绍...
    99+
    2024-04-02
  • Thinkphp中URL路径的示例分析
    这篇文章主要介绍Thinkphp中URL路径的示例分析,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!Thinkphp关于URL路径假如你项目首页的URL是:www.test.com/other/Form假如当前模块是...
    99+
    2023-06-25
  • python模块中搜索路径的示例分析
    小编给大家分享一下python模块中搜索路径的示例分析,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!python有哪些常用库python常用的库:1.reques...
    99+
    2023-06-14
  • 实现Dijkstra算法最短路径问题详解
    1、最短路径问题介绍 问题解释: 从图中的某个顶点出发到达另外一个顶点的所经过的边的权重和最小的一条路径,称为最短路径 解决问题的算法: 迪杰斯特拉算法(Dijkstra...
    99+
    2024-04-02
  • Webpack中路径配置的示例分析
    这篇文章将为大家详细讲解有关Webpack中路径配置的示例分析,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。contextcontext 是 webpack 编译时的基础...
    99+
    2024-04-02
  • angular2中ng build部署后base文件路径问题的示例分析
    这篇文章主要为大家展示了“angular2中ng build部署后base文件路径问题的示例分析”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“angular2中...
    99+
    2024-04-02
  • Linux下路径的示例分析
    这篇文章主要介绍Linux下路径的示例分析,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!一般的情况下,我们在用shell调用的话,或者你通过什么什么方式调用你的应用程序的时候,注意你的此刻的路径就是你的被调用的程序的...
    99+
    2023-06-16
  • python中有哪些最短路径算法
    这期内容当中小编将会给大家带来有关python中有哪些最短路径算法,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。1、Bellman-Ford 算法Bellman-Ford算法用于求解单源最短路径问题。算法...
    99+
    2023-06-15
  • Python中复数问题的示例分析
    这篇文章主要介绍Python中复数问题的示例分析,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!问题关于 Python 的复数类型,以下选项中描述错误的是A复数的虚数部分通过后缀“J”或者“j”来表示B对于复数 z,可...
    99+
    2023-06-15
  • java实现最短路径算法之Dijkstra算法的示例
    这篇文章主要介绍了java实现最短路径算法之Dijkstra算法的示例,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。一、知识准备:1、表示图的数据结构用于存储图的数据结构有多...
    99+
    2023-05-31
    java dijkstra
  • Java利用遗传算法求解最短路径问题
    目录1、问题描述2、编码3、个体类4、遗传算法解决最短路径问题主方法5、适应度6、选择算子7、交叉算子8、变异算子9、总结遗传算法(Genetic Algorithm,GA)最早是由...
    99+
    2024-04-02
  • webpack中路图片路径与打包的示例分析
    小编给大家分享一下webpack中路图片路径与打包的示例分析,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!在实际生产中有以下几种...
    99+
    2024-04-02
  • python模块中搜索路径和顺序的示例分析
    这篇文章主要介绍python模块中搜索路径和顺序的示例分析,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!python可以做什么Python是一种编程语言,内置了许多有效的工具,Python几乎无所不能,该语言通俗易懂...
    99+
    2023-06-14
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作