亚洲有码Av一区二区三区_国产高清啪啪免费视频_69色视频国产_国产成人人人爆出白浆_国产精品自在线拍国_一本久久伊人热热精品无码_午夜性刺激在线看免费带字幕_助力高品质欧美狂喷水_亚洲精品日韩无码_精品无码一区二区三区蜜臀_麻豆高清国产AV_熟妇人素无码中文字幕_亚洲a级片在线观看_国产欧美日韩三区_99国产成人高清在线观看

ARTICLE DETAIL

資訊詳情

深耕商務(wù)建站與企業(yè)官網(wǎng)運(yùn)營(yíng)的一線實(shí)戰(zhàn)洞察。

搜索策略與問(wèn)題求解:從盲目搜索到A*算法的AI實(shí)戰(zhàn)指南

搜索策略與問(wèn)題求解:從盲目搜索到A*算法的AI實(shí)戰(zhàn)指南 這是我人工智能系列筆記里實(shí)操性最強(qiáng)的一章。第四章搜索策略與問(wèn)題求解。不少初學(xué)者翻到教材這一章看著滿屏的樹(shù)、圖、隊(duì)列、優(yōu)先隊(duì)列會(huì)覺(jué)得這跟智能兩個(gè)字根本沒(méi)搭上邊但等你真正把八數(shù)碼、路徑規(guī)劃、迷宮尋路這類問(wèn)題親手跑通再回頭看這一章會(huì)發(fā)現(xiàn)搜索其實(shí)是大量AI問(wèn)題的底層共性——棋類游戲的決策樹(shù)、機(jī)器人的路徑規(guī)劃、知識(shí)圖譜里的關(guān)系查找本質(zhì)上都是在巨大的狀態(tài)空間里找一條路。這一章的核心任務(wù)就是把找路這件事從直覺(jué)變成可描述的數(shù)學(xué)形式再變成能運(yùn)行的代碼。不同教材的章節(jié)順序略有差異但搜索這塊內(nèi)容基本都落在第四章附近各個(gè)版本都繞不開(kāi)它。1. 第四章在AI知識(shí)體系中的位置與核心思路1.1 為什么搜索會(huì)被單獨(dú)拎出來(lái)講一章如果你把AI看成一門(mén)如何讓程序自己找到答案的學(xué)科搜索就是最樸素也最關(guān)鍵的一類方法。早期AI研究的相當(dāng)一部分精力都花在如何高效地搜索上。后來(lái)深度學(xué)習(xí)火起來(lái)大家開(kāi)口閉口是神經(jīng)網(wǎng)絡(luò)、梯度下降但仔細(xì)想一下模型訓(xùn)練時(shí)的參數(shù)尋優(yōu)本質(zhì)上是在一個(gè)高維空間里搜索一組好參數(shù)自然語(yǔ)言生成時(shí)每個(gè)token的選擇也是在候選詞集合里搜索最合理的下一個(gè)詞。搜索并沒(méi)有過(guò)時(shí)它只是換了個(gè)名字藏在了各種現(xiàn)代算法的底層。教材里把它安排在第四章邏輯上也很順。前三章通常會(huì)講清楚什么是智能體、什么是理性決策、怎么把一個(gè)問(wèn)題描述清楚第四章就要解決描述完之后怎么找到解的問(wèn)題。搜索是連接問(wèn)題定義和求解方法的橋梁。學(xué)完這一章你再看后面章節(jié)里的博弈樹(shù)、約束滿足、規(guī)劃問(wèn)題會(huì)發(fā)現(xiàn)它們都共用同一套狀態(tài)空間思維只是換了不同的搜索策略而已。拿到這一章我心里給它的定位是不只學(xué)幾個(gè)算法而是建立一切問(wèn)題都可以建模成狀態(tài)空間然后通過(guò)搜索求解的視角。帶著這個(gè)視角去讀后面的章節(jié)會(huì)比死記硬背算法好得多。1.2 問(wèn)題形式化寫(xiě)代碼前最容易被忽略的一步搜索的第一步不是寫(xiě)算法而是把問(wèn)題形式化。這一節(jié)經(jīng)常被初學(xué)者跳過(guò)去覺(jué)得能做題就行結(jié)果一寫(xiě)代碼就翻車(chē)。這里以八數(shù)碼為例這是第四章的經(jīng)典問(wèn)題一個(gè)3x3棋盤(pán)上放了1到8八個(gè)數(shù)字和空格每次只能把空格和相鄰數(shù)字交換目標(biāo)是擺成目標(biāo)排列。形式化需要定義五樣?xùn)|西要素八數(shù)碼中的具體含義狀態(tài)一個(gè)3x3棋盤(pán)的全部排列情況初始狀態(tài)題目給定的亂序棋盤(pán)動(dòng)作空格向上下左右移動(dòng)轉(zhuǎn)移模型給定狀態(tài)和動(dòng)作返回移動(dòng)后的新?tīng)顟B(tài)目標(biāo)測(cè)試判斷當(dāng)前狀態(tài)是否等于目標(biāo)排列路徑代價(jià)每移動(dòng)一步代價(jià)為1路徑總代價(jià)是步數(shù)很多同學(xué)卡住不是因?yàn)椴欢瓸FS或A*而是狀態(tài)表示沒(méi)設(shè)計(jì)好。比如用二維列表表示棋盤(pán)每次移動(dòng)要深拷貝又慢又容易錯(cuò)用一維元組(tuple)表示九個(gè)位置空格下標(biāo)直接算行列移動(dòng)只需交換兩個(gè)元素又快又穩(wěn)。這個(gè)細(xì)節(jié)我放在后面實(shí)操部分展開(kāi)但形式化階段就要想清楚。還有個(gè)容易被忽略的點(diǎn)目標(biāo)測(cè)試不一定是狀態(tài)完全相等。有些問(wèn)題只要達(dá)到某種條件就算成功比如八皇后問(wèn)題要求任意兩個(gè)皇后不互相攻擊。這提醒我們形式化方案是為問(wèn)題服務(wù)的不是為算法服務(wù)的。你把狀態(tài)定義清楚了后面寫(xiě)轉(zhuǎn)移、寫(xiě)判重、寫(xiě)啟發(fā)函數(shù)都會(huì)順很多。1.3 搜索樹(shù)與可行解的本質(zhì)形式化做完問(wèn)題就變成了狀態(tài)空間里的搜索問(wèn)題。搜索過(guò)程會(huì)隱式地建一棵搜索樹(shù)根節(jié)點(diǎn)是初始狀態(tài)從某個(gè)節(jié)點(diǎn)展開(kāi)動(dòng)作得到子節(jié)點(diǎn)子節(jié)點(diǎn)繼續(xù)展開(kāi)直到找到目標(biāo)。這里有個(gè)關(guān)鍵區(qū)分節(jié)點(diǎn)和狀態(tài)不是一回事。節(jié)點(diǎn)記錄的是從起點(diǎn)到當(dāng)前狀態(tài)的路徑信息狀態(tài)只描述當(dāng)前局面。同一個(gè)狀態(tài)可能通過(guò)不同路徑到達(dá)對(duì)應(yīng)搜索樹(shù)里的不同節(jié)點(diǎn)但局面是一樣的。我一般用旅行規(guī)劃來(lái)類比。假設(shè)你要從A城市去D城市狀態(tài)就是當(dāng)前在哪座城市節(jié)點(diǎn)則是完整的行程記錄比如A到B再到C。同樣的C城市可能是經(jīng)過(guò)B來(lái)的也可能是經(jīng)過(guò)E來(lái)的兩種方案的當(dāng)前狀態(tài)相同但路徑不同代價(jià)也不同。搜索算法要處理的正是在這些路徑里選一條最劃算的。為了避免無(wú)限循環(huán)一般要維護(hù)一個(gè)已探索集合closed set。比如八數(shù)碼里空格先右移再左移狀態(tài)會(huì)回到原點(diǎn)如果不判重BFS和DFS都會(huì)陷入毫無(wú)意義的重復(fù)展開(kāi)。閉環(huán)處理得不好再好的算法也是空談這一點(diǎn)到第6節(jié)我會(huì)專門(mén)說(shuō)。2. 無(wú)信息搜索先把基礎(chǔ)打牢2.1 BFS和DFS兩種最極端的策略無(wú)信息搜索指的是搜索時(shí)除了問(wèn)題本身沒(méi)有任何額外信息只能盲目地展開(kāi)節(jié)點(diǎn)。最典型的兩個(gè)是廣度優(yōu)先搜索(BFS)和深度優(yōu)先搜索(DFS)。BFS用隊(duì)列實(shí)現(xiàn)。隊(duì)列的特點(diǎn)是先進(jìn)先出就像銀行取號(hào)叫號(hào)先來(lái)先辦。每一層的節(jié)點(diǎn)全部展開(kāi)完畢才會(huì)進(jìn)入下一層。所以BFS從根節(jié)點(diǎn)出發(fā)一層一層往外探像水波擴(kuò)散一樣。DFS用棧實(shí)現(xiàn)后進(jìn)先出像摞盤(pán)子后放的先拿走。DFS會(huì)沿著一條路一路走到黑走不通了才回頭換另一條路。從結(jié)果看BFS的優(yōu)勢(shì)是完備且有最優(yōu)性的只要解存在BFS一定能找到而且如果每步代價(jià)相同它找到的第一個(gè)解就是步數(shù)最少的解。缺點(diǎn)是空間消耗大最后一層的節(jié)點(diǎn)都要存在內(nèi)存里深度一深就爆炸。DFS正好相反空間消耗小只需要保存一條路徑上的節(jié)點(diǎn)但可能一頭扎進(jìn)死胡同出不來(lái)遇到無(wú)限分支還會(huì)找不完。我剛開(kāi)始學(xué)的時(shí)候也納悶為什么教科書(shū)要講看起來(lái)這么笨的算法后來(lái)才明白它們是后面所有高級(jí)搜索的底座。BF S的逐層展開(kāi)思想貫穿到一致代價(jià)搜索DFS的壓?;厮菟枷胴灤┑缴疃仁芟匏阉骱偷由?。不懂這兩個(gè)基礎(chǔ)后面的變體全都看不懂。2.2 一致代價(jià)搜索當(dāng)每步代價(jià)不一樣時(shí)BFS有個(gè)隱含假設(shè)每走一步代價(jià)相同所以步數(shù)最少就是代價(jià)最小。但現(xiàn)實(shí)問(wèn)題里不同動(dòng)作的代價(jià)往往不同。比如地圖導(dǎo)航里走高速和走小路的時(shí)間不一樣不能光看經(jīng)過(guò)了多少個(gè)路口。這時(shí)候BFS就不頂用了得用一致代價(jià)搜索。一致代價(jià)搜索依然用優(yōu)先隊(duì)列但排序鍵是路徑代價(jià)g(n)每次從隊(duì)里取出代價(jià)最小的節(jié)點(diǎn)展開(kāi)。這其實(shí)就是Dijkstra算法的思想不斷從已知代價(jià)最小的頂點(diǎn)出發(fā)松弛鄰居。如果所有邊權(quán)都是1一致代價(jià)搜索就退化成BFS如果邊權(quán)不同它依然能保證找到代價(jià)最小的路徑這一點(diǎn)比BFS更通用。不過(guò)一致代價(jià)搜索也有代價(jià)它會(huì)被代價(jià)小的路徑拖著走如果有一條代價(jià)很低但路很長(zhǎng)的迂回路徑它可能把大量時(shí)間耗在探索這條路徑上導(dǎo)致效率下降。這也引出了下一節(jié)的核心問(wèn)題能不能讓搜索有方向感而不是像無(wú)頭蒼蠅一樣亂轉(zhuǎn)。2.3 完備性、最優(yōu)性與復(fù)雜度對(duì)比這四個(gè)指標(biāo)是面試和考試的高頻點(diǎn)完備性、最優(yōu)性、時(shí)間復(fù)雜度和空間復(fù)雜度。我整理了一張表學(xué)的時(shí)候直接對(duì)著記。算法完備性最優(yōu)性時(shí)間復(fù)雜度空間復(fù)雜度BFS完備僅每步代價(jià)相同時(shí)最優(yōu)O(b^d)O(b^d)DFS在有限狀態(tài)空間下完備否O(b^m)O(bm)一致代價(jià)搜索完備是O(b^(1?C*/ε?))同左這里b是分支因子d是最淺解的深度m是搜索樹(shù)最大深度C*是最優(yōu)解的代價(jià)ε是最小邊權(quán)??催@張表的時(shí)候要抓住兩個(gè)核心矛盾一是時(shí)間和空間的矛盾二是完備最優(yōu)和效率的矛盾。BFS和DFS正好站在天平兩端一致代價(jià)站在BFS的肩膀上但更通用。深度優(yōu)先的改進(jìn)版是迭代加深DFS做法是不斷加深深度限制一遍遍地跑深度受限D(zhuǎn)FS。它既保留了DFS的空間優(yōu)勢(shì)又獲得了BFS的完備性和最優(yōu)性只是會(huì)重復(fù)展開(kāi)上層節(jié)點(diǎn)好在代價(jià)通??梢越邮堋_@是面試?yán)锝?jīng)常被追問(wèn)的知識(shí)點(diǎn)建議自己寫(xiě)一遍。3. 啟發(fā)式搜索讓程序?qū)W會(huì)挑路走3.1 啟發(fā)函數(shù)怎么選從曼哈頓距離說(shuō)起無(wú)信息搜索最大的痛點(diǎn)是盲目。以八數(shù)碼為例明明目標(biāo)排列就在某個(gè)方向上程序還是四平八穩(wěn)地一層層往外擴(kuò)。啟發(fā)式搜索的思路是引入一個(gè)啟發(fā)函數(shù)h(n)用它對(duì)當(dāng)前狀態(tài)到目標(biāo)狀態(tài)還需要多少代價(jià)做估計(jì)讓搜索優(yōu)先展開(kāi)有希望的方向。八數(shù)碼里最常用的啟發(fā)函數(shù)是曼哈頓距離計(jì)算每個(gè)數(shù)字當(dāng)前位置與目標(biāo)位置的行列差絕對(duì)值之和。為啥叫曼哈頓因?yàn)槁D的街道是棋盤(pán)網(wǎng)格從一個(gè)街口到另一個(gè)街口只能橫著走豎著走走過(guò)的格子距離就是橫縱距離之和。用代碼寫(xiě)就是遍歷九宮格對(duì)每個(gè)非空格數(shù)字計(jì)算兩次行差和列差。h(n)的大小直接決定搜索效率。h(n)越接近真實(shí)的剩余代價(jià)A*展開(kāi)的節(jié)點(diǎn)就越少h(n)與實(shí)際值偏差太大搜索效率就會(huì)退化。八數(shù)碼里還有一個(gè)更弱的啟發(fā)函數(shù)是錯(cuò)誤位置計(jì)數(shù)數(shù)一數(shù)有多少個(gè)數(shù)字不在目標(biāo)位置。這個(gè)函數(shù)計(jì)算快但估計(jì)精度低展開(kāi)的節(jié)點(diǎn)數(shù)會(huì)明顯多于曼哈頓距離。想驗(yàn)證差異的同學(xué)可以把兩種啟發(fā)函數(shù)跑到同一個(gè)初始狀態(tài)對(duì)比展開(kāi)節(jié)點(diǎn)數(shù)效果非常直觀。3.2 貪婪最佳優(yōu)先搜索的誘人與翻車(chē)有一種很自然的思路每次只選h(n)最小的節(jié)點(diǎn)展開(kāi)完全不關(guān)心已經(jīng)走過(guò)的路。這就是貪婪最佳優(yōu)先搜索它極其激進(jìn)一路朝著自認(rèn)為離目標(biāo)最近的方向沖跑得飛快。問(wèn)題是它經(jīng)常翻車(chē)。h(n)只是估計(jì)不是真實(shí)距離。八數(shù)碼里某個(gè)狀態(tài)可能看起來(lái)離目標(biāo)很近實(shí)際上那條路是死路走到一半才發(fā)現(xiàn)目標(biāo)在另一個(gè)方向。貪婪最佳優(yōu)先可能先沖進(jìn)一條死路才能退回來(lái)甚至因?yàn)樨澬亩业揭粭l繞遠(yuǎn)路的解。它的本質(zhì)是只看眼前不看全局像開(kāi)車(chē)時(shí)只盯著導(dǎo)航顯示的剩余距離卻忽視了已經(jīng)繞了多少冤枉路。我踩過(guò)這個(gè)坑用貪婪最佳優(yōu)先求解某個(gè)初始狀態(tài)展開(kāi)節(jié)點(diǎn)數(shù)確實(shí)少但解出來(lái)的步數(shù)比最優(yōu)解多了好幾步。追求快的解和最優(yōu)解是完全不同的目標(biāo)很多競(jìng)賽題刁鉆的地方就在這里。所以它適合用來(lái)做快速近似不適合要求最優(yōu)解的場(chǎng)合。3.3 A*算法在已走的路和未走的路之間找平衡A*算法可以說(shuō)是啟發(fā)式搜索里最經(jīng)典的存在。它定義評(píng)估函數(shù)f(n) g(n) h(n)其中g(shù)(n)是起點(diǎn)到當(dāng)前節(jié)點(diǎn)的實(shí)際代價(jià)h(n)是對(duì)當(dāng)前節(jié)點(diǎn)到目標(biāo)的估計(jì)代價(jià)f(n)就是對(duì)從起點(diǎn)經(jīng)過(guò)當(dāng)前節(jié)點(diǎn)再到目標(biāo)的總代價(jià)估計(jì)。A的策略很樸素優(yōu)先展開(kāi)f(n)最小的節(jié)點(diǎn)。它既不像一致代價(jià)搜索只認(rèn)已走的路也不像貪婪最佳優(yōu)先只認(rèn)沒(méi)走的路而是把兩者放在一起權(quán)衡。這個(gè)混合聽(tīng)起來(lái)簡(jiǎn)單實(shí)際效果卻非常好只要h(n)滿足一定條件A就能保證找到最優(yōu)路徑而且展開(kāi)節(jié)點(diǎn)數(shù)在所有最優(yōu)搜索算法中最少。用生活類比就是你要去一個(gè)陌生城市既知道你已經(jīng)在路上花了多長(zhǎng)時(shí)間也知道導(dǎo)航估算還要多久你自然傾向于走那種已經(jīng)花的時(shí)間加剩余估計(jì)時(shí)間最小的路線。A*里的g是真實(shí)開(kāi)銷(xiāo)h是估算f就是你的決策依據(jù)。3.4 A*最優(yōu)性的條件可采納性與一致性A*不是隨便寫(xiě)個(gè)h就能保證最優(yōu)的有兩個(gè)數(shù)學(xué)條件特別關(guān)鍵。第一個(gè)是可采納性要求h(n) h*(n)其中h*(n)是當(dāng)前狀態(tài)到目標(biāo)的真實(shí)最小代價(jià)。也就是說(shuō)啟發(fā)函數(shù)永遠(yuǎn)不能高估剩余代價(jià)。曼哈頓距離是八數(shù)碼的可采納啟發(fā)函數(shù)因?yàn)槊總€(gè)數(shù)字至少要走這么多步任何情況下都不會(huì)高估。反過(guò)來(lái)如果你自作聰明把h乘以2雖然搜索會(huì)快很多但找到的路徑不保證最優(yōu)。第二個(gè)是一致性也稱單調(diào)性要求對(duì)于任意狀態(tài)n及其后繼n滿足h(n) c(n, a, n) h(n)。這個(gè)條件比可采納性更強(qiáng)。滿足一致性時(shí)f值沿路徑單調(diào)不減A*首次展開(kāi)某個(gè)節(jié)點(diǎn)時(shí)就已經(jīng)找到了它的最優(yōu)代價(jià)這樣圖搜索版本也能保證最優(yōu)。實(shí)際操作中曼哈頓距離滿足一致性所以可以放心用closed集合判重。這兩個(gè)條件看著數(shù)學(xué)味重但理解后對(duì)調(diào)試幫助極大。如果你的A*運(yùn)行結(jié)果不是最優(yōu)第一反應(yīng)就應(yīng)該是檢查h是不是高估了而不是去改代碼邏輯。4. 局部搜索不關(guān)心路徑只關(guān)心終點(diǎn)4.1 為什么有些問(wèn)題不需要全局搜索搜索章節(jié)后半部分會(huì)講一類完全不同的方法局部搜索。這類問(wèn)題的特點(diǎn)是解是一個(gè)完整的配置而不是一條路徑。比如八皇后問(wèn)題要找一個(gè)不沖突的擺放方案我們并不關(guān)心怎么一步步擺到那里只要最終方案正確即可。對(duì)這類問(wèn)題樹(shù)搜索那套思路反而笨重。你可以想象一個(gè)地形圖橫軸縱軸是變量的取值高度是解的質(zhì)量。找最優(yōu)解就是在這樣的地形里找最高點(diǎn)。局部搜索的思路很簡(jiǎn)單從一個(gè)候選解出發(fā)不斷向相鄰狀態(tài)移動(dòng)直到到達(dá)一個(gè)不錯(cuò)的位置為止。它不維護(hù)搜索樹(shù)不需要回溯只用少量?jī)?nèi)存就能應(yīng)對(duì)超大規(guī)模問(wèn)題。第一次接觸局部搜索時(shí)我最大的感觸是并不是所有AI問(wèn)題都要從起點(diǎn)找到目標(biāo)路徑很多實(shí)際問(wèn)題只是要找到一個(gè)足夠好的答案。把問(wèn)題分類成路徑問(wèn)題和狀態(tài)問(wèn)題是選擇算法前最重要的一步。4.2 爬山法快是快但容易困在半山腰爬山法是最簡(jiǎn)單的局部搜索算法。它從當(dāng)前狀態(tài)出發(fā)看所有鄰居狀態(tài)選擇其中質(zhì)量最好的那個(gè)移過(guò)去然后重復(fù)直到?jīng)]有鄰居比當(dāng)前狀態(tài)更優(yōu)。就像一個(gè)近視的人蒙著眼在山里找頂每一步都往坡度最大的方向走。它的致命弱點(diǎn)是局部最優(yōu)。我舉個(gè)例子你走到一個(gè)山脊上發(fā)現(xiàn)周?chē)徽撃膫€(gè)方向都往下走于是認(rèn)為自己到頂了但真正的山頂離你還有幾個(gè)山頭的距離。爬山法看不到全局一旦進(jìn)入這種局部最優(yōu)陷阱就出不來(lái)了。還有一種更尷尬的情況是平頂或者山脊多個(gè)鄰居質(zhì)量一樣它會(huì)隨機(jī)挑一個(gè)可能原地打轉(zhuǎn)。教材里通常會(huì)有幾個(gè)改進(jìn)方向隨機(jī)重啟爬山法多換幾個(gè)起點(diǎn)重新爬、模擬退火允許暫時(shí)往低處走、側(cè)移允許走到質(zhì)量相同的鄰居。這些改進(jìn)并不能保證找到全局最優(yōu)但能大幅提高找到好解的概率。實(shí)操里我建議先用隨機(jī)重啟代碼簡(jiǎn)單效果卻立竿見(jiàn)影。4.3 模擬退火與隨機(jī)重啟擺脫局部最優(yōu)的思路模擬退火從金屬冷卻工藝得到啟發(fā)先把金屬加熱到高溫再慢慢降溫讓分子有足夠時(shí)間排列成低能量結(jié)構(gòu)。對(duì)應(yīng)到算法里搜索過(guò)程中以一定概率接受比當(dāng)前解更差的鄰居這個(gè)概率隨溫度降低而減小。溫度高的時(shí)候算法敢于亂跳跳出局部最優(yōu)溫度低的時(shí)候行為趨近于爬山法逐漸收斂。這里的核心心得是概率接受壞解的時(shí)機(jī)。我把初始溫度和降溫速率調(diào)整過(guò)很多次發(fā)現(xiàn)溫度降得太快算法還沒(méi)跳出局部最優(yōu)就固化了跟爬山法沒(méi)什么區(qū)別降得太慢算得慢且不穩(wěn)定。實(shí)際做的時(shí)候要針對(duì)問(wèn)題規(guī)模調(diào)參數(shù)沒(méi)有放之四海而皆準(zhǔn)的值。隨機(jī)重啟的思路更直白從多個(gè)隨機(jī)初始狀態(tài)出發(fā)各跑一遍爬山法最終取所有結(jié)果里最好的那個(gè)。它不保證找到全局最優(yōu)但能顯著降低一次運(yùn)氣不好就全軍覆沒(méi)的風(fēng)險(xiǎn)。這類方法在資源調(diào)度、排課、布局優(yōu)化等場(chǎng)景里非常實(shí)用也是后面遺傳算法等進(jìn)化類方法的雛形。5. 實(shí)操用Python從零實(shí)現(xiàn)A*解決八數(shù)碼5.1 狀態(tài)表示與相鄰狀態(tài)生成理論講再多不如跑一段代碼。下面是我建議的狀態(tài)設(shè)計(jì)方案用長(zhǎng)度9的元組表示棋盤(pán)數(shù)字0代表空格位置下標(biāo)從左到右、從上到下依次是0到8。比如(1,2,3,4,5,6,7,8,0)就是目標(biāo)狀態(tài)。空格在哪個(gè)位置能往哪移動(dòng)通過(guò)下標(biāo)換算行列row index // 3col index % 3。上下左右四個(gè)方向就是對(duì)行列坐標(biāo)做加減再判斷是否越界。生成鄰居時(shí)先轉(zhuǎn)成列表交換空格和目標(biāo)位置的下標(biāo)再轉(zhuǎn)回元組。用元組的好處是它可哈希能直接放進(jìn)set判重也能作為字典的鍵。GOAL (1, 2, 3, 4, 5, 6, 7, 8, 0) def get_neighbors(state): i state.index(0) r, c i // 3, i % 3 for dr, dc in ((-1, 0), (1, 0), (0, -1), (0, 1)): nr, nc r dr, c dc if 0 nr 3 and 0 nc 3: j nr * 3 nc lst list(state) lst[i], lst[j] lst[j], lst[i] yield tuple(lst)這段代碼量不大但把狀態(tài)轉(zhuǎn)移寫(xiě)得很干凈。設(shè)計(jì)時(shí)我特意避開(kāi)二維數(shù)組因?yàn)橐痪S元組在判重和比較時(shí)更省事。寫(xiě)到這里也想提醒一句狀態(tài)表示方式?jīng)Q定了后續(xù)所有代碼的復(fù)雜度這里多花十分鐘思考后面能省一個(gè)小時(shí)。5.2 啟發(fā)函數(shù)與優(yōu)先隊(duì)列實(shí)現(xiàn)啟發(fā)函數(shù)用曼哈頓距離。對(duì)每個(gè)非空格數(shù)字計(jì)算它在當(dāng)前棋盤(pán)的行列和目標(biāo)棋盤(pán)的行列累加絕對(duì)值差。代碼里的目標(biāo)行列直接用數(shù)字倒推數(shù)字k的目標(biāo)位置是(k-1)//3和(k-1)%3因?yàn)槟繕?biāo)排列是1到8按順序排0在末尾。def manhattan(state): dist 0 for idx, val in enumerate(state): if val 0: continue r, c idx // 3, idx % 3 tr, tc (val - 1) // 3, (val - 1) % 3 dist abs(r - tr) abs(c - tc) return distA*主循環(huán)用Python的heapq實(shí)現(xiàn)優(yōu)先隊(duì)列。堆里的每個(gè)元素是(f, g, state)按f值從小到大排序f相同就比g再相同就比state本身。為了記錄路徑我用了兩個(gè)字典came_from記錄每個(gè)狀態(tài)從哪個(gè)狀態(tài)轉(zhuǎn)移而來(lái)cost_so_far記錄到達(dá)該狀態(tài)的最短代價(jià)。當(dāng)目標(biāo)狀態(tài)第一次出隊(duì)時(shí)沿came_from回溯就能拼出完整路徑。細(xì)節(jié)上要注意入隊(duì)前檢查新代價(jià)是否優(yōu)于歷史記錄只有更優(yōu)時(shí)才更新并入隊(duì)。這樣既避免無(wú)意義的重復(fù)入隊(duì)也保證A*的正確性。5.3 完整代碼與運(yùn)行分析下面是完整實(shí)現(xiàn)把之前的內(nèi)容串起來(lái)。import heapq def a_star(start): if start GOAL: return [start], 0, 0 frontier [] heapq.heappush(frontier, (manhattan(start), 0, start)) came_from {start: None} cost_so_far {start: 0} explored set() expanded 0 while frontier: f, g, state heapq.heappop(frontier) if state in explored: continue explored.add(state) expanded 1 if state GOAL: path [] cur state while cur is not None: path.append(cur) cur came_from[cur] return path[::-1], cost_so_far[state], expanded for nxt in get_neighbors(state): new_g g 1 if nxt not in cost_so_far or new_g cost_so_far[nxt]: cost_so_far[nxt] new_g priority new_g manhattan(nxt) heapq.heappush(frontier, (priority, new_g, nxt)) came_from[nxt] state return None, 0, expanded用幾個(gè)初始狀態(tài)跑一下比如start (1,2,3,4,0,5,6,7,8)輸出目標(biāo)步數(shù)和展開(kāi)節(jié)點(diǎn)數(shù)。你會(huì)看到曼哈頓距離驅(qū)動(dòng)的A*展開(kāi)節(jié)點(diǎn)數(shù)遠(yuǎn)少于BFS而且解出來(lái)的路徑是最優(yōu)的。想加深理解的話把manhattan換成錯(cuò)誤位置計(jì)數(shù)對(duì)比同樣輸入下的展開(kāi)節(jié)點(diǎn)數(shù)差距會(huì)是數(shù)量級(jí)的。運(yùn)行時(shí)的觀察點(diǎn)我列兩個(gè)一是展開(kāi)節(jié)點(diǎn)數(shù)這個(gè)數(shù)字直接反映算法效率二是搜索樹(shù)深度對(duì)應(yīng)著解的步數(shù)。把這兩個(gè)數(shù)字和BFS對(duì)比你才能真正感受到啟發(fā)函數(shù)的價(jià)值。6. 常見(jiàn)問(wèn)題與避坑指南6.1 狀態(tài)爆炸為什么你的搜索跑不動(dòng)八數(shù)碼的狀態(tài)空間總共是9!個(gè)排列約36萬(wàn)種BFS在多數(shù)初始狀態(tài)下還行但換成15數(shù)碼狀態(tài)空間變成16!直接量級(jí)爆炸。無(wú)信息搜索在這種規(guī)模下完全跑不動(dòng)網(wǎng)絡(luò)上有不少求解器能處理幾十步的八數(shù)碼核心原因就是用了A*加曼哈頓距離這類強(qiáng)啟發(fā)。遇到搜索跑不動(dòng)第一件事不是優(yōu)化代碼而是檢查搜索空間和啟發(fā)函數(shù)。我見(jiàn)過(guò)有人用BFS跑15數(shù)碼跑了十分鐘沒(méi)出結(jié)果換成A加曼哈頓距離后秒出答案。搜索算法領(lǐng)域有個(gè)經(jīng)驗(yàn)法則如果能設(shè)計(jì)出一個(gè)好的啟發(fā)函數(shù)效果比任何代碼層面的微優(yōu)化都顯著。這也是為什么第四章花了大量篇幅講貪心和A而不是教你怎么把BFS寫(xiě)得更快。6.2 啟發(fā)函數(shù)高估的隱患A代碼看起來(lái)對(duì)了但跑出來(lái)的路徑不是最優(yōu)這是很隱蔽的坑。問(wèn)題幾乎都出在啟發(fā)函數(shù)上。只要h(n)曾經(jīng)高估過(guò)真實(shí)代價(jià)A就可能提前放棄一條實(shí)際最優(yōu)的路徑因?yàn)樗膄值被算大了。我調(diào)試過(guò)一個(gè)問(wèn)題用了一個(gè)看似合理的啟發(fā)函數(shù)結(jié)果解的步數(shù)比最優(yōu)解多兩步。排查了很久才發(fā)現(xiàn)是這個(gè)函數(shù)在某些狀態(tài)下高估了。修好之后步數(shù)立刻回到最優(yōu)。建議所有人在動(dòng)手寫(xiě)A前先寫(xiě)一個(gè)暴力BFS做基準(zhǔn)用小規(guī)模問(wèn)題對(duì)比A的步數(shù)和展開(kāi)節(jié)點(diǎn)數(shù)。如果A*的路徑不是最優(yōu)第一嫌疑就是啟發(fā)函數(shù)不滿足可采納性。6.3 判重與優(yōu)先級(jí)隊(duì)列的細(xì)節(jié)坑代碼里有個(gè)常見(jiàn)問(wèn)題用list做判重。八數(shù)碼狀態(tài)一共才36萬(wàn)種list的in檢查是O(n)雖然小規(guī)模能跑但15數(shù)碼一上來(lái)就卡死。正確做法是用set存元組狀態(tài)查找是O(1)。另外如果你在heapq里直接存(f, state)Python會(huì)在f相同時(shí)去比較state元組本身這個(gè)沒(méi)問(wèn)題但如果你在元組里混入了list類型的路徑字段就會(huì)引發(fā)嚴(yán)重的性能問(wèn)題因?yàn)閘ist比較是逐元素遞歸的。我的建議是路徑不要塞進(jìn)優(yōu)先隊(duì)列用came_from字典回溯優(yōu)先隊(duì)列元素限定為可比較的、定長(zhǎng)的數(shù)據(jù)。這樣既快又不容易踩坑。另一個(gè)容易被忽略的問(wèn)題是closed集合的更新時(shí)機(jī)A*主循環(huán)里要在出隊(duì)時(shí)判重而不是入隊(duì)時(shí)判重否則可能錯(cuò)過(guò)更優(yōu)的到達(dá)路徑。這一點(diǎn)我在代碼里特意用了出隊(duì)判重的寫(xiě)法。6.4 學(xué)習(xí)地圖與后續(xù)章節(jié)銜接搜索這一章是整個(gè)AI基礎(chǔ)的地基學(xué)完它應(yīng)該能在腦子里畫(huà)出地圖無(wú)信息搜索解決我不會(huì)失敗但要慢慢找的問(wèn)題啟發(fā)式搜索解決我知道目標(biāo)在哪所以找得快的問(wèn)題局部搜索解決我不關(guān)心路徑只要好答案的問(wèn)題。后面學(xué)博弈搜索時(shí)Minimax和Alpha-Beta剪枝就是在搜索樹(shù)基礎(chǔ)上加了對(duì)局雙方的博弈視角學(xué)約束滿足問(wèn)題時(shí)回溯搜索和推理是處理離散組合的利器。建議學(xué)完這一章做三件事鞏固第一把八數(shù)碼的BFS、一致代價(jià)、貪婪最佳優(yōu)先、A各寫(xiě)一遍對(duì)比展開(kāi)節(jié)點(diǎn)數(shù)第二把A的啟發(fā)函數(shù)換掉觀察最優(yōu)性和效率變化第三找一個(gè)地圖最短路徑問(wèn)題把八數(shù)碼代碼改成通用狀態(tài)空間搜索框架。做完這三件事這一章你就真正吃透了。我個(gè)人在實(shí)際操作中最深的體會(huì)是別急著把代碼寫(xiě)漂亮先把狀態(tài)定義和啟發(fā)函數(shù)想清楚。狀態(tài)定義錯(cuò)了后面所有代碼都是白寫(xiě)啟發(fā)函數(shù)選對(duì)了整個(gè)算法的性能天差地別。還有一個(gè)屢試不爽的小技巧調(diào)試A*的時(shí)候先跑一個(gè)最簡(jiǎn)單的初始狀態(tài)比如只差一步的目標(biāo)確認(rèn)基礎(chǔ)邏輯沒(méi)問(wèn)題再上復(fù)雜狀態(tài)。這樣一旦出錯(cuò)你能立刻縮小排查范圍。搜索這一章最迷人的地方在于你能親眼看到同一個(gè)問(wèn)題不同策略的效率差距可以大到幾百倍這種直觀感受比任何理論描述都更有說(shuō)服力。
返回列表
PREV
查看更多資訊
NEXT
返回資訊列表
日本媚薬中文字幕在线| 蜜臀少妇一区二区| yazhououmeizongya| 操人妻少妇中文 | 乱伦熟女区| 国产毛片片精品天天看视频| 青青草一区二区三区四| 久久伊人网视频一区二区三区| 亚洲第2页| 特色a在线上| 人妻无码一区二区三区久久99| 精品久久久久,69国产成人精| 久久精品国产AV一区二区三区| 天天射天天色成人| 任你干在线视频| 美女的肌被草喷水视频| 久久国产99精品72福利| 啪啪一区| 婷婷五月天丁香花| 青青草自拍视频在线播放| 久久久久成人亚洲国产| 天天摸夜夜添无码小视频| AV天堂因数| 久久亚洲色图中文字幕| 日本 情色 1区| 亚洲区小说| AV色图| 欧美日韩制服| 国产精品伦理| 99久久久| 尤物av网站免费在线播放| 黄色成年| 狠日欧美| 精品九九| 久9re热视频这里只有精品| 999久久久九九九九| 日本ZZ高免费A级视频| 五月开心久久AV官网| 免费看污网站| 蜜桃久久久久久久久久久久| 91色色综合| 久久久九精品| 四虎影视永久在线观看精品免费网站| 免费99精品国产自在在线| 午夜福利在线合集| 精品国产99999| 夜夜高潮夜夜爽夜夜爱爱一区| 色九九久九九| 精品人妻一区二区三区四区不卡在| 精产品久久| 亚洲国产综合图区中文字幕| 亚洲精美粉嫩嫩泬在线观看| 色官网在线| 五月天大香蕉| 久久超碰亚洲人| 欧美乱妇狂野欧美在线视频| 综合性视频99| 综合久久99| 天天影视色香欲综合网小说| 久久久久78| 久久一本大香蕉| 夜夜爽夜夜摸夜夜操免费视频| 精品大全99999| 91色欧美| 青青久久手机线视频| 午夜福利免费福利视频| 色五91| 国产美女91视频| 亚洲天堂情色| 性色aV一区二区三区噜噜| 亚洲欧美日韩偷拍色图| 欧美亚洲尤物久久| 人妻少妇久久久| 中日无幕一二三四区| 9久精品视频在线观看| 国产自偷| 精品人妻av在线播放| 中文字幕亚洲在线一区| 国产偷仑| 1240青青草一区二区三区视频天爱 | 激情综合网激情综合| 十八禁av无码免费网站APP| 日韩一级成人毛片免费观看| 欧洲Au麻豆| 素人无码中文字幕| 欧美色女人| 中文字幕亚洲热播人妻| 人妻日日夜夜精品| 国产一区二区在线看| 新亚洲无码| 国产三级电影免费观看| 亚熟hd视频在线| 欧美日韩资源| 乱老女人一区二区视频| 91视频综合在线| 国产二区三区免费视频| 久久人妻视频| 在线二区不卡| 热久久这里只有精品| 性性欧美| 欧美区亚洲区偷拍区| 国产福利av精彩对白| 美女淫穴| 91免费看一区二区三区 | 久色99999| 伊人网免费视频| 人妻加勒比东京热| 蜜臀久久99精品久久久久久| 国产大学生高潮在线播放| 亚州色图狠狠干| 9Ⅰ老熟女| 久操综合在线| 青娱乐999| 日本大香蕉综合网红本杳社区 | 狠狠图片青青草| 亚洲高清欧美总合| 长长久久88视频| 亚洲猛交| 精品久久久无码| 日本不卡免费二区| 男人的天堂一区三区| 久草男人天堂| 奇米四色影视777久久久| 国产精品91一样| 婷婷丁香激情| 色噜噜人妻丝袜AV资源| 欧美成人A天堂片在线观看| 9超碰免费| 精品欧美老熟女一二区| 91草草草| 亚洲成人综合在线| 国产高清午夜成人在线观看| 夜夜嗨AV蜜臀av| 国产欧美日本亚洲精品| 精品一区二区三区四区外站| 日亚韩精品视频二区三| 91性情| 婷婷爱五月| 免费成人自拍视频在线| 另类av天堂| 少妇人妻好深太紧了vr91| 中出789在线视频| 性色av大全| 69久久久久久久久久久久久| 怡红院一区二区熟女人妻| 国产精品久久99日日| 亚洲 欧美 另类 日韩 人妻一区| 日韩精品碰碰| 日韩大香蕉| 欧美香蕉视xxx| 色欲Av人妻精品一区二| 久久9免费视频| 99无码视频| 久久狠狠色噜噜狠狠狠狠97| 99蜜月精品久久| 色婷婷九月| 97干97色| 天天摸天天舔天天操| 99热只有这里有精品| 天天操妹子| 精精夜夜| 殴美大黄片| 综合久久97| 欧美激情色婷婷花野真衣一区二区| 成人国产精品三级A片| 美欧色综合| 97亚洲欧美日韩| 天天插天天插| 国产精品无套内谢| 色色毛片| 乱欲视频| 午夜小电影在线插入淫高潮| 欧美激情黑人| 日本五区不卡| 四虎免费看黄| 97超碰69| 狠狠爱综合| 久久riav中文精品| 91成人18| 熟妇人妻丰满久久久久久久无码| 97精品在线| 日韩少妇丰满亚洲| 长长久久88视频| 欧美大香蕉97| 插老姨肥穴| 亚洲黑丝在线| 丝袜美腿诱惑亚洲欧美视频在线观看| 乱伦图一区| 成人免费性爱视视| 日夜精品| 久久精品区| 91操人| 神马午夜久久久| 大香蕉九九| 睡产熟女乱伦| 韩国黄色片精品久久久| 日本欧美亚洲高清在线看| a片在线播放| 人妻精品一区二区三区| 中日992视频| 2019午夜福利视频| 久草精品在线| 欧美一级二级三级| 国产精品久久久久久久久久久久| 91性情| 巨乳特殊服务按摩| 久久久久99999| 欧美桃色网| 91蜜桃传媒精品久久久一区二区| 91久久精品美女高潮喷水| 免费97视频| 超碰综合色| 伊人久久亚洲中文字幕不卡| 北京美女一区二区| 亚洲熟女偷拍在线观看| 中文字幕午夜精品久久久| 久久精品中文| 国产丝袜高跟美女av免费观看| 精品久久久久久AV无码| 素人一区二区三区日韩| 国产毛片在线| 国产欧美日韩在线不卡第一页| 欧美成人一区二区三区在线播放| 日韩乱插| 久九九九九九九热| 蜜桃精品视频一区| 四虎影视 亚洲无码| 校园春色美腿丝袜| 襙一襙| 草草影院日本第一页| 人人人人插| www…国产操逼| 黄污污污污| 67194无码不卡| 伊人精品视频| 丝袜美腿丝袜| 欧美探花网| 亚洲Av无码成人精品国产| 色丁香五月婷婷| 乱精品一区字幕二区| 宗合情欲网| 啊啊啊啊啊啊啊在线| 97中文综合| 极品白嫩美少妇在地板上位骑射淫水泛滥| 久久透逼视频| 亚洲图片 91| 久久国99999| 日韩三级av片| 少妇一级婬片免费放一级a性色.| 99久久网站| 久久国色天香香蕉| 男生通女生屁股| 国产亚洲日韩欧| 国产精品成人无码av| 高凊专区人人操| 人妻熟女一区二区| 久久直播国产| 综合网~91综合网| 亚洲男人天堂网站| 女人午夜视频777| 久久本道| 久久专区| 国产精品久久久视频| 欧美激情内射| 国产一级作爱毛片| 夜夜狼人妻| 九九精品网| 人妻无一区二区三区| 久久露脸国产老熟女| 精品人妻一区二区免费蜜桃| www.acm成人黄色毛片| 久久男人的天堂| 日韩欧美亚洲一区二区三区影院| 青女在线| 18禁免费视频| 欧美亚洲AN| 操逼操逼操| www.超碰| 欧美色九九| 日本国产高清色www视频在线| 少妇被玩视频二三区| 91色射| wwwxxx日本爽| 老女人碰碰在线碰碰视频| 亚洲黑人在线| 国产精品视频电影| 日韩射精| 久久久久9久久久久| 黑丝制服中文字幕| www超碰| 日本天堂在线播放| 2019天天干天天操| 人伦四五区| 成人激情无码在线视频| 青青青草伊人精品| 婷婷丁香五月天综合东京热| 九九九精品一区二区无码| 74成人在线| 人妻无码后入| 97人人操人人摸人人爱| 熟妇女伦乱视频视频| 偷窥自拍A片| 中文熟女五十乱码在线| 日本一区二区三区四区免费观看| 精品人妻一二三四区视频| 国产女人和拘做爰视频 | 亚洲综合色男人网| 日韩激情毛片一级久久久| 国产乱弄免费在线视频。 | 欧美国产有色电影| 日韩黄色一区二区三区| 激情婷婷黑人91| 久久国产视频性吧| 日本精品一级二级三级| 91爰爱欧美| 强奸乱伦大香蕉网| 大香蕉综合网| 国产精品视频播放| 91欧美| 狠狠婷婷亚洲中文综合久久| 最新av在线| 日韩AV一起草| 精品久久久av无码免费| 肉丝无码中文高清| 91人妻人人妻| 老司机老司机午夜影院| 日韩本不卡视频在线观看| 青青草九九九九九| 亚洲综合另类小说色区亚洲成av人片在www | 国产午夜视频| 色婷婷色99国产综合精品| 国产日本一区二区三区蜜臀在线观看| 欧美熟女妇同| 99色在线| 333kkkk·亚洲com久久| 日本伦乱九九九综合| 色香伊人| 亚洲色图20p| 激情综合网五月婷婷五月天| 操国产高清| 亚洲丰满很很操| 91原创在线观看| 91丨熟女丨丰满熟女| 偷拍精品一区二区三区| 亚州国产成人精品女人久久| 国产视频三区四区| 秋霞欧美性爰视频| 美女操逼福利视频| 亚洲欧洲日本精品中文a∨| 成人情色综合网| 大吊色| 黑丝内射一区二区三区| 入口操逼网站| 韩国一级婬片A片无码天美| 2017天天插| 精品欧美日韩在线观看| 欧美黑人与女人91~| 99视频只有精品| 操逼操逼逼操操逼91 | 国产无码一二三区| 欧美日韩国产三级黄色| 激情五月天中文字幕色| 欧美日韩人妻精品系列一区二区三区| 91亚洲丝袜| 久久夜夜夜夜| 大香蕉天天看妹子| 少妇与黑人高潮在线| 狠狠狠狠狠狠| 欧美成人性爱视频大全| 中文字幕aⅴ在线视频| 手机看片日韩人妻| 中文字幕日韩专区精品系列| 色婷婷六月丁香七月婷婷| 天天干18禁| 性感美女91影视| 综合色久欲| 欧美青青视频| 亚洲涩图欧美| 日日嗷| 大干人妻| 欧美另类丝袜熟女| 亚洲色图欧美色18直播在线| 18精品一二区| 国产97在线视频| 94色色电影网| 久久久久亚洲Av无码专区老牛影视| 天天操妹子| 96久久久久久久| 伊人九九九| 中文字幕精品探花视频| 欧美 日韩 亚洲 春色| 青娱乐国产精品| 国产一区二区a毛片| 天天操夜夜嗨| 免费看欧美美女黄色大片| 中国一区二区亚洲人妻| 国产伦精品一区二区三区在线观 | 久久久性少妇| 国产美女自拍视频| 国产精品香蕉| 日韩亚洲精品一区二区| 国产 日韩 另类 视频一区爱| 婷婷中文网| 久久香蕉国产传媒一区剧情天美| 大鸡吧尹人在线| 97在线观视频免费观看| 99超碰网| 手机午夜电影神马久久| 99热99在线播放激情| 秋霞免费AV| 99热超碰| 99re在线视频国产| 超碰人妻久久| 强奸乱伦中文字幕AV| 婷婷啪啪| 诱惑人妻欧美一区在线播放| 日韩欧美中文字亚洲慕| 国产精品点击进入在线影院高清 | 亚洲精品蜜桃久久久久久久| 久久九九97| 中文字幕丰满人妻日本| 国产av美女被艹的乱叫| 神马视频久久久久久| 97视频620| 尤物AV免费网站| 婷婷伊人五月| 99ri在线视频| 91高潮喷水美女| 夜夜爽夜夜爽| 偷窥自拍亚洲天堂网爆| AV在线资源| 美女网站91| 久草免费福利在线播放| 色噜噜人妻av 中文字幕| 玖玖爱在线视频免费观看| 福利视频一区二区微拍| 亚洲精品久| 精品白丝一区| 亚洲免费成人在线高清无码视频| 狠狠久久四虎| 嗯嗯不要视频| 亚洲欧美在线观看2021 | 天堂成人网| 日本东京热加勒比久久| 天天天乱色综合全| 人人操人人摸人人骑| 99自拍视频在线| 国产视频小说| 国产亚洲精品av一区| 亚洲熟妇乱女区二区三区| 国产精品对白自产拍| 久久久久久亚洲Av无码| 精品久久在线区一区| 亚洲 欧美 日韩另类 麻豆| 久久受www免费人成| 国产欧美一区二区| 国产久久久久久| 精品-91人妻子系列| 天天干人妻| 影音先锋每日最新资源在线观看 | 91性色| 人妻久久久| 久久蜜桃一区二区| 六月婷婷色综合| 天天性射网| www久久99| 91欧| 囯产精品一区二区三区线|亚洲人成无码网WWW动漫|国产精品免费一级... | 999久久久久久久久| 国产A v无码专区| 1区2区3区中文字幕日韩| 最新国内自拍av免费| AV高清一区| 国产亚洲色停停久久99精品91| 熟女丰满人妻一区| 日韩无码人妻| 日韩精品9999| 亚洲成?V人片在线观看福利| 日韩色图 一区二区| 日韩免费看黄片| 麻豆色99999| 欧洲色| 啊啊啊爽爽| 色噜噜国产在线| 中国AV美女| 精品九九淫乱男| 亚洲强奸乱伦影视网| 国产suv精品一区二六| 91啪啪| 国产无码成人无码| a片亚洲一本通视频| 东北丰满熟女国产一区| 深爱伊人影院| 啊啊啊啊啊啊啊国| 强奸乱伦亚洲第一页| 日日碰视频网| 日韩AV电影网站| 韩三级a视频在线观看| 欧美日韩人妻婷婷一区| 色婷婷小说| 国产精品点击进入在线影院高清| 啊啊啊啊啊啊啊啊啊啊在线观看| 综合色色网| 欧美欧美啪啪视频| 欧美线天码中字| 美女超碰978| 十八禁视频一区二区| 婷婷九月国产| 嗯嗯啊啊操死我| 乱伦3P视频| 黑人娇小av在线播放| 亚洲日韩久久精品一区| 亚洲综合春色| 欧亚在线视频| 久热精品在线国产| 欧洲精品一级二级精品综合视频综合| 日韩美女高潮喷水视频| 啊灬啊灬啊灬好深灬快高潮了动漫-国产字幕国产在线观看-B049AV | 男人天堂最新手机版在线青青草| 野狼激情网| 萌白酱自拍视频| 国产成人欧美精品在线| 97精品视频在线| 熟妇一区二区三区| 99性爱| 91日产欧美| 91蜜桃婷婷狠狠久久综合9色| 黄色大片免费在线| 啊啊嗯嗯好爽| 青青草公开在线免费不卡视频| 精品亚州18| 亚洲AV无码天美传媒一区| 天天日B夜夜干B时时操B| 香蕉欧美| 国产后入| 78超碰| 少妇熟女视频一区二区三区| 成人黄页| 欧美色日本| 东京热一区二区三区四区五区六区| 色色综合网站| 国产精品熟女乱伦| 青娱乐国产盛宴视频| 欧美精品精品一区二区| 极品销魂美女一区二区| 青青草好吊色| 草草草草视频| 91亚州| 日韩啪啪视频| 91肉丝| 囯产精品久久久久久久久久二区三区| 蜜臀久久99精品久久久久久成人小说| 九久久精品| 久久中久文96| 深喉吞精| 91亚洲网| 一级AV性爱| 欧美不卡在线一区二区| 亚洲欧美国产中文视频| 综合伊人网12色| 精品国产av一区二区三区四区入口| 啊啊啊草死我| 人人爱人人乐人人操| 亚洲九九九| 日韩无码视频黄色| 在线色导航| 操逼视频免费日韩无码| 亚洲中文字幕三级在线| 五月婷婷六月天| 日韩熟妇二区| 观看视频图片一区二区三区| 天天碰操中国年青熟妇| 美日韩在线不卡人妻| 在线情色电影 91大 | 国产精品成久久久久午夜午夜| 20cm女自慰在线日韩欧美| 富女玩鸭子一级毛片| 欧美一区二区日韩三区| 日韩欧美一级特黄大片| 99精品久久| 91亚洲欧美激情| 97超碰色色| 91东京热男人的天堂| 人妻人人做人人澡人人爽欧美一区| 狠狠色噜噜狠狠狠狠狠色综合久久| 人人考人人摸人人干| 五月丁香六月婷| www.一本大99| 果冻传媒A片一二三区| 久草资源在线| 麻花传媒免费网站在线观看| 亚洲色五月| 欧美曰韩国产精品| 欧美综合色图网| 91大神精品长腿在线观看网站| 殴美在线AⅤ| 欧美午夜精品久久久久久超碰| 香蕉久久精品| 伊香蕉综合久久久久久久噜噜噜 | 中国黑人三级片网站上区| 久久华人网| V A在线| 国产精品视频白浆免费| 久久婷婷在线观看视频| 大香蕉日韩欧美| 欧美黄色手机在线观看| 性爱av网站| 黑人天8A∨高清网站| 天美传媒精品久久视频| 18禁无码永久免费无限制| 超碰av在线| 色老牛| 国产精品白领在线观看 | 天堂伊人久久| 亚洲本色精品一区二区久久| 亚洲成人久久美女| 91天美传媒在线观看| 日日摸天天爽夜夜欢| 人人干人人操人人..com| 欧美美女啪啪视频| 丰满人妻一区二区三区四区| 国产精品自拍欧美在线| 久操操| 精品九九| 六六久久日韩不卡| 久久久月天| 日本五十路熟女一区二区| 色五月天AV| V A在线| 又大又白奶子| 97在线免费看视频| 四虎AV在线观看| 人人干人人搞人人摸| 操b网站亚洲无码| 欧差乱伦二三| 丝袜狠狠草尤物人妻av91| 九色黄站| 色999人与兽| 酒色综合网| 日产狠狠干| 快灬快灬 一下爽蜜桃在线观看| 日韩av影片在线观看| 日本黄页视频在线观看| 色天使亚洲综合在线观看| 男人天堂日日夜夜| 另类小说综合网| 99青青草国产视频| 黄色片,com| 超碰97在线色男人??| 欧美,日韩综合久久| 97超碰中文| 久久‘黄片视频| 97色欧洲| 久久熟女人| 91人妻人人澡人人爽人人精品| 欧美一区二区情色| 一本色道久久天天射天天干| 久操九九九九九九九九九九九九九九九九九九九九九九九九九九九九 | 狠狠色丁香| 欧美日韩中文视频播放| 狠狠躁AV| 国产精品久久天天干| caopeng97人妻| 加勒比久久综合网高清| 伊人网在线点播| 乱人伦 国语对白:视频直接看| 国产精品片| 色五月第四色| 天天干人妇| 欧洲精品一级二级精品综合视频综合| 99r九九| 亚洲成人日韩小说| 亚洲91射| 伊人青青一区成人视频在线观看区| 五十路六十路素人熟女| 欧美综合色综合| 人妻久久久久久久久久久久久久久 | 操屄日韩| 色香91| 99re6久热只有精品6在线直播| 午夜福利无毒不卡| 精品大全99999| 99re这里只有精品中心播放| 日本不卡高清视频| 超碰九区| 超碰97首页| 91亚州日韩高清| 亚洲国产成人精品久久久国产成人一区二区三.| 色原狠狠天天天| 亚洲日韩av一区二区三区百合| 老熟女乱子伦中文字幕一区二区 | 正在播放:深夜激情大战,自带黑丝袜全力输出骚穴 | 久久久天美| 嗯嗯啊啊操死我| 久久综合av| 麻豆蜜桃视频在线观看| 成人 日本A片无码8888| 九九九九热| 成人日本片久久久蜜桃| 国产精品网站www| 天天干,天天日| 黑人狂躁日本妞一区二区三区| 亚洲色人阁| 97精品97久久| 青青草精品| 熟女精品一区二区三区| 最近2019中文字幕国语免费版 | 国产性感骚丝袜在线| 性色av婷婷久久一区二区点复制| 成人a级高清视频在线观看| 亚洲色图A| 欧美黑人日韩少妇色情| 97资源免费视频| 99re不伦| 蜜臀av中字字幕网站| 91精品91久久久中77777| 免费A V在线播放| 亚洲欧洲综合成人av一区| 探花精品 一区二区| 精人妻一区二区三区| 啊啊啊好疼| 欧美韩日精品资源| 97色插| 97在线日韩中文字幕| 操逼www.| 激情抓乳插进去啪啪啪日韩| 久操免费在线| 国产品精品自在在线午夜免费| 欧美色图私拍91| 精品成人女人久久| 欧美人妻二区三区| 蜜乳av一区二区三区四区不卡| 性色高清..……| 丰满人妻一区二区三区四区| 国产精品九九| 欧美91精品国产自产| 中文字幕亚洲在线一区| 亚洲欧洲精品视频发布| 久久国产熟女影院| 操国产逼| 色视频蜜乳| 中英熟女操女| A级片日韩欧美国产欧美视频精选观看| 欧美在线啊啊| 人人操人人肉久久精品| 欧美宗合色| 97超碰色色| 99热| 国产精品爆乳懂色蜜乳| 中文字幕天堂在线| 秋霞操逼片| 操逼大黄片| 综合操逼| 我要看免费韩日黄片| 精品一二三区久久AAA片| 免费毛片在线播放| 丁香六月婷婷综合| 亚洲情色五月天| 蜜臀精品1区2区| 青青草精品| 亚洲色图 图片| 亚洲第一男人天堂| 91综合站| 一级成人性爱| 岛国艾薇凹凸视频天堂| 午夜福利成人免费视频| 婷婷色综合| 中文字幕加勒比海高清无码免费视频| 青青草色情网站视频| 高清不卡 中文 人妻| 91亚洲网站| 欧美人与动性人交a| 亚洲国产成人精品久久久国产成人一区二区三. | 午夜激情成人在线观看| 美國A片| 青青草中文-久久青草精品一区二区三| 禁止观看美女黄| 加勒比AV天堂| 超碰地址久久| 芊芊操逼视频无码| 激情五月天综合网| 国产亚洲色婷婷99精品91| 日韩成人人妻网站| 免费操逼91| 久久精品中文字幕无码l| Julia在线播放亚洲久久| 神马久久中文字幕| 97综合激情| 亚洲图片日本AⅤ欧美在线| 黄片不用下载在线观看| 怡红院亚洲怡春院av| 精品无码少妇| 无码操逼网| 欧美 亚洲 制服 精品| 久久久久国产| 国产成人在线观看网址| 一区二区三区精品视频| 亚洲综合另类欧美久久久| 久久久久久免费电影| 欧美成年人性爱视频免费观看| 久久香蕉综合一本到3atv| 91在线限制级| 天天干18禁| 人人操人人大香蕉| 九九夜精品九九在线| 欧美熟妇精品黑人巨大91| 午夜福利免费福利视频| 色眯眯射| 91视频综合| 韩国黄色片精品久久久| 亚洲日韩少妇一道本视频| 高清国产精品福利网站| 性吧在线视频| 亚洲97资源| 伊人久操| 91亚洲欧美综合高清在线| 日本熟女不卡视频| AV色天香在线| 亚洲天堂男人天堂网| 91超碰人人操| 亚洲91射| 极品色www影院| 啊啊啊久久久视频| av绯色| 91真人天天在线| 日韩黄片影院| 亚欧中文字幕在线视频| 肉动漫无遮挡h在线观看| 色婷婷综合久久久久中文国产精品一区中文字幕,国产福利电影一区二区三区 | 亚洲综合影视| 久久九色| 亚洲天堂人妻一区二区| 国产精品一区二区三区四区五区| 国产女人成人精品视频| 亚洲人妻久久久| 欧洲熟妇xxXx欧美老妇裸体| 日日嗷| 久久99精品视频| 国产精品伦理| 午夜精品视频777| 国产精选视频| 男人天堂2019亚洲| 校园春色五月天| 欧美色偷拍 | 日韩中文字幕在线视频观看| 超碰综合97在线| 99爱爱| 天天综合网在线91| oumeisetu综合| 激情黄色片在线观看| 大香伊人在线一区| 久久精品国产亚洲AV高级北京| 成年人免费观看网站| 国产亚洲精品自在线亚洲情侣| 日韩大香蕉AV影片| 爆乳免费黄网站| 欧美亚洲素人制服精品| 97免费视频在线观看视频| 国产精品无码av| 综合亚州欧美| 高清不卡一二三区视频......| 国产福利电影| 久久久精品久久| 好爽要喷了| 综合激情五月天| 91在线免费精品视频| 使劲用力艹少妇视频一区二区| 欧美强奸乱| 国产传媒av天美传媒在线| 91在线限制级| 女人午夜视频777| 中国特猛少妇色xxx| 日欧美色| 国产超碰| 欧美一区二区三区互相| 天天综合站| 久久久99久9| 亚洲成人美女无吗| 男人天堂2017| 欧美在线 亚洲| 国产乱码久久| 黄片com.| 色在线视频导航| 婷婷精品国产欧美精品亚洲人人爽| 69人妻精品一区二区绯色| 一级岛国大片| 欧美色图亚洲色| 青青操视频在线| 丰满人妻一区二区三区四| 国产精品成人福利在线| 777超碰| 亚洲 综合 第一页| 搡老女人老妇女老妇老熟女怎么读| 操操操日本的逼| 天天综合亚洲综合| 五十路熟女,国产欧美精品区一区二区三区| 天美国产精品| 999岛国大片| 精品成人亚洲午夜电影| 欧美天天射| 玖色av| 久久久久亚洲一区女同性恋中文字幕| 95人妻爽爽人人做人人澡| 在线a v| 日本成熟少妇A∨网站| 78精品| 国产suv精品一区二六| 97精品97| 国产av青草| 久久国产精品一级二级三级| 天天日天天干天天整| 在线有码中文字幕| 国内偷拍精品一区二区| 91亚洲人| 中文字幕成人乱码熟女精品国50| 韩国毛片一区二区三区| 日本不卡二三区| 啊啊啊啊啊操我视频| 欧美国产日韩清纯唯美| 99热18| 色综合网1| 一,爱啪啪,在线免费视频| 欧美亚洲素人制服精品| 亚洲无码偷拍| 中文字幕97| 东京热大香蕉| 亚洲情色视频| 大香蕉中文在线| 亚洲97精品| 中文字幕视频二区| 美女爽到高潮91| 久久久久久九九九九九九| 少妇内射视频| 欧美国产操逼| 国产人妻精品一区二区三区秋霞| 偷拍综合亚洲| 啊啊啊啊啊啊啊啊啊在线观看| 亚洲Av噜噜一区二区三区妖精| 人人超碰在线观看黄| 青青青青草av在线观看| 天天享受天天看| 日日夜夜噜| 天天天天天超碰| 国内97干免费看| 欧美体内射精| 天天影视综合色| 欧日韩一二三f区| 日夜精品| 欧美色网| 国产日韩精品一区二区三区| 花野真衣| 九九亚洲精品| 校园春色综合香蕉| 综合97久久| 97超碰影音| 葡萄牙性视频一二区| 国产 日韩,欧美 自拍| 国产精品点击进入在线影院高清| 亚洲在线网站| 午夜激情成人在线观看| 深夜国产一区二区三区在线看| 一级A片女人高潮叫床| 婷婷香蕉| 日本裸体久久色噜噜| 老司机久久| 日韩91网| .精品人妻一区二区三| 国产AV激情无码久久无码| 91人妻Pr| 久久9久9久99久9久9| 久操在97| 亚州五月| 天天射天天操天天干天天吃2018| 国产东北女人在线视频| 92人人操人人| 粉嫩国产精品久久粉嫩| 亚洲色图加勒比| 97超色| 少妇综合| 破苞ⅩXXX性无码动漫无码| 性色一线| 日韩色女精品| 啊啊啊好想要| 欧美人妻久久精品二区三区 | 欧美色91| 翔田千里Av在线| 性爱av网站| 一区久久久二区| 国产成人啪一区二区| 国产激情视频一区区三区| 日韩丰满熟妇| 久久久艹艹艹| 久久超碰天天| 激情抓乳插进去啪啪啪日韩 | 亚欧成人综合影院| 七久久久| 五十路成人在线视频二区三区| 国产精品成人AV片免费看网站| 久久久精品视频免费观看| 九九热免费在线国产视频伊人五月| 久久噜噜噜精品国产亚洲综合| 97综合久久| 精品国产肉丝袜在线拍国语| 妇女视频网站| 亚洲色图图片| 日韩操人| 欧美91久久久久| 久9re热视频这里只有精品| 婷婷色综合| 97超碰总站| 2019精品国产无码成人| 超碰人人妻| av橘色网站| 色网在线视频观看免费| 第二页中文字幕| 国产精品一区二区三| 国产视频不卡在线观看| 91天射| 亚洲精品一区二区精品| 黄页大片在线观看| 熟妇人妻精品一区二区| 五月丁香社区婷婷日韩欧美精品影院| 综合网久久| 亚洲午夜未满十八勿入网站日本又色又爽又黄| 丁香六月综合激情| 久久久久深夜无码| 免费簧片在线观看| 久久精品视| 3P乱轮视频| 96国产污污污丝袜| 永久免费av无码网站国产app| 久久a久久| 日本一区二区中文字幕久久| 97亚洲色图| 亚洲aV无码成人在线观看| 亚洲天堂资源| 风流老熟女一区二区三区l| 蜜桃视频一区二区三区| 在线播放免费av福利片| 超碰 av 女人天堂| 自怕偷自怕亚洲精品| 神马久久网| 中日亚韩免费视频| 亚洲伊人久久精品影院| 91快色色色色色| 亚洲在钱| 久久色情| 综合网欧美| 高树玛利亚无码流出| 国产91亚洲精品一区二区三区| 91啪9色| 亚洲成人在线高清| 爱爱久久| 亚洲综合中文字幕有码| 67914在线兔费成人视频| 开心五月激情网| 亚洲精品少妇| 91嫩草欧美| 国产精品久久99日日| 欧美色图片欧美色图| 九九精品热| 97爱爱| 亚洲色资源| 免费综合亚洲中文| 欧在线一二区| 日日干夜夜操视频h| 日日操丁香五月天| 97在线播放| 97香焦色区| 黄色电影在线播放综合网站| 色情婷婷久久五月天| 男女一级A片大黄,一进一出| 亚洲色图欧美| 啊灬快c我灬啊灬用力灬啊灬-国产精品性做久久久久久-成人AV | 丁香色色网| 91综合色噜噜| 素颜老阿姨乱情色| 色综合久| 99e久久国产精品| 老熟妇一区二区三区| 亚洲91极品| 日韩人妻播放| 91九色丨风韵犹存| 国产丰满少妇久久久精品影院| 一块操欧美性爱| 草草电影院| 久久视频,这里只有精品 | 免费看污网址| 99视频只有精品| 亚洲国产av中文字幕久久| 怡春院久久| 亚洲第一二区另类图| 99精品在线观看| 一区二区三区高清天码| 97伦综合| 性老妇一区二区三区| 六月丁香婷| 四虎国产精品永久地址入口| 精人妻一区二区三区| 久久超碰大香蕉| 伊人AAA| 日本五十路熟女一区二区| 视频国产欧美在线播放| 久久超碰天天| 伊人久久大香线蕉亚洲五月天,青草青草欧美日本一区二区,欧美日产欧美日产国产 | 日韩精品中文字幕人妻| 肉丝无码中文高清| 成人无码专区精品视频| 97香蕉碰碰人妻国产欧美| 吖在线不卡一区二区国产剧情| 91bbbbbb| 国产中文字幕在线观看| 天堂精品小草| A V少妇特黄三级| 高清国产av无码| 亚洲 自拍偷拍 欧美| 日本操逼视频在线| 78操B| 蜜臀99久久精品久久久久久| 亚洲天堂日本| 日韩精品人妻中文字幕久久久| 乱人伦 国语对白:视频直接看| 午夜精品探花| 久草视频在线视频在线视频在线观看| 六九九九| 欧美一区二区传媒| 欧美后进式| 自拍鲍鱼一区在线高清观看免费| 浓厚中出中文字幕在线| av影片在线观看不卡| 后入国产| 3P丝袜熟女 色综合| 四虎884| 精品视频久久区| 天天激色| 走光一区92下载| 97爱b| 欧美男人亚洲天堂| 美性中文综合网| 欧美色图色综合| 偷拍盗拍亚洲色图图片| 九久久九九久视频| 91久热| 97国产|免费| 精品免费囯产一区二区三区| 国产女主播视频在线观看| 亚洲清纯唯美| 91在线国产后入风骚翘臀美女素人| 久久熟女久| 黑人干亚洲| 日韩AV噜噜噜一区二区三区四区 | 无码不卡亚洲成?人片| 九九无码| 黑人精品一区二区在线播放| 亚洲欧洲中文日韩女优乱码| 黑人美精品 A片| 一级黄色性爱A级片| 91丨熟女丨丰满熟女| 亚洲精品成人激情在线| 久久综合五月天|