遗传算法的Matlab实现,包含两个简单的例子
两个例子的代码的主要区别在CalFitness.m和PlotModel.m中,其余的通用。
第一个例子,求解z=sinx+cosy+0.1(x+y)的最大值,CalFitness.m和PlotModel.m中对应的都是注释部分
第二个例子,给出了一系列点,利用欧式距离公式min d=\sum_{i=1}^{10}\sqrt{(x_0-x_i)^2+(y_0-y_i)^2}求解一系列点中的某个点,这个点到其余所有点的距离最小,直接运行就是这个问题的解。
| 序号 | x | y |
|---|---|---|
| 1 | 1.4 | 3.6 |
| 2 | 2.7 | 0.1 |
| 3 | 1.5 | 6.9 |
| 4 | 4.6 | 3.6 |
| 5 | 5.2 | 1.2 |
| 6 | 5.6 | 2.7 |
| 7 | 8.2 | 3.5 |
| 8 | 3.8 | 2.1 |
| 9 | 4.6 | 2.9 |
| 10 | 8.7 | 3.3 |