Algoritmus Cuthill – McKee - Cuthill–McKee algorithm

Cuthill-McKee uspořádání matice
RCM řazení stejné matice

v numerická lineární algebra, Algoritmus Cuthill – McKee (CM), pojmenovaný pro Elizabeth Cuthill a James[1] McKee,[2] je algoritmus permutovat a řídká matice který má symetrický řídký vzor do a pásmová matice formulář s malým šířka pásma. The obrácený algoritmus Cuthill – McKee (RCM) kvůli Alanu Georgovi je stejný algoritmus, ale výsledná čísla indexů jsou obrácená.[3] V praxi to obvykle vede k méně vyplnit než uspořádání CM, když je použita Gaussova eliminace.[4]

Algoritmus Cuthill McKee je variantou standardu vyhledávání na šířku algoritmus používaný v grafových algoritmech. Začíná to periferním uzlem a poté se generuje úrovně pro dokud nejsou vyčerpány všechny uzly. Sada je vytvořen ze sady vypsáním všech vrcholů sousedících se všemi uzly v . Tyto uzly jsou seřazeny podle předchůdců a stupně.

Algoritmus

Vzhledem k tomu, symetrický matici vizualizujeme matici jako matice sousedství a graf. Algoritmus Cuthill – McKee je potom přetvářením vrcholy grafu ke snížení šířky pásma matice sousedství.

Algoritmus vytváří uspořádaný n-tuple vrcholů, což je nové pořadí vrcholů.

Nejprve zvolíme a periferní vrchol (vrchol s nejnižším stupeň ) a nastavit .

Pak pro následující kroky opakujeme

  • Vytvořte sadu sousedství z (s the i-tá složka ) a vyloučit vrcholy, které již máme v
  • Třídit vzestupně minimálním předchůdcem (již navštívený soused s nejčasnější pozicí v R) a jako tiebreak vzestupně stupeň vrcholu.[5]
  • Připojit do sady výsledků .

Jinými slovy, číslujte vrcholy podle konkrétního struktura úrovně (vypočítá vyhledávání na šířku ) kde jsou vrcholy v každé úrovni navštěvovány v pořadí podle číslování jejich předchůdců od nejnižší po nejvyšší. Pokud jsou předchůdci stejní, vrcholy se rozlišují podle stupně (opět seřazené od nejnižšího po nejvyšší).

Viz také

Reference

  1. ^ Doporučení pro znázornění povrchu trupu lodi, strana 6
  2. ^ E. Cuthill a J. McKee. Snížení šířky pásma řídkých symetrických matic V Proc. 24. nat. Konf. ACM, strany 157–172, 1969.
  3. ^ http://ciprian-zavoianu.blogspot.ch/2009/01/project-bandwidth-reduction.html
  4. ^ J. A. George a J. W-H. Liu, Počítačové řešení velkých řídkých pozitivních konečných systémů, Prentice-Hall, 1981
  5. ^ Algoritmus reverzní Cuthill-McKee v distribuované paměti [1], snímek 8, 2016