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
>0my 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
0 个评论
采纳的回答
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 个评论
更多回答(0 个)
另请参阅
类别
在 Help Center 和 File Exchange 中查找有关 Genetic Algorithm 的更多信息
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!