㈠ 離散數學中,圖論部分,同構的概念怎麼理解,比較形象的說出來
概念較多,學習時需要認真比較各概念的含義,如:圖、子圖、有向圖、權圖;樹、支撐樹、二叉樹、有向樹;路、簡單路、迴路等,這些都是圖的基本概念,今後將在數據結構、資料庫、計算機網路等課程中用到。
2. 權圖中的最短路
嚴格執行迪克斯特拉(Dijkstra)演算法步驟,從起點起,到每一點求出最短路,然後進行仔細比較,最後到達終點,算出最小權和。
3. 權圖中的最優支撐樹
權圖中的最優支撐樹是圖中所帶權和最小的支撐樹,使用克魯斯卡爾(Kruskal)演算法。
[典型例題]
1、 在具有n個頂點的完全圖Kn中刪去多少條邊才能得到樹?
解:n個頂點的完全圖Kn中共有n(n-1)/2條邊,
n個頂點的樹應有n-1條邊,
於是,刪去的邊有:n(n-1)/2-(n-1)=(n-1)(n-2)/2
2、 一棵樹有兩個節點度數為2,一個節點度數為3,三個節點度數為4,問它有幾個度數為1的節點?
解:我們知道一個有限圖中,各點的度數總和是邊數的2倍;而樹中的邊數為點數減1。
根據這兩點,可知樹中各點的度數總和=2*(樹中點數-1),設樹葉有x個,
於是,2*2+3+3*4+x=2*(2+1+3+x-1)
得,x=9。
㈡ 如何證明兩個圖是同構的
判斷子圖同構有許多比較成熟的演算法,比如AGM演算法、gSpan演算法、FSG演算法、ESU演算法等。這些可以在網上查到具體的解釋。
歸根到底是要理解子圖同構的定義:
對於給定的兩個圖G = ( V, E ),G』 = ( V』, E』 ),若存在雙射f:V -> V』使對任意a, b∈V,(a, b)∈E當且僅當( f(a),f(b) )∈E』,並且(a, b)與( f(a), f(b) )有相同重數,則稱G與G』同構,記為G ≌ G』。
用通俗的話說,則是只兩幅子圖上的節點能夠一一對應,並且節點與節點之間所連接的邊的情況也是完全一致的。
㈢ 離散圖論:如何快速判斷兩個圖同構
這是個NP問題,但還不清楚是否是NPC問題。換句話說,就目前來看,除了一個映射一個映射地驗證,沒有其他效率更好的方法。
至於到底有沒有更快的演算法,即不能肯定也不能否定。
㈣ 圖的同構演算法是什麼
提出了圖的同構判定新演算法,即關聯度序列法和黃金分割關聯度序列法.後者的計算時間復雜性遠遠低於2N(N為圖的頂點數),已接近於多項式時間復雜性.該演算法可應用於很多能用圖來描述的模式識別等實際問題
㈤ 200分高分懸賞,c++或者java編寫一個圖的同構的判定。用關聯度序列法。改進後變為
publicclassMath{//所有成績數組及其對應的權重數組privatedouble[]scores;privatedouble[]weights;//構造函數publicMath(double[]scores,double[]weights){this.scores=scores;this.weights=weights;}//計算成績綜合publicdoublesum(){doublesum=0;for(doublescore:scores){sum+=score;}returnsum;}//計算加權平均分publicdoubleweightAvg(){doublesum=0;for(inti=0;i<scores.length;i++){sum+=scores[i]*weights[i];}return((double)(int)((sum/scores.length)*10))/10;//結果乘以10在轉化為int型就去掉了後面所有小數,再轉化為double除以10就是保留一位小數了}//平均績點不知道什麼意思,給出演算法就能寫程序}
㈥ 求解,離散數學,如何證明兩個圖同構,具體步驟是什麼
兩個圖的頂點集合之間能夠建立一一對應的映射,對應的頂點之間保持邊的一一對應關系.
也可以通過圖的鄰接矩陣來探討.一個圖的鄰接矩陣經過有限次的互換行或列的變換變成另一個圖的鄰接矩陣,則兩個圖同構.