Three inequality constraints for multi-objective genetic algorithm

14 次查看(过去 30 天)
I have been trying to specify inequality constraints to minimise a multi objective function. The constraints are:
> 0
>0
my code is as follows
function y = objectivef(x)
y(1) = x(1).^2 - x(2);
y(2) = -0.5*x(1) - x(2) - 1;
end
clc
clear all
ObjectiveFunction = @objectivef;
nvars = 2; % Number of variables
LB = [-7 -7]; % Lower bound
UB = [4 4]; % Upper bound
ConstraintFunction = @myconstraints;
[x,fval] = gamultiobj(ObjectiveFunction,nvars,[],[],[],[],LB,UB, ...
ConstraintFunction)
%this is what I need help with
function [c ceq] = myconstraints(x)
c = [6.5 -x(1)/6 -x(2);7.5 -0.5*x(1) -x(2);30 - 5*x(1) - x(2)];
ceq = []
end

采纳的回答

Alan Weiss
Alan Weiss 2020-10-14
These are linear constraints, so you should not use a nonlinear constraint function (which has errors in signs in any case: you have to ensure that the inequalities all go the correct way). Try this instead:
A = [1/6 1
1/2 1
5 1];
b = [6.5;7.5;30];
[x,fval] = gamultiobj(ObjectiveFunction,nvars,A,b);
Alan Weiss
MATLAB mathematical toolbox documentation

更多回答(0 个)

类别

Help CenterFile Exchange 中查找有关 Genetic Algorithm 的更多信息

产品


版本

R2019a

Community Treasure Hunt

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

Start Hunting!

Translated by