Задача про призначення найменшого числа виконавців

Матеріал з Вікіпедії — вільної енциклопедії.
Перейти до навігації Перейти до пошуку

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

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

Визначення[ред. | ред. код]

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

Задачу можна розв'язати, розбивши на дві задачі:

  1. Підбір найменшої за чисельністю групи виконавців, які разом зможуть виконати всі роботи і вкладуться в бюджет . Ця проблема NP-складна, оскільки є узагальненням NP-повної задачі про покриття множини.
  2. Призначення в підібраній групі виконавців на роботи.

Математично задачу про призначення найменшої кількості виконавців можна сформулювати так[1]:

мінімізувати
при
;
.

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

мінімізувати .

Зв'язок змінних можна задати такою умовою:

Наближені алгоритми[ред. | ред. код]

Для швидкого розв'язання задач великої розмірності доцільно використовувати наближені алгоритми: алгоритм максимальної кількості мінімальних елементів (МКМЕ) і алгоритм максимальної кількості допустимих елементів (МКДЕ)[2].

Див. також[ред. | ред. код]

Примітки[ред. | ред. код]

  1. Катаев А.В., Катаева Т.М., Коженко Я.В. Оптимизация численного состава команды проекта: экономико-математический инструментарий / А. В. Катаев, Т. М. Катаева, Я. В. Коженко // Конкурентоспособность в глобальном мире: экономика, наука, технологии. 2016. – № 8-3 (22). – С. 101-104
  2. Катаев А.В., Катаева Т.М. Управление проектами на базе динамической сети партнеров: монография. – Ростов-на-Дону – Таганрог: Издательство Южного федерального университета, 2017. – 125 с.