У меня есть проблема, которая может быть сведена к проблеме назначения. (В предыдущем вопросе я узнал, как это сделать.)
Это означает, что у нас есть набор агентов и набор задач а также функция стоимости . Нам нужно найти назначение, чтобы общая стоимость была минимальной.c ( i , j )
Венгерский алгоритм может найти оптимальное решение по крайней мере . Что звучит хорошо для меня.
Моя новая проблема: есть определенное количество дней. Я должен решить задачу назначения для каждого дня, чтобы каждая задача выполнялась каждый день, и ни один агент не выполнял одну и ту же задачу дважды .
Что я пробовал: мы могли запускать венгерский алгоритм отдельно для каждого дня и ограничивать количество возможных комбинаций на основе результата предыдущего дня. Но это может привести к проблемам в более поздние дни, когда, скорее всего, будет невозможно найти выполнимое решение.
Другая идея - каким-то образом интегрировать локальный поиск, чтобы изменить решения, принятые в предыдущий день. Но я думаю, что мы не можем полагаться на это.
Проблемы, с которыми мне приходится сталкиваться, будут где-то рядом . Матрица затрат будет иметь много одинаковых значений (например, в основном 1 или бесконечность, только некоторые 2 или 3). Таким образом, во время венгерского алгоритма есть много места для создания различных оптимальных решений за один день.С ( i , j )
Я был бы рад услышать некоторые идеи или советы, как найти хорошее решение проблемы. Заранее спасибо.