在线观看www成人影院-在线观看www日本免费网站-在线观看www视频-在线观看操-欧美18在线-欧美1级

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

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

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

一種優(yōu)化的方法:記憶化搜索

算法與數(shù)據(jù)結(jié)構(gòu) ? 來源:小K算法 ? 作者:小K ? 2022-06-14 10:21 ? 次閱讀
01 故事起源有一天小K去滑雪,雪山高低不平,當(dāng)然小K只能從高的地方向低的地方滑,那如何選擇路線才能滑的最遠呢? 把這個問題抽象描述如下:

在一個二維地圖中,數(shù)值代表此處山的高度,在某個點只能滑向上下左右4個相鄰的點,最遠的滑行路線,也就等價于找出一條最長的數(shù)值下降路線。

比如下圖中的紅色路線就是此時最長的一條路線,長度為10。那要如何找出這樣的一條路線呢?
64a37f7a-eb88-11ec-ba43-dac502259ad0.jpg ? ?02 分析在每個點上,只能向周圍4個方向滑行,當(dāng)然前提是此處的高度必須比周圍高。 64b7b616-eb88-11ec-ba43-dac502259ad0.jpg ?我們當(dāng)然可以選擇盡可能高的位置出發(fā),比如圖中17比15要高。 64ff5ffc-eb88-11ec-ba43-dac502259ad0.jpg ?但這種有可能會陷入局部最優(yōu)解,比如從下圖中的15開始,最大長度為2。而從13開始會更優(yōu),長度為5。 65127cb8-eb88-11ec-ba43-dac502259ad0.jpg ?所以啟示我們,不能簡單的貪心,而是要考慮全局最優(yōu),因為每一個起點都有可能是最優(yōu)的起點。
那就有了初步的框架了,從每一個起點出發(fā),把可行的路線都找出來,也就是能走的路線都走一遍,再比較全局最優(yōu)的就行了,而且這也正好符合深搜的算法框架。偽代碼

			intfind(inti,intj){  //向4個方向嘗試  for(i=0->3){  if(ok){  returnfind(next)+1  } } } intmain(){  for(i=0->n){  for(j=0->m) {  t=find(i,j)  ans=max(ans,t)  }  } }
			
									03
									問題上面的做法可以得到最優(yōu)解,但有一個問題。如下例,以15為起點的時候,會嘗試把6->5->4->3->2->1走一遍。但以16為起點的時候,還會嘗試把這條路線走一遍,這就會導(dǎo)致大量的重復(fù)計算。
			653bb826-eb88-11ec-ba43-dac502259ad0.jpg
			?那能不能優(yōu)化呢? 之所以重復(fù)計算,是因為每一次嘗試都是重新的開始,它并不知道這條路已經(jīng)走過了,也就是沒有記憶,所以我們引入一種優(yōu)化的方法,就是記憶化搜索。
			
									04
									記憶化搜索可以引入一個f[i][j]數(shù)組,記錄以(i,j)為起點所能找到的最長路線的長度,初始賦值為-1,表示還沒有走過。
			6544aac6-eb88-11ec-ba43-dac502259ad0.jpg
			?當(dāng)走過一點,就將對應(yīng)的f[i][j]更新為以(i,j)為起點的最大長度。 再回到上面的問題,因為之前肯定走過了(2,3),對應(yīng)的f[2][3]為6,當(dāng)嘗試從(2,4)出發(fā)時,會發(fā)現(xiàn)周圍已經(jīng)走過了,只需要更新當(dāng)前的值+1即可,就避免了重復(fù)計算。
			659bca36-eb88-11ec-ba43-dac502259ad0.jpg
			?
									?05
									代碼實現(xiàn)路線搜索

			intfind(vector<vector<int>>&snowMountain,vector<vector<int>>&f,inti,intj,intr,intc){ intx,y; if(f[i][j]!=-1) returnf[i][j]; f[i][j]=1; for(intk=0;k4;k++){ x=i+direction[k][0]; y=j+direction[k][1]; //validdirection if(x>=0&&x=0&&ysnowMountain[x][y]){ f[i][j]=maxOfTwo(f[i][j],find(snowMountain,f,x,y,r,c)+1); } } returnf[i][j]; }main函數(shù)

			intmain(){ ifstreamfin("a.in"); ofstreamfout("a.out"); inti,j,r,c,maxHeight=0; fin>>r>>c; vector<vector<int>>snowMountain(r,vector<int>(c,0)); vector<vector<int>>f(r,vector<int>(c,-1)); for(i=0;ifor(j=0;j>snowMountain[i][j]; for(i=0;ifor(j=0;jendl; fin.close(); fout.close(); return0; }
			
									06
									總結(jié)記憶化搜索是一種非常實用的算法,因為深搜用遞歸很容易實現(xiàn),記憶化又避免了重復(fù)子問題的計算,提高了運行效率。 這其實就是動態(tài)規(guī)劃的思想,常見的動態(tài)規(guī)劃用遞推實現(xiàn),相比記憶化搜索實現(xiàn)上會更難一點,而記憶化搜索就沒有這個問題。 算法的適用場景也需要根據(jù)具體的問題來分析,一般常用在地圖或者樹型結(jié)構(gòu)中。
			
			審核編輯 :李倩

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

    關(guān)注

    23

    文章

    4631

    瀏覽量

    93427
  • 代碼
    +關(guān)注

    關(guān)注

    30

    文章

    4837

    瀏覽量

    69128

原文標(biāo)題:啥是記憶化搜索?

文章出處:【微信號:TheAlgorithm,微信公眾號:算法與數(shù)據(jù)結(jié)構(gòu)】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。

收藏 人收藏

    評論

    相關(guān)推薦

    記憶示波器的原理和應(yīng)用

    記憶示波器是一種基于數(shù)字處理原理的測量儀器,其原理和應(yīng)用可以從以下幾個方面進行詳細介紹:記憶示波器的原理 核心組件:記憶示波器的核心是
    發(fā)表于 01-06 15:50

    一種面向飛行試驗的數(shù)據(jù)融合框架

    天地氣動數(shù)據(jù)致性,針對某外形飛行試驗數(shù)據(jù)開展了典型對象的天地氣動數(shù)據(jù)融合方法研究。結(jié)合數(shù)據(jù)挖掘的隨機森林方法,本文提出了一種面向飛行試驗的數(shù)據(jù)融合框架,通過引入地面風(fēng)洞試驗氣動數(shù)據(jù),
    的頭像 發(fā)表于 11-27 11:34 ?341次閱讀
    <b class='flag-5'>一種</b>面向飛行試驗的數(shù)據(jù)融合框架

    一種創(chuàng)新的動態(tài)軌跡預(yù)測方法

    本文提出了一種動態(tài)軌跡預(yù)測方法,通過結(jié)合歷史幀和歷史預(yù)測結(jié)果來提高預(yù)測的穩(wěn)定性和準(zhǔn)確性。它引入了歷史預(yù)測注意力模塊,以編碼連續(xù)預(yù)測之間的動態(tài)關(guān)系,并通過三重因子注意力模塊實現(xiàn)了最先進的性能。本方法能夠生成準(zhǔn)確且穩(wěn)定的未來軌跡,這
    的頭像 發(fā)表于 10-28 14:34 ?521次閱讀
    <b class='flag-5'>一種</b>創(chuàng)新的動態(tài)軌跡預(yù)測<b class='flag-5'>方法</b>

    一種基于光強度相關(guān)反饋的波前整形方法

    基于反饋的波前整形通過散射介質(zhì)聚焦光是一種成熟的方法。在傳統(tǒng)的基于反饋的波前整形中,入射光被分成N個輸入模式,這些模式由空間光調(diào)制器(SLM)使用N個段進行調(diào)制,每個段具有相同數(shù)量和大小的像素
    的頭像 發(fā)表于 10-27 16:28 ?301次閱讀
    <b class='flag-5'>一種</b>基于光強度相關(guān)反饋的波前整形<b class='flag-5'>方法</b>

    一種簡單高效配置FPGA的方法

    本文描述了一種簡單高效配置FPGA的方法,該方法利用微處理器從串行外圍接口(SPI)閃存配置FPGA設(shè)備。這種方法減少了硬件組件、板空間和成本。
    的頭像 發(fā)表于 10-24 14:57 ?831次閱讀
    <b class='flag-5'>一種</b>簡單高效配置FPGA的<b class='flag-5'>方法</b>

    谷歌取消“站點鏈接搜索框”,適應(yīng)新搜索需求

    功能的取消似乎并未對用戶產(chǎn)生太大影響。 在當(dāng)下這個信息快速更新的時代,人們不斷嘗試和探索新的搜索方式和工具,以獲取更加精準(zhǔn)和全面的信息。谷歌的這決定,或許正是其適應(yīng)新時代用戶需求的一種體現(xiàn)。 同時,谷歌也在
    的頭像 發(fā)表于 10-23 11:20 ?391次閱讀

    BitEnergy AI公司開發(fā)出一種新AI處理方法

    BitEnergy AI公司,家專注于人工智能(AI)推理技術(shù)的企業(yè),其工程師團隊創(chuàng)新性地開發(fā)了一種名為線性復(fù)雜度乘法(L-Mul)的AI處理方法。該方法的核心在于,它用整數(shù)加法替代
    的頭像 發(fā)表于 10-22 15:15 ?452次閱讀

    一種利用wireshark對遠程服務(wù)器/路由器網(wǎng)絡(luò)抓包方法

    一種利用wireshark對遠程服務(wù)器/路由器網(wǎng)絡(luò)抓包方法
    的頭像 發(fā)表于 09-21 08:03 ?3597次閱讀
    <b class='flag-5'>一種</b>利用wireshark對遠程服務(wù)器/路由器網(wǎng)絡(luò)抓包<b class='flag-5'>方法</b>

    一種無透鏡成像的新方法

    使用OAM-HHG EUV光束對高度周期性結(jié)構(gòu)進行成像的EUV聚光顯微鏡 為了研究微電子或光子元件中的納米級圖案,一種基于無透鏡成像的新方法可以實現(xiàn)近乎完美的高分辨率顯微鏡。 層析成像是一種強大的無
    的頭像 發(fā)表于 07-19 06:20 ?452次閱讀
    <b class='flag-5'>一種</b>無透鏡成像的新<b class='flag-5'>方法</b>

    rup是一種什么模型

    部分)開發(fā)的,它基于統(tǒng)建模語言(UML)和面向?qū)ο蟮能浖_發(fā)方法。RUP提供了一種結(jié)構(gòu)方法來開發(fā)軟件,它包括
    的頭像 發(fā)表于 07-09 10:13 ?1416次閱讀

    機械自動是自動一種

    引言 自動技術(shù)是指利用控制裝置對生產(chǎn)過程進行控制,以實現(xiàn)生產(chǎn)過程的自動。機械自動是自動技術(shù)的一種,它主要涉及到使用機械設(shè)備和控制系統(tǒng)
    的頭像 發(fā)表于 07-01 09:32 ?1943次閱讀

    plc是一種什么的電子裝置

    PLC(Programmable Logic Controller,可編程邏輯控制器)是一種廣泛應(yīng)用于工業(yè)自動領(lǐng)域的電子裝置。它具有高度的靈活性和可靠性,能夠?qū)崿F(xiàn)各種復(fù)雜的控制任務(wù)。本文將詳細介紹
    的頭像 發(fā)表于 06-13 09:29 ?1174次閱讀

    基于助聽器開發(fā)的一種高效的語音增強神經(jīng)網(wǎng)絡(luò)

    SRAM。我們使用Mbed OS[12]和CMSIS內(nèi)核[13,14]。表1總結(jié)了SE模型約束。 在本工作中,我們提出了一種方法來生成滿足表1要求的優(yōu)化RNN SE模型。首先,我們演示了對SE
    發(fā)表于 06-07 11:29

    一種利用光致Lamb波對微米級顆粒進行大通量操控的光聲圖案方法

    近日,北京理工大學(xué)李鋒教授聯(lián)合華南理工大學(xué)李志遠教授與中央民族大學(xué)郭紅蓮教授提出了一種利用光致Lamb波在空氣中對微米級顆粒進行大通量操控的光聲圖案方法
    的頭像 發(fā)表于 04-25 09:14 ?830次閱讀
    <b class='flag-5'>一種</b>利用光致Lamb波對微米級顆粒進行大通量操控的光聲圖案<b class='flag-5'>化</b><b class='flag-5'>方法</b>

    什么電路具有記憶功能 時序電路是不含有記憶功能的器件對嗎

    觸發(fā)器等特定的電路元件來實現(xiàn)記憶功能。以下會詳細介紹幾種具有記憶功能的電路。 1. 存儲器:存儲器是一種具有記憶功能的電路元件,用于存儲和檢索數(shù)據(jù)。存儲器可以分為隨機存取存儲器(RAM
    的頭像 發(fā)表于 03-26 16:12 ?2959次閱讀
    主站蜘蛛池模板: 视频一区视频二区在线观看 | 一级网站在线观看 | 国产叼嘿网站免费观看不用充会员 | 久久做 | 恨恨操 | 亚洲色图在线播放 | 天堂综合 | 日本妞xxxxxxxxx69 | 四虎在线免费视频 | 欧美一二| 五月天婷婷社区 | 五月婷婷一区二区 | 成人a大片高清在线观看 | 色五月婷婷成人网 | 国产精品爱啪在线线免费观看 | 狠狠色狠色综合曰曰 | 老头天天吃我奶躁我的动图 | 国产caob| 4455ee日本高清免费观看 | 国产亚洲网站 | 一区二区三区视频在线 | 亚洲三级免费观看 | 亚洲黄色激情网 | 成人丁香乱小说 | 五月婷婷亚洲综合 | 日本一二线不卡在线观看 | 亚洲免费视频播放 | 毛片2016免费视频 | 日本吻胸抓胸激烈视频网站 | 奇米在线 | 综合色吧 | 男女啪视频大全1000 | 天堂成人精品视频在线观 | 久久久噜噜噜www成人网 | 正在播放国产巨作 | 国产一级一级片 | 男男生子大肚play做到生 | 成年人激情视频 | 亚洲情a成黄在线观看动 | 天天视频一区二区三区 | 性欧美videofree丝袜 |