Rank: 1086 based on 131 downloads (last 30 days) and 1 file submitted
photo

Song Lin

E-mail
Company/University
NWPU

Personal Profile:
Professional Interests:
Finite element method, multi-objective optimization

 

Watch this Author's files

 

Files Posted by Song
Updated   File Tags Downloads
(last 30 days)
Comments Rating
26 Jul 2011 Screenshot NGPM -- A NSGA-II Program in Matlab v1.4 NSGA-II and R-NSGA-II in Matlab Author: Song Lin nsgaii, genetic algorithm, multiobjective, optimization, reference point, toolbox 131 54
  • 4.5
4.5 | 13 ratings
Comments and Ratings by Song View all
Updated File Comments Rating
23 Dec 2011 NGPM -- A NSGA-II Program in Matlab v1.4 NSGA-II and R-NSGA-II in Matlab Author: Song Lin

Hello, Iman. If x(1)=1, the x(3), x(4), x(6), x(7) values do not affect the objective values. These design variables can be ignored when you process the optimzation results. The optimization progress is not affected except for the efficiency. You may need more optimzation generations to get a good result.

21 Dec 2011 NGPM -- A NSGA-II Program in Matlab v1.4 NSGA-II and R-NSGA-II in Matlab Author: Song Lin

I forgot to save the constraint variables to the individual structure in the function 'evalIndividual' in file 'evaluate.m'.

Modify the code as below:

...
indi.obj = y;
indi.cons = cons; // Add this line
if( ~isempty(indi.cons) )
idx = find( cons );
...

25 Nov 2011 NGPM -- A NSGA-II Program in Matlab v1.4 NSGA-II and R-NSGA-II in Matlab Author: Song Lin

Hi Iman,
You can check the result file(the default file name is "populations.txt"), or you can use command "vertcat(result.pops(end,:).var)" to combine all of the design variables together.

18 Jul 2011 Neighborlist building routine for molecular dynamics This routine returns interaction pairs for a given set of atoms in 3D space. Author: Wenzhe Shan

15 Jul 2011 NGPM -- A NSGA-II Program in Matlab v1.4 NSGA-II and R-NSGA-II in Matlab Author: Song Lin

The original code could not get the correct Pareto-front because the crossover and mutation strategies I used do not fit for the ZDT problem. In original code, all variables of an individual would mutate if it was selected to be mutated. In the version 1.3 code, I change the strategies to mutate several variables instead, and the correct solution could be get now.

Comments and Ratings on Song's Files View all
Updated File Comment by Comments Rating
08 Jul 2014 NGPM -- A NSGA-II Program in Matlab v1.4 NSGA-II and R-NSGA-II in Matlab Author: Song Lin Mahesh

Thanks for the great work!!!

You have explained about constraints (Your manual Page 1)
g1(x)=x2+9x1>=6

But if constraints are like say,
g1(x)=x2+9x1<=6
Then how to modify the code in objective function (Page 3)

Thanks and regards,
Mahesh.

27 May 2014 NGPM -- A NSGA-II Program in Matlab v1.4 NSGA-II and R-NSGA-II in Matlab Author: Song Lin Nitinvarman

nils, Even after making the change I get values for constraints only in the first generation, For the rest I get only zeroes. Is there any probable solution for it?

23 Apr 2014 NGPM -- A NSGA-II Program in Matlab v1.4 NSGA-II and R-NSGA-II in Matlab Author: Song Lin nils

Sorry, last post was wrong. I meant:

% Save the objective values and constraint violations
indi.obj = y;
if( ~isempty(indi.cons) )
indi.cons = cons; % <<<< ADDED LINE >>>
idx = find( cons );

23 Apr 2014 NGPM -- A NSGA-II Program in Matlab v1.4 NSGA-II and R-NSGA-II in Matlab Author: Song Lin nils

Great work, thanks a lot for sharing!
In the first few generations, some individuals of the population have violated constraints. I was expecting to find the actual contraints variables in results.pops.cons, but there were all zero. I only found the *number* of violations in results.pops.nViol.

I was able to improve this by adding one line in evaluate.m:

% Save the objective values and constraint violations
indi.obj = y; % <<<< ADDED LINE >>>
if( ~isempty(indi.cons) )
indi.cons = cons;
idx = find( cons );

04 Mar 2014 NGPM -- A NSGA-II Program in Matlab v1.4 NSGA-II and R-NSGA-II in Matlab Author: Song Lin Damjan

Another question which is related to the previous one: how can I write equality constraints? For example:

x(1)*x(4)=x(2)+x(3)

Contact us