
- •1 Аналіз предметної області
- •Основні поняття теорії графів для задачі комівояжера
- •1.2 Формулювання і деякі властивості рішень задачі комівояжера
- •2.1 Етапи генетичного алгоритму
- •3 Розв’язання задачі комівояжера за допомогою генетичного алгоритму
- •3.1 Вибір та обґрунтування форми подання задачі
- •4 Реалізація програми, що реалізує розв’язання задачі комівояжера за допомогою генетичного алгоритму
- •4.1 Проектування алгоритму програмного модуля
- •4.2 Розробка програми розв'язку задачі комівояжера Генетичний алгоритм, який використовується в даній роботі для розв’язання задачі комівояжера, має наступну схематичну структуру (рис 4.2).
- •5 Аналіз результатів тестування програмного забезпечення
- •Висновки
- •Післямова
- •Література
5 Аналіз результатів тестування програмного забезпечення
Для тестування програми було обрано наступні дані:
кількість міст та матриця вартостей переїзду між містами (рис. 5.1);
Рисунок 5.1 - Матриця вартостей переїзду між містами
розмір популяції, ймовірність мутації, кількість ітерацій (рис. 5.2);
Рисунок 5.2 – Параметри генетичного алгоритму
В результаті виконання 2000 ітерацій був найдений оптимальний шлях із мінімальною вартістю переїзду між містами. Також слід зауважити, що було виведено результат роботи програми після кожної із 2000 ітерацій (рис. 5.3) – (рис. 5.5). В кінці вікна видається інформацію про сумарний час, що був затрачений на роботу програми із заданими параметрами генетичного алгоритму.
Вихідні дані:
номер ітерації;
середня вартість шляху;
найкраща вартість шляху;
оптимальний шлях.
Рисунок 5.3 – Початок виведення результатів роботи програми
Рисунок 5.4 – Фрагмент виведення результатів роботи програми
Рисунок 5.5 – Кінець виведення результатів роботи програми
Проаналізуємо швидкодію програми в залежності від кількості міст. З наступними параметрами генетичного алгоритму:
- кількість ітерацій – 2000;
- розмір популяції – 200;
- ймовірність мутації – 0,2.
В результаті були отримані дані які відображені на рисунку 5.6.
Рисунок 5.6 – Швидкодія програми
Проаналізуємо процент оптимальності знайденої довжини шляхів в залежності від кількості ітерацій (рис. 5.7). Процент оптимальності – характеристичний показник, що показує оптимальну кількість ітерацій, необхідних для знайдення розв’язку задачі комівояжера при фіксованих параметрах генетичного алгоритму.
Рисунок 5.7 – Оптимальність роботи програми
Висновки
В ході виконання курсового проекту було досліджено основні концепції застосування генетичного алгоритму до задачі комівояжера, а також розроблено програмну реалізацію розв’язку вищезгаданої задачі, зокрема в першому розділі “Аналіз предметної області” було проаналізовано загальні підходи до розв’язання задачі про комівояжера, розглянуто основні її методи розв’язання, а також представлено дану задачу на графі, що дозволило наочно зобразити суть задачі про комівояжера. Також було визначено основні дані, які необхідні для розв’язку задачі, зокрема – кількість міст, матриця вартостей переїзду між містами, а також кількість ітерацій роботи програми.
В другому розділі курсового проекту “Обґрунтування методу розв'язання задачі комівояжера” детально було розглянуто доцільність використання генетичного алгоритму для оптимізаційних задач, зокрема, задачі про комівояжера. Також було відображено основні етапи генетичного алгоритму. Було зауважено головні переваги застосування генетичного алгоритму, серед яких можна виділити те, що генетичний алгоритм не потребує значних математичних вимог до представлення цільової функції та виду обмежень.
Третій розділ було присвячено безпосередньо застосуванню генетичного алгоритму для даної задачі, зокрема вибору та обґрунтуванню форми подання задачі, а також було представлено оціночну функцію для розв’язання задачі комівояжера за допомогою генетичного алгоритму. Наочно було відображено значення оціночної функції (рис. 3.2) для конкретної задачі про комівояжера за допомогою програми, що була розроблена у курсовому проекті.
В четвертому розділі курсового проекту було описано поетапну практичну реалізацію генетичного алгоритму до задачі комівояжера, зокрема, розроблено алгоритм програмного модуля, а також програму розв’язку задачі комівояжера за допомогою генетичного алгоритму. Також було відображено структурну схему генетичного алгоритму в розробленій програмній реалізації (рис. 4.2).
Щодо п’ятого розділу, то в ньому відбувався аналіз результатів тестування розробленої програми. Було взято конкретну задачу комівояжера, задано певні параметри генетичного алгоритму та реалізовано розв’язок за допомогою генетичного алгоритму. За результатами роботи програми було проаналізовано швидкодію програми в залежності від кількості міст, а також
процент оптимальності знайденої вартості шляхів в залежності від кількості ітерацій – при роботі даної програми час пошуку рішення зростає непропорційно після певної межі порівняно з невеликою кількістю міст. З іншого боку зростання витраченого на пошук рішення часу не завжди впливає на знаходження найкращого шляху, оскільки існує певна “межа ефективності”, після якої кількість ітерацій практично не впливає на результативність самого алгоритму.
Таким чином, в даному курсовому проектуванні була досягнута мета, яка ставилася, зокрема це розв’язання задачі комівояжера за допомогою генетичного алгоритму. Розроблена програма повністю відповідає вимогам технічного завдання.