필터 지우기
필터 지우기

using gamultiobj with 24 variables

조회 수: 2 (최근 30일)
Thushara De Silva
Thushara De Silva 2018년 9월 23일
댓글: Thushara De Silva 2018년 9월 28일
My fitness function (fit_KotPol) calculate two values for 24 variables. I want to define the inti
fitnessfcn = @fit_KotPol;
nvars = 24;
lb=[22.2 22.2 22.2 22.2 22.2 22.2 22.2 22.2 22.2 22.2 22.2 22.2 0 0 0 0 0 0 0 0 0 0 0 0];
ub=[172.9 172.9 172.9 172.9 172.9 172.9 172.9 172.9 172.9 172.9 172.9 172.9 140 140 140 140 140 140 140 140 140 140 140 140];
A = [ ]; b = [ ]; Aeq = [ ]; beq = [ ];
startTime = tic;
options = optimoptions('gamultiobj','UseParallel',true,'PlotFcn',{@gaplotpareto,@gaplotscorediversity});
[x,fval,exitflag,output] = gamultiobj(fitnessfcn,nvars,lb,ub,options);
stopTime = toc(startTime);
I got the error
Error using gamultiobj (line 281)
GAMULTIOBJ requires the following inputs to be of data type double: 'Aeq'.
Help me to use the gamultiobj

답변 (2개)

Stephan
Stephan 2018년 9월 23일
편집: Stephan 2018년 9월 23일
Hi,
the input syntax for gamultiobj has no option for passing lb and ub to gamultiobj without also passing A,b Aeq, beq. You defined them all, but you dont use them in your function call.
Use:
[x,fval,exitflag,output] = gamultiobj(fitnessfcn,nvars,A,b,Aeq,beq,lb,ub,options);
Best regards
Stephan
  댓글 수: 16
Walter Roberson
Walter Roberson 2018년 9월 28일
The number of pareto points returned by gamultiobj is not known in advance.
x will be m by nvars, so something by 24 in your case, where m is however many pareto points the function detected during the limits it was given on execution.
Thushara De Silva
Thushara De Silva 2018년 9월 28일
Thank you Walter Roberson and Stephan Jung for the reply. Those are really helpful.

댓글을 달려면 로그인하십시오.


Thushara De Silva
Thushara De Silva 2018년 9월 27일
편집: Walter Roberson 2018년 9월 28일
Further to the above question how can I initialize the population? I want to give initial values for 24 variables as below.
InitialPopulationMatrix_Data = [93.2 66.6 40 59 78 97 116 135 154 172.9 146.3 119 39 76 104 120 107 58 80 80 53 61 60 36]
However, the population size is 200 as default. How do I do it?
Please help.
  댓글 수: 1
Walter Roberson
Walter Roberson 2018년 9월 28일
When you supply a population matrix in the options, if the number of rows you provide is less than the population size, then it will initialize the remaining rows randomly.

댓글을 달려면 로그인하십시오.

카테고리

Help CenterFile Exchange에서 Multiobjective Optimization에 대해 자세히 알아보기

Community Treasure Hunt

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

Start Hunting!

Translated by