Three inequality constraints for multi-objective genetic algorithm

13 visualizzazioni (ultimi 30 giorni)
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

Risposta accettata

Alan Weiss
Alan Weiss il 14 Ott 2020
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

Più risposte (0)

Prodotti


Release

R2019a

Community Treasure Hunt

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

Start Hunting!

Translated by