MATLAB遗传算法代码示例
时间: 2024-10-30 21:05:55 浏览: 38
在MATLAB中,遗传算法的一个简单示例通常涉及求解一个无约束的函数最小化问题。下面是一个基本的遗传算法代码片段:
```matlab
% 导入遗传算法工具箱
addpath(genetic)
% 定义适应度函数 (例如我们要最小化的函数)
fitnessFcn = @(x) sum(x.^2); % 这里假设我们要找的是所有元素平方和最小
% 初始化参数
popSize = 50; % 种群大小
maxGen = 100; % 最大迭代次数
mutationRate = 0.01; % 变异率
% 生成初始种群
[population, ~] = createPop(popSize, [0, 1]); % 创建均匀分布在[0, 1]范围内的种群
% 遗传算法循环
for gen = 1:maxGen
% 计算适应度
fitness = zeros(size(population));
for i = 1:length(population)
fitness(i) = fitnessFcn(population(i,:));
end
% 选择操作
parents = selectParents(fitness, popSize);
% 交叉操作
offspring = crossover(parents, popSize);
% 变异操作
mutatedOffspring = mutation(offspring, mutationRate);
% 合并新种群
newPopulation = [parents; mutatedOffspring];
% 更新种群
population = newPopulation;
end
% 找到最佳解
bestSolution = population(fitness == min(fitness), :);
% 输出结果
disp(['Best solution found after ' num2str(maxGen) ' generations:'])
disp(bestSolution)
```
这个例子中,我们创建了一个随机种群,然后通过选择、交叉和变异生成下一代,直至达到指定的最大迭代次数。`createPop`, `selectParents`, `crossover`, 和 `mutation` 是MATLAB遗传算法工具箱提供的内置函数。
阅读全文