• <tr id="yyy80"></tr>
  • <sup id="yyy80"></sup>
  • <tfoot id="yyy80"><noscript id="yyy80"></noscript></tfoot>
  • 99热精品在线国产_美女午夜性视频免费_国产精品国产高清国产av_av欧美777_自拍偷自拍亚洲精品老妇_亚洲熟女精品中文字幕_www日本黄色视频网_国产精品野战在线观看 ?

    數(shù)據(jù)庫(kù)系統(tǒng)中應(yīng)用A*算法的程序模板研究

    2017-03-28 01:55:58林峰鄭愛媛
    關(guān)鍵詞:課程表數(shù)據(jù)庫(kù)系統(tǒng)特征值

    林峰,鄭愛媛

    (福建商學(xué)院 信息管理工程系,福建 福州,350012)

    數(shù)據(jù)庫(kù)系統(tǒng)中應(yīng)用A*算法的程序模板研究

    林峰,鄭愛媛

    (福建商學(xué)院 信息管理工程系,福建 福州,350012)

    數(shù)據(jù)庫(kù)系統(tǒng)已經(jīng)獲得了廣泛的應(yīng)用,借助它能處理現(xiàn)實(shí)生活中許多復(fù)雜的事務(wù)性的數(shù)據(jù)工作,A*算法也有許多成功的應(yīng)用,但是,對(duì)結(jié)合利用數(shù)據(jù)庫(kù)技術(shù)與A*算法來(lái)解決實(shí)際問(wèn)題的探索做得還很不夠。A*算法的搜索空間大,往往需要花費(fèi)幾十分鐘甚至更長(zhǎng)的時(shí)間才能搜索到問(wèn)題的解,因此,采用A*算法的數(shù)據(jù)庫(kù)系統(tǒng)可能由于等待執(zhí)行結(jié)果的時(shí)間太長(zhǎng)而不適合實(shí)際需要。針對(duì)這些不足,設(shè)計(jì)了一套在數(shù)據(jù)庫(kù)系統(tǒng)中應(yīng)用A*算法的程序模板,套用這個(gè)模板開發(fā)的自動(dòng)排課系統(tǒng)能夠在很短的時(shí)間內(nèi)處理好一個(gè)典型的中學(xué)排課工作,滿足實(shí)際需求。結(jié)果表明,該程序模板具有指導(dǎo)性價(jià)值。

    A*算法;次級(jí)啟發(fā)函數(shù);數(shù)據(jù)庫(kù)技術(shù);自動(dòng)排課

    A*算法是人工智能領(lǐng)域中最重要的算法之一,它的經(jīng)典應(yīng)用是解決數(shù)碼問(wèn)題[1]。目前,A*算法主要用于解決路徑規(guī)劃問(wèn)題[2],在電子游戲和無(wú)人機(jī)飛行控制等領(lǐng)域都有很多應(yīng)用[3-4]。A*算法取得如此大的成功,使得研究利用A*算法來(lái)解決現(xiàn)實(shí)生活中其他問(wèn)題的工作變得很有必要。A*算法是狀態(tài)空間圖中的啟發(fā)式搜索方法,狀態(tài)空間圖中的節(jié)點(diǎn)就是狀態(tài)。在計(jì)算機(jī)應(yīng)用程序中,狀態(tài)由數(shù)據(jù)構(gòu)成。在數(shù)碼問(wèn)題或路徑規(guī)劃等問(wèn)題中,構(gòu)成狀態(tài)的數(shù)據(jù)很簡(jiǎn)單,一般用二維或三維數(shù)組來(lái)表示。因此,在應(yīng)用程序的運(yùn)行期間,這些數(shù)據(jù)可以一直保持在內(nèi)存中,應(yīng)用程序的運(yùn)行速度較快,等待輸出結(jié)果的時(shí)間較短?,F(xiàn)實(shí)生活中的其他問(wèn)題需要處理的數(shù)據(jù)可能很復(fù)雜,數(shù)據(jù)量也很大,這些問(wèn)題一般要借助于數(shù)據(jù)庫(kù)系統(tǒng)來(lái)實(shí)現(xiàn)。數(shù)據(jù)庫(kù)系統(tǒng)中對(duì)數(shù)據(jù)的訪問(wèn)和操作都要涉及到物理層面的讀寫過(guò)程,并且所有的數(shù)據(jù)不能同時(shí)保持在內(nèi)存中,因此,利用A*算法的數(shù)據(jù)庫(kù)系統(tǒng)的應(yīng)用程序的運(yùn)行速度很慢,需要花費(fèi)很長(zhǎng)時(shí)間來(lái)等待輸出結(jié)果,限制了這類應(yīng)用程序的推廣和應(yīng)用。

    利用A*算法的數(shù)據(jù)庫(kù)系統(tǒng)把狀態(tài)保存在數(shù)據(jù)庫(kù)表中,每一個(gè)狀態(tài)都是由多條記錄組成的。這樣的系統(tǒng)在進(jìn)行狀態(tài)擴(kuò)展時(shí),以下兩個(gè)環(huán)節(jié)影響了它的工作效率,造成等待運(yùn)行結(jié)果的時(shí)間過(guò)長(zhǎng):(1)構(gòu)造子狀態(tài)的數(shù)據(jù)時(shí),需要從父狀態(tài)進(jìn)行大量的數(shù)據(jù)拷貝,這需要進(jìn)行大量的、重復(fù)的把數(shù)據(jù)插入到數(shù)據(jù)庫(kù)表中的操作;(2)為了避免搜索過(guò)程陷入循環(huán),如果擴(kuò)展出來(lái)的新狀態(tài)與任何已經(jīng)存在的狀態(tài)相同,那么必須拋棄這個(gè)新狀態(tài),這需要進(jìn)行狀態(tài)之間的比較,即把組成一個(gè)狀態(tài)的多條記錄與組成另一個(gè)狀態(tài)的多條記錄進(jìn)行比較,會(huì)涉及到大量的、重復(fù)的對(duì)數(shù)據(jù)表的查詢操作。

    利用數(shù)據(jù)庫(kù)技術(shù)與巧妙的設(shè)計(jì),能夠有效減少上述兩個(gè)瓶頸環(huán)節(jié)造成的不利影響。針對(duì)第一個(gè)環(huán)節(jié),本文提供了一個(gè)能在狀態(tài)之間實(shí)現(xiàn)數(shù)據(jù)共享的設(shè)計(jì)方案,避免了數(shù)據(jù)拷貝過(guò)程。因?yàn)?,父子狀態(tài)之間絕大多的數(shù)據(jù)都是相同的,以8數(shù)碼問(wèn)題為例,不相同的數(shù)據(jù)只占全部數(shù)據(jù)的2/9。針對(duì)第二個(gè)環(huán)節(jié),本文提供了一個(gè)利用狀態(tài)特征值進(jìn)行狀態(tài)比較的設(shè)計(jì)方案,狀態(tài)特征值是一個(gè)簡(jiǎn)短的字符串,它與狀態(tài)一一對(duì)應(yīng),并且從狀態(tài)中提取特征值的過(guò)程簡(jiǎn)單、容易實(shí)現(xiàn)。老狀態(tài)的特征值存放在專門的數(shù)據(jù)庫(kù)表中,把新狀態(tài)的特征值作為SQL語(yǔ)言的select語(yǔ)句中的where子句的條件,就能夠很容易實(shí)現(xiàn)新狀態(tài)與老狀態(tài)的比較。這兩個(gè)設(shè)計(jì)方案具有普遍性,因此,可以作為程序模板來(lái)套用。

    1.A*算法

    圖1是狀態(tài)擴(kuò)展的模型。算子表示動(dòng)作,動(dòng)作執(zhí)行前后的環(huán)境稱為狀態(tài)。算子使?fàn)顟B(tài)發(fā)生變化,從執(zhí)行前狀態(tài)得到執(zhí)行后狀態(tài),執(zhí)行后狀態(tài)稱為執(zhí)行前狀態(tài)的子狀態(tài),這個(gè)過(guò)程稱為狀態(tài)擴(kuò)展。特定的執(zhí)行前狀態(tài)可以通過(guò)不同的算子(參數(shù))得到多個(gè)不同的執(zhí)行后狀態(tài),所以,狀態(tài)和子狀態(tài)之間是1n的關(guān)系。連續(xù)多次的狀態(tài)擴(kuò)展,構(gòu)成了一個(gè)有向圖,即狀態(tài)空間圖,狀態(tài)是圖的節(jié)點(diǎn),算子是圖的邊。

    圖1 狀態(tài)擴(kuò)展模型Fig.1 State-expansion model

    A*算法是狀態(tài)空間圖中的啟發(fā)式搜索方法。搜索的起始節(jié)點(diǎn)記為n0,搜索過(guò)程中的某個(gè)中間節(jié)點(diǎn)記為n,定義以下符號(hào):

    f (n) = g(n)+h(n):從n0經(jīng)過(guò)n到達(dá)目標(biāo)節(jié)點(diǎn)的最小路徑的代價(jià);

    g(n):從n0到n的一個(gè)最小代價(jià)路徑的代價(jià);

    h(n):n到目標(biāo)節(jié)點(diǎn)最小代價(jià)路徑的實(shí)際代價(jià)。

    在n處,有多條可以選擇的搜索路徑,與之對(duì)應(yīng)的有一系列 f (n),選擇 f (n)值最小的路徑進(jìn)行搜索,就最有可能以最少的代價(jià)得到問(wèn)題的解。這個(gè)搜索過(guò)程稱為啟發(fā)式搜索, f (n)稱為啟發(fā)函數(shù)。A*算法的具體步驟:

    1)生成一個(gè)只包含開始節(jié)點(diǎn)n0的搜索圖G,把n0放在一個(gè)叫OPEN的列表上;

    2)生成一個(gè)列表CLOSED,它的初始值為空;

    3)如果OPEN為空,則失敗退出;

    4)選擇OPEN上的第一個(gè)節(jié)點(diǎn),把它從OPEN中移入CLOSED,稱該節(jié)點(diǎn)為n;

    5)如果n是目標(biāo)節(jié)點(diǎn),順著G中從n到n0的指針找到一條路徑,獲得解,成功退出;

    6)擴(kuò)展節(jié)點(diǎn)n,生成其后繼節(jié)點(diǎn)集M。丟棄M中與G中任何一個(gè)節(jié)點(diǎn)值相同的成員,把M中其余的成員添加到G中,使它們成為n的后繼;

    7)把新加入G中的節(jié)點(diǎn)加入到OPEN中,對(duì)M的每一個(gè)已在OPEN中或CLOSED中的成員m,如果到目前為止到達(dá)m的最好路徑通過(guò)n,就把它的指針指向n。對(duì)已在CLOSED中的M的每一個(gè)成員,重定向它在G中的每一個(gè)后繼,以使它們順著到目前為止發(fā)現(xiàn)的最好路徑指向它們的祖先;

    8)根據(jù) f (n)值,以從小到大的順序重新安排OPEN中節(jié)點(diǎn)的順序;

    9)返回第3步。

    2.實(shí)現(xiàn)數(shù)據(jù)共享的程序模板

    在狀態(tài)之間實(shí)現(xiàn)數(shù)據(jù)共享的目的是:(1)子狀態(tài)能最大限度地重用祖先狀態(tài)的數(shù)據(jù);(2)在擴(kuò)展子狀態(tài)時(shí),通過(guò)采用盡量少的補(bǔ)償操作使其他狀態(tài)的數(shù)據(jù)不會(huì)發(fā)生改變。采用3個(gè)方法來(lái)實(shí)現(xiàn)這個(gè)目的。

    (1)有效組織狀態(tài)的數(shù)據(jù)。按照下列的公式對(duì)狀態(tài)的數(shù)據(jù)進(jìn)行有效的組織:

    狀態(tài)的數(shù)據(jù)=往祖先路徑上每一個(gè)狀態(tài)的重用數(shù)據(jù)+本狀態(tài)的專用數(shù)據(jù)

    所有狀態(tài)的數(shù)據(jù)保存在名字為tblData數(shù)據(jù)庫(kù)表中(根據(jù)具體情況,狀態(tài)數(shù)據(jù)也可以保存在多個(gè)數(shù)據(jù)庫(kù)表中),每一個(gè)狀態(tài)由若干條記錄組成。在tblData中添加名字為stateId和stateId0的兩個(gè)字段,它們的數(shù)據(jù)類型都為整型,其中stateId用來(lái)標(biāo)識(shí)記錄所屬的狀態(tài)。利用stateId和stateId0字段值的組合(必有一個(gè)字段值為-1,另一個(gè)字段值為狀態(tài)號(hào)n)把tblData表中記錄的分為重用和專用兩種:

    ·重用的記錄:stateId=n并且stateId0=-1,這些記錄可以被子孫狀態(tài)共享;

    ·專用的記錄:stateId=-1并且stateId0=n,這些記錄只能被狀態(tài)自身使用。

    初始狀態(tài)的所有記錄都被初始化為stateId=0,stateId0=-1。

    圖2是一個(gè)狀態(tài)空間圖,圖中的節(jié)點(diǎn)等同于狀態(tài)。從初始狀態(tài)S0依次擴(kuò)展出子狀態(tài)S1、S2、…、S10,從狀態(tài)S1依次擴(kuò)展出子狀態(tài)S11、S12、…、S16,從狀態(tài)S12依次擴(kuò)展出子狀態(tài)S20、S21、…、S28,等等。

    圖2 狀態(tài)空間圖Fig.2 State-space graph

    按照上述公式,讀取任意狀態(tài)數(shù)據(jù)的SQL語(yǔ)言的select語(yǔ)句(僅列出where子句):

    S0:where (stateId=0 and stateId0=-1) or (stateId =-1 and stateId0=0)

    S2:where(stateId=0 and stateId0=-1) or (stateId=2 and (stateId0=-1) or (stateId=-1 and stateId0=2)

    S16:where (stateId=0 and stateId0=-1) or (stateId=1 and stateId0=-1) or (stateId=16 and stateId0=-1) or (stateId =-1 and stateId0=16)

    (2)對(duì)受影響狀態(tài)進(jìn)行數(shù)據(jù)補(bǔ)償。在擴(kuò)展?fàn)顟B(tài)的過(guò)程中,祖先狀態(tài)的數(shù)據(jù)可能會(huì)被改變,這會(huì)影響到包括該祖先狀態(tài)在內(nèi)的其他狀態(tài)的數(shù)據(jù)。因此,采用delete取代update來(lái)改變祖先狀態(tài)的數(shù)據(jù),采用insert對(duì)受到影響的狀態(tài)進(jìn)行數(shù)據(jù)補(bǔ)償。以S21為例,其祖先狀態(tài)依次是S12、S1和S0。假設(shè)在擴(kuò)展出S21時(shí),刪除了S0中的某條記錄(stateId=0,stateId0=-1),那么必須按表1中列出的情況對(duì)受影響的狀態(tài)進(jìn)行補(bǔ)償。

    表1 補(bǔ)償方法

    需要補(bǔ)償?shù)臓顟B(tài)分為一類狀態(tài)和二類狀態(tài)。一類狀態(tài)是當(dāng)前狀態(tài)S21的祖先,對(duì)它們的補(bǔ)償不能被當(dāng)前狀態(tài)S21重用。結(jié)合上述列出的SQL語(yǔ)句,可以看出,擴(kuò)展S21前后,其他狀態(tài)的數(shù)據(jù)都保持不變。

    進(jìn)行數(shù)據(jù)補(bǔ)償?shù)年P(guān)鍵點(diǎn)是:(1)確定需要補(bǔ)償?shù)臓顟B(tài);(2)對(duì)它們進(jìn)行分類。假設(shè),新擴(kuò)展出的狀態(tài)為S_n,被改變數(shù)據(jù)的祖先狀態(tài)為S_0。參考圖2中的方位,S_n處于下方,S_0處于上方。程序模板的偽代碼如下:

    Being

    按S_0到S_n的路徑,提取節(jié)點(diǎn),存放到list中;

    For i=0 to n-2 Do

    Begin

    提取list[i]的直接孩子節(jié)點(diǎn),存放到list_c中;

    For each chlidNode in list_c Do

    Begin

    If chlidNode屬于list Then

    chlidNode是一類節(jié)點(diǎn)

    else

    chlidNode是二類節(jié)點(diǎn);

    End;

    End;

    End。

    (3)重構(gòu)初始狀態(tài)。隨著狀態(tài)擴(kuò)展的不斷進(jìn)行,一方面,狀態(tài)空間圖(實(shí)際上是一棵樹)的層次不斷增加,需要進(jìn)行補(bǔ)償?shù)臓顟B(tài)的數(shù)量會(huì)急劇增加,大量的補(bǔ)償操作造成系統(tǒng)的運(yùn)行速度變慢;另一方面,讀取狀態(tài)數(shù)據(jù)的SQL語(yǔ)言中的select語(yǔ)句的where子句中的or運(yùn)算符的數(shù)量也會(huì)急劇增加,最終將會(huì)超過(guò)數(shù)據(jù)庫(kù)系統(tǒng)的限制,造成系統(tǒng)異常。因此,必須在適當(dāng)?shù)那闆r下,選擇某個(gè)比較好的狀態(tài)(可以是最接近目標(biāo)的狀態(tài))進(jìn)行重構(gòu),即拋棄其他所有的狀態(tài),把選中的狀態(tài)作為執(zhí)行新一輪A*算法的初始狀態(tài)。

    3.利用特征值進(jìn)行狀態(tài)比較的程序模板

    綜合A*算法的其他要點(diǎn),設(shè)計(jì)tblAStar數(shù)據(jù)庫(kù)表,如表2所示。

    表2 tbl AStar

    程序模板的偽代碼如下:

    Begin

    把tblAStar表清空;

    擴(kuò)展子狀態(tài),存放到list中;

    For each子狀態(tài)in list Do

    Begin

    val_stateStr = 子狀態(tài)特征值;

    執(zhí)行select count(*) from tblAStar where state Str = val_stateStr;

    If 返回值為0 Then

    把val_stateStr插入talAStar中

    Else

    拋棄子狀態(tài);

    End;

    End。

    每一個(gè)狀態(tài)都是由數(shù)量相同的記錄的數(shù)據(jù)集組成,對(duì)兩個(gè)狀態(tài)進(jìn)行比較涉及這兩組數(shù)據(jù)集的比較運(yùn)算,并且需要依次讀取每一個(gè)被比較的狀態(tài)的數(shù)據(jù),這非常耗費(fèi)計(jì)算機(jī)系統(tǒng)的資源。按照這個(gè)程序模板來(lái)開發(fā)程序,完全避免了上述缺點(diǎn),取而代之的是簡(jiǎn)單的提取狀態(tài)特征值的運(yùn)算和一個(gè)高效的SQL語(yǔ)句的執(zhí)行運(yùn)算,大大提高了應(yīng)用程序的工作效率。新擴(kuò)展出來(lái)的有效的狀態(tài)也被不斷地添加到tblAStar表中,為隨后的擴(kuò)展所需要進(jìn)行的狀態(tài)比較操作準(zhǔn)備好了數(shù)據(jù)。

    4.程序模板的應(yīng)用實(shí)例——中小學(xué)排課系統(tǒng)

    由于約束條件非??量?,全部合理地安排好學(xué)校的課程表是一個(gè)非常困難并且耗時(shí)的工作。目前,在排課工作中,計(jì)算機(jī)排課軟件一般只起輔助作用,大部分工作都由人工完成。開發(fā)能夠完全自動(dòng)排課的應(yīng)用軟件很有必要。自動(dòng)排課應(yīng)用軟件屬于數(shù)據(jù)庫(kù)系統(tǒng)軟件。以下介紹套用這兩個(gè)程序模板開發(fā)自動(dòng)排課系統(tǒng)的幾個(gè)技術(shù)要點(diǎn)。

    (1)排課工作的切入點(diǎn)和數(shù)據(jù)前處理。中小學(xué)的課程表是一種二維表,由星期一到星期五組成課程表的列,由第1節(jié)到第8節(jié)組成課程表的行。用wd表示行,用ln表示列,用wlCell表示課程表中的某一節(jié)課。表3是某個(gè)老師課程表的一個(gè)樣例。

    表3 某個(gè)老師的課程表

    中小學(xué)的特點(diǎn)是:學(xué)生固定在班級(jí)中上課;每一節(jié)課占用的時(shí)間段是固定的;每一節(jié)課在特定的教室上課;班級(jí)的每一門課程由固定的老師任課;每一個(gè)任課老師可以負(fù)責(zé)多個(gè)班級(jí)。綜合上述因素,得出結(jié)論:首先,中小學(xué)的課程表問(wèn)題是由學(xué)生、任課老師和教室這三個(gè)資源共同約束的同時(shí)段任務(wù)安排問(wèn)題;其次,任課老師、課程、班級(jí)(學(xué)生)和教室的組合數(shù)據(jù)是排課工作的切入點(diǎn)。為了保證教學(xué)進(jìn)程同步,必須按照輪次安排任課老師的課程,即合理地平攤每個(gè)輪次的wlCell空間,把任課老師每個(gè)輪次所有班級(jí)的課程都安排在這個(gè)空間之中。把任課老師、課程、班級(jí)和排課輪次綁定在一起的數(shù)據(jù)稱為teacher-topic-class-classroom-turnNo數(shù)據(jù),簡(jiǎn)稱ttcct。一個(gè)ttcct代表一節(jié)待安排的課。合理地分派ttcct的wlCell空間是實(shí)現(xiàn)同步教學(xué)的保證。圖3是為ttcct分派wlCell空間的一種方案,其中turnNo表示排課輪次,與ttcct相關(guān)的課程每周上3次課[5]。

    圖3 分派ttcct的wlCell空間的一種方案Fig.3 An example of assigning wlCell to ttcct

    如果wlCell被教師的其他活動(dòng)(“教務(wù)例會(huì)”“市集體備課”“校集體備課”等)占用,或者被班級(jí)的固定課(“班會(huì)”“體鍛”等)占用,或者處于限制排課的范圍之內(nèi)(例如,某些課不能排在上午的第1節(jié),等等),那么根據(jù)排課的資源約束條件,該wlCell是不可排課的。因此,ttcct的wlCell空間分為可排課和不可排課兩部分,可排課的wlCell數(shù)量與全體的wlCell數(shù)量的比值稱為排課容易度,記為ISRatio,它的取值范圍是0%~100%,值越大,越容易安排。如果ISRatio等于0,意味著ttcct沒(méi)有地方安排,排課失敗。ttcct是靜態(tài)數(shù)據(jù),可以預(yù)先處理好,需要時(shí)查表獲取。

    從軟件設(shè)計(jì)的角度,把排課的任務(wù)歸結(jié)為以下3個(gè)步驟:

    1)構(gòu)造全校的每一節(jié)課對(duì)應(yīng)的ttcct;

    2)按照保證教學(xué)進(jìn)程同步的要求,確定每個(gè)ttcct的可排課的wlCell空間;

    3)利用A*算法,解決排課資源沖突,把ttcct安排到某個(gè)可以排課的wlCell中。

    (2)狀態(tài)與擴(kuò)展。全校的ttcct可以分為已經(jīng)排入課程表和未排入課程表兩個(gè)部分。已經(jīng)排入課程表的記為ttcctwl,未安排入課程表中的還是記為ttcct。把它們分別放在名為tblData_ttcctwl和tblData_ttcct的兩個(gè)數(shù)據(jù)庫(kù)表中。因此,每一個(gè)狀態(tài)的數(shù)據(jù)同時(shí)存放在tblData_ttcctwl表和tblData_ttcct表中。初始狀態(tài)是,tblData_ttcctwl表中的記錄數(shù)為0,所有的ttcct都在tblData_ttcct表中;目標(biāo)狀態(tài)是,tblData_ttcct表中的記錄數(shù)為0,所有的ttcct都在tblData_ttcctwl表中。

    自動(dòng)排課系統(tǒng)的基本動(dòng)作是,從tblData_ttcct表中提取一個(gè)ttcct,依次與ttcct的每一個(gè)可排課的wlCell結(jié)合成ttcctwl,并把它放入tblData_ttcctwl表中。實(shí)現(xiàn)這個(gè)過(guò)程的前提是必須滿足排課資源約束條件。所以,執(zhí)行基本動(dòng)作之前,必須根據(jù)具體情況,執(zhí)行以下3個(gè)輔助動(dòng)作:

    ·如果ttcct對(duì)應(yīng)的班級(jí)在wlCell已經(jīng)排課,那么,要預(yù)先將ttcctwl_c從tblData_ttcctwl表中刪除,將ttcctwl_c對(duì)應(yīng)的ttcct加入到tblData_ttcct表中;

    ·如果ttcct對(duì)應(yīng)的老師在wlCell已經(jīng)排課,那么,要預(yù)先將ttcctwl_t從tblData_ttcctwl表中刪除,將ttcctwl_t對(duì)應(yīng)的ttcct加入到tblData_ttcct表中;

    ·如果ttcct對(duì)應(yīng)的教室在wlCell已經(jīng)排課,那么,要預(yù)先將ttcctwl_cr從tblData_ttcctwl表中刪除,將ttcctwl_cr對(duì)應(yīng)的ttcct加入到tblData_ttcct中。

    基本動(dòng)作導(dǎo)致tblData_ttcct表中的記錄數(shù)減1,輔助動(dòng)作導(dǎo)致tblData_ttcct表中的記錄數(shù)加1。但是輔助動(dòng)作的執(zhí)行是有條件的,所以一系列動(dòng)作執(zhí)行的結(jié)果可能導(dǎo)致tblData_ttcct表中的記錄數(shù)趨向0,從而達(dá)到目標(biāo)。

    上述動(dòng)作將產(chǎn)生新的狀態(tài),并且可能刪除某個(gè)祖先狀態(tài)的數(shù)據(jù),因此,可以套用數(shù)據(jù)共享的程序模板進(jìn)行補(bǔ)償。要注意,因?yàn)闋顟B(tài)數(shù)據(jù)保存在兩個(gè)數(shù)據(jù)庫(kù)表中,所以要同時(shí)對(duì)這兩個(gè)數(shù)據(jù)庫(kù)表進(jìn)行補(bǔ)償。

    (3)啟發(fā)函數(shù)和次級(jí)啟發(fā)函數(shù)。啟發(fā)函數(shù)f(n)=g(n)+h(n)。排課系統(tǒng)不關(guān)心過(guò)程,只關(guān)心最后結(jié)果,所以可以把啟發(fā)函數(shù)簡(jiǎn)化為f(n)=h(n),把狀態(tài)n在tblData_ttcct表中的記錄的數(shù)量作為h(n)的值,因?yàn)樗軌蚝饬繝顟B(tài)n與目標(biāo)狀態(tài)之間的距離。應(yīng)該選取h(n)最小的狀態(tài)n進(jìn)行擴(kuò)展。但是,此時(shí),tblData_ttcct表中還有h(n)條記錄,即還有h(n)個(gè)ttcct,還需要在它們之間選擇一個(gè)最優(yōu)的ttcct進(jìn)行擴(kuò)展。對(duì)于數(shù)據(jù)庫(kù)系統(tǒng)而言,需要進(jìn)行第二次選擇的環(huán)節(jié)具有普遍性,因此,引入次級(jí)啟發(fā)的概念,相應(yīng)地定義次級(jí)啟發(fā)函數(shù):

    f’(i) =h’(i)

    i表示構(gòu)成狀態(tài)的數(shù)據(jù)集中的某個(gè)元素,h’(i)表示與這個(gè)元素有關(guān)的數(shù)據(jù)。

    ttcct的ISRatio值越小,排課難度越大,越應(yīng)該優(yōu)先被安排,對(duì)安排全部的ttcct越有利。所以,把ISRatio作為h’(i)的值,在h(n)個(gè)的ttcct中,選擇h’(i)最小的ttcct,利用它進(jìn)行狀態(tài)擴(kuò)展。

    (4)狀態(tài)特征值。狀態(tài)特征值是一個(gè)字符串,對(duì)它的要求是提取速度快,字符串短。排課系統(tǒng)的狀態(tài)特征值濃縮了某個(gè)狀態(tài)的全校課程表信息。狀態(tài)特征值應(yīng)該只包含課程表中最基本的信息,所以可以從班級(jí)課程表來(lái)提取狀態(tài)特征值。用字符串stateStr表示狀態(tài)特征值,從全校班級(jí)課程表中提取狀態(tài)特征值的偽代碼如下:

    Begin

    初始化stateStr為空;

    按既定順序提取班級(jí)課程表,存放到list中;

    For each班級(jí)課程表 in list Do

    Begin

    For ln=1 to 8 Do

    Begin

    For wd=1 to 5 Do

    Begin

    str=wlCell[ln,wd]課程名稱的第一個(gè)字符;

    stateStr += str;

    End;

    End;

    End;

    End。

    如果某個(gè)wlCell還沒(méi)有安排課程,那么課程名稱可以用空格或下劃線等代替。一般情況下,每個(gè)班級(jí)課程表中有40節(jié)課(每周5天,每天8節(jié)),如果所有的課程名稱的第一個(gè)漢字都不相同,可以只提取第一個(gè)漢字加入到狀態(tài)特征值的字符串中。以全校12個(gè)班級(jí)計(jì),狀態(tài)特征值的字符串長(zhǎng)度是40*12*2=960。如果用一個(gè)英文字母來(lái)表示課程的名稱,狀態(tài)特征值的字符串長(zhǎng)度就會(huì)減半,為480個(gè)字符。

    5.結(jié)論與后續(xù)工作

    套用本文提供的這兩個(gè)程序模板開發(fā)的自動(dòng)排課軟件已經(jīng)在福州市第36中學(xué)使用。這是一所典型的初級(jí)中學(xué),有3個(gè)年段,12個(gè)班級(jí),每個(gè)班級(jí)每周40節(jié)課。設(shè)置好基本數(shù)據(jù)之后,自動(dòng)排課軟件能夠在8分鐘左右的時(shí)間內(nèi)自動(dòng)安排好整個(gè)學(xué)校的課程表,完全滿足學(xué)校的要求。后續(xù)的工作是研究如何選擇最好的狀態(tài)進(jìn)行重構(gòu),以便更快地搜索到目標(biāo)。另外,狀態(tài)特征值的字符串長(zhǎng)度可能會(huì)很長(zhǎng),超過(guò)數(shù)據(jù)庫(kù)系統(tǒng)中基本表的字符型字段的長(zhǎng)度限制,目前的做法是把狀態(tài)特征值拆分為若干個(gè)子字符串以適應(yīng)數(shù)據(jù)庫(kù)系統(tǒng)的要求,這會(huì)造成tblAStar的表結(jié)構(gòu)不統(tǒng)一,不利于應(yīng)用程序的通用性的要求。所以,有必要對(duì)狀態(tài)特征值進(jìn)行深入研究。

    [1]NILSSON N J. 人工智能[M].北京:機(jī)械工業(yè)出版社, 2000 .

    [2]VAN M D. A museum visitors guide with the A~*pathfinding algorithm[C].上海:2011 IEEE International Conference on Computer Science and Automation Engineering(CSAE 2011),2001.

    [3]張程,肖大薇,張盈謙.基于區(qū)域搜索的A*算法在游戲?qū)街械膽?yīng)用研究[J].電子設(shè)計(jì)工程,2014(13):15-17.

    [4]肖自兵,袁冬莉,屈耀紅.基于A~*定長(zhǎng)搜索算法的多無(wú)人機(jī)協(xié)同航跡規(guī)劃[J].飛行力學(xué), 2012(01):92-96.

    [5]林峰.模板比對(duì)法實(shí)現(xiàn)中小學(xué)自動(dòng)排課[J].福建電腦,2008,24(12):183-185.

    (責(zé)任編輯:楊成平)

    The Application of A*Algorithm Program Template for Database System

    LIN Feng, ZHENG Ai-yuan

    (Department of Information Management & Engineering,Fujian Commercial College, Fuzhou 350012, China)

    Database system has been widely applied, dealing with many complex data processing in real life. A*algorithm also has many successful applications, but there is a lot of room for development in using database technology and A*algorithm to tackle practical problems. A*algorithm search space is large and often takes tens of minutes or even longer time to search for the solution. Therefore, a database system using A*algorithm is impractical because it requires considerable time to wait for executive results. Therefore, a set of program template which applies A*algorithm to database is proposed to solve above mentioned problems. An automatic course timetabling system based on program template is designed to solve a typical high school course scheduling problem. The results show that program template demonstrates practical value of proposed method.

    A*algorithm; secondary heuristic function; database technology; automatic course timetabling

    2017-01-22

    2016年福建省中青年教師教育科研項(xiàng)目(科技類)“利用狀態(tài)空間的啟發(fā)式搜索法實(shí)現(xiàn)自動(dòng)排課系統(tǒng)”(JAT160578)。

    林峰(1966-),男,福建福州人,講師,碩士。研究方向:計(jì)算機(jī)軟件編程。

    TP311.138

    A

    2096-3300(2017)01-0094-06

    猜你喜歡
    課程表數(shù)據(jù)庫(kù)系統(tǒng)特征值
    課程表
    一類帶強(qiáng)制位勢(shì)的p-Laplace特征值問(wèn)題
    單圈圖關(guān)聯(lián)矩陣的特征值
    超萌小鹿課程表
    童話世界(2019年17期)2019-07-04 15:15:36
    數(shù)據(jù)庫(kù)系統(tǒng)shell腳本應(yīng)用
    微細(xì)銑削工藝數(shù)據(jù)庫(kù)系統(tǒng)設(shè)計(jì)與開發(fā)
    實(shí)時(shí)數(shù)據(jù)庫(kù)系統(tǒng)數(shù)據(jù)安全采集方案
    青年課程表
    金色年華(2016年8期)2016-02-28 01:39:58
    核反應(yīng)堆材料數(shù)據(jù)庫(kù)系統(tǒng)及其應(yīng)用
    基于商奇異值分解的一類二次特征值反問(wèn)題
    在线观看免费高清a一片| 无限看片的www在线观看| 91老司机精品| 亚洲国产中文字幕在线视频| 欧美丝袜亚洲另类 | 欧美性长视频在线观看| 国产成人免费无遮挡视频| 欧美精品av麻豆av| 中文字幕最新亚洲高清| 国产成人欧美在线观看 | 999久久久国产精品视频| 久久国产精品影院| 午夜福利影视在线免费观看| 在线国产一区二区在线| 国产激情欧美一区二区| 怎么达到女性高潮| 国产在线精品亚洲第一网站| 淫妇啪啪啪对白视频| 夜夜躁狠狠躁天天躁| 国产精品 欧美亚洲| 可以免费在线观看a视频的电影网站| 亚洲欧美激情综合另类| 成年人黄色毛片网站| 中文欧美无线码| 亚洲五月婷婷丁香| 欧美乱妇无乱码| 久久精品成人免费网站| 一级,二级,三级黄色视频| 制服诱惑二区| 久久精品成人免费网站| 中国美女看黄片| 91国产中文字幕| 这个男人来自地球电影免费观看| 男人操女人黄网站| 亚洲人成电影免费在线| 操美女的视频在线观看| 精品欧美一区二区三区在线| 操美女的视频在线观看| 久久香蕉激情| 久99久视频精品免费| 日本撒尿小便嘘嘘汇集6| 日本vs欧美在线观看视频| 99热国产这里只有精品6| 欧美黄色淫秽网站| 国产成人欧美在线观看 | 中国美女看黄片| 亚洲成av片中文字幕在线观看| 国产精品久久久人人做人人爽| 国产免费av片在线观看野外av| 国产免费av片在线观看野外av| 天天躁狠狠躁夜夜躁狠狠躁| 精品亚洲成a人片在线观看| av线在线观看网站| 纯流量卡能插随身wifi吗| 丁香欧美五月| 老汉色∧v一级毛片| 国产精品乱码一区二三区的特点 | 涩涩av久久男人的天堂| 国产精品一区二区在线不卡| 亚洲av日韩在线播放| 精品国产美女av久久久久小说| 欧美日韩亚洲高清精品| 亚洲专区字幕在线| 久久久国产一区二区| 大香蕉久久成人网| 亚洲av成人av| 亚洲av成人不卡在线观看播放网| 亚洲一区二区三区不卡视频| 精品欧美一区二区三区在线| 十八禁人妻一区二区| 亚洲精品美女久久av网站| 大型黄色视频在线免费观看| 又黄又粗又硬又大视频| 大片电影免费在线观看免费| 午夜福利在线观看吧| 亚洲第一青青草原| 美女视频免费永久观看网站| 99精品在免费线老司机午夜| 精品久久蜜臀av无| 啪啪无遮挡十八禁网站| 1024香蕉在线观看| 午夜激情av网站| 精品国内亚洲2022精品成人 | 午夜成年电影在线免费观看| 狂野欧美激情性xxxx| 久久久久国内视频| 啦啦啦 在线观看视频| 涩涩av久久男人的天堂| 亚洲成人免费电影在线观看| 9191精品国产免费久久| 午夜久久久在线观看| 在线观看日韩欧美| 丰满迷人的少妇在线观看| 如日韩欧美国产精品一区二区三区| 高清视频免费观看一区二区| tube8黄色片| 999精品在线视频| 建设人人有责人人尽责人人享有的| 亚洲中文日韩欧美视频| 高潮久久久久久久久久久不卡| 校园春色视频在线观看| 久久久国产成人免费| 亚洲av欧美aⅴ国产| av有码第一页| 岛国毛片在线播放| 国产一区在线观看成人免费| 免费黄频网站在线观看国产| 丝袜在线中文字幕| 亚洲精品国产区一区二| 亚洲专区国产一区二区| 91在线观看av| 国精品久久久久久国模美| 国产片内射在线| 老司机午夜福利在线观看视频| 亚洲成a人片在线一区二区| 久9热在线精品视频| 最新的欧美精品一区二区| 国产成人精品久久二区二区91| 亚洲人成77777在线视频| 岛国毛片在线播放| 精品人妻熟女毛片av久久网站| 欧美黑人精品巨大| 中文字幕人妻丝袜一区二区| 久久精品人人爽人人爽视色| 狠狠婷婷综合久久久久久88av| 人成视频在线观看免费观看| 老鸭窝网址在线观看| 国产欧美日韩一区二区精品| x7x7x7水蜜桃| 女人被狂操c到高潮| 亚洲欧洲精品一区二区精品久久久| 国产成人av激情在线播放| 久久 成人 亚洲| 色婷婷久久久亚洲欧美| 亚洲三区欧美一区| 搡老岳熟女国产| 91麻豆精品激情在线观看国产 | 国产精品国产av在线观看| 成年人免费黄色播放视频| 18禁美女被吸乳视频| 久久精品亚洲av国产电影网| 久99久视频精品免费| 国产亚洲欧美98| 正在播放国产对白刺激| 看黄色毛片网站| 欧美不卡视频在线免费观看 | 高清毛片免费观看视频网站 | 亚洲中文av在线| 天堂中文最新版在线下载| 日韩大码丰满熟妇| 99香蕉大伊视频| 成人三级做爰电影| 欧美最黄视频在线播放免费 | 亚洲精品乱久久久久久| 一级毛片女人18水好多| 国产精品久久久久成人av| 久久久久久免费高清国产稀缺| 国产真人三级小视频在线观看| 日韩三级视频一区二区三区| av网站免费在线观看视频| 国产成人av教育| 国产高清videossex| netflix在线观看网站| 国产视频一区二区在线看| 涩涩av久久男人的天堂| 亚洲精品美女久久av网站| 一边摸一边抽搐一进一小说 | videos熟女内射| 宅男免费午夜| 国产成人精品久久二区二区91| 国产国语露脸激情在线看| 中文字幕最新亚洲高清| 免费在线观看视频国产中文字幕亚洲| 身体一侧抽搐| av在线播放免费不卡| av有码第一页| 嫁个100分男人电影在线观看| 免费久久久久久久精品成人欧美视频| 久久国产亚洲av麻豆专区| 国产精品98久久久久久宅男小说| av中文乱码字幕在线| 另类亚洲欧美激情| 国产精品.久久久| 国产精华一区二区三区| 老司机午夜福利在线观看视频| 在线观看免费高清a一片| 一级黄色大片毛片| 国产真人三级小视频在线观看| 久久香蕉国产精品| 1024视频免费在线观看| 国产精品亚洲av一区麻豆| 18在线观看网站| 久久精品亚洲av国产电影网| 高清av免费在线| 国产成人精品久久二区二区免费| 少妇 在线观看| www.自偷自拍.com| 黄色女人牲交| 久久中文字幕人妻熟女| 91国产中文字幕| 亚洲精品国产一区二区精华液| 久久国产亚洲av麻豆专区| 精品一区二区三区视频在线观看免费 | 精品一品国产午夜福利视频| 亚洲性夜色夜夜综合| 男人操女人黄网站| 欧美大码av| 欧美性长视频在线观看| 嫩草影视91久久| 日本精品一区二区三区蜜桃| 亚洲一码二码三码区别大吗| 精品国产一区二区久久| 搡老乐熟女国产| 亚洲欧美一区二区三区久久| 精品国产亚洲在线| av在线播放免费不卡| 成人亚洲精品一区在线观看| 99国产精品一区二区蜜桃av | 亚洲精品在线美女| 成人特级黄色片久久久久久久| 真人做人爱边吃奶动态| 1024香蕉在线观看| 99热国产这里只有精品6| 韩国av一区二区三区四区| 国产一区在线观看成人免费| 国产精品免费大片| 国产精品 欧美亚洲| 亚洲精品av麻豆狂野| 动漫黄色视频在线观看| 久久精品国产亚洲av香蕉五月 | 夜夜躁狠狠躁天天躁| 欧美日韩精品网址| 男女午夜视频在线观看| 女性生殖器流出的白浆| 后天国语完整版免费观看| 欧洲精品卡2卡3卡4卡5卡区| 欧美日韩国产mv在线观看视频| 老司机靠b影院| 他把我摸到了高潮在线观看| 精品福利永久在线观看| 黄色片一级片一级黄色片| 黄片播放在线免费| 久久香蕉精品热| 国产精品国产av在线观看| 啪啪无遮挡十八禁网站| 欧美一级毛片孕妇| 搡老熟女国产l中国老女人| 女人被躁到高潮嗷嗷叫费观| 亚洲片人在线观看| 18禁美女被吸乳视频| 日本撒尿小便嘘嘘汇集6| 午夜日韩欧美国产| 少妇粗大呻吟视频| 久久久水蜜桃国产精品网| 国产精品偷伦视频观看了| 夫妻午夜视频| 女性被躁到高潮视频| 精品人妻1区二区| 亚洲中文av在线| 日韩有码中文字幕| 精品久久久久久久久久免费视频 | 久久久久视频综合| 久久 成人 亚洲| 亚洲成人免费电影在线观看| 一进一出好大好爽视频| 久久亚洲真实| 国产成人啪精品午夜网站| 欧美激情久久久久久爽电影 | 成熟少妇高潮喷水视频| 咕卡用的链子| 自线自在国产av| 日韩三级视频一区二区三区| 久久精品亚洲av国产电影网| svipshipincom国产片| 成年人午夜在线观看视频| 久久国产精品男人的天堂亚洲| 免费人成视频x8x8入口观看| 精品久久蜜臀av无| 精品久久久精品久久久| 日本五十路高清| 日韩视频一区二区在线观看| 女警被强在线播放| 国产精品电影一区二区三区 | 欧美日韩成人在线一区二区| √禁漫天堂资源中文www| 亚洲一区中文字幕在线| 日本欧美视频一区| 露出奶头的视频| 免费在线观看黄色视频的| 日日摸夜夜添夜夜添小说| 韩国精品一区二区三区| videosex国产| bbb黄色大片| 看免费av毛片| 飞空精品影院首页| 91成年电影在线观看| 国产极品粉嫩免费观看在线| 黄色毛片三级朝国网站| 免费看a级黄色片| 欧美在线一区亚洲| 老司机福利观看| 久久国产精品影院| 国产精品秋霞免费鲁丝片| 国产精品免费大片| 国产亚洲一区二区精品| 欧美激情极品国产一区二区三区| 欧美日韩一级在线毛片| 咕卡用的链子| 一a级毛片在线观看| 久久久久国内视频| xxxhd国产人妻xxx| 91字幕亚洲| 人人妻人人澡人人爽人人夜夜| 美女 人体艺术 gogo| 精品国产国语对白av| 精品视频人人做人人爽| 亚洲精品自拍成人| 亚洲欧美日韩高清在线视频| www.自偷自拍.com| 精品国产乱码久久久久久男人| 色综合欧美亚洲国产小说| 九色亚洲精品在线播放| 日韩精品免费视频一区二区三区| 免费看十八禁软件| 成人影院久久| 精品国产超薄肉色丝袜足j| 天堂√8在线中文| 操出白浆在线播放| 9191精品国产免费久久| 一级a爱片免费观看的视频| 在线观看午夜福利视频| 久久青草综合色| 无遮挡黄片免费观看| 亚洲精品自拍成人| 精品少妇久久久久久888优播| 99久久人妻综合| 51午夜福利影视在线观看| 亚洲欧洲精品一区二区精品久久久| 中文亚洲av片在线观看爽 | √禁漫天堂资源中文www| 亚洲精品国产区一区二| 一个人免费在线观看的高清视频| 十分钟在线观看高清视频www| 欧美日韩精品网址| 久久国产精品男人的天堂亚洲| 国产精品久久久久久人妻精品电影| 伦理电影免费视频| 丝袜在线中文字幕| 国产男女超爽视频在线观看| 色综合欧美亚洲国产小说| 中文亚洲av片在线观看爽 | 亚洲色图综合在线观看| 亚洲成人免费av在线播放| 啪啪无遮挡十八禁网站| 人妻丰满熟妇av一区二区三区 | 国产一区二区三区综合在线观看| 日本vs欧美在线观看视频| 亚洲一区中文字幕在线| 欧美黑人欧美精品刺激| bbb黄色大片| 超碰成人久久| 另类亚洲欧美激情| 欧美人与性动交α欧美精品济南到| 亚洲av成人一区二区三| 久久精品aⅴ一区二区三区四区| 一级作爱视频免费观看| 咕卡用的链子| 亚洲视频免费观看视频| 久久午夜亚洲精品久久| 91在线观看av| 久久精品熟女亚洲av麻豆精品| 欧美色视频一区免费| 亚洲自偷自拍图片 自拍| 日韩欧美三级三区| 老司机午夜十八禁免费视频| 欧美精品啪啪一区二区三区| 宅男免费午夜| 极品人妻少妇av视频| a级毛片黄视频| www.999成人在线观看| 中文字幕色久视频| 国产视频一区二区在线看| 国产男女超爽视频在线观看| 大码成人一级视频| 九色亚洲精品在线播放| 日韩欧美三级三区| 老司机午夜十八禁免费视频| 曰老女人黄片| 日本精品一区二区三区蜜桃| 十分钟在线观看高清视频www| 一二三四在线观看免费中文在| 国产午夜精品久久久久久| 国产成人欧美在线观看 | 国产成人精品久久二区二区91| 精品少妇久久久久久888优播| tube8黄色片| 国产精品成人在线| 亚洲专区字幕在线| 99国产精品免费福利视频| 久久久久国产一级毛片高清牌| 变态另类成人亚洲欧美熟女 | 亚洲情色 制服丝袜| 91字幕亚洲| 老鸭窝网址在线观看| 久久 成人 亚洲| 欧美精品高潮呻吟av久久| 制服诱惑二区| 免费日韩欧美在线观看| 一二三四社区在线视频社区8| 欧美一级毛片孕妇| 飞空精品影院首页| 性色av乱码一区二区三区2| 亚洲欧洲精品一区二区精品久久久| 老熟妇仑乱视频hdxx| 久久天躁狠狠躁夜夜2o2o| 亚洲av片天天在线观看| 丰满的人妻完整版| 免费在线观看亚洲国产| 麻豆乱淫一区二区| 日韩熟女老妇一区二区性免费视频| 99久久综合精品五月天人人| 黄网站色视频无遮挡免费观看| 久久久国产精品麻豆| 正在播放国产对白刺激| 国产亚洲精品第一综合不卡| 欧美成狂野欧美在线观看| 无限看片的www在线观看| 亚洲,欧美精品.| e午夜精品久久久久久久| 999精品在线视频| av超薄肉色丝袜交足视频| 在线国产一区二区在线| av在线播放免费不卡| 亚洲成a人片在线一区二区| 精品国产亚洲在线| 日本a在线网址| 脱女人内裤的视频| 久久狼人影院| 日本一区二区免费在线视频| 色老头精品视频在线观看| 亚洲av日韩精品久久久久久密| 欧美另类亚洲清纯唯美| 男人舔女人的私密视频| 亚洲一区二区三区欧美精品| 久久精品亚洲精品国产色婷小说| 国产欧美日韩一区二区三| 女人精品久久久久毛片| 欧美日韩黄片免| a级毛片在线看网站| 高清黄色对白视频在线免费看| 丰满迷人的少妇在线观看| 国产一区在线观看成人免费| 波多野结衣一区麻豆| 老司机在亚洲福利影院| 成人亚洲精品一区在线观看| 国产精品香港三级国产av潘金莲| 久久香蕉国产精品| av一本久久久久| 午夜影院日韩av| 99精品久久久久人妻精品| 亚洲精品成人av观看孕妇| 免费女性裸体啪啪无遮挡网站| 脱女人内裤的视频| 国产蜜桃级精品一区二区三区 | 婷婷精品国产亚洲av在线 | 亚洲熟女毛片儿| 国产成人精品久久二区二区91| 亚洲av片天天在线观看| 成年人免费黄色播放视频| 欧美精品av麻豆av| 99re在线观看精品视频| 很黄的视频免费| 欧美日韩黄片免| 桃红色精品国产亚洲av| 下体分泌物呈黄色| 久久人妻熟女aⅴ| 丝袜美足系列| 欧美日本中文国产一区发布| 国产高清videossex| 巨乳人妻的诱惑在线观看| 午夜老司机福利片| 国产99白浆流出| 国产黄色免费在线视频| 国产免费男女视频| 精品久久久久久久毛片微露脸| 亚洲在线自拍视频| 80岁老熟妇乱子伦牲交| 久久久国产成人精品二区 | 亚洲全国av大片| 制服诱惑二区| 黄网站色视频无遮挡免费观看| 交换朋友夫妻互换小说| 超碰成人久久| 精品久久久久久久毛片微露脸| 看免费av毛片| 天堂动漫精品| 9色porny在线观看| 国产av一区二区精品久久| 老司机福利观看| 日本欧美视频一区| 亚洲成a人片在线一区二区| 国产精品综合久久久久久久免费 | 久久精品亚洲精品国产色婷小说| 国产男女超爽视频在线观看| 国精品久久久久久国模美| 欧美黑人欧美精品刺激| 国产片内射在线| av视频免费观看在线观看| 99久久综合精品五月天人人| 波多野结衣av一区二区av| 国产成人免费观看mmmm| 亚洲av成人不卡在线观看播放网| 精品熟女少妇八av免费久了| 国产成人欧美| 成人黄色视频免费在线看| 日韩中文字幕欧美一区二区| 亚洲国产欧美一区二区综合| 欧美性长视频在线观看| 免费女性裸体啪啪无遮挡网站| 9191精品国产免费久久| 老司机影院毛片| 韩国av一区二区三区四区| 久久国产精品大桥未久av| 午夜日韩欧美国产| 国产精品九九99| 国产99久久九九免费精品| 美女高潮到喷水免费观看| 久久国产亚洲av麻豆专区| 国产三级黄色录像| 日日摸夜夜添夜夜添小说| 19禁男女啪啪无遮挡网站| 欧美最黄视频在线播放免费 | 大型黄色视频在线免费观看| 亚洲人成电影免费在线| 日韩免费av在线播放| 日韩有码中文字幕| 精品电影一区二区在线| 精品熟女少妇八av免费久了| 美女视频免费永久观看网站| 国产精品偷伦视频观看了| 亚洲专区国产一区二区| 又大又爽又粗| 精品少妇一区二区三区视频日本电影| 久久精品91无色码中文字幕| 国产精品乱码一区二三区的特点 | 欧美精品亚洲一区二区| 国产成人精品久久二区二区91| 国产免费男女视频| 一夜夜www| 国产精品国产高清国产av | 色老头精品视频在线观看| 久久久久久久精品吃奶| 手机成人av网站| 最近最新免费中文字幕在线| 国产精品一区二区精品视频观看| 日韩人妻精品一区2区三区| 成年人午夜在线观看视频| 久久久久久久精品吃奶| 老司机亚洲免费影院| 久久99一区二区三区| 欧美日韩精品网址| 一边摸一边抽搐一进一小说 | 亚洲黑人精品在线| 成年版毛片免费区| 1024视频免费在线观看| 亚洲精品一卡2卡三卡4卡5卡| 丝袜人妻中文字幕| 在线观看免费视频日本深夜| 久久精品成人免费网站| 久久久久久免费高清国产稀缺| 欧美日韩视频精品一区| 午夜视频精品福利| 精品一区二区三区四区五区乱码| 日本五十路高清| 777米奇影视久久| 精品一品国产午夜福利视频| 丰满人妻熟妇乱又伦精品不卡| 免费在线观看完整版高清| 亚洲情色 制服丝袜| 天堂√8在线中文| 国产成人免费无遮挡视频| 露出奶头的视频| 国产免费男女视频| 亚洲aⅴ乱码一区二区在线播放 | 国产成人一区二区三区免费视频网站| 亚洲伊人色综图| 18禁裸乳无遮挡动漫免费视频| av在线播放免费不卡| 大片电影免费在线观看免费| 欧美在线黄色| www.精华液| 欧美午夜高清在线| 久久久久久久久免费视频了| 国产一区二区三区综合在线观看| 日日夜夜操网爽| 免费高清在线观看日韩| 热99国产精品久久久久久7| 一级片免费观看大全| 亚洲成人免费电影在线观看| 一区在线观看完整版| 自线自在国产av| 在线av久久热| 国产免费av片在线观看野外av| 精品一区二区三区av网在线观看| 亚洲av日韩精品久久久久久密| 91在线观看av| 电影成人av| 午夜亚洲福利在线播放| 怎么达到女性高潮| 国产免费现黄频在线看| 日韩免费高清中文字幕av| 69av精品久久久久久| 中文亚洲av片在线观看爽 | 黄网站色视频无遮挡免费观看| 欧美日韩视频精品一区|