Optimization tool Multi objective Genetic Algorithm

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

 Réponse acceptée

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 commentaires

Asad Abbas
Asad Abbas le 24 Août 2016
Modifié(e) : Asad Abbas le 24 Août 2016
Sir you understand exactly what I want. From your suggestions I think gamultiobj is not useful for me because I want variables with binary values but not continuous variables. So can you please suggest me any other approach. One more thing I want specify goal as in goalattain algorithm for estimated solutions near to goal.
Thank you so much for your kind reply.
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
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.

Connectez-vous pour commenter.

Plus de réponses (0)

Community Treasure Hunt

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

Start Hunting!

Translated by