Documentation of mobjsoland
Global Index (all files) (short | long)
| Local contents
| Local Index (files in subdir) (short | long)
Function Synopsis
ObjVal = mobjsoland(Chrom);
Help text
MultiOBJective function for SOLAND function (constrains as objectives)
This function implements the SOLAND test function.
It features a convex objective function of two variables subject
to a nonlinear equality constraint. The variables are bounded.
The function is implemented with two objectives. The first
is the main objective, the second the equality constraint.
Syntax: ObjVal = mobjsoland(Chrom)
Taken from: Floudas, C. A. and Pardalos, P. M.: "A Collection of Test
Problems for Constrained Global Optimization Algorithms".
Lecture Notes in Computer Science vol. 455,
Berlin, Heidelberg: Springer-Verlag, pp. 31-32, 1990.
Nonlinear Programming Test Problem 7
Original: Soland, R. M.: An algorithm for separable nonconvex
programming problems ii: nonconvex constraints.
Manag. Sci., 17(11), pp. 759-773, 1971.
Input parameters:
Chrom - Matrix containing the chromosomes of the current
population. Each row corresponds to one individual's
string representation.
Output parameters:
ObjVal - Column vector containing the objective values of the
individuals in the current population.
if called with Chrom == [NaN, NaN, xx], than see objfun1 for options
See also: objbran, objeaso, objsixh, objgold, obj*
Cross-Reference Information
| This function calls |
This function is called by |
|
|
|
Listing of function mobjsoland
% Author: Hartmut Pohlheim
% History: 09.02.1999 file created
% 28.05.2005 constraint included as second objective,
% set goals to [Inf, 0.001] to enforce constraint very near 0
function ObjVal = mobjsoland(Chrom);
NAIN = nargin; NAOUT = nargout;
if NAIN < 1, Chrom = []; end
if isnan(Chrom), Chrom = []; end
if isempty(Chrom), Chrom = [NaN, NaN, 1]; end
% create structure
if isnan(Chrom(1)),
if all([isnan(Chrom(2)), Chrom(3) <= 10]),
ObjVal = objfunoptset(...
'FunctionName', 'SOLAND function', ...
'VarBoundMin', [0, 0], 'VarBoundMax', [2, 3], ...
'NumVarDefault', 2, 'NumVarMin', 2, 'NumVarMax', 2, ...
'NumObjDefault', 2, 'NumObjMin', 2, 'NumObjMax', 2, ...
'GlobalMinObjV', -16.73889);
elseif Chrom(3) == 11,
NOBJUSE = Chrom(4);
end
else
% SOLAND function: minimize -12x1 - 7x2 + x2^2
% subject to: 0 <= x1 <= 2 ; 0 <= x2 <= 3 % VLUB bounds
% equality constraint: 0 = -2x1^4 + 2 - x2
% global minimum at (x1, x2) = (0.71751, 1.470) ; fmin = -16.73889
x1 = Chrom(:,1);
x2 = Chrom(:,2);
% Compute main objective value
ObjVal(:,1) = -12.*x1 - 7.*x2 + x2.^2;
% Define the constraint as additional objectives
% first step: compute violation of equality constraint (difference to zero)
G1 = -abs(-2.*x1.^4 + 2 - x2);
% Set the constrained objective, which is satisfied to zero (here not possible,
% as the best violation is zero)
% and all other (violated constraints) to the distance from the boundary
% as we are maximizing (> 0) and our objectives are minimized we multiply with -1
ObjVal(:,2) = (G1 >= 0) .* 0 + (G1 < 0) .* G1 .* -1;
end
% End of function
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).