線性代數筆記16——圖和網絡


  圖(Graph)是離散數學中的一種常見數據結構,由節點和邊組成,如果邊有方向,就是有向圖。下圖是一個有4個節點5條邊的有向圖:

  這個圖(Graph)可以表示電網、網絡或建築物通道的數學模型。

關聯矩陣

  可以通過一個矩陣來解析有向圖,這個矩陣稱為關聯矩陣(Incidence Matrix)。4個節點5條邊的圖用一個5×4的矩陣表示,用正負表示邊的方向,矩陣的一行相當於圖的一條邊,矩陣的一列對應圖的一個節點:

 

  以A的第一行為例,它對應圖的第一條邊e1,e1的方向是從n1指向n2,與n3和n4無關。如果將A中的-1全部改為1,就變成了無向圖。

  A的前三行對應了三邊e1,e2,e3,它們構成了圖中的一個回路。對於一個圖來說,回路的數量和位置至關重要。把回路單獨拿出來看:

 

  問題之一是:這三行相互獨立嗎?或者說它們是否是線性無關的?

  似乎很容易看出,第3行可以由第1行和第2行相加得到,這說明回路對應的行是線性相關的。從圖上看,從n1到n3可以n1→n3,也可以n1→n2→n3,所以說n1→n3是“多余”的,它可以由“繞行”代替。

存儲大型關聯矩陣

  如果用關聯矩陣描述一個大型圖,你會發現矩陣中的0非常多,這個矩陣是一個稀疏矩陣。用計算機存儲這個矩陣時,應當考慮是否應該用鄰接表代替二維數組,同時也可以使用一維數組代替二維數組。

  鄰接表是一種常用的數據結構,它是一個存儲了鏈表的一維數組。

  還是這個圖,現在不考慮方向,用一維數組描述:

  L[4]是有4個節點的數組(假設數組下標從1開始,和Matlab一樣),初始元素都為0,這樣構造數組:

  n1與n2聯通,將L[1]與L[2]賦予n2的序號,L = [2,2,0,0];

  n2與n3聯通,將L[2]和與L[2]相連的所有節點都賦予n3的序號,L = [3,3,3,0];

  n3與n4聯通,將L[3]和與L[4]相連的所有節點都賦予n4的序號,L = [4,4,4,4]。

  對於回路不必重新負值:

  n1與n4聯通,但是它們之間已經有回路了,L[1] == L[4];

  n1與n3聯通,它們之間同樣有回路,L[1] == L[3]。

  最終,L = [4,4,4,4],判斷兩點np與nq是否聯通,只需要判斷if L[p] == L[q]即可。

關聯矩陣的零空間

  如果A的零空間是零向量,則意味着Ax = 0有唯一解,此時A應當是方陣,A的行最簡階梯矩陣是單位矩陣,A的各列線性無關。

  A不是方陣,所以x沒有唯一解。這很容易驗證,Ax = 0中,x有4個分量,方程組中有5個方程,但只有4個未知數,所以方程有無數解。

 

  只要x1 = x2 = x3 = x4,就滿足Ax = 0。A的零空間是位於R4空間下的1維空間:

 

  如果A是電網,xn表示每個節點的電勢,則上面的N(A)意味着所有節點的電勢相等,不存在電勢差,因此不存在電流。如果把n4節點接地,就會產生電勢差,此時相當於將x4的電勢設為0:

 

  對於Ax來說,x4 = 0意味着A的最后一列不起作用(最后一列的各個分量與0的相乘總是0)。這樣,A前三列就變成線性無關,實際上A的任意三列都是線性無關,A的秩是3。

 


 作者:我是8位的

出處:http://www.cnblogs.com/bigmonkey

本文以學習、研究和分享為主,如需轉載,請聯系本人,標明作者和出處,非商業用途! 

掃描二維碼關注公眾號“我是8位的”


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM