02.02.2015 Views

Graafid Kui ühendada elemendid omavahel viitadega vabamal kujul ...

Graafid Kui ühendada elemendid omavahel viitadega vabamal kujul ...

Graafid Kui ühendada elemendid omavahel viitadega vabamal kujul ...

SHOW MORE
SHOW LESS

You also want an ePaper? Increase the reach of your titles

YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.

<strong>Graafid</strong><br />

• märgistada, et tippu või kaart külastati<br />

• küsida, kas tippu või kaart on külastatud<br />

Graafi kohta saab mitmesugust infot küsida:<br />

• tippude arvu<br />

• kaarte arvu<br />

• ühe tipu naabreid<br />

• kas graaf on orienteeritud<br />

Ja graafis tuleb liikuda, st läbida tippe ja kaari mingis järjekorras.<br />

• kõigi kaarte läbimine üks kord (teatatakse kaarte kaalud, kui neid on)<br />

• kõigi tippude läbimine üks kord (teatatakse tippude nimed)<br />

Lisaks on mitmed traditsioonilised algoritmid, mida erinevate ülesannete lahendamiseks kasutada saab. Näiteks:<br />

• sügavuti otsimine<br />

• laiuti otsimine<br />

• topoloogiline sorteerimine<br />

• lühima tee leidmine kahe tipu vahel<br />

• lühima tee leidmine kõigi tippude vahel<br />

Realisatsioon<br />

<strong>Graafid</strong>e kujutamiseks on kaks peamist võimalust, millistele tuginedes ka vastavad algoritmid on väljatöötatud:<br />

külgnevusnimistuna ja külgnevusmaatriksina. Eelistatav realisatsioon sõltub graafi iseloomust. <strong>Graafid</strong>e puhul<br />

eristatakse tihedaid (dense) ja hõredaid (sparse) graafe.<br />

Hõreda graafiga on tegemist juhul, kui tema kaarte arv on palju väiksem tippude arvu ruudust<br />

<strong>Kui</strong> graafis on tippe palju (N on suur), siis nende mahutamine maatriksisse muutub raskeks, st maatriks läheb väga<br />

suureks. <strong>Kui</strong> selles graafis vähe kaari, siis täitub suurem osa maatriksist 0-ga ja sel juhul on tegemist mälu raiskamisega.<br />

<strong>Kui</strong> aga tippude arv ei ole suur ja kogu maatriksi hoidmine probleemi ei valmista, tasub kasutada maatriksit (massiivi),<br />

sest operatsioonid on lihtsamad.<br />

Staatiline realisatsioon<br />

Graafi kujutatakse külgnevusmaatriksina (adjacency matrix). Nii ridu kui veerge on maatriksis sama palju kui graafis<br />

tippe. Igasse maatriksi lahtrisse kantakse True (1) või False (0). Kaar on kahe tipu vahel sel juhul, kui<br />

maatriksisse on märgitud 1 (true) ning kaare puudumist tähistab 0 (false). Suunamata graafi puhul on tegemist<br />

peadiagonaali suhtes sümmeetrilise maatriksiga. Joonisel on sel juhul kaared ilma noolteta. Suunatud graafil võib olla<br />

kahe tipu vahel ka kaks kaart, kui seos mõlemas suunas on olemas.<br />

1<br />

3<br />

6<br />

9<br />

5<br />

2<br />

4<br />

7<br />

8<br />

10<br />

Joonis 1. Suunatud graaf<br />

2

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!