Пошук оптимальних календарних планів з використанням генетичних алгоритмів

Аналіз можливості використання генетичних алгоритмів для рішення у задачах пошуку оптимальних календарних планів. Методика використання операторів генетичного алгоритму. Загальна схема генетичного алгоритму. Значення гена в кожній хромосомі популяції.

Рубрика Программирование, компьютеры и кибернетика
Вид статья
Язык украинский
Дата добавления 29.01.2019
Размер файла 64,8 K

Отправить свою хорошую работу в базу знаний просто. Используйте форму, расположенную ниже

Студенты, аспиранты, молодые ученые, использующие базу знаний в своей учебе и работе, будут вам очень благодарны.

Размещено на http://www.allbest.ru/

Пошук оптимальних календарних планів з використанням генетичних алгоритмів

С. М. Білан, Н. Р. Кондратенко, А. А. Данченко

Вінницький державний технічний університет

Хмельницьке шосе, 95, 21021 Вінниця, Україна

Розглянуто можливість використання генетичних алгоритмів у задачах пошуку оптимальних календарних планів. Запропоновано методику використання операторів генетичного алгоритму, пристосованого для розв'язання такого класу задач.

Ключові слова: календарний план, мережевий графік, генетичний алгоритм.

Вступ

Відомо, що задачі оптимального календарного планування є досить складними і супроводжуються громіздкими обчислювальними процедурами. Багаточисельні дослідження вказують на необхідність удосконалення існуючих способів розв'язку таких задач та на створення нових моделей для успішного їх вирішення 1. У цьому напрямку доцільно було б розглянути так звані еволюційні або генетичні алгоритми, які на даний час з успіхом використовуються для розв'язання певного кола достатньо складних задач оптимізації. Загальну схему генетичного алгоритму можна зобразити як процес, що складається з кількох етапів 2.

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

2. Створення нащадків:

1) вибір батьківської пари й здійснення схрещування;

2) внесення мутаційних змін у популяцію.

3. Відбір і формування нового покоління.

4. Якщо не виконується умова зупинки, то перехід до п. 2.

У статті розглядається можливість використання генетичних алгоритмів у задачах пошуку оптимальних календарних планів.

Постановка задачі

Розглянемо наступну постановку задачі. Є N = {1, 2, …, n} вимог, які задовольняються приладами з множини M = {1, 2, …, m} у заданій, специфічній для них послідовності. Цей процес виконання може включати в себе повторне звернення до одних і тих самих приладів, кожен з яких одночасно обслуговує не більше однієї вимоги, і відомо час обслуговування кожної вимоги кожним приладом. Переривання в процесі виконання кожної окремої вимоги відповідним приладом не припускаються. Необхідно побудувати оптимальний за швидкодією розклад процесу обслуговування усіх вимог.

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

Методика досліджень

Розв'язання поставленої задачі покажемо на вхідних даних, що наведені у табл. 1, яка описує порядок обслуговування шести вимог шістьма обслуговуючими приладами. Назвемо цю постановку задачі тестовою задачею 1.

Таблиця 1. Вхідні дані тестової задачі 1.

Вимоги

Порядок проходження приборів та час обслуговування (в дужках)

1

3(1)

1(3)

2(6)

4(7)

6(3)

5(6)

2

2(8)

3(5)

5(10)

6(10)

1(10)

4(4)

3

3(5)

4(4)

6(8)

1(9)

2(1)

5(7)

4

2(5)

1(5)

3(5)

4(3)

5(8)

6(9)

5

3(9)

2(3)

5(5)

6(4)

1(3)

4(1)

6

2(3)

4(3)

6(9)

1(10)

5(4)

3(1)

Розглянемо, відповідно наведеній вище схемі, послідовність використання генетичного алгоритму при розв'язанні тестової задачі.

1-й етап -- генерація початкової популяції. Початкова популяція буде складатися з певної кількості хромосом. Кожна хромосома являє собою в закодованому вигляді інформацію про один з орієнтованих графів, який можна отримати зі змішаного графа. Останній вважаємо умовою задачі. Будь-яка хромосома популяції складається з генів. Довжина хромосоми визначається кількістю генів і буде дорівнювати кількості операцій змішаного графа. Значення гена в кожній хромосомі популяції -- це число, яке відповідає порядковому номеру вимоги та генерується випадково. Загальний вигляд хромосоми представлений на рис. 1.

генетичний алгоритм календарний план

Размещено на http://www.allbest.ru/

Рис. 1. Загальний вигляд хромосоми.

Тобто, хромосома є послідовністю чисел від одиниці до k, де k -- максимальний номер вимоги, n -- остання операція змішаного графа, а уся популяція буде мати певну кількість таких хромосом -- числових послідовностей, згенерованих випадково. Опишемо як відбувається перетворення хромосоми в орієнтований граф. На першому кроці виконуємо вимогу, номер якої вказаний у хромосомі. На рис. 1 перший ген дорівнює одиниці; це означає, що вибирається операція першої вимоги. Всі ребра, які виходять з даної вершини перетворюємо на дуги, які з неї виходять. Після цього виключаємо цю вершину з графу разом з усіма інцидентними їй дугами. Наступний ген дорівнює 4. Обираємо операцію цієї вимоги та виконуємо аналогічні дії, і так до кінця хромосоми. Процес виключення вимог з хромосоми є послідовним, але коли операції однієї з вимог виконані, то всі інші вимоги перенумеруються. У граничних випадках хромосома може складатися з однакових чисел, що не впливає на загальний алгоритм перетворень, але буде збільшуватись час на перенумерацію, особливо для дуже довгих хромосом. Таким чином у результаті таких перетворень кожній хромосомі буде відповідати тільки один орієнтований граф, який не буде мати контурів, тому що вершина, в якій ребра замінюються на дуги, виключається з розгляду.

2-й етап -- створення нащадків. Після першого етапу маємо згенеровану випадково початкову популяцію, яка складається з числових послідовностей (орієнтованих графів -- розв'язків). Візьмемо розмір популяції (кількість хромосом) рівним 50. За схемою генетичного алгоритму над цією популяцією повинні виконуватися два генетичні оператори: схрещування та мутація. Схрещування проведемо за схемою схрещування з однією точкою. Сутність цієї схеми полягає у наступному. Випадково вибирається точка на хромосомі, що називається точкою схрещування. Після цього створюємо хромосому-нащадка шляхом комбінування сегменту першого з батьків, що стоїть зліва від обраної точки схрещування, з сегментом другого з батьків, що стоїть справа від точки схрещування.

На рис. 2 представлена операція схрещування з однією точкою, яка у даному випадку буде мати наступний вигляд.

Рис. 2. Операція схрещування.

1. Вибрати 2 хромосоми батьків шляхом генерування двох випадкових чисел.

2. Отримати хромосому-нащадка.

3. Якщо не всі хромосоми перебрані, то перейти до п. 1.

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

Далі над отриманою популяцією буде виконуватись операція мутації таким чином.

1. Згенерувати випадкові числа (номер хромосоми та номер гена у хромосомі).

2. Випадковим чином змінити ген. Запам'ятати змінену хромосому.

3. Якщо не виконується умова зупинки, то на п. 1.

У даному випадку коефіцієнт мутації (відношення кількості хромосом, що мутують, до загальної кількості хромосом) дорівнював 0,12. Тобто мутація здійснювалася над 9 хромосомами. У результаті розмір популяції став 84.

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

Для розв'язання даної задачі було проведено 500 ітерацій. Результати обчислювальних експериментів наведені на рис. 3, де по осі абсцис відкладені номери дослідів (запусків програми), по осі ординат -- мінімальний час виконання розкладу, лінія 1 та лінія 2 -- результати роботи класичних алгоритмів 1, лінія 3 --генетичного алгоритму.

Рис. 3. Графічні результати вирішення задачі 1.

Подальші дослідження можливості використання генетичних алгоритмів для вирішення задач календарного планування проведено шляхом зміни вхідних даних (див. табл. 2) та удосконаленням операторів генетичного алгоритму.

Таблиця 2. Вхідні дані тестової задачі 2.

Вимоги

Порядок проходження приборів та час обслуговування (в дужках)

1

2(91)

1(39)

3(90)

5(12)

4(45)

2

2(85)

3(61)

1(64)

4(47)

5(90)

3

1(29)

2(9)

3(49)

4(62)

5(44)

4

3(84)

2(52)

5(48)

1(47)

4(6)

5

3(14)

2(22)

1(26)

4(21)

5(72)

6

2(81)

1(71)

5(9)

3(85)

4(22)

7

2(46)

1(61)

3(32)

4(32)

5(30)

8

3(31)

2(46)

1(32)

4(19)

5(36)

9

1(76)

4(76)

3(85)

2(40)

5(26)

10

1(43)

2(75)

4(69)

3(46)

5(72)

11

2(78)

4(36)

1(11)

5(56)

3(21)

12

3(90)

1(11)

2(28)

4(46)

5(30)

13

1(85)

3(74)

2(10)

4(89)

5(33)

14

1(13)

2(7)

3(76)

4(52)

5(45)

15

1(6)

2(61)

5(69)

3(49)

4(53)

16

2(2)

1(95)

4(72)

5(65)

3(25)

17

1(37)

3(13)

2(21)

4(89)

5(55)

18

2(69)

3(51)

1(11)

4(89)

5(74)

19

1(86)

2(74)

5(88)

3(48)

4(79)

20

3(95)

1(99)

2(52)

4(98)

5(43)

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

1. Встановлюємо лічильник хромосом у 0.

2. Генеруємо 2 випадкових числа та запам'ятовуємо їх.

3. Вибираємо хромосоми батьків, де номер першої хромосоми дорівнює лічильнику хромосом, а номер другої -- першому з запам'ятованих випадкових чисел. Отримуємо хромосому-нащадка та запам'ятовуємо її.

4. Виконуємо п. 3, перебираючи всі запам'ятовані випадкові числа.

5. Інкрементуємо лічильник хромосом. Якщо він дорівнює 25, то вихід, інакше на п. 2.

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

Операція мутації буде мати наступний вигляд.

1. Генеруємо випадкові числа (номер хромосоми, кількість генів, які мутують).

2. Змінюємо ген. Якщо не виконується умова виходу, то на п. 1.

Коефіцієнт мутації для даного випадку дорівнює 0,1. Звідси розмір популяції після мутації буде дорівнювати 110. Відбір був реалізований як елітний. Але у наступну популяцію проходить не більше однієї хромосоми, що мають абсолютно ідентичний генний набір. Якщо таких хромосом більше ніж одна, то всі наступні замінюються на інші хромосоми. Це зроблено з метою запобігання виродження популяції, так як простір можливих рішень має дуже велику кількість локальних екстремумів.

Графічні результати вирішення задачі 2 наведені на рис. 4.

Рис. 4. Графічні результати вирішення задачі 2.

На рис. 4 лінія 1 -- серія розкладів для тестової задачі 2, які були отримані за допомогою класичного алгоритму з впровадженням генератора активних розкладів, лінія 2 -- аналогічні результати, але отримані з використанням іншого генератора. Останній графік (лінія 3) наочно демонструє результати розв'язання поставленої задачі, які були отримані за допомогою генетичного алгоритму, і які є набагато кращими ніж попередні. Таким чином, завдяки генетичному алгоритму, процес розв'язання поставленої задачі отримав певні риси природної еволюції, де в кожному поколінні відносно добрі особини (розв'язки) репродукують, у той час як відносно погані відмирають. Шляхом зупинки еволюції в певний момент були отримані достатньо прийнятні результати розв'язання поставленої задачі.

Висновок

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

Література

1. Танаев В.С., Шкурба В.В. Введение в теорию расписаний. -- М.: Наука, 1975. -- 256 с.

2. Круглов В.В., Борисов В.В. Искусственные нейронные сети. Теория и практика. -- М.: Горячая линия -- Телеком, 2001. -- 377 с.

Размещено на Allbest.ru

...

Подобные документы

  • Історія створення мови С#. Аналіз алгоритмів кодування даних. Розробка системи в середовищі Visual Studio 2008 Express. Схема шифрування алгоритму DES. Дослідження алгоритму RC2. Приклади хешів RIPEMD-160. Програмна реалізація основних процедур системи.

    дипломная работа [1,7 M], добавлен 25.10.2012

  • Особливості понять "цифра" и "число". Знакова система оброки інформації комп’ютером. Файл - сукупність байтів, записана на пристрій зберігання інформації. Сутність і властивості алгоритму. Схема - графічне подання алгоритму за допомогою зв’язаних блоків.

    лекция [185,0 K], добавлен 03.10.2012

  • Коректне використання операторів та конструкцій, побудова ефективних алгоритмів для розв'язку типових задач. Розробка алгоритмів та програми для створення бази даних телефонних номерів. Використання засобів розробки програмного забезпечення мовою Java.

    курсовая работа [1,0 M], добавлен 25.01.2016

  • Сучасні методи захисту текстової інформації. Порівняльний аналіз шифру Бекона з іншими відомими шифрами. Практичне використання алгоритмів кодування тексту. Написання програми "Шифр Бекона", використані компоненти для реалізації алгоритму, їх властивості.

    курсовая работа [606,8 K], добавлен 28.03.2016

  • Характеристика особливостей реалізації пошуку по масиву методами лінійним, бінарним, по "дереву Фібоначе" та екстраполярним на мові програмування Turbo Pascal. Використання алгоритма Рабіна-Карпа та Кнута-Морріса-Пратта для знаходження підрядка в рядку.

    курсовая работа [51,0 K], добавлен 16.09.2010

  • Дослідження можливостей пошуку в Google за тематикою. Використання можливості розширеного тематичного пошуку для підвищення релевантності пошуку за встановленим завданням. Розширений пошук зображень. Особливості пошуку щодо країн та наукових знань.

    контрольная работа [4,6 M], добавлен 03.02.2014

  • Основні елементи блок-схеми алгоритмів з розгалуженням. Команди обчислення значення логічного виразу. Вибір тих чи інших дій для продовження алгоритму. Прийняття рішення залежно від результату перевірки вказаної умови. Виконання команди перевірки умови.

    презентация [166,9 K], добавлен 23.11.2014

  • Створення алгоритму програмної моделі розкладу в учбовому закладі для ефективного вирішення завдань автоматичного складання розкладу, шляхом підбору найбільш оптимальних варіантів. Шляхи реалізації розробленого алгоритму в середовищі Mathemetica 5.0.

    дипломная работа [5,0 M], добавлен 25.10.2012

  • Розробка алгоритму роботи програми, її загальна характеристика та функціональні особливості, умови ефективного використання. Способи виклику та адреса завантаження, відомості про використання оперативної пам'яті. Посібник системного програміста.

    курсовая работа [182,6 K], добавлен 07.06.2016

  • Підстави для розробки програмного продукту для складання розкладу факультету вузу з використанням генетичних алгоритмів. Призначення розробленої програми, вимоги до функціональних характеристик, до програмної документації, техніко-економічні показники.

    курсовая работа [25,1 K], добавлен 12.04.2010

  • Програма, призначена для створення та оптимізації розкладу занять для факультетів вищих навчальних закладів, розроблена в середовищі Borland Delphi 7. Графічний вигляд екранних форм програмних модулів. Опис логічної структури, використані технічні засоби.

    реферат [3,2 M], добавлен 12.04.2010

  • Використання ітерацій для обчислення приблизних значень величин. Розробка ітераційних алгоритмів з перевіркою правильності введення даних. Побудова блок-схеми і програмування мовою Turbo Pascal обчислення значення функції, розкладеної в степеневий ряд.

    лабораторная работа [197,2 K], добавлен 16.12.2010

  • Топологічний аналіз початкового графу. Розробка підходів до розпаралелювання і послідовного рішення задачі – розрахунку потоків повітря у кожній гілці мережевого динамічного об’єкту – вентиляційної мережі. Аналіз ефективності паралельних рішень.

    курсовая работа [743,4 K], добавлен 27.08.2012

  • Програмна реалізація алгоритму пошуку найкоротшого шляху між двома будь-якими вершинами графа. Загальні відомості про графи. Особливості роботи в середовищі. Опис структури програми та програмних засобів. Схема програмної реалізації алгоритму Дейкстри.

    курсовая работа [676,7 K], добавлен 20.03.2011

  • Поняття черги в програмуванні, основні операції з чергою і їх реалізація. Опис алгоритму й специфікація програми. Розробка додатку з використанням задачі Ларсона по опису зв'язного неорієнтованого графа. Алгоритм розв’язку і результати виконання програми.

    курсовая работа [1,1 M], добавлен 14.09.2012

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

    курсовая работа [1,4 M], добавлен 31.01.2014

  • Засвоєння засобів аналізу трудомісткості обчислювальних алгоритмів. Побудова графа алгоритму з отриманої блок-схеми. Мінімізація графа, його подання у вигляді стохастичної матриці. Знаходження кількості звернень до файлів за допомогою Microsoft Excel.

    лабораторная работа [681,5 K], добавлен 02.06.2011

  • Алгоритм покриття за методом "мінімальній стовпець - максимальний рядок". Підпрограми основного алгоритму. Розробка програми сортування методом простих включень (бульбашковим методом). Словесний опис алгоритму, його контрольний приклад та ефективність.

    курсовая работа [36,4 K], добавлен 06.03.2013

  • Особливості та методика пошуку інформації та об’єктів у зовнішній пам’яті комп’ютера, в мережі або операційній системі Windows. Специфіка використання автономної й онлайнової довідки операційної системи. Параметри пошуку в прихованих або системних папках.

    конспект урока [885,7 K], добавлен 03.01.2010

  • Обчислення оптимальних показників на основі математичних розрахунків. Спрощена математична модель. Перебір варіантів булевих змінних і вибір оптимального за цільовою функцією. Теоретичні положення методу гілок та меж. Кінцева множина допустимих рішень.

    курсовая работа [1,8 M], добавлен 19.09.2012

Работы в архивах красиво оформлены согласно требованиям ВУЗов и содержат рисунки, диаграммы, формулы и т.д.
PPT, PPTX и PDF-файлы представлены только в архивах.
Рекомендуем скачать работу.