Алгоритм Катхілл — Маккі

Матеріал з testwiki
Версія від 09:03, 22 травня 2022, створена imported>InternetArchiveBot (Виправлено джерел: 4; позначено як недійсні: 0.) #IABot (v2.0.8.7)
(різн.) ← Попередня версія | Поточна версія (різн.) | Новіша версія → (різн.)
Перейти до навігації Перейти до пошуку
Впорядкування матриці алгоритмом Катхілл — Маккі
ЗКМ впорядкування тої ж матриці

Алгоритм Катхілл — Маккі (КМ), названий на честь Елізабет Катхілл і Джеймса Маккі,[1] це алгоритм переведення розрідженої матриці, яка симетрично розріджена, у смугову матрицю з малою шириною смуги, шляхом переставляння рядків і стовпчиків. Зворотний алгоритм Катхілл Маккі (ЗКМ) запропонований Аланом Джорджем — це той самий алгоритм, але з оберненим порядком індексування вершин.[2] На практиці це допомагає отримати менше заповнювання нульових позицій порівняння з КМ впорядкуванням при використанні методу Гауса.[3]

Алгоритм Катхілл — Маккі — це варіант стандартного пошуку в ширину, що використовується для графів. Він стартує з периферійної вершини і генерує рівневу структуру Ri для i=1,2,.. допоки не вичерпано всі вершини. Множина Ri+1 утворюється за допомогою множини Ri збираючи всі вершини суміжні вершинам в Ri. Ці вершини записуються в порядку збільшення степеня вершини. Цей останній момент і є відмінність від алгоритму пошуку в ширину.

Алгоритм

Маючи симетричну n×n матрицю ми візуалізуємо її як матрицю суміжності графу. Тоді алгоритм Катхілл — Маккі перепозначає вершини графу, щоб зменшити ширину смуги матриці суміжності.

Алгоритм формує впорядкований кортеж R з n елементів, який містить новий порядок вершин.

Спочатку обираємо периферійну вершину, або псевдопериферійну, бо периферійну зазвичай важко знайти, x і встановлюємо R:=({x}).

Після цього i=1,2, ми повторюємо наступні кроки допоки |R|<n

  • Конструюємо множину суміжності Ai для RiRi — i-й компонент R) і виключаємо вершини, які вже в R
Ai:=Adj(Ri)R
  • Сортуємо Ai за збільшенням степені вершини.
  • Додаємо Ai до результовної множини R.

Інакше кажучи, нумеруємо вершини відповідно до спеціального пошуку в ширину де сусідні вершини відвідуються в порядку від найменшого до найбільшого степеня.

Див. також

Примітки

Шаблон:Reflist

Шаблон:Алгоритми на графах

  1. Елізабет Катхілл і Джеймс Маккі. Reducing the bandwidth of sparse symmetric matrices In Proc. 24th Nat. Conf. ACM, pages 157—172, 1969.
  2. Шаблон:Cite web
  3. J. A. George and J. W-H. Liu, Computer Solution of Large Sparse Positive Definite Systems, Prentice-Hall, 1981