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

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

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

五大常用算法之回溯法

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

1、概念

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

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

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

2、基本思想

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

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

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

(1)針對所給問題,確定問題的解空間:

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

(2)確定結(jié)點的擴展搜索規(guī)則。

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

4、算法框架

(1)問題框架

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

(2)非遞歸回溯框架

(3)遞歸的算法框架

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

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

    關(guān)注

    0

    文章

    10

    瀏覽量

    6589

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

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

收藏 人收藏

    評論

    相關(guān)推薦

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

    回溯算法技巧分析

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