This is an implementation of the Branch and Bound algorithm, used to solve an assignment problem.

The expected input is an N by N matrix, where each row is assigned a task and each column a task. The values in the matrix is the cost of assigning task "column" to a "row".