爬山算法python代码
时间: 2023-11-20 20:54:49 浏览: 108
是爬山算法的Python代码实现:
```python
import random
# 定义目标函数
def target_function(x):
return x ** 2
# 定义爬山算法
def hill_climbing(target_function, x_min, x_max, max_iter):
# 随机初始化解
x_best = random.uniform(x_min, x_max)
y_best = target_function(x_best)
for i in range(max_iter):
# 随机生成新解
x_new = random.uniform(x_min, x_max)
y_new = target_function(x_new)
# 判断新解是否更优
if y_new < y_best:
x_best = x_new
y_best = y_new
return x_best, y_best
# 测试
x_min, x_max = -10, 10
max_iter = 1000
x_best, y_best = hill_climbing(target_function, x_min, x_max, max_iter)
print("最优解为:", x_best)
print("最优解对应的函数值为:", y_best)
```
该代码实现了一个简单的爬山算法,通过随机初始化解,逐步找到一个最优解。其中,`target_function`为目标函数,`hill_climbing`为爬山算法函数,`x_min`和`x_max`为解的取值范围,`max_iter`为最大迭代次数。在测试中,我们将解的取值范围设为`[-10, 10]`,最大迭代次数设为`1000`,并输出最优解和最优解对应的函数值。
阅读全文