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

邢台疫情最新情况 最新消息宁波seo排名优化价格

邢台疫情最新情况 最新消息,宁波seo排名优化价格,创建网站需要什么平台,优秀网站设计欣赏图片矩阵多次相乘传递闭包 传递闭包是图论中的一个重要概念,主要用于描述一个图中节点之间的可达关系。简而言之,图的传递闭包就是一个最小的有向图,其中每一条边表示从一个节点到另一个节点存在某种路径。 在本篇文章中,我们将详细…

矩阵多次相乘传递闭包

传递闭包是图论中的一个重要概念,主要用于描述一个图中节点之间的可达关系。简而言之,图的传递闭包就是一个最小的有向图,其中每一条边表示从一个节点到另一个节点存在某种路径。

在本篇文章中,我们将详细介绍传递闭包的定义、如何通过矩阵的多次相乘来计算传递闭包,以及给出一个Python代码实现,帮助大家更好地理解这个概念。

传递闭包的定义

给定一个有向图 G G G,它由节点集 V V V 和边集 E E E 构成。对于图中的任意两点 u u u v v v,如果存在一条从 u u u v v v 的路径,则我们认为节点 u u u 可以到达节点 v v v。图的传递闭包就是在原有图的基础上,为所有可以通过路径到达的节点对增加一条边。

换句话说,图的传递闭包是一个新的图,其中包含了所有在原图中不存在的“间接”边,即通过其他节点可以到达的所有节点对。

传递闭包与矩阵乘法

传递闭包的计算可以通过图的邻接矩阵来实现。邻接矩阵是一个 n × n n \times n n×n 的矩阵 A A A,其中 A [ i ] [ j ] = 1 A[i][j] = 1 A[i][j]=1 表示存在一条从节点 i i i 到节点 j j j 的边,而 A [ i ] [ j ] = 0 A[i][j] = 0 A[i][j]=0表示不存在这样的边。

对于图的传递闭包问题,我们可以利用矩阵的幂运算来计算传递闭包。传递闭包的计算本质上是对邻接矩阵进行多次相乘,直到矩阵中不再有新的路径(即没有更多的 1 被添加进矩阵)。这一过程可以通过计算邻接矩阵的多次幂来实现。

矩阵乘法和传递闭包

我们可以通过以下步骤计算图的传递闭包:

  1. 初始化邻接矩阵 A A A,其中 A [ i ] [ j ] = 1 A[i][j] = 1 A[i][j]=1表示从节点 i i i 到节点 j j j 直接有边。
  2. 通过矩阵的多次乘法来逐步加入间接边。
  3. 直到矩阵不再发生变化为止。

我们实际上是在做的是“矩阵的冯·诺伊曼加法”(即通过不断“合并”矩阵来逐步增加图中的可达路径)。

典型例题

洛谷:B3611
题目链接:传递闭包模板题目

代码实现

下面是上面题目的python代码实现:

def floyd():global edges, n b = [[i for i in range(n)] for _ in range(n)]for k in range(n):for i in range(n):for j in range(n):edges[i][j] += edges[i][k] * edges[k][j] # 传递闭包的计算(本质是矩阵自身的n次相乘)edges[i][j] = min(1, edges[i][j]) # 如果i和j之间有通路就设置成1return bn = int(input())
edges = []
for _ in range(n):edges.append(list(map(int, input().split())))
b = floyd()
for ele in edges:print(*ele, sep = '')

在这里插入图片描述

代码解析

  1. 邻接矩阵初始化
    输入的 e d g e s edges edges 是一个二维列表,表示图的邻接矩阵。edges[i][j] 的值为 1 表示从节点 i i i 到节点 j j j 有一条边,为 0 表示没有。

  2. 计算传递闭包
    使用三重循环遍历所有的节点对 ( i , j ) (i, j) (i,j),如果通过某个节点 k k k可以从 i i i 到达 j j j,则将 e d g e s [ i ] [ j ] edges[i][j] edges[i][j] 设置为 1。

  3. 输出传递闭包矩阵
    计算完成后,edges 矩阵即为输入图的传递闭包矩阵,包含了所有直接和间接的边。

总结

传递闭包是图论中的一个重要概念,它描述了节点间的可达关系。在计算图的传递闭包时,我们本质上是在计算图的邻接矩阵的多次相乘。通过这个过程,我们可以得出所有节点对之间是否存在路径的信息。

在实际应用中,传递闭包广泛应用于许多领域,如任务调度、数据库查询优化、程序控制流分析等。掌握矩阵多次相乘的思想,不仅可以帮助我们高效地计算图的传递闭包,还能为解决更复杂的图算法问题打下基础。

希望这篇文章能帮助大家更好地理解传递闭包的概念及其实现方法!

http://www.dtcms.com/wzjs/363133.html

相关文章:

  • 郑州网站开发比较好的网络公司怎么做盲盒
  • wordpress 4.7.3主题google seo实战教程
  • 新网站如何做搜索引擎收录深圳seo秘籍
  • 安康市城市建设局网站网络运营推广是做什么的
  • 重庆忠县网站建设公司百度一下你就知道官网下载安装
  • 定安免费建站公司成人大专
  • 山东济南网站建设公司哪家好百度关键词优化和百度推广
  • 网站建设的电话客服sem是什么专业
  • 宁波网站建设详细策划品牌运营推广方案
  • 今天西安新消息seo编辑是干什么的
  • 深圳做网站开发费用seo诊断网站
  • 推荐设计感强的网站百度建站官网
  • 携程旅游网站建设的定位seo编辑培训
  • 制造网站开发怎么做网站教程
  • 一般ps做网站大小多少seo优化师培训
  • 做网站前景怎么样全网营销思路
  • 做网站费用怎么入账百度账号个人中心
  • 网站建设需要准备什么信息流广告投放渠道
  • 北京中小企业网站建设网站优化推广教程
  • 网站做支付需要准备什么条件seo网站关键词优化快速官网
  • 有那些可以自己做壁纸的网站网站营销方案
  • 繁昌网站建设超级外链
  • 个人网站建设方案策划seo综合查询站长工具
  • 舟山做网站站长之家ip查询工具
  • 网站建站建设多少钱微信公众号推广软文案例
  • 邯郸网站建设公司崇左网站建设
  • 怎么在自己电脑上建网站网时代教育培训机构怎么样
  • 给人做阉割手术的网站宁波seo深度优化平台有哪些
  • 重启 iis 中的网站头条广告入口
  • wordpress修改下载主题介绍seo专员