久久亚洲成a人片熟女精品色一区二区三区|国产精品视频第一精品视频|av天堂热无码手机版|亚洲?v无码久久无遮挡|国产精品偷伦视频免费观看国产|麻豆国产自产精品丰满熟妇|av无码av不卡一区二区|久久亚洲精品中文字

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é)者翻到教材這一章看著滿(mǎn)屏的樹(shù)、圖、隊(duì)列、優(yōu)先隊(duì)列會(huì)覺(jué)得這跟智能兩個(gè)字根本沒(méi)搭上邊但等你真正把八數(shù)碼、路徑規(guī)劃、迷宮尋路這類(lèi)問(wèn)題親手跑通再回頭看這一章會(huì)發(fā)現(xiàn)搜索其實(shí)是大量AI問(wèn)題的底層共性——棋類(lèi)游戲的決策樹(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)鍵的一類(lèi)方法。早期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ù)、約束滿(mǎn)足、規(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)類(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ì)專(zhuān)門(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)滿(mǎn)足一定條件A就能保證找到最優(yōu)路徑而且展開(kāi)節(jié)點(diǎn)數(shù)在所有最優(yōu)搜索算法中最少。用生活類(lèi)比就是你要去一個(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è)是一致性也稱(chēng)單調(diào)性要求對(duì)于任意狀態(tài)n及其后繼n滿(mǎn)足h(n) c(n, a, n) h(n)。這個(gè)條件比可采納性更強(qiáng)。滿(mǎn)足一致性時(shí)f值沿路徑單調(diào)不減A*首次展開(kāi)某個(gè)節(jié)點(diǎn)時(shí)就已經(jīng)找到了它的最優(yōu)代價(jià)這樣圖搜索版本也能保證最優(yōu)。實(shí)際操作中曼哈頓距離滿(mǎn)足一致性所以可以放心用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ì)講一類(lèi)完全不同的方法局部搜索。這類(lèi)問(wèn)題的特點(diǎn)是解是一個(gè)完整的配置而不是一條路徑。比如八皇后問(wèn)題要找一個(gè)不沖突的擺放方案我們并不關(guān)心怎么一步步擺到那里只要最終方案正確即可。對(duì)這類(lèi)問(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)題分類(lèi)成路徑問(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)。這類(lèi)方法在資源調(diào)度、排課、布局優(yōu)化等場(chǎng)景里非常實(shí)用也是后面遺傳算法等進(jìn)化類(lèi)方法的雛形。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)的。想加深理解的話(huà)把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*加曼哈頓距離這類(lèi)強(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ù)不滿(mǎn)足可采納性。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類(lèi)型的路徑字段就會(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é)約束滿(mǎn)足問(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
返回資訊列表
1区2区3区在线视频| 激情综合五月| 青青草国产一区二区三区| 岛国黄色大片网站| 日本操逼视频免费| 大香蕉综合在线| 天天干,夜夜爽| 亚洲精品无码久久AV| 久久线上视频免费看| 久久久久中出| 久久蜜桃综合网| 大香蕉久操| 波多野结衣之双飞调教在线播放| 久久超碰com| 熟人人妻少妇精品久久| 日韩情色视频| 长久操视频| 日本中文熟女视频| 欧美日韩青操| 国内三级自拍小视频在线观看| 国产美女激情| 国产成人无码网站在线视频| 欧美色蜜桃97| 猛交交| 午夜精品久久久久久久久久久久久 | 国产精品对白内射| 91视频精品| 国产一区二区三区不卡手机在线| 日本性爱视频一级| 高跟伊人julia ann| 人人妻人射| 91精品少妇搡搡搡| 亚洲成人av色网| 亚洲美女AV无码| 欧美综合骚| 国产偷拍网站| 欧美天堂第二区| 18禁超污无遮挡无码免费网| 欧洲精品二区| 东北女人的毛片| 国产精品点击进入在线影院| 天美av在线| 国产欧美精品日韩区二区麻豆天美| 国产版a级片直播在线| 久久是精品| 大香蕉免费中文| 亚洲欧洲中文日韩女优乱码| www男人天堂| 天天操天天射青青草| 国产亚洲精品激情| 人人操超碰在线| 屌色在线97视频| 你懂的在线观看区国产| 综合网91| 精品二区三四区五电影 | 澳门黄片一香蕉视频| 性生活无遮挡纯毛片在线看| 大香蕉av在线| 久久首页| 污色区网站| 成人天天爽| 东北黄色电影| 91黑人无码激情在线| 男女一进一出视频久久| 亚洲素人综合| 夜夜久久| 夜夜夜久久| 太久视频| 偷拍亚洲熟女视频播放| 97操b| 二级久久网| 久久五月视频| 精品女同一区| 亚州久久9| 欧美日韩性感| 欧亚在线视频| 日本免费人成视频播放120秒| 超碰97中文| 亚欧操逼片在线观看 | 久久綜合很很很| 中文字幕成人| 九九色精品| 青椒国产97在线熟女| 色综合av综合久久| 91国模| 在线观看啊啊啊啊啊| 国产第11页| 少妇天堂网络| 国产无遮挡| 桃色五月天| 国产成人自拍视频在线| 屁屁影院一区二区三区国产| 亚洲天堂AV在线播放| 99久久亚洲精品无码毛片潘甜甜 | 欧美久久毛片基地| 好湿好紧好爽 视频| 五月丁香综合啪啪| 99久久网站| 午夜福利精品| 成人亚欧免费视频| 女人午夜视频777| 把腿张开老子CAO烂你| 国产精品嫩草影院免费| 91精品女厕偷拍视频| 亚洲人体视频在线观看| 国产三级在线现体验区| 欧美亚洲色图另类国产| 欧美啪啪女女| 免费的av网| 嗯啊啊啊轻点视频 | 久久一二三级一一一| 五月久久HDAV| 亚洲精品丝袜| 色九九综合AV| 99re99在线视频| 欧美激情黑人| 99久在线精品99re8蜜桃| 久久精品成人| 欧美v日韩v亚洲v最新在线| 啊啊啊啊啊啊在线观看| 婷婷av在线中文字幕| 草草电影院| 一区操逼| 欧美激情五月天| 小少妇| 人妻夜夜爽天天爽麻豆三区网站| 欧美成人亚洲精品| 四虎884a| 后入式五六区| 淫淫综合网| 国产h小视频在线观看免费| 久久久久久久性爱| 呦呦影院| 图片区小说区| 免费人人搞97| 人人操人人精品影片| 少妇熟女视频一区二区三区| 国产伦精品| 20cm女自慰在线日韩欧美| 国产又黄又粗的视频| 国产精品毛片?v一区二区三区| 丰满岳乱妇一区二区三区| 国产精品岛国片在线观看| 丁香六月婷婷久久综合| 日逼五月天| 久久久91福利姬| 91chinese在线| 校园春色欧美色图| 久久成人精品| 午夜舔阴达高潮视频免费看| 五月婷婷久久综合| 2020天天色综合| 热99这里有精品综合久久 | 国产精品人妻一区二区| 屌色在线97视频| 97 超碰 人人做 人人爱| 操淫穴亚洲五月丁香| 久久久无码精品人妻二区| 亚洲丝袜综合| 国人欧美精品一区二区| 亚洲综合九| 中国熟妇| 亚洲精美粉嫩嫩泬在线观看| 天天干天天爽| 9999九九九久久久| 欧洲特黄毛片免费看欧洲毛片| 秋霞久久亚洲精品成人| 亚洲一区中文字幕久久,果冻传媒一区二区天美传媒| 久草色悠悠在线视频| 久久一区无码| 亚洲熟女乱综合一区二区在线-...亚洲国产日韩欧美一区二区三区,久久久久久精 | 国产啊v在线免费播放| 五月丁香综合| 国产精品国产拍高清AV| 九九热免费在线国产视频伊人五月| 日韩久草| 色黄污美女啪啪啪免费网站| 中文字幕五区| 亚洲欧美变态| 欧美日韩国产中文精品字幕自在自线| 国产高清不卡视频| 天天射日日干| 欧美性爱另类综合| 欧美激情黑人| 女人被男人桶爽视频网站| 精品无码一区二区| 日本天天干天天操一区| 亚洲丝袜二区| 中文字幕在线免费观看 | 国产精品一二三免费网站| 亚洲精品国产熟女| 色综合久久av| 久久最新视频免费观看| 日韩肏逼视频| 婷婷日韩一区二区三区中文字幕在线| 激情内射| 欧美久热| 午夜啊啊| 大香蕉黄色一区| 麻豆区久久久久亚| 一起草精品人妻| 玖玖爱一区在线| 精品一国2| 精品国产精品一区二区| 亚洲综合射| 国产精品密臀网在线观看| 亚洲开心网| 国产高清1234区| 亚洲情色电影网| 大香蕉日韩| 欧美视频边做饭边橾| 午夜欧美神马久久久久| 黄色片,com| 91爱看| 国产探花日韩援交| 99999这里都精品| 日本一级二级三级网站| 久久九九精品一区二区| 欧美亚洲中文字幕| 久操视频在线观看| 午夜成人福利影视| 草草影院最新网址| 日本三级韩国三级美三级91| 97色色色| 国产欧美日本亚洲精品 | 性videos欧美熟妇hdx| 99∨VTV| 一级毛片久久久久久久女人18| oumeisetupian| 男女做爰猛烈动高潮A片免费应用 少妇厨房愉情理伦片bd在线观看 不卡中文字幕aⅴ在线 | 成人性爱免费播放| 夜夜嗨绯色| 殴美在线AⅤ| 蜜臀99久久精品久久久久久| 97人肏| 尤物网址| 98超碰欧美| 天美传媒国产原创中文字幕亚洲欧美另类| renqi久久久久久久久久久久| 97在线免费看视频| 色妹子A V| 日本爽爽爽爽爽爽免费视频| 青青伊人这里只有精品| 99爱精品| 国产高清精品一区二区三区毛片| 神马久久免费电影观看| 香蕉99秘 精品一区丁香| 国产精品视频自拍在线| 久久久久女教师免费一区| 人妻精品综合中文字幕在线 | av在线播放国产一区| 一区二区三区在线美女| 四虎影视欧美| 日韩精品电影| 爱爱动态120秒| 91爆操视频| 神马精品视频| 久久加勒比| 精品国产91av一区二区三区| 国产热av| 九九热AV| 激情情色五月天| 久久久91| 九九热免费国产视频婷婷伊人五月 | 97精品国产97久久久久久户外免费| 欧美国产精品| 熟妇女伦乱视频| #NAME?| 日韩天堂av电影在线观看| 亚洲精品aa久久伊人| 精品无码久久久久久久久果冻糖心 | 中文字幕一二区二三区人妻专区| 久久久久亚洲熟妇熟女| 成人小电影网站tex| 欧美97视频| 欧美熟妇视频| 亚洲综合五月天婷婷丁香| 丁香六月激情| yw尤物av无码点击进入麻豆| 狠狠爱夜夜| 国产高清在线自在拍69| 国产风韵犹存熟妇三区| 91国产丝袜白虎| 岛国视频一二三区| 一区| 情色av电影| 懂色中文一区二区三区| 99999久久久久9国产精品| 另类一区| 国产精品成人蜜臀AV在线| 国产欧美在线观看免费观看| 另类欧美色| 天美传媒麻豆一区二区三区国产精| 久草精品一区 | 美日韩男女操屄视频| 夜夜爽夜夜高潮夜夜爽| 成人激情无码在线视频| 欧美高潮| 五月天欧美色图| 超碰97在线色男人??| 超碰综合色| 夜夜久久| 色原狠狠天天天| 国产视频97| 蜜臀va69| 久久精品无码专区| 91亚洲人| 妇女性内射冈站HDWWWCOM| 国产婷婷综合在线观看| 影音先锋乱伦资源| 人人爱人人操人人性| 日本操逼二区| 91丨九色丨国产打屁股| baisiav| 精品久久視頻在线| 99热这里只有精| 麻豆国产av网| 国产精品久久久久久久久久久久久久久| 熟女激情综合网| 日韩射精| 免费福利视频中文字幕| 人人妻人人狠人人| 青青草自拍视频在线播放| 日韩中字av一区| 91熟女综合| 精品一区二区久久| 白丝AV| ,成人免费啪啪视频| 亚洲欧洲日本精品中文a∨| 一区操逼| 亚洲五月丁香花狠狠干一区二区三区| 亚洲91少妇| 亚洲91网。| 破处bbq| 亚洲动态色图| 久久精品国产亚洲AV无码做| 丁香五月色情| 超碰免费欧美7| 日韩久射综合| 家庭乱伦国产| 天天干天天干天天| 欧美 亚洲 91| 天天上日日上日韩精品| 日韩av不卡在线观看| 乱人伦 国语对白:视频直接看| 亚洲国产一区二区三区在线 | 天天视频黄| 日逼97| 性性欧美| 欧美成人贴图| 91看黄片| 色丁香五月婷婷| 欧美熟妇亚洲版| 大香蕉中文201| 色在线亚洲视频www| 亚洲欧美精品福利在线| 日韩天天本| 亚洲情色欧美| 色婷婷丁香五月| 欧美亚洲美少妇一区二区| 最新制服中文第一页| 日韩性爱视频在线免费观看| 开心激情站| 啊啊啊啊好疼视频| 国产精品原创巨作?v网站| www.色婷婷| 亚洲网污污污污| 蜜臀久久99精品久久久久| 啪啪资源网| 亚熟在线| 综合伊人网12色| 成人av免费观看| 综合网97| 九九干| 久久发布国产伦子伦精品| 久久大香蕉97| 国内毛片免费h片在线| 大香蕉伊人在线成人AV在线观看| 性天堂| 婷婷九月| 欧美激情 一区| 丁香激情网| 91丝袜视频在线观看| 久久草视频污视频| 97日本超碰综合| 熟女熟妇伦久久影院毛片一区二区| 91A欧美电影网站| 天欧美在线| 欧美嗯啊……在线观看视频免费| 18禁止看精品中文字幕| 夜夜操二区| 91亚洲网| 免费观看有码高清视频| 91丝袜视频在线观看| 国产精品夜夜夜| 伊人96在线| 91狠狠狠| 久热一区二区| 亚洲乱伦图片视频| 被体育老师抱着c到高潮| 日韩一性一交一A片俄罗斯| 亚洲精品天堂久久A∨51成人漫| 国产精品人妻熟女aⅴ| 可能人人看人人摸| 十八禁视频网站| 美国一区二区三区视频| 欧美亚洲性爱一区二区| 91丨国产丨白浆秘 洗澡动漫| 曰韩精品九九无码| 丰满人妻aA一区二区三区| 久久欧美1卡2卡3| 99操逼| 成人无遮挡毛片免费看| 热热色国产一二区AV| 免费人成毛片乱码| 不卡六六在线91| 熟女熟妇伦久久影院毛片一区二区| 中文字幕在线观看永久| 亚洲无码国产探花在线观看| 国产精品人妻熟女aⅴ| 日韩丰满熟妇| 资源在线观一 二| 78久久久| 日本熟女不卡视频| 秋霞午夜视频一区二区| 日本99热| 亚洲综合在线第一页| 91亚洲不卡一区| 涩涩这里只有精品视频| 韩国毛片一区二区三区| 吻戏激情性巴克| 日韩熟女操逼| 熟妇女伦乱视频视频| 91亚洲综合在线| 久久免费少妇| 91丨熟女丨丰满熟女| 亚洲国产精品久久久久久久久久| 亚洲丝袜99| 国产内射爽爽大片| 欧美日韩超碰在线| 熟女六十路| 亚洲色图欧美视频| 78精品| 精品国产72| 超碰在线国产| 蜜乳成人AV| 美女天天干| 大香蕉伊人在线成人AV在线观看| 色综合九九| 人妻一区二区三区视频 | 婷婷丁香五月天亚洲天堂网| 色欧美亚洲| 大香蕉之青青草原| 亚洲色堂免费视频| 清纯唯美综合亚洲| 日本一级真人黄色性爱视频| 亚洲无码99| 97超碰超欧美。| 国产隔壁老王影院在线| 少妇天堂网络| 亚洲中文字幕在现观看| 国产女人高潮视频| 亚洲情色 自拍| 国产无套粉嫩白浆在| 欧美人人天天网| 啪啪视频亚洲第一| 一二三四视频在线社区中文字幕| 欧美色一二三| 无码不卡亚洲成?人片| 影音先锋中文字幕日本好一区二区| 一本久道久久综合狠狠爱一密臀精| 四虎在线免费视频| 性色av一区二区| 99久久这里只有精品| www.99视频| 欧美一级A片在线看视频性色| 国产在线强奸视频| 一区二区精品日韩欧美在线观看| 免费操逼91| 葡萄牙性视频一二区| 天天干人妻视频| 偷拍新久久| 亚川综合视频| 婷婷九月国产| 91老熟女老女人国产老太| 国产免费大片| 国厂麻豆77q4| 亚洲 综合 第一页| 超碰97资源网亚洲| 亚洲另类色综合网站| jizz啪啪| av大香蕉网站| 亚洲暴力强奸AV| 国产剧情一区在线观看| 国产精点久久久成人| 日本精品一区二区不卡| 黄片在线免费在线观看| 97超碰欧美精品| 国产视频三区四区| 中文字幕精品一区二区精| 青青操视频在线| 婷婷丁香六月| 八戒午夜福利理论片| 精品人妻一区二区三区夜夜| 一级啊性爱在线视频| 九九热re99re6在线精品| www.狠狠干.coom | 欧美日产国产在线成人第一区| 欧美亚洲宗合色性图| 久久久久久久综合,国产| 欧美极度丰满熟妇hd| 欧美 色 亚洲| 在线观看A啊啊啊| A片三级无码| 3PAV乱伦视频| 中文字幕精品专区搜索结果91| 亚洲黄色影视| 国产精品视频自拍在线| 日韩91网| 大香蕉欧美国产日韩高潮| 中文字幕在线观看视频www| 在线视频 亚洲精品| 高清不卡 中文 人妻| 九色 人妻 大香蕉| 精品性爱一二三区| 老司机深夜18禁污污网站| 日本国产二线女色| 高潮嗯啊性感美女久久久| 日韩中文字幕二区| 亚洲综合另类小说色区亚洲成av人片在www | 国语精品av| 久久久久久AⅤ无码免费肉站| 欧美亚洲清纯| 操逼精品视频| 五月天婷婷欧美三区| 久久久久久国产精品免费网站| 好爽视频在线观看视频| 日韩毛片9| 偷拍超碰| 91精品网站| 天天综合网网欲色| 粉嫩国产精品久久粉嫩| 亭亭在线资源| 精品国产99999| 91麻豆天美传媒HD| 国产乱伦性爱AV| jizzjizz欧美| 亚州免费啪啪视频| 国产精品点击进入在线影院| 亚洲麻豆av一区二区| 天天久久| 超碰97精品| 99re视频在线播放青草| 婷婷国产精品一区二区| 国产超碰人人爽人人做| 日韩精品在线观看观看| 中文字幕精品一区欧美| 亚洲激情综合另类男同| 囯戸精品高潮呻吟旡码| 呦呦影院| 亚洲密乳AV| 亚洲一区操| 天天视频网站黄| 极品销魂美女一区二区| 99re免费视频精品全部| 91香蕉视频在线观看免费| 三级日本一区二区三区| 性videos欧美熟妇hdx| 国产欧美在线观看免费观看| 在线中文字幕| 免费一级特黄特色大片在线观看看 | 成人性爱AV在线免费观看| 91精品人妻偷情| 欧美日韩午夜精品一区二区三区| 亚洲?V无码专区在线电影| 午夜激情成人在线观看| 国产精品婬乱一级毛片彝族| 日本日皮视频逼| 九色PORNY9l原创自拍| 五月丁香色婷婷| 亚州色图第三区| 国产日韩精品一区二区三区| 大香蕉欧美国产日韩高潮| 性交一区二区在线播放| 亚91网| 97超碰久久| 久久久久久久久久va| 午夜视频好爽啊| 91成人在线免费视频| 亚洲成人在线播放| 性色乱AV一区二区| 91少妇香蕉久久精品| 久久久天美| 中文久久久| 黄色激情电影在线观看| 欧美性爱在线无码| 欧美性区| 亚洲不卡一| 91天天看| 日韩欧美亚洲一区二区三区影院| 久草成人福利导航| 超碰97最新人妻| 97ai亚洲| 国产成人无码a| 极品色www影院| 97激情97激情| 日韩欧美~中文字| 综合亚洲欧美精品日韩?v| 国产日韩欧美亚洲精品95 | 一本色道久久综合精品婷婷| 強姦亂倫a| 欧美综合区| 日本大香蕉| www欧美91| www.久久最新地址| 视频在线观看一二三区| 激情情色五月天| 欧美日韩插逼视频| 天天日夜夜爽| wuyechaopeng| 十八禁视频一区二区| 色999亚洲人成色| 亚洲国产丝袜在线观看| 很很操在线| 亚洲另类在线观看| 青草影院内射高潮| 日韩免费三级黄片电影| 欧美日韩性感| 亚洲图片视频小说| 久久久无码av精| 久久久久久中文版| 国产毛片片精品天天看视频| 色婷婷综合视频| 国产麻豆一区二三区| 国产亚洲深夜激情| 色性荡荡荡荡视频| 91天天综合日韩欧美| 青青草天天亲夜夜操网| 俞拍自拍| 免费啪啪一级视频| 久久久久久久久久久久欧美日| 日韩激情无码影院| 伊人国产av| 人人人摸人人| 情色av电影| 欧美亚洲中文| 九九久久久久久爱| 91久久久亚洲| 久久超碰亚洲人| 美女91网站| 亚洲精品丝袜| 国产精品白丝在线播放| 色婷婷在线视频精品导航| 日韩乱伦影音先锋| 亚洲AV在线资源| 青青草白白色| 另类专区在线观看| 亚欧Av| 婷婷亚洲综合| 久久高清无码夜夜操| 大香蕉伊人75| 久久丁香五月婷婷| 中文久久爆乳| 中文字幕精品三级久久久| 校园春色美腿丝袜 | 东京日日夜夜| 黑人娇小av在线播放| 欧美色偷拍| 人人操,人人液| 国产丝袜美腿美女麻豆| 黑人白女精品一区| 亚洲色图 图片| 欧美特大黄一级片片免费| 欧美女同在线| 色婷婷综合久久久久中文国产精品一区中文字幕,国产福利电影一区二区三区 | 黑操B| 国产乱伦亚洲色图高清无码| 欧美玖玖爱免费玖玖| 欧美一级A片在线看视频性色| 欧美姓爱综合网| 91暧暧| 国产成人亚洲精品无码古代早漏男| 在线播放中文字幕| 91亚·色| 国产东北女人在线视频| 精品少妇99| 啊啊啊啊啊操我视频| 上海一级黄片| 青青草好吊色| 青青草成人视频在线观看二区| 精品一区二区成人动漫| 国产女同在线观看视频| 蜜臀th| 久久婷婷国产一区二区色| 1级黄色夫妻对换性交免费看| 精品美女人人干| 天美传媒av 在线| www.伪伪| 校园春色亚洲| 91亚洲狠狠色| 97久久久精品| 欧美日韩丝袜| 人人操,操人人| 欧美第一页| 欲女人妻性色av| 精品久久久中文字幕不| 欧美刺激色黄片免费看| 韩美日操逼| 四虎在线视频| 青青11操操操操操操操操| 伊人国产成人av网站| 天天色,天天干,天天干| 伊人嫩草| 久久久久久久久久久久久久久性生活视频 | 日韩免费在线视频观看| 亚洲精品97p| 新97国产超碰| 亚洲色欲一区二区三区| 久久东京国产精品视频| 欧美精品成人在线播放| 精品午夜福利| 殴美色网| 999色欧美中文字幕| 东北女人操比视频| 超硑97精品| 国产精品一区人妻精品阁在线| 强奸乱伦αv片| 日本日逼高清| 92性色国产午夜福利在线661| 91综合网站| 啊啊啊水好多| 九久久九九久视频| 国产蜜臀在线| 在线五区| 2020中文字幕在线| 97超色| www.男人天堂| 亚洲欧洲无码97久久精品| 亚洲中文人妻色| 91色艳| 婷婷三区| 九九九综合精品| 久久手机好看网站| 欧美三级一级| 江都AV在线| 国产婷婷一区| 精彩国产视频播放1区2区| 97 亚洲 日韩 欧美 在线| 日韩精品黄片免费观看| 亚洲激情综合| 超碰久久精品| 欧美日韩在线视频网站| 欧美精品日韩一区二区| 欧美在线55555| 12一15性XXXX粉嫩国产| 色色激情五月天| #NAME?| heyZO天然素人无码AⅤ专区| 青青草日本无码| 91综合天天看| 操逼操逼逼操操逼91 | 加勒比综合九九99视频在线播放| 精品视频一二三中文| 被体育老师抱着c到高潮| 91成人社区| 夜夜草天天| 青娱乐亚洲热| 亚洲少妇在线观看| 99色在线视频| 91无码人妻精品一区二区三区蜜桃| 亚洲一曲日韩精品| 美女91在线观看| 国产在线视频午夜精华在| 男人的天堂2010| 欧美性夜| 激情婷婷| 国产久久久| 超碰79人人乐| 久久久久久久久999| 性爱视频久久| 中文字幕在线免费观看| 人人摸人人干| 天天亚洲| 97在线国产精品| 欧美精品三区| 国产日本熟女顶级一区二区三区视频| 超碰97综合| 深夜操逼网| 国产熟女精品一区二区| 久久久久久人体| 日韩去日本高清在| 日夜尻逼网| 亚洲AV无码乱码在线观看性色| 国产中文字幕在线| 九九激情网| 伊人骚琪琪亚洲天堂网站| 精品久久一区二区三区四区五区| 91天堂| 婷婷亚洲中文字幕在线| 高清有码一区二区| 伊蕉97蜜桃97狠狠综合干 | 久久精品国产亚洲粉嫩| 色五月婷婷在线| 久久精品国产亚洲AV先锋| 后入内射蜜桃臀| 亚洲一区二区三区不卡国产欧美| 亚洲黄a三级三级三级看三级| 伊人网综合在线视频| 99日视频在线免费| 人妻久久久久久久久久久久久久久 | 少妇毛片久久| 国产日韩欧美操逼视频 | 国产夜夜艹| 中文字幕一二区二三区人妻专区| 色偷偷人人玩人人舔人人操人人摸人人爽| AV99热18这里只有精品| 日本色色色色色视频| 一卡二卡三卡| 麻豆乱码久久精| 日韩精品1区2区中文字幕| 9美女超碰在线免费观看| 欧洲综合视频| 麻豆综合一区av| 天堂精品| 中文字幕精品人妻丝袜| 欧美性爱视频免费一区一A | k频道色撸撸| 欧美一级三级| 国产日韩在线播放av| 女生看匆91网站| 天天干天天日天天射黄色大片| 激情无码日韩| 78超碰| 亚洲人久久久网| 欧美午夜精品久久久久久超碰| 国内毛片无遮挡国产| 欧美色爱综合| 性色av一区二区| 婷婷六月色| 美女午夜福利免费视频| 欧美亚洲丝袜人妻制服中文99| 91熟女综合| 午夜精品久久久久久久男人的天堂 | 97亚洲欧美| 超碰到97情色| 成人久久无码www| 天天色播| 日韩无码黄色片| 男人的天堂网页| 超碰综合97在线| 男人干美女| 男人天堂2019亚洲| 女人双腿搬开让男人桶| 天天夜躁日日躁狠狠2002| 台湾佬大香蕉| 人妻熟女一区二区| 亚洲 欧美 另类 日韩 人妻一区| 激情小说五月天| 亚洲综合大片| 97色97好| WWW4虎| 香蕉在线一区二区三区| 日韩性爱再线视频| 国产精品点击进入在线影院| 色在线视频导航| 亚洲高清91| 男人天堂最新手机版在线青青草| 最新av在线| 国产性刺激| 国产伊人自拍| 女优免费一区二区永久| 91一起操| 99久久网站| 亚洲砖码砖专无区2023| 久久综合资源一区二区| 中文字幕人成乱码熟女香港| 精品视频一区二区| 91美女小视频| 超碰美国| 超碰99在线| 九九热精品| 殴美色网| 日韩大香蕉AV影片| 欧美日韩狠狠爱| 暴力av在线| 免费视频观看60秒| 欧美,日韩,中文,另类| 91激情国产| 懂色av中文字幕| 极品少妇久久久久| 久肏视频字幕| 午夜美女诱惑电源网| 揉揉揉夜夜| 综合五月天| 久久精品久久久久久久| 久久系列| 日韩97| 欧美不卡在线一区二区| 色y情视频免费看| 亚洲国产精品9999在线观看| 操操操日本的逼| 日韩在线观看字幕精品| 欧美成人黄网色网站| 一区二区娱乐网站| 狠狠操综合| 国色天香av| 久久蜜桃综合网| 91少妇香蕉久久精品| 无码九九| 青娱乐黄色录像| 97色97干| 在线免费观看日韩一区| 国产精品一区二区 尿失禁| 国产亚洲国产超碰| 草草影院在线视频| 亚洲欧美另类少妇精品| 啊啊啊要高潮了| 可乐操亚洲蜜911| 色色毛片| 99久久e免费热视| 97最新在线播放视频| 亚洲无码?第一页| AV 少妇 人妻 偷拍| 国产无码一二三区| 免费网站观看www在线观| 大香蕉操久久| 97色色网| 婷婷五月色| 爽 好舒服 无码刺激久久| 亚欧成人综合影院| 老司机深夜18禁污污网站| 99热综合在线| www.99视频| 91色色色| 激情综合亚洲| 婷婷丁香久久| 九九在线精品| 伊人AAA| 色优久久| 婷婷五月丁香五月| 97色色视频| 亚洲日韩一区电影| 亚洲欧美精品一区天堂久久| 99在线免费观看| 久久丁香| 91青视频| 国产美女91视频| 东北女人的毛片| 艳尻美人妻| 91少妇香蕉久久精品| 久久久久密臀视频| 欧美性视频二区三区| 看看日B真人视频| 超碰4A| 久久久96| 欧美夜夜草视频| 蜜乳Av成人片网站| 日本护士高潮| 9九九九九视频在线观看| 青青网三级视频| 超硑97精品| 搡老女人老91妇女熟女| 国内精品久9| 欧美性色网| 欧美在线永久天堂| 色嗨嗨在线| 9999久久久久| www.97在线| 成人片视频| 日本熟妇人妻一区二区三区| 黑人猛交| 国产综合网站在线播放| 大香交伊人网| 欧美黑人与女人91~| 超碰97久久国| 香蕉视频精品亚洲一区二区三区在线播| 凹凸视频特色日本特黄| 91超级碰碰碰| 熟妇熟女一区二三区| 涩涩久久精品| 欧美综合亚洲综合| 99国产精品视频尤物| 日欧操屄视频| 乱理日韩中文| 亚洲狠狠入| 网站A V在线| 亚洲国产欧美中文永久| 黑丝91视频| 台湾佬中文娱乐网久久久久久久久久com | av无码av无码专区| 丁香六月婷婷久久综合| 成人一区二区三区四区| 人妻精品一区二区三区| 中文字幕一区二区免费在线| 亚洲黑丝在线| 99re在线视频国产| 97爱爱爱| 天天插天天操| 久久久久久久久久久999| 99久草| 久操视频资源站公开| 久久免费中文字幕在线观看| 超碰97人人乐| 国产自产自拍| 内射中出日韩在线观看视频| 啊啊啊啊,啊啊好多水| 欧美人人曰人人操人人射射| 992这里有精品| 国偷自 一区| 亚洲精品国产专区在线观看| 天堂蜜桃无码视频一区二区| nuu12国产麻豆精品| 中字幕人妻一区二区三区| 久久久久久999| 无码最新| 欧美激情一区二区| 96精品久久| www.色婷婷色综合| 天天草AV| 性爱免费视频成人| 久久嫩草国产成人一区| 好爽视频在线观看视频| 在线不卡视频| 久久精品成人| 国产区性爱在线视频秋霞豆| 超碰这里只有精品| 人人干人人操人人爱| av天天在线观看| 91网站18禁| 九月色婷婷| 91免费看中出视频| 午夜福利成人免费视频| 蜜臀无码一区二区| 搡老人老9丨女老熟人| 青草视频人妻在线观看| 美女视频尤物网在线看| 欧美精品 - 91爱爱| 国语av狠狠色丁香婷婷综合激情| 欧美黑人XXXⅩ高潮交| 人妻精品一区二区三区| 国产成人网| 欧美亚洲手机在线| 99久久久| 国产成人久久精品蜜臀| 极品丝袜无码| 中国熟女老妇仑乱一区二区三区| 97超碰69| 性无码专区2020| 情色av电影| 国产精品点击进入在线影院| 97久久久精品| 欧美性爱1080p| 麻豆区久久久久亚| 超碰狠狠操| 超碰99re| 九九精品美女高溯喷水| 亚洲av综合伊人久久| 青青草啪啪网| 天天艹天天日| 91精品国产91久久久久久久久久久久| 色爱综合网| 欧美天天性| 午夜精品久久久久久久99热影院| 亚洲成人日韩小说| 91精品国| 久久超碰久| 黄片qw| 超碰9 7女人| 婷婷在线视频| 日本一区二区三区午夜观看| 久久超碰av在线| 五月婷婷性爱| 美国日韩黄片| 久久久久96| 国产怡红院| 日韩一级特黄av毛片| 午夜传煤十二区精品| 白丝1区2区3区| 日韩精品中文字幕一| 欧美热图99| 综合网欧| 丁香九月激情| 91伊人久| 亚洲Av诱惑| 天天看特黄的免费网站| 亚洲图片偷拍视频区| 2024年最新色情网站在线观看| 久草精品视频| 殴美牲| 国产 日韩 欧美 中文 另类,国产 欧美 另类 制服 变态,高清 日韩 欧美 中文,高 | 欧美线天码中字| 日韩pv中文| 黄色性爱网网| 美女天天干| 久久风骚城市| 欧美性色综合网| 九九色婷婷| 亚洲天堂一区二区久久| 精品97久久| 99re在线视频国产| 国产白领连续中出在线观看| 日韩AC| 超碰国产精品无码| 麻豆成人AV| 久久偷偷色综合蜜桃| 亚洲精品97在线| 综合色图区| 国产AV无码AV| 91人精品妻入口| 丰满人妻一区二区三区四区| 亚洲欧美一区二区不卡视频播放| 少妇二级| www…国产操逼| 亚洲欧美在线观看无码| 久久这里只有精品9| 欧美成人精品一区二区男人蜜臀 | 在线观看一级α片刺激高潮视频| 亚洲毛片久久| 中文日韩欧美熟| 97中文字幕色| 久久精品免费| 久久久人体| 超碰在线人妻| 曰韩成人免费视频| 日韩人妻播放| 亚洲第一免费视频| 国产乱伦视频污| 久久超碰日韩精品| 黑人性欧美| 日曰骚久久精品| 亚洲91射| 夜夜夜夜爽| 青青操视频在线| 亚洲日韩欧美一区二区| 99在线观看无大码| 九九热免费在线国产视频伊人五月| 天美av在线观看| 麻豆久久视频在线地址| 久久久A∨| 午夜精品久久久久久久男人的天堂| 五月丁香综合激情| 国产成人自拍视频在线| 岛园激情| 偷窥自拍亚洲天堂网爆| 久久人人爽人人爽人人片Ⅴ| 免费在线观看国内色片网站网址| 亚洲精品影视老司机| 在线国产福利网址导航| 男人高清无码一区二区| 亚洲精品官网在线观看| 乱伦AVxx| 欧美强奸一区二区诱惑| 不卡啪啪视频| 91超级碰碰| 屌逼传媒| 国产极品999| 久久一二三四五六七八九区区| 婷婷另类小说| 啊啊啊啊好多水| 亚洲偷拍自拍在线视频|