0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看威廉希尔官方网站 视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

五大常用算法之回溯法

C语言编程基础 来源:未知 作者:胡薇 2018-05-02 16:50 次阅读

1、概念

回溯算法实际上一个类似枚举的搜索尝试过程,主要是在搜索尝试过程中寻找问题的解,当发现已不满足求解条件时,就“回溯”返回,尝试别的路径。

回溯法是一种选优搜索法,按选优条件向前搜索,以达到目标。但当探索到某一步时,发现原先选择并不优或达不到目标,就退回一步重新选择,这种走不通就退回再走的威廉希尔官方网站 为回溯法,而满足回溯条件的某个状态的点称为“回溯点”。

许多复杂的,规模较大的问题都可以使用回溯法,有“通用解题方法”的美称。

2、基本思想

在包含问题的所有解的解空间树中,按照深度优先搜索的策略,从根结点出发深度探索解空间树。当探索到某一结点时,要先判断该结点是否包含问题的解,如果包含,就从该结点出发继续探索下去,如果该结点不包含问题的解,则逐层向其祖先结点回溯。(其实回溯法就是对隐式图的深度优先搜索算法)。

若用回溯法求问题的所有解时,要回溯到根,且根结点的所有可行的子树都要已被搜索遍才结束。而若使用回溯法求任一个解时,只要搜索到问题的一个解就可以结束。

3、用回溯法解题的一般步骤:

(1)针对所给问题,确定问题的解空间:

首先应明确定义问题的解空间,问题的解空间应至少包含问题的一个(最优)解。

(2)确定结点的扩展搜索规则。

(3)以深度优先方式搜索解空间,并在搜索过程中用剪枝函数避免无效搜索。

4、算法框架

(1)问题框架

设问题的解是一个n维向量(a1,a2,………,an),约束条件是ai(i=1,2,3,…..,n)之间满足某种条件,记为f(ai)。

(2)非递归回溯框架

(3)递归的算法框架

回溯法是对解空间的深度优先搜索,在一般情况下使用递归函数来实现回溯法比较简单,其中i为搜索的深度,框架如下:

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 回溯算法
    +关注

    关注

    0

    文章

    10

    浏览量

    6597

原文标题:五大常用算法【回溯法】

文章出处:【微信号:xx-cyy,微信公众号:C语言编程基础】欢迎添加关注!文章转载请注明出处。

收藏 人收藏

    评论

    相关推荐

    [推荐]安易ezsafe防火墙五大优点

      安易ezsafe防火墙五大优点 文章出自:http://blog.sina.com.cn/s/blog_5997675201009wyc.html优点一
    发表于 06-17 14:55

    2011年沙特吉达五大行业展|沙特建材展|吉达建材展|五大行业展|

    2011 沙特big 5 五大行业展(北京迈斯百特)展会时间:2011年02月27日—03月02日   展会地点:沙特吉达国际会展中心 &
    发表于 07-05 17:09

    回溯经典 (皇后问题) (算法)

    5皇后问题:在8*8的国际象棋棋盘上,放5个皇后,使它们控制整个棋盘,即在任何一格放一个棋子,都会马上被吃掉。下面介绍回溯解法定义一个表示点的数据结构: struct Pt {Int x,y
    发表于 08-16 14:56

    电机控制常用算法概述(4)

    产生随时间变化的电压。其开关频率范围一般为10-20 KHz,以消除噪声。这一通用电机的控制方法可以获得更佳的电流控制和更佳的EMI性能,因此,效率更高。 本文相关文章1、 电机控制常用算法概述(1)2、电机控制
    发表于 10-26 11:00

    推荐常用算法——基于内容的推荐

    推荐常用算法-基于内容的推荐(转自-BreezeDeus博主)
    发表于 04-29 15:12

    模板方法模式在回溯算法中的应用

    描述了模板方法模式及回溯算法的模板方法模式的Java 语言实现,该实现使得回溯算法的实现达到了可扩展性、灵活性和可插入性三个目标,提高了算法
    发表于 01-15 16:48 20次下载

    模板方法模式在回溯算法中的应用

    描述了模板方法模式及回溯算法的模板方法模式的Java 语言实现,该实现使得回溯算法的实现达到了可扩展性、灵活性和可插入性三个目标,提高了算法
    发表于 01-15 16:51 0次下载

    铅酸蓄电池材料我国五大铅锌生产基地

    铅酸蓄电池材料我国五大铅锌生产基地 我国五大铅锌生产基地     中国铅
    发表于 10-29 14:12 1261次阅读

    五大常用算法:分治、动态规划、贪心、回溯和分支界定详解

    算法(Algorithm)是指解题方案的准确而完整的描述,是一系列解决问题的清晰指令,算法代表着用系统的方法描述解决问题的策略机制。也就是说,能够对一定规范的输入,在有限时间内获得所要求的输出。如果
    发表于 11-30 09:50 1.1w次阅读

    决定人工智能发展的风向标五大关键

    人工智能发展如何脱虚入实?人才与核心威廉希尔官方网站 瓶颈如何取得突破?法律伦理责任如何界定?将会砸了谁的饭碗?背后的算法歧视如何解决?梳理过去一年人工智能发展,理性看待目前的阶段,这五大关键问可能将是人工智能发展的风向标。
    的头像 发表于 01-11 09:19 3171次阅读

    分支限界回溯算法的详细资料概述

    回溯的求解目标是找出解空间树中满足约束条件的所有解,而分支限界的求解目标则是找出满足约束条件的一个解,或是在满足约束条件的解中找出在某种意义下的最优解。 (2)搜索方式的不同:回溯
    的头像 发表于 06-12 19:40 7524次阅读
    分支限界<b class='flag-5'>法</b>与<b class='flag-5'>回溯</b><b class='flag-5'>法</b><b class='flag-5'>算法</b>的详细资料概述

    干货:五大系统的常用线缆用量计算公式

    干货:五大系统的常用线缆用量计算公式
    发表于 10-29 16:47 4006次阅读
    干货:<b class='flag-5'>五大</b>系统的<b class='flag-5'>常用</b>线缆用量计算公式

    如何使用回溯实现网络设计问题算法的设计

    随着石油在人们日常生活中的广泛应用,石油公司需要通过管道输送大量的石油,目前,中国油气管道正呈现出蓬勃发展的势头,已成为我国第五大运输业,而在石油传输网络的设计中通常会遇到最少增压器的问题,选题
    发表于 12-11 08:00 7次下载
    如何使用<b class='flag-5'>回溯</b><b class='flag-5'>法</b>实现网络设计问题<b class='flag-5'>算法</b>的设计

    关于回溯算法的介绍与运用

    本文就来看一道非常经典的回溯算法问题,子集划分问题,可以帮你更深刻理解回溯算法的思维,得心应手地写出回溯函数。
    的头像 发表于 03-25 13:42 1647次阅读

    回溯算法技巧分析

    如果你不理解这三个词语的解释,没关系,我们后面会用「全排列」和「N 皇后问题」这两个经典的回溯算法问题来帮你理解这些词语是什么意思,现在你先留着印象。
    的头像 发表于 04-19 11:00 656次阅读
    <b class='flag-5'>回溯</b><b class='flag-5'>算法</b>技巧分析