當前位置: 首頁>>代碼示例 >>用法及示例精選 >>正文


Python NetworkX thresholded_random_geometric_graph用法及代碼示例


本文簡要介紹 networkx.generators.geometric.thresholded_random_geometric_graph 的用法。

用法:

thresholded_random_geometric_graph(n, radius, theta, dim=2, pos=None, weight=None, p=2, seed=None)

返回單位立方體中的閾值隨機幾何圖。

閾值隨機幾何圖 [1] 模型將 n 節點均勻地隨機放置在維度為 dim 的單位立方體中。每個節點 u 被分配一個權重 。兩個節點 uv 如果在最大連接距離內,則通過邊連接,radiusp -Minkowski 距離計算,並且權重的總和 + 大於或等於閾值參數 theta

當 SciPy 可用時,使用 KDTree 確定彼此在 radius 內的邊。這將時間複雜度從 降低到

參數

nint 或可迭代

節點數或可迭代節點

radius: float

距離閾值

theta: float

閾值

dim整數,可選

圖的維度

pos字典,可選

以節點位置為值的節點鍵控字典。

weight字典,可選

節點權重作為由節點鍵入的數字字典。

p浮點數,可選(默認 2)

使用哪個 Minkowski 距離度量。 p 必須滿足條件 1 <= p <= infinity

如果未指定此參數,則使用 度量(歐幾裏德距離度量),p = 2。

這不應與 Erdős-Rényi 隨機圖的 p 混淆,它表示概率。

seed整數、random_state 或無(默認)

隨機數生成狀態的指示符。請參閱隨機性。

返回

圖形

閾值隨機地理圖,無向且無自環。

每個節點都有一個節點屬性'pos',該屬性存儲該節點在歐幾裏得空間中的位置,由pos 關鍵字參數提供,或者如果沒有提供pos,則由該函數生成。類似地,每個節點都有一個 nodethre 屬性'weight',該屬性存儲該節點的權重,如提供或生成。

注意

這使用 k -d 樹來構建圖形。

pos 關鍵字參數可用於指定節點位置,因此您可以為位置創建任意分布和域。

例如,要使用均值 (0, 0) 和標準差 2 的節點位置的 2D 高斯分布

如果未指定權重,則通過使用速率參數 從 index 分布中隨機抽取來將它們分配給節點。要指定來自不同分布的權重,請使用 weight 關鍵字參數:

::
>>> import random
>>> import math
>>> n = 50
>>> pos = {i: (random.gauss(0, 2), random.gauss(0, 2)) for i in range(n)}
>>> w = {i: random.expovariate(5.0) for i in range(n)}
>>> G = nx.thresholded_random_geometric_graph(n, 0.2, 0.1, 2, pos, w)

參考

1

http://cole-maclean.github.io/blog/files/thesis.pdf

例子

默認圖表:

G = nx.thresholded_random_geometric_graph(50, 0.2, 0.1)

自定義圖表:

在 50 個均勻分布的節點上創建一個閾值隨機幾何圖,如果從比率 = 5 的 index 分布中提取的總權重 >= theta = 0.1 並且它們的歐幾裏德距離最多為 0.2,則這些節點由一條邊連接。

相關用法


注:本文由純淨天空篩選整理自networkx.org大神的英文原創作品 networkx.generators.geometric.thresholded_random_geometric_graph。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。