Definice: Hradlová síť je určena
- abecedou
- Po dvou disjunktních vstupy, výstupy, hradla
- Acyklickým orientovaným multigrafem
- Zobrazením které pro každé hradlo přiřadí nějakou funkci , což je funkce, kterou toto hradlo vykonává. Číslu říkáme arita .
- Zobrazením , které o hranách do hradel říká, kolikátému argumentu funkce odpovídá. S podmínkami
- Do vstupů nevedou hrany
- Z výstupů nevedou hrany a do něj vede právě jedna
- Do každého hradla vede právě tolik hran kolik je jeho arita
- Všechny vstupy hradel jsou zapojeny právě jednou hranou
Definice: Výpočet sítě postupně přiřazuje hodnoty z abecedy vrcholům grafu. Výpočet probíhá po taktech. V nultém taktu jsou definovány pouze hodnoty na vstupech sítě a v hradlech arity 0 (konstantách). V každém dalším taktu pak ohodnotíme vrcholy, jejichž všechny vstupní hrany vedou z vrcholů s již definovanou hodnotou
Paralelní třídění
Komparátorová síť
- Síť složená z komparátorů, každý má 2 vstupy a 2 výstupy:
- výstupy jsou: menší a větší z dvojice vstupních hodnot
- Výstupy komparátorů se nevětví
- Celá síť je bez větvení a slučování — každá hodnota jde přesně jednou sítí
Bitonická posloupnost
- Čistě bitonická: nejprve rostoucí, pak klesající (části mohou být prázdné)
- Bitonická: rotace čistě bitonické posloupnosti
Separátor
-
Komparátorová síť oddělí bitonickou posloupnost délky na:
- dvě bitonické permutace a
- všechny prvky první poloviny < všechny ve druhé
-
Separátor má:
- konstantní hloubku
- Θ(n) komparátorů
Bitonická třidička
- Třídí bitonické posloupnosti
- Složená z hladin separátorů (rekurzivně)
- Hloubka: Θ(log n)
- Počet komparátorů: Θ(n log n)
Slévačka
- Třídí dvě rostoucí posloupnosti (délky ) do jedné
- Využije bitonickou třidičku po vhodném otočení jedné z posloupností
- Hloubka: Θ(log n)
- Komparátory: Θ(n log n)
Třídicí síť
- Obecná třídicí síť (třídí libovolné vstupy)
- Konstrukce jako paralelní mergesort:
- 1-prvkové posloupnosti → slévačky → → … → → výstup
- Hloubka: Θ(log² n)
- Komparátorů: Θ(n log² n)
Věta: Pro existuje třídicí síť hloubky složená z kompa- rátorů. Důkaz: Síť bude třídit sléváním, podobně jako algoritmus Mergesort. Vstup rozdělíme na jednoprvkových posloupností. Ty jsou jistě setříděné, takže je slévačkami můžeme slít do dvouprvkových setříděných posloupností. Na ty pak aplikujeme slévačky , až všechny části slijeme do jedné, setříděné.
Celkem provedeme kroků slévání, -tý z nich obsahuje slévačky a ty, jak už víme, mají hloubku . Celkový počet vrstev tedy činí . Každý krok přitom potřebuje komparátorů, což dává celkem komparátorů.