1. Setting the solution space
Each node represents a partial solution of the assignment. For example, the root node represents the solution space where no assignment has been made. The child node C1 represents: job 1 assigned to employee 1. The child of C1, denoted as C11, represents that Job 2 is assigned to employee 2 under the constraint that job 1 has been assigned to employee 1. And the similar for others. All none leaf nodes are partial solutions since they do not specify the entire assignment. The leaf nodes are the final options.
2. Setting the bound
Since this is a maximization problem, the lower bound can be any permutation of employees and projects.
The upper bound asks us how much revenue at most can we achieve. We can consider the upper bound from employee and project perspective separately.
From employee’s perspective, each project has a maximum revenue realized by an employee. From project 1, select the maximum revenue and add it to the accumulative value “maxByEmpl”. Continue to select the maximum revenue for other projects until we traverse all the projects.
From project’s perspective, each employee can achieve a maximum revenue on a certain project. From employee 1, find and select the project with the maximum revenue. Add this revenue to the accumulative value “maxByProj”. Continue to do this until we traverse all the employees.
The assignment strategies above can be invalid. For example, employee 1 can be assigned to 2 projects. This is fine when setting the upper bound. But once we made our decision on which employee does what, we can no longer consider this employee and project in the following upper bound setting process.
3. Conduct a BFS on the nodes in the revenue graph.
Firstly, assign employee 1 to all the projects. For each assignment choice, calculate the upper bound as described above. Select the assignment strategy with the maximum upper bound. Only explore the probable assignments of employee 2 under this assignment strategy.
4. Repeat step 3 on all employees
Finally, only one probable assignment can be left, since employees and projects cannot be reconsidered. The upper bound of this assignment strategy is the optimal revenue we can get.