当前位置: 首页 > 面试题库 >

Networkx弹簧布局边缘配重

郏稳
2023-03-14
问题内容

我想知道如何spring_layout考虑边缘重量。从维基百科,

“另一种模型考虑了每对节点(i,j)的弹簧力,其中每个弹簧的理想长度\ delta_
{ij}与节点i和j之间的图论距离成比例,而无需使用单独的排斥力。最小化欧氏距离与节点之间的理想距离之间的差异(通常是平方差异)就等同于度量多维缩放问题。

具体而言,如何计算边缘权重?


问题答案:

这不是一个很好的答案,但是它提供了基本知识。可能真正知道Fruchterman-
Reingold算法并可以描述它的人可能来自其他人。我根据代码中的内容给出了解释。

从文档中,

weight:字符串或无可选(默认值=“ weight”)

边缘属性,保存用于边缘权重的数值。如果为None,则所有边缘权重均为1。

但这并不能告诉您重量是做什么的,这是您的问题。

您可以找到源代码。如果您发送加权边,它将A使用这些权重创建一个邻接矩阵并将其传递A_fruchterman_reingold

看那里的代码,它的内容就在这一行 displacement=np.transpose(np.transpose(delta)*\ (k*k/distance**2-A*distance/k))\ .sum(axis=1)

A*distance是计算是作用在节点上的弹簧力有多强。相应A条目中的较大值表示在这两个节点之间存在相对较强的吸引力(或者,如果它们非常靠近,则排斥力较小)。然后,算法根据力的方向和强度移动节点。然后重复(默认为50次)。有趣的是,如果您查看源代码,则会注意到tdt。似乎在每次迭代中,力乘以越来越小的因数,因此步长变小。

这是描述该算法的论文的链接,不幸的是,该链接位于付费专线后面。这是作者网页上论文的链接



 类似资料:
  • 问题内容: 我有一个表示网络拓扑结构的networkx弹簧布局。关键节点的颜色为红色,另一个为蓝色。到关键节点边缘的路线用短划线表示。如何在指定的时间间隔内为networkx边缘绘制动画? 问题答案: 尝试该模块。另请参阅这个很棒的教程,

  • H=nx。来自\u pandas\u edgelist(链接,source='source',target='target',edge\u attr='value') 这给了我边和边的列表 edge_labels=nx.get_edge_attributes(Q,'value')nx.draw_networkx_edge_labels(Q,pos=nx.draw(Q),标签=edge_labels

  • 问题内容: 我在玩networkx(Python中的图形库),发现文档说PageRank算法在评分时考虑了边缘权重,但是我想知道更大的边缘权重是更好还是更低的权重呢? 问题答案: 不久,较大的权重对于传入的节点更好。 PageRank在有向加权图上工作。如果页面A具有到页面B的链接,则页面B的得分会上升,即页面B(节点)输入的次数越多,其得分就越高。 有关更多详细信息,请参见PageRank上的W

  • 前言 为了配置kubernetes中的traefik ingress的高可用,对于kubernetes集群以外只暴露一个访问入口,需要使用keepalived排除单点问题。本文参考了kube-keepalived-vip,但并没有使用容器方式安装,而是直接在node节点上安装。 定义 首先解释下什么叫边缘节点(Edge Node),所谓的边缘节点即集群内部用来向集群外暴露服务能力的节点,集群外部的

  • 主要内容:1. 基本概念,2. 容器属性,3. 项目属性Flex 是 Flexible Box 的缩写,意为“弹性布局”或者“弹性盒子”,是 CSS3 中的一种新的布局模式,可以简便、完整、响应式地实现各种页面布局,当页面需要适应不同的屏幕大小以及设备类型时非常适用。目前,几乎所有的浏览器都支持 Flex 布局。 1. 基本概念 采用 Flex 布局的元素,称为 Flex 容器(flex container),简称“容器”。它的所有子元素自动成为容器成

  • import { Flexbox,FlexboxItem } from 'feui'; components: { [Flexbox.name]: Flexbox, [FlexboxItem.name]: FlexboxItem } .flex-demo{ text-align: center; color: #fff; background-color: #

  • 使用指南 组件介绍 本组件大量用到 flex 知识,同时实现栅格系统(12 列)。 引入方式 import { Flexbox,FlexboxItem } from 'feart'; components: { 'fe-flexbox': Flexbox, 'fe-flexbox-item': FlexboxItem } 代码演示 横向排列 <fe-flexbox> <f

  • 虽然流式布局可以充分利用可用空间,但是,在高分辨率的屏幕上,行仍然会过长,让用户不舒服。相反,在低分辨率的屏幕上,或增加文本的字体大小时,行又变得非常短,内容很零碎。对于这个问题,弹性布局可能是一种解决方案。 弹性布局实际上是一种尺寸比较灵活的固定宽度设计,页面上的所有元素都使用 em 单位值来设置元素的宽度,而不是浏览器窗口宽度。当浏览器的字号发生改变时,em 值也会随之改变,因此,设计的宽度最