问题标签 [weighted-graph]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
python - 如何在加权图中使用 Dijkstra 的最短路径来计算权重的平均值?[Python]
我想在加权图中计算 Dijkstra 的最短路径以计算weights的平均值。我没有在网上找到任何有用的东西,所以请帮助我,因为我认为这不仅对我有用。
我有一个字典列表:
我创建了一个加权无向图,然后使用 Dijkstra 最短路径来计算平均速度(而不是总速度)。开始吧:
我检查了图表是否已连接,它是!现在我首先得到包含节点列表(不是边)的路径,然后我一次取两个节点,我在图中检查用两个节点创建的边的权重(速度) 。我对路径中的所有节点重复此过程,然后计算平均速度。
这当然非常耗时且效率低下
如您所见,这不是一个好方法,主要有两个问题:
1)如果我尝试nx.dijkstra_path(graph, 1, 1, 'speed')
我会遇到麻烦,因为 avg_speed 公式中的分母为零。
2)for循环真的很乱
如果你有更好的想法,请告诉我你的观点。谢谢。
h2o - 在 h2o 中分配案例权重以构建 gbm 创建对开发数据的过度拟合?
我正在使用 h2o 构建 gbm 模型。训练数据随机分为 70% 的开发数据和 30% 的实时验证数据。训练数据有 1.4% 的错误率,我还需要为每个观察分配权重(数据有一个权重列)。观察结果是:与没有权重的模型(VAL)相比,使用权重构建的模型在开发数据(DEV)上的性能要高得多。使用权重构建的模型在开发数据和实时验证数据之间具有很大的性能差异。例如,具有权重的模型构建显示低于前 10% 的捕获率
开发:56%
验证:25%
虽然没有重量的模型构建显示低于前 10% 的捕获率:
开发:35%
验证:23%
似乎在这种情况下使用权重有助于提高模型在开发和实时验证数据上的性能。想知道在 h2o 中究竟是如何使用重量的?在模型构建中使用权重,模型在 DEV 和 VAL 上的较大性能差异是否说明 gbm 模型在 h2o 中构建的不稳定性更高?
蓝色曲线是 DEV,橙色曲线是VAL>
。对于没有重量的情况,DEV 和 VAL 的对数损失从同一点开始。而对于加权情况,DEV 和 VAL 的对数损失从两个不同的点开始。如何解释这个日志损失图表,为什么 h2o gbm 中的权重会在日志损失函数输出中产生如此不同的结果?
python - python中是否存在包来执行RWR(随机步行重启)
是否有一些包或函数可以在 python 中计算 RWR?我想使用加权图计算 RWR。但我在 python 中找不到 RWR 包。请告诉我该包名称是否存在于 python 中。或者请在 python 中查看一些示例 RWR。谢谢你。
java - 从文本文件中读取加权图
我必须从文本文件创建加权图。下面是文本文件的外观示例。第一个数字是实际火车站的 ID。第二个数字是可能的目的地,逗号后面是时间(以秒为单位),它需要旅行。第三个数字是另一个可能的目的地。
我想将路线存储在 ArrayList 中。每个路由对象应如下所示:
问题是,我必须为同一个起始位置存储多条路线。如何使用扫描仪正确读取线条?我的方法是这样的:
由于我无法返回文本文件,我无法想象正确的解决方案应该是什么样子。
algorithm - 加权图肥胖算法
考虑一个连通的加权有向图G = (V, E, w)
。路径 P 的胖度是 中任何边的最大权重P
。
如何找到图形的最小可能胖度?可以使用 Dijkstra 算法找到最小肥胖吗?
c# - 在 Unity 中绘制加权有向图
我正在尝试构建一个项目,允许用户构建流量网络,然后使用 Unity 解决网络的最大流量。我认为图形绘图库已经存在,但我找不到它。
由于我对 Unity 比较陌生,我的问题是:
是否有用于在 Unity 中绘制加权有向图的库?
如果不存在这样的库,任何人都可以推荐一些有用的教程来处理在 Unity 中绘制简单的二维结构(图的节点和边)吗?
algorithm - 有向图中穿过特定顶点的最轻量级圆
我用权重函数 w 指示了图 G(V,E)。因此每个 (u,v) 的权重都是正值。我需要在图中找到顶点 k' 是其中一部分的最轻量级的圆。
我还给出了一种我可以使用的算法,它可以为具有正权重的图找到最轻量级的路径(我只能使用一次)。
我考虑过创建一个子图 G',其中所有顶点和边都是强连通分量。找出其中 k' 是其中一部分的图。然后找到从 k' 到某些 v 个顶点的最轻量级的相邻边。从那个 vi 可以运行给定的算法并找到轻量级路径,然后添加丢失的顶点的权重( (k',v) )。
这似乎正确吗?我在这门课程的开始,我觉得我还没有到那里。
algorithm - 如何在有向加权图中将一条边恰好设置为零以找到最短路径?
以下是我正在研究的问题:
考虑一个 所有边权重均为正的有向加权图G。这个问题的目标是在 G中找到 两个预先指定的顶点 s 和 t之间的最短路径 ,但有一个额外的转折:您可以将(您选择的)恰好一条边的权重更改为零。
换句话说,您必须在 G 中选择一条边设置为零,以最小化 s 和 t之间的最短路径 。给出一个在O ( E lg V )时间内实现这一目标的有效算法, 并分析你的算法的运行时间。次优解决方案将获得较少的信用。
提示:您可能需要反转边缘,多次运行熟悉的算法,并做一些额外的工作
因此,我尝试将 Dijkstra 从s运行到所有其他节点,然后尝试反转边缘并再次从s运行到所有其他节点。但是,我发现我们必须将 Dijskstra 从s运行到所有其他节点,然后反转边缘,然后将 Dijkstra 从所有其他节点运行到t。我不确定这如何帮助我们找到设置为零的边缘。根据我的直觉,我认为我们只需将最大权重边缘设置为零。反转边缘有什么意义?
java - 在java中使用加权图的问题
我正在使用 Java 开发一个项目,该项目使用加权图来表示复杂的家谱,但我在实现该图的基本功能时遇到了问题。我有 3 个类,一个Graph
类,一个Node
只是一些通用成员的包装器的类,还有一个Tester
类。该类Graph
维护一个Node
对象列表,每个对象都Node
保存一个与其相邻的节点的列表以及每个相邻节点的权重。我的问题是,当我创建一个使用配偶和孩子的简单图表时,我无法将孩子添加到节点和父母的配偶。但是,如果我可以将一个孩子添加到一个节点,然后将另一个孩子添加到配偶。例如,我可以这样做:
但我不能这样做:
不能这样做,我的意思是当我构建图表时会反映这种结构,而不是在我打印它时。我很难过,因为我在我的代码中找不到任何问题,但我在下面包含了所有 3 个类。先感谢您。
图.java
节点.java
测试者.java
输出
r - R iGraph:如何从图中获取加权邻接矩阵?
虽然有一些关于从邻接矩阵创建图的问题,但我还没有找到很多关于从加权图中提取加权邻接矩阵的信息。
假设我有以下图表:
如何获得图 g 的加权邻接矩阵?