遗传算法求解无约束单目标优化问题,输入变量x1、x2, 输出结果示意图的python代码
时间: 2024-02-13 21:04:53 浏览: 31
以下是一个使用遗传算法求解无约束单目标优化问题的示例代码,其中输入变量为x1和x2,输出为结果的示意图:
```python
import numpy as np
import matplotlib.pyplot as plt
from genetic_algorithm import GeneticAlgorithm # 假设已经有一个名为GeneticAlgorithm的遗传算法类
# 定义目标函数
def objective_function(x):
return x[0]**2 + x[1]**2
# 定义变量范围
bounds = np.array([[-5.0, 5.0], [-5.0, 5.0]])
# 创建遗传算法对象
ga = GeneticAlgorithm(objective_function, bounds)
# 运行遗传算法
best_solution, best_fitness = ga.run()
# 生成结果的示意图
x = np.linspace(-5.0, 5.0, 100)
y = np.linspace(-5.0, 5.0, 100)
X, Y = np.meshgrid(x, y)
Z = np.zeros_like(X)
for i in range(len(x)):
for j in range(len(y)):
Z[i,j] = objective_function([x[i], y[j]])
plt.figure()
plt.contourf(X, Y, Z, 100, cmap='jet')
plt.colorbar()
plt.scatter(best_solution[0], best_solution[1], c='red', marker='x')
plt.title('Optimization Results')
plt.xlabel('x1')
plt.ylabel('x2')
plt.show()
```
上述代码中,我们使用了一个名为`GeneticAlgorithm`的遗传算法类来实现遗传算法的求解过程。在该类中,我们需要实现适应度函数、选择操作、交叉操作和变异操作等基本功能。然后,我们可以通过调用该类的`run`方法来运行遗传算法,并获取最佳解和最佳适应度。最后,我们使用Matplotlib库生成结果的示意图。