Vitajte na [www.pocitac.win] Pripojiť k domovskej stránke Obľúbené stránky
susedná sada je spôsob, ako reprezentovať štruktúru grafu. Pre každý vrchol (uzol) v grafe obsahuje súprava susedstva všetky vrcholy, ku ktorým je priamo pripojená (jeho susedia). Inými slovami, ide o množinu obsahujúcu všetky vrcholy susediace s daným vrcholom.
Formálna definícia:
Pre graf G =(v, e), kde v je sada vrcholov a e je množina hrán, je súprava susednej sady vrcholu * v * ∈ V, označená ako adj (v), definovaná ako:
Adj (v) ={u ∈ V | (v, u) ∈ E}
Príklad:
Zvážte jednoduchý nepriamy graf s vrcholmi A, B, C a D a hrany:
* (A, b)
* (A, c)
* (B, c)
* (C, d)
Sada susedných síl pre každý vrchol by bola:
* Adj (a) ={b, c}
* Adj (b) ={a, c}
* Adj (c) ={a, b, d}
* Adj (d) ={c}
Setting Set vs. Zoznam susedstva:
Aj keď je podobný v koncepcii, je rozhodujúce pre odlíšenie susediacej súpravy od zoznamu susediacich.
* Sada susediacich: Používa set Dátová štruktúra pre každý vrchol, čo naznačuje žiadny poriadok medzi susedmi a zabezpečenie každého suseda sa objaví iba raz. To je ideálne, keď objednávka nie je dôležitá a chcete efektívne testovanie členstva (napr. Kontrola, či je vrchol „x“ susedom „y“). Medzi rovnakými dvoma vrcholmi (Multigraf) nemôžete ukladať viac hrán.
* Zoznam susedstva: Používa zoznam Štruktúra dát pre každý vrchol, čo umožňuje usporiadanie susedov a potenciálne sa objaví viackrát (predstavuje viac hrán medzi rovnakými vrcholmi). Je flexibilnejší, ale nemusí byť tak efektívny pre testovanie členstva, ak sa potrebujete vyhnúť duplikátom.
Výhody použitia súprav susedstva:
* Efektívne testovanie členstva: Kontrola, či je vrchol * u * susedom vrcholu * V * (t.
* jednoduché znázornenie: Ľahko pochopiteľné a implementovateľné.
* Žiadne duplikáty: Podľa definície nemôže sada obsahovať duplicitné prvky.
Nevýhody používania sady susedstva:
* Poradie nie je zachované: Poradie, v ktorom sú uložení susedia, nie je zaručené.
* Vesmírna zložitosť: Môže využívať viac priestoru ako alternatívne reprezentácie, ako sú matice susedstva, najmä pre riedke grafy. V najhoršom prípade (kompletný graf) je zložitosť priestoru o (| v | * | v |).
* nie je vhodné pre viacnásobné: Nemôže predstavovať viac hrán medzi rovnakými dvoma vrcholmi.
Pri určovaní konektivity siete zohrávajú významnú úlohu, pretože výslovne definujú priame spojenia medzi vrcholmi. Na základe týchto pripojení môžeme odvodiť rôzne vlastnosti pripojenia:
1. určovanie pripojených komponentov: Prechádzaním grafu pomocou súprav susedstva môžeme identifikovať pripojené komponenty. Pripojený komponent je podgraf, kde je každý vrchol dosiahnuteľný z každého ostatného vrcholu v tomto podgrafe. Algoritmy, ako je hĺbka prvé vyhľadávanie (DFS) alebo vyhľadávanie na prvom šírke (BFS), sa dajú efektívne implementovať pomocou adacency set na preskúmanie grafu a identifikáciu týchto komponentov. Ak má graf iba jeden pripojený komponent, znamená to, že graf je pripojený.
2. Výpočet najkratších ciest: Algoritmy, ako je algoritmus Dijkstra alebo BFS, sa dajú použiť so súbormi susedných síl na nájdenie najkratších ciest medzi akýmikoľvek dvoma vrcholmi. Tieto algoritmy sa spoliehajú na skúmanie susedov vrcholu (poskytovaného v súprave susediace), aby objavili cesty.
3. detekčné cykly: DF sa môžu použiť so súbormi susediacich na detekciu cyklov v grafe. Sledovaním vrcholov, ktoré sú v súčasnosti v zásobníku rekurzie, môžeme identifikovať zadné hrany, ktoré označujú prítomnosť cyklov.
4. Kontrola bipartitívnosti: Na určenie, či je graf bipartit, môžeme použiť súprav susedstva v spojení s algoritmami sfarbenia grafov (napr. Použitie DFS alebo BFS). Bipartitný graf je ten, kde je možné vrcholy rozdeliť na dve disjunktné sady tak, aby každá hrana spája vrchol v jednom nastavení do vrcholu v druhej sade.
5. Posúdenie robustnosti/odolnosti: Súpravy susedstva nám umožňujú analyzovať, ako odstránenie určitých vrcholov alebo hrán ovplyvňuje pripojenie siete. Môžeme simulovať tieto odstránenia a potom znovu zabezpečiť pripojené komponenty, aby sme zistili, či sa sieť fragmentuje.
v súhrne:
Súpravy susedstva poskytujú zásadný spôsob, ako reprezentovať grafové vzťahy. Vďaka ich efektívnosti pri vyhľadávaní susedov z nich robí cenný nástroj pre rôzne algoritmy grafov, ktoré sú rozhodujúce pre porozumenie a analýzu pripojenia siete. Umožňujú nám určiť, či sú vrcholy dosiahnuteľné navzájom, nájdu cesty medzi vrcholmi, identifikujú pripojené komponenty a vyhodnotia celkovú konektivitu a odolnosť siete. Aj keď majú obmedzenia týkajúce sa multigrafov a potenciálneho využitia priestoru, zostávajú silnou a široko používanou reprezentáciou pre mnoho problémov súvisiacich s grafom.