Algoritmul Cuthill- McKee este un algoritm de reducere a lățimii benzii matrici simetrice Numit după dezvoltatori - Elizabeth Cuthill și James McKee.
Reverse Cuthill-McKee ( RCM , reverse Cuthill-McKee ) este același algoritm cu numerotare inversă a indexului.
Matricea simetrică originală este tratată ca matricea de adiacență a graficului . Algoritmul Cuthill-McKee renumerotează vârfurile graficului în așa fel încât, ca urmare a permutării corespunzătoare a coloanelor și rândurilor matricei originale, lățimea benzii sale este redusă .
Algoritmul construiește un set ordonat de vârfuri reprezentând noua enumerare a vârfurilor. Pentru un graf conectat , algoritmul arată astfel:
Cu alte cuvinte, algoritmul enumeră nodurile într-o căutare pe lățimea întâi , în care vârfurile adiacente sunt parcurse în ordinea crescătoare a puterilor lor .
Pentru un graf deconectat, algoritmul poate fi aplicat separat fiecărei componente conectate [1] .
Complexitatea de calcul în timp a algoritmului RCM cu condiția ca sortarea prin inserție să fie utilizată pentru ordonare , , unde este gradul maxim al unui vârf, este numărul de muchii ale graficului [2] .
Pentru a obține rezultate bune, trebuie să găsiți vârful periferic al graficului . Această sarcină este în general destul de dificilă, prin urmare, în loc de ea, de obicei caută un vârf pseudo-periferic folosind una dintre modificările algoritmului euristic al lui Gibbs și colab.
Pentru a descrie algoritmul, este introdus conceptul unei structuri de nivel înrădăcinat . Pentru un punct dat , structura de nivel înrădăcinată la va fi o partiție a setului de vârfuri :
unde subseturile sunt definite după cum urmează:
și
Algoritm pentru găsirea unui vârf pseudo-periferic [3] :