Rezumat: Construcția arborelui minim se întinde a graficului: algoritmul lui Kruskal. Problema labirint și de a găsi o adâncime a unui graf neorientat. Găsirea cele mai scurte cai dintr-o singură sursă: Algoritmul Dijkstra
Construcția arborelui minim se întinde
În multe probleme într-un anumit grafic este necesar să se aloce o parte a poseda o proprietate.
Definiția 11.1. Count G1 = (V1, E1) numit un subgraf al lui G = (V, E). în cazul în care.
Pentru grafice conectate neorientate cu una dintre cele mai interesante clase sunt subgrafurilor copaci, păstrând conectivitatea noduri. Ele sunt numite nuclee. se întinde copac. carcase sau schelete grafic.
Definiția 11.2. Schelet (nedirijate) graf conectat G = (V, E) se numește subgraf S = (V, T). un copac.
Să o funcție C: E -> R. atribuit fiecare margine valoarea (Greutate Lungime.) (R - set de numere reale). Apoi, valoarea c (S) lemnul S este definit ca suma valorilor tuturor marginilor sale, și anume, .
Arborele minim se întinde este numit scheletul unui cost minim.
Astfel, arborele minim se întinde - este cel mai mic sistem (scurt) de trasee care leagă toate nodurile G.
Să ne descrie procedura de construire a arborelui minim Spanning. J. propus. Kruskal în 1956.
Vom dovedi că acest algoritm este corect.
Teorema 11.1. MinOstov algoritm construiește un schelet minim al graficului de intrare G = (V, E).
Dovada: Lăsați rezultatul MinOstov pe un grafic G = (V, E) este un grafic S = (V, T). Menționăm în primul rând că S este un copac. Într-adevăr, absența ciclurilor din definiția Ti seturi. Să presupunem că S nu este conectat. Apoi, trebuie să existe două noduri care nu sunt accesibile unul de altul în S. Dar G este conectat, astfel încât există o cale de la u la v. Apoi, pe drum au neapărat o margine, care este conectat la un capăt al unei prin cu u în graficul S. și al doilea capăt b - nr. Dar, apoi, în etapa i ei de margine trebuie să intre în Ti. întrucât adăugarea acestuia nu formează o buclă. Prin urmare, S este conectat grafic.
Noi acum arata ca un copac S are un cost minim. Fie T = 1. dk. dn-1> - ordonarea marginilor valorii T.
Arătăm prin inducție la k = 1. (N-1). că există un copac minim se întinde. cuprinzând coaste d1. dk.
Fie S '= (V, T') - schelet minim. în care (k-1) marginile cu costuri minime coincid cu muchiile T. adică comanda toate marginile sale are forma: T „= 1 = d1. fk-1 = dk-1. fk. fn-1> și. Să dk = (u, v). T „există o anumită cale de p de la u la v. care nu conține nici o muchie dk. În acest fel, suntem obligați să avem o anumită margine f = (u „“). Nu a lovit T. T altfel ar forma un ciclu. Din T de construcție, care c (dk) <= c(f). Рассмотрим граф . Очевидно, что этот граф является остовным деревом. Действительно, связь между u' и v' сохранилась, так как в S'' имеется путь. . Поэтому S'' - связный граф. Если бы в S'' был цикл, то он обязательно включал бы ребро dk. Но тогда часть этого цикла без ребра dk образовывала бы путь p' между u в v. не совпадающий с путем p. Следовательно, в дереве T' было бы два разных пути между u в v. что невозможно, так как тогда в T' был бы цикл. Отсюда заключаем, что в S'' циклов нет и S'' - остовное дерево. Его стоимость c(S'')= c(S') - c(f) + c(dk ) <= c(S'). Так как S' - минимальный остов. то c(S'')=c(S') и S'' - тоже минимальный остов. у которого с S имеется k общих ребер: d1. dk .
Apoi, pentru k = n-1, care S - minim spanning copac.
Exemplul 11.1. Să considerăm G. grafic încărcat prezentat în Fig. 11.1.