Simple Python Code
def hill_climbing(dataset):
import random
current = random.randint(0, len(dataset) - 1)
while True:
neighbors = []
if current > 0:
neighbors.append(current - 1)
if current < len(dataset) - 1:
neighbors.append(current + 1)
if not neighbors:
break
best_neighbor = max(neighbors, key=lambda x: dataset[x])
if dataset[best_neighbor] <= dataset[current]:
break
current = best_neighbor
return current, dataset[current]
print("Hill Climbing:")
data = [1, 3, 7, 12, 9, 5, 2]
peak_idx, peak_val = hill_climbing(data)
print(f"Peak found at index {peak_idx} with value {peak_val}\n")Advanced Python Code
def hill_climbing(dataset):
import random
current = random.randint(0, len(dataset) - 1)
while True:
neighbors = []
if current > 0:
neighbors.append(current - 1)
if current < len(dataset) - 1:
neighbors.append(current + 1)
if not neighbors:
break
best_neighbor = max(neighbors, key=lambda x: dataset[x])
if dataset[best_neighbor] <= dataset[current]:
break
current = best_neighbor
return current, dataset[current]
print("Hill Climbing:")
data = [1, 3, 7, 12, 9, 5, 2]
peak_idx, peak_val = hill_climbing(data)
print(f"Peak found at index {peak_idx} with value {peak_val}\n")