Студопедия — Реалізація програми, що реалізує розв’язання задачі комівояжера за допомогою генетичного алгоритму
Студопедия Главная Случайная страница Обратная связь

Разделы: Автомобили Астрономия Биология География Дом и сад Другие языки Другое Информатика История Культура Литература Логика Математика Медицина Металлургия Механика Образование Охрана труда Педагогика Политика Право Психология Религия Риторика Социология Спорт Строительство Технология Туризм Физика Философия Финансы Химия Черчение Экология Экономика Электроника

Реалізація програми, що реалізує розв’язання задачі комівояжера за допомогою генетичного алгоритму






 

4.1 Проектування алгоритму програмного модуля

Схему генетичного алгоритму схематично можна представити таким чином:

1. Згенерувати випадковим чином набір початкових рішень, який називається популяцією, розміру P. Популяція є множиною бітових рядків для генетичного алгоритму і множиною символьних рядків для еволюційних алгоритмів. Кожен рядок представлений у закодованому вигляді одним з можливих рішень задачі (в загальному випадку далеко не оптимальним) і називається хромосомою. Хромосоми еволюціонують протягом множини ітерацій, які носять назву поколінь (або генерацій).

2. Вичислити цільову функцію для кожного рядку (кожної хромосоми) популяції. На кожній ітерації кожна хромосома оцінюється за допомогою деякої міри відповідності, яку називають функцією пристосованості.

3. Виконати операцію селекції. Нова генерація формується шляхом вибору деяких батьків і нащадків згідно значенням функції пристосованості і знищення інших для залишення постійним розміру популяції.

4. Виконати операцію схрещування.

5. Виконати операцію мутації. Для створення нової генерації нові хромосоми, що називаються нащадками, формуються або шляхом схрещування двох батьківських хромосом з попередньої генерації, або шляхом випадкової зміни (мутації або інверсії) однієї хромосоми.

6. Якщо критерії зупинки не досягнуто, перейти до кроку 2, інакше закінчити роботу.

Загальна схема генетичного алгоритму наведена на рисунку 4.1 [7].

 

Рисунок 4.1 – Схема генетичного алгоритму

Хромосоми з більшим значенням функції відповідності мають більше шансів вижити (бути відібраними для нової генерації). Після декількох ітерацій алгоритм збігається до кращої хромосоми, яка є або оптимальним, або близьким до оптимального рішенням.

Основна частина програми складається з кількох основних функцій, які виконуються циклічно стільки разів, скільки вказано ітерацій.

Отже алгоритм роботи програми наступний:

1. Генерація матриці вартостей проїзду між містами.

2. Отримання кількості ітерацій роботи програми n.

3. Генерація початкової популяції турів.

4. Визначення вартостей турів.

5. Сортування турів по вартості.

6. Схрещування.

7. Сортування турів по вартості.

8. Мутація.

9. Сортування турів по вартості.

10. Додавання до лічильника одиниці k = k + 1.

11. Перевірка лічильника; якщо k = n – п.6, інакше п.12.

12. Виведення результату.

 

4.2 Розробка програми розв'язку задачі комівояжера

Генетичний алгоритм, який використовується в даній роботі для розв’язання задачі комівояжера, має наступну схематичну структуру (рис 4.2).

Слід зауважити, що кожний структурний елемент схеми реалізований у вигляді окремої функції або ряду функцій, серед яких є основні та додаткові.

Наведемо приклади основних функцій, які реалізовані в даному програмному модулі:

 

Рисунок 4.2 – Схема генетичного алгоритму

- функція, яка генерує матрицю вартостей проїзду між містами. При цьому враховується, що вартість переїзду з міста 1 в місто 2 дорівнює вартості переїзду з міста 2 в місто 1;

- функція, яка сортує маршрути популяції за зростанням їх вартості. В результаті її роботи найкращий на дану ітерацію тур займає перше місце в множині можливих варіантів турів;

- функція, яка виконує випадкову зміну випадкової кількості генів в заданій кількості хромосом початкової популяції;

- функція, що виконує схрещування двох випадково вибраних хромосом у випадковій точці. Принцип роботи функції простий: нова хромосома формується до

точки розриву з елементів батьківської хромосоми 1, а після з елементів батьківської хромосоми 2. Інша дочірня хромосома формується аналогічним чином;

- функція перевірки хромосом на можливість схрещування у випадковій точці. Дві випадкові хромосоми до та після точки розриву можуть містити однакові елементи, що недопустимо при формуванні туру (кожне місто слід відвідати лише один раз).

Також слід зауважити про те, що до складу програми входить ряд допоміжних функцій, які виконують визначення сумарної довжини окремого туру, виведення окремих турів та їх довжин, випадкову генерацію турів, виведення часу роботи програми, тощо.

 








Дата добавления: 2015-09-15; просмотров: 465. Нарушение авторских прав; Мы поможем в написании вашей работы!



Обзор компонентов Multisim Компоненты – это основа любой схемы, это все элементы, из которых она состоит. Multisim оперирует с двумя категориями...

Композиция из абстрактных геометрических фигур Данная композиция состоит из линий, штриховки, абстрактных геометрических форм...

Важнейшие способы обработки и анализа рядов динамики Не во всех случаях эмпирические данные рядов динамики позволяют определить тенденцию изменения явления во времени...

ТЕОРЕТИЧЕСКАЯ МЕХАНИКА Статика является частью теоретической механики, изучающей условия, при ко­торых тело находится под действием заданной системы сил...

Типовые ситуационные задачи. Задача 1.У больного А., 20 лет, с детства отмечается повышенное АД, уровень которого в настоящее время составляет 180-200/110-120 мм рт Задача 1.У больного А., 20 лет, с детства отмечается повышенное АД, уровень которого в настоящее время составляет 180-200/110-120 мм рт. ст. Влияние психоэмоциональных факторов отсутствует. Колебаний АД практически нет. Головной боли нет. Нормализовать...

Эндоскопическая диагностика язвенной болезни желудка, гастрита, опухоли Хронический гастрит - понятие клинико-анатомическое, характеризующееся определенными патоморфологическими изменениями слизистой оболочки желудка - неспецифическим воспалительным процессом...

Признаки классификации безопасности Можно выделить следующие признаки классификации безопасности. 1. По признаку масштабности принято различать следующие относительно самостоятельные геополитические уровни и виды безопасности. 1.1. Международная безопасность (глобальная и...

Значення творчості Г.Сковороди для розвитку української культури Важливий внесок в історію всієї духовної культури українського народу та її барокової літературно-філософської традиції зробив, зокрема, Григорій Савич Сковорода (1722—1794 pp...

Постинъекционные осложнения, оказать необходимую помощь пациенту I.ОСЛОЖНЕНИЕ: Инфильтрат (уплотнение). II.ПРИЗНАКИ ОСЛОЖНЕНИЯ: Уплотнение...

Приготовление дезинфицирующего рабочего раствора хлорамина Задача: рассчитать необходимое количество порошка хлорамина для приготовления 5-ти литров 3% раствора...

Studopedia.info - Студопедия - 2014-2024 год . (0.012 сек.) русская версия | украинская версия