From Wikipedia, the free encyclopedia
Минимално разапињуће стабло је разапињуће стабло неког повезаног, тежинског и неусмереног графа које садржи све чворове тог графа, а збир тежина његових грана је минималан.
Један граф може имати више оваквих стабала, зависно од своје конфигурације. Уколико свакој грани доделимо одређену тежину онда је збир тежина грана у неком разапињућем стаблу у ствари тежина тог стабла. Минимално разапињуће стабло или минимално тежинско разапињуће стабло је разапињуће стабло чија је тежина мања или једнака у односу на остала разапињућа стабла неког графа. Уопштеније, сваки неусмерен граф (не нужно повезан) има минималну разапињућу шуму, која је унија минималних разапињућих стабала.
Постоји доста случајева када се користе минимална разапињућа стабла. Типичан проблем који се везује за ово стабло је достављање услуга телекомуникационе компаније на више локација на што исплатљивији начин. Ако се претпостави да се каблови закопавају дуж одређених путева (нпр. дуж коловоза) онда бисмо могли направити граф који представља које локације су повезане тим путевима. Неки од путева су дужи, или захтевају да каблови буду дубље закопани, због чега су и скупљи; ти путеви су представљени гранама веће тежине. Тежина гране одговара трошковима постављања каблова - није неопходно да се дужине грана придржавају правила геометрије као што је неједнакост троуглова. Разапињуће стабло тог графа је подскуп оних путева који не образују циклус, а ипак повезују све локације; могуће је да постоји неколико разапињућих стабала. Минимално разапињуће стабло је оно разапињуће стабло које има најмању тежину, односно чији је трошак постављања каблова најмањи.
Могуће је да у неком графу постоји неколико минималних разапињућих стабала исте тежине са минималним бројем грана; посебно, ако су све гране задатог графа исте тежине, онда је свако разапињуће стабло тог графа минимално.
Ако граф има чворова, тада свако разапињуће стабло има грана.
Уколико свака грана има различиту тежину, тада граф садржи само једно јединствено минимално разапињуће стабло. Ово је најчешћи случај у реалним ситуацијама, као што је горенаведени пример телекомуникационе компаније, где је мало вероватно да два пута сносе потпуно исте трошкове. Општије гледано ово важи и за разапињуће шуме.
Ако тежине грана нису јединствене, онда је само мултискуп тежина у минималном разапињућем стаблу јединствен, то је заједничко за сва минимална разапињућа стабла.[1]
Доказ:
Ако су све тежине позитивне тада је минимално разапињуће стабло у ствари подграф минималне тежине који садржи све чворове, како подграфови садрже циклусе углавном су и веће тежине.
За сваки циклус у неком графу важи да ако је грана која се налази у циклусу веће тежине од свих других грана тог циклуса, онда та грана не може припадати минималном разапињућем стаблу.
Доказ: Претпоставимо супротно, тј. да припада минималном разапињућем стаблу . Тада брисањем гране се дели на два подстабла код којих се један крај гране налази у једном, а други крај у другом подстаблу. Остатак циклуса поново повезује подстабла, пошто постоји грана из која има крајеве у различитим подстаблима, тј. она поново повезује подстабла у стабло тежине мање него , јер је тежина мања од тежине .
За сваки одсечак из неког графа важи да ако је тежина гране (која се налази у том одсечку ) стриктно мања од тежина свих грана из тог одсечка, онда та грана припада свим минимално разапињућим стаблима тог графа.
Ако је грана јединствена грана минималне тежине неког графа, онда се она налази у свим минималним разапињућим стаблима тог графа.
Доказ: Претпоставимо да се не налази у минималном разапињућем стаблу, тада уклањањем било које гране (веће тежине) из циклуса који је формиран након што је грана додана у минимално разапињуће стабло се формира ново разапињуће стабло мање тежине.
Ако је стабло састављено од грана из минималног разапињућег стабла, онда можемо контраховати у један чвор док одржавамо инваријанту да минимално разапињуће стабло контрахованог графа заједно са даје минимално разапињуће стабло графа пре контракције.
У свим алгоритмима испод представља број грана у графу док представља број чворова.
Први алгоритам за тражење минималног разапињућег стабла је развио Чешки научник Отакар Борувка 1926. године (видети Борувкин алгоритам). Његова сврха је била изградња електричне мреже за Моравску. Алгоритам се извршава у неколико фаза. У свакој фази, названој Борувкин корак, идентификује се шума која се састоји од грана инцидентних са сваким чвором у графу , затим формира граф као улаз у следећем кораку. Овде означава граф добијен од одсецањем грана у (Особина одсецања). Сваки Борувкин корак је линеарне сложености. Пошто је број чворова редукован за барем половину у сваком кораку, Борувкин алгоритам је сложености .
Други алгоритам је Примов алгоритам, који је 1930. године изумео Војтех Јарник, а касније независно од њега информатичар Роберт Прим 1957, и поново Едсгер Дајкстра 1959. Алгоритам постепено повећава величину стабла почевши од једног чвора, док не повеже све чворове. Сложеност Примовог алгоритма је ) или у зависности од структуре података која се користи.
Трећи алгоритам који се често користи је Крускалов алгоритам који такође има сложеност .
Четврти не тако често коришћен алгоритам је Алгоритам обрнутог брисања који је супротан Крускаловом алгоритму. Његова сложеност је .
Сва четири алгоритма спадају у похлепне алгоритме.
Неколико истраживања су покушала да пронађу више рачунски-ефикаснијих алгоритама.
У моделу поређења, у ком су једине дозвољене операције над тежинама грана операције поређење парова, Каргер, Клејн и Тарџан 1995. године пронашли су насумични алгоритам у линеарном времену базиран на комбинацији Борвукиног алгоритма и алгоритма обрнутог брисања.[2][3]
Најбржи ненасумични базиран на поређењу алгоритам са познатом сложеношћу направљен од стране Бернард Шазела је базиран на приближном приоритету софт хипа.[4][5] Његово време извршавања је , где представља класичну инверзну функцију Акерманове функције. Функција расте екстремно споро, тако да се за све практичне сврхе може посматрати као константа не већа од 4; стога је Шазелов алгоритам веома близу линеарне сложености.
Ако је граф густ тј. , oнда Фредманов и Тарџанов детерминистички алгоритам проналази минимално разапињуће стабло за време .[6] Алгоритам извршава низ фаза. Свака фаза извршава Примов алгоритам много пута, сваки пут за ограничен број корака. Време извршавања сваке фазе је . Ако је број чворова пре извршавања фазе , онда је број чворова након извршавања фазе . Стога је потребно да се изврши највише фаза, што нам даје линеарно време извршавања за густе графове.
Постоје и други алгоритми који раде са густим графовима.[7]
Ако је тежина гране цео број представљен у бинарном запису, онда је познато да детерминистички алгоритми решавају проблем у целобројних операција. Иако се проблем може решити детерминистички за општи граф у линеарној сложености, за алгоритме базиране на поређењу то остаје отворено питање.
За задат граф код кога су чворови и гране фиксиране али је тежина непозната, могуће је конструисати бинарно стабло одлучивања за рачунање минималног разапињућег стабла за било коју пермутацију тежина. Сваки унутрашњи чвор из стабла одлучивања садржи поређење између две гране, нпр. „ Да ли је тежина гране између чворова и већа од тежине гране између чворова и ?“. Два детета чвора одговарају одговорима „да“ или „не“. У сваком листу стабла одлучивања постоји листа грана која одговара минималном разапињућем стаблу. Сложеност извршавања стабла одлучивања једнака је највећем броју упита потребним да се нађе минимално разапињуће стабло, што је у ствари дубина стабла одлучивања. Стабло одлучивања за граф је оптимално ако има најмању дубину у односу на сва исправна стабла одлучивања из графа .
За сваки цео број , могуће је пронаћи оптимална стабла одлучивања за све графове са чворова, помоћу исцрпне претраге.
Да бисмо проверили да ли је стабло одлучивања исправно, потребно је проверити га за све могуће пермутације тежина грана.
Стога, укупно време које је потребно да се пронађе оптимално стабло одлучивања за све графове са чворова износи: што је мање од: .
Сетх Петит и Виџаја Рамачандран су пронашли оптимални детерминистички базиран на компарацији алгоритам који проналази минимално разапињуће стабло. У наставку је описан поједностављен приказ алгоритма.
Време извршавања свих корака у алгоритму је , изузев корака где се користе стабла одлучивања. Ми не знамо време извршавања овог корака, али знамо да је оптимално - ниједан алгоритам не може дати бољи резутат од оптималног стабла одлучивања.
Према томе, овај алгоритам има чудну особину да је доказиво оптималан иако је његова сложеност непозната.
При истраживању проблема минималног разапињућег стабла узети су у обзир и паралелни алгоритми. Са линеарним бројем процесора могуће је решити овај проблем за времена. Бадер и Чонг 2006. године су демонстрирали алгоритам који може да пронађе минимална разапињућа стабла 5 пута брже на 8 процесора него оптимизовани секвенцијални алгоритам.
Остали специјализовани алгоритми дизајнирани за налажење минималног разапињућег стабла су толико велики да већим делом морају бити чувани на диску све време. Ови алгоритми са спољашњим складиштењем, као на пример они који су описани у раду „Конструкција алгоритма за проналажење минималног разапињућег стабла који користи екстерну меморију“ од Романа Дементијева могу, се извршавати, како аутор тврди, 2 до 5 пута спорије него традиционални алгоритми који користе унутрашњу меморију. Они се ослањају на ефикасно спољашње сортирање и на контракцију графа - технику за ефикасно смањење величине графа.
Проблему се такође може приступити помоћу расподељеног израчунавања. Ако се сваки чвор посматра као рачунар и ниједан чвор не зна ништа сем веза са којима је повезан, један сигурно може пронаћи дистрибуирано минимално разапињуће стабло.
Алан М. Фриз је показао да задат комплетан граф са чворова, који има гране чије су тежине независне идентично распоређене случајне променљиве са функцијом расподеле задовољава , и како прилази +∞ очекивана тежина минималног разапињућег стабла се приближава , где представља Риманову зета-функцију. Фриз и Стил су такође доказали конвергенцију у вероватноћи. Сванте Јансон је доказао централну граничну теорему за тежину минималног разапињућег стабла.
За насумично одабране тежине из интервала ,тачна очекивана величина минималног разапињућег стабла је израчуната за мале комплетне графове.
Чворови | Очекивана величина | Приближна очекивана величина |
---|---|---|
2 | 1 / 2 | 0.5 |
3 | 3 / 4 | 0.75 |
4 | 31 / 35 | 0.8857143 |
5 | 893 / 924 | 0.9664502 |
6 | 278 / 273 | 1.0183151 |
7 | 30739 / 29172 | 1.053716 |
8 | 199462271 / 184848378 | 1.0790588 |
9 | 126510063932 / 115228853025 | 1.0979027 |
Seamless Wikipedia browsing. On steroids.
Every time you click a link to Wikipedia, Wiktionary or Wikiquote in your browser's search results, it will show the modern Wikiwand interface.
Wikiwand extension is a five stars, simple, with minimum permission required to keep your browsing private, safe and transparent.