回溯数独求解器的优化无法正常工作

时间:2019-11-17 17:18:47

标签: python recursion optimization backtracking sudoku

我正在尝试通过将要迭代的空平方按照可能的值数量排序来优化我的数独求解器。但是,当我对其进行测试时,它会跳过值,以便返回部分填充的木板。

def available(ary, index):
  ro = set(([ary[i].value for i in ary[index].values]))
  return [x for x in range(1,10) if x not in ro]


def Solver(empty, index2):
  global li, backtrack
  if index2 == len(empty):
     return True
  empty = empty[0:index2] + sorted(empty[index2 + 1: ], key = lambda x: len(available(li, x)), reverse = True)


for guess in available(li, empty[index2]):
  li[empty[index2]].value = guess
  index2 += 1

  if Solver(empty, index2):
    return True


  backtrack += 1
  li[empty[index2]].value = 0
  index2 -= 1

 return False

0 个答案:

没有答案