- •1 Теорія множин. Основні операції над множинами
- •Завдання №1
- •Завдання №2
- •2 Задачі оптимізації на графах
- •2.1 Знаходження найкоротшого шляху між двома вершинами графа індексним методом
- •2.2 Знаходження найкоротшого шляху між будь-якими двома вершинами графа матричним методом
- •Завдання №4
- •2.3 Знаходження найкоротшого гамільтонова контуру методом гілок та меж
- •Завдання №5
- •2.4 Задача про максимальний потік у транспортній мережі
- •Завдання №6
- •3 Основи теорії мінімізації булевих функцій: побудова мднф та мкнф методом Квайна-Мак-Класки та за допомогою діаграм Вейча
- •Завдання №7
- •4 Основи алгебри логіки: висловлення, перетворення складних висловів до нормального виду, ведення доказу за допомогою методу резолюцій
- •Завдання № 8
- •Функцію f(x1, x2, x3,x4) записати у вигляді таблиці істинності та у вигляді нормальної та досконалої формах зображення.
- •Методом резолюцій довести, що одна з формул є логічним наслідком деяких висловів або впевнитись у противному. Індивідуальні завдання
- •Список літератури
2.1 Знаходження найкоротшого шляху між двома вершинами графа індексним методом
Серед індексних методів розглянемо метод Форда та його інтерпретацію для машинної реалізації – алгоритм Дейкстри.
Приклад 2.1 Граф G поданий графічно. Необхідно, використовуючи метод Форда, знайти найкоротшу відстань від вершини х0 до вершини х7 і довжину цього ланцюга.
Розв'язок. V0=0, V1=…=V7=...
Розглядаємо всі вершини, суміжні з фіксованою, і вибираємо для розгляду індексу ту, довжина ребра якої має меншу вагу. Це вершина x1.
.
Далі варто розглянути вершину х2.
.
.
.
.
У результаті одержали, що з вершини х0 у вершину х7 існують три найкоротших ланцюги, довжина яких дорівнює 18.
Приклад 2.2 Знайдемо розв'язок попереднього прикладу за допомогою алгоритму Дейкстри.
Рішення. Запишемо вихідні дані у матричному вигляді. Побудуємо матрицю суміжності ваг . Кожний крок відповідає побудові трьох векторів розмірностіn, де n – кількість вершин графа:
А – логічний вектор, елемент аі=1, якщо вершина хі розглянута (на початку це вершина відправлення х0 ) і аі=0, якщо не розглянута;
В – поточне значення індексів вершин графа, тобто довжина найкоротших шляхів між вершинами х0 та хі (на початку елементи вектора В відповідають нульовому рядку матриці Д, оскільки вершина х0 є початковою, за винятком елемента в0, який дорівнює 0);
С- містить номери попередніх вершин,тобто сі – номер вершини, яка стоїть перед і-ю у найкоротшому шляху в і-ту вершину( на початку всі елементи сі=0, оскільки початкова вершина х0 і її номер дорівнює 0).
і |
0 |
1 |
2 |
3 |
4 |
5 |
6 |
7 |
Серед елементів ві вибираємо найменший для нерозглянутих вершин (яким відповідає аі=0). Це елемент в1=4. |
Аі |
1 |
0 |
0 |
0 |
0 |
0 |
0 |
0 | |
Ві |
0 |
4 |
5 |
9 |
|
|
|
| |
Сі |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
Таким чином, вершина 1 стає поточною і головною для виконання всіх перетворень даного кроку.
Виконуємо такі перетворення:
а1=1;
для кожного елемента ві, який відповідає аі=0, перевіряємо наявність більш короткого шляху в і-ту вершину з 0-ї через першу, тобто перевіряємо умову ві<в1+д1і . У разі її невиконання замінюємо існуюче значення ві на в1+д1і, а існуюче сі - на 1.
Для елементів в2 та в3 збігаються значення, що порівнюються, тому елементам с2 та с3 припишемо два значення 0,1.
і |
0 |
1 |
2 |
3 |
4 |
5 |
6 |
7 |
Знову серед елементів ві вибираємо найменший для нерозглянутих вершин (яким відповідає аі=0). Це елемент в2=5. Вершина 2 – поточна. |
Аі |
1 |
1 |
0 |
0 |
0 |
0 |
0 |
0 | |
Ві |
0 |
4 |
5 |
9 |
|
6 |
|
| |
Сі |
0 |
0 |
0,1 |
0,1 |
0 |
1 |
0 |
0 | |
2-й єтап |
Поточна вершина 5. | ||||||||
Аі |
1 |
1 |
1 |
0 |
0 |
0 |
0 |
0 | |
Ві |
0 |
4 |
5 |
9 |
|
6 |
16 |
| |
Сі |
0 |
0 |
0,1 |
0,1 |
0 |
1 |
2 |
0 | |
3-й єтап |
Поточна вершина 5. | ||||||||
Аі |
1 |
1 |
1 |
0 |
0 |
1 |
0 |
0 | |
Ві |
0 |
4 |
5 |
9 |
14 |
6 |
16 |
21 | |
Сі |
0 |
0 |
0,1 |
0,1 |
5 |
1 |
2,5 |
5 | |
4-й єтап |
Поточна вершина 4. | ||||||||
Аі |
1 |
1 |
1 |
1 |
0 |
1 |
0 |
0 | |
Ві |
0 |
4 |
5 |
9 |
14 |
6 |
16 |
21 | |
Сі |
0 |
0 |
0,1 |
0,1 |
5 |
1 |
2,5 |
5 | |
5-й єтап |
Поточна вершина 6. | ||||||||
Аі |
1 |
1 |
1 |
1 |
1 |
1 |
0 |
0 | |
Ві |
0 |
4 |
5 |
9 |
14 |
6 |
16 |
21 | |
Сі |
0 |
0 |
0,1 |
0,1 |
5 |
1 |
2,5 |
5 | |
6-й єтап |
Для розгляду залишилась одна вершина х7. Її вибір не змінить отриманих результатів, тобто алгоритм перерахунку завершено. | ||||||||
Аі |
1 |
1 |
1 |
1 |
1 |
1 |
1 |
0 | |
Ві |
0 |
4 |
5 |
9 |
14 |
6 |
16 |
18 | |
Сі |
0 |
0 |
0,1 |
0,1 |
5 |
1 |
2,5 |
6 |
Остання таблиця містить інформацію про довжину найкоротшого шляху від початкової вершини х0 до будь-якої хі. Сам шлях можна відтворити за елементами вектора С. Випишемо результат для вершини х7.
Lmin(x0, x7)=18,
Задано
граф G.
Зобразити граф у вигляді
матриць суміжності й суміжності ваг.
Знайти найкоротший шлях і його довжину
між двома зазначеними
вершинами графа (варіант із номером,
який кратний 2, – методом Дейкстри,
інші варіанти – методом Форда, за
необхідності розставивши напрямок дуг
від вершини з меншим індексом до вершини
з більшим індексом).
L(x1-x5)
- ? 5min
-?
19)
21)