Було запропоновано цю статтю або розділ до Шарнір (теорія графів), але, можливо, це варто додатково . Пропозиція з травня 2016. |
Ця стаття є сирим з іншої мови. Можливо, вона створена за допомогою машинного перекладу або перекладачем, який недостатньо володіє обома мовами. (березень 2016) |
В теорії графів, двозв'язний компонент (також відомий як блок або 2-приєднаний компонент) є максимальним двозв'язним підграфом. Будь-який зв'язний граф розпадається в дерево двозв'язних компонентів, званих блок-дерева графу. Блоки скріплені один з одним в загальних вершинах, званих зрізані вершини або точки шарнірного з'єднання. Зокрема, скороченна вершина є будь-яка вершина видалення якої збільшує число підключених компонентів.
Алгоритм
Лінійна глибина часу перший пошук
Класичний [en] для обчислення двозв'язних компонентів в зв'язний неорієнтований граф було обумовлено Джоном Хопкрофтом і Робертом Тар'яном(1973). Він працює за (лінійний час), а також ґрунтується на пошуку в глибину. Цей алгоритм також змальованний як проблема 22-2 "Введення в Алгоритми" (як 2-го і 3-го видання). Ідея полягає в тому, щоб запустити пошук в глибину, зберігаючи при цьому наступну інформацію:
- глибина кожної вершини в глибину першого дерева пошуку (як тільки його відвідали),
- і для кожної вершини V, найменша глибина сусідів всіх нащадків V в глибину першого дерева пошуку, називається низькою точкою.
Глибина є стандартною під час пошуку в глибину. Низька точка V може бути обчислена після відвідування всіх нащадків V (тобто, безпосередньо перед тим я V буде виштовхнене з глибини першого пошуку) як мінімум глибини V, глибина всіх сусідів V (крім батька V в глибині першого дерева пошуку) і низька точка всіх дітей V в глибину першого дерева пошуку.
Ключ у тому, що некоренева вершина v є зрізанною вершиною(або точкою артикуляції), що розділяє два двохзв'язних компоненти тоді і тільки тоді, коли є дитина Y з V така, що низька точка (Y) глибина ≥ (V). Цю властивість можна буде перевірити, як тільки пошук в глибину повернувся з кожної дитини V (тобто, безпосередньо перед тим як V виштовхнеться з глибини першого пошуку), і якщо це правда, V відокремить граф на різні двохзв'язні компоненти. Це може бути представлено за допомогою обчислення одного двохзв'язного компонента з кожного такого Y (компонент, який містить Y буде містити піддерево Y, плюс V), а потім видалить піддерево Y з дерева.
Коренева вершина повинна бути оброблена окремо: це зрізана вершина тоді і тільки тоді, коли вона має по хоча б , двох дітей. Таким чином, досить просто побудувати один компонент з кожного дочірнього піддерева маршруту (включаючи корінь).
Псевдокод
GetArticulationPoints(i, d) visited[i] = true depth[i] = d low[i] = d childCount = 0 isArticulation = false for each ni in adj[i] if not visited[ni] parent[ni] = i GetArticulationPoints(ni, d + 1) childCount = childCount + 1 if low[ni] >= depth[i] isArticulation = true low[i] = Min(low[i], low[ni]) else if ni <> parent[i] low[i] = Min(low[i], depth[ni]) if (parent[i] <> null and isArticulation) or (parent[i] == null and childCount > 1) Output i as articulation point
Інші алгоритми
Проста альтернатива вище представленного алгоритму використовує , які представляють собою спеціальні "розкладальні вуха" в залежності від ДФС-дерев. [2] Ланцюгові розкладання можуть бути обчислені за лінійний час цим правилом переміщення.
Нехай С розкладання ланцюга G. Тоді G є 2-вершинним-зв'язковим тоді і тільки тоді, коли G має мінімальну ступінь 2 і C1 є єдиним циклом в С. Це дає відразу тест 2-зв'язність в лінійний час і може бути продовжений перелічити всі зрізані вершини G в лінійному часу, використовуючи наступну заяву: вершина v в зв'язковому графі G (з мінімальним ступенем 2) є розрізом вершина тоді і тільки тоді, коли v падає на мосту або V є перша вершина цикл в с - С1. Список зрізаних вершин може бути використаний для створення блок-CUT дерево G в лінійному часу.
В інтернет-версії цього завдання, вершини і ребра додаються (але не видаляються) динамічно, а структура даних повинна підтримувати двузв'язні компоненти. і Роберт Тар'ян (1992) розробили ефективну структуру даних для цього завдання, засновану на непересічному наборі структур даних. Зокрема, він обробляє n вершин доповнення і m крайових доповненнь в O(m α(m, n)), де α є зворотнею функцією Аккермана.
[en] і Роберт Тар'ян (1985) розробили паралельний алгоритм на CRCW PRAM, який працює в O(log n) з m + n процесорами. Guojing Cong і [en] (2005) розробили алгоритм, який досягає в прискорення у 5 разів з 12 процесорами на МСС. Прискорення, що перевищують 30 на основані на алгоритмі Tarjan-Vishkin були розроблені James A. Edwards та Uzi Vishkin (2012).
Пов'язані структури
Ставлення еквівалентності
Можна визначити бінарне відношення на краях довільного неорієнтованого графу, відповідно до якого два ребра E і F пов'язані тоді і тільки тоді, коли або E = F або граф містить простий цикл як через E і F. Кожне ребро має відношення до себе, а ребро E пов'язано з іншим краєм F тоді і тільки тоді, коли F пов'язана таким же чином як і E, це транзитивне ставлення: якщо існує простий цикл, що містить ребра E і F, і ще один простий цикл, що містить ребра F і G, то можна об'єднати ці два цикли, щоб знайти простий цикл через E і F. Таким чином, це відношення еквівалентності, і воно може бути використано для поділу краю на класи еквівалентності, підмножини ребер з такою властивістю, що два ребра пов'язані одне з одним, якщо і тільки якщо вони належать до одного класу еквівалентності. Підграфи, утворені ребрами в кожному класі еквівалентності є двозв'язними компонентами даного графу. Таким чином, двозв'язні компоненти розбивають ребра графу; проте, вони можуть використовувати спільні вершини одине з одного.
Блок граф
Блок граф заданого графу G є графом перетинів його блоків. Таким чином, він має одну вершину для кожного блоку G, а ребро між двома вершинами, коли відповідні два блоки мають загальну вершину. Граф Н є блок-діаграмою іншого графу G , коли всі блоки H є повними підграфами. Графи H з цією властивістю відомі як блок-графи. [8]
Блок-дерева вирізати
Зрізана точка, зрізані вершини, або артикуляція графу G є вершиною, яка поділяється на два або більше блоків. Структуру блоків і зрізаних точок графу можна описати за допомогою дерева яке називається зрізаним деревом або BC-деревом. Це дерево має вершину для кожного блоку і для кожної точки з'єднання даного графу. Існує ребро в зрізаному дереві для кожної пари блоку і артикуляційної точки, що належить до цього блоку.
Див. також
- [en]
- Міст (теорія графів)
Примітки
- Hopcroft, J.; Tarjan, R. (1973). Algorithm 447: efficient algorithms for graph manipulation. Communications of the ACM. 16 (6): 372—378. doi:10.1145/362248.362272.
- Schmidt (2013), A Simple Test on 2-Vertex- and 2-Edge-Connectivity, Information Processing Letters, 113 (7): 241—244, doi:10.1016/j.ipl.2013.01.016.
- Westbrook, J.; Tarjan, R. E. (1992). Maintaining bridge-connected and biconnected components on-line. Algorithmica. 7: 433—464. doi:10.1007/BF01758773.
- Tarjan, R.; Vishkin, U. (1985). An Efficient Parallel Biconnectivity Algorithm. 14 (4): 862—874. doi:10.1137/0214061.
- Guojing Cong and David A. Bader, (2005). An Experimental Study of Parallel Biconnected Components Algorithms on Symmetric Multiprocessors (SMPs). Proceedings of the 19th IEEE International Conference on Parallel and Distributed Processing Symposium. с. 45b. doi:10.1109/IPDPS.2005.100.
- Edwards, J. A.; Vishkin, U. (2012). Better speedups using simpler parallel programming for graph connectivity and biconnectivity. Proceedings of the 2012 International Workshop on Programming Models and Applications for Multicores and Manycores - PMAM '12. с. 103. doi:10.1145/2141702.2141714. ISBN .
- Tarjan та Vishkin, (1985) credit the definition of this equivalence relation to Harary, (1969); however, Harary does not appear to describe it in explicit terms.
- Harary, Frank (1969), Graph Theory, Addison-Wesley, с. 29.
- Harary, (1969), p. 36.
Посилання
- The tree of the biconnected components Java implementation [ 29 квітня 2011 у Wayback Machine.] in the jBPT library (see BCTree class).
- C implementation of Biconnected Components [ 20 листопада 2016 у Wayback Machine.]
Вікіпедія, Українська, Україна, книга, книги, бібліотека, стаття, читати, завантажити, безкоштовно, безкоштовно завантажити, mp3, відео, mp4, 3gp, jpg, jpeg, gif, png, малюнок, музика, пісня, фільм, книга, гра, ігри, мобільний, телефон, android, ios, apple, мобільний телефон, samsung, iphone, xiomi, xiaomi, redmi, honor, oppo, nokia, sonya, mi, ПК, web, Інтернет
Bulo zaproponovano priyednati cyu stattyu abo rozdil do Sharnir teoriya grafiv ale mozhlivo ce varto dodatkovo Propoziciya z travnya 2016 Cya stattya ye sirim perekladom z inshoyi movi Mozhlivo vona stvorena za dopomogoyu mashinnogo perekladu abo perekladachem yakij nedostatno volodiye oboma movami Bud laska dopomozhit polipshiti pereklad berezen 2016 V teoriyi grafiv dvozv yaznij komponent takozh vidomij yak blok abo 2 priyednanij komponent ye maksimalnim dvozv yaznim pidgrafom Bud yakij zv yaznij graf rozpadayetsya v derevo dvozv yaznih komponentiv zvanih blok dereva grafu Bloki skripleni odin z odnim v zagalnih vershinah zvanih zrizani vershini abo tochki sharnirnogo z yednannya Zokrema skorochenna vershina ye bud yaka vershina vidalennya yakoyi zbilshuye chislo pidklyuchenih komponentiv Kozhen kolir vidpovidaye dvohzv yaznomu komponentu Bagatobarvni vershini ye virizanimi vershinami i takim chinom nalezhat do dekilkoh dvohzv yaznih komponentiv AlgoritmLinijna glibina chasu pershij poshuk Klasichnij en dlya obchislennya dvozv yaznih komponentiv v zv yaznij neoriyentovanij graf bulo obumovleno Dzhonom Hopkroftom i Robertom Tar yanom 1973 Vin pracyuye za linijnij chas a takozh gruntuyetsya na poshuku v glibinu Cej algoritm takozh zmalovannij yak problema 22 2 Vvedennya v Algoritmi yak 2 go i 3 go vidannya Ideya polyagaye v tomu shob zapustiti poshuk v glibinu zberigayuchi pri comu nastupnu informaciyu glibina kozhnoyi vershini v glibinu pershogo dereva poshuku yak tilki jogo vidvidali i dlya kozhnoyi vershini V najmensha glibina susidiv vsih nashadkiv V v glibinu pershogo dereva poshuku nazivayetsya nizkoyu tochkoyu Glibina ye standartnoyu pid chas poshuku v glibinu Nizka tochka V mozhe buti obchislena pislya vidviduvannya vsih nashadkiv V tobto bezposeredno pered tim ya V bude vishtovhnene z glibini pershogo poshuku yak minimum glibini V glibina vsih susidiv V krim batka V v glibini pershogo dereva poshuku i nizka tochka vsih ditej V v glibinu pershogo dereva poshuku Klyuch u tomu sho nekoreneva vershina v ye zrizannoyu vershinoyu abo tochkoyu artikulyaciyi sho rozdilyaye dva dvohzv yaznih komponenti todi i tilki todi koli ye ditina Y z V taka sho nizka tochka Y glibina V Cyu vlastivist mozhna bude pereviriti yak tilki poshuk v glibinu povernuvsya z kozhnoyi ditini V tobto bezposeredno pered tim yak V vishtovhnetsya z glibini pershogo poshuku i yaksho ce pravda V vidokremit graf na rizni dvohzv yazni komponenti Ce mozhe buti predstavleno za dopomogoyu obchislennya odnogo dvohzv yaznogo komponenta z kozhnogo takogo Y komponent yakij mistit Y bude mistiti pidderevo Y plyus V a potim vidalit pidderevo Y z dereva Koreneva vershina povinna buti obroblena okremo ce zrizana vershina todi i tilki todi koli vona maye po hocha b dvoh ditej Takim chinom dosit prosto pobuduvati odin komponent z kozhnogo dochirnogo piddereva marshrutu vklyuchayuchi korin Psevdokod GetArticulationPoints i d visited i true depth i d low i d childCount 0 isArticulation false for each ni in adj i if not visited ni parent ni i GetArticulationPoints ni d 1 childCount childCount 1 if low ni gt depth i isArticulation true low i Min low i low ni else if ni lt gt parent i low i Min low i depth ni if parent i lt gt null and isArticulation or parent i null and childCount gt 1 Output i as articulation point Inshi algoritmi Prosta alternativa vishe predstavlennogo algoritmu vikoristovuye yaki predstavlyayut soboyu specialni rozkladalni vuha v zalezhnosti vid DFS derev 2 Lancyugovi rozkladannya mozhut buti obchisleni za linijnij chas cim pravilom peremishennya Nehaj S rozkladannya lancyuga G Todi G ye 2 vershinnim zv yazkovim todi i tilki todi koli G maye minimalnu stupin 2 i C1 ye yedinim ciklom v S Ce daye vidrazu test 2 zv yaznist v linijnij chas i mozhe buti prodovzhenij perelichiti vsi zrizani vershini G v linijnomu chasu vikoristovuyuchi nastupnu zayavu vershina v v zv yazkovomu grafi G z minimalnim stupenem 2 ye rozrizom vershina todi i tilki todi koli v padaye na mostu abo V ye persha vershina cikl v s S1 Spisok zrizanih vershin mozhe buti vikoristanij dlya stvorennya blok CUT derevo G v linijnomu chasu V internet versiyi cogo zavdannya vershini i rebra dodayutsya ale ne vidalyayutsya dinamichno a struktura danih povinna pidtrimuvati dvuzv yazni komponenti i Robert Tar yan 1992 rozrobili efektivnu strukturu danih dlya cogo zavdannya zasnovanu na neperesichnomu nabori struktur danih Zokrema vin obroblyaye n vershin dopovnennya i m krajovih dopovnenn v O m a m n de a ye zvorotneyu funkciyeyu Akkermana en i Robert Tar yan 1985 rozrobili paralelnij algoritm na CRCW PRAM yakij pracyuye v O log n z m n procesorami Guojing Cong i en 2005 rozrobili algoritm yakij dosyagaye v priskorennya u 5 raziv z 12 procesorami na MSS Priskorennya sho perevishuyut 30 na osnovani na algoritmi Tarjan Vishkin buli rozrobleni James A Edwards ta Uzi Vishkin 2012 Pov yazani strukturiStavlennya ekvivalentnosti Mozhna viznachiti binarne vidnoshennya na krayah dovilnogo neoriyentovanogo grafu vidpovidno do yakogo dva rebra E i F pov yazani todi i tilki todi koli abo E F abo graf mistit prostij cikl yak cherez E i F Kozhne rebro maye vidnoshennya do sebe a rebro E pov yazano z inshim krayem F todi i tilki todi koli F pov yazana takim zhe chinom yak i E ce tranzitivne stavlennya yaksho isnuye prostij cikl sho mistit rebra E i F i she odin prostij cikl sho mistit rebra F i G to mozhna ob yednati ci dva cikli shob znajti prostij cikl cherez E i F Takim chinom ce vidnoshennya ekvivalentnosti i vono mozhe buti vikoristano dlya podilu krayu na klasi ekvivalentnosti pidmnozhini reber z takoyu vlastivistyu sho dva rebra pov yazani odne z odnim yaksho i tilki yaksho voni nalezhat do odnogo klasu ekvivalentnosti Pidgrafi utvoreni rebrami v kozhnomu klasi ekvivalentnosti ye dvozv yaznimi komponentami danogo grafu Takim chinom dvozv yazni komponenti rozbivayut rebra grafu prote voni mozhut vikoristovuvati spilni vershini odine z odnogo Blok graf Blok graf zadanogo grafu G ye grafom peretiniv jogo blokiv Takim chinom vin maye odnu vershinu dlya kozhnogo bloku G a rebro mizh dvoma vershinami koli vidpovidni dva bloki mayut zagalnu vershinu Graf N ye blok diagramoyu inshogo grafu G koli vsi bloki H ye povnimi pidgrafami Grafi H z ciyeyu vlastivistyu vidomi yak blok grafi 8 Blok dereva virizati Zrizana tochka zrizani vershini abo artikulyaciya grafu G ye vershinoyu yaka podilyayetsya na dva abo bilshe blokiv Strukturu blokiv i zrizanih tochok grafu mozhna opisati za dopomogoyu dereva yake nazivayetsya zrizanim derevom abo BC derevom Ce derevo maye vershinu dlya kozhnogo bloku i dlya kozhnoyi tochki z yednannya danogo grafu Isnuye rebro v zrizanomu derevi dlya kozhnoyi pari bloku i artikulyacijnoyi tochki sho nalezhit do cogo bloku Div takozh en Mist teoriya grafiv PrimitkiHopcroft J Tarjan R 1973 Algorithm 447 efficient algorithms for graph manipulation Communications of the ACM 16 6 372 378 doi 10 1145 362248 362272 Schmidt 2013 A Simple Test on 2 Vertex and 2 Edge Connectivity Information Processing Letters 113 7 241 244 doi 10 1016 j ipl 2013 01 016 Westbrook J Tarjan R E 1992 Maintaining bridge connected and biconnected components on line Algorithmica 7 433 464 doi 10 1007 BF01758773 Tarjan R Vishkin U 1985 An Efficient Parallel Biconnectivity Algorithm 14 4 862 874 doi 10 1137 0214061 Guojing Cong and David A Bader 2005 An Experimental Study of Parallel Biconnected Components Algorithms on Symmetric Multiprocessors SMPs Proceedings of the 19th IEEE International Conference on Parallel and Distributed Processing Symposium s 45b doi 10 1109 IPDPS 2005 100 Edwards J A Vishkin U 2012 Better speedups using simpler parallel programming for graph connectivity and biconnectivity Proceedings of the 2012 International Workshop on Programming Models and Applications for Multicores and Manycores PMAM 12 s 103 doi 10 1145 2141702 2141714 ISBN 9781450312110 Tarjan ta Vishkin 1985 credit the definition of this equivalence relation to Harary 1969 however Harary does not appear to describe it in explicit terms Harary Frank 1969 Graph Theory Addison Wesley s 29 Harary 1969 p 36 PosilannyaThe tree of the biconnected components Java implementation 29 kvitnya 2011 u Wayback Machine in the jBPT library see BCTree class C implementation of Biconnected Components 20 listopada 2016 u Wayback Machine