УДК 004.67
1С. ДМИТРОВА, Н.М. КАРАСЬ
Нащональна металургшна академiя Укра1ни
КОМБ1НАТОРНИЙ ТА ГЕНЕТИЧНИЙ АЛГОРИТМИ ПОШУКУ РОЗКЛАДУ ОБСЛУГОВУВАННЯ БАГАТОПРИБОРНО1 СИСТЕМИ
Робота присвячена виршенню задач1 побудови розкладу обробки деталей приладами. Пропонуеться використовувати два алгоритми для виргшення задач1 розкладу обслуговування багатоприборно'1 системи: комбтаторний та генетичний.
Ключовi слова: комбгнаторний алгоритм, генетичний алгоритм, задач1 побудови розкладу.
И.С. ДМИТРИЕВА, Н.М. КАРАСЬ
Национальная металлургическая академия Украины
КОМБИНАТОРНЫЙ И ГЕНЕТИЧЕСКИЙ АЛГОРИТМЫ ПОИСКА РАСПИСАНИЯ ОБСЛУЖИВАНИЯ МНОГОПРИБОРНОЙ СИСТЕМЫ
Работа посвящена решению задачи построения расписания обработки деталей приборами. Предлагается использовать два алгоритма для решения задачи расписания обслуживания многоприборной системы: комбинаторный и генетический.
Ключевые слова: комбинаторный алгоритм, генетический алгоритм, задачи построения расписания.
I. DMYTRIIEVA, N. KARAS
National Metallurgical Academy of Ukraine
COMBINATORIAL AND GENETIC ALGORITHMS FOR SERVICE SCHEDULE LOOKUP IN A
MULTI-INSTRUMENT SYSTEM
The work is devoted to solving the problem of constructing parts processing schedules. It is proposed to use two algorithms for solving the problem of maintenance schedules in multi-instrument systems: combinatorial and genetic.
Keywords: combinatorial algorithm, genetic algorithm, the task of building schedules.
Постановка проблеми
В даний час виршення багатьох практичных завдань складання розкладу, як i шш1 задач1 комбшаторно! опти]шзацп, ввдноситься до класу NP-повних, ршення яких пов'язано з великими часовими витратами. Побудоват в даний час алгоритми складання розкладiв (планування), заснован на методi динамiчного програмування, симплекс-метод^ методi гшок i меж, рiзних евристичних подходах, дозволяють знайти прийнятт за яшстю та тимчасовим витратам рiшення тiльки для задач невелико! розмiрностi.
У цiй статтi пропонуеться використовувати два алгоритми для виршення задачi розкладу обслуговування багатоприборно! рiзнорiдноl системи: комбiнаторний та генетичний.
Задачi синтезу розкладiв формулюються як пошук оптимального розподiлу множини робiт в час мiж обслуговуючими апаратами (приладами). Щ задачi мають численнi додатки, до яких, перш за все, слщ вщнести планування виробництва, розподш ресурсiв, проектування технологiчних процесiв.
Комбшаторний алгоритм Постановку побудови розкладу на паралельних машинах можна задати наступним чином: е множина деталей та набiр однакових приладiв для 1х обробки. Кожна деталь мае бути оброблена на кожному з приладiв за рiзний час [1].
Нехай J = {J1, J2,..., Jn} - множина деталей, а M = {M1,M2,...,Mm} - множина приладiв, pi.
- час обробки деталi J ■ на приладi Mt, i = 1..m, j = 1..n .
Роботи, як1 необхвдно виконати з деталями, складаються з операцш: J = {O1 j,O2j,...<O }. Для
виконання операцп O необх1дно p j часу та може виконуватись на одному з приладiв з множини M .
ij ij
П1д розкладом маемо на увазi призначення кожно! деталi на деякий верстат в кожен момент часу. Розклад е допустимим, якщо:
• Кожна деталь оброблена повшстю,
• Кожна деталь пройшла обробку на кожному з приладiв,
• Нiякий верстат не виконуе одночасно бшьше одно! операцц',
• Жодна з деталей не виконуеться одночасно бшьше шж на одному прилад^
• Час виконання вах робгг не повинен бути менше тривалосп виконання робiт.
Задача побудови розкладу приймае наступний вид:
Стах = тах(С) ^ тт
п
X ХцР] - Стах. г =
Ц =1 т
X хц = 1ц = 1п
г=1
Р} - Стах, j = 1П
де с. — час виконання вах робiт на г -му приладi;
Г1, якщо робота J. призначена наМ.; х ц = 1 •
[0, в гншому випадку.
Обмеження задачi говорять про те, що час виконання обробки уах деталей мае бути мiнiмальним,
сумарна тривалють виконання робiт на кожному з приладiв не перевищуе Стах , кожна робота виконана на
кожному приладь
Виконавши деяк1 перетворення, отримаемо оцiнку:
с
max
mX Pj
j=
та юнують допустимi розв'язки задач.
Але, як було зазначено рашше, комбшаторш задачi вадноситься до класу NP-повних. Тому, для прискорення часу пошуку розв'язку дано! задачi при великш кiлькостi даних, нами було запропоновано застосування генетичного алгоритму.
Генетичний алгоритм (ГА)
Основну увагу придiлено розгляду способiв подання потенцiйних рiшень для задачi синтезу розкладiв i демонстраци на прикладах рiзних модифiкацiй операторiв схрещування i мутацп, складання плану--графка робiт [2].
Незважаючи на те що в даний момент для виршення рiзних прикладних задач вже створено велику к1льк1сть алгорштшв на основi моделювання деяких властивостей генетичного апарату пристосування живих органiзмiв до навколишнього середовища, всiм цим алгоритмам присутш загальнi риси. У вах генетичних алгоритмах можна видшити однаковi основнi етапи вирiшення завдань. Розглянемо цi етапи бiльш детально.
Попередньо зауважимо, що при опис генетичного алгоритму прийнято використовувати термшолопю, запозичену з молекулярно! бюлогп i генетики, що ще раз пвдкреслюе аналогiю з еволюцiйними процесами, що ввдбуваються в живiй природi. Робота будь-якого ГА починаеться з кодування потенцiйних рiшень, яке полягае у формуванш хромосоми. Хромосоми складаються з гешв. У загальному випадку кожен ген може приймати речов^ цшочисельш або бiнарнi значення i характеризуемся паралельною формою (безлiччю допустимих значень). Так, наприклад, якщо вирiшуеться завдання з n параметрами (генами), кожен з яких кодуеться бiтами, то хромосома, представлена рядком довжиною m — n бiтiв, кодуе ва можливi потенцiйнi рiшення задачi. Кожен з варiантiв вирiшення завдання оцшюеться за допомогою деяко! функци пристосованосп (щлъобсх функци, функци фiтнесу) [3].
Для скорочення кiлькостi варiантiв ршень задачi, як1 переглядаються алгоритмом, Голдберг висунув гiпотезу, що лежить в основi генетичних алгоритмiв, про будiвельнi блоки. В1дпов1дно до ще1 гшотези, генетичнi алгоритми повиннi одночасно виконувати двi функци: вирощування будiвельних блошв рiшень; змiшування цих блоков з метою отримання оптимального рiшення. В ГА ця гiпотеза реалiзуеться такими мехашзмами i операторами:
механiзм генерацп початково1 популяци,
механiзм оцiнки якосп хромосоми з використанням функци пристосування, мехашзм селекци, оператори схрещування, оператори мутацп,
мехашзм зупинки ГА (еволюцiйного процесу).
Класичш генетичнi алгоритми оперують з хромосомами постшно! довжини, що складаються з гешв зi значениями 0 або 1. Закодована хромосома, в якш представлено безлiч потенцiйних рiшень, називаеться генотипом. Генотип задае пошуковий проспр рiшень. У теорп природно! еволюцп генотип - це програма розвитку i еволюци особини. Реалiзацiя особини (одного з можливих варiаитiв виршення задачi) у виглядi хромосоми з конкретними значеннями генiв являе собою фенотип. В теорп природного вхдбору фенотип
нeoбxiдний для ^лекци i пepexoдy на наступний piвeнь eвoлюцiï. Пoпyляцiя - йoгo peпpoдyкцiйнa rpyrn xpoмocoм фiкcoвaнoю чиceльнocтi, в якш бyдь-якi двi xpoмocoми X., X. G G , i j мoжyть в^тупати в poлi батьк1в.
Cxpeщyвaння бать^^к^ xpoмocoм мoдeлюe пepeдaчy cпaдкoвocтi нащадкам. В peзyльтaтi cxpeщyвaння yтвopюютьcя дoчipнi xpoмocoми. Такий мexaнiзм в ГА peaлiзyeтьcя oпepaтopoм cxpeщyвaння. Цей o^paTOp мoжe зacтocoвyвaтиcя не дo вcix xpoмocoм в пoпyляцiï. Йoгo зacтocyвaнню пepeдye вибip бaтькiвcькиx пap. Рeзyльтaт зacтocyвaння oпepaтopa cxpeщyвaння пoлягae в oбмiнi чacтини гeнeтичнoгo кoдy мiж двoмa xpoмocoмaми бaтькiв. Cxpeщyвaння пpoвoдитьcя з мeтoю пopoджeння з наявш1' бeзлiчi piшeнь (пoпyляцiя бaтькiв) нoвoï бeзлiчi piшeнь (пoпyляцiя нaщaдкiв) Haгaдaeмo, щo за гiпoтeзoю Хoллaндa xopoшi cxeми piшeнь пpи cxpeщyвaннi нapoджyють нoвi cxeми бiльш виcoкoï mocri. Один з клacичниx вapiaнтiв orapaTOpa cxpeщyвaння - зaпpoпoнoвaнe Хoллaндoм oднoтoчeчнe cxpeщyвaння, пpи якoмy випaдкoвим чишм вибиpaeтьcя чиcлo n G {1,2,...,L — 1}, де L - дoвжинa xpoмocoми, n - тoчкa cxpeщyвaння. Пoтiм yтвopюютьcя двi нoвi дoчipнi xpoмocoми шляxoм oбмiнy вcix гeнiв м1ж двoмa бaтькiвcькими xpoмocoмaми, пoчинaючи з (n +1) -го дo L -го включта.
Myтaцiя xpoмocoм в клacичнoмy гeнeтичнoмy aлгopитмi cклaдaeтьcя в iнвepтyвaннi cимвoлy в випaдкoвo oбpaнoмy гeнi. Викopиcтaння oпepaтopiв мyтaцiï eфeктивнo для виxoдy з лoкaльнoгo eкcтpeмyмy. Цей мexaнiзм мoжe зacтocoвyвaтиcя для пoпyляцiï як батьк1в, так i нащадшв.
Пepeвipкa тoгo, нacкiльки xopoшим е i -е piшeння зaдaчi, здiйcнюeтьcя за дoпoмoгoю oбчиcлeння фyнкцiï пpиcтocoвaнocтi FP(Xi ) для xpoмocoми Xi. Зазвичай фyнкцiя пpиcтocoвaнocтi в явнoмy виглядi
мicтить кpитepiй oптимiзaцiï poзв'язyвaнoï задача Для ceлeкцiï xpoмocoм y пoпyляцiйнiй гpyпi poзмipy N чacтo викopиcтoвyють нopмaлiзoвaнy функцш пpиcтocoвaнocтi
FP( Xi )
FP (X ) =
norm i
N
Z FP( X )
i=1
Ceлeкцiя xpoмocoм шлягае в ïx вiдбopi та фopмyвaннi нacтyпнoï пoпyляцiï. Ceлeкцiя - це випадтовий пpoцec, пpи якoмy кepyютьcя пpaвилoм: чим бiльшe значення функцп пpиcтocoвaнocтi мае дана xpoмocoмa, тим вище ймoвipнicть ïï вибopy для pe^o^^iL Haйпpocтiший i нaйбiльш пoпyляpний мeтoд ceлeкцiï xpoмocoм - метод pyлeтки.
Mexaнiзм зупинки aлгopитмy визнaчaeтьcя на eтaпi йoгo пpoeктyвaння з ypaxyвaнням пpиpoдниx oбмeжeнь, пoв'язaниx з чатом poзpaxyнкy на EOM, a6o кiлькocтi пoпyляцiй, пpи якиx значення функцп пpиcтocoвaнocтi пepecтae пoлiпшyвaтиcя. Отpимaнa в peзyльтaтi n iтepaцiй xpoмocoмa з нaйбiльшим значенням фyнкцiï пpиcтocoвaнocтi пpиймaeтьcя як piшeння дaнoï задача Однак немае гapaнтiï, щo це piшeння - нaйкpaщe.
Пepeд зacтocyвaнням гeнeтичнoгo aлгopитмy нeoбxiднo пpeдcтaвити завдання у виглядi xpoмocoми, пicля чoгo cтae мoжливим зacтocyвaння caмoгo aлгopитмy.
Генетичний aлгopитм включае нacтyпнi етапи:
1. Гeнepyвaння пoчaткoвoï пoпyляцiï.
2. Обчтелення значень функцй' пpиcтocoвaнocтi FP xpoмocoм пoпyляцiï.
3. Ceлeкцiя xpoмocoм, пpизнaчeниx для peпpoдyкцiï.
4. Haвчaння за дoпoмoгoю oпepaтopiв мyтaцiï i cxpeщyвaння нoвoï пoпyляцiï нащадк1в.
5. Шпулящя батьк1в знищyeтьcя, а шпулящя нащадк1в cтae нoвoю пoпyляцieю батьшв.
6. Пepeвipкa yмoви кiнця ди aлгopитмy (якщo «так» - то етап 7, «m» - етап 2).
7. Haйкpaщa xpoмocoмa з пoтoчнoï пoпyляцiï пpиймaeтьcя як piшeння зaдaчi.
Рoзглянeмo на пpиклaдi ocнoвнi мoмeнти poбoти гeнeтичнoгo aлгopитмy.
Пpипycтимo, щo cлiд зpoбити двi po6ora J, кoжнa з якж cклaдaeтьcя з тpьox oпepaцiй, щo викoнyютьcя на тpьox пpилaдax. Ввeдeмo пoзнaчeння S-(t.), де tj - тpyдoмicткicть oпepaцiï O- на пpилaдi. У тepмiнax введемте пoзнaчeння завдання фopмyлюeтьcя так:
J1 1(10)3(7) 2(20)
J2 2(15)1(2)3(8).
Це oзнaчae, щo oпepaцiя O1 poбoти J1 викoнyeтьcя на S1 i t1 = 10 i т.д.
Для пoдaння piшeння (вiдoбpaжeння плану--^аф^ H ) цьoгo завдання, нeoбxiднa xpoмocoмa, щo cклaдaeтьcя з б гешв (б - cyмapнa шлькють oпepaцiй для вcix poбiт). ^жен ген мoжe пpийняти значення 1 a6o 2. HexaM xpoмocoмa, яка пpeдcтaвляe piшeння, мае вигляд:
1 2 2 2 2 1.
Iнтepпpeтaцiя ще1" xpoмocoми нacтyпнa:
• помютити в Н першу операцш О1 першо! незашнчено! роботи J1;
• помютити в Н першу операцш О1 друго! незаюнчено! роботи Jз;
• помiстити в Н другу операцш О2 друго! незакшчено! роботи J2 ;
• помiстити в Н третю операцш О3 друго! незаюнчено! роботи J2;
• помютити в Н четверту фжгивну операцш О4 друго! незакiнчено! роботи J2 ;
• помiстити в Н другу операцш О2 першо! незак1нчено! роботи J1.
Спочатку, перед вставкою операцi! в план-графщ маемо циклiчний список СЬ0 робгг i хромосому
Х: СЦ = [1 -(1,3,2);2-(2,1,3)], Х0 = [1,2,2,2,2,1].
Так як перший ген в хромосомi Х0 визначае роботу J1, беремо першу операцш О1 роботи J1 i вставляемо !! в план-графж. В результатi отримуемо:
СЦ = [1 - (3,2);2 - (2,1,3)], 5^1111111111
Х = [2,2,2,2,1],
5:
Наступний ген в хромосомi Х0 (перший в Х1) визначае роботу J2. Отже беремо першу операцш О1, роботи J2 i вставляемо !! в план-графiк. В результата отримуемо:
СЬ2 = [1 - (3,2);2 - (1,3)], 5^1111111111
Х2 = [2,2,2,1], : 222222222222222
5:
Наступний ген в хромосомi Х0 (перший в Х2) визначае роботу Jз. Отже беремо першу операцш О2, роботи Jз i вставляемо !! в план-графк. В результатi отримуемо:
СЬ3 = [1 -(3,2);2-(3)], 5 : 1111111111 22
Х3 = [2,2,1], : 222222222222222
Наступний ген в хромосомi Х0 (перший в Х3) визначае роботу Jз. Отже беремо першу операцш О3, роботи Jз i вставляемо !! в план-графж. В результатi отримуемо:
СЬ4 = [1 -(3,2);2-()], 5 : 1111111111 22
Х4 = [2,1], : 222222222222222
53 :22222222
Наступний ген визначае роботу Jз. Однак в списку незак1нчених робiт друга робота вже не числиться. Застосовуемо список незаюнчених робгт як цимчний, тодi цей ген означае роботу J1; додаемо його в план-графж як роботу 1 на прилащ 53 з трудомiсткiстю 7 одиниць часу. Отримуемо
СЬ5 = [1 - (2);2 - ()], 5 : 1111111111 22
Х5 = [1], : 222222222222222
53 : 111111122222222
Останньою вставляемо 3-ю операцш роботи J1. В результата отримуемо:
СЬ6 = [1 -();2-()], 5 : 1111111111 22
Х6 = [], :222222222222222 11111111111111111111
5;:111111122222222
Список незашнчених робiт порожнiй. Остаточно отримуемо побудований план-графiк. Для реалiзацi! побудови розкладу як комбiнаторним, так i генетичним алгоритмом, нами було розроблено додаток. Результати роботи цього додатку представлено на рисунках 1 та 2.
ч
■4-ч Построй
ние расписания
Файл Данные
Входные данные
Количество станков Количество деталей
3 min(t)
2 max(t)
ihhl
Операции 1 1 3 2
Время 1 10 7 20
Операции 2 2 1 J
Время 2 15 2
Параметры ГА
Количество хромосом Процент мутаций Тип операции кроссовера Тип операции мутации
Количество итераций ГА
10
10
GOX *
Вставка
Выполнение ГА
Текущая популяция
хромосома 2: Г = 37 хромосома 3: Г = 37 хромосома 4: ? = 37 хромосома 5: Г = 37 хромосома 6: \ = 37 хромосома 7: Г = 37 хромосома 8: Г = 37 хромосома 9: Г = 52 хромосома 10^= 52
Выполнено итераций ГА Время выполнения ГА (с)
101 2.2295
Лучшая хромосома ГА f = 37 История значений фитнесса
Выполнено итераций КА Время выполнения КА (с)
19 0.10229
Лучший план КА f = 37
Инициализация ГА
Выполнить шаг ГА
Выполнить ГА
Выполнить КА
Рисунок 1 — Параметри та результата побудови розкладу за допомогою комбшаторного та генетичного алгоритмов
Побудований розклад для обох алгоритмш ствпадае.
^^Hjob 1 ¡ob 2
О 5 10 15 20 25 30 35 40
time (time units)
Рисунок 2 - Побудований розклад за допомогою генетичного алгоритму
Висновки
В робот розглянуто комбшаторний та генетичний алгоритми для виршення задачi розкладу обслуговування багатоприборно!' рiзнорiдноi системи. Розроблено програмний додаток, який реалiзуe щ алгоритми. Подальшi дослщження будуть пов'язат з модифжащею генетичного алгоритму, та оптимiзацieю його для розв'язання конкретного типу задач.
Список використаноТ лiтератури
1. Танаев В.С., Сотсков Ю.Н., Струсевич В.А. Теория расписаний. Многостадийные системы, М.:Наука, 1989.
2. Schafer J.D. Podstawy geneticznej optymalizacij globalnej. - Krakow, Wyd. Uniwersytet Jagiellonski, 2002. - 245 p.
3. Витовски Т., Антчак А. Генетические алгоритмы - современный инструмент поиска квазиоптимальных решений // Проблемы управления и информатики. - 2003. - №5. - С.22-35.