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

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

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

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

Визначення

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

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

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

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

мінімізувати L=U=i=1nmaxj=1mxij
при i=1nj=1mwijxijw.
i=1nxij=1j=1,,m;
xij{0,1}i=1,,n,j=1,,m.

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

мінімізувати L=U=i=1nyi.

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

yij=1mxijmyii=1,,n

Наближені алгоритми

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

Див. також

Примітки

Шаблон:Reflist

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