主要内容

拉普拉斯矩阵划分图

这个例子展示了如何使用图的拉普拉斯矩阵来计算费德勒向量。费德勒向量可以用来将图划分为两个子图。

加载数据

加载数据集barbellgraph.mat,其中包含杠铃图的稀疏邻接矩阵和节点坐标。

负载barbellgraph.mat

使用自定义节点坐标绘制图形xy

图G = (,“omitselfloops”);p =情节(G,“XData”xy (: 1),“YData”xy (: 2),“标记”“。”);轴平等的

图中包含一个axes对象。axes对象包含一个graphplot类型的对象。

计算拉普拉斯矩阵和费德勒向量

计算图的拉普拉斯矩阵。然后,计算最小的两个幅值特征值和对应的特征向量eigs

L =拉普拉斯算子(G);[V D] = eigs (L 2“smallestabs”);

费德勒向量是特征向量对应于图的第二最小特征值。的最小的特征值为零,表示图有一个连通分量。在这种情况下,第二列V对应于第二最小的特征值D (2, 2)

D
D =2×2103× 0.0000 00 0.2873
w = V (:, 2);

求费德勒向量eigs是可扩展到较大的图,因为只计算特征值和特征向量的子集,但对于较小的图,它是同样可行的,将拉普拉斯矩阵转换为完全存储和使用eig(全(L))

分区图

使用费德勒向量将图划分为两个子图w.如果子图A的值为正,则该节点被分配给该子图Aw.否则,节点被分配给子图b。这种做法称为a切迹象零阈值降低.符号切割使切割的权重最小化,受制于图的任何非平凡切割的权重的上界和下界。

使用符号切割对图进行分割。突出显示节点的子图w > = 0红色的,节点w < 0在黑色的。

突出(p,找到(w > = 0),“NodeColor”“r”%子图突出(p,发现(w < 0),“NodeColor”“k”% B子图

图中包含一个axes对象。axes对象包含一个graphplot类型的对象。

对于条形钟形图,这种划分将图很好地分成两个相等的节点集。然而,标志切割并不总是产生一个平衡的切割。

的中位数总是可以将图等分w把它作为一个阈值。这个分区叫做中值减少,保证每个子图中节点数量相等。

您可以通过首先移动值来使用中值切割w中位数:

W_med = w - median(w);

然后,通过登录对图进行分区w_med.对于柱形钟形图,中位数w的值接近于零,所以这两个切面产生了相似的等分。

另请参阅

|||

相关的话题

Baidu
map