Constrained Variable Genetic Algorithm
4 次查看(过去 30 天)
显示 更早的评论
Hello,
Need help on solving a problem with the GA toolbox (have a variant soln that works but am not sure of the soln). I have a function say 'piqe' that I am looking for the global minimum. The inputs to this function are (x1 ... xn). These inputs variables can only take values 1:5 (upper and lower bound).
However the variables serve as indexes (1 say leftmost, 5 rightmost) to a matrix function say
P = [30 20 10 5 0; 27 17 7 2 0; 20 14 4 0 0; 14 12 7 4 0; ..................];
I need to constrain the inputs to 'piqe' so that P(1,x1) + P(2,x2) + ...... + P(n,xn)<Constant.
I am having some problem on implementing the last part (relational constraint) into the toolbox. thanks
2 个评论
Walter Roberson
2013-3-25
When you say 1:5 do you mean the list 1, 2, 3, 4, 5? Or do you mean the range 1 to 5 ?
采纳的回答
Alan Weiss
2013-3-25
It seems from your description that you want all the variables x1,...,xn to have integer values. If this is the case, and if you have MATLAB R2011b or later, then you can use integer programming. See the documentation of integer programming and also see this extensive example.
Setting nonlinear inequality constraints means programming a function in the proper syntax. For your case, of you have P defined in your workspace, then you can use something like
function [c,ceq] = pconstraint(x,P)
ceq = [];
c = -Constant; % put in the value of Constant here
for ii = 1:numel(x)
c = c + P(ii,x(ii));
end
Pass @(x)pconstraint(x,P) as your nonlinear constraint function. Also, I would advise you to give both an initial range of 1 to 5 on all componenets, and set a large population size.
Good luck,
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!