遺伝的アルゴリズムに関して;何%UPする条件をAIに予測させる方法
1 vue (au cours des 30 derniers jours)
Afficher commentaires plus anciens
いつもお世話になっております。
遺伝的アルゴリズムについて質問がございます。
現在の結果の最大値から 10 % UP するような条件を探すプログラムを、遺伝的アルゴリズムにより探そうとしています。
しかし、以下のコードに記したFitnessFunction が間違っているのか、SeedConditions 等の値が適切でないのか、目標値 10 % の条件が出力されません。
どうしたら、10 % UP するような条件が見つかるでしょうか。
なお、 SeedConditions は 246 個の数値から成りますが、どの数値を動かしたら 10% UP しそうかは、不明な現状です。
以下は、プログラムの一部を抜粋したものです。
FitnessFunction = @(x)[abs((AI(x.')-1.10./max(D(:,res_st)))] ;
%AI はgenFunctionにより関数化させたAI,x は条件, 1.10 は 10%UP, max(D(:,res_st)は結果の最大値。
%1.10/max(D(:,res_st))で最大値より 10% UP するような計算式になっている。
%AI による出力は 0-1 に正規化されている。
numVer = 246;
A = [];
b = [];
Aeq = [];
beq = [];
maxx = minmax(1,:); %出力される実験条件の最大値
minx = minmax(2,:); %最小値
for i = 1:n %n は随時変更している。
SeedConditions = (maxx - minx).*rand(6,1);%初期条件が、出力される条件の最小から最大まで、ランダムの値で取るようにしている。
options = optimoptions(@gamultiobj, 'PopulationSize', 500, 'MaxGenerations', 35, 'InitialPopulationMatirix', SeedConditions...
'Display', 'iter'); %オプション設定
[hvec, fvalvec, exitflag] = gamultiobj(FitnessFunction, numVar, A, b, Aeq, beq, minx, maxx, options);
result = AI(hvec.'); %結果を出力
end
0 commentaires
Réponse acceptée
Akiko
le 21 Fév 2023
Fitness Fcn の記述ですが、10% UP するということであれば、
FitnessFunction = @(x)[abs((AI(x.') - max(D(:,res_st))*1.1] ;
のように記述できると思います。
Plus de réponses (0)
Voir également
Catégories
En savoir plus sur Genetic Algorithm dans Help Center et File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!