貪心算法+回溯算法

貪心算法

先來比較一下貪心算法和動(dòng)態(tài)規(guī)劃

貪心算法是指在對(duì)問題求解時(shí)故黑,總是做出在當(dāng)前看來是最好的選擇遥诉,不考慮整體拢驾,只考慮局部最優(yōu),所以它不一定能得到最優(yōu)解定铜;


動(dòng)態(tài)規(guī)劃則是每個(gè)步驟都要進(jìn)行一次選擇阳液,但選擇通常要依賴子問題的解,所以它是考慮整體的揣炕,由于通常要依賴子問題的解帘皿,所以一般選自自底向上自帶備忘的機(jī)制,所以一定是最優(yōu)解祝沸;


最優(yōu)子結(jié)構(gòu)的概念


如果一個(gè)問題的解包含其子問題的最優(yōu)解矮烹,則稱該問題具有最優(yōu)子結(jié)構(gòu)越庇,也就是求解大問題的解罩锐,是通過求解小問題取解決
如果理解了最優(yōu)子結(jié)構(gòu),則會(huì)發(fā)現(xiàn)貪心算法和動(dòng)態(tài)規(guī)劃都利用了最優(yōu)子結(jié)構(gòu)的性質(zhì)

實(shí)現(xiàn)該算法的過程

從問題的某一初始解出發(fā)

while 能朝給定總目標(biāo)前進(jìn)一步 do

求出可行解的一個(gè)解元素

由所有解元素組合成問題的一個(gè)可行解

典型的可用貪心來解的問題有

最小生成樹卤唉、分?jǐn)?shù)背包問題(類似0-1背包問題涩惑,只不過可以取物體的一部分)

用分?jǐn)?shù)背包問題舉個(gè)例子

W=30(所選物體不能超過30)

物品:A B C

重量:20 5? 20

價(jià)值:40 20 20
這個(gè)時(shí)候的貪心選擇肯定是選擇單位價(jià)值量最高的


所以先選擇B,再選擇A?
再從C中選擇5??
這時(shí)價(jià)值肯定最大


但貪心算法一開始就說了桑驱,并不保證最優(yōu)解竭恬,所以有時(shí)會(huì)配合隨機(jī)算法(算法導(dǎo)論第三版第五章有講)使用?
一般來說貪心算法的代碼比動(dòng)態(tài)規(guī)劃簡(jiǎn)單的多


回溯算法

回溯法概念

通常采取深度遍歷的形式,按照某種規(guī)則的能夠避免某些不必要搜索的窮舉式搜索

解空間(所有解的集合)

可以組織成一棵解集合的樹

解集合樹中的節(jié)點(diǎn)分為幾種

擴(kuò)展節(jié)點(diǎn)

在當(dāng)前的擴(kuò)展結(jié)點(diǎn)處熬的,搜索向縱深方向移至一個(gè)新結(jié)點(diǎn)痊硕。這個(gè)結(jié)點(diǎn)就成為一個(gè)新的活結(jié)點(diǎn),并成為當(dāng)前擴(kuò)展結(jié)點(diǎn)押框。

死節(jié)點(diǎn)

如果在當(dāng)前的擴(kuò)展結(jié)點(diǎn)處不能再向縱深方向移動(dòng)岔绸,則當(dāng)前的擴(kuò)展結(jié)點(diǎn)就成為死結(jié)點(diǎn),此時(shí)應(yīng)往回移動(dòng)(回溯)至最近的一個(gè)活結(jié)點(diǎn)處,并使這個(gè)活結(jié)點(diǎn)成為當(dāng)前的擴(kuò)展結(jié)點(diǎn)盒揉,用這種方式遞歸地在解空間中搜索晋被,直至找到所要求的解或解空間中已無活結(jié)點(diǎn)為止

典型問題

貨擔(dān)郎問題(TSP問題)

設(shè)某售貨員要到若干城市去推銷商品,已知各城市之間的路程(或路費(fèi))刚盈。他要選定一條從駐地出發(fā)羡洛,經(jīng)過每個(gè)城市一遍,最后回到駐地的路線藕漱,使總的路程最小欲侮。

這是解集合樹(具體怎么解決這個(gè)問題,再分子界限算法中解決肋联,這里只是介紹回溯法本身)

利用回溯法解決該類問題步驟

1锈麸、針對(duì)所給問題,定義問題的解空間牺蹄;

2忘伞、確定易于搜索的解空間結(jié)構(gòu);

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

常用剪枝函數(shù)(這里明白概念就行鼎天,具體在分支界限算法講)

用約束函數(shù)在擴(kuò)展結(jié)點(diǎn)處剪去不滿足約束的子樹舀奶;

用限界函數(shù)剪去得不到最優(yōu)解的子樹。

具體例子斋射,0-1背包問題和TSP問題育勺,將在下一章結(jié)合分支界限介紹,這章只介紹概念

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末罗岖,一起剝皮案震驚了整個(gè)濱河市涧至,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌桑包,老刑警劉巖南蓬,帶你破解...
    沈念sama閱讀 212,454評(píng)論 6 493
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場(chǎng)離奇詭異哑了,居然都是意外死亡赘方,警方通過查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,553評(píng)論 3 385
  • 文/潘曉璐 我一進(jìn)店門弱左,熙熙樓的掌柜王于貴愁眉苦臉地迎上來窄陡,“玉大人,你說我怎么就攤上這事拆火√玻” “怎么了鳖悠?”我有些...
    開封第一講書人閱讀 157,921評(píng)論 0 348
  • 文/不壞的土叔 我叫張陵,是天一觀的道長(zhǎng)优妙。 經(jīng)常有香客問我乘综,道長(zhǎng),這世上最難降的妖魔是什么套硼? 我笑而不...
    開封第一講書人閱讀 56,648評(píng)論 1 284
  • 正文 為了忘掉前任卡辰,我火速辦了婚禮,結(jié)果婚禮上邪意,老公的妹妹穿的比我還像新娘九妈。我一直安慰自己,他們只是感情好雾鬼,可當(dāng)我...
    茶點(diǎn)故事閱讀 65,770評(píng)論 6 386
  • 文/花漫 我一把揭開白布萌朱。 她就那樣靜靜地躺著,像睡著了一般策菜。 火紅的嫁衣襯著肌膚如雪晶疼。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 49,950評(píng)論 1 291
  • 那天又憨,我揣著相機(jī)與錄音翠霍,去河邊找鬼。 笑死蠢莺,一個(gè)胖子當(dāng)著我的面吹牛寒匙,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播躏将,決...
    沈念sama閱讀 39,090評(píng)論 3 410
  • 文/蒼蘭香墨 我猛地睜開眼锄弱,長(zhǎng)吁一口氣:“原來是場(chǎng)噩夢(mèng)啊……” “哼!你這毒婦竟也來了祸憋?” 一聲冷哼從身側(cè)響起会宪,我...
    開封第一講書人閱讀 37,817評(píng)論 0 268
  • 序言:老撾萬榮一對(duì)情侶失蹤,失蹤者是張志新(化名)和其女友劉穎夺衍,沒想到半個(gè)月后狈谊,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 44,275評(píng)論 1 303
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡沟沙,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 36,592評(píng)論 2 327
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了壁榕。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片矛紫。...
    茶點(diǎn)故事閱讀 38,724評(píng)論 1 341
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖牌里,靈堂內(nèi)的尸體忽然破棺而出颊咬,到底是詐尸還是另有隱情务甥,我是刑警寧澤,帶...
    沈念sama閱讀 34,409評(píng)論 4 333
  • 正文 年R本政府宣布喳篇,位于F島的核電站敞临,受9級(jí)特大地震影響,放射性物質(zhì)發(fā)生泄漏麸澜。R本人自食惡果不足惜挺尿,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 40,052評(píng)論 3 316
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望炊邦。 院中可真熱鬧编矾,春花似錦、人聲如沸馁害。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,815評(píng)論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽碘菜。三九已至凹蜈,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間忍啸,已是汗流浹背踪区。 一陣腳步聲響...
    開封第一講書人閱讀 32,043評(píng)論 1 266
  • 我被黑心中介騙來泰國(guó)打工, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留吊骤,地道東北人缎岗。 一個(gè)月前我還...
    沈念sama閱讀 46,503評(píng)論 2 361
  • 正文 我出身青樓,卻偏偏與公主長(zhǎng)得像白粉,于是被迫代替她去往敵國(guó)和親传泊。 傳聞我的和親對(duì)象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 43,627評(píng)論 2 350

推薦閱讀更多精彩內(nèi)容

  • 回溯法與分支限界法 時(shí)間 2016-03-24 標(biāo)簽 搜索 回溯法 1鸭巴、概念 回溯算法實(shí)際上一個(gè)類似枚舉的搜索嘗...
    wangchuang2017閱讀 2,322評(píng)論 0 4
  • 目錄 1.分支限界法簡(jiǎn)介1.1 分支限界法的本質(zhì)——通過限界阻塞子樹1.2 分支限界法與回溯法的區(qū)別1.3 下界或...
    王偵閱讀 27,102評(píng)論 2 13
  • 五大常用算法之一:分治算法 基本概念: 把一個(gè)復(fù)雜的問題分成兩個(gè)或更多的相同的或相似的子問題眷细。再把子問題分成更小的...
    親愛的破小孩閱讀 4,879評(píng)論 0 1
  • 目錄 1.廣度優(yōu)先搜索及其擴(kuò)展應(yīng)用1.1 廣度優(yōu)先搜索參見基本的圖算法1.2 分支限界法參見分支限界法——對(duì)解空間...
    王偵閱讀 2,957評(píng)論 0 10
  • 說起中國(guó)傳統(tǒng)文化,離不開一個(gè)“禮”字鹃祖∠担“國(guó)之四維”的禮、義恬口、廉校读、恥中有禮,“五匙婺埽”的仁歉秫、義、禮养铸、智...
    筱竹華倩閱讀 259評(píng)論 0 0