
- •Анотація
- •1 Техніко-економічне обґрунтування технічного завдання на курсову роботу
- •1.1 Вимоги користувача
- •1.2 Аналіз предметної області
- •1.3 Вибір методу вирішення основної задачі
- •2 Розробка алгоритмів розв’язку задачі
- •2.1 Алгоритм побудови робочого поля
- •2.2 Покроковий алгоритм
- •2.3 Розробка меню
- •3 Програмна реалізація
- •3.1 Вибір мови програмування
- •3.2 Програмування інтерфейсу
- •3.3 Розробка програми
- •4 Тестування, перевірка правильності роботи
- •4.1 Готування тестування
- •4.2 Аналіз результатів роботи
- •Висновки
- •Перелік посилань
- •Література
- •Додаток а – Лістінг
Анотація
У даній курсовій роботі буде розроблено програму, яка моделюватиме та забезпечуватиме можливість знаходження найоптимальніших шляхів вирішення задачі. Розглядатиметься робота нафтового заводу, а конкретно – перелив речовин (нафти, бензину) з однієї місткості в іншу. Користувачу буде надана можливість зміни вхідних параметрів задля більш гнучкого функціонування програми. Буде розроблено зручний графічний інтерфейс з підказками та схематичними зображеннями процесу роботи програми.
Зміст
АНОТАЦІЯ 2
1 ТЕХНІКО-ЕКОНОМІЧНЕ ОБҐРУНТУВАННЯ ТЕХНІЧНОГО ЗАВДАННЯ НА КУРСОВУ РОБОТУ 6
1.1 Вимоги користувача 6
1.3 Вибір методу вирішення основної задачі 8
2 РОЗРОБКА АЛГОРИТМІВ РОЗВ’ЯЗКУ ЗАДАЧІ 14
2.1 Алгоритм побудови робочого поля 14
2.2 Покроковий алгоритм 15
2.3 Розробка меню 17
3 ПРОГРАМНА РЕАЛІЗАЦІЯ 19
3.1 Вибір мови програмування 19
3.2 Програмування інтерфейсу 20
3.3 Розробка програми 21
4 ТЕСТУВАННЯ, ПЕРЕВІРКА ПРАВИЛЬНОСТІ РОБОТИ 23
4.1 Готування тестування 23
4.2 Аналіз результатів роботи 27
ВИСНОВКИ 28
ПЕРЕЛІК ПОСИЛАНЬ 29
ДОДАТОК А – Лістінг 31
ВСТУП
Алгоритм Дейкстри — алгоритм на графах, відкритий Дейкстрою. Знаходить найкоротший шлях від одної вершини графа до всіх інших вершин. Класичний алгоритм Дейкстри працює тільки для графів без дуг від'ємної довжини [1]. Алгоритм широко застосовується в програмуванні й технологіях, наприклад, його використовує протокол OSPF для усунення кільцевих маршрутів. Відомий також під назвою Спочатку Найкоротший Шлях (Shortest Path First). Алгоритм був відкритий англійцем Елвіном Берлекемпом.
Вперше алгоритм Дейкстри був опублікований в 1959 році. Дейкстра не тільки привів метод побудови Shortest Path First, а й реалізував його на базі матриці суміжності (час виконання N2), а також показав, що тим же методом можна обчислити і MST (MST - Mininal Spanning Tree). Реалізація побудови MST для насичених графів була вперше опублікована Прімом у 1961 році, а потім дещо пізніше – алгоритм Дейкстри. Однак основна ідея алгоритму була висловлена чеським математиком Войцехом Ярніком задовго до цього в 1939 році.
Збільшення продуктивності цих алгоритмів для розріджених графів пов'язано з широким розповсюдженням черг з пріоритетами в сімдесятих роках минулого століття. У 1977 році Д. Джонсон запропонував реалізацію алгоритму Прима (алгоритм Прима - алгоритм побудови мінімального кістякового дерева, це жадібний алгоритм) за допомогою d-парних частково впорядкованих повних дерев, а не за допомогою стандартних повних бінарних дерев.
Подальші удосконалення черг з пріоритетами привели до ще більшої продуктивності алгоритмів. Реалізації черг з пріоритетами на базі повних дерев Фібоначчі, дозволяє зменшити час виконання алгоритмів до (E + N*log(N)). Це досягається тим, що час виконання операції «змінити (зменшити)» пріоритет стає постійним, а операція «видалення мінімального елемента» залишається логарифмічною.
Алгоритм Флойда-Воршелла — динамічний алгоритм для знаходження найкоротших відстаней між усіма вершинами зваженого орієнтованого графа. Розроблений в 1962 році Робертом Флойдом і Стівеном Воршеллом [2].
Ці два алгоритми (Дейкстри та Флойда) призначені для знаходження найкоротших відстаней в графі, але відрізняються реалізацією.
В наш час широкого розмаху набули інформаційні технології. Хоча й алгоритм Дейкстри та Флойда-Воршелла мають широке коло використання, та саме в інформаційному просторі вони набули особливої ролі. Кожного дня створюється безліч різноманітної інформації, яку потрібно впорядкувати, організувати для подальшого використання. Провідні пошукові системи, такі як Google, Yandex, Live, Bing, Yahoo!, Nigma та інші, на основі отриманих результатів будують результати у вигляді графів чи дерев та, використовуючи згадані алгоритми, шукаються результат по заданим параметрам.
Саме через наявність великого інтересу автора до вивчення методів оптимізації, темою курсової роботи було обрано «Розробка програмної системи для обчислення найкоротших маршрутів з використанням алгоритму Дейкстри або Флойда та мови програмування С#».