Проблема з призначенням протягом декількох днів


10

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

Що означає, що у нас є набір агентів і набір завдань, а також функція витрат . Нам потрібно знайти завдання, щоб загальна вартість була мінімальною.ATc(i,j)

Угорський алгоритм може знайти оптимальне рішення по крайней мере . Що мені добре звучитьO(n4)

Моя нова проблема: Існує задана кількість днів. Мені доводиться вирішувати задачу на кожен день, щоб кожне завдання робилося щодня, і жоден агент не робив одне і те ж завдання двічі .

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

Інша ідея - якось інтегрувати локальний пошук, щоб змінити рішення, прийняті за попередній день. Але я думаю, що ми не можемо на це покластися.

Проблемні випадки, з якими я маю зіткнутися, будуть десь навколо . Матриця витрат матиме безліч однакових значень (наприклад, переважно 1 або нескінченність, лише деякі 2 або 3). Тож під час алгоритму Угорщини є багато місця для створення різних оптимальних рішень за один день.|A|=|T|=500C(i,j)

Буду радий почути деякі ідеї чи поради, як знайти гарне рішення проблеми. Заздалегідь спасибі.


1
Це чудове запитання! Я б запропонував використовувати мінімальний потік витрат, теорему шлюбу Холла та максимальну двосторонню відповідність.
Пітер Шор

Відповіді:


6

Є шлях до цього в поліном час. Я намалюю алгоритм (у зворотному порядку ... зробіть крок 2 першим та крок 1 секунду).

  1. нк(i,j)кккнк

  2. нкстк0к0ij1c(i,j)01(i,j)1

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


Останнє питання: Алгоритм потоку мінімальних витрат на кроці 2 (я вибрав скасування циклу для початку) пропонує оптимальне рішення. Алгоритм максимальної відповідності на кроці 1 робить це до. Чи обов'язково це означає, що ціле рішення є оптимальним? Тому що, я здогадувався, що проблема неповна.
Патрік Шмідт

1
Все рішення є оптимальним. Це було б гарним питанням призначити курс комбінаторної оптимізації, тому що це дещо дивно, що ви можете це зробити.
Пітер Шор
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.