import heapq
def leap_algorithm(states, heuristic):
dp = [float('inf')] * len(states)
dp[0] = 0
heap = [(heuristic(states[0]), 0)]
while heap:
_, idx = heapq.heappop(heap)
if is_final_state(states[idx]):
return dp[idx]
for next_idx in get_neighbors(idx):
if heuristic(states[next_idx]) < threshold:
continue # 跳跃
new_cost = dp[idx] + cost(idx, next_idx)
if new_cost < dp[next_idx]:
dp[next_idx] = new_cost
heapq.heappush(heap, (new_cost + heuristic(states[next_idx]), next_idx))
如果需要源代码可以连我,包教包会
发布于2025-5-14 08:58 武汉

