精品欧美一区二区三区在线观看 _久久久久国色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ù)棧公眾號

欧美男人操女人视频| 日本成人一区二区三区| 不卡中文一二三区| 欧日韩精品视频| 亚洲一区bb| 99久久久国产精品无码网爆 | 精品大片一区二区| 日本久久电影网| 欧美极品一区二区| 色屁屁影院www国产高清麻豆| 免费黄色成人| 欧美日韩精品免费| 中国一级大黄大黄大色毛片| 丁香六月天婷婷| 香蕉久久国产| 色伦专区97中文字幕| 亚洲国产精品三区| a在线免费观看| 91麻豆免费在线观看| 国产脚交av在线一区二区| 亚洲色图27p| 超碰在线成人| 欧美中文字幕不卡| www插插插无码免费视频网站| 性xxxx视频| 卡一卡二国产精品| 久久久久久久999| 欧美偷拍一区二区三区| 精品中文字幕一区二区三区| 欧美日韩亚洲一区二| 亚洲精品一区国产精品| 日本激情视频网站| 老司机免费视频一区二区三区| 久久免费观看视频| 中文字幕在线观看二区| 国产精品久av福利在线观看| 欧美午夜激情在线| 日本一本草久p| 国产中文字幕在线视频| 成人免费视频一区| 国产有码在线一区二区视频| 久久一区二区三区视频| 91精品精品| 亚洲欧美日韩精品久久亚洲区| 日本高清免费在线视频| 四虎4545www精品视频| 一区二区三区.www| 青青草原成人| 欧美一区二区公司| 激情欧美日韩一区二区| 国产精品jizz在线观看麻豆| 精品少妇久久久久久888优播| 日韩精品久久| 亚洲人精品午夜在线观看| 国产一卡二卡三卡四卡| 久久精品xxxxx| 日韩人在线观看| 欧美日韩福利在线| 成人video亚洲精品| 972aa.com艺术欧美| 99久热re在线精品视频| 国产精品无码免费播放| 免费欧美在线视频| 国产福利视频一区| 精品视频一二三区| 玖玖玖国产精品| 88xx成人精品| 丰满少妇乱子伦精品看片| 国产在线成人| 欧美激情久久久久久| 免费在线观看一级片| 亚洲一区二区| 欧美老少做受xxxx高潮| 一级黄色录像视频| 午夜日韩激情| 欧美大片在线影院| 青娱乐免费在线视频| 中国成人一区| 日韩一区二区三区在线播放| www.xx日本| 国产高清一区二区| 精品国产一区二区三区久久久狼| 国产视频123区| 国产精品一线天粉嫩av| 亚洲视频国产视频| 日本一二三不卡视频| 色777狠狠狠综合伊人| 最新国产成人av网站网址麻豆| 欧美日韩国产一二三区| 久久久久美女| 欧美国产精品日韩| 一区二区三区视频免费看| 欧美激情视频一区二区三区免费| 欧美黄色片在线观看| 精品无码久久久久| 国产欧美日韩综合一区在线播放 | 男女性高潮免费网站| 重囗味另类老妇506070| 丝袜亚洲另类欧美重口| 欧美精品一区二区蜜桃| 99成人在线| 日本sm极度另类视频| 中文字幕久久久久| 国产精品一区免费在线观看| 91在线精品视频| 丁香六月天婷婷| 2020国产成人综合网| 日韩欧美电影一区二区| 精品孕妇一区二区三区| 亚洲成人一区二区在线观看| 国产午夜伦鲁鲁| 国产欧美自拍| 欧美xxxxx牲另类人与| 日韩片在线观看| 91视频久久| 久久不射电影网| 久久国产精品免费看| 日韩综合小视频| 亚洲一区二区三区乱码aⅴ蜜桃女| 色网站在线免费观看| 一区二区三区四区中文字幕| 一区二区三区 日韩| 香蕉久久精品| 久久久久在线观看| 国产精品永久久久久久久久久| 久久久久久亚洲综合影院红桃| 国产视频在线观看网站| 日本黄色成人| 自拍偷拍亚洲精品| 中文字幕xxxx| 久久一区二区视频| www.爱色av.com| 国产suv精品一区| 成人97在线观看视频| 夜夜爽8888| 国产精品久久久一区麻豆最新章节| 日韩av资源在线| 日韩激情啪啪| 91po在线观看91精品国产性色| 超碰人人人人人人| 亚洲精品国久久99热| 两性午夜免费视频| 图片区亚洲欧美小说区| 成人激情综合网| 国产在线一区二区视频| 欧美精品vⅰdeose4hd| 美国黑人一级大黄| 欧美精品成人久久| 秋霞蜜臀av久久电影网免费| 欧美第一淫aaasss性| www.xxx国产| 亚洲精品久久久久久国产精华液| 国产在线视频三区| 欧美aⅴ99久久黑人专区| 亚洲一区二区三区视频播放| av片在线观看免费| 精品免费视频.| 亚洲国产精一区二区三区性色| 风流少妇一区二区| 欧日韩免费视频| 欧洲亚洲一区二区三区| 国产91精品久久久久久| 玖玖综合伊人| 欧美日韩一区二区欧美激情| 波多野结衣家庭教师在线观看| 久久精品国产秦先生| 日本xxx免费| 欧美一级大片在线视频| 欧美国产日韩一区二区| 全部免费毛片在线播放一个| 欧美日韩亚洲高清| 亚洲AV无码成人精品区明星换面| 裸体在线国模精品偷拍| 蜜臀av.com| 久久97精品| 国产精品夫妻激情| а√天堂资源地址在线下载| 精品999久久久| 一二三区免费视频| 亚洲欧美另类在线| 国产伦精品一区二区三区精品| 国产日韩亚洲| 中国成人亚色综合网站| 9国产精品午夜| 日本电影亚洲天堂| 久久亚洲天堂| 亚洲国产精品久久91精品| 无码人妻av一区二区三区波多野| 国产精品传媒在线| 国产又粗又猛又色| 免费成人美女在线观看| 欧美视频在线第一页| 亚洲综合小说图片| 高清在线观看日韩| 日韩视频在线观看视频| 加勒比色综合久久久久久久久| 全球成人中文在线| 1区2区3区在线观看| 精品少妇一区二区三区在线播放 | 亚洲成人一区二区| 四季av中文字幕| 成人免费视频app| 国产九九在线观看| 99国产一区| 精品91一区二区三区| 亚洲日本三级| 成人av免费看| 日韩毛片免费看| 欧美一级成年大片在线观看| 国产一二区在线| 亚洲日本中文字幕| 蜜桃91麻豆精品一二三区| 欧美综合欧美视频| 日本午夜视频在线观看| 一区二区三区在线观看动漫| 亚洲综合欧美综合| 2欧美一区二区三区在线观看视频| 天堂av8在线| 久久久久久久欧美精品| 欧美视频免费看欧美视频| 7777久久香蕉成人影院| 日韩激情视频| 久草成人在线| 精品一区久久| 国产欧美自拍一区| 96久久精品| 二区三区精品| 国产日韩欧美在线观看| 777午夜精品电影免费看| 8090成年在线看片午夜| 国产精品一品| 欧美理论电影在线观看| 国产原创在线观看| 日韩在线视频二区| 国产福利电影在线| 精品视频在线播放| 性感美女一级片| 亚洲国产日韩欧美在线图片| 亚洲经典一区二区三区| 欧美大片拔萝卜| www.com在线观看| 精品欧美一区二区三区精品久久| 国产伦精品一区二区三区免.费 | 美女毛片一区二区三区四区| 国产日韩精品久久| 国语一区二区三区| 国产一区二区中文字幕免费看| 亚洲码欧美码一区二区三区| 2020国产精品久久精品不卡| 国产日韩中文在线中文字幕| 91九色精品视频| 韩国三级大全久久网站| 91在线观看免费网站| 深夜激情久久| 成人片在线免费看| 粉嫩一区二区三区四区公司1| 国产精华一区| 日韩影视高清在线观看| 欧美日韩电影一区二区三区| 国产免费播放一区二区| 日韩国产精品一区二区三区| 日韩精品首页| 国产日本欧美在线| 欧美体内she精视频在线观看| 国产爆乳无码一区二区麻豆| 一区二区自拍| 情侣黄网站免费看| 美女视频网站久久| 激情在线观看视频| 国产69精品久久99不卡| 国产精品久久久久久久无码| 久久久不卡影院| 亚洲色图第四色| 亚洲免费色视频| 国产性xxxx高清| 欧美中文字幕一区二区三区 | 精品肉丝脚一区二区三区| 欧美日韩视频免费播放| 最新中文字幕在线观看视频| 8v天堂国产在线一区二区| 亚洲精品视频专区| 亚洲欧美一区二区精品久久久 | 欧美精品少妇videofree| jizz一区二区三区| 精品无人区一区二区| 日本一区二区三区在线视频| 久久久久国产| 波多野结衣乳巨码无在线| 蜜臀国产一区二区三区在线播放 | av在线国产精品| 国产九区一区在线| 成人免费av| 欧美中日韩在线| 蜜臀久久久久久久| 在线xxxxx| 国产精品久久久久四虎| 国产污视频在线看| 欧美三级蜜桃2在线观看| 亚洲狼人综合网| 国产一区二区三区三区在线观看 | 亚洲国产日韩在线一区模特| 日日噜噜噜噜人人爽亚洲精品| 欧美裸体bbwbbwbbw| 午夜国产在线视频| 欧美精品在线视频观看| gogo亚洲高清大胆美女人体 | 超碰人人草人人| 99久久婷婷国产精品综合| 日韩精品一区二区亚洲av性色| 欧美日在线观看| av网站在线免费看| 中文字幕日本精品| 热色播在线视频| 97夜夜澡人人双人人人喊| 欧美系列电影免费观看| 久久视频这里有精品| 国产一区二区0| 亚洲一二三精品| 色婷婷综合久久久| 三级网站在线看| 操91在线视频| 欧美aaa级| 日本不卡在线观看| 亚洲深夜激情| 成熟妇人a片免费看网站| 亚洲欧美日韩人成在线播放| 精品人妻一区二区三区潮喷在线| 精品国产99国产精品| 成人在线视频亚洲| 国产精品自产拍在线观看中文| 亚洲人和日本人hd| 黄色www网站| 波多野洁衣一区| 麻豆亚洲av成人无码久久精品| 欧美男男青年gay1069videost| 黄网站在线观看| 欧美在线一区二区三区四| 麻豆视频一区| 国产96在线 | 亚洲| 国产成人亚洲综合a∨婷婷 | 欧美一区亚洲| 色18美女社区| 国产精品久久久久久久久免费樱桃 | 国产美女18xxxx免费视频| 亚洲国产成人自拍| 波多野结衣二区三区| 精品一区二区三区电影| 忘忧草在线日韩www影院| 精品视频在线观看| 亚洲一区免费| 51妺嘿嘿午夜福利| 在线观看日韩国产| 婷婷免费在线视频| 91精品视频在线播放| 午夜精品电影| 国产精品嫩草69影院| 亚洲视频小说图片| 国产日韩免费视频| 九九热最新视频//这里只有精品| 免费看日产一区二区三区| 中文字幕の友人北条麻妃| 国产精品一区二区在线观看不卡| 国产黄在线免费观看| 亚洲成av人乱码色午夜| 最新欧美色图| 亚州欧美一区三区三区在线| 精品一区二区在线免费观看| 欧美激情图片小说| 精品国精品国产尤物美女| 欧美xxxhd| 日韩欧美精品久久| 国产一区在线观看麻豆| 国产一级特黄视频| 国产丝袜视频一区| 国产人妖一区| 日本中文字幕一级片| 97se亚洲国产综合自在线不卡| 久久久久亚洲视频| 久久国产精品久久精品| 日韩成人动漫在线观看| xxxx一级片| 中文字幕一区二区5566日韩| 亚洲欧美另类视频| 国产精品第一第二| 亚洲午夜一级| 成人片黄网站色大片免费毛片| 欧美美女视频在线观看| 9999精品成人免费毛片在线看| 日韩福利视频| 国产成人精品综合在线观看| 成年人视频在线免费看| 日韩亚洲成人av在线| 欧美日韩看看2015永久免费 | 美女在线免费视频| 久久夜色精品国产欧美乱极品| 亚洲一线在线观看| 96精品视频在线| 91精品国产乱码久久久久久| 欧美一区二区三区成人精品| 宅男噜噜噜66一区二区66|