算法与程序设计:回溯法

Posted Abro.

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了算法与程序设计:回溯法相关的知识,希望对你有一定的参考价值。

目录

背景

一、概念

1.1 回溯法的算法框架

1.2 详解说明

二、举例

2.1 批作业调度问题

2.2 装载问题


背景


一、概念

回溯法有“通用解题法”之称,用它可以系统地搜索问题的所有解。回溯法是一个既带有系统性又带有跳跃性的搜索算法。它在问题的解空间树中,按深度优先策略,从根结点出发搜索解空间树。算法搜索至解空间树的任一结点时,先判断该结点是否包含问题的解。如果肯定不包含,则跳过对该结点为根的子树的搜索,逐层向其祖先结点回溯;否则,进入该子树,继续按深度优先策略搜索。回溯法求问题的所有解时,要回溯到根,且根结点的所有子树都被搜索遍才结束。回溯法求问题的一个解时,只要搜索到问题的一个解就可结束。这种以深度优先方式系统搜索问题解的算法称为回溯法,它适用于求解组合数较大的问题。


1.1 回溯法的算法框架

  1. 问题的解空间
  2. 回溯法的基本思想
  3. 递归回溯
  4. 迭代回溯
  5. 子集树和排列树

1.2 详解说明

 


二、举例

2.1 批作业调度问题

再举一例:


2.2 装载问题


算法与程序设计的复习嘻嘻嘻蟹蟹٩('ω')و  

以上是关于算法与程序设计:回溯法的主要内容,如果未能解决你的问题,请参考以下文章

算法设计与分析——回溯法算法模板

[XJTUSE 算法设计与分析] 第五章 回溯法

算法与程序设计:回溯法

算法设计与分析 实验三 回溯法求解地图填色问题

算法设计与分析 实验六 回溯法

Leetcode练习(Python):回溯算法类:第211题:添加与搜索单词 - 数据结构设计:设计一个支持以下两种操作的数据结构: void addWord(word) bool search(w