import random def fitness_function(x): return -(x - 3) ** 2 + 9 # Example function with a peak at x = 3 def hill_climb(start, step_size=0.1, max_iterations=1000): current = start for _ in range(max_iterations): neighbors = [current + step_size, current - step_size] best_neighbor = max(neighbors, key=fitness_function) if fitness_function(best_neighbor) <= fitness_function(current): break current = best_neighbor return current, fitness_function(current) start_point = random.uniform(-10, 10) best_x, best_fitness = hill_climb(start_point) print(f"Best solution: x = {best_x}, fitness = {best_fitness}")