У меня проблема с нормальным назначением, где я хочу сопоставить работников с заданиями. Но есть несколько видов заданий, каждый из которых имеет заданное количество позиций. Так, например, мне понадобилось бы 10 000 строителей, 5000 сварщиков и т. Д. Разумеется, каждый рабочий имеет одинаковое предпочтение для каждой позиции того же вида работы.Назначение-роблем, если задание доступно не один раз
Моим нынешним подходом является использование венгерского алгоритма и просто расширение столбцов матрицы для учета этого. Так, например, у него будет 10 000 столбцов-строителей, 5000 сварщиков и т. Д. Конечно, с O (n^3) и большой матрицей, получение результатов может занять некоторое время.
Есть ли вариации венгерского алгоритма или другого, который использует тот факт, что может быть несколько соединений с одним узлом задания? Или лучше изучить алгоритмы дерева Монте-Карло или генетического поиска?
редактировать:
Формальное описание, как Sascha предложил:
Набор Вт для рабочих, J для рабочих мест, весовой функции для предпочтения, функция
на сумму рабочих мест
So функция Я хочу, чтобы свести к минимуму будет:
где
Ограничения будут:
и
, как спросил Yay, это было бы хорошо, если он побежал за день или два на обычной потребительской машине. Сейчас работают 50 тыс. Человек с 10 видами рабочих мест и 50 тыс. Рабочих мест. Таким образом, матрица 50k x 50k (расширенная) в случае алгоритма, который я использую сейчас, или 50k x 10 для LP с дополнительным ограничением , тогда как
и значения предпочтений в матрице будут идти от 0-100 ,
Формализовать вашу проблему, чтобы получить дополнительную помощь. Эта проблема должна быть легко решена с помощью линейного программирования, поэтому я не хочу ее кодировать, если не будет такого неофициального описания. (Для классической задачи задания, LP-решатели часто бывают быстрее, чем выделенный венгерский алгоритм.) – sascha
Добавлена формализация, я просто надеюсь, что это правильно. – user2368505
Теперь это больше похоже на проблему транспортировки. Возможно, вы захотите рассмотреть возможность использования подходящего ресивера LP, так как это позволяет как задание, так и проблемы транспортировки (и другие варианты). –