Cuthill–McKee algoritm

Cuthill-McKee beställning av en matris
RCM-beställning av samma matris

I numerisk linjär algebra är Cuthill –McKee-algoritmen ( CM ), uppkallad efter Elizabeth Cuthill och James McKee, en algoritm för att permutera en gles matris som har ett symmetriskt sparsitetsmönster till en bandmatrisform med liten bandbredd . Den omvända Cuthill–McKee-algoritmen ( RCM ) på grund av Alan George och Joseph Liu är samma algoritm men med de resulterande indextalen omvända. I praktiken resulterar detta i allmänhet i mindre utfyllnad än CM-ordern när Gaussisk eliminering tillämpas.

Cuthill McKee-algoritmen är en variant av standardsökningsalgoritmen med bredd-först som används i grafalgoritmer. Den börjar med en perifer och genererar sedan nivåerna för tills alla noder är slut. Uppsättningen skapas från uppsättningen genom att lista alla hörn intill alla noder i . Dessa noder är ordnade efter föregångare och grad.

Algoritm

Givet en symmetrisk matris visualiserar vi matrisen som närliggande matris till en graf . Cuthill–McKee-algoritmen är sedan en ommärkning av hörn för att minska bandbredden för närliggande matris.

Algoritmen producerar en ordnad n -tuppel av hörn som är den nya ordningen för hörnen.

Först väljer vi en perifer vertex (punkten med den lägsta graden ) och sätter .

Sedan för upprepar vi följande steg medan

  • Konstruera angränsande uppsättning av (med den i -te komponenten av ) och exkludera de hörn vi redan har i
  • Sortera stigande efter minsta föregångare (den redan besökta granne med den tidigaste positionen i R), och som ett tiebreak stigande med vertexgrad .
  • Lägg till till resultatuppsättningen .

Med andra ord, numrera hörnen enligt en viss nivåstruktur (beräknad med bredd-först-sökning ) där hörnen i varje nivå besöks i ordning efter föregångarens numrering från lägsta till högsta. Där föregångarna är desamma, särskiljs hörn efter grad (återigen ordnade från lägsta till högsta).

Se även

  1. ^ E. Cuthill och J. McKee. Reducering av bandbredden för glesa symmetriska matriser I Proc. 24:e Nat. Konf. ACM , sidorna 157–172, 1969.
  2. ^ "Ciprian Zavoianu - webblogg: Handledning: Bandbreddsminskning - CutHill-McKee Algorithm" .
  3. ^ JA George och J. WH. Liu, Computer Solution of Large Sparse Positive Definite Systems, Prentice-Hall, 1981
  4. ^ The Reverse Cuthill-McKee Algorithm in Distributed-Memory [1] , bild 8, 2016