JRM 是二维 list, best_RJM 总是返回循环最后一次生成的 new_RJM 而不是 best_cost 对应的 new_RJM. 这里的 list 需要怎么处理才能正确值呢?
def sls(RJM, n):
initNode = Node(0, 0)
initNode.distance = 0
best_cost = ucs(RJM, initNode)
# best_RJM = RJM
for i in range(n):
new_RJM = random_change(RJM,len(RJM))
result = ucs(new_RJM, initNode)
if best_cost < result:
best_cost = result
RJM = new_RJM
best_RJM = new_RJM
else:
pass
return best_RJM, best_cost