- •Розділ 5. Теорія графів
- •5.10. Дерева
- •Зв'язний граф Т без циклів називається деревом.
- •Для графа G з n вершинами і m ребрами рівносильні такі властивості:
- •Орієнтовані і бінарні дерева
- •Кореневе дерево
- •Нащадок v вершини u — це вершина v, в яку веде шлях з
- •Бінарним (двійковим) деревом Т називається упорядковане дерево, з кожної вершини якого може виходити
- •Найпростіший варіант комп'ютерного задання двійкового дерева Т – за допомогою двох масивів: ЛІВИЙ
- •Велика кількість задач як для графів, так і для дерев, вимагають перегляду всіх
- •Алгоритм пошуку вглиб у простому зв'язному графі
- •Часто використовується перегляд графа «пошуком у ширину» (або BFS-метод від англ. breadth first
- •Алгоритм пошуку вшир у простому зв'язному графі
- •Бінарне дерево пошуку
- •Приклад лінійно впорядкованого дерева - проекції номерів вершин на пряму дають правильну послідовність
- •У бінарному дереві пошуку кожній вершині присвоєно значення, яке називають ключем.
- •Алгоритм додавання об'єкта до дерева
- •Приклад побудови дерева для такого списку: {m,a,c,h,i,n,e,b,o,x}.
- •Алгоритм пошуку об'єкта в дереві
- •Приклад пошуку у дереві для такого списку: {x,d}.
- •Алгоритм видалення об'єкта з дерева
- •Якщо вузол, що видаляється, має двох нащадків, то на його місце слід переставити
- •Приклад видалення вузла, що не має нащадків.
- •Приклад видалення вузла, що має одного нащадка.
- •Приклад видалення вузла, що має двох нащадків.
- •Приклад видалення вузла, що має двох нащадків.
- •Найбільша кількість порівнянь, потрібних для додавання або пошуку об'єкта, дорівнює висоті дерева. Якщо
- •АВЛ-дерево — бінарне дерево, у якому висоти двох піддерев кожної з його вершин
- •Ребалансування АВЛ-дерева
- •Дерева прийняття рішень
- •Приклад. Серед восьми монет одна фальшива, вона має меншу вагу. Знайдемо цю монету
- •Відповідне дерево рішень:
- •У багатьох практичних задачах потрібно приймати рішення стосовно досліджуваних об'єктів, відносячи їх до
- •Алгоритм Куїнлана
- •Цю вершину позначають атрибутом а, сам атрибут а вилучають із множини А й
- •Приклад
- •Розглянемо вершину 2. Їй відповідає підмножина прикладів {D9,D11}, які мають значення атрибута прийняття
- •Розглянемо два листки, які відповідають значенням так і ні відповідно для прикладів D11
- •Вибираючи іншу послідовність атрибутів і обходу вершин, можна одержати інше дерево рішень.
- •Порівнявши приклади, зазначимо, що на практиці реалізують версію алгоритму ID3, у якій аналізують
- •5.11. Остови (каркаси) графа
- •Остовне дерево графа
- •Алгоритм побудови остовного дерева
- •Приклад побудови остова.
- •Зауваження. Якщо вихідний граф G не є зв'язним, то алгоритм перегляне тільки одну
- •Остів мінімальної ваги
- •Алгоритм Дж. Краскала знаходження остова мінімальної ваги
- •Приклад. Знаходження остову мінімальної ваги.
- •Найкоротші відстані та шляхи
- •Ідея алгоритму Дейкстри така. Якщо вже знайдено довжини (ваги) l(xi) найкоротших шляхів з
- •Формально в алгоритмі пофарбованій вершині x Xk
- •Алгоритм Дейкстри побудови найкоротших шляхів із вершини s
- •Крок 3. Перетворення позначки у постійну.
- •Приклад. Знаходження найкоротшого шляху між вершиною a і рештою вершин у зваженому графі.
- •Алгоритм Форда - Беллмана побудови найкоротших шляхів із вершини
- •Зміни алгоритму Дейкстри полягають у такому:
- •Приклад. Знаходження найкоротшого шляху між вершиною a і рештою вершин у зваженому графі.
- •Алгоритм Флойда і Данцига побудови найкоротших шляхів між всіма вершинами
- •Попередньо пронумеруємо вершини графа G натуральними числами 1, 2, ..., n і введемо
- •При цьому виявляється можливим обчислити матрицю Lm,
- •Приклад. Знаходження найкоротших шляхів між всіма вершинами у зваженому графі.
Розділ 5. Теорія графів
5.10. Дерева
орієнтовані і бінарні дерева
дерева пошуку
дерева прийняття рішень
Зв'язний граф Т без циклів називається деревом.
Орієнтація може не враховуватися, і тоді говорять
про ребра дерева уi. Якщо орієнтація враховується, то говорять про дуги дерева, а саме дерево називається орієнтованим, наприклад, дерево логічних можливостей, генеалогічне дерево.
Для графа G з n вершинами і m ребрами рівносильні такі властивості:
1.G зв'язний і не має циклів.
2.G зв'язний, і число його вершин на одиницю перевершує число ребер: n = m + 1.
3.G не містить циклів і n = m + 1.
4.G не містить циклів, але додавання ребра між будь-якими двома несуміжними вершинами призводить до появи циклу.
5.G зв'язний, але втрачає цю властивість при видаленні будь-якого ребра.
6.Будь-які дві вершини xi xk графа G з'єднує єдиний ланцюг.
Граф G = (X, Y) називається позначеним, якщо його вершинам привласнені фіксовані позначки, наприклад, номери 1, 2, ..., n.
Два позначених графа однакові (не різняться), якщо їхні вершини позначені однією системою позначок та існує ізоморфізм одного графа на інший, при якому зберігаються позначки всіх вершин.
Формула А.Келі Число n позначених дерев з n вершинами дорівнює nn-2
Важливий клас графів утворюють дерева з однією позначеною вершиною, яка називається коренем. Само дерево з однією позначеною («виділеною») вершиною називається кореневим деревом.
Орієнтовані і бінарні дерева
Орієнтованим деревом (інакше
— кореневим орієнтованим деревом) називається орієнтований граф без циклів з властивостями:
- існує точно одна вершина r, що називається коренем, у яку не заходить жодна дуга;
- в кожну вершину, крім кореня, заходить точно одна дуга;
- існує шлях з кореня до будь-якої іншої вершини.
Кореневе дерево
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
r =1 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
рівень 0 |
||||||||||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
3 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
рівень 1 |
|||||||||||||||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
4 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
5 |
6 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
7 |
|
|
|
|
|
|
|
|
|
|
||||||||||||||||||||||||||||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
рівень 2 |
|||||||||||||||||||||||||||||||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
8 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
9 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
10 |
||||||||||||||||||||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
рівень 3 |
|||||||||||||||||||||||||||||||||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Нащадок v вершини u — це вершина v, в яку веде шлях з вершини u; при цьому u називається предком для v.
Якщо довжина цього шляху дорівнює 1, тобто з u до v веде дуга, то u — «батько» для v, a v — «син» для u.
Вершина, що не має нащадків, називається листом.
Висота дерева — це число дуг найдовшого шляху, тобто висота кореня.
Рівень вершини v — це довжина шляху з кореня у v.
Упорядкованим деревом називається дерево, в якого множина синів кожної вершини упорядкована.
Дерево висотою h називається збалансованим, якщо всі його листки розташовані на рівнях h або h+1.
Бінарним (двійковим) деревом Т називається упорядковане дерево, з кожної вершини якого може виходити не більше двох дуг.
Лівим піддеревом вершини u називається
максимальне піддерево Tl(ul) T, коренем якого є лівий син ul вершини u. Відповідно праве піддерево Tr(ur) вершини u визначається як максимальне
піддерево з коренем ur — правим сином вершини u. |
||||
|
r =1 |
|
|
|
|
2 |
|
3 |
|
4 |
5 |
6 |
|
7 |
|
8 |
|
9 |
10 |
Найпростіший варіант комп'ютерного задання двійкового дерева Т – за допомогою двох масивів: ЛІВИЙ СИН і ПРАВИЙ СИН. Якщо вершини Т занумеровані числами від 1 до n, то в масиві ЛІВИЙ СИН [і]=k коли вершина 'k' є лівим сином вершини 'і', та [і]=0 коли вершина 'і' не має лівого сина.
r =1
23
45 67
8 9
і |
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
Л |
2 |
4 |
6 |
0 |
8 |
0 |
9 |
0 |
0 |
0 |
П |
3 |
5 |
7 |
0 |
0 |
0 |
10 |
0 |
0 |
0 |
Найбільш зручний для
10комп'ютерної обробки варіант задання двійкового дерева Т – за допомогою списку.