爬山算法python样例
时间: 2023-07-25 08:44:15 浏览: 102
以下是一个简单的爬山算法的 Python 样例代码:
```python
import math
import random
# 定义目标函数
def target_function(x):
return math.sin(x) + 0.5 * math.sin(3 * x)
# 定义爬山算法
def hill_climbing(start_x, step_size, max_iter):
current_x = start_x
current_value = target_function(current_x)
for i in range(max_iter):
# 随机生成新的 x 值
new_x = current_x + random.uniform(-step_size, step_size)
new_value = target_function(new_x)
# 如果新的值更优,则更新当前值
if new_value > current_value:
current_x = new_x
current_value = new_value
return current_x, current_value
# 运行爬山算法
start_x = 0
step_size = 0.1
max_iter = 1000
result_x, result_value = hill_climbing(start_x, step_size, max_iter)
print("x = {:.2f}, f(x) = {:.2f}".format(result_x, result_value))
```
在这个例子中,我们使用一个简单的函数 `target_function` 作为目标函数,然后实现了一个 `hill_climbing` 函数来执行爬山算法。我们设置了起始点 `start_x`、步长 `step_size` 和最大迭代次数 `max_iter`,然后运行算法并打印结果。
阅读全文