Documentation of mobjdebconstr

Global Index (all files) (short | long) | Local contents | Local Index (files in subdir) (short | long)

Function Synopsis

ObjVal = mobjdebconstr(Chrom);

Help text

 MultiObjective Problem (constrained): DEB's constrained function

 This function implements DEB's multiobjective constrained function.

 Deb, K. : A fast and elitest multi-objective genetic algorithm: NSGA-II.
 KanGAL Report 200001, p. 16 and 17, Table VI.

 MO properties: Ptrue connected and constrained, PFtrue convex

 Syntax:  ObjV = mobjdebconstr(Chrom)

 For Input and Output parameters see objfun1.
                
 See also:  mobjfonseca1, objfun1, mobjdtlz1

Cross-Reference Information

This function calls This function is called by

Listing of function mobjdebconstr



% Author:   Hartmut Pohlheim
% History:  10.04.2005  file created


function ObjVal = mobjdebconstr(Chrom);

   % Compute population parameters
   [Nind, Nvar] = size(Chrom);

   if nargin < 1, Chrom = []; end
   if isnan(Chrom), Chrom = []; end
   if isempty(Chrom), Chrom = [NaN, NaN, 1]; end
   
   % create objective function parameter structure
   if isnan(Chrom(1)),
      if all([isnan(Chrom(2)), Chrom(3) <= 10]),
         ObjVal = objfunoptset('FunctionName', 'DEBs constrained MO-Function', ...
                               'VarBoundMin',  [0.1, 0], 'VarBoundMax', [1, 5], ...
                               'NumVarDefault', 2,    'NumVarMin',   2, 'NumVarMax', 2, ...
                               'NumObjDefault', 4,    'NumObjMin',   4, 'NumObjMax', 4);
      end

   % compute values of function
   else
      % F1= x1
      % F2=(1+x2)/(x1)
      % 0.1 < x1 < 1 ; 0 < x2 < 5
      % With the following constraint conditions:
      % g1:  x2+9x1 >= 6
      % g2: -x2+9x1 >= 1
      ObjVal = repmat(Inf, [Nind, 4]); 

      % Define the two objectives
      ObjVal(:,1) = Chrom(:,1);
      ObjVal(:,2) = (1 + Chrom(:,2)) ./ Chrom(:,1);
      
      % Define the constraints as additional objectives
      % First lets calculate the constraines and the distance
      % because of -6 (or -1 for G2) we can always compare to 0 (zero)
      G1 = (Chrom(:,2) + 9*Chrom(:,1)) - 6;
      G2 = (-Chrom(:,2) + 9*Chrom(:,1)) - 1;
      % A little magic, set all constrained objective, which are satisfied to zero
      % and all other (violated constraints) to the distance from the boundary
      % as we are maximizing > 6, > 1) and our objectives are minimized we multiply with -1
      ObjVal(:,3) = (G1 >= 0) .* 0 + (G1 < 0) .* G1 .* -1;
      ObjVal(:,4) = (G2 >= 0) .* 0 + (G2 < 0) .* G2 .* -1;

   end

   
% End of function
GEATbx: Main page  Tutorial  Algorithms  M-functions  Parameter/Options  Example functions  www.geatbx.com 

This document is part of version 3.7 of the GEATbx: Genetic and Evolutionary Algorithm Toolbox for use with Matlab - www.geatbx.com.
The Genetic and Evolutionary Algorithm Toolbox is not public domain.
© 1994-2005 Hartmut Pohlheim, All Rights Reserved, (support@geatbx.com).