Алгоритм Катхілл — Маккі
Алгоритм Катхілл — Маккі (КМ), названий на честь Елізабет Катхілл і Джеймса Маккі,[1] це алгоритм переведення розрідженої матриці, яка симетрично розріджена, у смугову матрицю з малою шириною смуги, шляхом переставляння рядків і стовпчиків. Зворотний алгоритм Катхілл Маккі (ЗКМ) запропонований Аланом Джорджем — це той самий алгоритм, але з оберненим порядком індексування вершин.[2] На практиці це допомагає отримати менше заповнювання нульових позицій порівняння з КМ впорядкуванням при використанні методу Гауса.[3]
Алгоритм Катхілл — Маккі — це варіант стандартного пошуку в ширину, що використовується для графів. Він стартує з периферійної вершини і генерує рівневу структуру для допоки не вичерпано всі вершини. Множина утворюється за допомогою множини збираючи всі вершини суміжні вершинам в . Ці вершини записуються в порядку збільшення степеня вершини. Цей останній момент і є відмінність від алгоритму пошуку в ширину.
Алгоритм
ред.Маючи симетричну матрицю ми візуалізуємо її як матрицю суміжності графу. Тоді алгоритм Катхілл — Маккі перепозначає вершини графу, щоб зменшити ширину смуги матриці суміжності.
Алгоритм формує впорядкований кортеж з n елементів, який містить новий порядок вершин.
Спочатку обираємо периферійну вершину, або псевдопериферійну, бо периферійну зазвичай важко знайти, і встановлюємо .
Після цього ми повторюємо наступні кроки допоки
- Конструюємо множину суміжності для (з — i-й компонент ) і виключаємо вершини, які вже в
- Сортуємо за збільшенням степені вершини.
- Додаємо до результовної множини .
Інакше кажучи, нумеруємо вершини відповідно до спеціального пошуку в ширину де сусідні вершини відвідуються в порядку від найменшого до найбільшого степеня.
Див. також
ред.Примітки
ред.- ↑ Елізабет Катхілл і Джеймс Маккі. Reducing the bandwidth of sparse symmetric matrices In Proc. 24th Nat. Conf. ACM, pages 157—172, 1969.
- ↑ Архівована копія. Архів оригіналу за 18 січня 2017. Процитовано 9 квітня 2017.
{{cite web}}
: Обслуговування CS1: Сторінки з текстом «archived copy» як значення параметру title (посилання) - ↑ J. A. George and J. W-H. Liu, Computer Solution of Large Sparse Positive Definite Systems, Prentice-Hall, 1981
- Cuthill–McKee documentation [Архівовано 29 квітня 2017 у Wayback Machine.] для Boost.
- A detailed description of the Cuthill–McKee algorithm [Архівовано 3 листопада 2009 у Wayback Machine.].
- symrcm [Архівовано 7 липня 2016 у Wayback Machine.] MATLAB's реалізація RCM.