Как оптимизировать назначение задач агентам с этими ограничениями?

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

Итак, есть список агентов и список задач, причем количество задач больше, чем количество агентов.

Агенты представляют упорядоченный по приоритетам список задач, которые они могут/хотят выполнить. Длина списка фиксируется на числе, намного меньшем, чем общее количество задач.

Каждому агенту должна быть назначена задача. Однажды назначенная задача не может быть назначена другому агенту.

Цель состоит в том, чтобы найти такое задание, при котором средний приоритет/предпочтение назначенных задач будет самым низким. Кроме того, если это комплексное решение, т. е. каждому агенту назначена задача, это еще лучше.

Я просмотрел обобщенные задачи назначения и венгерский алгоритм, но они не подходят для конкретной ситуации, когда задача требует затрат, а также вероятность того, что агент не сможет выполнить некоторые задачи.

Пожалуйста помоги. Спасибо.


person Rohan Sood    schedule 09.08.2014    source источник
comment
Пробовали ли вы создавать нулевые задачи бездействия, чтобы ответ мог включать этот агент, ничего не делающий, и нулевые аутсорсинговые работники, чтобы ответ не мог включать в себя, чтобы агент не выполнял эту задачу?   -  person mcdowella    schedule 09.08.2014
comment
Проблема та же, что и проблема назначения, если мы моделируем приоритеты как затраты (наиболее предпочтительные имеют стоимость 1, затем 2, затем 3, а для задач, не входящих в список приоритетов, стоимость равна бесконечности). Затем вы можете добавить фиктивных агентов, чтобы уравнять количество агентов и задач, и решить их с помощью венгерского алгоритма.   -  person Abhishek Bansal    schedule 09.08.2014


Ответы (1)


Если вам нужен общий подход, вы можете смоделировать проблему как смешанную целочисленную программу, введя бинарные переменные для назначения задач агентам и поместив приоритетные затраты и (очень высокие) затраты, не связанные с назначением, в целевую функцию. Смешанные целочисленные программы можно решать с помощью различных программ-решателей, включая CPLEX или Gurobi, которые бесплатны для академических целей.

person J Fabian Meier    schedule 12.08.2014