Coeden rhychwantu leiaf
Coeden rhychwantu leiaf yw is-set ymylon o graff gysylltiedig anghyfeiriedig gyda phwysau ymylon. Y goeden rhychwantu leiaf yw'r set ymylon sy'n cysylltu pob un o'r fertigau i'w gilydd, heb gylchredau, sydd â chyfanswm pwysau ymyl lleiaf posib. Mae gan bob graff (nid yn anghenrheidol yn gysylltiedig) anghyfeiriedig gyda phwysau ymylon goedwig rychwantu leiaf, hynny undeb y coed rhychwantu lleiaf pob un o'i gydrannau cysylltiedig.[1]
Mae nifer o ddefnyddiau ar gyfer coed rhychwantu lleiaf. Un enghraifft fyddai cwmni telathrebu sy'n ceisio gosod cebl mewn cymdogaeth newydd. Os gall y cwmni ond gladdu'r cebl ar hyd rhai llwybrau yn unig (ee ffyrdd), yna mae gan ryw graff fertigau (ee tai) wedi'u cysylltu gan y llwybrau hynny. Efallai bydd gosod ceblau ar hyd rhai o'r llwybrau'n ddrytach, oherwydd eu bod yn hirach, neu'n mae angen eu claddu'n ddyfnach; byddai'r llwybrau hyn yn cael eu cynrychioli gan ymylon â phwysau mwy. Does dim gofyniad i hyd ymyl ufuddhau i reolau geometreg arferol megis yr anhafaledd triongl . Byddai coeden rhychwantu ar gyfer y graff hwn yn is-set o'r llwybrau hynny heb gylchredau sy'n cysylltu pob tŷ; efallai y bydd sawl coeden rychwantu yn bosibl. Y goeden rhychwantu leiaf yw'r un gyda'r cyfanswm cost isaf, sy'n cynrychioli'r llwybr lleiaf drud ar gyfer gosod y cebl.
Priodweddau
golygu- Os oes gan graff n fertig, yna mae gan bob coeden rhychwantu n − 1 ymyl.
- Efallai bod sawl coeden rhychwantu leiaf gyda'r un cyfanswm pwysau.
- Os oes gan bob ymyl pwys unigryw, yna ond un goeden rhychwantu leiaf sy'n bodoli.[2]
- Os yw pwysau pob ymyl yn bositif, yna'r goeden rhychwantu leiaf yw'r is-graff cost leiaf.
Algorithm Kruskal
golyguUn algorithm barus ar gyfer canfod coeden rhychwantu leiaf graff yw algorithm Kruskal.[3] Camau'r algorithm yw:
- Ystyriwch y set of fertigau'r graff fel graff sydd â dim ymylon, hynny yw cydran gysylltiedig wahanol ar gyfer pob fertig.
- Rhestrwch yr ymylon yn nhrefn eu pwysau. Mae'r rhain yn aros mewn ciw gyda'r ymyl â'r pwysau lleiaf ar flaen y ciw.
- Tra bod gan mwy nag un gydran gysylltiedig cymerwch yr ymyl ar flaen y ciw. Os yw ychwanegu'r ymyl hyn i yn cyfuno dwy gydran gysylltiedig (hynny yw ddim yn achosi cylchred), ychwanegwch yr ymyl hyn i . Fel arall symudwch ymlaen i'r ymyl nesaf yn y ciw.
Algorithmau eraill gellir eu defnyddio yw algorithm Borůvka[4], ac algorithm Prim[5].
Cyfeiriadau
golygu- ↑ Bollobas, Bela (6 Rhagfyr 2012). Graph Theory: An Introductory Course (yn Saesneg). Springer Science & Business Media. ISBN 978-1-4612-9967-7.
- ↑ "Do the minimum spanning trees of a weighted graph have the same number of edges with a given weight?". cs.stackexchange.com. Cyrchwyd 4 Ebrill 2018.
- ↑ "Kruskal's Algorithm". www-m9.ma.tum.de. Archifwyd o'r gwreiddiol ar 2019-10-02. Cyrchwyd 2019-12-08.
- ↑ Pettie, Seth; Ramachandran, Vijaya (2002), "An optimal minimum spanning tree algorithm", Journal of the Association for Computing Machinery 49 (1): 16–34, doi:10.1145/505241.505243, MR 2148431, https://web.eecs.umich.edu/~pettie/papers/jacm-optmsf.pdf.
- ↑ "Prim's Algorithm". www-m9.ma.tum.de. Archifwyd o'r gwreiddiol ar 2019-10-02. Cyrchwyd 8 Rhagfyr 2019.