The genetic algorithm isn't constraint!!!
Mostrar comentarios más antiguos
Hi Everyone,
My main research is to optimize the reinforced concrete frame using genetic algorithms and external penalty function.
I created 3 subroutine for this problem: Optimizedesign.m; framecost.m; frameanalysis.m
I have been doing it in long time (Running - checking - fixing and repeat...).
But I have a bit problem with it!
I show the structure of Optimizedesign.m:
opts = gaoptimset('PopulationType', 'doubleVector', ...
'PopInitRange', [0.3 0.9 0.3 0.9 0.3 0.9 0.3 0.6 0.4 0.9 0.7 1.2 0.4 0.6 0.6 0.7 0.3 0.4 0.4 0.5 9.82*10^-4 9.82*10^-4 9.82*10^-4 9.82*10^-4 9.82*10^-4 9.82*10^-4 9.82*10^-4 9.82*10^-4 78.54*10^-4 147.26*10^-4 19.74*10^-4 98.18*10^-4 19.64*10^-4 98.18*10^-4;
0.5 1.3 0.5 1.3 0.5 1.3 0.5 1.0 0.6 1.2 0.9 1.6 0.6 0.8 0.9 0.9 0.5 0.6 0.6 0.7 108.02*10^-4 49.09*10^-4 108.02*10^-4 49.09*10^-4 108.02*10^-4 49.09*10^-4 73.65*10^-4 49.09*10^-4 117.8*10^-4 196.34*10^-4 58.9*10^-4 196.34*10^-4 58.9*10^-4 196.34*10^-4], ...
'PopulationSize', 300, ...
'EliteCount', [], ...
'CrossoverFraction', [], ...
'ParetoFraction', [], ...
'MigrationDirection',[], ...
'MigrationInterval',[], ...
'MigrationFraction',[], ...
'Generations', 300, ...
'TimeLimit', [], ...
'FitnessLimit', [], ...
'StallGenLimit', [], ...
'StallTest',[], ...
'StallTimeLimit', [], ...
'TolFun', [], ...
'TolCon', [], ...
'InitialPopulation',[0.4 1.2 0.4 1.2 0.4 1.2 0.4 1.0 0.5 1.1 0.9 1.5 0.5 0.8 0.7 0.9 0.4 0.5 0.5 0.6 98.17*10^-4 49.09*10^-4 98.17*10^-4 49.09*10^-4 98.17*10^-4 49.09*10^-4 63.81*10^-4 34.36*10^-4 98.18*10^-4 176.72*10^-4 39.26*10^-4 147.26*10^-4 39.26*10^-4 147.26*10^-4], ...
'InitialScores', [], ...
'PlotInterval',[], ...
'CreationFcn', @gacreationuniform, ...
'FitnessScalingFcn', @fitscalingrank, ...
'SelectionFcn', @selectionroulette, ...
'CrossoverFcn', @crossovertwopoint, ...
'MutationFcn', @mutationuniform, ...
'DistanceMeasureFcn',[], ...
'HybridFcn', [], ...
'Display', 'final', ...
'PlotFcns',@gaplotbestf, ...
'OutputFcns', [], ...
'Vectorized', 'off', ...
'UseParallel', []);
%-----Call |ga| to Solve the Problem-------------------------------------
[xbest, fbest, exitflag, Output] = ga(@framecost, 34, [], [], [], [], ...
[], [], [], [], opts);
fprintf('The number of generations was : %d\n', Output.generations);
fprintf('The number of function evaluations was : %d\n', Output.funccount);
fprintf('The best function value found was : %g\n', fbest);
fprintf('The best variation value found was : %g\n', xbest);
The framecost.m use to calculate cost (F(x)) and call to frameanalysis.m to analysis and create the penalty function (G(x)).
Then, create the fitnessfunction use the exterial penalty function: Fp= F + rp*G.
when I ran the algorithm, the constraints that I created in the frameanalysis.m are not satisfactory and the values obtained are very small compared with the conventional design.
I'm very very headache and I don't know why???
I hope that you can help me.
Thank you so much
Respuesta aceptada
Más respuestas (0)
Categorías
Más información sobre Genetic Algorithm en Centro de ayuda y File Exchange.
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!