grafic copac numit finit conectat cu un dedicat Vers-bus (rădăcină) care nu are vârfuri ale ciclurilor grafic - arbore sunt numite noduri.
Un arbore de acoperire al unui graf neorientat conectat - aciclic subgrafic conectat a graficului, care include toate nodurile. Informal vorbind, se întinde copac constă dintr-un subset de marginile graficului, astfel încât fiecare nod al graficului, puteți ajunge la orice alt nod, se deplasează la aceste margini și nu există cicluri, adică de la orice nod nu poate intra în sine, fără a merge unele margine de două ori.
Conceptul de pădure se întinde este ambiguă, ea poate fi înțeles de către una dintre următoarele subgrafurilor: orice subgraf aciclic, nu este conectat în mod necesar; un grafic neconectat - subgrafic compusă din asociații de copaci care acoperă pentru fiecare dintre componentele sale conectate.
Spanning copac este, de asemenea, denumite uneori ca arbore de acoperire, scheletul sau grafic scheletic. Orice proprietăți ale arborelui se întinde într-un grafic cu n noduri conține exact n - 1 margine. Numărul de arbori se întinde într-un grafic complet la n vârfuri exprimate Cayley formula celebru: In cazul general, numărul de arbori se întinde într-o coloană arbitrară poate fi calculată prin utilizarea așa-numita teorema lui Kirchhoff. Algoritmi. 1) Un arbore de acoperire pot fi construite în practic orice algoritm parcurgeri grafic, cum ar fi căutarea adâncimea sau lățime prima căutare. Se compune din toate perechile de muchii (u, v), astfel încât algoritmul detectează căutarea nod u în lista de adiacenta de noi și anterior nedetectate de top v.
1. Caută în glubinu- una dintre metodele de grafic traversal. Algoritmul de căutare este descrisă după cum urmează: pentru fiecare vârfuri unclimbed nevoie pentru a găsi toate nu este trecut adiacent de sus și repetați căutarea pentru ei.
2. Căutare în workaround shirinu- și dispunerea de noduri. Breadth first se efectuează în următoarea ordine: top by-pass s atribuit eticheta 0, nodurile adiacente acesteia - eticheta 1. Apoi, mediul considerat alternativ toate nodurile etichetate 1 și fiecare dintre membrii acestor vârfuri din jur atribuiți o etichetă 2 etc. Dacă .. graficul original este conectat, breadth prima căutare va marca toate nodurile sale. tip Arc (i, i + 1) generează circuit liber se întinde digraph conținând ca o parte a arborelui său direcționat întinde numit arbore de căutare. Este ușor de observat că, cu ajutorul de căutare în lățime poate fi, de asemenea, numerotate de numere care încep cu vârf marca de top 1, apoi marcați 2 și așa mai departe. D.
2) arbore de acoperire construit în traversării grafic algoritmul Dijkstra, pornind de la S de sus, au proprietatea că cea mai scurtă cale în graficul de la s la orice alt nod - un (unic) calea de la s la acest nod din arborele de acoperire construit.
3) Există, de asemenea, o serie de algoritmi paraleli și distribuite pentru a găsi arborele de acoperire. Ca un exemplu practic al algoritmului distribuit poate duce la STP. Spanning Tree Protocol - protocol de rețea care rulează pe al doilea strat al modelului OSI.
Bazat pe algoritmul omonim, care este dezvoltator de „Mamă a Internetului“ - Radya Perlman. Obiectivul principal este de a aduce rețeaua Ethernet STP cu conexiuni multiple la topologia arborelui, cu excepția ciclurilor de pachete. Acest lucru se întâmplă prin blocarea automată în exces în prezent conexiuni pentru porturi de conectivitate complete. Protocolul este descris în standardul IEEE 802.1D. Principiul de funcționare. Rețeaua selectează o punte rădăcină (Ing. Root Bridge). In plus, fiecare diferit de rădăcină, podul calculează calea cea mai scurtă la rădăcină. Portul corespunzător se numește portul rădăcină (Ing. Root Port). În orice comutator de bază non-root poate fi doar un singur port rădăcină! Apoi, pentru fiecare segment al rețelei este calculat calea cea mai scurtă la portul rădăcină. Podul prin care trece în acest fel, este atribuită această rețea (Ing. Designated Bridge). conectat direct la portul pod - portul de destinație. Urmatoarea pe toate osiile bloca toate porturile care nu sunt rădăcină și desemnate. Rezultatul este o structură de arbore (grafic matematic) cu vârful ca podul rădăcină.
Numărul muchiilor eliminate atunci când se construiește un grafic arbitrar întinde forestier G, denumit numărul cyclomatic (sau rang cyclomatic) graful G și este notat cu g (G) = m - n + k, unde: m - numărul de muchii; k - numărul de componente conexe ale graficului; n - numărul de noduri.
Teorema. numărul de coloană # 957; Se determină numărul de cicluri independente în ea.
Dovada este prin inducție.
Să presupunem că teorema este valabil și pentru numărul de muchii m, și arată că, atunci este valabil pentru m` = m + 1. Adăugați un grafic G altă muchie (a, b), atunci există două posibilități:
1. G a și b nodurile conectate printr-un lanț, în timp ce în graficul extins G „se adaugă la un alt ciclu, adică fie m '= m + 1, p' = p, # 957; = # 957; 1.
2. G vârfuri și un lanț b nu sunt legate, apoi în graficul extins scade G“cu unul numărul de componente conectate, adică m '= m + 1, p' = p -1, # 957; „= # 957;.
Pentru orice grafic efectuăm această procedură: se scoate din ea toate marginile, apoi le introduce unul câte unul. Pentru un grafic fără margini teorema este adevărată (numărul de cicluri și numărul de muchii este egal cu 0, numărul de noduri egal cu numărul de componente conectate). Fiecare margine nouă va duce la mai sus descrise două cazuri, și anume, va rula teorema.
În cazul în care coloana pentru a se potrivi rețeaua electrică, # 961; - numărul maxim de diferență de potențial independente între nodurile sale de rețea, # 957; - numărul de curenți circulare independente care pot apărea în rețea. Numărul Cyclomatic de copac este egal cu zero. Numărul Cyclomatic pădurii este suma numărului cyclomatic componentelor conectate de compozit - arbori și, prin urmare, de asemenea, zero. Pentru restul, gras, FOV numere cyclomatic - pozitive.
De exemplu, pentru un complet nodurile graf având și cinci nervuri 10 Numărul cyclomatic este v = 1 10 + - 5 = 6.