Студопедия — РОЗВ’ЯЗАННЯ ЗАДАЧІ КОМІВОЯЖЕРА ЗА ДОПОМОГОЮ ГЕНЕТИЧНОГО АЛГОРИТМУ
Студопедия Главная Случайная страница Обратная связь

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

РОЗВ’ЯЗАННЯ ЗАДАЧІ КОМІВОЯЖЕРА ЗА ДОПОМОГОЮ ГЕНЕТИЧНОГО АЛГОРИТМУ






 

3.1 Вибір та обґрунтування форми подання задачі

В першу чергу розпочнемо із зручного представлення шляху комівояжера (туру). Міста, які будуть входити в певний шлях, який буде пройдений комівояжером представимо у формі масиву фіксованого розміру Tour. Масив Tour буде містити елементи (Tour1, Tour2, …, Tourn-1, Tourn), де Tour1, Tour2, …, Tourn-1, Tourn – це можливі варіанти шляху комівояжера. Таким чином будемо мати двомірний масив турів, в кожен з яких буде входити впорядкований набір міст. Таке представлення надзвичайно вигідне з точки зору програмної реалізації, оскільки в подальшому будемо використовувати як приклад операцію сортування на основі функції відповідності, яка в даному представленні зведеться до впорядкування елементів масиву.

Щодо вартостей шляхів (турів) комівояжера, то в даному випадку будемо вводити масив TourCost, в плані розмірності, який буде ідентичний масиву Tour.

Також потрібно зауважити що масиви повинні бути зв’язані між собою суворою відповідністю: Tour1 → TourCost1, Tour2 → TourCost2,…, Tourn→ TourCostn.

Далі буде здійснюватися процедура сортування, а саме сортування за критерієм вартості шляху комівояжера – таким чином отримаємо відсортований масив, який буде містити вартості турів в порядку їх зростання. Тобто першим елементом масиву TourCost буде елемент TourCostk вартість якого буде найменшою з поміж усіх елементів масиву. Також слід зауважити. що даний масив повинен бути фіксованого розміру, так як в результаті схрещування будемо отримувати нові батьківські та дочірні хромосоми, а відповідно їх кількість буде перевищувати розмір масиву, то доцільно ввести деяку під функцію сортування, яка буде відповідати за порівняння найкращих генів. Для кращого розуміння розглянемо наприклад ситуацію при якій будемо мати 6 хромосом, припустимо. що в результаті схрещування отримаємо вже 10 хромосом, проте в кінцевому варіанті повинні мати ті ж 6 хромосом з мінімальною вартістю шляху (туру) [3].

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

 

3.2 Розробка оціночної функції для розв’язання задачі комівояжера за допомогою генетичного алгоритму

Суть генетичного алгоритму полягає в наступному - нехай на деякому кроці t є популяція G(t), що складається з N рядків. Для популяції вводиться поняття середньої цінності популяції Fср (G(t)):

. (3.1)

Аналогічно для підпопуляції GH(t), що задовольняє схемі H, вводиться поняття середньої цінності під популяції Fср (GH(t)):

. (3.2)

Генетичний алгоритм здійснює перехід від популяції G(t) до популяції G(t+1) таким чином, щоб середня цінність складових її рядків збільшувалася, причому кількість нових рядків у популяції дорівнює KN, де K - коефіцієнт новизни. Якщо K<1, то в новій популяції зберігаються деякі рядки зі старої, а якщо K=1, то популяція піддасться повному відновленню.

Генетичний алгоритм включає три операції:

- відтворення;

- схрещування;

- мутація.

Відтворення представляє собою процес вибору K*NN рядків популяції G(t) для подальших генетичних операцій. Вибір проводиться випадковим чином, причому ймовірність вибору рядка Sit пропорційна її цінності [9]:

. (3.3)

Процес вибору повторюється K*NN раз. Передбачувана кількість екземплярів рядка Sit в популяції G(t+1) дорівнює:

. (3.4)

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

Нехай в популяції G(t) міститься n(Н, t) рядків, які відповідають схемі H. Тоді в результаті відтворення кількість рядків, які відповідають схемі H в популяції G(t+1) дорівнюватиме n(Н,t+1):

. (3.5)

Використовуючи вирази для середньої цінності популяції Fср(G(t)) і пiдпопуляціїFср(GH (t)), можна записати формулу (3.5) у вигляді:

. (3.6)

Середня цінність пiдпопуляції, що відповідає схемі H, може бути представлена в наступному вигляді:

, (3.7)

де с - деяка величина. Тоді формула (3.6) набуде вигляду:

. (3.8)

Припустимо, що величина с при зміні t не змінюється, тоді, починаючи з t=0, отримаємо:

, (3.9)

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

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

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

Схрещування являє собою процес випадкового обміну значеннями відповідних елементів для довільно сформованих пар рядків. Для цього вибрані елементи на етапі відтворення рядка випадковим чином групуються в пари. Далі кожна пара із заданою вірогідністю Рскр піддається схрещуванню. При схрещуванні відбувається випадковий вибір позиції роздільника d (d = 1, 2,..., l-1, де L - довжина рядка). Потім значення перших d елементів першого рядка записуються у відповідні елементи другого, а значення перших d елементів другого рядка - до відповідних елементів першого. В результаті отримуємо два нових рядки, кожен з яких є комбінацією частин двох батьківських рядків.

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

Розглянемо деяку схему (cхемою в генетичному алгоритмі називають опис деякої підмножини рядків) H=(h1,h2,...,hm ), для якої визначимо порядок о(Н) - число фіксованих позицій схеми і визначальну довжину d(Н) - відстань (число позицій) між першою і останньою фіксованими позиціями. Припустимо, що до операції схрещування рядок S був представником схеми H, тобто S UH. Припустимо, що рядок S1отриманий з рядка S в результаті схрещування. Рядок S1 буде представником схеми H в тому випадку, якщо позиція роздільник при схрещуванні не розташовувалася між фіксованими позиціями схеми. Ймовірність того, що позиція роздільника опиниться між фіксованими позиціями схеми, дорівнює:

. (3.10)

Врахуємо, що схрещування відбувається з імовірністю Pc, а також те, що навіть якщо позиція роздільника опиниться між фіксованими позиціями схеми, рядок S1 може бути представником схеми H, якщо даний рядок був отриманий схрещуванням двох представників схеми H. Тоді ймовірність Рs,1 того, що рядок S1 є представником схеми H, визначається виразом [9]:

. (3.11)

Вважаючи незалежність операцій відтворення і схрещування, оцінимо сукупний ефект від цих операцій, тобто число представників схеми H в популяції G(t+1):

. (3.12)

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

Мутація являє собою процес випадкової зміни значень елементів рядка. Для цього рядки, що вийшли на етапі схрещування, проглядаються поелементно, і кожен елемент із заданою вірогідністю мутації Pмут може мутувати, тобто змінити значення на будь-який випадково обраний символ, допустимий для даної позиції. Операція мутації дозволяє знаходити нові комбінації ознак, що збільшують цінність рядків популяції.

Припустимо, що до мутації рядок S1був представником схеми H, тобтоS1 UH. Припустимо, що рядок S2отриманий з рядка S1 в результаті мутації. Рядок S2 буде представником схеми H в тому випадку, якщо жоден з елементів рядка, який відповідає фіксованим позиціях схеми, не було змінено.

Враховуючи, що мутація відбувається з імовірністю Pмут, ймовірність ps2 того, що рядок S2 є представником схеми H, визначається виразом:

, (3.13)

де о(Н) - число фіксованих позицій схеми H [10].

Вважаючи незалежність операцій відтворення, схрещування і мутації оцінимо сукупний ефект від цих операцій, тобто число представників схеми H в популяції G (t +1):

. (3.14)

Так як, при малих значеннях pm приблизно можна вважати,

, (3.15)

то вираз (3.14) можна записати у вигляді:

, (3.16)

або

. (3.17)

Таким чином, схеми, у яких мала визначальна довжина та порядок, і для яких відповідна підпопуляція має середню цінність, що перевищує середню цінність популяції, експонтенціально збільшують число представників у наступних поколіннях [9].

Наведемо значення оціночної функції для розв'язку задачі комівояжера (рис. 3.2) з наступними параметрами генетичного алгоритму:

- кількість ітерацій – 50;

- розмір популяції – 200;

- ймовірність мутації – 0,2,

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

Рисунок 3.1 - Матриця вартостей переїзду між містами

 

Рисунок 3.2 – Розв’язок задачі комівояжера

 

В даному випадку найкраще значення оціночної функції всіх особин серед усіх популяцій становить 106, а середнє значення по оціночним функціям після 50 виконаних ітерацій – 161,1.

 

 


 







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



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

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

Теория усилителей. Схема Основная масса современных аналоговых и аналого-цифровых электронных устройств выполняется на специализированных микросхемах...

Логические цифровые микросхемы Более сложные элементы цифровой схемотехники (триггеры, мультиплексоры, декодеры и т.д.) не имеют...

Тема: Кинематика поступательного и вращательного движения. 1. Твердое тело начинает вращаться вокруг оси Z с угловой скоростью, проекция которой изменяется со временем 1. Твердое тело начинает вращаться вокруг оси Z с угловой скоростью...

Условия приобретения статуса индивидуального предпринимателя. В соответствии с п. 1 ст. 23 ГК РФ гражданин вправе заниматься предпринимательской деятельностью без образования юридического лица с момента государственной регистрации в качестве индивидуального предпринимателя. Каковы же условия такой регистрации и...

Седалищно-прямокишечная ямка Седалищно-прямокишечная (анальная) ямка, fossa ischiorectalis (ischioanalis) – это парное углубление в области промежности, находящееся по бокам от конечного отдела прямой кишки и седалищных бугров, заполненное жировой клетчаткой, сосудами, нервами и...

Патристика и схоластика как этап в средневековой философии Основной задачей теологии является толкование Священного писания, доказательство существования Бога и формулировка догматов Церкви...

Основные симптомы при заболеваниях органов кровообращения При болезнях органов кровообращения больные могут предъявлять различные жалобы: боли в области сердца и за грудиной, одышка, сердцебиение, перебои в сердце, удушье, отеки, цианоз головная боль, увеличение печени, слабость...

Вопрос 1. Коллективные средства защиты: вентиляция, освещение, защита от шума и вибрации Коллективные средства защиты: вентиляция, освещение, защита от шума и вибрации К коллективным средствам защиты относятся: вентиляция, отопление, освещение, защита от шума и вибрации...

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