Задача о назначениях
1 Постановка задачи
Пусть имеется n агентов и m задач, которые могут быть распределены между этими агентами. Каждому агенту может быть выделена только одна задача, и каждая задача может быть выделена только одному агенту. Стоимость присвоения i-й задачи j-му агенту равна c(i, j). В случае c(i, j) = \infty задача j не может быть назначена агенту i.
Задача о назначениях: сформировать допустимое множество назначений A = \{ (i_1, j_1), \ldots, (i_k, j_k) \}, k = \min \{m, n\}, имеющее макисмальную суммарную стоимость:
- C(A) = \sum_{s = 1}^k c(i_s, j_s) \to \max.
2 Варианты задачи
При m = n задача называется линейной: каждому агенту достаётся ровно одна задача, и каждая задача достаётся ровно одному агенту.
В случае единичных весов возникает задача о наибольшем паросочетании в двудольном графе: назначить как можно больше задач.
3 Алгоритмы решения задачи
- Венгерский алгоритм[1][2][3] для линейной задачи, сложность O(n^4) (может быть уменьшена[4] до O(n^3));
- Алгоритм аукциона[5][6];
- Алгоритм Гопкрофта-Карпа[7] для задачи с единичными ценами, сложность O(m \sqrt{n}).
4 Литература
- ↑ Kuhn, H W. “The Hungarian Method for the Assignment Problem.” Naval Research Logistics Quarterly 2, no. 1 (March 1955): 83–97. doi:10.1002/nav.3800020109.
- ↑ Kuhn, H W. “Variants of the Hungarian Method for Assignment Problems.” Naval Research Logistics Quarterly 3, no. 4 (December 1956): 253–58. doi:10.1002/nav.3800030404.
- ↑ Munkres, James. “Algorithms for the Assignment and Transportation Problems.” Journal of the Society for Industrial and Applied Mathematics 5, no. 1 (March 1957): 32–38. doi:10.1137/0105003.
- ↑ Tomizawa, N. “On Some Techniques Useful for Solution of Transportation Network Problems.” Networks 1, no. 2 (1971): 173–94. doi:10.1002/net.3230010206.
- ↑ Bertsekas, Dimitri P. “Auction Algorithms for Network Flow Problems: a Tutorial Introduction.” Computational Optimization and Applications 1 (1992): 7–66.
- ↑ Zavlanos, Michael M, Leonid Spesivtsev, and George J Pappas. “A Distributed Auction Algorithm for the Assignment Problem,” Proceedings of IEEE CDC'08, 1212–17, IEEE, 2008. doi:10.1109/CDC.2008.4739098.
- ↑ Hopcroft, John E, and Richard M Karp. “An $N^{5/2} $ Algorithm for Maximum Matchings in Bipartite Graphs.” SIAM Journal on Computing 2, no. 4 (1973): 225–31. doi:10.1137/0202019.