Knowledge (XXG)

Biconnected component

Source 📝

38: 687:, and it can be used to partition the edges into equivalence classes, subsets of edges with the property that two edges are related to each other if and only if they belong to the same equivalence class. The subgraphs formed by the edges in each equivalence class are the biconnected components of the given graph. Thus, the biconnected components partition the edges of the graph; however, they may share vertices with each other. 771: 378: 283:
The root vertex must be handled separately: it is a cut vertex if and only if it has at least two children in the DFS tree. Thus, it suffices to simply build one component out of each child subtree of the root (including the root).
767:. This tree has a vertex for each block and for each articulation point of the given graph. There is an edge in the block-cut tree for each pair of a block and an articulation point that belongs to that block. 969: 503:
version of the problem, vertices and edges are added (but not removed) dynamically, and a data structure must maintain the biconnected components.
41:
Each color corresponds to a biconnected component. Multi-colored vertices are cut vertices, and thus belong to multiple biconnected components.
942: 260:
separates the graph into different biconnected components. This can be represented by computing one biconnected component out of every such
755:
is a vertex that is shared by two or more blocks. The structure of the blocks and cutpoints of a connected graph can be described by a
101: 568: 324:
parent := i GetArticulationPoints(ni, d + 1) childCount := childCount + 1
1222: 512: 69: 550: 198: 150: 1085: 913: 65: 224:
is a cut vertex (or articulation point) separating two biconnected components if and only if there is a child
451:. This gives immediately a linear-time 2-connectivity test and can be extended to list all cut vertices of 1093: 903: 1056:
Westbrook, J.; Tarjan, R. E. (1992). "Maintaining bridge-connected and biconnected components on-line".
908: 468: 431: 411: 109: 81: 1171: 504: 1016: 684: 444: 126: 1098: 756: 656: 403: 373:
Note that the terms child and parent denote the relations in the DFS tree, not the original graph.
73: 1028: 963: 711:, and an edge between two vertices whenever the corresponding two blocks share a vertex. A graph 704: 564: 407: 146: 37: 948: 938: 62: 1187: 1103: 1065: 1038: 996: 500: 130: 606: 142: 1207: 244:. This property can be tested once the depth-first search returned from every child of 299:
depth := d low := d childCount := 0 isArticulation :=
1216: 957:
A cut-vertex is a vertex that if removed, the number of network components increases.
560: 508: 156:
The idea is to run a depth-first search while maintaining the following information:
138: 134: 1137: 628: 160:
the depth of each vertex in the depth-first-search tree (once it gets visited), and
46: 1083:
Tarjan, R.; Vishkin, U. (1985). "An Efficient Parallel Biconnectivity Algorithm".
728: 556: 377: 185:
The depth is standard to maintain during a depth-first search. The lowpoint of
1042: 952: 770: 31: 609:
on the edges of an arbitrary undirected graph, according to which two edges
1001: 984: 17: 511:(1992) developed an efficient data structure for this problem based on 1069: 675:, then one can combine these two cycles to find a simple cycle through 1192: 1175: 933:
AL-TAIE, MOHAMMED ZUHAIR. KADRY, SEIFEDINE (2019). "3. Graph Theory".
1107: 410:-trees. Chain decompositions can be computed in linear time by this 213:
in the depth-first-search tree) and the lowpoint of all children of
1127:; however, Harary does not appear to describe it in explicit terms. 1033: 769: 36: 1019:(2013), "A Simple Test on 2-Vertex- and 2-Edge-Connectivity", 80:
of the graph. The blocks are attached to each other at shared
985:"Algorithm 447: efficient algorithms for graph manipulation" 916:
Counter part of biconnected components in directed graphs
707:
of its blocks. Thus, it has one vertex for each block of
104:. A block containing at most one cut vertex is called a 463:(with minimum degree 2) is a cut vertex if and only if 455:
in linear time using the following statement: A vertex
1123:
credit the definition of this equivalence relation to
252:
gets popped off the depth-first-search stack), and if
167:, the lowest depth of neighbors of all descendants of 1176:"A Sufficient Condition for Backtrack-Bounded Search" 488:. The list of cut vertices can be used to create the 149:. This algorithm is also outlined as Problem 22-2 of 406:, which are special ear decompositions depending on 129:
for computing biconnected components in a connected
100:
is any vertex whose removal increases the number of
381:A demo of Tarjan's algorithm to find cut vertices. 175:itself) in the depth-first-search tree, called the 1180:Journal of the Association for Computing Machinery 659:: if there exists a simple cycle containing edges 189:can be computed after visiting all descendants of 402:A simple alternative to the above algorithm uses 639:. Every edge is related to itself, and an edge 1120: 8: 1208:C++ implementation of Biconnected Components 968:: CS1 maint: multiple names: authors list ( 667:, and another simple cycle containing edges 553:. This time bound is proved to be optimal. 1191: 1097: 1032: 1000: 376: 925: 197:gets popped off the depth-first-search 1155: 1124: 961: 220:The key fact is that a nonroot vertex 935:PYTHON FOR GRAPH AND NETWORK ANALYSIS 426:is 2-vertex-connected if and only if 76:of biconnected components called the 7: 727:with this property are known as the 715:is the block graph of another graph 723:are complete subgraphs. The graphs 489: 336:low := Min (low, low) 276:), and then erasing the subtree of 617:are related if and only if either 475:is the first vertex of a cycle in 25: 983:Hopcroft, J.; Tarjan, R. (1973). 344:low := Min (low, depth) 201:) as the minimum of the depth of 774:A graph, and its block-cut tree. 217:in the depth-first-search tree. 205:, the depth of all neighbors of 719:exactly when all the blocks of 370:Output i as articulation point 1021:Information Processing Letters 651:is related in the same way to 515:. Specifically, it processes 121:Linear time depth-first search 1: 153:(both 2nd and 3rd editions). 1144:, Addison-Wesley, p. 29 655:. Less obviously, this is a 513:disjoint-set data structures 418:be a chain decomposition of 268:will contain the subtree of 264:(a component which contains 27:Maximal biconnected subgraph 1121:Tarjan & Vishkin (1985) 643:is related to another edge 293:GetArticulationPoints(i, d) 1239: 551:inverse Ackermann function 209:(other than the parent of 151:Introduction to Algorithms 29: 1043:10.1016/j.ipl.2013.01.016 989:Communications of the ACM 914:Single-entry single-exit 683:. Therefore, this is an 627:or the graph contains a 30:Not to be confused with 332:isArticulation := 112:in the block-cut tree. 904:Triconnected component 894: 390: 108:, it corresponds to a 57:(sometimes known as a 42: 1002:10.1145/362248.362272 909:Bridge (graph theory) 773: 519:vertex additions and 459:in a connected graph 380: 59:2-connected component 51:biconnected component 40: 685:equivalence relation 601:Equivalence relation 404:chain decompositions 127:sequential algorithm 102:connected components 657:transitive relation 563:(1985) designed a 366:childCount > 1) 248:(i.e., just before 193:(i.e., just before 141:(1973). It runs in 96:. Specifically, a 94:articulation points 90:separating vertices 1223:Graph connectivity 1070:10.1007/BF01758773 895: 749:articulation point 705:intersection graph 596:Related structures 565:parallel algorithm 545:total time, where 523:edge additions in 391: 385:denotes depth and 147:depth-first search 145:, and is based on 72:decomposes into a 43: 1193:10.1145/4221.4225 1172:Eugene C. Freuder 944:978-3-319-85037-5 699:of a given graph 605:One can define a 505:Jeffery Westbrook 467:is incident to a 389:denotes lowpoint. 16:(Redirected from 1230: 1197: 1195: 1159: 1153: 1147: 1145: 1134: 1128: 1118: 1112: 1111: 1101: 1080: 1074: 1073: 1064:(1–6): 433–464. 1053: 1047: 1045: 1036: 1017:Schmidt, Jens M. 1013: 1007: 1006: 1004: 980: 974: 973: 967: 959: 930: 893: 883: 873: 863: 849: 839: 829: 819: 809: 799: 789: 754: 726: 722: 718: 714: 710: 702: 682: 678: 674: 670: 666: 662: 654: 650: 646: 642: 638: 634: 626: 616: 612: 591: 581: 548: 544: 522: 518: 496:in linear time. 495: 487: 474: 466: 462: 458: 454: 450: 442: 429: 425: 421: 417: 398:Other algorithms 355:isArticulation) 295:visited := 279: 275: 271: 267: 263: 259: 251: 247: 243: 231: 227: 223: 216: 212: 208: 204: 196: 192: 188: 180: 174: 170: 166: 163:for each vertex 131:undirected graph 21: 1238: 1237: 1233: 1232: 1231: 1229: 1228: 1227: 1213: 1212: 1204: 1170: 1167: 1162: 1154: 1150: 1136: 1135: 1131: 1119: 1115: 1108:10.1137/0214061 1099:10.1.1.465.8898 1086:SIAM J. Comput. 1082: 1081: 1077: 1055: 1054: 1050: 1015: 1014: 1010: 982: 981: 977: 960: 945: 932: 931: 927: 923: 900: 891: 885: 884: 881: 875: 874: 871: 865: 864: 861: 855: 854: 850: 847: 841: 840: 837: 831: 830: 827: 821: 820: 817: 811: 810: 807: 801: 800: 797: 791: 790: 787: 781: 780: 775: 752: 737: 724: 720: 716: 712: 708: 700: 693: 680: 676: 672: 668: 664: 660: 652: 648: 647:if and only if 644: 640: 636: 632: 618: 614: 610: 607:binary relation 603: 598: 583: 572: 546: 524: 520: 516: 493: 486: 476: 472: 464: 460: 456: 452: 448: 441: 435: 427: 423: 419: 415: 412:traversing rule 400: 394: 392: 371: 290: 280:from the tree. 277: 273: 269: 265: 261: 257: 249: 245: 233: 229: 225: 221: 214: 210: 206: 202: 194: 190: 186: 176: 172: 168: 164: 123: 118: 70:connected graph 61:) is a maximal 35: 28: 23: 22: 15: 12: 11: 5: 1236: 1234: 1226: 1225: 1215: 1214: 1211: 1210: 1203: 1202:External links 1200: 1199: 1198: 1186:(4): 755–761. 1166: 1163: 1161: 1160: 1148: 1129: 1113: 1092:(4): 862–874. 1075: 1048: 1027:(7): 241–244, 1008: 995:(6): 372–378. 975: 943: 924: 922: 919: 918: 917: 911: 906: 899: 896: 889: 879: 869: 859: 845: 835: 825: 815: 805: 795: 785: 761:block-cut tree 736: 735:Block-cut tree 733: 692: 689: 602: 599: 597: 594: 490:block-cut tree 484: 439: 399: 396: 375: 291: 289: 286: 183: 182: 161: 122: 119: 117: 114: 78:block-cut tree 26: 24: 14: 13: 10: 9: 6: 4: 3: 2: 1235: 1224: 1221: 1220: 1218: 1209: 1206: 1205: 1201: 1194: 1189: 1185: 1181: 1177: 1173: 1169: 1168: 1164: 1158:, p. 36. 1157: 1156:Harary (1969) 1152: 1149: 1143: 1139: 1138:Harary, Frank 1133: 1130: 1126: 1125:Harary (1969) 1122: 1117: 1114: 1109: 1105: 1100: 1095: 1091: 1088: 1087: 1079: 1076: 1071: 1067: 1063: 1059: 1052: 1049: 1044: 1040: 1035: 1030: 1026: 1022: 1018: 1012: 1009: 1003: 998: 994: 990: 986: 979: 976: 971: 965: 958: 954: 950: 946: 940: 936: 929: 926: 920: 915: 912: 910: 907: 905: 902: 901: 897: 888: 878: 868: 858: 853: 844: 834: 824: 814: 804: 794: 784: 778: 772: 768: 766: 762: 758: 750: 746: 742: 734: 732: 730: 706: 698: 690: 688: 686: 658: 631:through both 630: 625: 621: 608: 600: 595: 593: 590: 586: 579: 575: 571:that runs in 570: 566: 562: 561:Robert Tarjan 558: 554: 552: 542: 538: 534: 531: 527: 514: 510: 509:Robert Tarjan 506: 502: 497: 491: 483: 479: 470: 446: 438: 433: 413: 409: 405: 397: 395: 388: 384: 379: 374: 369: 365: 362: 358: 354: 351: 347: 343: 339: 335: 331: 327: 323: 319: 316: 313: 309: 305: 302: 298: 294: 287: 285: 281: 255: 241: 237: 218: 200: 179: 162: 159: 158: 157: 154: 152: 148: 144: 140: 139:Robert Tarjan 136: 135:John Hopcroft 132: 128: 120: 115: 113: 111: 107: 103: 99: 95: 91: 87: 83: 79: 75: 71: 67: 64: 60: 56: 52: 48: 39: 33: 19: 1183: 1179: 1151: 1142:Graph Theory 1141: 1132: 1116: 1089: 1084: 1078: 1061: 1058:Algorithmica 1057: 1051: 1024: 1020: 1011: 992: 988: 978: 956: 937:. SPRINGER. 934: 928: 886: 876: 866: 856: 851: 842: 832: 822: 812: 802: 792: 782: 776: 764: 760: 748: 744: 740: 738: 729:block graphs 696: 694: 629:simple cycle 623: 619: 604: 592:processors. 588: 584: 577: 573: 555: 540: 536: 532: 529: 525: 498: 481: 477: 443:is the only 436: 430:has minimum 401: 393: 386: 382: 372: 367: 363: 360: 356: 352: 349: 345: 341: 340:ni ≠ parent 337: 333: 329: 328:low ≥ depth 325: 321: 317: 314: 311: 307: 303: 300: 296: 292: 282: 253: 239: 235: 219: 184: 177: 155: 125:The classic 124: 105: 97: 93: 89: 86:cut vertices 85: 77: 58: 54: 50: 47:graph theory 44: 759:called the 751:of a graph 697:block graph 691:Block graph 557:Uzi Vishkin 171:(including 143:linear time 110:leaf vertex 63:biconnected 1165:References 953:1047552679 852:Cutpoints: 745:cut vertex 582:time with 359:(parent = 348:(parent ≠ 288:Pseudocode 238:) ≥ depth( 232:such that 133:is due to 116:Algorithms 106:leaf block 98:cut vertex 32:vertex cut 18:Cut vertex 1094:CiteSeerX 1034:1209.0700 964:cite book 234:lowpoint( 1217:Category 1174:(1985). 1140:(1969), 898:See also 741:cutpoint 567:on CRCW 320:visited 304:for each 178:lowpoint 82:vertices 66:subgraph 765:BC-tree 703:is the 549:is the 499:In the 422:. Then 338:else if 272:, plus 84:called 68:. Any 1096:  951:  941:  777:Blocks 501:online 469:bridge 434:2 and 432:degree 414:. Let 1029:arXiv 921:Notes 747:, or 576:(log 445:cycle 301:false 199:stack 55:block 970:link 949:OCLC 939:ISBN 892:= 10 757:tree 695:The 679:and 671:and 663:and 635:and 613:and 569:PRAM 559:and 507:and 368:then 361:null 350:null 342:then 334:true 330:then 322:then 310:adj 297:true 254:true 137:and 74:tree 49:, a 1188:doi 1104:doi 1066:doi 1039:doi 1025:113 997:doi 882:= 8 872:= 7 862:= 2 763:or 492:of 471:or 447:in 408:DFS 364:and 353:and 318:not 306:ni 228:of 92:or 88:or 53:or 45:In 1219:: 1184:32 1182:. 1178:. 1102:. 1090:14 1060:. 1037:, 1023:, 993:16 991:. 987:. 966:}} 962:{{ 955:. 947:. 848:= 838:= 828:= 818:= 808:= 798:= 788:= 779:: 743:, 739:A 731:. 622:= 587:+ 543:)) 539:, 480:– 357:or 346:if 326:if 315:if 312:do 308:in 256:, 1196:. 1190:: 1146:. 1110:. 1106:: 1072:. 1068:: 1062:7 1046:. 1041:: 1031:: 1005:. 999:: 972:) 890:4 887:c 880:3 877:c 870:2 867:c 860:1 857:c 846:7 843:b 836:6 833:b 826:5 823:b 816:4 813:b 806:3 803:b 796:2 793:b 786:1 783:b 753:G 725:H 721:H 717:G 713:H 709:G 701:G 681:g 677:e 673:g 669:f 665:f 661:e 653:e 649:f 645:f 641:e 637:f 633:e 624:f 620:e 615:f 611:e 589:m 585:n 580:) 578:n 574:O 547:α 541:n 537:m 535:( 533:α 530:m 528:( 526:O 521:m 517:n 494:G 485:1 482:C 478:C 473:v 465:v 461:G 457:v 453:G 449:C 440:1 437:C 428:G 424:G 420:G 416:C 387:L 383:D 278:y 274:v 270:y 266:y 262:y 258:v 250:v 246:v 242:) 240:v 236:y 230:v 226:y 222:v 215:v 211:v 207:v 203:v 195:v 191:v 187:v 181:. 173:v 169:v 165:v 34:. 20:)

Index

Cut vertex
vertex cut
An example graph with biconnected components marked
graph theory
biconnected
subgraph
connected graph
tree
vertices
connected components
leaf vertex
sequential algorithm
undirected graph
John Hopcroft
Robert Tarjan
linear time
depth-first search
Introduction to Algorithms
stack

chain decompositions
DFS
traversing rule
degree
cycle
bridge
block-cut tree
online
Jeffery Westbrook
Robert Tarjan

Text is available under the Creative Commons Attribution-ShareAlike License. Additional terms may apply.