999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

基于Tarjan算法的極大點連通子圖研究

2021-09-14 23:31:47付海奎陳國軍王文波
電腦知識與技術 2021年22期

付海奎 陳國軍 王文波

摘要:由于傳統樸素算法求解無向圖的雙連通分量時間花費過高,為了在線性時間內求出雙連通分量并得到極大連通子圖。文章對Tarjan算法的思想以及具體實現做出了詳細的分析。同時結合具體實例,驗證了算法中割點的判定條件以及回溯數組初始化的有效性和適用性。最后,給出了Tarjan算法在求解極大連通子圖過程中,結點和棧空間狀態轉化圖。

關鍵詞:極大連通子圖;雙連通分量;Tarjan算法

Abstract: Because the traditional naive algorithm takes too much time to solve the biconnected component of undirected graph, in order to find the biconnected component in linear time and obtain the maximally connected subgraph. The idea and implementation of Tarjan algorithm are analyzed in detail in this paper. At the same time, the validity and applicability of the decision condition of the cut point and the initialization of the backtracking array in the algorithm are verified by a concrete example. Finally, the state transition diagrams of node and stack space in the process of solving the maximally connected subgraphs of Tarjan algorithm are given.

Key words: Maximally Connected Subgraphs; Biconnected Component; Tarjan Algorithm

1 問題概述與分析

對于連通的無向圖(undirected graph),若刪除某個頂點或者某條邊,無向圖的連通性變得未知。如果只刪除無向圖中某條邊,無向圖的連通性和連通分量(connected component)發生改變,那么刪除的這條邊為無向圖的橋。若一個無向圖中不存在橋,這個無向圖為邊雙連通圖(edge-biconnected graph)。對于點雙連通圖,條件則更強一些。當頂點被刪除時,與頂點相鄰的邊也要被刪除。其中一個頂點被刪除后,無向圖的連通分量發生變化,該頂點為關節點(articulation vertex)。

在傳統樸素算法中,尋找無向圖中所有的橋和關節點需要多次DFS[1](depth-first search)。一次DFS可以求出無向圖的連通分量,而每次DFS的漸近時間復雜度為[T(n)=O(N+E)],其中[N]為無向圖的頂點數,[E]為無向圖的邊數。每次刪除無向圖中一條邊再進行DFS,即可求出刪除一條邊后的連通分量。同理可以得出,對頂點進行相同的若干次刪除操作,可求出無向圖中所有的關節點。而兩者的漸近時間復雜度分別為[O(E×(N+E))], [O(N×(N+E))],均為平方階。樸素算法求解無向圖的橋和關節點時間花費太高。應尋求一種新的算法,在線性時間內求出最優解。算法最理想的狀態是對無向圖DFS一次,可求出所有橋和關節點。此時的時間花費最低,時間復雜度[1]為[O(N+E)]。

Robert Endre Tarjan(美國計算機科學家、1986年圖靈獎得主)[2]提出了關于求解有向圖的強連通分量的Tarjan算法。考慮到無向圖是有向圖的特殊情形,當有向圖中相連的兩個點之間存在往返的路徑時,有向圖可轉化為無向圖。由此可以得出無向圖的線性Tarjan算法。本篇文章在有向圖的基礎上,引入了無向圖的回溯數組。通過圖形動態描述了DFS過程中low數組的更新情況,并對回溯過程中每個結點的low值更新進行了詳細的敘述。對于割點的判斷,從根節點和非根結點兩個維度出發,系統論證了割點的判斷依據。最后具體分析了在入棧和出棧操作中,每個雙連通分量對應的極大連通子圖的求解過程。

2 Tarjan算法的思想和基本理論

Tarjan算法采用DFS遍歷整個無向圖,通過對DFS搜索樹的分析和研究。引入了時間戳即深度優先數和用于記錄搜索樹中每個結點深度優先數的回溯數組。回溯數組記錄的深度優先數是該結點所能連接的最小的深度優先數。回溯數組是通過遞歸初始化,然后回溯更新的方式確定下來的。在遞歸訪問結點的過程中,將遍歷的結點依次入棧。回溯結點時,將棧中的元素循環出棧,直到遇到割點則跳出循環。而每次出棧的元素,剛好對應關節點的一個極大點連通子圖。為了使算法容易理解,本篇文章將父子結點對應的邊入棧。

2.1 無向圖的實例

為了后續算法的具體實現和問題討論的方便,這里不考慮獨立點和非連通圖。選定了0~6共7個頂點8條邊作為無向圖的研究對象,頂點之間的連接關系如下圖所示。

圖1展示了7個頂點8條邊的無向圖連接平面圖[3]。對圖1中的無向圖,從頂點0開始進行一次深度優先遍歷,得到相應的DFS遍歷樹。無向圖的搜索樹主要有兩種邊,頂點之間的實線為無向圖的樹邊(tree edge),虛線為無向圖的回邊(back edge)。每次訪問新的結點即父親結點到兒子節點的連接都會產生一條樹邊。回邊一方面為了表示已被訪問過的子孫結點與祖先結點的連接關系,另一方面將平面圖各個結點之間的連通關系體現出來。

2.2 無向圖的深度優先數

主站蜘蛛池模板: 在线播放精品一区二区啪视频| 亚洲性视频网站| 无码国内精品人妻少妇蜜桃视频| 青青草综合网| 91欧美在线| 亚洲一级毛片免费看| 无码内射中文字幕岛国片 | 亚洲精品视频免费看| 国产精品毛片一区| 国内精品自在欧美一区| 91区国产福利在线观看午夜| 香蕉eeww99国产在线观看| 亚洲日韩精品无码专区| 亚洲精品日产精品乱码不卡| 国产在线视频二区| 国产精品va| 国产精品亚洲va在线观看| 国产亚洲男人的天堂在线观看| 欧美性猛交xxxx乱大交极品| 毛片基地视频| 亚洲综合激情另类专区| 制服丝袜 91视频| 久久综合色88| 久久永久视频| 国产精品免费久久久久影院无码| 欧美一区二区自偷自拍视频| 中文字幕久久亚洲一区| 日韩色图在线观看| 国产交换配偶在线视频| 国产精品私拍在线爆乳| 色爽网免费视频| 精品伊人久久久香线蕉| 在线播放精品一区二区啪视频| 福利片91| 男人天堂伊人网| 国产成人av一区二区三区| 国产成人高精品免费视频| 国产后式a一视频| 91伊人国产| 国产精品视频系列专区| 无码一区18禁| 久久综合九色综合97网| 女人av社区男人的天堂| 国产丝袜啪啪| 波多野结衣久久精品| 亚洲第一成网站| 亚洲狠狠婷婷综合久久久久| 亚洲狼网站狼狼鲁亚洲下载| 久久免费观看视频| P尤物久久99国产综合精品| 国产日韩欧美在线视频免费观看| 视频二区国产精品职场同事| 四虎国产永久在线观看| 美女视频黄又黄又免费高清| 99久久免费精品特色大片| 国产精品一区二区久久精品无码| 国产精品福利在线观看无码卡| 亚洲a级毛片| 国产精品久久久精品三级| 91精品国产情侣高潮露脸| a级毛片免费看| 欧美丝袜高跟鞋一区二区| 国产色伊人| 亚洲无码日韩一区| 91视频日本| 国产福利一区二区在线观看| 啊嗯不日本网站| 精品视频第一页| 久久77777| 精品日韩亚洲欧美高清a| 久久综合九九亚洲一区| 亚洲精品午夜天堂网页| 国产欧美视频在线观看| 无码国产伊人| a级毛片免费网站| 婷婷激情五月网| 亚洲码一区二区三区| 97免费在线观看视频| 日本人真淫视频一区二区三区| 久久中文字幕av不卡一区二区| 91精品国产一区自在线拍| 亚洲人在线|