Na cvičení jsme si ukázali, jak se dají v počítači ukládat grafy s N
Transkript
Na cvičení jsme si ukázali, jak se dají v počítači ukládat grafy s N vrcholy a M hranami. Celkem jsme přišli na tři způsoby, přičemž ve všech předpokládáme, že vrcholy jsou očíslované od 0 do N-1 1) Seznam hran – toto uložení je paměťově velmi nenáročné (potřebujete pole velikosti M) bohužel je také zdaleka nejméně užitečné 2) Matice sousednosti – Máme dvourozměrné pole velikosti NxN . Potom prvek [i, j] v tomto poli je např. 1, právě když vede hrana z vrcholu i do j (v případě orientovaného grafu) a nebo když vede hrana mezi vrcholy i a j (v případě grafu neorientovaného). Pak je ovšem obvyklé nutné mít uloženu jedničku i na pozici j, i. Snadnou úpravou pak může takováto matice uchovávat i orientovaný graf. Nevýhodou je paměťová složitost N2 bez ohledu na to, kolik hran v grafu skutečně je. Dá se například dokázat, že rovinné grafy mají řádově lineární množství hran (tzn. řádově N) a pak dochází k velkému plýtvání. Rovinné grafy přitom mají poměrně dobré využití v praxi. Dále se příliš nehodí k procházení všech sousedů některého vrcholu – vždy musíme projít celý řádek matice, i když vrcholů je relativně málo. 3) Matice následníků – Máme opět dvourozměrné pole velikosti NxN. Tentokrát však prvek [i, j] bude označovat j-tého souseda i-tého vrcholu. Jako pomocnou strukturu si vytvoříme pole, kde na pozici k bude počet sousedů k-tého vrcholu – to vám mnohdy mnohé usnadní. Tato struktura je velice šikovná např. k procházení do hloubky. Pokud byste navíc nepoužili dvourozměrné pole, ale pole spojáků, stačilo by vám jen M míst v paměti. Časem se naučíte dynamická pole, která vám této složitosti umožní dosáhnout za cenu mnohem menší pracnosti. Abychom hned nabitých znalostí využili, řešili jsme, kterak v grafu najít všechny komponenty souvislosti. Ktomu stačila rekurzivní funkce, struktura popisující graf a pomocné pole označující navštívené vrcholy. Postpu, který jsme použili se také nazývá procházení do hloubky. Vždy jsme přišli do vrcholu, označili ho jako navštívený, rozhlédli se po všech sousedech a vždy když byl nějaký nenavštívený, tak jsme se do něj zarekurzili. Když jsem se z rekurze vrátili, zkusili jsme najít dalšího souseda. Evidentně tímto postupem dojdem do všech vrcholů, které jsou dostupné z prvního vrcholu, na nějž jsme funkci zavolali. Jsme-li vyzbrojeni takovouto funkcí, je nalezení komponent souvislosti už jen jednoduchoučkou aplikací této funkce. Poté jsme zkusili zjistit počet všech korektních rozmístění N dam na šachovnici velikosti NxN, tj. takových, aby se žádné dvě neohrožovali. Použít jste k tomu mohli funkci ohrozuje(platne:integer, pole:array of integer):boolean; která jako parametr dostala počet už umístěných dam a pole s jejich pozicemi (je snadné si rozmyslet, že v každém sloupci bude právě jedna dáma, pak nám ale stačí si pro každý sloupeček pamatovat číslo řádku na němž dáma stojí). Řešení psát nebudu, protože to je opět variace na generování nějaké posloupnosti čísel.
Podobné dokumenty
Bayesovské síte: pravdepodobnostní inference a aplikace
(1) najít kliku, která obsahuje všechny její proměnné,
(2) spočítat součin všech tabulek přiřazených této klice a
všech tabulek v příchozích schránkách a
(3) marginalizovat tabulku, pokud je to tře...
Untitled
RJ 45) je propojením na Rittal CMC III. Tím je
umožněno dálkové monitorování přes TCP-IP,
grafické rozhraní pro obsluhu, vyhodnocení a
řízení, dokumentování a připojení k systému kontroly vstupu. R...
Základn´ı vzorce pro algebraické úpravy Goniometrie
Základnı́ vzorce pro algebraické úpravy
n
n n
(xy)
n = xn y
x
= xyn
y
xn xm = xn+m
xn
= xn−m
xm
Grafové algoritmy
– Neorientované – pokud ex. (u,v), existuje také
(v,u)
• Souvislost – graf je souvislý, jestliže pro všechny v(i) z V existuje
cesta do libovolného v(j) z V, nesouvislý graf je rozdělen na
komponen...
Grafové algoritmy
Grafy – Úvod - Terminologie
• Graf je datová struktura, skládá se z množiny vrcholů “V”
a množiny hran mezi vrcholy “E”
• Počet vrcholů a hran musí být konečný a nesmí být
nulový u vrcholů ani u h...
Nový ICP spektrometr PRODIGY
spektrometru, tím lepší je separace píků ve spektru.
Všechny ostatní ICP spektrometry však používají starší