Квадратична задача про призначення
Квадратична задача про призначення - одна з фундаментальних завдань комбінаторної оптимізації в області оптимізації або дослідження операцій, що належать категорії завдань розміщення об'єктів.
Задача моделює наступну задачу з реального життя:
Є множина n підприємств, які можуть бути розташовані в n місцях. Для кожної пари місць задана відстань і для кожної пари виробництв задана вага або потік (тобто Кількість матеріалу (сировини або продукції), що перевозиться між двома виробництвами). Потрібно розставити провадження у місцях (два виробництва не можна розміщувати в одному місці) таким чином, що сума відстаней, помножених на відповідні потоки, буде мінімальною.
Інтуїтивно зрозуміло, що підприємства з великим потоком слід розміщувати ближче один до одного.
Формулювання завдання схожа на формулювання задачі про призначення, розрізняються вони цільовою функцією - в квадратичної задачі вона квадратична, що і відображає назва.
Постановка проблеми
Квадратична задача про призначення вперше була сформульована Копмансом та Бекманом у 1957 р. як математична модель для ефективного розміщення взаємозв’язаних об’єктів і по сьогодні залишається однією з найбільш складних задач комбінаторної оптимізації. Задача моделює наступну проблему з реального життя: дано множину з N об'єктів та множину з N місцеположень. Для кожної пари місцеположень задана відстань і для кожної пари об’єктів задана вага або потік між ними (наприклад, кількість поставок, що транспортуються між двома об’єктами). Задача полягає в розташуванні всіх об’єктів у різних місцеположеннях з метою мінімізації суми відстаней, помножених на відповідні потоки.
Математичне представлення
Формальна постановка задачі наступна: дано дві множини – P (об’єкти) та L (місцеположення) однакового розміру, на яких визначена функція ваги (потік) w : P × P → R та функція відстані d : L × L → R. Необхідно знайти таке відображення f : P → F (призначення), що мінімізує цільову функцію ціни:
Зазвичай, функції ваги та відстані зображаються у вигляді матриць формату N x N. Матриця потоку має вигляд , матриця відстаней має вигляд . Функція квадратичної задачі про призначення виглядатаме наступним чином:
де Sn – це набір перестановок на проміжку {1, 2, . . . , n}. Кожен випадок ap(i)p(j)bi j – це ціна, яку коштує призначення об’єкту р(і) на місце і та об’єкту р(j) на місце j. Якщо хоча б одна з коефіціентних матриць A та B є симетричною, тоді і задача є симетричною. У противному випадку задача є асиметричною. Деякі автори пропонують розширений варіант задачі. Крім двох матриць коефіцієнтів A та B задається ще третя матриця C = (cij), де cij – це вартість розміщення об’єкту (і) на місце (j). Тоді задача матиме вигляд:
Ця функція називається узагальненим формулюванням квадратичної задачі про призначення. У випадку, коли cij = 0 для всіх 1<=i, j<=n, функція являє собою спрощений варіант задачі, розглянутий вище. Задача комівояжера може розглядатись як частковий випадок квадратичної задачі про призначення, якщо припустити, що потік зв’язує усі об’єкти послідовно по кільцю і всі потоки мають однакове ненульове значення.
Розрахункова складність
На противагу лінійним задачам про призначення квадратична задача є набагато складнішим випадком комбінаторної оптимізації. Задача є NP-складною. Наразі не існує точного алгоритму розв’язання задач розмірності N > 30 і навіть при невеликій кількості об’єктів розрахунок може зайняти досить тривалий час. Алгоритмічна складність задачі становить .
Практичне застосування
За допомогою квадратичної задачі про призначення може бути вирішено безліч різноманітних проблем. Наприклад, вона знайшла застосування у вирішенні проблеми розташування будівель у роботі Дікі і Хопкінса у 1972 році (модель планування університетського кампусу). Завдання полягало у плануванні розміщення n будівель на території кампусу, де - це відстань від місця розміщення k до місця розміщення l, а - інтенсивність руху між будівлями і та j. Мета оптимізації розміщення полягала в тому, щоб мінімізувати загальну тижневу відстань, що долають студенти та викладачі, переходячи між будівлями. Крім задач з розміщення будівель даний метод також може бути використаний при розміщенні окремих компонентів на схемі (при проектуванні мікросхем, компонуванні дротів у електричному щиті тощо), складанні розкладу для уникнення «вікон», плануванні зв’язків при паралельному виконання кількох взаємозв’язаних видів діяльності. У 1977 році Беркард і Оферман продемонстрували, що квадратична задача про призначення може бути використана для ергономічного розміщення клавіш на друкарській машинці. Завдання полягало в тому, щоб розмістити клавіші таким чином, щоб час написання тексту був мінімальним. При вирішенні проблеми кожному з символів, розміщення яких мало бути впорядкованим на клавіатурі, було надано порядковий номер N = {1, 2,. . . , n}. Таким чином відображало частоту появи пари символів і та j. Значення з матриці відстаней показувало час, що необхідний щоб натиснути клавішу в позиції k після того, як було натиснуто клавішу в позиції l. Схоже застосування в галузі ергономічного розміщення було використано при створенні контрольної панелі, щоб мінімізувати втому очей оператора. Було запропоновано навіть використання квадратичної задачі про призначення у спорті для визначення порядку розміщення членів команди у естафеті, та на виробництві, для планування паралельних взаємопов’язаних виробничих процесів.
Методи розв’язання
Відомі методи розв'язання поділяють на дві групи, що можна комбінувати. Точні методи знаходять, маючи достатньо часу, гарантовано оптимальний шлях. Евристичні методи знаходять, часто за коротший час, гарні розв'язки, що, в загальному випадку, можуть бути гіршими за оптимальні.
Точні методи
Існує три точні методи, що можуть використовуватись для знаходження оптимального вирішення квадратичної задачі про призначення: динамічне програмування, алгоритм Гоморі та метод гілок та меж. Дослідження показують, що останній є найбільш підходящим для вирішення поставленої задачі. Втім, через високу складність квадратичних задач про призначення, більшість задач з N > 30 майже не піддаються обрахунку точними методами.
Метод гілок та меж
Так як метод гілок та меж вважається найкращим з точних методів для обрахунку даної задачі, слід зупинитись на ньому детальніше. При застосуванні методу гілок і меж спочатку використовується один з евристичних методів для знаходження приблизного, але підходящого рішення. Назвемо його вихідним значенням. Потім, на кожній з вершин (початок гілкування) дерева знаходиться «межа», тобто найкраще можливе значення, яке можна очікувати від подальшого обрахунку даної секції гілок. До методів визначення «межі» виставляється вимога, щоб вони були не надто складними в обрахунку, могли бути переобчислені для піднаборів даних після кількох етапів гілкування і були достатньо точними. Ефективного методу знаходження межі не було знайдено і по сьогодні. Найкращим методом знаходження «нижньої межі» на даний момент є метод Гілмора-Лоулера. Метод лінійного програмування також дає дуже точне значення, але через високу складність і довгий час обрахунку не може вважатись ефективним при великому розмірі задачі. Значення «межі» порівнюється з отриманим вихідним значенням. Якщо вихідне значення краще за «межу», тобто краще за можливе очікуване значення у цій секції дерева, можна завершувати гілкування цієї секції і відкинути її. У противному випадку необхідно шукати нове покращене вихідне значення і за допомогою послідовних ітерацій знайти оптимальне. Коли отримане покращене значення дорівнює попередньому, вважається, що знайдений розв'язок є оптимальним.
Евристичні методи
Для пришвидшення пошуку рішення задачі можна використовувати евристики, що, в загальному випадку, не гарантують точності знайдених розв'язків. До квадратичної задачі про призначення можна використовувати такі евристичні методи як локальний пошук, симуляція віджигу, табуйований пошук та генетичні алгоритми. Залежно від складності проблеми ефективність цих методів різниться.
Локальний пошук
Локальний пошук починається з задання початкової схеми призначень і полягає в поступовому її покращенні шляхом локальних змін. Якщо по сусідству з поточним призначенням знайдено краще призначення, він замінює поточне призначення і пошук продовжується. При вирішенні квадратичної задачі про призначення множина сусідніх призначень складається з можливих варіантів, що можуть бути отримані при перестановці двох об’єктів. Даний метод відноситься до найпростіших методів ітеративної евристики 2-opt.
Метод симуляції віджигу
Метод симуляції віджигу відноситься до метаевристичних методів і був одним з перших, що було застосовано до вирішення квадратичної задачі про призначення. На даний момент найбільш точним алгоритмом є алгоритм запропонований Коноллі у 1990 році. У 1994 році Тонеман і Бьольт запропонували дещо покращений алгоритм симуляції віджигу для квадратичної задачі про призначення.
Табуйований пошук
Найбільш відомим табуйованим пошуком вирішення квадратичної задачі про призначення є алгоритм Тайарда (1991 рік). Цей алгоритм базується на 2-opt методі локального пошуку. Як табуючий атрибут в даному випадку виступає неможливість призначення певних елементів на певні позиції, так, табуючий атрибут t(i, j) означає, що неможливо призначити об’єкт і на місце j.
Генетичні алгоритми
Генетичні алгоритми отримали свою назву від інтуїтивного пояснення принципу їх дії. Принцип їх дії можна пояснити базуючись на теорії природного відбору Дарвіна. На початку їх дії виробляється набір рішень з призначення певних об’єктів на певні місця з подальшою їх заміною на кращі базуючись на критерію ефективності, яким зазвичай виступає значення цільової функції. На даний момент, генетичний алгоритм Дрезнера з включеним у нього табуйованим пошуком є одним з найкращих евристичних методів для вирішення квадратичної задачі про призначення.
Див. також
Література
- The Quadratic Assignment Problem : Theory and Algorithms / E. Çela // Combinatorial Optimization. — 1998. —Vol. 1. — 304 p.
- Michael R. Garey and David S. Johnson (1979). Computers and Intractability: A Guide to the Theory of NP-Completeness. W.H. Freeman. ISBN 0-7167-1045-5. A2.5: ND43, pg.218.