- •Зміст дисципліни.
- •Найменування тем, їхній зміст, обсяг у годинах лекційних занять
- •Вказівки з використанНя літературних джерел
- •Алгоритми й структури даних
- •Стеки, списки
- •Дерева пошуку Бінарні дерева
- •Двійкові дерева
- •Червоно- чорні дерева
- •Частково впорядковані дерева Статья I.При створенні чуд елементи вводилися в наступному порядку: (13, 6, 15, 5, 10, 6, 3, 13, 5, 6, 35, 8). Пояснити побудова (переформування) дерева.
- •Рекурсія
- •Перебір з поверненням
- •Машина Тьюрінга
- •Приклади Послідовний пошук
- •Структури даних. Масиви Решето Ератосфена
- •Обчислення найближчої точки
- •Структури даних. Списки Приклад циклічного списку (задача Йосипа)
- •Сортування методом вставки в список
- •Звертання порядку проходження елементів списку
- •Структури даних. Рядки Сортування масиву рядків
- •Абстрактні типи даних (атд) Інтерфейс абстрактного типу даних стека
- •Реалізація черги fifo на базі масиву
- •Реалізація черги fifo на базі зв'язного списку
- •Перетворення з інфіксної форми в постфіксну
- •Рекурсія Алгоритм Евклида
- •Рекурсивна програма для оцінки префіксних виразів
- •Розв’язання
- •Приклад 2 Завдання
- •Розв’язання
- •Приклад 3 Завдання
- •Розв’язання
- •Приклад 4 Завдання
- •Розв’язання
- •Приклад 5 Завдання
- •Розв’язання
- •Приклад 6 Завдання
- •Розв’язання
- •Приклад 7 Завдання
- •Розв’язання
- •Алгоритм роботи машини т’юринга
- •Дослідження функції на рекурсивність
- •Нормальні алгоритми Маркова
- •Алгоритм роботи програми.
- •Приклад роботи програми.
- •Варіанти курсових робіт
- •Варіанти виконання Алгоритм виконання курсової роботи:
- •Приклад1.
- •Побудова моделі.
- •Розроблення алгоритму.
- •Правильність алгоритму.
- •Реалізація алгоритму.
- •Перевірка програми.
- •Приклад2
- •Постановка задачі
- •Перший варіант розв’язку
- •Другий варіант розв’язку.
- •Приклад3
- •Опукла оболонка
- •Метод обходу Грехема
- •Метод обходу Джарвіса
- •Алгоритм апроксимації опуклої оболонки
- •Швидкі методи побудови опуклої оболонки
- •Алгоритм типу розділяй та пануй
- •Побудова опуклої оболонки простого многокутника
- •Динамічні алгоритми побудови опуклої оболонки
- •Порівняльний аналіз алгоритмів побудови опуклої оболонки
- •Висновки
Варіанти виконання Алгоритм виконання курсової роботи:
Постановка задачі.
Побудова моделі.
Розроблення алгоритму.
Доведення правильності алгоритму.
Реалізація алгоритму.
Аналіз алгоритму і його складності.
Перевірка програми.
Документування програми.
Приклад1.
Наведено приклад реалізації алгоритму на прикладі класичної задачі комівояжера.
Постановка задачі.
Петро Коміренко — комівояжер; на його території 20 міст. Компанія повертає йому тільки 50% вартості ділових поїздок автомобілем. Петру відома вартість переїзду на авто між кожною парою міст на його території (тобто маємо матрицю вартостей розміром 20 рядків на 20 стовпчиків, елемент i,j якої становить вартість переїзду із міста i в місто j). Йому, звичайно, хотілось би зменшити свої дорожні витрати.
Щоб допомогти Петрові, не беручи до уваги характеристики окремих міст та їх покупців, потрібно знайти маршрут, що починається і закінчується в його базовому місті та проходить по одному разу через усі інші міста на його території. Маршрут можна зобразити списком, в якому кожне місто зустрінеться лише один раз, базове місто буде в списку першим і останнім. Сума вартостей переїзду між кожними двома послідовними містами списку - це загальна вартість маршруту, зображеного списком. Маршрутів і відповідно списків може бути багато, а тому потрібно відібрати серед них список, що маєнайменшу загальну вартість.
Побудова моделі.
Формулювання математичної моделі суттєво впливає на інші етапи. На сьогодні вибір моделі є швидше мистецтвом, ніж наукою, визначається досвідом. Існує низка корисних рекомендацій, яких варто притримуватись в процесі моделювання.
Спочатку, потрібно вибрати адекватну математичну структуру, виходячи із її зручності і простоти для зображень і обчислень, корисності операцій, визначених на структурі, в плані розв’язання проблеми. Очевидно, для ефективного виконання цього етапу потрібні знання стосовно можливо більшого набору структур.
Вибравши структуру, проблему треба переформулювати в термінах властивих структурі математичних об’єктів. Про вдалий вибір моделі свідчать: зручне зображення усієї важливої для проблеми інформації математичними об’єктами; існує математичний об’єкт, що асоціюється з потрібним результатом; виявлені корисні відношення між об’єктами моделі; з моделлю зручно працювати тощо.
Для нашого прикладу видається зручним використовувати зважені графи. Для випадку п’яти міст матриця вартостей і зважений граф наведені відповідно на рис. 1, а і б.
-
Місто
1
2
3
4
5
1
-
1
2
7
5
2
1
-
4
4
3
3
2
4
-
1
2
4
7
4
1
-
3
5
5
3
2
3
-
Рис. 1. Проблема комівояжера з п’ятьма містами.
В термінах теорії графів мова йде про пошук циклу, до якого кожна вершина графу входить один і тільки один раз (назвемо такий цикл туром). Вартість туру визначається як сума ваг всіх його ребер. Наприклад, рис. 1, б вартість туру 1—5—3—4—2—1 становить 5+2+1+4+1=13. Потрібно знайти тур з найменшою вартістю.
На цьому етапі важливо також визначити аналогічні проблеми, що були розв’язані раніше. Часто проблеми, що розв’язуються, є модифікаціями раніше розв’язаних. Наша проблема відома в літературі як класична задача комівояжера і є прикладом таких проблем, які дуже легко поставити й промоделювати, але дуже важко розв’язати.
