Научная статья на тему 'Новий метод розв'язання задачі про призначення'

Новий метод розв'язання задачі про призначення Текст научной статьи по специальности «Математика»

CC BY
942
95
i Надоели баннеры? Вы всегда можете отключить рекламу.
Ключевые слова
МНОЖЕСТВО ПЕРЕСТАНОВОК КОРТЕЖЕЙ / ЭВКЛИДОВА КОМБИНАТОРНАЯ ОПТИМИЗАЦИЯ / ЗАДАЧА О НАЗНАЧЕНИЯХ / ВЕНГЕРСКИЙ МЕТОД

Аннотация научной статьи по математике, автор научной работы — Недобачій С. І., Гвоздик Д. М.

Предложен новый метод и соответствующий ему алгоритм решения задачи о назначениях, который при большой размерности задачи более эффективный по сравнению с алгоритмом венгерского метода

i Надоели баннеры? Вы всегда можете отключить рекламу.
iНе можете найти то, что вам нужно? Попробуйте сервис подбора литературы.
i Надоели баннеры? Вы всегда можете отключить рекламу.

A new method and proper to him solving algorithms of assignment problem is offered, witch in case of a big dimension is more effective comparatively to the Hungarian method algorithm

Текст научной работы на тему «Новий метод розв'язання задачі про призначення»

УДК 519.8

С.І. НЕДОБАЧІЙ, Д.М. ГВОЗДИК

НОВИЙ МЕТОД РОЗВ’ЯЗАННЯ ЗАДАЧІ ПРО ПРИЗНАЧЕННЯ

Abstract. A new method and proper to him solving algorithms of assignment problem is offered, witch in case of a big dimension is more effective comparatively to the Hungarian method algorithm.

Key words: multitude of cortej permutations, Euclidean combinatorial optimization, assignment problem, Hungarian method.

Анотація. Запропоновано новий метод та відповідний йому алгоритм розв'язання задачі про призначення, який при великій розмірності задачі є більш ефективним порівняно з алгоритмом угорського методу. Ключові слова: множина переставлень кортежів, евклідова комбінаторна оптимізація, задача про призначення, угорський метод.

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

Ключевые слова: множество перестановок кортежей, эвклидова комбинаторная оптимизация, задача о назначениях, венгерский метод.

1. Вступ

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

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

Задача про призначення: є n різних робіт і n різних механізмів (виконавців) для їх здійснення, причому кожен механізм може виконувати будь-яку роботу. Нехай сн - продуктивність і -го

механізму при виконанні j -ої роботи, і, j є Jn, Jn ={l, 2,..., n}. Задача полягає у визначенні

розподілу механізмів за роботами, при якому сумарна ефективність була б максимальною. Математична модель задачі:

n

Z cv • xj ® max,

i , j =l

nn

Z xv =1Z xv =1 xvє{0, l}.

=l j =l

Уперше задача про призначення була розглянута в геометричній формі Гаспаром Монжем у 1784 році. Проте на початку ХХ століття була встановлена некоректність розв'язку Монжа. Наступні кроки в розв'язанні задачі про призначення зроблені Кенігом і Егерварі в першій третині XX століття. Кеніг і Егерварі розглядали цю задачу як задачу пошуку досконалого паросполучення мінімальної ваги у зваженому дводольному графі. Їх роботи стали основою для угорського методу, розробленого Куном у 50-х роках минулого століття [1]. У 1947 році Данциг запропонував симплекс-метод для розв'язання загальної задачі лінійного програмування, до якої легко зводиться задача про призначення. Задача про призначення, поставлена Данцигом і Фалкерсоном, може також

© Недобачій С.І., Гвоздик Д.М., 2010

ISSN 1028-9763. Математичні машини і системи, 2010, № 1

розглядатися як задача про максимальний потік мінімальної вартості. У 1961 році Басакер і Гоуен опублікували алгоритм для її розв'язання. Цей алгоритм для загальної задачі, як і алгоритм симплекс-методу, має експоненціальну складність, а для задачі про призначення - поліноміальну. Поліноміальний алгоритм для задачі про максимальний потік мінімальної вартості, заснований на алгоритмі Клейна, що був опублікований у 1967 році, вперше запропонований у 1987 році Гольбергом і Тар'яном [2].

Теоретичний аналіз складності алгоритмів показує, що алгоритми Куна й Басакера-Гоуена мають однакову теоретичну складність, меншу, ніж алгоритм Гольдберга-Тар'яна. Проте відповідь на питання про визначення найкращого алгоритму вимагає емпіричних досліджень [2].

У [3] викладено результати проведених емпіричних досліджень для угорського методу алгоритмів Басакера-Гоуена і Гольдберга-Тар'яна. Для алгоритму угорського методу емпірична

складність Т(п) = сп2,2, для алгоритму Басакера-Гоуена - Т(п) = сп3,05, а для алгоритму

Гольдберга-Тар'яна - Т(п) = сп5’4 . Аналізуючи отримані результати, можна зробити висновок: найбільш швидким алгоритмом для розв'язання задачі про призначення є угорський метод.

3. Обгрунтування нового методу розв’язання задачі про призначення

Нехай задано матрицю ефективності (су ) . Розглянемо кортежі г, = (і, 0,О), г2 = (0,1,О),

' У 'пхп 1 2

..., гп = (0, 0,..., і). Кожен кортеж гі, іє Jn містить п елементів, на і-тому місці - число 1, а усі

інші його елементи дорівнюють 0. Множину {(, г ..., гі )}, де і\ Ф ік, якщо у Ф к, у, к є Jn

2

переставлень кортежів, занурену в евклідів арифметичний простір Яп , позначимо ЕТ^ [4]. Якщо позначити

С = (сіі, С12, ..., сіп, С21, С22, ..., с2п, ..., Спі, сп2, .", Спп ) ,

то задача про призначення має вигляд

С • X ® тах , (1)

X є ЕТп.

Для матриці (су ) і переставлення кортежів Р = (гУ , ,..., ) уведемо на множині

' У 'пХп ' у г2 гп '

кортежів бінарне відношення < (су), яке далі позначатимемо < , завжди маючи на увазі відповідну матрицю (су ) :

^ 'У 'пхп

(гі < (су ) ) ^ ((скі + си-)- (ску + сп о).

Ук І ■

позначенні 2- , 2. верхній індекс указує на порядковий номер кортежів 2- та 2. у

‘ ] ‘ ]

переставленні кортежів.

Переставлення кортежів, у якому всі кортежі попарно знаходяться у відношенні ,, позначатимемо р,. Значення цільової функції (1) на переставленні р, позначимо Е(р,).

Властивість відношення , .

Після виконання однієї транспозиції довільної пари кортежів у переставленні Ж_, = (2- , 2 ^ 2і ) значення цільової функції (1) не збільшиться.

Дійсно, нехай маємо переставлення ж_,. Тоді

Е(р, ) = Сц + с1ч +... + Скк + ... + Січ +... + спіп.

Виконаємо транспозицію кортежів 2к, 21. . Одержане переставлення кортежів позначимо

Р<Т (к, і). Маємо

Р (р^Т (к, І)) С1у + С

+ С0- + ... + С,- +... + си +... + с

•'кц Іік

Р(ж< )-Р(р-.Т(к,І))= (скік + СИ, )-(скЧ + СІк ^ 0 .

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

' У 'пхп .

неоднозначно. Причому для різних переставлень кортежів типу ж. значення цільової функції (1), власне кажучи, різні.

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

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

4. Алгоритм

Попередні зауваження до алгоритму.

Вхідними даними для алгоритму є елементи матриці (су) . При виборі найбільшого

' У ' пхп

елемента у довільному рядку матриці (су) рядок продивляємося зліва направо. Якщо

' У 'пхп

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

Алгоритм.

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

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

Крок 3. Перевіряємо почергово, починаючи з кортежу, що стоїть на першому місці, чи знаходяться кортежі, які стоять на попередніх місцях у відношенні . з кортежем, який стоїть на останньому місці. Якщо так і число кортежів, упорядкованих за відношенням . а) менше п, то переходимо до кроку 2; б) рівне п , то переходимо до кроку 6. Якщо ні, переходимо до кроку 4.

Крок 4. Виконуємо транспозицію кортежу, що стоїть на останньому місці, з першим із кортежів, для якого не виконується відношення . . Переходимо до кроку 5.

Крок 5. Перевіряємо почергово, чи знаходяться кортежі у відношенні . кожен з кожним. Якщо так і число кортежів, упорядкованих за відношенням . а) менше п , то переходимо до кроку 2; б) рівне п, то переходимо до кроку 6. Якщо ні, виконуємо транспозицію перших виявлених кортежів, для яких не виконується відношення . , і переходимо до кроку 5.

Крок 6. До одержаного на попередньому кроці розв'язку, як до опорного плану транспортної задачі, застосовуємо алгоритм методу потенціалів.

Крок 7. Завершення роботи алгоритму.

6. Результати чисельних експериментів

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

4 У 'пхп

розподілом елементів і така ж кількість матриць тієї ж розмірності з нормальним розподілом для кожного із значень п = 10, 20, ..., 100, 150, 200, 250., 400, 500, 600, ..., 900.

Отримані такі результати: на розмірності задач, де п < 200, запропонований алгоритм працює швидше за угорський метод для 40%-50% випадків; для 200 < п < 600 наведений алгоритм працює швидше за алгоритм угорського методу для різних значень п у 85-90% випадків; для п > 600 кількість таких випадків досягає 95%-100%. Відношення часу роботи запропонованого алгоритму до часу роботи алгоритму угорського методу в задачах з однаковими вхідними даними для зазначених випадків у середньому дорівнює 1:3.

7. Висновки

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

теоретичні оцінки складності - й(п3), але, як засвідчують чисельні експерименти, запропонований алгоритм є більш ефективним на задачах великої вимірності. До того ж зі зростанням розмірності задачі перевага запропонованого методу над угорським значно зростає. Цей факт можна пояснити тим, що в більшості випадків ще до кроку 6 алгоритму вже буде отримано оптимальний результат. Якщо ж результат після перших 5 кроків не є оптимальним, то в будь-якому разі він буде локальним оптимумом, і крок 6 дуже швидко призведе до пошуку оптимального розв'язку. Запропонований

алгоритм доцільно використовувати для реалізації на ЕОМ як складову частину програмних комплексів, що мають серед своїх завдань розв'язування задач про призначення, зокрема, задач великої розмірності.

СПИСОК ЛІТЕРАТУРИ

1. Kuhn H.W. On the Origin of the Hungarian Method / H.W. Kuhn // History of Mathematical Programming. - CWI-North-Holland, 1991. - Р. 77 - 81.

2. Ху T. Целочисленное программирование и потоки в сетях / Ху Т. - М.: Мир, 1974. - 52Q с.

3. Шухман А.Е. Эмпирический анализ методов решения задачи о назначениях / А.Е. Шухман, Е.В. Шухман // Вызовы XXI века и образование: материалы всеросс. науч.-практ. конф. - Оренбург: ОГУ, 2QQ6. - С. 227 - 23Q.

4. Гребенник И.В. Комбинаторное множество перестановок кортежей и его свойства / И.В. Гребенник // Радіоелектроніка. Інформатика. Управління. - 2QQ5. - № 1. - С. 92 - 98.

Стаття надійшла до редакції 02.07.2009

i Надоели баннеры? Вы всегда можете отключить рекламу.