Hypervolume indicator with Yi Cao
Mostrar comentarios más antiguos
I am working with Multi-objective optimization problem and i come across with this code ( https://www.mathworks.com/matlabcentral/fileexchange/19651-hypervolume-indicator ), however, does anyone know how to get the function 'paretofront' from the exisiting code to obtain the hypervolume value
thanks
2 comentarios
Yeoh Jocelyn
el 4 de Ag. de 2024
Editada: Walter Roberson
el 4 de Ag. de 2024
Umar
el 4 de Ag. de 2024
Editada: Walter Roberson
el 4 de Ag. de 2024
Hi @ Yeoh Jocelyn,
have you come across any other hypervolume computation like the one in platEMO ( https://github.com/BIMK/PlatEMO/blob/1274e2530e1c5afa928f3691c65af7d2f7efe099/PlatEMO/Metrics/HV.m )?
To be honest, no.
i did modification as such in the main program:
inputs:
solutions =
[43,176,38;43,177,37;42,188,38;46,168,38;43,184,36;42,178,48;42,169,49;42,
179,42];
Population.best = struct('objs', []);
% Fill the structure array with the solutions
for i = 1:size(solutions, 1)
Population.best(i).objs = solutions(i, :);
end
optimum = [40, 162, 38 ; 40, 164, 37 ;40, 167, 36; 40,171,36; 40,165,37;
40,169,36 ; 41, 160, 38 ;41, 163, 37 ;42, 157, 40 ;42, 158, 39 ;42, 165,
36 ; 42,162,42 ; 43, 155, 40 ;44, 154, 40 ;45, 153, 42];
hv = HV(Population, optimum);
disp(['Hypervolume: ', num2str(hv)]);
I just ran the code based on your inputs and it did display the following error message,
Out of memory. The likely cause is an infinite recursion
within the program.
Error in hypervolume (line 34)
hv = hypervolume(Population, optimum);
The error seems to be related to the recursive call to the hypervolume function within the function itself, which causes the memory overflow.
Respuestas (1)
Umar
el 4 de Ag. de 2024
Movida: John Kelly
el 5 de Ag. de 2024
0 votos
Hi @ Yeoh Jocelyn,
I am afraid you will not like the answer, if you download the file as mentioned in your comments, and uncomment example in his code and execute the function, it will display an error message. In other words, it is missing function “paretofront”. Please see attached results.

Now, in order to define this function, you have to follow the instructions in license as it says verbatim, “ Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met:
* Redistributions of source code must retain the above copyright
notice, this list of conditions and the following disclaimer.
* Redistributions in binary form must reproduce the above copyright
notice, this list of conditions and the following disclaimer in
the documentation and/or other materials provided with the distribution”Hope, this answers your question.
Categorías
Más información sobre Entering Commands en Centro de ayuda y File Exchange.
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!