常用算法——回溯法.docxVIP

  • 4
  • 0
  • 约8.57千字
  • 约 7页
  • 2023-05-28 发布于辽宁
  • 举报
常用算一一回溯法五、回溯法 回溯法也称为试探法,该方法首先暂时放弃关于问题规模大小的限制,并将问题的候选解按某种顺序逐一枚举和检验。当发现当前候选解不可能是解时,就选择下一个候选解;倘若当前候选解除了还不满足问题规模要求外,满足所有其他要求时,继续扩大当前候选解的规模,并继续试探。如果当前候选解满足包括问题规模在内的所有要求时,该候选解就是问题的一个解。在回溯法中,放弃当前候选解,寻找下一个候选解的过程称为回溯。扩大当前候选解的规模,以继续试探的过程称为向前试探。 1、回溯法的一般描述可用回溯法求解的问题P,通常要能表达为:对于已知的由n元组(xl,x2,…,xn)组成的一个状态空间E={(xl,x2,…,xn)|xiESi,i=1,2,…,n},给定关于n元组中的一个分量的一个约束集D,要求E中满足D的全部约束条件的所有n元组。其中Si是分量xi的定义域,且ISil有限,i=1,2,…,n。我们称E中满足D的全部约束条件的任一n元组为问题P的一个解。 解问题P的最朴素的方法就是枚举法,即对E中的所有n元组逐一地检测其是否满足D的全部约束,若满足,则为问题P的一个解。但显然,其计算量是相当大的。 我们发现,对于许多问题,所给定的约束集D具有完备性,即i元组(xl,x2,…,xi)满足D中仅涉及到xl,x2,…,xi的所有约束意味着j(ji)元组(xl,x2,…,xj)一定也满足D中

文档评论(0)

1亿VIP精品文档

相关文档