Optimization tool Multi objective Genetic Algorithm

2 visualizaciones (últimos 30 días)
Asad Abbas
Asad Abbas el 23 de Ag. de 2016
Comentada: Nathan S el 1 de Sept. de 2016
I am facing problem of multi objective optimization by Genetic Algorithm (By using Matlab Optimization tool) with give 4 objective functions and 13 variables. x is random generation population of 0 and 1. But when I optimize this file, the values of variable and population have change even with negative values. I am not getting my results. Please help me. If my question is not understandable please let me know. I will explain more.
function f=task1(x)
V=13;
x=randi([0 1],1,V);
x(:,2)=~x(:,1);
x(:,3)=~x(:,4);
x(:,5)=~x(:,6);
x(:,12)=~x(:,13);
f(1)=15*x(1)+20*x(2)+30*x(3)+25*x(4)+40*x(5)+35*x(6)+35*x(7)+50*x(8)+20*x(9)+23*x(10)+30*x(11)+45*x(12)+50*x(13);
f(2)=5*x(1)+3*x(2)+4*x(3)+5*x(4)+4*x(5)+6*x(6)+5*x(7)+8*x(8)+5*x(9)+3*x(10)+2*x(11)+7*x(12)+6*x(13);
f(3)=6*x(1)+4*x(2)+2*x(3)+2*x(4)+3*x(5)+4*x(6)+4*x(7)+4*x(8)+2*x(9)+3*x(10)+3*x(11)+4*x(12)+3*x(13);
f(4)=2048*x(1)+1024*x(2)+256*x(3)+512*x(4)+256*x(5)+512*x(6)+1024*x(7)+1024*x(8)+512*x(9)+512*x(10)+256*x(11)+1024*x(12)+512*x(13);
end

Respuesta aceptada

Alan Weiss
Alan Weiss el 24 de Ag. de 2016
You didn't show us your call to gamultiobj, so we cannot check whether you correctly passed bounds to the solver. However, I can see that your objective function throws away the x that the solver passes, and instead creates a new x via the line
x=randi([0 1],1,V);
Remove that line from your objective function, you need to accept the x that the solver passes and work with it.
If you need your variables to be integer-valued, then you are out of luck, because gamultiobj works only with continuous variables. But if you have a vector of only 13 variables that are binary-valued, then why not simply do an exhaustive search over all the possible values? There are only 8192 values to examine.
Alan Weiss
MATLAB mathematical toolbox documentation
  3 comentarios
Alan Weiss
Alan Weiss el 24 de Ag. de 2016
As I told you on two occasions ( here is the other ), I think that you should generate all 8192 possible binary values for your 13 decision variables. Then take the resulting 8192 sets of 4-D objective function values and take the Pareto set among them.
I am not sure of the best algorithm to extract the Pareto points, but the following might work:
  1. Get the minimum objective function value in each of the 4 components. These points will definitely be on the Pareto set if they are unique. Keep them in a set of presumptive Pareto points.
  2. Go through the remaining points one at a time comparing their values to those in the presumptive Pareto set you are collecting. If the new point is better in every way than a presumptive Pareto point, then remove the presumptive point and include the new point. Make suer that you compare the new point to all existing presumptive points, because a new point can be better than several presumptive points.
Good luck,
Alan Weiss
MATLAB mathematical toolbox documentation
Nathan S
Nathan S el 1 de Sept. de 2016
Finding the Pareto optimal set from a collection of sample points is an active area of research. This paper presents an algorithm which is relatively simple to implement and also faster than many other approaches.

Iniciar sesión para comentar.

Más respuestas (0)

Categorías

Más información sobre Genetic Algorithm en Help Center y File Exchange.

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by