Optimization tool Multi objective Genetic Algorithm

1 回表示 (過去 30 日間)
Asad Abbas
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

採用された回答

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

サインインしてコメントする。

その他の回答 (0 件)

カテゴリ

Help Center および File ExchangeGenetic Algorithm についてさらに検索

Community Treasure Hunt

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

Start Hunting!

Translated by