Problem
A linearly ordered set of persons P = {P1, P2, ... , Pn}, where P1 < P2 < ... < Pn.
A set of jobs J = {J1, J2, ... , Jn}, partially ordered.
Cost Cij is equal to the cost of assigning Pi to Jj.
Each Person is assigned to a job, and no two persons are assigned to the same job.
We require that if f(Pi) <= f(Pj), then Pi <= Pj.
The function is a feasible assignment which maps persons to their appropriate jobs.
Our Problem is to find an optimal feasible assignment which minimizes the total cost of assignments
[NP-hard]
J must be a topologically sorted sequence with respect to the partial ordering of jobs.
(each sequence represents a feasible assignment.)
[tree searching techniques can be easily used to find all the topologically sorted sequences.]
(1) Take an element which is not preceded by any other element in the partial ordering.
(2) Select this element as an element in a topologically sorted sequence.
(3) Remove this element just selected from the partial ordering set. The resulting set is still partially ordered
[apply the branch-and-bound strategy]
Given a cost matrix,
->a reduced cost matrix
we can compute a lower bound of our solutions immediately.
Note: if a constant is subtracted from any row or any column of the cost matrix, an optimal solution does not change.
The resulting matrix is a reduced cost matrix in which every row and column contains at least one zero and the remaining entries of the matrix are all non-negative.
--Why did we subtract costs from the cost matrix?
--A higher lower bound will of course lead to an early termination!