function [x, endPop, bPop, traceInfo] = ga(bounds, evalFN, evalOps, startPop, opts, ...
termFN, termOps, selectFN, selectOps, xOverFNs, xOverOps, mutFNs, mutOps)
% Output Arguments:
% x - the best solution found during the course of the run
% endPop - the final population
% bPop - a trace of the best population
% traceInfo - a matrix of best and means of the ga for each generation
%
% Input Arguments:
% bounds - a matrix of upper and lower bounds on the variables
% evalFN - the name of the evaluation .m function
% evalOps - options to pass to the evaluation function ([NULL])
% startPop - a matrix of solutions that can be initialized
% from initialize.m
% opts - [epsilon prob_ops display] change required to consider two
% solutions different, prob_ops 0 if you want to apply the
% genetic operators probabilisticly to each solution, 1 if
% you are supplying a deterministic number of operator
% applications and display is 1 to output progress 0 for
% quiet. ([1e-6 1 0])
% termFN - name of the .m termination function (['maxGenTerm'])
% termOps - options string to be passed to the termination function
% ([100]).
% selectFN - name of the .m selection function (['normGeomSelect'])
% selectOpts - options string to be passed to select after
% select(pop,#,opts) ([0.08])
% xOverFNS - a string containing blank seperated names of Xover.m
% files (['arithXover heuristicXover simpleXover'])
% xOverOps - A matrix of options to pass to Xover.m files with the
% first column being the number of that xOver to perform
% similiarly for mutation ([2 0;2 3;2 0])
% mutFNs - a string containing blank seperated names of mutation.m
% files (['boundaryMutation multiNonUnifMutation ...
% nonUnifMutation unifMutation'])
% mutOps - A matrix of options to pass to Xover.m files with the
% first column being the number of that xOver to perform
% similiarly for mutation ([4 0 0;6 100 3;4 100 3;4 0 0])
end
输出参数:
x
- 在算法运行过程中找到的最佳解决方案。endPop
- 最终种群,即算法执行结束时的种群。bPop
- 最佳种群的跟踪,记录算法每一代中的最佳种群。traceInfo
- 一个矩阵,包含每一代的最佳解和平均解的信息。
输入参数:
bounds
- 一组变量的上下限范围,用于定义问题的搜索空间。evalFN
- 评估函数的名称,通常是一个MATLAB文件,用于计算个体的适应度。evalOps
- 传递给评估函数的选项(默认为空)。startPop
- 可以用于初始化种群的解决方案矩阵,通常是从一个名为initialize.m
的函数获得的。opts
- 一个包含三个元素的向量,分别表示精度(epsilon)、概率运算(prob_ops),以及显示输出(display)。这些参数用于控制算法的行为。termFN
- 终止函数的名称,通常是一个MATLAB文件,用于确定何时终止算法(默认为'maxGenTerm',即达到最大代数时终止)。termOps
- 传递给终止函数的选项字符串,用于配置终止条件(默认为100,表示最大代数)。selectFN
- 选择函数的名称,通常是一个MATLAB文件,用于选择下一代种群中的个体(默认为'normGeomSelect',即使用一种选择策略)。selectOpts
- 传递给选择函数的选项字符串,用于配置选择策略(默认为0.08)。xOverFNS
- 包含用于交叉操作的文件名称的字符串,文件名之间用空格分隔(默认为一组交叉操作文件的名称)。xOverOps
- 一个矩阵,包含传递给交叉操作文件的选项,第一列表示执行每种交叉操作的次数,用于配置交叉操作(默认为每种交叉操作执行2次)。mutFNs
- 包含用于突变操作的文件名称的字符串,文件名之间用空格分隔(默认为一组突变操作文件的名称)。mutOps
- 一个矩阵,包含传递给突变操作文件的选项,第一列表示执行每种突变操作的次数,用于配置突变操作(默认为每种突变操作执行4次,其中一种执行6次)。