久久福利_99r_国产日韩在线视频_直接看av的网站_中文欧美日韩_久久一

您的位置:首頁技術(shù)文章
文章詳情頁

Python實(shí)現(xiàn)隨機(jī)爬山算法

瀏覽:97日期:2022-06-28 17:15:30

隨機(jī)爬山是一種優(yōu)化算法。它利用隨機(jī)性作為搜索過程的一部分。這使得該算法適用于非線性目標(biāo)函數(shù),而其他局部搜索算法不能很好地運(yùn)行。它也是一種局部搜索算法,這意味著它修改了單個(gè)解決方案并搜索搜索空間的相對局部區(qū)域,直到找到局部最優(yōu)值為止。這意味著它適用于單峰優(yōu)化問題或在應(yīng)用全局優(yōu)化算法后使用。

在本教程中,您將發(fā)現(xiàn)用于函數(shù)優(yōu)化的爬山優(yōu)化算法完成本教程后,您將知道:

爬山是用于功能優(yōu)化的隨機(jī)局部搜索算法。 如何在Python中從頭開始實(shí)現(xiàn)爬山算法。 如何應(yīng)用爬山算法并檢查算法結(jié)果。 教程概述

本教程分為三個(gè)部分:他們是:

爬山算法 爬山算法的實(shí)現(xiàn) 應(yīng)用爬山算法的示例 爬山算法

隨機(jī)爬山算法是一種隨機(jī)局部搜索優(yōu)化算法。它以起始點(diǎn)作為輸入和步長,步長是搜索空間內(nèi)的距離。該算法將初始點(diǎn)作為當(dāng)前最佳候選解決方案,并在提供的點(diǎn)的步長距離內(nèi)生成一個(gè)新點(diǎn)。計(jì)算生成的點(diǎn),如果它等于或好于當(dāng)前點(diǎn),則將其視為當(dāng)前點(diǎn)。新點(diǎn)的生成使用隨機(jī)性,通常稱為隨機(jī)爬山。這意味著該算法可以跳過響應(yīng)表面的顛簸,嘈雜,不連續(xù)或欺騙性區(qū)域,作為搜索的一部分。重要的是接受具有相等評估的不同點(diǎn),因?yàn)樗试S算法繼續(xù)探索搜索空間,例如在響應(yīng)表面的平坦區(qū)域上。限制這些所謂的“橫向”移動(dòng)以避免無限循環(huán)也可能是有幫助的。該過程一直持續(xù)到滿足停止條件,例如最大數(shù)量的功能評估或給定數(shù)量的功能評估內(nèi)沒有改善為止。該算法之所以得名,是因?yàn)樗鼤?huì)(隨機(jī)地)爬到響應(yīng)面的山坡上,達(dá)到局部最優(yōu)值。這并不意味著它只能用于最大化目標(biāo)函數(shù)。這只是一個(gè)名字。實(shí)際上,通常,我們最小化功能而不是最大化它們。作為局部搜索算法,它可能會(huì)陷入局部最優(yōu)狀態(tài)。然而,多次重啟可以允許算法定位全局最優(yōu)。步長必須足夠大,以允許在搜索空間中找到更好的附近點(diǎn),但步幅不能太大,以使搜索跳出包含局部最優(yōu)值的區(qū)域。

爬山算法的實(shí)現(xiàn)

在撰寫本文時(shí),SciPy庫未提供隨機(jī)爬山的實(shí)現(xiàn)。但是,我們可以自己實(shí)現(xiàn)它。首先,我們必須定義目標(biāo)函數(shù)和每個(gè)輸入變量到目標(biāo)函數(shù)的界限。目標(biāo)函數(shù)只是一個(gè)Python函數(shù),我們將其命名為Objective()。邊界將是一個(gè)2D數(shù)組,每個(gè)輸入變量都具有一個(gè)維度,該變量定義了變量的最小值和最大值。例如,一維目標(biāo)函數(shù)和界限將定義如下:

# objective function def objective(x): return 0 # define range for input bounds = asarray([[-5.0, 5.0]])

接下來,我們可以生成初始解作為問題范圍內(nèi)的隨機(jī)點(diǎn),然后使用目標(biāo)函數(shù)對其進(jìn)行評估。

# generate an initial point solution = bounds[:, 0] + rand(len(bounds)) * (bounds[:, 1] - bounds[:, 0]) # evaluate the initial point solution_eval = objective(solution)

現(xiàn)在我們可以遍歷定義為“ n_iterations”的算法的預(yù)定義迭代次數(shù),例如100或1,000。

# run the hill climb for i in range(n_iterations):

算法迭代的第一步是采取步驟。這需要預(yù)定義的“ step_size”參數(shù),該參數(shù)相對于搜索空間的邊界。我們將采用高斯分布的隨機(jī)步驟,其中均值是我們的當(dāng)前點(diǎn),標(biāo)準(zhǔn)偏差由“ step_size”定義。這意味著大約99%的步驟將在當(dāng)前點(diǎn)的(3 * step_size)之內(nèi)。

# take a step candidate = solution + randn(len(bounds)) * step_size

我們不必采取這種方式。您可能希望使用0到步長之間的均勻分布。例如:

# take a step candidate = solution + rand(len(bounds)) * step_size

接下來,我們需要評估具有目標(biāo)函數(shù)的新候選解決方案。

# evaluate candidate point candidte_eval = objective(candidate)

然后,我們需要檢查此新點(diǎn)的評估結(jié)果是否等于或優(yōu)于當(dāng)前最佳點(diǎn),如果是,則用此新點(diǎn)替換當(dāng)前最佳點(diǎn)。

# check if we should keep the new point if candidte_eval <= solution_eval: # store the new point solution, solution_eval = candidate, candidte_eval # report progress print(’>%d f(%s) = %.5f’ % (i, solution, solution_eval))

就是這樣。我們可以將此爬山算法實(shí)現(xiàn)為可重用函數(shù),該函數(shù)將目標(biāo)函數(shù)的名稱,每個(gè)輸入變量的范圍,總迭代次數(shù)和步驟作為參數(shù),并返回找到的最佳解決方案及其評估。

# hill climbing local search algorithm def hillclimbing(objective, bounds, n_iterations, step_size): # generate an initial point solution = bounds[:, 0] + rand(len(bounds)) * (bounds[:, 1] - bounds[:, 0]) # evaluate the initial point solution_eval = objective(solution) # run the hill climb for i in range(n_iterations): # take a step candidate = solution + randn(len(bounds)) * step_size # evaluate candidate point candidte_eval = objective(candidate) # check if we should keep the new point if candidte_eval <= solution_eval: # store the new point solution, solution_eval = candidate, candidte_eval # report progress print(’>%d f(%s) = %.5f’ % (i, solution, solution_eval)) return [solution, solution_eval]

現(xiàn)在,我們知道了如何在Python中實(shí)現(xiàn)爬山算法,讓我們看看如何使用它來優(yōu)化目標(biāo)函數(shù)。

應(yīng)用爬山算法的示例

在本節(jié)中,我們將把爬山優(yōu)化算法應(yīng)用于目標(biāo)函數(shù)。首先,讓我們定義目標(biāo)函數(shù)。我們將使用一個(gè)簡單的一維x ^ 2目標(biāo)函數(shù),其邊界為[-5,5]。下面的示例定義了函數(shù),然后為輸入值的網(wǎng)格創(chuàng)建了函數(shù)響應(yīng)面的折線圖,并用紅線標(biāo)記了f(0.0)= 0.0處的最佳值。

# convex unimodal optimization function from numpy import arange from matplotlib import pyplot # objective function def objective(x): return x[0]**2.0 # define range for input r_min, r_max = -5.0, 5.0 # sample input range uniformly at 0.1 increments inputs = arange(r_min, r_max, 0.1) # compute targets results = [objective([x]) for x in inputs] # create a line plot of input vs result pyplot.plot(inputs, results) # define optimal input value x_optima = 0.0 # draw a vertical line at the optimal input pyplot.axvline(x=x_optima, ls=’--’, color=’red’) # show the plot pyplot.show()

運(yùn)行示例將創(chuàng)建目標(biāo)函數(shù)的折線圖,并清晰地標(biāo)記函數(shù)的最優(yōu)值。

Python實(shí)現(xiàn)隨機(jī)爬山算法

接下來,我們可以將爬山算法應(yīng)用于目標(biāo)函數(shù)。首先,我們將播種偽隨機(jī)數(shù)生成器。通常這不是必需的,但是在這種情況下,我想確保每次運(yùn)行算法時(shí)都得到相同的結(jié)果(相同的隨機(jī)數(shù)序列),以便以后可以繪制結(jié)果。

# seed the pseudorandom number generator seed(5)

接下來,我們可以定義搜索的配置。在這種情況下,我們將搜索算法的1,000次迭代,并使用0.1的步長。假設(shè)我們使用的是高斯函數(shù)來生成步長,這意味著大約99%的所有步長將位于給定點(diǎn)(0.1 * 3)的距離內(nèi),例如 三個(gè)標(biāo)準(zhǔn)差。

n_iterations = 1000 # define the maximum step size step_size = 0.1

接下來,我們可以執(zhí)行搜索并報(bào)告結(jié)果。

# perform the hill climbing search best, score = hillclimbing(objective, bounds, n_iterations, step_size) print(’Done!’) print(’f(%s) = %f’ % (best, score))

結(jié)合在一起,下面列出了完整的示例。

# hill climbing search of a one-dimensional objective function from numpy import asarray from numpy.random import randn from numpy.random import rand from numpy.random import seed # objective function def objective(x): return x[0]**2.0 # hill climbing local search algorithm def hillclimbing(objective, bounds, n_iterations, step_size): # generate an initial point solution = bounds[:, 0] + rand(len(bounds)) * (bounds[:, 1] - bounds[:, 0]) # evaluate the initial point solution_eval = objective(solution) # run the hill climb for i in range(n_iterations): # take a step candidate = solution + randn(len(bounds)) * step_size # evaluate candidate point candidte_eval = objective(candidate) # check if we should keep the new point if candidte_eval <= solution_eval: # store the new point solution, solution_eval = candidate, candidte_eval # report progress print(’>%d f(%s) = %.5f’ % (i, solution, solution_eval)) return [solution, solution_eval] # seed the pseudorandom number generator seed(5) # define range for input bounds = asarray([[-5.0, 5.0]]) # define the total iterations n_iterations = 1000 # define the maximum step size step_size = 0.1 # perform the hill climbing search best, score = hillclimbing(objective, bounds, n_iterations, step_size) print(’Done!’) print(’f(%s) = %f’ % (best, score))

運(yùn)行該示例將報(bào)告搜索進(jìn)度,包括每次檢測到改進(jìn)時(shí)的迭代次數(shù),該函數(shù)的輸入以及來自目標(biāo)函數(shù)的響應(yīng)。搜索結(jié)束時(shí),找到最佳解決方案,并報(bào)告其評估結(jié)果。在這種情況下,我們可以看到在算法的1,000次迭代中有36處改進(jìn),并且該解決方案非常接近于0.0的最佳輸入,其計(jì)算結(jié)果為f(0.0)= 0.0。

>1 f([-2.74290923]) = 7.52355 >3 f([-2.65873147]) = 7.06885 >4 f([-2.52197291]) = 6.36035 >5 f([-2.46450214]) = 6.07377 >7 f([-2.44740961]) = 5.98981 >9 f([-2.28364676]) = 5.21504 >12 f([-2.19245939]) = 4.80688 >14 f([-2.01001538]) = 4.04016 >15 f([-1.86425287]) = 3.47544 >22 f([-1.79913002]) = 3.23687 >24 f([-1.57525573]) = 2.48143 >25 f([-1.55047719]) = 2.40398 >26 f([-1.51783757]) = 2.30383 >27 f([-1.49118756]) = 2.22364 >28 f([-1.45344116]) = 2.11249 >30 f([-1.33055275]) = 1.77037 >32 f([-1.17805016]) = 1.38780 >33 f([-1.15189314]) = 1.32686 >36 f([-1.03852644]) = 1.07854 >37 f([-0.99135322]) = 0.98278 >38 f([-0.79448984]) = 0.63121 >39 f([-0.69837955]) = 0.48773 >42 f([-0.69317313]) = 0.48049 >46 f([-0.61801423]) = 0.38194 >48 f([-0.48799625]) = 0.23814 >50 f([-0.22149135]) = 0.04906 >54 f([-0.20017144]) = 0.04007 >57 f([-0.15994446]) = 0.02558 >60 f([-0.15492485]) = 0.02400 >61 f([-0.03572481]) = 0.00128 >64 f([-0.03051261]) = 0.00093 >66 f([-0.0074283]) = 0.00006 >78 f([-0.00202357]) = 0.00000 >119 f([0.00128373]) = 0.00000 >120 f([-0.00040911]) = 0.00000 >314 f([-0.00017051]) = 0.00000 Done! f([-0.00017051]) = 0.000000

以線圖的形式查看搜索的進(jìn)度可能很有趣,該線圖顯示了每次改進(jìn)后最佳解決方案的評估變化。每當(dāng)有改進(jìn)時(shí),我們就可以更新hillclimbing()來跟蹤目標(biāo)函數(shù)的評估,并返回此分?jǐn)?shù)列表

# hill climbing local search algorithm def hillclimbing(objective, bounds, n_iterations, step_size): # generate an initial point solution = bounds[:, 0] + rand(len(bounds)) * (bounds[:, 1] - bounds[:, 0]) # evaluate the initial point solution_eval = objective(solution) # run the hill climb scores = list() scores.append(solution_eval) for i in range(n_iterations): # take a step candidate = solution + randn(len(bounds)) * step_size # evaluate candidate point candidte_eval = objective(candidate) # check if we should keep the new point if candidte_eval <= solution_eval: # store the new point solution, solution_eval = candidate, candidte_eval # keep track of scores scores.append(solution_eval) # report progress print(’>%d f(%s) = %.5f’ % (i, solution, solution_eval)) return [solution, solution_eval, scores]

然后,我們可以創(chuàng)建這些分?jǐn)?shù)的折線圖,以查看搜索過程中發(fā)現(xiàn)的每個(gè)改進(jìn)的目標(biāo)函數(shù)的相對變化

# line plot of best scores pyplot.plot(scores, ’.-’) pyplot.xlabel(’Improvement Number’) pyplot.ylabel(’Evaluation f(x)’) pyplot.show()

結(jié)合在一起,下面列出了執(zhí)行搜索并繪制搜索過程中改進(jìn)解決方案的目標(biāo)函數(shù)得分的完整示例。

# hill climbing search of a one-dimensional objective function from numpy import asarray from numpy.random import randn from numpy.random import rand from numpy.random import seed from matplotlib import pyplot # objective function def objective(x): return x[0]**2.0 # hill climbing local search algorithm def hillclimbing(objective, bounds, n_iterations, step_size): # generate an initial point solution = bounds[:, 0] + rand(len(bounds)) * (bounds[:, 1] - bounds[:, 0]) # evaluate the initial point solution_eval = objective(solution) # run the hill climb scores = list() scores.append(solution_eval) for i in range(n_iterations): # take a step candidate = solution + randn(len(bounds)) * step_size # evaluate candidate point candidte_eval = objective(candidate) # check if we should keep the new point if candidte_eval <= solution_eval: # store the new point solution, solution_eval = candidate, candidte_eval # keep track of scores scores.append(solution_eval) # report progress print(’>%d f(%s) = %.5f’ % (i, solution, solution_eval)) return [solution, solution_eval, scores] # seed the pseudorandom number generator seed(5) # define range for input bounds = asarray([[-5.0, 5.0]]) # define the total iterations n_iterations = 1000 # define the maximum step size step_size = 0.1 # perform the hill climbing search best, score, scores = hillclimbing(objective, bounds, n_iterations, step_size) print(’Done!’) print(’f(%s) = %f’ % (best, score)) # line plot of best scores pyplot.plot(scores, ’.-’) pyplot.xlabel(’Improvement Number’) pyplot.ylabel(’Evaluation f(x)’) pyplot.show()

運(yùn)行示例將執(zhí)行搜索,并像以前一樣報(bào)告結(jié)果。創(chuàng)建一個(gè)線形圖,顯示在爬山搜索期間每個(gè)改進(jìn)的目標(biāo)函數(shù)評估。在搜索過程中,我們可以看到目標(biāo)函數(shù)評估發(fā)生了約36個(gè)變化,隨著算法收斂到最優(yōu)值,初始變化較大,而在搜索結(jié)束時(shí)變化很小,難以察覺。

Python實(shí)現(xiàn)隨機(jī)爬山算法

鑒于目標(biāo)函數(shù)是一維的,因此可以像上面那樣直接繪制響應(yīng)面。通過將在搜索過程中找到的最佳候選解決方案繪制為響應(yīng)面中的點(diǎn),來回顧搜索的進(jìn)度可能會(huì)很有趣。我們期望沿著響應(yīng)面到達(dá)最優(yōu)點(diǎn)的一系列點(diǎn)。這可以通過首先更新hillclimbing()函數(shù)以跟蹤每個(gè)最佳候選解決方案在搜索過程中的位置來實(shí)現(xiàn),然后返回最佳解決方案列表來實(shí)現(xiàn)。

# hill climbing local search algorithm def hillclimbing(objective, bounds, n_iterations, step_size): # generate an initial point solution = bounds[:, 0] + rand(len(bounds)) * (bounds[:, 1] - bounds[:, 0]) # evaluate the initial point solution_eval = objective(solution) # run the hill climb solutions = list() solutions.append(solution) for i in range(n_iterations): # take a step candidate = solution + randn(len(bounds)) * step_size # evaluate candidate point candidte_eval = objective(candidate) # check if we should keep the new point if candidte_eval <= solution_eval: # store the new point solution, solution_eval = candidate, candidte_eval # keep track of solutions solutions.append(solution) # report progress print(’>%d f(%s) = %.5f’ % (i, solution, solution_eval)) return [solution, solution_eval, solutions]

然后,我們可以創(chuàng)建目標(biāo)函數(shù)響應(yīng)面的圖,并像以前那樣標(biāo)記最優(yōu)值。

# sample input range uniformly at 0.1 increments inputs = arange(bounds[0,0], bounds[0,1], 0.1) # create a line plot of input vs result pyplot.plot(inputs, [objective([x]) for x in inputs], ’--’) # draw a vertical line at the optimal input pyplot.axvline(x=[0.0], ls=’--’, color=’red’)

最后,我們可以將搜索找到的候選解的序列繪制成黑點(diǎn)。

# plot the sample as black circles pyplot.plot(solutions, [objective(x) for x in solutions], ’o’, color=’black’)

結(jié)合在一起,下面列出了在目標(biāo)函數(shù)的響應(yīng)面上繪制改進(jìn)解序列的完整示例。

# hill climbing search of a one-dimensional objective function from numpy import asarray from numpy import arange from numpy.random import randn from numpy.random import rand from numpy.random import seed from matplotlib import pyplot # objective function def objective(x): return x[0]**2.0 # hill climbing local search algorithm def hillclimbing(objective, bounds, n_iterations, step_size): # generate an initial point solution = bounds[:, 0] + rand(len(bounds)) * (bounds[:, 1] - bounds[:, 0]) # evaluate the initial point solution_eval = objective(solution) # run the hill climb solutions = list() solutions.append(solution) for i in range(n_iterations): # take a step candidate = solution + randn(len(bounds)) * step_size # evaluate candidate point candidte_eval = objective(candidate) # check if we should keep the new point if candidte_eval <= solution_eval: # store the new point solution, solution_eval = candidate, candidte_eval # keep track of solutions solutions.append(solution) # report progress print(’>%d f(%s) = %.5f’ % (i, solution, solution_eval)) return [solution, solution_eval, solutions] # seed the pseudorandom number generator seed(5) # define range for input bounds = asarray([[-5.0, 5.0]]) # define the total iterations n_iterations = 1000 # define the maximum step size step_size = 0.1 # perform the hill climbing search best, score, solutions = hillclimbing(objective, bounds, n_iterations, step_size) print(’Done!’) print(’f(%s) = %f’ % (best, score)) # sample input range uniformly at 0.1 increments inputs = arange(bounds[0,0], bounds[0,1], 0.1) # create a line plot of input vs result pyplot.plot(inputs, [objective([x]) for x in inputs], ’--’) # draw a vertical line at the optimal input pyplot.axvline(x=[0.0], ls=’--’, color=’red’) # plot the sample as black circles pyplot.plot(solutions, [objective(x) for x in solutions], ’o’, color=’black’) pyplot.show()

運(yùn)行示例將執(zhí)行爬山搜索,并像以前一樣報(bào)告結(jié)果。像以前一樣創(chuàng)建一個(gè)響應(yīng)面圖,顯示函數(shù)的熟悉的碗形,并用垂直的紅線標(biāo)記函數(shù)的最佳狀態(tài)。在搜索過程中找到的最佳解決方案的順序顯示為黑點(diǎn),沿著碗形延伸到最佳狀態(tài)。

Python實(shí)現(xiàn)隨機(jī)爬山算法

以上就是Python實(shí)現(xiàn)隨機(jī)爬山算法的詳細(xì)內(nèi)容,更多關(guān)于Python 隨機(jī)爬山算法的資料請關(guān)注好吧啦網(wǎng)其它相關(guān)文章!

標(biāo)簽: Python 編程
相關(guān)文章:
主站蜘蛛池模板: 91av官网| 欧美日韩激情在线一区二区三区 | 色婷婷av一区二区三区软件 | 国产欧美日韩在线观看 | 国产精品久久久久久久美男 | 国产精品二区一区二区aⅴ污介绍 | 国产一区二区在线免费观看 | 99精品视频在线观看 | 久久精品免费一区二区三区 | 91天堂 | 成人一级黄色大片 | 国产单男| 国产黄色免费视频 | 精品乱子伦一区二区三区 | 蜜桃视频成人m3u8 | 国产精品久久久久婷婷二区次 | 午夜三级在线 | 欧美日韩综合精品 | 一区二区在线视频免费观看 | 一区二区三区回区在观看免费视频 | 久久成人免费 | 精品一区二区三区中文字幕 | 亚洲成人免费影院 | 一区二区中文字幕在线观看 | 欧美成人影院在线 | 精品视频一区二区三区 | 亚洲三级在线观看 | 亚洲综合精品 | 午夜激情在线播放 | 天天操天天拍 | 一级免费片 | 久久精品99国产精品日本 | 日韩一区电影 | 国产精品久久久久久久久久 | 欧洲精品乱码久久久久蜜桃 | 中文字幕亚洲欧美日韩在线不卡 | 久久精品一区二区三区不卡牛牛 | 欧美一区二区三区 | 国产在线播放av | 欧美一级内谢 | 亚洲成人基地 | 午夜精品一区二区三区在线视频 | 97视频久久 | 一区二区在线视频 | 香蕉视频成人在线观看 | 中文字幕国产 | 国产精品免费一区二区三区四区 | 亚洲一区综合 | 国产伊人久 | www.色综合 | 五月色综合 | 娇妻被朋友调教成玩物 | 久久久网站 | yiren22综合网成人 | 亚洲 欧美日韩 国产 中文 | 日本一区二区高清不卡 | 欧美男男videos | 国产在线专区 | 动漫泳衣美女 | 国产精品xxxx | 欧美综合久久久 | 欧美午夜视频在线观看 | 精品久久久久久国产 | 亚洲成人精品一区二区三区 | 久久精品亚洲精品国产欧美 | 三级黄色片在线 | 狠狠躁夜夜躁人人爽天天高潮 | 国产一级纯肉体一级毛片 | 成人国产一区二区 | 免费观看一级特黄欧美大片 | 超碰人人操 | 久久9视频 | 亚洲一区亚洲二区 | 九九精品在线 | eeuss国产一区二区三区四区 | 91天堂 | 91精品国产色综合久久不卡98口 | 北条麻妃一区二区三区在线观看 | 国产精品美女久久久久久不卡 | 高清国产一区二区三区四区五区 | 亚洲视频综合 | 久久久久国产精品视频 | 成人网在线观看 | 一级免费片| 精品日韩一区二区三区 | 久久精品福利 | 亚州综合一区 | 日韩不卡一区 | 亚洲每日更新 | 日韩精品小视频 | 国产欧美一区二区精品忘忧草 | 亚洲成av人片在线观看 | 欧美日韩视频 | 息与子猛烈交尾一区二区 | 欧美日韩亚洲综合 | 国产依人 | 久久人人爽人人爽人人片av高清 | 日韩成人中文字幕 | 亚洲黄色区| 欧美高清视频一区 | 亚洲九九 | 韩日精品| 午夜国产视频 | 久久久久久国产精品mv | 91视频大全| 国产精品成人久久久久 | 日本精品一区二区三区视频 | 日韩一区在线播放 | 国产av毛片 | 国产亚洲精品久久久久久青梅 | 毛片在线免费 | 女人夜夜春高潮爽a∨片传媒 | 在线免费观看色视频 | 国产日韩一区二区 | 丰满少妇久久久久久久 | 日本在线观看视频网站 | 欧美一区二区三区在线看 | 久久久久999| 国产精品久久久久久久久软件 | 国产精品18 | 天堂国产| 嫩草影院黄色 | 亚洲精品不卡 | 久久国产精品视频 | 国产精选一区二区三区 | 日韩高清一区 | av在线成人 | 免费毛片大全 | 最新一级毛片 | a视频在线 | 欧美中文在线 | 国产精品九九九 | 久久h| 天天草天天插 | 精品久久精品 | 久久久久高清 | 99免费观看 | 精品一二区 | 国产一区二区三区在线免费观看 | h片在线| 亚洲美女视频在线观看 | 日日撸 | 在线播放国产精品 | 亚洲成人av片 | 三级视频在线 | 国产一二三视频 | 99热69 | 国产精品污www在线观看 | 亚洲福利免费 | 欧美成人免费 | 91精品国产自产精品男人的天堂 | 噜噜噜噜噜在线视频 | a免费在线 | 亚洲精品二区 | 精品日韩一区 | 日韩精品一91爱爱 | 亚洲一区二区三区蜜桃 | 久久激情网 | 一区二区三区国产视频 | 日本啪啪网站 | 亚洲成人在线视频网站 | 久久久久亚洲国产 | 国产精品视频导航 | 久久艹久久| 精国产品一区二区三区四季综 | 羞羞视频网站在线免费观看 | 一区二区日韩 | av片网| 亚洲精品一区二区另类图片 | 在线天堂视频 | 欧美综合激情 | 成年人在线观看 | 日韩一级二级三级 | 欧美久久精品 | 午夜精品视频 | 午夜精品久久久久久久男人的天堂 | 中文字幕7777 | 国产精品视频播放 | 欧亚视频在线观看 | 国产成人精品一区二区在线 | 免费国产黄网站在线观看视频 | 亚洲精品视频一区 | 日韩欧美成人一区二区三区 | 欧美1314| 欧美亚洲另类丝袜综合网动图 | 国产一区二区三区四区在线观看 | 午夜影院男女 | 一区二区在线免费观看 | 国产高清在线看 | 日韩精品一区二区三区中文在线 | 日韩精品一区二区三区在线 | 97超碰免费 | 中文字幕亚洲欧美日韩在线不卡 | 毛片免费视频 | 日本不卡高字幕在线2019 | 成人精品视频免费在线观看 | 亚洲成人免费在线 | 日韩欧美在线播放 | 一区二区三区回区在观看免费视频 | 久在线观看 | 国产中文一区 | 国产精品色婷婷亚洲综合看 | 日韩精品免费在线视频 | 亚洲午夜精品一区二区三区他趣 | 欧美一级全黄 | 在线免费观看激情视频 | 懂色一区二区三区免费观看 | 久久99国产精品 | 国产精品视屏 | 91麻豆精品国产91久久久久久久久 | the蜜臀av入口 | 国产精品一区二区久久久久 | 欧美一级做a爰片免费视频 亚洲精品一区在线观看 | 亚洲成人一区二区 | www.久久 | 日日骚av | 久久久精品国产 | 欧美高潮 | 国产小视频在线播放 | 天天射日日操 | 午夜在线电影 | 欧美日韩二区三区 | 97视频观看 | 91亚洲一区 | 亚洲精品在线视频 | 韩国精品一区 | 精品国产91久久 | 久久免费视频观看 | 欧美一区二区三区免费视频 | 超碰免费在线观看 | 日本午夜精品 | 亚洲成人免费影院 | 成人免费视频在线观看 | 国产v日产∨综合v精品视频 | 中文字幕av网 | 国产高清精 | 午夜电影网址 | 成人激情视频在线观看 | 国产免费黄色大片 | 天天精品 | 日韩中文一区 | 久久久美女 | 亚洲精品日韩综合观看成人91 | 手机看片亚洲 | 久久伊人av | 国产成人免费视频网站高清观看视频 | 欧美性视频网站 | 国产一区二区久久 | 男女啪啪无遮挡 | 一区二区三区四区在线播放 | 中文字幕在线观看视频一区 | 在线观看羞羞 | 亚洲免费视频观看 | 玖玖操 | 91手机精品视频 | 欧美一级一区 | а天堂中文最新一区二区三区 | 日韩av在线一区 | 荷兰欧美一级毛片 | 91视频在线网址 | 国产精品久久久久一区二区三区 | 国产精品久久毛片 | 欧美一级网站 | 2019天天干夜夜操 | 日韩在线大片 | 欧美日韩国产综合在线 | 国产精品久久久久久一区二区三区 | 色婷婷综合在线 | 国产精品爱久久久久久久 | 91麻豆精品国产91久久久更新时间 | 日韩一级黄色大片 | 久久精品这里热有精品 | 91视频分类 | 高清视频一区 | 青青久在线视频 | 亚洲高清免费 | 久草色视频在线观看 | 精品久久久久久久久久久久 | 在线观看的av | 2022中文字幕| 国产精品成人国产乱一区 | 国产福利在线免费 | 国产欧美日韩精品一区二区三区 | 欧美五月 | 日本欧美久久久久 | 国产精品视频久久 | 国产精品国产精品国产专区不卡 | 美女久久久久 | 奇米亚洲午夜久久精品 | 亚洲精品一区二区三区不 | 欧美日韩精品一区二区在线播放 | 成人免费在线视频播放 | 亚洲福利国产 | 999精品视频 | 最新午夜 | 精品国产乱码久久久久久88av | 欧美一区三区 | 亚洲一区二区三区在线播放 | 黑色丝袜脚足j国产在线看68 | 成人欧美一区二区三区黑人孕妇 | 国产精品永久免费 | 亚洲精品久久久久久久久久久 | 日韩精品一区二区在线观看 | 免费观看黄a一级视频 | 日韩午夜在线视频 | 伊人精品视频在线观看 | 天天夜夜操| 欧美激情一区二区三级高清视频 | 久久婷婷色| 久久久久久久久久久久福利 | 男人的天堂视频网站 | 欧美日韩电影一区二区 | 国产毛片在线 | 久久久免费视频看看 | 国产女人和拘做受视频 | 国产成人精品高清久久 | 三级无遮挡污在线观看 | 欧洲另类二三四区 | 日本xxx性 | 成人不卡 | 精品久久久久久一区二区 | 无码日韩精品一区二区免费 | 日本不卡在线 | 久久精品1区2区 | 国产综合精品一区二区三区 | 国产在线观看91一区二区三区 | 久久久国产一区二区三区 | 国产一区二区免费 | 一区二区三区国产精品 | 欧美午夜一区二区三区 | 成人三级av | 在线视频这里只有精品 | 久久精品91 | 国产成人精品亚洲日本在线观看 | 欧美一区二区三区xxxx监狱 | 毛片链接 | 国产v片 | 一区二区免费视频 | 国产精品久久久久久久久久久久 | 久草免费在线视频 | 欧美高清视频一区二区三区 | 在线观看免费毛片视频 | 91久久在线| 欧美亚洲日本 | 亚洲精品久久久 | 免费国产网站 | 欧美日本久久 | 国产偷国产偷精品高清尤物 | 成年人精品视频在线观看 | 欧美自拍一区 | 欧美伦理一区二区 | 性色av一区二区三区 | 欧美操穴 | 免费在线一区二区三区 | 老司机深夜福利在线观看 | 日韩欧美精品一区二区三区 | 色黄网站 | 黄色小视频在线观看 | 国产成人精品免费 | 国产做a爱片久久毛片 | 欧美国产在线观看 | 99re免费视频精品全部 | 国产在线二区 | 日韩精品一区二区三区中文字幕 | 91在线观看视频 | 欧美日韩在线一区二区三区 | 久久国产综合 | 91精品国产综合久久福利软件 | 中文字幕久久久 | 99热这里有 | 国产精品美女久久久久aⅴ国产馆 | 国产日韩一区二区 | 国产精品成人一区二区 | 大桥未久亚洲精品久久久强制中出 | 6080亚洲精品一区二区 | 中文字幕日韩欧美一区二区三区 | 日本特黄特色aaa大片免费 | 天天综合网久久综合网 | 成人中文字幕在线 | 亚洲精品一区二区三区蜜桃久 | 视频一区久久 | 国产精品夜色一区二区三区 | 国产精品美女一区二区三区四区 | 成人在线视频一区二区 | 久久精品色欧美aⅴ一区二区 | h网站在线观看 | 999精品免费 | 欧美第8页 | 青青草久久爱 | 三区视频| 亚洲精品电影在线观看 | 国产一区二区h | 国产精品久久久一区二区 | 国产一级片 | 久久99久久久久 | 国产高清在线不卡 | 玖玖精品 | 久久99精品久久久久久久青青日本 | 国产日韩欧美一区 | 国产亲子乱弄免费视频 | 欧美大片一区二区 | 国产精品一区在线观看 | 91精品久久久久久久久久 | 手机看片369 | www婷婷 | 欧美一区二区三区在线视频观看 | 天堂成人av | www国产亚洲精品 | 欧美在线a | 亚洲乱码国产乱码精品精98午夜 | 国产一级片在线播放 | 国产精品资源在线 | 日韩福利视频 | 在线日韩中文字幕 | 国产91久久精品一区二区 | 国产成人综合在线 | 国产99久久 | 国产成人a亚洲精品 | 欧美激情视频一区二区三区在线播放 | 久久久网站 | 亚洲成人久久久 | 国产网站视频 | 69黄在线看片免费视频 | 亚洲国产成人91精品 | 成人h视频| 91精品久久久久久久久中文字幕 | 日韩精品免费在线视频 | 中文字幕成人av | 中文字幕二区三区 | 一级片视频免费 | 亚洲丶国产丶欧美一区二区三区 | 一级毛片在线播放 | 麻豆国产一区二区三区四区 | 欧美第一页 | 久久久www成人免费无遮挡大片 | 天天亚洲综合 | 国产精品亚洲成在人线 | 91精品国产欧美一区二区成人 | 国产精品久久久久久久久免费丝袜 | 青青久久网 | 亚洲福利av | 一级一级一级毛片 | 成人午夜sm精品久久久久久久 | 91久久国产综合久久91精品网站 | 一级欧美一级日韩 | 奇米影 | 中文字幕在线资源 | 九九久久精品视频 | 国产午夜精品美女视频明星a级 | 国产99精品 | 中文字幕一区二区在线观看 | 中文字幕一区二区三区免费视频 | 精品久久香蕉国产线看观看亚洲 | 成人不卡视频 | 亚洲成人久久久 | 国产精品久久777777 | 中文字幕亚洲一区 | 国产精品jizz在线观看麻豆 | 国产伦精品久久久一区二区三区 | 日韩一区二区不卡 | 操操操操操操操 | aaa在线| 日韩3级| 麻豆视频国产 | 91破解版在线 | 亚洲 | 欧美福利视频 | 精品视频一区二区三区四区 | 91.com在线| 欧美国产在线一区 | 精品在线不卡 | 欧美日韩一区二区三区在线观看 | 精品国产区 | 欧美一区二区三区在线 | 综合久久综合 | 乱人伦xxxx国语对白 | 欧美日韩成人在线 | 精品一区二区三区在线观看 | 四虎免费看黄 | 一级片免费视频 | 日韩欧美国产一区二区 | 91精品国产综合久久久久久丝袜 | 成人在线播放 | 在线观看免费av电影 | 第一色站 | 日本淫视频 | 亚洲精品久久久久国产 | 九九精品久久久 | 超碰首页| 999国产在线 | 亚洲精品99 | 激情网五月天 | 色接久久| 国产亚洲精品美女久久久久久久久久 | 国产亚洲精品成人av久久影院 | 天天操一操 | 美女福利视频网站 | 国产成人午夜高潮毛片 | 国产综合区 | www.在线播放| 亚洲男人的天堂在线观看 | 91麻豆产精品久久久久久 | 成人一区二区三区四区 | 久久久久久亚洲 | 国产精品一区久久久 | 欧美日韩高清不卡 | 一区二区三区自拍 | 在线观看成人高清 | 希岛爱理在线 | 三级日韩 | 亚洲美女在线视频 | 亚洲欧美国产另类 | 成人一区二区在线 | 欧美一区免费 | 午夜私人视频 | 午夜精品在线观看 | 欧美 日韩 中文字幕 | 亚洲精品粉嫩美女一区 | 欧美国产日韩在线 | 高清av一区 | 国产精品久久久久久吹潮 | 日韩成人免费电影 | 亚洲成人精品在线观看 | 色资源站 | 亚洲国产精品久久 | 日韩精品av一区二区三区 | 国产成人综合一区二区三区 | 日日操视频 | 国产精品1区2区 | 中文字幕一区二区三区乱码在线 | 黄色片网站在线观看 | 国产精品27页 | 色毛片| 欧美午夜精品久久久久免费视 | 亚洲日韩中文字幕一区 | 欧美午夜在线 | 久久久久亚洲一区二区三区 | 中文字幕在线观看不卡视频 | 男女视频在线免费观看 | 精品一二区 | 欧美日韩午夜精品 | www.成人国产 | 国产精品一区av | 欧美高清视频一区二区三区 | 黄色国产在线看 | 中文字幕精品一区久久久久 | 国产精品久久九九 | 日本高清视频一区二区三区 | 高清中文字幕 | 国产精品亚洲综合 | 自拍偷拍专区 | 精品亚洲国产成av人片传媒 | 在线观看一区二区三区四区 | 国产欧美精品 | 日本成人黄色网址 | 国产视频成人 | 91中文字幕在线观看 | a久久免费视频 | 在线日韩欧美 | 国产免费av在线 | 日韩欧美国产网站 | 99re视频 | 午夜视频免费网站 | 国产二区三区 | 久久99精品国产.久久久久 | 成人在线看片 | 久久精品久久久 | 亚洲综合区 | 君岛美绪一区二区三区在线视频 | 久久综合九色综合欧美狠狠 | 蜜桃臀一区二区三区 | 色视频网站在线观看 | 成人在线黄色 | 日韩视频网 | 中文字幕亚洲精品 | 中文在线一区 | 国产成人精品一区二区 | 国产精品一任线免费观看 | 有码在线| www久| 99热这里有 | 国产精品久久久久久久久免费 | 日韩一区二区在线观看 | 久久国产亚洲 | 欧美日韩国产一区二区三区在线观看 | 欧美与黑人午夜性猛交久久久 | 免费a爱片猛猛 | 午夜精品91| 天天干天天草 | 国产精品三级久久久久久电影 | 欧美极品一区 | 婷婷色狠狠 | 日韩成人免费视频 | 国产香蕉97碰碰久久人人九色 | 天天草狠狠干 | 国产成人免费视频网站高清观看视频 | 成人免费影院 | 欧美成人h版在线观看 | 欧美日韩一区二区三区在线观看 | 日韩一区中文字幕 | 青娱乐av| 久草美女 | 夜夜久久| 亚洲一区二区三区四区的 | 91精品国产综合久久久久久丝袜 | 中文字幕 在线观看 | 国产在线一 | 欧美色欧美亚洲另类七区 | 国产区最新 | 伊人免费视频 | 成人 在线 | 国产免费自拍 | 中文二区 | 天天操天天曰 | 久一在线 | 国产精品久久久久精 |