遗传算法(Genetic Algorithms)
定义:
遗传算法(Genetic Algorithms, GA)是一种模拟生物进化过程的启发式搜索算法,它通过选择、交叉(杂交)和变异等操作在候选解的种群中搜索问题的最优解或近似最优解。
原理:
遗传算法从一个初始种群开始,每个个体代表一个潜在的解决方案。算法通过评估每个个体的适应度来选择更好的个体进行繁殖,然后通过交叉和变异产生新的后代,不断迭代进化,直到找到满意的解或达到一定的迭代次数。
Java实现示例:
import java.util.ArrayList;
import java.util.List;
import java.util.Random;
class Chromosome {
private int[] genes;
private double fitness;
public Chromosome(int size) {
genes = new int[size];
for (int i = 0; i < size; i++) {
genes[i] = (int)(Math.random() * 10);
}
}
public int[] getGenes() {
return genes;
}
public double getFitness() {
return fitness;
}
public void setFitness(double fitness) {
this.fitness = fitness;
}
public void mutate() {
Random rand = new Random();
for (int i = 0; i < genes.length; i++) {
if (rand.nextDouble() < 0.1) {
// mutation probability
genes[i] = (int)(Math.random() * 10);
}
}
}
}
public class GeneticAlgorithm {