青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品

O(1) 的小樂

Job Hunting

公告

記錄我的生活和工作。。。
<2010年9月>
2930311234
567891011
12131415161718
19202122232425
262728293012
3456789

統計

  • 隨筆 - 182
  • 文章 - 1
  • 評論 - 41
  • 引用 - 0

留言簿(10)

隨筆分類(70)

隨筆檔案(182)

文章檔案(1)

如影隨形

搜索

  •  

最新隨筆

最新評論

閱讀排行榜

評論排行榜

雙連通圖 割點與橋 定義篇

[點連通度與邊連通度]

在一個無向連通圖中,如果有一個頂點集合,刪除這個頂點集合,以及這個集合中所有頂點相關聯的邊以后,原圖變成多個連通塊,就稱這個點集為割點集合。一個圖的點連通度的定義為,最小割點集合中的頂點數。

A cut, vertex cut, or separating set of a connected graph G is a set of vertices whose removal renders G disconnected. Theconnectivity or vertex connectivity κ(G) is the size of a smallest vertex cut. A graph is called k-connected or k-vertex-connected if its vertex connectivity is k or greater. A complete graph with n vertices has no cuts at all, but by convention its connectivity is n-1. A vertex cut for two vertices u and v is a set of vertices whose removal from the graph disconnects u and v. The local connectivity κ(u,v) is the size of a smallest vertex cut separating u and v. Local connectivity is symmetric for undirected graphs; that is, κ(u,v)=κ(v,u). Moreover, except for complete graphs, κ(G) equals the minimum of κ(u,v) over all nonadjacent pairs of vertices u,v.

2-connectivity is also called "biconnectivity" and 3-connectivity is also called "triconnectivity".

Analogous concepts can be defined for edges. In the simple case in which cutting a single, specific edge would disconnect the graph, that edge is called a bridge. More generally, the edge cut of G is a group of edges whose total removal renders the graph disconnected. The edge-connectivity λ(G) is the size of a smallest edge cut, and the local edge-connectivity λ(u,v) of two vertices u,v is the size of a smallest edge cut disconnecting u from v. Again, local edge-connectivity is symmetric. A graph is called k-edge-connected if its edge connectivity is k or greater.

類似的,如果有一個邊集合,刪除這個邊集合以后,原圖變成多個連通塊,就稱這個點集為割邊集合。一個圖的邊連通度的定義為,最小割邊集合中的邊數。

[雙連通圖 割點 與橋]

Point Biconnected Component 無向圖點2連通分量與    cut point 割點

Edge Biconnected Component 無向圖邊2連通分量與    bridge 橋

如果一個無向連通圖的點連通度大于1,則稱該圖是點雙連通的(point biconnected),簡稱雙連通或重連通。一個圖有割點,當且僅當這個圖的點連通度為1,則割點集合的唯一元素被稱為割點(cut point),又叫關節點(articulation point)。

如果一個無向連通圖的邊連通度大于1,則稱該圖是邊雙連通的(edge biconnected),簡稱雙連通或重連通。一個圖有橋,當且僅當這個圖的邊連通度為1,則割邊集合的唯一元素被稱為橋(bridge),又叫關節邊(articulation edge)。

可以看出,點雙連通與邊雙連通都可以簡稱為雙連通,它們之間是有著某種聯系的

[雙連通分支] 

在圖G的所有子圖G’中,如果G’是雙連通的,則稱G’為雙連通子圖。如果一個雙連通子圖G’它不是任何一個雙連通子圖的真子集,則G’為極大雙連通子圖。雙連通分支(biconnected component),或重連通分支,就是圖的極大雙連通子圖。特殊的,點雙連通分支又叫做塊。

 

[求割點與橋]

該算法是R.Tarjan發明的。對圖深度優先搜索,定義DFS(u)為u在搜索樹(以下簡稱為樹)中被遍歷到的次序號。定義Low(u)為u或u的子樹中能通過非父子邊追溯到的最早的節點,即DFS序號最小的節點。根據定義,則有:

Low(u)=Min
{
DFS(u)
DFS(v) (u,v)為后向邊(返祖邊) 等價于 DFS(v)<DFS(u)且v不為u的父親節點
Low(v) (u,v)為樹枝邊(父子邊)
}

一個頂點u是割點,當且僅當滿足(1)或(2)
(1) u為樹根,且u有多于一個子樹。
(2) u不為樹根,且滿足存在(u,v)為樹枝邊(或稱父子邊,即u為v在搜索樹中的父親),使得DFS(u)<=Low(v)。

一條無向邊(u,v)是橋,當且僅當(u,v)為樹枝邊,且滿足DFS(u)<Low(v)。

[求雙連通分支]

下面要分開討論點雙連通分支與邊雙連通分支的求法。

對于點雙連通分支,實際上在求割點的過程中就能順便把每個點雙連通分支求出。建立一個棧,存儲當前雙連通分支,在搜索圖時,每找到一條樹枝邊或后向邊(非橫叉邊),就把這條邊加入棧中。如果遇到某時滿足DFS(u)<=Low(v),說明u是一個割點,同時把邊從棧頂一個個取出,直到遇到了邊(u,v),取出的這些邊與其關聯的點,組成一個點雙連通分支。割點可以屬于多個點雙連通分支,其余點和每條邊只屬于且屬于一個點雙連通分支。

對于邊雙連通分支,求法更為簡單。只需在求出所有的橋以后,把橋邊刪除,原圖變成了多個連通塊,則每個連通塊就是一個邊雙連通分支。橋不屬于任何一個邊雙連通分支,其余的邊和每個頂點都屬于且只屬于一個邊雙連通分支。

[構造雙連通圖]

有橋的連通圖必然有割點,有割點的連通圖不一定有橋(下圖可以很明顯得到)

QQ截圖未命名

如果一個圖有橋,則把此圖變成無橋的圖的最優策略:

一個有橋的連通圖(其必然有割點),如何把它通過加邊變成邊雙連通圖?方法為首先求出所有的橋,然后刪除這些橋邊,剩下的每個連通塊都是一個邊雙連通子圖。把每個雙連通子圖收縮為一個頂點,再把橋邊加回來,最后的這個圖一定是一棵樹,邊連通度為1。

統計出樹中度為1的節點的個數,即為葉節點的個數,記為leaf。則至少在樹上添加(leaf+1)/2條邊,就能使樹達到邊二連通,所以至少添加的邊數就是(leaf+1)/2。具體方法為,首先把兩個最近公共祖先最遠的兩個葉節點之間連接一條邊,這樣可以把這兩個點到祖先的路徑上所有點收縮到一起,因為一個形成的環一定是雙連通的。然后再找兩個最近公共祖先最遠的兩個葉節點,這樣一對一對找完,恰好是(leaf+1)/2次,把所有點收縮到了一起。

 

QQ截圖未命名

如果一個圖無橋有割點,則把此圖變成雙連通的最優策略:

QQ截圖未命名

如果一個圖既有橋,又有割點,則把此圖變成雙連通的策略:(不是最優。。。)

1 首先把圖變成無橋的

2 把有割點無橋的圖變成雙連通

(顯然這個算法不是最優的。。關鍵問題是把圖變成無橋的圖的時候的策略選擇!這個需要高手指點。。。)

A biconnected component (or 2-connected component) in graph theory is a maximalbiconnected subgraph. Any connected graph decomposes into a tree of biconnected components called the block tree of the graph. The blocks are attached to each other at shared vertices called cut vertices or articulation points. Specifically, a cut vertex is any vertex that when removed increases the number of connected components.

算法的基本描述:

The classic sequential algorithm for computing biconnected components in a connected undirected graph due to John Hopcroft andRobert Tarjan (1973) [1] runs in linear time, and is based on depth-first search. This algorithm is also outlined as Problem 22-2 of Introduction to Algorithms (both 2nd and 3rd edition).

The idea is to run a depth-first search while maintaining the following information:

  1. the depth of each vertex in the depth-first-search tree (once it gets visited), and
  2. for each vertex v, the lowest depth of neighbors of all descendants of v in the depth-first-search tree, called thelowpoint.

The depth is standard to maintain during a depth-first search. The lowpoint of v can be computed after visiting all descendants of v (i.e., just before v gets popped off the depth-first-search stack) as the minimum of the depth of all neighbors of v (other than v's parent in the depth-first-search tree) and the lowpoint of all children of v in the depth-first-search tree.

The key fact is that a nonroot vertex v is a cut vertex (or articulation point) separating two biconnected components if and only if v's lowpoint is at least as large as v's depth. This property can be tested once the lowpoint of v is computed (i.e., just before v gets popped off the depth-first-search stack), and if true, v separates the graph into different biconnected components. This can be represented by computing one biconnected component out of the descendants of v (by traversing the depth-first-search tree), and henceforth pretending that v had no children in the depth-first-search tree, so that the subgraph abovev will not descend into v's ancestors.

The root vertex must be handled separately: it is a cut vertex if and only if it has at least two children. Thus, it suffices to simply build one component out of each child subtree of the root (including the root).

 

 

An example graph with biconnected components marked

Each color corresponds to a biconnected component. Multi-colored vertices are cut vertices, and thus belong to multiple biconnected components.

 

引入割點的目的: 如果我們去掉圖中的某個點之后,那么這個圖是否還是連通的!

引入2連通分量(塊)的目的:圖的某個子圖是否可以去掉一個點之后,仍然是連通的。也就是說相對于這個子圖,沒有割點。此圖的割含有兩個點。

(注意一個圖的割和割點不是一個概念!)

Reference :

http://www.byvoid.com/blog/biconnect/         byvoid的NX文章

Wiki 配圖

中科院研究生院算法分析設計講義(陳老師)

posted on 2010-09-28 21:45 Sosi 閱讀(978) 評論(0)  編輯 收藏 引用


只有注冊用戶登錄后才能發表評論。
網站導航: 博客園   IT新聞   BlogJava   博問   Chat2DB   管理


統計系統
青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品
  • <ins id="pjuwb"></ins>
    <blockquote id="pjuwb"><pre id="pjuwb"></pre></blockquote>
    <noscript id="pjuwb"></noscript>
          <sup id="pjuwb"><pre id="pjuwb"></pre></sup>
            <dd id="pjuwb"></dd>
            <abbr id="pjuwb"></abbr>
            亚洲第一二三四五区| 免费在线观看日韩欧美| 午夜久久资源| 欧美大片网址| 国产亚洲精品久久久久婷婷瑜伽| 亚洲国产经典视频| 午夜精品久久久久久久白皮肤 | 国产精品国产a| 精品999成人| 午夜精品久久久久久久久久久久 | 久久精品国产欧美亚洲人人爽| 免播放器亚洲一区| 亚洲一区二区视频在线| 欧美wwwwww| 亚洲一区二区在线免费观看视频| 亚洲高清视频中文字幕| 欧美呦呦网站| 亚洲精品黄色| 欧美va亚洲va日韩∨a综合色| 亚洲日本成人| 午夜影院日韩| 亚洲一区二区不卡免费| 国产午夜亚洲精品理论片色戒 | 欧美视频在线不卡| 日韩视频在线观看国产| 欧美xxx成人| 久久久综合精品| 在线观看一区| 亚洲视频在线观看| 欧美天天影院| 欧美成人a∨高清免费观看| 欧美日韩一区国产| 亚洲午夜免费福利视频| 亚洲精品色图| 国产精品观看| 91久久黄色| 欧美日韩一区高清| 欧美二区乱c少妇| 免费欧美电影| 久久久久www| 美腿丝袜亚洲色图| 99热这里只有成人精品国产| 亚洲欧洲视频在线| 国产主播在线一区| 欧美国产日韩在线| 女人香蕉久久**毛片精品| 欧美有码在线观看视频| 欧美精品1区2区| 亚洲永久在线| 欧美黄色aaaa| 性亚洲最疯狂xxxx高清| 欧美激情一区二区| 欧美激情亚洲另类| 精品99视频| 久久国产主播| 亚洲人成人一区二区在线观看| 欧美一级片久久久久久久| 在线播放视频一区| 日韩亚洲欧美一区| 国产一区二区福利| 亚洲自拍偷拍网址| 伊人久久综合97精品| 欧美亚洲三区| 欧美一区二区三区视频免费| 欧美亚日韩国产aⅴ精品中极品| 欧美一区二区播放| 国产精品乱看| 女同性一区二区三区人了人一| 国产一区二区三区久久久| 午夜欧美电影在线观看| 午夜视频一区在线观看| 国产精品视频导航| 欧美国产日韩一区| 亚洲人成小说网站色在线| 欧美xxxx在线观看| 91久久精品日日躁夜夜躁国产| 91久久国产综合久久蜜月精品| 欧美电影打屁股sp| 99精品欧美一区| 影音先锋亚洲电影| 免费一级欧美片在线播放| 亚洲第一精品夜夜躁人人躁| 日韩一级大片| 国产精品色婷婷久久58| 欧美一级片在线播放| 美日韩精品视频免费看| 亚洲精品乱码久久久久久黑人| 欧美激情亚洲国产| 亚洲一区中文字幕在线观看| 久久er99精品| 国产精品一区二区黑丝| 亚洲精品一区二区在线观看| 亚洲免费影视第一页| 免费中文字幕日韩欧美| 亚洲全部视频| 久久成人18免费网站| 永久91嫩草亚洲精品人人| 欧美成人一区二区三区| 亚洲手机视频| 欧美xx视频| 亚洲欧美视频在线| 在线电影院国产精品| 欧美日韩精品免费观看| 91久久精品国产91久久性色tv| 亚洲一区二区三区在线视频| 国内精品久久久| 欧美另类69精品久久久久9999| 欧美激情第10页| 亚洲一区久久久| 在线观看成人网| 国产精品你懂的在线欣赏| 久久久久久久久久久一区| 一区二区三区不卡视频在线观看 | 在线精品视频在线观看高清| 欧美精品一区二| 欧美在线观看一区| 久久伊人一区二区| 怡红院av一区二区三区| 欧美视频一区二区三区…| 久久综合九色综合欧美狠狠| 欧美高清hd18日本| 欧美在线免费看| 在线一区日本视频| 国产精品免费电影| 欧美黑人国产人伦爽爽爽| 欧美在线首页| 亚洲欧美韩国| 亚洲视频高清| 久久一区二区三区四区| 亚洲欧美日本另类| 一区二区三区日韩| 亚洲日本中文字幕| 亚洲电影第1页| 韩国美女久久| 欧美精品一区二区在线观看| 久久免费国产精品| 日韩视频免费大全中文字幕| 欧美成人精品在线| 麻豆精品在线播放| 一区二区久久久久久| 亚洲全部视频| 亚洲日韩欧美视频| 亚洲肉体裸体xxxx137| 亚洲国产高清视频| 亚洲黄网站在线观看| 欧美日一区二区三区在线观看国产免 | 亚洲精品久久久蜜桃| 亚洲电影在线观看| 亚洲国产精品成人综合色在线婷婷| 国产一区二区欧美日韩| 国产一区二区日韩精品| 国产日韩欧美视频| 国内精品视频在线观看| 狠狠色伊人亚洲综合成人| 精久久久久久| 亚洲国产欧美一区二区三区同亚洲| 在线免费观看日本欧美| 亚洲区欧美区| 亚洲一区二区欧美| 欧美一级网站| 葵司免费一区二区三区四区五区| 久久夜色精品国产欧美乱| 欧美国产国产综合| 亚洲人成小说网站色在线| 99在线热播精品免费| 亚洲欧美一区二区在线观看| 欧美国产日本在线| 亚洲精品乱码视频| 中文一区二区| 久久精品国产清高在天天线| 久久综合国产精品台湾中文娱乐网| 蜜臀av性久久久久蜜臀aⅴ| 欧美日本久久| 国产一区二区三区自拍| 91久久亚洲| 亚洲欧美日韩国产| 免费日韩av电影| 在线亚洲欧美| 久久久久久穴| 国产精品二区二区三区| 韩国一区电影| 亚洲午夜精品一区二区三区他趣| 久久精品99国产精品酒店日本| 欧美激情乱人伦| 亚洲欧美美女| 欧美寡妇偷汉性猛交| 国产农村妇女毛片精品久久莱园子 | 欧美精品七区| 国产一区二区黄| 亚洲天堂男人| 亚洲免费视频中文字幕| 美女视频网站黄色亚洲| 99av国产精品欲麻豆| 久久久久一区二区三区| 国产精品国产三级国产专播品爱网 | 女女同性女同一区二区三区91| 国产精品欧美经典| 99热在线精品观看| 欧美gay视频| 久久国产精品黑丝|