0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫(xiě)文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

五大常用算法之回溯法

C語(yǔ)言編程基礎(chǔ) ? 來(lái)源:未知 ? 作者:胡薇 ? 2018-05-02 16:50 ? 次閱讀

1、概念

回溯算法實(shí)際上一個(gè)類似枚舉的搜索嘗試過(guò)程,主要是在搜索嘗試過(guò)程中尋找問(wèn)題的解,當(dāng)發(fā)現(xiàn)已不滿足求解條件時(shí),就“回溯”返回,嘗試別的路徑。

回溯法是一種選優(yōu)搜索法,按選優(yōu)條件向前搜索,以達(dá)到目標(biāo)。但當(dāng)探索到某一步時(shí),發(fā)現(xiàn)原先選擇并不優(yōu)或達(dá)不到目標(biāo),就退回一步重新選擇,這種走不通就退回再走的技術(shù)為回溯法,而滿足回溯條件的某個(gè)狀態(tài)的點(diǎn)稱為“回溯點(diǎn)”。

許多復(fù)雜的,規(guī)模較大的問(wèn)題都可以使用回溯法,有“通用解題方法”的美稱。

2、基本思想

在包含問(wèn)題的所有解的解空間樹(shù)中,按照深度優(yōu)先搜索的策略,從根結(jié)點(diǎn)出發(fā)深度探索解空間樹(shù)。當(dāng)探索到某一結(jié)點(diǎn)時(shí),要先判斷該結(jié)點(diǎn)是否包含問(wèn)題的解,如果包含,就從該結(jié)點(diǎn)出發(fā)繼續(xù)探索下去,如果該結(jié)點(diǎn)不包含問(wèn)題的解,則逐層向其祖先結(jié)點(diǎn)回溯。(其實(shí)回溯法就是對(duì)隱式圖的深度優(yōu)先搜索算法)。

若用回溯法求問(wèn)題的所有解時(shí),要回溯到根,且根結(jié)點(diǎn)的所有可行的子樹(shù)都要已被搜索遍才結(jié)束。而若使用回溯法求任一個(gè)解時(shí),只要搜索到問(wèn)題的一個(gè)解就可以結(jié)束。

3、用回溯法解題的一般步驟:

(1)針對(duì)所給問(wèn)題,確定問(wèn)題的解空間:

首先應(yīng)明確定義問(wèn)題的解空間,問(wèn)題的解空間應(yīng)至少包含問(wèn)題的一個(gè)(最優(yōu))解。

(2)確定結(jié)點(diǎn)的擴(kuò)展搜索規(guī)則。

(3)以深度優(yōu)先方式搜索解空間,并在搜索過(guò)程中用剪枝函數(shù)避免無(wú)效搜索。

4、算法框架

(1)問(wèn)題框架

設(shè)問(wèn)題的解是一個(gè)n維向量(a1,a2,………,an),約束條件是ai(i=1,2,3,…..,n)之間滿足某種條件,記為f(ai)。

(2)非遞歸回溯框架

(3)遞歸的算法框架

回溯法是對(duì)解空間的深度優(yōu)先搜索,在一般情況下使用遞歸函數(shù)來(lái)實(shí)現(xiàn)回溯法比較簡(jiǎn)單,其中i為搜索的深度,框架如下:

聲明:本文內(nèi)容及配圖由入駐作者撰寫(xiě)或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場(chǎng)。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問(wèn)題,請(qǐng)聯(lián)系本站處理。 舉報(bào)投訴
  • 回溯算法
    +關(guān)注

    關(guān)注

    0

    文章

    10

    瀏覽量

    6590

原文標(biāo)題:五大常用算法【回溯法】

文章出處:【微信號(hào):xx-cyy,微信公眾號(hào):C語(yǔ)言編程基礎(chǔ)】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。

收藏 人收藏

    評(píng)論

    相關(guān)推薦

    [推薦]安易ezsafe防火墻五大優(yōu)點(diǎn)

      安易ezsafe防火墻五大優(yōu)點(diǎn) 文章出自:http://blog.sina.com.cn/s/blog_5997675201009wyc.html優(yōu)點(diǎn)一
    發(fā)表于 06-17 14:55

    2011年沙特吉達(dá)五大行業(yè)展|沙特建材展|吉達(dá)建材展|五大行業(yè)展|

    2011 沙特big 5 五大行業(yè)展(北京邁斯百特)展會(huì)時(shí)間:2011年02月27日—03月02日   展會(huì)地點(diǎn):沙特吉達(dá)國(guó)際會(huì)展中心 &
    發(fā)表于 07-05 17:09

    回溯經(jīng)典 (皇后問(wèn)題) (算法)

    5皇后問(wèn)題:在8*8的國(guó)際象棋棋盤(pán)上,放5個(gè)皇后,使它們控制整個(gè)棋盤(pán),即在任何一格放一個(gè)棋子,都會(huì)馬上被吃掉。下面介紹回溯解法定義一個(gè)表示點(diǎn)的數(shù)據(jù)結(jié)構(gòu): struct Pt {Int x,y
    發(fā)表于 08-16 14:56

    電機(jī)控制常用算法概述(4)

    產(chǎn)生隨時(shí)間變化的電壓。其開(kāi)關(guān)頻率范圍一般為10-20 KHz,以消除噪聲。這一通用電機(jī)的控制方法可以獲得更佳的電流控制和更佳的EMI性能,因此,效率更高。 本文相關(guān)文章1? 電機(jī)控制常用算法概述(1)2?電機(jī)控制
    發(fā)表于 10-26 11:00

    推薦常用算法——基于內(nèi)容的推薦

    推薦常用算法-基于內(nèi)容的推薦(轉(zhuǎn)自-BreezeDeus博主)
    發(fā)表于 04-29 15:12

    模板方法模式在回溯算法中的應(yīng)用

    描述了模板方法模式及回溯算法的模板方法模式的Java 語(yǔ)言實(shí)現(xiàn),該實(shí)現(xiàn)使得回溯算法的實(shí)現(xiàn)達(dá)到了可擴(kuò)展性、靈活性和可插入性三個(gè)目標(biāo),提高了算法
    發(fā)表于 01-15 16:48 ?20次下載

    模板方法模式在回溯算法中的應(yīng)用

    描述了模板方法模式及回溯算法的模板方法模式的Java 語(yǔ)言實(shí)現(xiàn),該實(shí)現(xiàn)使得回溯算法的實(shí)現(xiàn)達(dá)到了可擴(kuò)展性、靈活性和可插入性三個(gè)目標(biāo),提高了算法
    發(fā)表于 01-15 16:51 ?0次下載

    鉛酸蓄電池材料我國(guó)五大鉛鋅生產(chǎn)基地

    鉛酸蓄電池材料我國(guó)五大鉛鋅生產(chǎn)基地 我國(guó)五大鉛鋅生產(chǎn)基地     中國(guó)鉛
    發(fā)表于 10-29 14:12 ?1248次閱讀

    五大常用算法:分治、動(dòng)態(tài)規(guī)劃、貪心、回溯和分支界定詳解

    算法(Algorithm)是指解題方案的準(zhǔn)確而完整的描述,是一系列解決問(wèn)題的清晰指令,算法代表著用系統(tǒng)的方法描述解決問(wèn)題的策略機(jī)制。也就是說(shuō),能夠?qū)σ欢ㄒ?guī)范的輸入,在有限時(shí)間內(nèi)獲得所要求的輸出。如果
    發(fā)表于 11-30 09:50 ?1.1w次閱讀

    決定人工智能發(fā)展的風(fēng)向標(biāo)五大關(guān)鍵問(wèn)

    人工智能發(fā)展如何脫虛入實(shí)?人才與核心技術(shù)瓶頸如何取得突破?法律倫理責(zé)任如何界定?將會(huì)砸了誰(shuí)的飯碗?背后的算法歧視如何解決?梳理過(guò)去一年人工智能發(fā)展,理性看待目前的階段,這五大關(guān)鍵問(wèn)可能將是人工智能發(fā)展的風(fēng)向標(biāo)。
    的頭像 發(fā)表于 01-11 09:19 ?3119次閱讀

    分支限界回溯算法的詳細(xì)資料概述

    回溯的求解目標(biāo)是找出解空間樹(shù)中滿足約束條件的所有解,而分支限界的求解目標(biāo)則是找出滿足約束條件的一個(gè)解,或是在滿足約束條件的解中找出在某種意義下的最優(yōu)解。 (2)搜索方式的不同:回溯
    的頭像 發(fā)表于 06-12 19:40 ?7400次閱讀
    分支限界<b class='flag-5'>法</b>與<b class='flag-5'>回溯</b><b class='flag-5'>法</b><b class='flag-5'>算法</b>的詳細(xì)資料概述

    干貨:五大系統(tǒng)的常用線纜用量計(jì)算公式

    干貨:五大系統(tǒng)的常用線纜用量計(jì)算公式
    發(fā)表于 10-29 16:47 ?3842次閱讀
    干貨:<b class='flag-5'>五大</b>系統(tǒng)的<b class='flag-5'>常用</b>線纜用量計(jì)算公式

    如何使用回溯實(shí)現(xiàn)網(wǎng)絡(luò)設(shè)計(jì)問(wèn)題算法的設(shè)計(jì)

    隨著石油在人們?nèi)粘I钪械膹V泛應(yīng)用,石油公司需要通過(guò)管道輸送大量的石油,目前,中國(guó)油氣管道正呈現(xiàn)出蓬勃發(fā)展的勢(shì)頭,已成為我國(guó)第五大運(yùn)輸業(yè),而在石油傳輸網(wǎng)絡(luò)的設(shè)計(jì)中通常會(huì)遇到最少增壓器的問(wèn)題,選題
    發(fā)表于 12-11 08:00 ?7次下載
    如何使用<b class='flag-5'>回溯</b><b class='flag-5'>法</b>實(shí)現(xiàn)網(wǎng)絡(luò)設(shè)計(jì)問(wèn)題<b class='flag-5'>算法</b>的設(shè)計(jì)

    關(guān)于回溯算法的介紹與運(yùn)用

    本文就來(lái)看一道非常經(jīng)典的回溯算法問(wèn)題,子集劃分問(wèn)題,可以幫你更深刻理解回溯算法的思維,得心應(yīng)手地寫(xiě)出回溯函數(shù)。
    的頭像 發(fā)表于 03-25 13:42 ?1605次閱讀

    回溯算法技巧分析

    如果你不理解這三個(gè)詞語(yǔ)的解釋,沒(méi)關(guān)系,我們后面會(huì)用「全排列」和「N 皇后問(wèn)題」這兩個(gè)經(jīng)典的回溯算法問(wèn)題來(lái)幫你理解這些詞語(yǔ)是什么意思,現(xiàn)在你先留著印象。
    的頭像 發(fā)表于 04-19 11:00 ?578次閱讀
    <b class='flag-5'>回溯</b><b class='flag-5'>算法</b>技巧分析