Solving the Many To Many Assignment Problem

By Improving the Kuhn-Munkers Algorithm with Backtracking


How to build the input

To solve the many-to-many assignment problem, you need to provide a cost matrix and two vectors: the agent vector and the task vector. Here’s how you can format these inputs:

Matrix

The matrix should be a list of lists in Python format, where each sublist represents the costs associated with each agent-task pair.

Agent Vector

The agent vector is a list of integers, where each integer represents the number of tasks an agent can perform.

Task Vector

The task vector is a list of integers, where each integer represents the number of agents required to perform a task.


The sum of the agent vector should be equal or greater than the sum of the task vector.


Use these formats when entering data manually or uploading a CSV file.


Enter Data Manually




Upload CSV File


Description of the Algorithm

The algorithm is an improvement of the Kuhn-Munkers algorithm, which is used to solve the assignment problem. The assignment problem is a combinatorial optimization problem that consists of finding the best assignment of agents to tasks. Our improvement consists of using backtracking to find the optimal solution, while alloing each agent to be assigned to multiple tasks, and each task to be assigned to multiple agents.


Programmers

The programmers of the algorithm are:

- Tom Shabalin
- Dor Harizi


Authors of the Paper

The authors of the paper are:

- Haibin Zhu
- Dongning Liu
- Siqin Zhang
- Yu Zhu
- Luyao Teng
- Shaohua Teng