Multiobjective Genetic Algorithm Generalised Assignment Problem - multiple pareto front not foun
Ältere Kommentare anzeigen
I'm trying to solve a GAP problem of assigning students to supervisors using multi-obj GA toolbox. I have created both the students and supervisor's preference tables. The chromosome is chosen to be of length no_of_students to ensure each student is allocated a supervisor where each gene in the chromosome is an integer representing the supervisor assigned to a student. However, a supervisor is allowed to supervise multiple students. Ideally, each student should be assigned a supervisor from his list of preference and similarly for the supervisor. The GA should try to find the best combination of supervisor allocation that measures the compromise between the students and supervisors satisfaction i.e. obj functions f1 and f2 measured on each matrix. I expect to get a pareto set of solutions after running the code but GA returns just one pareto solution.
Can anyone help to explain why this might be?
The codes are available here: https://drive.google.com/open?id=0ByrZwrz8Bo8Ga19sZjc3elBGMkU
Antworten (1)
Alan Weiss
am 26 Jul. 2016
0 Stimmen
The gamultiobj solver does not support integer variables. The ga solver does not calculate a Pareto front, it just finds a minimum.
If you try to find a Pareto front manually by choosing different cost functions for different ga runs, then you should be able to get a Pareto front, assuming that there is more than one integer-feasible point and that the costs are chosen appropriately. You might need to help ga by giving a variety of integer-feasible initial points in a custom initial population.
Or you could just use a more appropriate solver. I suggest that you use intlinprog with a variety of cost functions similar to what I just described for ga. If you can formulate your problem as an MILP, you will find that intlinprog is faster and more reliable than ga.
Good luck,
Alan Weiss
MATLAB mathematical toolbox documentation
3 Kommentare
Abiodun Ogunmolu
am 26 Jul. 2016
Alan Weiss
am 26 Jul. 2016
I am sorry, I cannot understand what you are doing. gamultiobj does not support integer variables, period. So your problem formulation, which I believe requires integer variables, cannot be done in gamultiobj, unless you have a custom population type, which you did not mention. That's why I thought you were using ga to perform the minimization.
If, indeed, you are using ga, then you should not be surprised that it returns just one answer, because that is what ga does.
If I misunderstand entirely, then please be more explicit about what you are doing, including showing your calls to ga or gamultiobj or whatever it is you are doing, and maybe show relevant portions of your fitness function and constraints.
Alan Weiss
MATLAB mathematical toolbox documentation
Abiodun Ogunmolu
am 26 Jul. 2016
Kategorien
Mehr zu Multiobjective Optimization finden Sie in Hilfe-Center und File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!