MATLAB Answers

0

Optimization tool Multi objective Genetic Algorithm

Asad Abbas さんによって質問されました 2016 年 8 月 23 日
最新アクティビティ Nathan S
さんによって コメントされました 2016 年 9 月 1 日
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

  0 件のコメント

サインイン to comment.

1 件の回答

Alan Weiss
回答者: Alan Weiss
2016 年 8 月 24 日
 採用された回答

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 件のコメント

Asad Abbas 2016 年 8 月 24 日
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.
Alan Weiss
2016 年 8 月 24 日
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
2016 年 9 月 1 日
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.

サインイン to comment.



Translated by