精品欧美一区二区三区在线观看 _久久久久国色av免费观看性色_国产精品久久在线观看_亚洲第一综合网站_91精品又粗又猛又爽_小泽玛利亚一区二区免费_91亚洲精品国偷拍自产在线观看 _久久精品视频在线播放_美女精品久久久_欧美日韩国产成人在线

GAFT:一個使用Python實現(xiàn)的遺傳算法框架

開發(fā) 后端 算法
對于遺傳算法來說,就非常適合寫個相對固定的框架然后給算子、參數(shù)等留出空間以便對新算法進行測試和改進。于是就動手寫了個遺傳算法的小框架gaft,本文對此框架進行一些介紹并分別以一個一維搜索和二維搜索為例子對使用方法進行了介紹。

前言

最近需要用到遺傳算法來優(yōu)化一些東西,最初是打算直接基于某些算法實現(xiàn)一個簡單的函數(shù)來優(yōu)化,但是感覺單純寫個非通用的函數(shù)運行后期改進算子或者別人使用起來都會帶來困難,同時遺傳算法基本概念和運行流程相對固定,改進也一般通過編碼機制,選擇策略,交叉變異算子以及參數(shù)設(shè)計等方面,對于算法的整體結(jié)構(gòu)并沒有大的影響。這樣對于遺傳算法來說,就非常適合寫個相對固定的框架然后給算子、參數(shù)等留出空間以便對新算法進行測試和改進。于是就動手寫了個遺傳算法的小框架gaft,本文對此框架進行一些介紹并分別以一個一維搜索和二維搜索為例子對使用方法進行了介紹。

  • GitHub: https://github.com/PytLab/gaft
  • PyPI: https://pypi.python.org/pypi/gaft

目前框架只是完成了最初的版本,比較簡陋,內(nèi)置了幾個基本的常用算子,使用者可以根據(jù)接口規(guī)則實現(xiàn)自定義的算子并放入框架中運行。我自己也會根據(jù)自己的需求后續(xù)添加更多的改進算子,同時改進框架使其更加通用.

 

正文

遺傳算法介紹

這里我對遺傳算法的基本概念進行簡要的介紹,并闡述gaft的設(shè)計原則。

簡單而言,遺傳算法使用群體搜索技術(shù),將種群代表一組問題的可行解,通過對當(dāng)前種群施加選擇,交叉,變異等一些列遺傳操作來產(chǎn)生新一代的種群,并逐步是種群進化到包含近似全局***解的狀態(tài)。下面我將遺傳學(xué)和遺傳算法相關(guān)術(shù)語的對應(yīng)關(guān)系總結(jié)一下:

術(shù)語 

 

算法特點

  1. 以決策變量的編碼作為運算對象,使得優(yōu)化過程借鑒生物學(xué)中的概念成為可能
  2. 直接以目標函數(shù)作為搜索信息,確定搜索方向很范圍,屬于無導(dǎo)數(shù)優(yōu)化
  3. 同時使用多個搜索點的搜索信息,算是一種隱含的并行性
  4. 是一種基于概率的搜索技術(shù)
  5. 具有自組織,自適應(yīng)和自學(xué)習(xí)等特性

算法流程

 

gaft 設(shè)計原則

由于遺傳算法的流程相對固定,我們優(yōu)化算法基本上也是在流程整體框架下對編碼機制,算子,參數(shù)等進行修改,因此在寫框架的時候,我便想把那些固定的遺傳算子,適應(yīng)度函數(shù)寫成接口,并使用元類、裝飾器等方式實現(xiàn)對接口的限制和優(yōu)化,這樣便可以方便后續(xù)自定義算符和適應(yīng)度函數(shù)定制。***將各個部分組合到一起組成一個engine然后根據(jù)算法流程運行遺傳算法對目標進行優(yōu)化.

這樣我們便脫離每次都要寫遺傳算法流程的繁瑣,每次只需要像寫插件一樣實現(xiàn)自己的算子和適應(yīng)度函數(shù)便可以將其放入gaft開始對算法進行測試或者對目標函數(shù)進行優(yōu)化了。

GAFT文件結(jié)構(gòu)

此部分我對自己實現(xiàn)的框架的整體結(jié)構(gòu)進行下介紹.

  1.  
  2. ├── LICENSE 
  3.  
  4. ├── MANIFEST.in 
  5.  
  6. ├── README.rst 
  7.  
  8. ├── examples 
  9.  
  10. │ ├── ex01 
  11.  
  12. │ └── ex02 
  13.  
  14. ├── gaft 
  15.  
  16. │ ├── __init__.py 
  17.  
  18. │ ├── __pycache__ 
  19.  
  20. │ ├── analysis 
  21.  
  22. │ ├── components 
  23.  
  24. │ ├── engine.py 
  25.  
  26. │ ├── operators 
  27.  
  28. │ └── plugin_interfaces 
  29.  
  30. ├── setup.cfg 
  31.  
  32. ├── setup.py 
  33.  
  34. └── tests 
  35.  
  36. ├── flip_bit_mutation_test.py 
  37.  
  38. ├── gaft_test.py 
  39.  
  40. ├── individual_test.py 
  41.  
  42. ├── population_test.py 
  43.  
  44. ├── roulette_wheel_selection_test.py 
  45.  
  46. └── uniform_crossover_test.py  

目前的文件結(jié)果如上所示,

  • /gaft/components中定義了內(nèi)置的個體和種群類型,提供了兩種不同的遺傳編碼方式:二進制編碼和實數(shù)編碼。
  • /gaft/plugin_interfaces中是插件接口定義,所有的算子定義以及on-the-fly分析的接口規(guī)則都在里面,使用者可以根據(jù)此來編寫自己的插件并放入到engine中。
  • /gaft/operators里面是內(nèi)置遺傳算子,他們也是遵循/gaft/plugin_interfaces中的規(guī)則進行編寫,可以作為編寫算子的例子。其中算子我目前內(nèi)置了roulette wheel選擇算子,uniform 交叉算子和flipbit變異算子,使用者可以直接使用內(nèi)置算子來使用gaft對自己的問題進行優(yōu)化。
  • /gaft/analysis里面是內(nèi)置的on-the-fly分析插件,他可以在遺傳算法迭代的過程中對迭代過程中的變量進行分析,例如我在里面內(nèi)置了控制臺日志信息輸出,以及迭代適應(yīng)度值的保存等插件方便對進化曲線作圖。
  • /gaft/engine便是遺傳算法的流程控制模塊了,他將所有的之前定義的各個部分組合到一起使用遺傳算法流程進行優(yōu)化迭代。

使用GAFT

下面我就以兩個函數(shù)作為例子來使用GAFT對目標函數(shù)進行優(yōu)化.

一維搜索

首先我們先對一個簡單的具有多個局部極值的函數(shù)進行優(yōu)化,我們來使用內(nèi)置的算子求函數(shù) f(x)=x+10sin(5x)+7cos(4x)的極大值,x的取值范圍為[0,10]

1. 先導(dǎo)入需要的模塊

  1. from math import sin, cos 
  2.  
  3.   
  4.  
  5. # 導(dǎo)入種群和內(nèi)置算子相關(guān)類 
  6.  
  7. from gaft import GAEngine 
  8.  
  9. from gaft.components import GAIndividual 
  10.  
  11. from gaft.components import GAPopulation 
  12.  
  13. from gaft.operators import RouletteWheelSelection 
  14.  
  15. from gaft.operators import UniformCrossover 
  16.  
  17. from gaft.operators import FlipBitMutation 
  18.  
  19.   
  20.  
  21. # 用于編寫分析插件的接口類 
  22.  
  23. from gaft.plugin_interfaces.analysis import OnTheFlyAnalysis 
  24.  
  25.   
  26.  
  27. # 內(nèi)置的存檔適應(yīng)度函數(shù)的分析類 
  28.  
  29. from gaft.analysis.fitness_store import FitnessStoreAnalysis 
  30.  
  31.   
  32.  
  33. # 我們將用兩種方式將分析插件注冊到遺傳算法引擎中  

2. 創(chuàng)建引擎

  1. # 定義種群 
  2.  
  3. indv_template = GAIndividual(ranges=[(0, 10)], encoding='binary', eps=0.001) 
  4.  
  5. population = GAPopulation(indv_template=indv_template, size=50) 
  6.  
  7.   
  8.  
  9. # 創(chuàng)建遺傳算子 
  10.  
  11. selection = RouletteWheelSelection() 
  12.  
  13. crossover = UniformCrossover(pc=0.8, pe=0.5) 
  14.  
  15. mutation = FlipBitMutation(pm=0.1) 
  16.  
  17.   
  18.  
  19. # 創(chuàng)建遺傳算法引擎, 分析插件和適應(yīng)度函數(shù)可以以參數(shù)的形式傳入引擎中 
  20.  
  21. engine = GAEngine(population=population, selection=selection, 
  22.  
  23.                   crossover=crossover, mutation=mutation, 
  24.  
  25.                   analysis=[FitnessStoreAnalysis])  

3. 自定義適應(yīng)度函數(shù)

可以通過修飾符的方式將,適應(yīng)度函數(shù)注冊到引擎中。

  1. @engine.fitness_register 
  2.  
  3. def fitness(indv): 
  4.  
  5.     x, = indv.variants 
  6.  
  7.     return x + 10*sin(5*x) + 7*cos(4*x)  

4. 自定義on-the-fly分析插件

也可以通過修飾符在定義的時候直接將插件注冊到引擎中

  1. @engine.analysis_register 
  2.  
  3. class ConsoleOutputAnalysis(OnTheFlyAnalysis): 
  4.  
  5.     interval = 1 
  6.  
  7.   
  8.  
  9.     def register_step(self, ng, population, engine): 
  10.  
  11.         best_indv = population.best_indv(engine.fitness) 
  12.  
  13.         msg = 'Generation: {}, best fitness: {:.3f}'.format(ng, engine.fitness(best_indv)) 
  14.  
  15.         engine.logger.info(msg) 
  16.  
  17.   
  18.  
  19.     def finalize(self, population, engine): 
  20.  
  21.         best_indv = population.best_indv(engine.fitness) 
  22.  
  23.         x = best_indv.variants 
  24.  
  25.         y = engine.fitness(best_indv) 
  26.  
  27.         msg = 'Optimal solution: ({}, {})'.format(x, y) 
  28.  
  29.         engine.logger.info(msg)  

5. Ok, 開始跑(優(yōu)化)吧!

我們這里跑100代種群.

  1. if '__main__' == __name__: 
  2.  
  3.     # Run the GA engine. 
  4.  
  5.     engine.run(ng=100)  

內(nèi)置的分析插件會在每步迭代中記錄得到的每一代的***個體,并生成數(shù)據(jù)保存。

繪制一下函數(shù)本身的曲線和我們使用遺傳算法得到的進化曲線:

 

優(yōu)化過程動畫:

 

二維搜索

下面我們使用GAFT內(nèi)置算子來搜索同樣具有多個極值點的二元函數(shù)f(x)=ysin(2πx)+xcos(2πy) 的***值,x, y 的范圍為 [−2,2] .

這里我們就不自定義分析插件了,直接使用內(nèi)置的分析類,并在構(gòu)造引擎時直接傳入.

  1. ''
  2.  
  3. Find the global maximum for binary function: f(x) = y*sim(2*pi*x) + x*cos(2*pi*y) 
  4.  
  5. ''
  6.  
  7.   
  8.  
  9. from math import sin, cos, pi 
  10.  
  11.   
  12.  
  13. from gaft import GAEngine 
  14.  
  15. from gaft.components import GAIndividual 
  16.  
  17. from gaft.components import GAPopulation 
  18.  
  19. from gaft.operators import RouletteWheelSelection 
  20.  
  21. from gaft.operators import UniformCrossover 
  22.  
  23. from gaft.operators import FlipBitMutation 
  24.  
  25.   
  26.  
  27. # Built-in best fitness analysis. 
  28.  
  29. from gaft.analysis.fitness_store import FitnessStoreAnalysis 
  30.  
  31. from gaft.analysis.console_output import ConsoleOutputAnalysis 
  32.  
  33.   
  34.  
  35. # Define population. 
  36.  
  37. indv_template = GAIndividual(ranges=[(-2, 2), (-2, 2)], encoding='binary', eps=0.001) 
  38.  
  39. population = GAPopulation(indv_template=indv_template, size=50) 
  40.  
  41.   
  42.  
  43. Create genetic operators. 
  44.  
  45. selection = RouletteWheelSelection() 
  46.  
  47. crossover = UniformCrossover(pc=0.8, pe=0.5) 
  48.  
  49. mutation = FlipBitMutation(pm=0.1) 
  50.  
  51.   
  52.  
  53. Create genetic algorithm engine. 
  54.  
  55. # Here we pass all built-in analysis to engine constructor. 
  56.  
  57. engine = GAEngine(population=population, selection=selection, 
  58.  
  59.                   crossover=crossover, mutation=mutation, 
  60.  
  61.                   analysis=[ConsoleOutputAnalysis, FitnessStoreAnalysis]) 
  62.  
  63.   
  64.  
  65. # Define fitness function
  66.  
  67. @engine.fitness_register 
  68.  
  69. def fitness(indv): 
  70.  
  71.     x, y = indv.variants 
  72.  
  73.     return y*sin(2*pi*x) + x*cos(2*pi*y) 
  74.  
  75.   
  76.  
  77. if '__main__' == __name__: 
  78.  
  79.     engine.run(ng=100)  

進化曲線:

 

二維函數(shù)面: 

 

搜索過程動畫:

 

可見目前內(nèi)置的基本算子都能很好的找到例子中函數(shù)的***點。

總結(jié)

本文主要介紹了本人開發(fā)的一個用于遺傳算法做優(yōu)化計算的Python框架,框架內(nèi)置了遺傳算法中常用的組件,包括不同編碼方式的個體,種群,以及遺傳算子等。同時框架還提供了自定義遺傳算子和分析插件的接口,能夠方便快速搭建遺傳算法流程并用于算法測試。

目前框架僅僅處于初步階段,后續(xù)會在自己使用的過程中逐步完善更多的內(nèi)置算子,是框架更加通用。本文中的兩個優(yōu)化例子均能在GitHub上找到源碼(https://github.com/PytLab/gaft/tree/master/examples)

目前的計劃:1. 添加更多的內(nèi)置算子; 2. 給內(nèi)置算子和組件添加C++ backend; 3. 并行化

參考

  • 《智能優(yōu)化算法及其MATLAB實例》
  • 《MATLAB***化計算》 
責(zé)任編輯:龐桂玉 來源: Python開發(fā)者
相關(guān)推薦

2017-10-17 14:25:56

機器學(xué)習(xí)算法優(yōu)化

2025-01-16 07:10:00

2024-09-12 10:06:21

2024-07-03 08:00:00

2017-11-16 15:25:54

Go語言算法代碼

2017-08-21 10:00:23

遺傳算法Python生物學(xué)

2020-06-11 08:32:50

Python遺傳算法代碼

2021-03-16 11:30:33

2017-09-22 15:03:08

Python遺傳算法GAFT框架

2021-03-10 15:49:20

人工智能遺傳算法

2017-07-12 14:23:25

遺傳算法java自然選擇

2020-10-26 13:42:28

Python算法垃圾

2025-06-19 02:11:00

2009-08-14 09:41:03

C#遺傳算法

2014-11-28 16:08:33

射頻識別RFID

2020-08-07 10:40:56

Node.jsexpress前端

2009-07-22 17:15:04

C#實現(xiàn)

2020-08-17 08:20:16

iOSAOP框架

2010-05-11 11:00:44

遺傳算法宋詞

2017-06-08 15:53:38

PythonWeb框架
點贊
收藏

51CTO技術(shù)棧公眾號

成人女保姆的销魂服务| 日韩在线视频线视频免费网站| 国内精品视频一区二区三区| 蜜桃av鲁一鲁一鲁一鲁俄罗斯的| 亚洲人人精品| 国产一区二区三区中文| 少妇性l交大片7724com| 中文在线最新版地址| 国产精品久久毛片| 国产综合色一区二区三区| 在线免费观看av网址| 欧美日韩四区| 在线观看欧美日韩国产| 亚洲一区二区三区黄色| 国产伊人久久| 欧美日韩久久久久| 国产在线拍揄自揄拍无码| 偷拍自拍在线| 精品一二三四在线| 欧美一级视频免费在线观看| 老熟妻内射精品一区| 亚洲精品一级二级三级| 欧美一区二区三区精品| 日韩亚洲在线视频| 俄罗斯一级**毛片在线播放| 国产精品久久夜| 青娱乐国产91| 亚欧洲精品视频| 国产精一区二区三区| 国产精品久久久久久久7电影| 日本五十路女优| 91精品国产91久久综合| 在线看片第一页欧美| yy1111111| www.神马久久| 欧美一区二区啪啪| 婷婷激情四射五月天| 亚洲精品国产精品国产| 亚洲va天堂va国产va久| 男人添女人下部视频免费| 国产福利视频在线| 国产精品私人影院| 日韩精品伦理第一区| 懂色av成人一区二区三区| 国产乱淫av一区二区三区 | 色撸撸在线视频| 国产一区二区三区探花 | 国产免费a级片| 精品国产亚洲一区二区在线观看| 欧美三区在线视频| 一区二区三区入口| 丁香久久综合| 欧美日韩一卡二卡| 日本一二区免费| 欧美成人一二区| 欧美精品在线观看一区二区| 天堂一区在线观看| 久久久加勒比| 欧美日产在线观看| 午夜免费一级片| 秋霞一区二区| 欧美精品一区在线观看| 97人妻精品一区二区三区免费| 都市激情亚洲| 日韩激情片免费| 亚洲一级中文字幕| 精品久久久久久久久久久下田 | dy888夜精品国产专区| 可以免费观看的毛片| www.性欧美| 日本一区高清不卡| 色多多视频在线观看| 自拍偷拍国产精品| 成年人视频网站免费| 高清毛片在线观看| 在线观看区一区二| 波多野结衣免费观看| 1204国产成人精品视频| 精品视频在线导航| 性爱在线免费视频| 国产精品va| 青青久久av北条麻妃海外网| 在线视频 中文字幕| 国产精品18久久久久久久久| 精品亚洲第一| a天堂中文在线88| 亚洲狼人国产精品| 91猫先生在线| 婷婷久久免费视频| 亚洲国产精品yw在线观看 | 污污视频在线免费看| 久久久久国产精品厨房| 2025韩国大尺度电影| 久久五月精品中文字幕| 91极品美女在线| 成人高清在线观看视频| 亚洲97av| 欧美国产精品日韩| 国产男人搡女人免费视频| 国产伦精品一区二区三区免费迷 | 深夜福利在线观看直播| 中文字幕一区视频| 男人操女人免费软件| 电影91久久久| 亚洲欧洲中文天堂| 久久久久亚洲AV| 琪琪一区二区三区| 国产一区二区自拍| 成人国产免费电影| 欧美在线观看一区| 中国一级特黄录像播放| 午夜激情久久| 国产精品999| 人妻va精品va欧美va| 国产精品久久久久久久久久久免费看| 青青草国产免费| 电影中文字幕一区二区| 国产亚洲精品综合一区91| 久久夜色精品亚洲| 国产美女精品一区二区三区| 日本一区二区久久精品| 日本天码aⅴ片在线电影网站| 欧美主播一区二区三区| 国产亚洲无码精品| 欧美先锋影音| 亚洲综合精品一区二区| 超碰免费在线观看| 欧美日韩国产中字| 大尺度在线观看| 欧美福利在线| 成人看片人aa| 黄色在线免费| 欧美日韩国产另类一区| www色com| 日本伊人午夜精品| 日本欧美色综合网站免费| 人狥杂交一区欧美二区| 精品成人免费观看| 久久久久久久久精| 国产精品亚洲专一区二区三区 | 国产98在线|日韩| av中文字幕在线观看| 欧美丰满嫩嫩电影| 一级黄色片日本| 理论电影国产精品| 亚洲国产精品视频一区| 激情亚洲小说| 久久精品99无色码中文字幕 | 免费成人美女女| 日韩精品视频中文在线观看| 青青操免费在线视频| fc2成人免费人成在线观看播放| www.xxx麻豆| 国产精品传媒| 青草热久免费精品视频| 国产三区四区在线观看| 波多野结依一区| 另类图片国产| 明星裸体视频一区二区| 成人爱爱网址| 中文字幕久久久| 在线视频欧美亚洲| 亚洲婷婷国产精品电影人久久| 成人av毛片在线观看| 亚洲精品小说| 国产精品日韩二区| 伊伊综合在线| 中文字幕日韩av综合精品| 91精品国产综合久| 一区二区免费看| 国产人妻人伦精品1国产丝袜| 国产一区二区三区久久| 日本一区高清不卡| 麻豆国产一区| 欧美激情精品久久久久久免费印度| 色噜噜一区二区三区| 精品露脸国产偷人在视频| 国产免费一区二区三区网站免费| 免费看日韩精品| 97在线免费视频观看| 欧美久久香蕉| 国产日韩欧美成人| 超碰97免费在线| 国产亚洲人成a一在线v站| 国产又粗又猛又黄又爽无遮挡| 伊人性伊人情综合网| 国产精品久久久免费观看| 日韩精品亚洲专区| 麻豆传媒网站在线观看| 伊人久久综合影院| 3d动漫精品啪啪一区二区三区免费 | 在线观看成人黄色| 精品国自产在线观看| 色先锋aa成人| 久久久久久久久久久久国产| 国产欧美一区二区精品忘忧草| 一起草最新网址| 久久xxxx精品视频| 国产高清不卡无码视频| 精品国产乱码久久久久久果冻传媒| 5g国产欧美日韩视频| 欧美性理论片在线观看片免费| 欧美成人免费在线视频| 欧美日韩在线中文字幕| 精品国免费一区二区三区| 日本三级一区二区三区| 亚洲电影激情视频网站| 女性裸体视频网站| www国产成人| 一二三区视频在线观看| 久久91精品国产91久久小草| 无罩大乳的熟妇正在播放| 亚洲综合自拍| 污视频在线免费观看一区二区三区 | 成人无码www在线看免费| 国产高清不卡一区二区| 日本久久精品一区二区| 99国产精品视频免费观看一公开| 天天干天天操天天干天天操| 国产一区二区三区天码| 国产精品免费一区二区三区四区| 国产不卡精品| 国产精品亚洲欧美导航| 欧美成人黑人| 91超碰caoporn97人人| 污污片在线免费视频| 久久精品成人一区二区三区| 国产黄在线观看| 亚洲欧美日韩高清| 青青色在线视频| 日韩电影中文字幕av| 亚洲精品久久久久久久久久| 欧美一区二区三区视频在线 | 欧美精品久久久久久久久46p| 国产亚洲精品福利| 成人午夜福利一区二区| 2023国产精品| 国产偷人妻精品一区| 不卡一区在线观看| 在线免费看黄色片| 不卡av在线网| 亚洲精品中文字幕在线播放| www.亚洲色图.com| 99久久国产精| 久久毛片高清国产| 国产三级av在线播放| 欧美高清在线一区二区| 免费视频91蜜桃| 国产精品青草久久| 国产人与禽zoz0性伦| 亚洲欧美另类久久久精品2019| 中文字幕五月天| 一区二区三区中文字幕精品精品 | 国产精品免费观看高清| 久久综合社区| 欧美日韩一区二区三区在线观看免| 亚洲大片精品免费| 日韩理论片在线观看| 成人看的视频| 国产成人三级视频| 国产精品99一区二区| 黄色大片中文字幕| 亚洲欧美卡通另类91av| 午夜免费一区二区| 精品一区二区三区久久久| 久久综合桃花网| 不卡av在线免费观看| www.av天天| 亚洲欧洲性图库| 精品少妇一二三区| 欧美日韩亚洲精品内裤| 中文字幕二区三区| 日韩免费视频线观看| 神马久久高清| 精品国偷自产在线视频| 牛牛电影国产一区二区| 国产999在线| 日韩成人一区| 高清不卡一区二区三区| 欧美激情在线精品一区二区三区| 一级二级三级欧美| 亚洲手机在线| 另类小说色综合| 高清视频一区二区| 亚洲色成人网站www永久四虎| 亚洲天堂中文字幕| 日韩av大片在线观看| 欧美理论片在线| 蜜臀av在线观看| 日日狠狠久久偷偷四色综合免费| 欧美野外wwwxxx| 国产精品久久久久久久久久久久 | 亚洲成人网av| av免费在线一区二区三区| 欧美精品18videosex性欧美| 亚洲精品.com| 国产精品日韩欧美一区二区三区| 外国成人在线视频| 51xx午夜影福利| 日韩不卡一区二区| 制服丝袜在线第一页| 国产精品欧美精品| 久久久久久久久久免费视频| 欧美疯狂性受xxxxx喷水图片| 凸凹人妻人人澡人人添| www.久久久久| 欧美粗大gay| 国产伦精品一区二区| 久久精品亚洲人成影院 | 精品人妻在线播放| 777久久久精品| 黄色av网站在线看| 97久久精品视频| 欧美电影院免费观看| 水蜜桃一区二区| 午夜在线精品| 黄色录像a级片| 亚洲综合激情小说| 99在线小视频| www.国产精品一二区| 成人啊v在线| 欧美日韩在线高清| 欧美一级专区| 成人性生活免费看| 亚洲高清免费视频| 亚洲成人中文字幕在线| 久久久精品视频在线观看| 成人一区视频| 亚洲精品一区二区三区樱花 | 国产精品福利网| 妖精一区二区三区精品视频| 黄网站欧美内射| 丁香桃色午夜亚洲一区二区三区| 疯狂撞击丝袜人妻| 欧美巨大另类极品videosbest | 国产精品无码永久免费888| 亚洲午夜18毛片在线看| 亚洲黄色av女优在线观看 | 欧美伦理影视网| 欧美亚洲国产视频小说| 亚州综合一区| 超碰97人人射妻| 久久噜噜亚洲综合| 免费又黄又爽又猛大片午夜| 亚洲视频专区在线| 日韩精品第一| 亚洲一卡二卡区| 精品一区二区三区免费观看| 九九热视频在线免费观看| 在线不卡一区二区| 伊人手机在线| 国产综合第一页| 免费亚洲一区| 日本综合在线观看| 欧美日韩国产另类不卡| 在线中文免费视频| 国产精品白丝jk白祙| 亚洲视频www| 国产人妻大战黑人20p| 欧美三级欧美一级| 国产在线观看a| 国产精品v欧美精品∨日韩| 亚洲理伦在线| 天天躁日日躁aaaxxⅹ| 欧美日本精品一区二区三区| 国产精品久久久久久福利| 99精彩视频在线观看免费| 亚洲国产美女| 无码 人妻 在线 视频| 9191成人精品久久| mm视频在线视频| 亚洲成人18| 国产精品12区| 一级一片免费看| 美女少妇精品视频| 欧美黑人巨大videos精品| 亚洲激情在线观看视频| 亚洲免费观看视频| 天堂а在线中文在线无限看推荐| 国产精品极品在线| 影音先锋中文字幕一区二区| 国产精品jizz| 69堂国产成人免费视频| 96av在线| 一区二区视频在线播放| 成人激情小说乱人伦| 中文字幕av影视| 性视频1819p久久| 久久麻豆精品| 国产真实乱人偷精品| 欧美日韩久久久| 黄色漫画在线免费看| 一区二区欧美日韩| 97精品国产露脸对白| 国产精品无码白浆高潮| 欧美一区第一页| 综合激情网站| 卡一卡二卡三在线观看| 亚洲а∨天堂久久精品喷水| 日韩欧美专区|