Click here to Skip to main content
15,884,177 members
Please Sign up or sign in to vote.
0.00/5 (No votes)
Hi All,
I have a simple(Not so simple) problem. I have to develop algorithm for priority based project allocation. This algorithm will be used in college to assign projects to students according to their priority (preference).

There are n number of supervisors, All of them will offer 5 projects to students. Student can select 3 projects from any supervisor and they can also set the priority(preference) i.e 1,2,3 of those projects. My algorithm will assign project(one project to one student at a time) according to their specified priority.

The problem comes when many students have similar project priorities, for example half of the students wants "Cloud computing project" from Professor David. The problem can really become more complex in usual scenarios.

I will have to write code in C++, but code from any language(C++, C#, Java, VB.NET) will prove helpful, simple algorithm will also prove very helpful.

I hope there will be algorithm for these kind of scheduling on internet. But i am out of luck

Best Regards
Posted
Updated 26-Mar-12 22:11pm
v2

1 solution

Your algorithm could try to maximize the overall score (for instance you may assign 12 points to a 'priority 1' hit, 6 points to a 'priority 2' hit, 3 point to a 'priority 1' hit, 0 points if the assigned project wasn't in the priority list of the student).
While for a small number of items (students, supervisors,...) even a brute force approach would fit, you may have a look at the Simulated Annealing[^] algorithm.
 
Share this answer
 

This content, along with any associated source code and files, is licensed under The Code Project Open License (CPOL)



CodeProject, 20 Bay Street, 11th Floor Toronto, Ontario, Canada M5J 2N8 +1 (416) 849-8900