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

    非二元條件約束滿足問(wèn)題求解

    2014-08-10 07:33:50袁際軍黃敏鎂

    袁際軍,黃敏鎂

    (1.廣東財(cái)經(jīng)大學(xué) 金融學(xué)院,廣東 廣州 510320;2.華南師范大學(xué) 管理科學(xué)系,廣東 廣州 510006)

    0 引言

    約束滿足問(wèn)題(Constraint Satisfaction Problem,CSP)由一組具有有限域的變量以及限制變量間取值組合的約束構(gòu)成。CSP的解是一組對(duì)所有變量的賦值,并使得該賦值滿足所有的約束[1-2]。近三十年來(lái),CSP因其強(qiáng)大的知識(shí)表示能力及豐富的領(lǐng)域獨(dú)立求解技術(shù),在越來(lái)越多的現(xiàn)實(shí)領(lǐng)域中得到廣泛應(yīng)用,如調(diào)度問(wèn)題[3-4]、日程安排問(wèn)題[5]、配置問(wèn)題[6-7]等。然而,隨著上述問(wèn)題求解規(guī)模的擴(kuò)大、約束維數(shù)的多元化以及解空間變化的動(dòng)態(tài)性,使得CSP直接建模并求解上述問(wèn)題時(shí),易遇到知識(shí)表示及求解上的困難。

    為了有效處理變量在約束條件支配下動(dòng)態(tài)參與問(wèn)題求解的特性,如豪華型汽車需要配置天窗而標(biāo)準(zhǔn)型不必配置天窗(即變量“天窗”是否出現(xiàn)在最終解中,依賴于變量“汽車”的取值是豪華型還是標(biāo)準(zhǔn)型),Mittal和Falkenhainer對(duì)CSP進(jìn)行了擴(kuò)展,提出了經(jīng)典的動(dòng)態(tài)約束滿足問(wèn)題(Dynamic Constraint Satisfaction Problems,DCSP)模型[8]。DCSP模型將CSP中的變量劃分為初始變量和非初始變量?jī)深?,并引入激活性約束建模初始變量與非初始變量以及非初始變量間的條件依賴關(guān)系;通過(guò)激活性約束動(dòng)態(tài)地控制非初始變量的狀態(tài),使之依條件動(dòng)態(tài)參與問(wèn)題求解并出現(xiàn)在最終解集中。為了區(qū)別文獻(xiàn)中已有的另一類動(dòng)態(tài)約束滿足問(wèn)題[9],Sabin將Mittal提出的DCSP模型更名為條件約束滿足問(wèn)題(Conditional Constraint Satisfaction Problems,CCSP)[10-11],并從二元約束的角度進(jìn)行了系統(tǒng)的研究。盡管條件約束滿足問(wèn)題及其變體,如Sabin提出的復(fù)合約束滿足問(wèn)題(composite constraint satisfaction problems)[12]、Esther提出的混合條件約束滿足問(wèn)題(Mixed and Conditional Constraint Satisfaction Problems,MCCSP)[13]、Mouhoub提出的條件復(fù)合約束滿足問(wèn)題(Conditional and Composite Constraint Satisfaction Problems,CCCSP)[5]、Dong Yang[14]以及 Lin Wang[15]提出的改進(jìn)型動(dòng)態(tài)約束滿足問(wèn)題等,在建模問(wèn)題的動(dòng)態(tài)性方面擁有更強(qiáng)的知識(shí)表示力,然而在求解條件約束滿足問(wèn)題及其變體時(shí),上述文獻(xiàn)大都假設(shè)只考慮二元約束的情形,并給出直接或間接的求解方法。直接求解方法主要是針對(duì)CCSP的特征,在直接求解CCSP時(shí)嵌入處理CSP相似的弧一致性技術(shù),以實(shí)現(xiàn)對(duì)CCSP的直接求解,如在回溯求解期間,嵌入前向檢查算法(Forward Checking,F(xiàn)C)或維持弧一致性(Maintaining Arc Consistency,MAC)方法[5]。為進(jìn)一步提高算法的求解效率,針對(duì)條件約束滿足問(wèn)題及其變體在處理激活性約束時(shí),新變量的動(dòng)態(tài)引入對(duì)問(wèn)題一致性狀態(tài)的影響,Lin Wang等[15]提出了前向檢查(Forward Checking,F(xiàn)C)算法與后看檢查算法(如回跳算法(Backjumping algorithm,BJ))相結(jié)合的混合式算法FC-BJ,以增強(qiáng)傳統(tǒng)的回溯算法的求解性能;引入最先失敗原則的動(dòng)態(tài)變量排序啟發(fā)式思想,以改進(jìn)混合式算法FC-BJ的求解效率,即算法FCBJ-FF;實(shí)證表明該算法的求解性能顯著優(yōu)于求解條件約束滿足問(wèn)題的傳統(tǒng)回溯算法[8,14]。間接求解方法主要是通過(guò)將CCSP轉(zhuǎn)化為標(biāo)準(zhǔn)的CSP[13,16],通過(guò)對(duì)CSP的求解來(lái)實(shí)現(xiàn)對(duì)CCSP的間接求解。間接求解方法在處理CCSP時(shí),往往會(huì)由于新增約束及變量值域規(guī)模的顯著擴(kuò)大,導(dǎo)致問(wèn)題的求解規(guī)模過(guò)大,影響求解效率;同時(shí)這種轉(zhuǎn)化還易引起建模約束問(wèn)題時(shí)知識(shí)表示的不自然。Raphael等[16]基于CCSP轉(zhuǎn)換成CSP時(shí)存在的上述不足,提出兩種新的建模方法(如對(duì)象建模語(yǔ)言Alloy及回答集編程(Answer Set Programming,ASP))用于直接建模CCSP并實(shí)現(xiàn)其求解。由于CCSP向Alloy或ASP模型的轉(zhuǎn)化是直接自然的,且Alloy模型可轉(zhuǎn)化為可滿足性問(wèn)題(Satisfiability Problem,SAT)以實(shí)現(xiàn)其求解,同時(shí)ASP模型也可轉(zhuǎn)化為一種被求解器Cmodels可接受的形式以實(shí)現(xiàn)其求解,其中求解器Cmodels的內(nèi)核也是基于SAT的。然而從算法的角度而言,Raphael只是提出了如何直接建模CCSP的方法,但采用何種算法來(lái)實(shí)現(xiàn)高效的求解卻并未明確給出。

    上述研究主要針對(duì)二元條件約束滿足問(wèn)題,關(guān)注回溯算法與一致性技術(shù)的結(jié)合。然而,在現(xiàn)實(shí)問(wèn)題中,非二元約束出現(xiàn)得非常頻繁。利用非二元約束滿足問(wèn)題領(lǐng)域的已有理論,直接拓展二元條件約束滿足問(wèn)題求解方法,以實(shí)現(xiàn)對(duì)非二元條件約束滿足問(wèn)題的直接求解,是一種可供嘗試的求解途徑。在非二元約束滿足問(wèn)題求解方面,目前存在一些較好的算法,如非二元弧一致性(non-binary Forward Checking,nFC)算法[17]、廣義弧一致性(Generalized Arc Consistency 2001/3.1,GAC2001/3.1)算法[18]、域過(guò)濾一致性算法[19]、關(guān)系鄰域逆一致性(Relational Neighborhood Inverse Consistency,RNIC)算法[20]等。域過(guò)濾一致性算法與關(guān)系鄰域逆一致性算法RNIC具有強(qiáng)局部一致性特征,在大規(guī)模難問(wèn)題求解時(shí)具有一定的優(yōu)勢(shì)。其中,算法RNIC主要應(yīng)用于非二元約束滿足問(wèn)題的對(duì)偶圖上。在問(wèn)題規(guī)模不大時(shí),實(shí)施非二元弧一致算法或廣義弧一致算法,會(huì)因每次約束檢查時(shí)代價(jià)的降低而帶來(lái)算法總體效率的提高。然而,在求解非二元條件約束滿足問(wèn)題時(shí),不同于二元CSP中的約束傳播方法可直接嵌入到二元CCSP的求解過(guò)程中,有些適用于非二元CSP的經(jīng)典約束傳播方法[17],如nFC1、nFC2和nFC3,并不適用于直接嵌入到帶有非二元約束的條件約束滿足問(wèn)題的求解過(guò)程中。

    本文的關(guān)注焦點(diǎn)在于實(shí)現(xiàn)對(duì)非二元條件約束滿足問(wèn)題的直接求解。

    1 非二元條件約束滿足問(wèn)題

    非二元條件約束滿足問(wèn)題(Non-binary Conditional Constraint Satisfaction Problem,NCCSP)是一個(gè)五元組P=(V,VI,D,C,A),其中:

    (1)集合V 表示一組變量,即V={vi|i∈{1,2,…,n}},n表示不同變量的個(gè)數(shù)。對(duì)于任一變量vi∈V,存在三種可能狀態(tài),即活動(dòng)變量(active:vi)、非活動(dòng)變量(?active:vi或inactive:vi)與未定義變量(undefined:vi)。處于活動(dòng)狀態(tài)的變量參與問(wèn)題求解,且在求解過(guò)程中需指派域值;處于非活動(dòng)狀態(tài)的變量在求解過(guò)程中禁止指派域值;處于未定義狀態(tài)的變量指該變量此時(shí)尚未激活,不參與問(wèn)題求解。

    (2)集合VI表示一組非空初始變量,且有VI?V。對(duì)于任一變量vj∈VI,均處于活動(dòng)變量狀態(tài)。

    (3)集合D表示一組與變量相對(duì)應(yīng)的值域,即D={D(vi)|i∈{1,2,…,n}}。其中,D(vi)表示變量vi的值域,本文僅研究離散有限域變量。

    (4)集合C表示一組兼容性約束,即C={Cj|j∈{1,2,…,|C|}∧S(Cj)?V},|C|表示不同兼容性約束的個(gè)數(shù),變量集合S(Cj)稱為第j個(gè)約束Cj的作用范圍。對(duì)于?S(Cj)={vji|i=1,2,…,|S(Cj)|},則 有 Cj?D(vj1)×D(vj2)× … ×D(vj|S(Cj)|)成立。若?Ci∈C,使得|S(Ci)|>2,則稱該Ci為非二元兼容性約束。如果兼容性約束Cj作用范圍中所有變量處于活動(dòng)變量狀態(tài),則該約束稱為被激活的兼容性約束;在求解過(guò)程中,僅被激活的兼容性約束參與問(wèn)題求解。

    (5)集合A表示一組激活性約束。激活性約束分為包含性約束和排斥性約束:①包含性約束形如:( ,…, )incl, ,…, ,

    Ccondvivj?vk其中條件變量為vivj目

    標(biāo)變量為vk,且有vk?{v1,…,vj},當(dāng)條件變量(vi,…,vj)的一組指派與約束條件Ccond(vi,…,vj)一致時(shí),目標(biāo)變量vk將被觸發(fā)為活動(dòng)變量狀態(tài);②排斥( ,…, )excl,性約束形如:Ccondvivj?vk其中目標(biāo)變量vk?{v1,…,vj}。當(dāng)條件變量(vi,…,vj)的一組指派與約束條件Ccond(vi,…,vj)一致時(shí),目標(biāo)變量vk將被觸發(fā)為非活動(dòng)變量狀態(tài)。

    定義1 非二元條件約束滿足問(wèn)題的解。NCCSP的解是對(duì)所有處于活動(dòng)變量狀態(tài)的一個(gè)指派Ti,并使得該指派Ti必須滿足如下兩個(gè)要求:①在Ti中的所有變量及其賦值必須滿足C∪A;②不存在Ti的子集仍然是NCCSP的一個(gè)解。

    定義2 約束投影。給定一個(gè)約束Ci及約束作用范圍S(Ci)的子集Sj,將Sj在約束Ci中對(duì)應(yīng)變量的域值組合加以截留,形成一個(gè)作用在變量集合Sj上新的約束關(guān)系,這種新的約束關(guān)系稱為約束Ci在變量集合Sj上的約束投影。令Sj?S(Ci),則Ci在Sj上的約束投影形成的新約束記為πSj(Ci)。

    定義3 非二元弧一致性。若?t∈Cj,使得dk∈π{vi}(t)成立,則稱變量vi的域值dk與約束Cj具有一致性。若?dr∈D(vi),?t∈Cj,使得dr∈π{vi}(t)成立,則稱變量vi與兼容性約束Cj具有一致性。若非二元兼容性約束Cj作用范圍S(Cj)中的任一變量vk都與約束Cj具有一致性,則稱兼容性Cj是非二元弧一致的。若兼容性約束集合C中的任一約束Ci都是非二元弧一致的,則稱兼容性約束集合C是非二元弧一致的。

    在NCCSP的求解過(guò)程中,動(dòng)態(tài)地構(gòu)建與NCCSP相關(guān)的約束網(wǎng)絡(luò)。在該約束網(wǎng)絡(luò)中,所有變量均處于活動(dòng)變量狀態(tài),在求解過(guò)程中這些變量均需被指派域值,NCCSP的解由約束網(wǎng)絡(luò)中的所有變量及其相應(yīng)賦值組成。

    2 非二元條件約束滿足問(wèn)題求解算法

    非二元條件約束滿足問(wèn)題是非二元約束滿足問(wèn)題 (Non-binary Constraint Satisfaction Problem,NCSP)與二元條件約束滿足問(wèn)題(Binary Conditional Constraint Satisfaction Problem,BCCSP)的進(jìn)一步泛化。為了處理NCCSP求解過(guò)程中約束維數(shù)的非二元性及參與求解變量規(guī)模的動(dòng)態(tài)可變性,本文借鑒處理NCSP和BCCSP的求解方法[10,11,17],提出下述兩種不同類型的非二元條件約束滿足問(wèn)題求解算法。

    2.1 非二元條件約束滿足問(wèn)題求解的回溯算法

    回溯搜索方法是求解約束滿足問(wèn)題的基本方法。根據(jù)NCCSP的性質(zhì),問(wèn)題中主要存在激活性約束和兼容性約束兩種不同類型的約束。回溯過(guò)程中,采用深度優(yōu)先搜索策略;對(duì)每一變量賦值時(shí),相繼嵌入激活性約束檢查與兼容性約束檢查,以求解NCCSP。非二元條件約束滿足問(wèn)題求解的回溯算法流程如圖1所示。2.1.1 非二元條件約束滿足問(wèn)題回溯算法

    非二元條件約束滿足問(wèn)題回溯算法(Backtrack Search for Non-binary Conditional Constraint Satisfaction Problem,NCCSP-BT)主要采用深度優(yōu)先方式遍歷整個(gè)搜索樹(shù)(算法1):首先從變量集合Vactive(注:Vactive初始化時(shí)所含的變量為NCCSP中的所有初始變量VI)中挑選一個(gè)未賦值變量,作為當(dāng)前變量vrb,并從當(dāng)前變量值域D{vrb}中挑選域值d,實(shí)例化該變量vrb;然后針對(duì)當(dāng)前變量的賦值,相繼調(diào)用子程序激活性約束檢查算法activity()和兼容性約束檢查算法compatibility()進(jìn)行沖突性檢查,若無(wú)沖突產(chǎn)生,則從更新后的變量集合Vactive中挑選另一未賦值變量,作為當(dāng)前變量并進(jìn)行遞歸搜索;若出現(xiàn)沖突,則恢復(fù)原有信息,再?gòu)腄{vrb}中挑選另一域值,實(shí)例化當(dāng)前變量并重復(fù)之前的操作;若D{vrb}中的所有域值被遍歷后仍有沖突產(chǎn)生,則回溯到上一階段。程序的終止主要以求解到所需要的解或發(fā)現(xiàn)無(wú)解為止。

    算法1 非二元條件約束滿足問(wèn)題回溯算法(NCCSP-BT)。

    boolean NCCSP-BT(i,Vactive,D,C,A,B,values){

    if(變量i的值大于集合Vactive中元素個(gè)數(shù)之和)return true//獲得一個(gè)可行解

    vrb←Vactive(i)// 從列表 Vactive中獲取當(dāng)前待賦值變量vrb

    for each(d∈D{vrb}){

    將域值d賦予當(dāng)前變量vrb,并將信息添加到values中

    V1←Vactive;B1←B;values1←values;

    if(activity(vrb,Vactive,values,A,B)and(compatibility(vrb,Vactive,values,C)){

    i←i+1;NCCSP-BT(i,Vactive,D,C,A,B,values);i←i-1}

    Vactive←V1;B←B1;values←values1}

    return false}//結(jié)束 NCCSP-BT()2.1.2 對(duì)激活性約束檢查的處理

    根據(jù)激活性約束的定義,當(dāng)約束條件中的條件變量未全賦值或條件變量的賦值不滿足約束條件時(shí),激活性約束中的目標(biāo)變量將不會(huì)被觸發(fā)。因此,對(duì)激活性約束的檢查,僅需要檢查約束條件在當(dāng)前變量賦值下被滿足時(shí),其觸發(fā)的目標(biāo)變量激活性狀態(tài)對(duì)搜索空間所造成的影響。

    在回溯搜索過(guò)程中,激活性約束檢查算法(算法2)對(duì)激活性約束的處理如下:①在激活性約束集合A中,挑選條件變量(包含當(dāng)前賦值變量vrb)已實(shí)例化的所有激活性約束,組成新的約束集合AA。②對(duì)激活性約束AA中的每條約束a進(jìn)行檢查:若a的約束條件不被values中的相應(yīng)條件變量賦值滿足時(shí),則當(dāng)前變量vrb的賦值視為對(duì)約束a無(wú)影響;若a的約束條件被滿足時(shí),當(dāng)前變量vrb的賦值可能會(huì)引發(fā)兩類沖突而導(dǎo)致該賦值不可行,即包含性約束觸發(fā)的目標(biāo)變量已處于活動(dòng)變量狀態(tài),或排斥性約束觸發(fā)的目標(biāo)變量已處于非活動(dòng)變量狀態(tài);若無(wú)沖突產(chǎn)生,則在結(jié)構(gòu)數(shù)組B中記錄新觸發(fā)的活動(dòng)變量和非活動(dòng)變量歷史信息,并在變量列表Vactive中添加新觸發(fā)的活動(dòng)變量。

    算法2 激活性約束檢查算法。

    boolean activity(vrb,Vactive,values,A,B){

    //Vactive是活動(dòng)變量列表

    令Vactive=Vassign∪Vunassign

    //Vassign是Vactive中已賦值變量列表(包括當(dāng)前賦值變量vrb)

    //Vunassign是Vactive中未賦值變量列表

    AA←{ai|ai∈A∧cond(ai)?Vassign∧vrb∈cond(ai)}

    //A是激活性約束集合,cond(ai)是激活性約束ai的條件變量集

    for each(a∈AA){

    if(a的條件約束被values滿足){

    //values保存迄今已實(shí)例化變量的賦值信息

    i

    f(a是包含性約束){i

    f(a的目標(biāo)變量此前已被觸發(fā)為非活動(dòng)變量狀態(tài))return false else if(a的目標(biāo)變量此前未被觸發(fā)){

    Vactive←Vactive∪{a的目標(biāo)變量}

    在結(jié)構(gòu)數(shù)組B中添加a的目標(biāo)變量的歷史信息}}

    else{//a是排斥性約束

    if(a的目標(biāo)變量此前已被觸發(fā)為活動(dòng)變量狀態(tài))return false

    else if(a的目標(biāo)變量此前未被觸發(fā)){

    在結(jié)構(gòu)數(shù)組B中添加a的目標(biāo)變量的歷史信息}}}

    return true}//結(jié)束activity()2.1.3 對(duì)兼容性約束檢查的處理

    在回溯搜索過(guò)程中,每次實(shí)例化當(dāng)前變量時(shí),均需進(jìn)行兼容性約束檢查,以檢測(cè)該變量的實(shí)例化是否與相關(guān)約束沖突。如果兼容性約束所涉及的受約束變量中不包含當(dāng)前變量,或除當(dāng)前變量外還有其他尚未實(shí)例化的變量,則對(duì)當(dāng)前變量的實(shí)例化不會(huì)違反此兼容性約束。因此,約束檢查時(shí),只需檢查與當(dāng)前變量相關(guān)的兼容性約束。

    在兼容性約束檢查算法中(算法3),令Vassign是活動(dòng)變量集合Vactive中的已賦值變量子集,Vunassign是Vactive中的未賦值變量子集,S(Cj)是兼容性約束Cj的約束作用范圍,值組values是對(duì)迄今已實(shí)例化變量的一組指派。算法首先從兼容性約束集合C中,挑選約束作用范圍由當(dāng)前變量vrb和已賦值變量所構(gòu)成的兼容性約束子集CC(注:CC={Cj|Cj∈C∧S(Cj)?Vassign∧vrb∈S(Cj)});然后對(duì)每條兼容性約束CCj∈CC進(jìn)行沖突性檢測(cè),若值組values在約束作用范圍S(CCj)上的約束投影π{S(CCj)}(values)不滿足約束CCj,則表明當(dāng)前變量vrb賦值與該約束相沖突,使得當(dāng)前變量賦值不可行。

    算法3 兼容性約束檢查算法。

    boolean compatibility(vrb,Vactive,values,C){

    令Vactive=Vassign∪Vunassign

    //Vassign是Vactive中已賦值變量列表,Vunassign是Vactive中未賦值變量列表

    CC←{Cj|Cj∈C∧S(Cj)?Vassign∧vrb∈S(Cj)}

    for each(CCj∈CC){//vrb是當(dāng)前賦值變量

    if(π{S(CCj)}(values)?CCj)return false}

    return true}//結(jié)束compatibility()

    回溯算法在求解需要較少回溯次數(shù)或無(wú)回溯次數(shù)就能得到解的約束問(wèn)題時(shí),具有較大的優(yōu)勢(shì)。相對(duì)其他求解算法而言,在回溯過(guò)程中導(dǎo)致搜索失敗的相同因素反復(fù)出現(xiàn),是使得回溯算法求解效率低下的主要原因。如果在搜索過(guò)程中無(wú)視這些因素,將導(dǎo)致過(guò)多無(wú)效回溯,從而使得算法求解效率低下。因而對(duì)回溯算法的改進(jìn)就在于盡可能早地發(fā)現(xiàn)這些影響因素。為此,下面提出一種 “前看”搜索策略,以便提前探測(cè)出這些因素并加以處理。

    2.2 非二元條件約束滿足問(wèn)題求解的前向檢查算法

    前向約束傳播策略[17]是指在求解期間,針對(duì)當(dāng)前變量的賦值,對(duì)參與問(wèn)題求解的變量空間,實(shí)施一定程度的局部弧一致性技術(shù),提前剪除所有未賦值變量值域中與已賦值變量(包括當(dāng)前賦值變量)相沖突的域值,盡早探知無(wú)解分支,達(dá)到減少搜索空間、提高求解效率的目的。依據(jù)非二元條件約束滿足問(wèn)題的特征,結(jié)合前向約束傳播策略的思想,本文提出求解非二元條件約束滿足問(wèn)題的前向檢查算法,如圖2所示。

    2.2.1 求解NCCSP的前向檢查算法

    類似于非二元條件約束滿足問(wèn)題回溯算法,前向檢查算法同樣采用深度優(yōu)先方式遞歸遍歷整個(gè)搜索樹(shù)。區(qū)別在于回溯算法(算法1)采用“回看”的搜索策略,即在每次實(shí)例化當(dāng)前變量后,總是檢查當(dāng)前變量的賦值是否與已賦值變量產(chǎn)生沖突;而非二元條件前向檢查算法則采用“前看”的搜索策略,即在每次實(shí)例化當(dāng)前變量后,檢查未賦值變量的值域中哪些域值和已賦值變量(包含當(dāng)前變量)產(chǎn)生沖突,并剔除這些與已賦值變量不一致的未賦值變量域值。根據(jù)在前向檢查中實(shí)施弧一致性程度的不同,前向檢查算法又細(xì)分為基于NFC4的非二元條件前向檢查算法(NCCSP-NFC4)和基于NFC5的非二元條件前向檢查算法(NCCSP-NFC5)。NCCSPNFC4算法對(duì)搜索過(guò)程中每次當(dāng)前變量賦值后的瞬時(shí)狀態(tài),通過(guò)先后調(diào)用子程序activity()和NFC4(),采用“前看”的搜索策略判斷當(dāng)前的變量賦值是否可行,實(shí)施方法見(jiàn)算法4;而NCCSP-NFC5算法則對(duì)搜索過(guò)程中的每次當(dāng)前變量賦值后的瞬時(shí)狀態(tài),通過(guò)先后調(diào)用子程序activity()和NFC5(),采用“前看”的搜索策略判斷當(dāng)前的變量賦值是否可行,實(shí)施方法見(jiàn)算法5。與回溯算法(算法1)相似,這兩類前向檢查算法程序主要以求解到所需要的解或發(fā)現(xiàn)無(wú)解而終止。

    算法4 基于NFC4的非二元條件前向檢查算法(NCCSP-NFC4算法)。

    boolean NCCSP-NFC4(i,Vactive,D,C,A,B,values){

    if(變量i的值大于集合Vactive中元素個(gè)數(shù)之和)return true//獲得一個(gè)可行解

    vrb←Vactive(i)//Vactive保存一組被觸發(fā)的活動(dòng)變量

    for each(d∈D{vrb}){//vrb是當(dāng)前賦值變量

    將域值d賦予當(dāng)前變量vrb,并將信息添加到values中;

    V1←Vactive;B1←B;values1←values;D1←D;

    if(activity(vrb,Vactive,values,A,B)and(NFC4(D,C,Vactive,values)){

    i←i+1;NCCSP-BT(i,Vactive,D,C,A,B,values);i←i-1}

    Vactive←V1;B←B1;values←values1;D←D1}return false

    }//結(jié)束 NCCSP-NFC4()

    算法5 基于NFC5的非二元條件前向檢查算法(NCCSP-NFC5算法)。

    boolean NCCSP-NFC5(i,Vactive,D,C,A,B,values){

    if(變量i的值大于集合Vactive中元素個(gè)數(shù)之和)return true//獲得一個(gè)可行解

    vrb←Vactive(i)//Vactive是一組被激活的包含性變量

    for each(d∈D{vrb}){//vrb是當(dāng)前賦值變量

    將域值d賦予當(dāng)前變量vrb,并將信息添加到values中;

    V1←Vactive;B1←B;values1←values;D1←D;

    if(activity(vrb,Vactive,values,A,B)and(NFC5(D,C,Vactive,values)){

    i←i+1;NCCSP-BT(i,Vactive,D,C,A,B,values);i←i-1}

    Vactive←V1;B←B1;values←values1;D←D1}

    return false

    }//結(jié)束 NCCSP-NFC5()

    2.2.2 對(duì)激活性約束檢查的處理

    兼容性約束與激活性約束處理的先后順序?qū)λ惴ǖ男示哂休^大影響。在面向非二元條件約束滿足問(wèn)題的前向檢查算法中,針對(duì)當(dāng)前變量的賦值,如果先進(jìn)行兼容性約束弧一致操作再進(jìn)行激活性約束檢查操作,則在對(duì)激活性約束進(jìn)行處理后,當(dāng)有新的目標(biāo)變量被激活并加入待求解的問(wèn)題空間時(shí),就需要對(duì)這部分被激活的新變量再次實(shí)施弧一致性處理,以便在下一階段挑選出未賦值變量進(jìn)行賦值時(shí),當(dāng)前問(wèn)題已經(jīng)處于一定程度的弧一致?tīng)顟B(tài)。因此,為防止上述繁瑣處理過(guò)程,本文在求解過(guò)程中針對(duì)當(dāng)前變量賦值,均遵循先檢查激活性約束、再檢查兼容性約束的順序,以提高算法求解效率。其中,激活性約束檢查過(guò)程與2.1.2節(jié)方法相同。

    2.2.3 對(duì)非二元條件前向檢查中約束傳播過(guò)程的處理

    在非二元條件約束滿足問(wèn)題求解期間,設(shè)Vi是變量xi賦值后第i個(gè)瞬時(shí)狀態(tài)對(duì)應(yīng)的所有活動(dòng)變量,Vj是變量xj賦值后第j個(gè)瞬時(shí)狀態(tài)對(duì)應(yīng)的所有活動(dòng)變量,并假定第j個(gè)瞬時(shí)狀態(tài)是第i個(gè)瞬時(shí)狀態(tài)的后繼狀態(tài);由于所有非初始變量(V-VI)在求解期間并非總是參與問(wèn)題求解,可假設(shè)Vi≠Vj。令Vi→j=Vj-Vi,則Vi→j是變量Cactivep,f賦值后所觸發(fā)的一組新增活動(dòng)變量。令Cactivej(Cactivej?C)是與第j個(gè)瞬時(shí)狀態(tài)對(duì)應(yīng)的一組被激活的約束,且有Cactivep,f=

    Cactivec,f∪(Cactivep,f-Cactivec,f)∪Cactivep,p∪Cactivef,f。其中:Cactivec,f 表示包含一個(gè)當(dāng)前賦值變量xj和至少一個(gè)未賦值變量的所有被激活的兼容性約束;Cactivep,f表示包含至少一個(gè)已賦值變量(當(dāng)前變量xj也視為已賦值變量)和至少一個(gè)未賦值變量的所有已激活的兼容性約束;Cactivep,p表示一組約束范圍是已賦值變量構(gòu)成的被激活的兼容性約束;Cactivef,f表示一組約束范圍是未賦值變量構(gòu)成的被激活的兼容性約束。假設(shè)Vi-j中存在變量xj1和xj2,且有xj1∈S(ck)∧ck∈Cactivec,f及xj2∈S(ct)∧ct∈(Cactivep,f-Cactivec,f);根據(jù)文獻(xiàn)[17]中的弧一致方法nFC1、nFC2和nFC3,若在約束傳播過(guò)程中的第j個(gè)瞬時(shí)狀態(tài)對(duì)約束集合Cactivec,f嵌入弧一致操作,則與約束集合Cactivec,f相關(guān)的Vi→j中的變量(如xj1)的域值與已賦值變量具有一致性,但并不能保證與約束集合Cactivec,f無(wú)關(guān)的Vi→j中變量(如xj2)的域值也與已賦值變量具有一致性。因此,弧一致方法nFC1,nFC2和nFC3不能直接應(yīng)用于第j個(gè)瞬時(shí)狀態(tài)。若在約束傳播過(guò)程中的第j個(gè)瞬時(shí)狀態(tài)以約束集合Cactivep,f為弧一致處理對(duì)象,則Vi→j中的變量在弧一致處理后,與已賦值變量不一致的域值將被剔除,從而使變量集合Vj處于一致性狀態(tài)。因此,文獻(xiàn)[17]中的弧一致方法nFC4和nFC5可直接應(yīng)用于第j個(gè)瞬時(shí)狀態(tài)。

    根據(jù)上述分析,在約束傳播過(guò)程中提出兩種非二元條件弧一致方法,即 NFC4和NFC5(算法NFC4和NFC5的基本思想分別來(lái)自于弧一致方法nFC4和nFC5)。其中:①NFC4:僅對(duì)集合Cactivep,f中的所有兼容性約束實(shí)施一遍非二元弧一致性僅,并剔除未賦值變量值域中與已賦值變量不一致的域值;如果在此過(guò)程中發(fā)現(xiàn)某個(gè)未賦值變量值域變?yōu)榭占?,則表明探測(cè)到了一個(gè)無(wú)解分支,說(shuō)明當(dāng)前變量賦值不可行,實(shí)施方法見(jiàn)算法6。②NFC5:對(duì)集合Cactivep,f中的所有兼容性約束實(shí)施非二元弧一致,使所有兼容性約束在實(shí)施非二元弧一致性處理后均達(dá)到弧一致?tīng)顟B(tài);如果在此過(guò)程中發(fā)現(xiàn)某個(gè)未賦值變量值域變?yōu)榭占?,則表明探測(cè)到了一個(gè)無(wú)解分支,說(shuō)明當(dāng)前變量賦值不可行,實(shí)施方法見(jiàn)算法7。

    算法6 NFC4算法。

    boolean NFC4(D,C,Vactive,values){

    令Vactive=Vp∪Vf

    //Vp是Vactive中已賦值變量(包括當(dāng)前賦值變量)集合,Vf是Vactive中未賦值變量集合

    Cactive← {Cj|Cj∈C∧S(Cj)?Vactive

    }p,f0(S(C)-V)S(C)∧ <|jp|<|j|

    for each(c∈Capc,tfive){

    for each(v∈(S(c)∩Vf)){

    //v是兼容性約束c作用范圍中的未賦值變量

    for each(val∈D{v}){

    if(not(變量v的域值val與約束c具有一致性)){D{v}←D{v}-{val}

    If(D{v}等于空集)return false}}}}

    return true}//結(jié)束NFC4()

    算法7 NFC5算法。

    boolean NFC5(D,C,Vactive,values){令 Vactive=Vp∪Vf;

    Cactive← {Cj|Cj∈C∧S(Cj)?Vactive

    };p,f0(S(C)-V)S(C)∧ <|jp|<|j|

    CC←Capc,tfive

    ;while(CC≠?){

    CC←CC-{Cj};

    for each(v∈(S(Cj)∩Vf)){

    //v是兼容性約束c作用范圍中的未賦值變量

    revise=false;

    for each(val∈D{v}){

    if(not(變量v的域值val與約束c具有一致性)){

    D{v}←D{v}-{val};revise=true}}if(revise==true){

    if(D{v}等于空集)return false;CC←CC∪{Ci|Ci∈Capc,tfive∧v∈S(Ci)∧i≠j}}}}return true}//結(jié)束NFC5()

    2.3 算例

    變量集V={v1,v2,v3,v4,v5,v6},其中初始變量集VI={v1,v2,v3,v4}。每個(gè)變量的值域D都是{e,f,g},兼容性約束{C1,C2,C3}與激活性約束{A1,A2,A3}分別如表1所示。

    為闡述3種算法間的差異,表2和表3分別展示了一個(gè)簡(jiǎn)單算例的處理過(guò)程。它由4個(gè)初始變量{v1,v2,v3,v4}和2個(gè)非初始變量{v5,v6}組成,每個(gè)變量分享相同的值域{e,f,g},服從3個(gè)兼容性約束{C1,C2,C3}和3個(gè)激活性約束{A1,A2,A3}。其中:A1和A2是包含性約束,A3是排斥性約束。

    表1兼容性約束與激活性約束表示

    表2 變量v1 和v2相繼實(shí)例化時(shí)不同算法對(duì)約束處理的差異

    表3 變量v1和v2相繼實(shí)例化時(shí)不同算法所致的域值過(guò)濾

    在變量v1賦值e(即(v1,e))之后,沒(méi)有約束含有兩個(gè)已實(shí)例化的變量(包括當(dāng)前變量v1)。因此,算法NCCSP-NBT對(duì)非初始變量{v5,v6}的當(dāng)前狀態(tài)無(wú)影響,也不過(guò)濾任何變量的域值。算法NCCSP-NFC4對(duì)激活性約束{A1,A2,A3}和兼容性約束C3無(wú)影響;在先后對(duì)約束C1和C2應(yīng)用非二元弧一致方法后,從D{v2}、D{v3}和D{v4}中刪除了域值g。值得注意的是,如果以不同的順序處理這些約束,過(guò)濾效果將會(huì)有所不同。算法NCCSP-NFC5對(duì)激活性約束{A1,A2,A3}和兼容性約束C3無(wú)影響;在對(duì)約束集{C1,C2}應(yīng)用非二元弧一致方法后,從D{v2}中刪除了域值f和g,從D{v3}和D{v4}中刪除了域值g。

    在變量v2賦值e(即(v2,e))之后,激活性約束A1和A3的約束條件分別得到滿足。因此,算法NCCSP-NBT對(duì)A1和A3處理之后,導(dǎo)致變量v5的狀態(tài)由未定義變?yōu)榛顒?dòng)狀態(tài),變量v6的狀態(tài)由未定義變?yōu)榉腔顒?dòng)狀態(tài);由于約束C1、C2和C3所包含的變量未完全實(shí)例化,所有算法NCCSP-NBT對(duì)所有兼容性約束無(wú)影響,也不過(guò)濾任何變量的域值。算法NCCSP-NFC4先對(duì)激活性約束A1和A3進(jìn)行檢查,然后對(duì)兼容性約束C1、C2和C3實(shí)施一遍非二元弧一致;導(dǎo)致變量v5的狀態(tài)由未定義變?yōu)榛顒?dòng)狀態(tài),變量v6的狀態(tài)由未定義變?yōu)榉腔顒?dòng)狀態(tài);從D{v3}中刪除了域值f,從D{v5}中刪除了域值f和g。算法NCCSP-NFC5先對(duì)激活性約束A1和A3進(jìn)行檢查,再對(duì)約束{C1,C2,C3}實(shí)施弧一致方法,直至所有兼容性約束達(dá)到弧一致?tīng)顟B(tài);導(dǎo)致變量v5的狀態(tài)由未定義變?yōu)榛顒?dòng)狀態(tài),變量v6的狀態(tài)由未定義變?yōu)榉腔顒?dòng)狀態(tài);從D{v3}中刪除了域值f,從D{v4}中刪除了域值f,從D{v5}中刪除了域值f和g。

    3 算法復(fù)雜性分析

    為了更好地衡量非二元條件約束滿足問(wèn)題回溯算法與兩類前向檢查算法的性能,本章給出最壞情況下的時(shí)間復(fù)雜度分析,然后證明其正確性。

    定理1 非二元條件約束滿足問(wèn)題回溯算法(NCCSP-BT算法)在每個(gè)節(jié)點(diǎn)最壞的情況下,所消耗的時(shí)間復(fù)雜度是O(tam|A|+m|C|)。

    證明 在實(shí)例化變量xi時(shí),令A(yù)Ai為約束條件包含變量xi的一組激活性約束,CCi為約束范圍包含變量xi的一組兼容性約束。

    (1)令A(yù)Ai中激活性約束aij包含的目標(biāo)變量個(gè)數(shù)為tij,則D{xi}中的每個(gè)域值d實(shí)例化xi時(shí),若滿足激活性約束aij的約束條件,則需進(jìn)一步檢查每個(gè)目標(biāo)變量是否與已知狀態(tài)產(chǎn)生沖突。因此,實(shí)例化變量xi時(shí),對(duì)激活性約束aij檢查的時(shí)間復(fù)雜度為O(tij|D{xi}|)。如果變量的域值規(guī)模最大為m,激活性約束所觸發(fā)的目標(biāo)變量數(shù)目最大為ta,激活性約束AAi最壞情況下的最大規(guī)模為|A|,則實(shí)例化變量xi時(shí),最壞情況下對(duì)所有相關(guān)激活性約束檢查的時(shí)間復(fù)雜度為O(tam|A|)。

    (2)實(shí)例化變量xi時(shí),對(duì)每一條兼容性約束的一致性檢查,最壞情況下的時(shí)間復(fù)雜度為O(m);若CCi最壞情況下的規(guī)模最大為|C|,則實(shí)例化變量xi時(shí),最壞情況下對(duì)所有相關(guān)兼容性約束檢查的時(shí)間復(fù)雜度為O(m|C|)。由于NCCSP_BT算法的性能主要由激活性約束檢查與兼容性約束檢查決定,在最壞情況下,對(duì)每個(gè)節(jié)點(diǎn)所消耗的時(shí)間復(fù)雜度是O(tam|A|+m|C|)。

    定理2 非二元條件前向檢查算法NCCSPNFC4和NCCSP-NFC5在每個(gè)節(jié)點(diǎn)最壞的情況下,具有相同的時(shí)間復(fù)雜度O(tam|A|+(rc-1)mrc-1|Cactivep,f|)。

    證明 在實(shí)例化變量xi時(shí),令Cactivep,f表示包含至少一個(gè)已賦值變量(當(dāng)前變量xi也視為已賦值變量)和至少一個(gè)未賦值變量的所有已激活的兼容性約束。設(shè)Cactivep,f中的一條兼容性約束ci的約束維數(shù)為ri,則算法 NCCSP-NFC4對(duì)ci檢查時(shí),ci中至多包含ri-1個(gè)未賦值變量。因此,在對(duì)ci實(shí)施弧一致性時(shí),最壞情況下算法NCCSP-NFC4的時(shí)間復(fù)雜度為O((ri-1)mri-1)。如果Cactivep,f中兼容性約束的最大維數(shù)為rc,則在實(shí)例化變量xi時(shí),最壞情況下算法NCCSP-NFC4對(duì)兼容性約束檢查的時(shí)間復(fù)雜度為O((rc-1)mrc-1|Cactivep,f|)。由定理1的分析可知,在實(shí)例化變量xi時(shí),對(duì)激活性約束檢查的時(shí)間復(fù)雜度為O(tam|A|)。因此,算法NCCSP-NFC4在每個(gè)節(jié)點(diǎn)最壞情況下所消耗的時(shí)間復(fù)雜度為O(tam|A|+(rc-1)mrc-1|Cactivep,f|)。

    在搜索過(guò)程中,對(duì)于給定的節(jié)點(diǎn),算法NCCSPNFC4和NCCSP-NFC5的主要區(qū)別在于對(duì)兼容性約束集合Cactivep,f實(shí)施弧一致性程度的不同。算法NCCSP-NFC4僅對(duì)Cactivep,f中的約束實(shí)施一次弧一致,而算法NCCSP-NFC5對(duì)Cactivep,f實(shí)施弧一致直到所有約束都處于弧一致性狀態(tài)。文獻(xiàn)[17,21]表明,在嵌入某種優(yōu)化算法如GAC2001時(shí),算法NCCSPNFC4和 NCCSP-NFC5對(duì)Cactivep,f實(shí)施弧一致,可具有相同的最壞時(shí)間復(fù)雜度。

    4 應(yīng)用實(shí)例分析與基于隨機(jī)問(wèn)題的仿真實(shí)驗(yàn)

    4.1 評(píng)價(jià)指標(biāo)

    對(duì)非二元條件約束滿足問(wèn)題求解算法性能的衡量,本文主要采用如下評(píng)價(jià)指標(biāo):①求解時(shí)間,指在求得問(wèn)題的一個(gè)可行解或無(wú)解時(shí)所耗費(fèi)的運(yùn)行時(shí)間;②回溯次數(shù),指在求解過(guò)程中遇到一個(gè)無(wú)解狀態(tài)而不得不回溯到前一求解狀態(tài)的次數(shù);③兼容性約束檢查次數(shù),指在判斷當(dāng)前變量賦值是否為一個(gè)有效賦值而對(duì)兼容性約束進(jìn)行檢查的有效次數(shù);④條件約束檢查次數(shù),指對(duì)當(dāng)前變量賦值后,判斷目標(biāo)變量是否被觸發(fā)而對(duì)激活性約束進(jìn)行檢查的次數(shù)。

    4.2 NCCSP的應(yīng)用實(shí)例

    4.2.1 應(yīng)用實(shí)例及建模

    在產(chǎn)品配置領(lǐng)域,功能與實(shí)現(xiàn)該功能的組件間是典型的多對(duì)多關(guān)系。根據(jù)“關(guān)鍵組件理論”[8,22],每個(gè)功能都存在實(shí)現(xiàn)其功能的關(guān)鍵組件,該關(guān)鍵組件要么完整地實(shí)現(xiàn)該功能,要么和其他非關(guān)鍵組件共同作用實(shí)現(xiàn)該功能。一旦實(shí)現(xiàn)某一功能的關(guān)鍵組件被確定,則與之相關(guān)的非關(guān)鍵組件也需要隨之依條件動(dòng)態(tài)確定。另外,關(guān)鍵組件存在不同的組件類型,不同的組件類型所實(shí)現(xiàn)的功能也存在差異,從而導(dǎo)致實(shí)現(xiàn)某一特定功能所需配套的非關(guān)鍵組件集也不相同。在建模為非二元條件約束滿足問(wèn)題模型時(shí),產(chǎn)品功能可分別建模為變量,實(shí)現(xiàn)該功能的關(guān)鍵組件類型建模為該變量的域值,為配合關(guān)鍵組件類型實(shí)現(xiàn)某一特定功能的非關(guān)鍵組件,采用激活性約束進(jìn)行建模,產(chǎn)品功能間的約束可建模為兼容性約束。

    根據(jù)以上理論,以一個(gè)簡(jiǎn)化的某汽車產(chǎn)品配置問(wèn)題為例[8,10],根據(jù)該制造商的實(shí)際制造能力和客戶的要求,建立該配置問(wèn)題的NCCSP模型。在該配置問(wèn)題中,有8個(gè)可配置對(duì)象,其中3個(gè)是必選可配置對(duì)象,5個(gè)是非必選可配置對(duì)象。這些可配置對(duì)象間存在:①4個(gè)兼容性約束,包括2個(gè)二元約束和2個(gè)三元約束;②11個(gè)激活性約束,包括8個(gè)包含性約束和3個(gè)排斥性約束。這些可配置對(duì)象和配置約束均被抽象為非二元條件約束滿足問(wèn)題中相應(yīng)的變量和變量間的約束,并建立如圖3所示的面向該產(chǎn)品配置問(wèn)題的NCCSP模型。4.2.2 實(shí)例模型求解

    對(duì)4.2.1節(jié)的NCCSP模型,分別采用本文提出的三種算法進(jìn)行求解,實(shí)驗(yàn)環(huán)境為Windows XP,Intel(R)Core(TM)2Duo CPU T7100 @1.80 GHz 1.79GHz,0.99GB 的 內(nèi) 存,編 程 語(yǔ) 言 為MATLAB 7.1。求解到第一個(gè)可行解時(shí)的實(shí)驗(yàn)結(jié)果如表4所示。

    由表4可知,在獲得第一個(gè)可行解時(shí),算法NCCSP-BT和 NCCSP-NFC4具有相似的時(shí)間性能,算法NCCSP-NFC5具有最壞的時(shí)間性能。進(jìn)一步分析發(fā)現(xiàn),相對(duì)于條件約束檢查次數(shù),兼容性約束檢查次數(shù)對(duì)算法的性能影響相對(duì)較大。

    表4 汽車產(chǎn)品配置問(wèn)題的NCCSP模型的求解結(jié)果

    需要指出的是,該實(shí)例分析的目的并不在于比較各算法的相對(duì)求解性能,而在于通過(guò)該實(shí)例引出NCCSP的一個(gè)應(yīng)用場(chǎng)景。在現(xiàn)實(shí)問(wèn)題中,變量間經(jīng)常存在復(fù)雜的約束,這些約束很多是以非二元約束的形式存在。在涉及必選變量和可選變量的場(chǎng)合,由于在問(wèn)題最終解中可選變量允許以非賦值的形式存在,導(dǎo)致在求解期間并非所有變量都參與求解。因此,在建模這類問(wèn)題時(shí),可利用激活性約束依條件動(dòng)態(tài)引入或剔除參與求解的可選變量,從而增加模型的表示力和求解效率。本例的配置問(wèn)題便是一種典型的NCCSP的應(yīng)用。

    4.3 基于隨機(jī)問(wèn)題的仿真實(shí)驗(yàn)

    4.3.1 仿真實(shí)驗(yàn)數(shù)據(jù)的產(chǎn)生

    在4.2節(jié),由于實(shí)例較簡(jiǎn)單,并不能充分揭示各算法性能的相對(duì)差異。為進(jìn)一步比較本文所提算法的求解性能,需要使用隨機(jī)發(fā)生器生成的NCCSP實(shí)例。因此,借鑒文獻(xiàn)[10]開(kāi)發(fā)的二元條件約束滿足問(wèn)題隨機(jī)生成器的方法,采用 MATLAB 7.1開(kāi)發(fā)了一個(gè)NCCSP隨機(jī)生成器。

    該隨機(jī)生成器在生成測(cè)試實(shí)例時(shí),采用如下參數(shù)作為輸入變量:①n為全體變量個(gè)數(shù);②m為變量的最大域值規(guī)模,在生成隨機(jī)問(wèn)題時(shí)將所有變量的域值規(guī)模都固定為m;③rc為兼容性約束的最大維數(shù),在生成隨機(jī)問(wèn)題時(shí)將兼容性約束的維數(shù)都固定為rc;④ra為激活性約束中的約束條件的最大維數(shù),在生成隨機(jī)問(wèn)題時(shí)將激活性約束中約束條件維數(shù)都固定為ra;⑤pnoni為非初始變量生成的概率,隨機(jī)問(wèn)題中非初始變量規(guī)模為npnoni,初始變量規(guī)模為n(1-pnoni);⑥sc為兼容性約束被滿足的概率,隨機(jī)問(wèn)題中每個(gè)兼容性約束所包含的合法元組規(guī)模為scmrc;⑦dc為兼容性約束密度,隨機(jī)問(wèn)題中所包含的兼容性約束的規(guī)模為dcCrnc;⑧sa為激活性約束被滿足概率,具有相同條件變量的激活性約束中,其約束條件的合法元組規(guī)模為samra;⑨da為激活性約束密度,具有不同條件變量的激活性約束規(guī)模為daCrna;具有相同條件變量的激活性約束,其差異主要取決于條件變量取值的不同,激活性約束的總規(guī)模為samradaCrna;⑩pincl為每條產(chǎn)生的激活性約束是包含性約束的概率,排斥性約束生成的概率則為(1-pincl);○11ta為激活性約束所觸發(fā)的最大目標(biāo)變量數(shù)目。

    4.3.2 仿真實(shí)驗(yàn)條件設(shè)定與實(shí)驗(yàn)結(jié)果

    在面向非二元條件約束滿足問(wèn)題的回溯算法和前向檢查算法中,兼容性約束與激活性約束處理的先后順序?qū)λ惴ㄐ阅艽嬖谝欢ǖ挠绊?。為了評(píng)估本文所提算法性能的差異及不同類型約束處理順序?qū)λ惴ㄔ斐傻挠绊?,本文仿真?shí)驗(yàn)由兩部分構(gòu)成:①實(shí)驗(yàn)一,衡量在不同類型NCCSP實(shí)例下本文所提三種算法的性能差異;②實(shí)驗(yàn)二,衡量在調(diào)整不同類型約束處理順序后,原算法及其相應(yīng)變體的性能差異。4.3.2.1 實(shí)驗(yàn)一

    在生成的隨機(jī)非二元條件約束滿足問(wèn)題中,本文設(shè)定公共參數(shù)為:rc=3,ra=2,da=0.5,pincl=0.5,ta=1;其他參數(shù)取值可變。在相同的一組實(shí)驗(yàn)參數(shù)下,每次產(chǎn)生100個(gè)隨機(jī)測(cè)試實(shí)例,實(shí)驗(yàn)結(jié)果分別取各評(píng)價(jià)指標(biāo)的算術(shù)平均值。實(shí)驗(yàn)環(huán)境為Windows XP,Intel(R)Core(TM)2Duo CPU T7100@1.80GHz 1.79GHz,0.99GB的內(nèi)存,編程語(yǔ)言為MATLAB 7.1。

    (1)不同約束密度下各類約束被滿足概率變化時(shí)的算法性能

    分別研究在不同兼容性約束密度下,兼容性約束與激活性約束被滿足概率變化時(shí),本文三種算法的求解性能。設(shè)計(jì)兩組實(shí)驗(yàn):①n=15,m=7,pnoni=0.5,sa=0.5,dc=[0.3,0.5,0.7],sc= [0.1,0.2,0.3,0.4,0.5,0.6,0.7,0.8,0.9];實(shí)驗(yàn)結(jié)果如圖4所示;②n=15,m=7,pnoni=0.5,sc=0.5,dc=[0.3,0.5,0.7],sa= [0.1,0.2,0.3,0.4,0.5,0.6,0.7,0.8,0.9]。實(shí)驗(yàn)結(jié)果如圖5所示。

    由圖4可知,相同兼容性約束密度dc下,三種算法在兼容性約束被滿足的概率sc由小變大時(shí),運(yùn)算時(shí)間均經(jīng)歷了由快到慢、進(jìn)而由慢到快的過(guò)程;同時(shí)可見(jiàn),當(dāng)sc在區(qū)間[0.4,0.8]內(nèi)變化時(shí),運(yùn)算時(shí)間發(fā)生了顯著變化,問(wèn)題開(kāi)始變得難以求解;此時(shí),算法NCCSP-BT具有最壞的求解性能,其次是NCCSP-NFC5,再次是 NCCSP-NFC4。另外,不同兼容性約束密度dc下,當(dāng)兼容性約束被滿足的概率sc在區(qū)間[0.4,0.7]變化時(shí),所有 NCCSP問(wèn)題均開(kāi)始變得難以求解。上述現(xiàn)象表明:①在兼容性約束被滿足概率sc很小時(shí),所產(chǎn)生的隨機(jī)測(cè)試實(shí)例以無(wú)解問(wèn)題為主,三種算法均能快速探測(cè)到一個(gè)無(wú)解狀態(tài);②在兼容性約束被滿足概率sc很大時(shí),所產(chǎn)生的隨機(jī)測(cè)試實(shí)例可行解非常多,此時(shí),三種算法均能很容易地將一個(gè)部分實(shí)例化解擴(kuò)展為一個(gè)有效解;③兼容性約束被滿足概率sc在區(qū)間[0.4,0.8]內(nèi)變化時(shí),所產(chǎn)生的隨機(jī)測(cè)試實(shí)例變得難以求解,原因在于部分實(shí)例化解向有效解擴(kuò)展的過(guò)程中,引起搜索失敗的因素反復(fù)出現(xiàn),從而導(dǎo)致求解困難。算法NCCSP-NFC4和NCCSP-NFC5在搜索過(guò)程中分別嵌入不同程度的弧一致技術(shù),能夠有效地剪去不必要的搜索分支,減少求解過(guò)程中的回溯次數(shù),因而在難問(wèn)題上具有比算法NCCSP-BT更優(yōu)的時(shí)間性能。

    從圖5可知,相同兼容性約束密度dc下,三種算法的運(yùn)算時(shí)間均隨著激活性約束被滿足概率sa的變大而增加;其中,算法NCCSP-BT具有最壞的求解性能,其次是NCCSP-NFC5,再次是 NCCSPNFC4。另外,隨著兼容性約束密度dc的增加,三種算法在求解相同問(wèn)題時(shí),運(yùn)算時(shí)間增加所引起的時(shí)間性能曲線均趨向于平緩。上述現(xiàn)象表明:①在激活性約束被滿足的概率sa較小時(shí),激活性約束的目標(biāo)變量被觸發(fā)的可能性較低;因而在問(wèn)題求解過(guò)程中變量規(guī)模的變化不顯著,此時(shí)問(wèn)題易于求解;隨著激活性約束被滿足概率sa的增大,激活性約束的目標(biāo)變量被觸發(fā)的可能性也隨之增加,從而導(dǎo)致問(wèn)題求解過(guò)程中變量規(guī)模的變化愈來(lái)愈顯著,問(wèn)題開(kāi)始變得難以求解。②兼容性約束密度dc的不斷增加,使得問(wèn)題中兼容性約束的規(guī)模不斷變大,從而增加了一個(gè)部分實(shí)例化解擴(kuò)展為有效解的難度。由于在求解過(guò)程中,算法 NCCSP-NFC4和 NCCSP-NFC5嵌入了不同程度的弧一致技術(shù),預(yù)先剪去后續(xù)不必要的搜索分支,提高了求解性能。

    (2)不同程度動(dòng)態(tài)性特征時(shí)算法性能

    由圖4和圖5可知,算法 NCCSP-NFC4和NCCSP-NFC5在求解NCCSP問(wèn)題時(shí),其時(shí)間性能均顯著地優(yōu)于算法 NCCSP-BT;而算法 NCCSPNFC4和NCCSP-NFC5兩者間的求解性能差異卻并不顯著。下面進(jìn)一步比較具有不同程度動(dòng)態(tài)性特征 的 NCCSP 問(wèn) 題 下,算 法 NCCSP-NFC4 和NCCSP-NFC5的相對(duì)求解性能。設(shè)定實(shí)驗(yàn)條件如下:n=15,m=7,sa=0.5,dc=0.5,sc=0.5,pnoni=[0.1,0.2,0.3,0.4,0.5,0.6,0.7,0.8,0.9],實(shí)驗(yàn)結(jié)果如圖6所示。

    非初始變量生成概率pnoni決定了NCCSP中全體變量被劃分為初始變量集合與非初始變量集合各自的相對(duì)規(guī)模。pnoni值越大,變量被挑選作為非初始變量的可能性越大,從而使得解空間的規(guī)模也隨之增大;在求解過(guò)程中,NCCSP問(wèn)題將展示更強(qiáng)的動(dòng)態(tài)性特征,即更多的非初始變量將頻繁動(dòng)態(tài)地被挑選參與到求解過(guò)程中。由圖6可知,當(dāng)pnoni值超過(guò)0.6的臨界點(diǎn)時(shí),算法NCCSP-NFC4和NCCSPNFC5在時(shí)間性能上無(wú)顯著差異;當(dāng)pnoni<0.6時(shí),算法NCCSP-NFC4具有比NCCSP-NFC5更佳的時(shí)間性能。同時(shí)可知,當(dāng)pnoni值在區(qū)間[0.4,0.6]變化時(shí),兩種算法的求解性能均發(fā)生了顯著變化,問(wèn)題開(kāi)始變得難以求解。上述現(xiàn)象表明:①pnoni<0.6時(shí),算法NCCSP-NFC5在求解過(guò)程中嵌入更深程度的前看策略所帶來(lái)的回溯次數(shù)減少的收益,并不能彌補(bǔ)求解過(guò)程中因?qū)嵤└畛潭惹翱床呗运枰ㄙM(fèi)的更多兼容性約束檢查次數(shù)而付出的代價(jià),從而使得算法NCCSP-NFC4在pnoni值小于0.6時(shí)具有相對(duì)更佳的求解性能;②當(dāng)pnoni>0.6時(shí),相對(duì)算法NCCSP-NFC4而言,算法NCCSP-NFC5在求解時(shí)實(shí)施更深程度的前看策略所帶來(lái)的收益,與其實(shí)施該技術(shù)所需付出的代價(jià)大致相當(dāng),因而在此情況下兩種算法的相對(duì)性能差異并不顯著;③從圖6還可知,兩種算法的時(shí)間性能曲線與兼容性約束檢查次數(shù)曲線的形狀非常相似,說(shuō)明算法的時(shí)間性能基本上決定于求解過(guò)程中其所執(zhí)行的兼容性約束檢查次數(shù);同時(shí)亦說(shuō)明相對(duì)于條件約束檢查,執(zhí)行一次兼容性約束檢查需花費(fèi)更多的時(shí)間代價(jià)。

    (3)問(wèn)題規(guī)模變化時(shí)算法性能

    在前述實(shí)驗(yàn)中,本文固定變量規(guī)模為15和變量域值規(guī)模為7,該問(wèn)題實(shí)際上代表了一類規(guī)模不大的NCCSP。由于NCCSP解空間規(guī)模主要取決于全體變量及其域值的規(guī)模,本節(jié)分別研究在不同變量規(guī)模和變量域值規(guī)模下,算法NCCSP-NFC4和NCCSP-NFC5的相對(duì)性能。設(shè)計(jì)兩組實(shí)驗(yàn):①n=[10,20,30,40,50,60,70,80,90,100],m=7,pnoni=0.5,sa=0.5,dc=0.5,sc=0.5;實(shí)驗(yàn)結(jié)果如圖7所示;②n=15,m= [5,7,9,11,13,15,17,19,21,25,35],pnoni=0.5,sa=0.5,dc=0.5,sc=0.5。實(shí)驗(yàn)結(jié)果如圖8所示。

    由圖7可知,在變量規(guī)模小于臨界點(diǎn)50時(shí),算法NCCSP-NFC4的時(shí)間性能更優(yōu);而當(dāng)變量規(guī)模超過(guò)臨界點(diǎn)50時(shí),算法NCCSP-NFC5的時(shí)間性能更優(yōu)。在回溯次數(shù)上,算法NCCSP-NFC5由于在求解過(guò)程中實(shí)施更深程度的前看策略,刪除了更多不必要的搜索分支,具有相對(duì)于算法NCCSP-NFC4更優(yōu)的回溯性能。從圖8可知,在變量域值規(guī)模小于臨界點(diǎn)21時(shí),算法NCCSP-NFC4的時(shí)間性能更優(yōu);而當(dāng)變量域值規(guī)模大于臨界點(diǎn)21時(shí),算法NCCSP-NFC5的時(shí)間性能更優(yōu)。在回溯次數(shù)上,算法NCCSP-NFC5始終具有比算法 NCCSP-NFC4更優(yōu)的回溯性能。上述現(xiàn)象表明:①回溯性能的改善并不一定帶來(lái)算法時(shí)間性能的改善,只有當(dāng)實(shí)施更深程度前看策略所帶來(lái)的收益大于所付出的代價(jià)時(shí),回溯性能的改善才帶來(lái)算法時(shí)間性能的改善;②算法NCCSP-NFC4和NCCSP-NFC5具有不同的適用區(qū)間,總體而言,算法NCCSP-NFC4適用于求解中小規(guī)模的NCCSP問(wèn)題;而算法NCCSP-NFC5則適用于求解大規(guī)模的NCCSP。4.3.2.2 實(shí)驗(yàn)二

    在本文所提的原算法中,對(duì)約束的處理均遵循先激活性約束再兼容性約束的順序。若調(diào)整不同類型的約束處理順序,為保證調(diào)整后算法的正確性,需對(duì)原算法進(jìn)行一定的修改?;厮菟惴∟CCSP-BT中,若先處理兼容性約束、再處理激活性約束,則激活性約束所激活的目標(biāo)變量會(huì)改變當(dāng)前狀態(tài)問(wèn)題的拓?fù)浣Y(jié)構(gòu);但由于回溯算法對(duì)兼容性約束的檢查采用“后看”策略,約束處理順序的改變并不會(huì)影響算法的正確性。本文將先處理兼容性約束,再處理激活性約束的回溯算法視為算法NCCSP-BT的變體,稱為NCCSP-BT(variant)。在面向非二元條件約束滿足問(wèn)題的前向檢查算法中,若進(jìn)行兼容性約束非二元弧一致操作使得問(wèn)題處于弧一致?tīng)顟B(tài),則再進(jìn)行激活性約束處理會(huì)導(dǎo)致新激活的活動(dòng)變量集破壞之前問(wèn)題的弧一致?tīng)顟B(tài),此時(shí)需要在對(duì)新產(chǎn)生的活動(dòng)變量集和已賦值變量集之間進(jìn)行非二元弧一致操作,以維護(hù)所有的未賦值變量與已賦值變量間的弧一致性,從而確保后續(xù)階段賦值操作的正確性。在前向檢查算法中先對(duì)兼容性約束實(shí)施NFC4操作,再在激活性約束處理中對(duì)新激活的活動(dòng)變量集與已賦值變量集嵌入NFC4操作,這種算法視為NCCSP-NFC4的變體,稱為 NCCSP-NFC4(variant)。另外,在前向檢查算法中,先對(duì)兼容性約束實(shí)施NFC5操作,再在激活性約束處理中對(duì)新激活的活動(dòng)變量集與已賦值變量集嵌入NFC5操作,這種算法視為 NCCSP-NFC5的變體,稱為 NCCSPNFC5(variant)。為衡量各原算法與其相應(yīng)變體的算法性能差異,限于篇幅,本文僅給出下述設(shè)計(jì)參數(shù)取值時(shí)的仿真結(jié)果(如圖9):n=15,m=7,pnoni=0.5,sa=0.5,dc= 0.5,sc= [0.1,0.2,0.3,0.4,0.5,0.6,0.7,0.8,0.9]。

    從圖9可知,不同類型約束處理的先后順序?qū)λ惴ㄐ阅艿拇_具有一定影響。相對(duì)原算法而言,先處理兼容性約束、再處理激活性約束,對(duì)原算法的求解性能有一定的改善作用。其中,回溯算法NCCSP-BT(variant)相對(duì)原算法 NCCSP-BT而言,在約束檢查上,以兼容性約束檢查次數(shù)增加的輕微代價(jià),換取了條件約束檢查次數(shù)的顯著降低,從而節(jié)省了搜索成本,使得回溯算法NCCSP-BT(variant)的時(shí)間性能比原算法NCCSP-BT得到了明顯的改善。在前向檢查算法上,原算法變體(NCCSPNFC4(variant)和 NCCSP-NFC5(variant))相對(duì)原算法(NCCSP-NFC4、NCCSP-NFC5)而言,其條件約束的檢查次數(shù)顯著減少,也使得其時(shí)間性能均獲得了輕微改善。

    5 結(jié)束語(yǔ)

    本文對(duì)經(jīng)典二元條件約束滿足問(wèn)題進(jìn)行了拓展,給出了非二元條件約束滿足問(wèn)題模型。借鑒求解非二元約束滿足問(wèn)題的傳統(tǒng)回溯算法及幾類前向檢查算法思想,結(jié)合非二元條件的約束滿足問(wèn)題特征,提出了適于求解非二元條件約束滿足問(wèn)題的回溯算法及前向檢查算法。其中,前向檢查算法根據(jù)其在求解過(guò)程中實(shí)施局部一致性方法程度的不同,又細(xì)分為NCCSP-NFC4和NCCSP-NFC5兩種算法。通過(guò)一個(gè)算例演示了三種算法的求解思想,給出了三種算法最壞情況下的時(shí)間復(fù)雜性,指出在嵌入某種優(yōu)化算法(如GAC2001)時(shí),算法NCCSP-NFC4和NCCSP-NFC5最壞情況下具有相同的時(shí)間復(fù)雜性。通過(guò)一個(gè)簡(jiǎn)化的汽車產(chǎn)品配置問(wèn)題實(shí)例闡述了NCCSP的應(yīng)用場(chǎng)景,開(kāi)發(fā)了隨機(jī)生成器并生成了NCCSP測(cè)試實(shí)例,對(duì)三種算法的求解性能進(jìn)行了仿真實(shí)驗(yàn)。實(shí)驗(yàn)結(jié)果發(fā)現(xiàn),在求解難問(wèn)題時(shí),回溯算法 (NCCSP-BT)性能顯著劣于 NCCSPNFC4算法和NCCSP-NFC5算法,而算法NCCSPNFC4和NCCSP-NFC5間的求解性能差異并不顯著。進(jìn)一步分析發(fā)現(xiàn),在中小規(guī)模問(wèn)題中,問(wèn)題本身所呈現(xiàn)的動(dòng)態(tài)性特征越低,越適用于采用算法NCCSP-NFC4求解,而在高動(dòng)態(tài)性特征問(wèn)題中,算法NCCSP-NFC4和NCCSP-NFC5之間的求解性能差異并不顯著。在大規(guī)模問(wèn)題中,算法NCCSPNFC5在求解性能上優(yōu)于算法NCCSP-NFC4。總體而言,算法NCCSP-NFC4和NCCSP-NFC5在求解非二元條件約束滿足問(wèn)題時(shí),不存在一個(gè)普適區(qū)間,某種算法的性能始終優(yōu)于另一種算法;但在不同的某特定區(qū)間,算法 NCCSP-NFC4和 NCCSPNFC5在求解性能上表現(xiàn)出了較顯著的差異。需要指出的是,在本文所提的原算法中,若改變不同類型約束的處理順序,即先處理兼容性約束、再處理激活性約束,則會(huì)對(duì)原算法的性能帶來(lái)一定的改善作用。另外,本文所提的三種算法均為直接求解算法,未來(lái)將提出適用于NCCSP的間接求解算法和啟發(fā)式算法,并比較它們與直接求解算法之間的性能差異。

    [1] WANG Ziwen,LI Zhanshan,AI Yang,et al.Algorithm for solving constraint satisfaction problems based on dynamic value ordering heuristic[J].Computer Integrated Manufacturing Systems,2011,17(4):832-837(in Chinese).[王孜文,李占山,艾 陽(yáng),等.基于動(dòng)態(tài)值啟發(fā)式的約束滿足求解算法[J].計(jì)算機(jī)集成制造系統(tǒng),2011,17(4):832-837.]

    [2] LI Zhanshan,LI Hongbo,ZHANG Yonggang,et al.An approach of solving constraint satisfaction problem based on cycle-cut[J].Chinese Journal of Computers,2011,34(8):1528-1535(in Chinese).[李占山,李宏博,張永剛,等.一種基于環(huán)切割的約束滿足問(wèn)題求解算法[J].計(jì)算機(jī)學(xué)報(bào),2011,34(8):1528-1535.]

    [3] MARIEM T,F(xiàn)EHMI H,PIERRE L.Project scheduling under resource constraints:application of the cumulative global constraint in a decision support framework[J].Computers &Industrial Engineering,2011,61(2):357-363.

    [4] CHEN Hao,JING Ning,LI Jun,et al.Method for changeable resources in electromagnetic detection satellites dynamic scheduling[J].Journal of System Simulation,2009,21(24):7833-7837(in Chinese).[陳 浩,景 寧,李 軍,等.一種適應(yīng)資源變化的電磁探測(cè)衛(wèi)星動(dòng)態(tài)調(diào)度方法[J].系統(tǒng)仿真學(xué)報(bào),2009,21(24):7833-7837.]

    [5] MOUHOUB M,SUKPAN A.Conditional and composite temporal CSPs[J].Applied Intelligence,2012,36(1):90-107.

    [6] ZHANG Lei,LIU Guangfu,HU Di,et al.Green product configuration design based on constraint satisfaction problems[J].Journal of Mechanical Engineering,2010,46(19):117-124(in Chinese).[張 雷,劉光復(fù),胡 迪,等.基于約束滿足問(wèn)題的綠色產(chǎn)品配置設(shè)計(jì)[J].機(jī)械工程學(xué)報(bào),2010,46(19):117-124.]

    [7] ALDANONDO M,VAREILLES M,DJEFEL M.Towards an association of product configuration with production planning[J].International Journal of Mass Customisation,2010,3(4):316-332.

    [8] MITTAL S,F(xiàn)ALKENHAINER B.Dynamic constraint satisfaction problems[C]//Proceedings of the 8th National Conference on Artificial Intelligence.Palo Alto,Cal.,USA:AAAI,1990:25-32

    [9] SCHIEX T,VERFAILLIE G.Nogood recording for static and dynamic constraint satisfaction problems[J].International Journal of Artificial Intelligence Tools,1994,3(2):187-207.[

    10] SABIN M.Towards more efficient solution of conditional constraint satisfaction problems[D].Durham,Nh.,USA:U-niversity of New Hampshire,2003.

    [11] SABIN M,F(xiàn)REUDER E C,WALLACE R J.Greater efficiency for conditional constraint satisfaction[J].Lecture Notes in Computer Science,2833,2003:649-663.

    [12] SABIN D,F(xiàn)REUDER E C.Configuration as composite constraint satisfaction[C]//Proceedings of the Artificial Intelligence and Manufaturing.Palo Ato,Cal.,USA:AAAI Press,1996:153-161.

    [13] ESTHER Gelle.Solving mixed and conditional constraint sat

    isfaction problems[J].Constraints,2003,8(2):107-141.[14] DONG Yang,DONG Ming,CHANG Xiaokun.A dynamic constraint satisfaction approach for configuring structural products under mass customization[J].Engineering Applications of Artificial Intelligence,2012,25(8):1723-1737.

    [15] WANG Lin,WEE-KEONG N G.Hybrid solving algorithms for an extended dynamic constraint satisfaction problem based configuration system[J].Concurrent Engineering:Research and Applications,2012,20(3)223-236.

    [16] RAPHAEL F,BARRY O.Reasoning about conditional constraint specification problems and feature models[J].Artificial Intelligence for Engineering Design,Analysis and Manufacturing,2011,25(2):163-174.

    [17] BESSIERE C,MESEGUER P,F(xiàn)REUDER E C,et al.On forward checking for non-binary constraint satisfaction[J].Aritficial Intelligence,2002,141(1/2):205-224.

    [18] BESSIERE C,REGIN J C,YAP R H C,et al.An optimal coarse-grained arc consistency algorithm[J].Artificial Intelligence,2005,165(2):165-185.

    [19] BESSIERE C,STERGIOU K,WALSH T.Domain filtering consistencies for non-binary constraints[J].Artificial Intelligence,2008,172(6/7):800-822.

    [20] WOODWARD R J,KARAKASHIAN S,CHOUEIRY B Y,et al.Solving difficult CSPs with relational neighborhood consistency[C]//Proceedings of the Conference on Artificial Inteelligence.Palo Ato,Cal.,USA:AAAI Press,2011:112-119.

    [21] BESSIERE C,REGIN J C.Refining the basic constraint propagation algorithm[EB/OL].[2012-05-06].http://citeseerx.ist.psu.edu/viewdoc/download?doi=10.1.1.123.8012&rep=rep&type=pdf.

    [22] MITTAL S,F(xiàn)RAYMAN F.Towards a generic model of

    configuration tasks[C]//Proceedings of the 10th International Joint Conference on Artificial Intelligence.San Fancisco,Cal.,USA:Morgan Kaufmann,1989:1395-1401.

    国产精品女同一区二区软件 | 亚洲精品国产精品久久久不卡| 波多野结衣高清作品| 国产一区二区激情短视频| 叶爱在线成人免费视频播放| 免费在线观看成人毛片| 国产亚洲精品av在线| 国产高清视频在线播放一区| 亚洲国产精品sss在线观看| 午夜福利免费观看在线| 亚洲精品影视一区二区三区av| 欧美乱妇无乱码| 国产精品美女特级片免费视频播放器| 久久久久久久亚洲中文字幕 | 久久精品国产清高在天天线| 久久亚洲真实| av黄色大香蕉| 国产成人a区在线观看| 黄色成人免费大全| 免费av毛片视频| 久久6这里有精品| 欧美3d第一页| 一卡2卡三卡四卡精品乱码亚洲| 一本综合久久免费| 精华霜和精华液先用哪个| 18禁在线播放成人免费| 狂野欧美激情性xxxx| 国产亚洲精品av在线| 日韩精品青青久久久久久| 国产国拍精品亚洲av在线观看 | 国产精品乱码一区二三区的特点| avwww免费| 最近最新中文字幕大全免费视频| 蜜桃亚洲精品一区二区三区| www日本在线高清视频| 女人高潮潮喷娇喘18禁视频| 欧美成人性av电影在线观看| 老司机午夜福利在线观看视频| 国产伦精品一区二区三区四那| 成人精品一区二区免费| 12—13女人毛片做爰片一| 亚洲专区中文字幕在线| 亚洲精品粉嫩美女一区| 午夜激情福利司机影院| 在线国产一区二区在线| 在线视频色国产色| 国产精品久久久久久人妻精品电影| 老司机午夜福利在线观看视频| 搞女人的毛片| 久久亚洲精品不卡| 嫁个100分男人电影在线观看| 国内久久婷婷六月综合欲色啪| 一级毛片高清免费大全| 亚洲乱码一区二区免费版| 中文字幕熟女人妻在线| 女人被狂操c到高潮| 搡老熟女国产l中国老女人| 国产精品影院久久| 国产黄色小视频在线观看| 欧美丝袜亚洲另类 | 国产在线精品亚洲第一网站| 12—13女人毛片做爰片一| 床上黄色一级片| 别揉我奶头~嗯~啊~动态视频| 国产色婷婷99| 免费在线观看影片大全网站| 久久久国产精品麻豆| 亚洲人与动物交配视频| 欧美乱色亚洲激情| 国产主播在线观看一区二区| 亚洲av免费高清在线观看| 夜夜躁狠狠躁天天躁| 国产一区二区三区视频了| 亚洲精品色激情综合| 午夜精品在线福利| 18+在线观看网站| 欧美又色又爽又黄视频| 亚洲av熟女| 欧美极品一区二区三区四区| 熟女电影av网| 有码 亚洲区| 女警被强在线播放| 91九色精品人成在线观看| 人人妻人人澡欧美一区二区| 国产精品 国内视频| 日本在线视频免费播放| 人妻夜夜爽99麻豆av| 国产一区二区激情短视频| 午夜激情福利司机影院| 老熟妇乱子伦视频在线观看| 国产高清视频在线观看网站| 在线免费观看不下载黄p国产 | 国产探花在线观看一区二区| 我的老师免费观看完整版| 19禁男女啪啪无遮挡网站| 国产精品美女特级片免费视频播放器| 久久精品国产亚洲av涩爱 | 欧美在线一区亚洲| 午夜福利成人在线免费观看| 婷婷精品国产亚洲av| 国产欧美日韩一区二区三| 国产成人影院久久av| 亚洲人成网站高清观看| 老熟妇仑乱视频hdxx| 久久久国产精品麻豆| 欧美丝袜亚洲另类 | 亚洲午夜理论影院| 亚洲片人在线观看| 最近在线观看免费完整版| 丁香六月欧美| 中文字幕人成人乱码亚洲影| 欧美在线一区亚洲| 免费人成在线观看视频色| 男人舔奶头视频| 99国产综合亚洲精品| aaaaa片日本免费| 一本综合久久免费| 丰满人妻一区二区三区视频av | 麻豆成人av在线观看| 亚洲,欧美精品.| 国产欧美日韩一区二区精品| 天天一区二区日本电影三级| 亚洲国产欧洲综合997久久,| 欧美一级毛片孕妇| 日本成人三级电影网站| 亚洲熟妇中文字幕五十中出| aaaaa片日本免费| 日韩国内少妇激情av| 99久久精品热视频| 在线免费观看不下载黄p国产 | 人人妻人人看人人澡| 久久人人精品亚洲av| 亚洲欧美一区二区三区黑人| 久久国产精品人妻蜜桃| 日韩人妻高清精品专区| 成人午夜高清在线视频| 淫妇啪啪啪对白视频| 在线观看av片永久免费下载| 亚洲七黄色美女视频| svipshipincom国产片| 亚洲精品在线美女| av在线天堂中文字幕| 欧美极品一区二区三区四区| 国产高清视频在线播放一区| 精品一区二区三区视频在线 | 久久天躁狠狠躁夜夜2o2o| 国产在线精品亚洲第一网站| 91av网一区二区| 精品久久久久久久末码| 日韩欧美在线乱码| 精品国产美女av久久久久小说| 久久午夜亚洲精品久久| 又黄又爽又免费观看的视频| 国产三级黄色录像| 国产精品久久电影中文字幕| 动漫黄色视频在线观看| 欧美日韩乱码在线| 一级毛片女人18水好多| 美女免费视频网站| 成人av在线播放网站| 好看av亚洲va欧美ⅴa在| 久久婷婷人人爽人人干人人爱| 欧美乱妇无乱码| 欧美高清成人免费视频www| 国产一区二区在线观看日韩 | 欧美日韩精品网址| 亚洲国产欧洲综合997久久,| 校园春色视频在线观看| 精品人妻偷拍中文字幕| 亚洲精品影视一区二区三区av| 99热精品在线国产| 最新中文字幕久久久久| 精品熟女少妇八av免费久了| 国产精品98久久久久久宅男小说| av在线天堂中文字幕| 尤物成人国产欧美一区二区三区| 2021天堂中文幕一二区在线观| 99国产精品一区二区蜜桃av| 麻豆一二三区av精品| 少妇丰满av| 久久九九热精品免费| 午夜日韩欧美国产| 国产精品av视频在线免费观看| 久9热在线精品视频| 久久精品亚洲精品国产色婷小说| 欧美午夜高清在线| 国产97色在线日韩免费| 不卡一级毛片| 亚洲av一区综合| 最近最新中文字幕大全电影3| 国产精品影院久久| 欧美成狂野欧美在线观看| 91九色精品人成在线观看| 色综合亚洲欧美另类图片| 可以在线观看的亚洲视频| 757午夜福利合集在线观看| 97超视频在线观看视频| 精品久久久久久成人av| 人人妻人人澡欧美一区二区| 久久久国产成人免费| 伊人久久精品亚洲午夜| 亚洲精品色激情综合| 又爽又黄无遮挡网站| 精品国产亚洲在线| 母亲3免费完整高清在线观看| 啦啦啦观看免费观看视频高清| 美女大奶头视频| 午夜福利视频1000在线观看| 老熟妇乱子伦视频在线观看| 欧美性感艳星| 日日摸夜夜添夜夜添小说| www日本黄色视频网| 国产精品嫩草影院av在线观看 | 老司机午夜福利在线观看视频| 动漫黄色视频在线观看| 天天躁日日操中文字幕| 搞女人的毛片| 午夜福利免费观看在线| 国产色婷婷99| 精品国产美女av久久久久小说| 亚洲欧美激情综合另类| 身体一侧抽搐| 久久久久国内视频| www日本在线高清视频| 少妇的逼好多水| 老司机福利观看| 免费在线观看影片大全网站| a在线观看视频网站| 中文资源天堂在线| 久久精品综合一区二区三区| 亚洲av成人精品一区久久| 无遮挡黄片免费观看| 国产亚洲精品久久久com| 两性午夜刺激爽爽歪歪视频在线观看| a级毛片a级免费在线| 国产精品永久免费网站| 91av网一区二区| av女优亚洲男人天堂| 日韩精品中文字幕看吧| 叶爱在线成人免费视频播放| 真人做人爱边吃奶动态| 深夜精品福利| 日本在线视频免费播放| 中文字幕人成人乱码亚洲影| 亚洲一区高清亚洲精品| 国产高清视频在线播放一区| 国产亚洲av嫩草精品影院| 欧美绝顶高潮抽搐喷水| 舔av片在线| 最近最新中文字幕大全电影3| 少妇人妻一区二区三区视频| 在线看三级毛片| 欧美三级亚洲精品| 日本 欧美在线| 亚洲无线观看免费| a级毛片a级免费在线| 久久国产精品人妻蜜桃| 久久久成人免费电影| av片东京热男人的天堂| 男人舔奶头视频| 免费观看的影片在线观看| 一个人看视频在线观看www免费 | 国产精品国产高清国产av| 综合色av麻豆| 国产伦精品一区二区三区四那| 欧美午夜高清在线| svipshipincom国产片| 亚洲乱码一区二区免费版| 麻豆成人午夜福利视频| 欧美日韩黄片免| 亚洲aⅴ乱码一区二区在线播放| 午夜视频国产福利| 亚洲内射少妇av| 天堂影院成人在线观看| 婷婷六月久久综合丁香| 欧美成人免费av一区二区三区| 国产三级中文精品| 精品欧美国产一区二区三| 一个人看的www免费观看视频| 欧美性猛交╳xxx乱大交人| 脱女人内裤的视频| 岛国视频午夜一区免费看| 亚洲人成网站在线播| 日本五十路高清| 99在线视频只有这里精品首页| 变态另类成人亚洲欧美熟女| 丝袜美腿在线中文| 日韩精品中文字幕看吧| 欧美成人性av电影在线观看| 国产探花极品一区二区| 制服丝袜大香蕉在线| 国产伦精品一区二区三区四那| 国产精品,欧美在线| 老司机福利观看| 婷婷精品国产亚洲av在线| 亚洲av免费高清在线观看| 免费av不卡在线播放| 亚洲七黄色美女视频| 国产亚洲精品综合一区在线观看| 色综合站精品国产| 欧美最黄视频在线播放免费| 波多野结衣高清作品| 天堂影院成人在线观看| 国产欧美日韩一区二区三| 老司机福利观看| 国产野战对白在线观看| 久久久久性生活片| 日韩精品青青久久久久久| 最近在线观看免费完整版| 女同久久另类99精品国产91| 一边摸一边抽搐一进一小说| 三级男女做爰猛烈吃奶摸视频| 一级黄色大片毛片| 夜夜爽天天搞| 国产黄片美女视频| 日韩av在线大香蕉| 国内精品一区二区在线观看| 亚洲欧美日韩卡通动漫| 国产精品一区二区三区四区免费观看 | 丝袜美腿在线中文| 国产探花在线观看一区二区| 久久精品影院6| xxx96com| 亚洲国产欧洲综合997久久,| 午夜精品一区二区三区免费看| 九九久久精品国产亚洲av麻豆| 午夜福利成人在线免费观看| 午夜a级毛片| 精品午夜福利视频在线观看一区| eeuss影院久久| 欧美黄色淫秽网站| 国产午夜精品久久久久久一区二区三区 | 国产欧美日韩精品一区二区| 国产精品一及| 九色国产91popny在线| 99久久精品热视频| 午夜久久久久精精品| 国内揄拍国产精品人妻在线| svipshipincom国产片| 国产精品香港三级国产av潘金莲| 蜜桃久久精品国产亚洲av| 中文字幕人成人乱码亚洲影| 亚洲第一欧美日韩一区二区三区| 亚洲自拍偷在线| 亚洲欧美激情综合另类| 久久人人精品亚洲av| 日本撒尿小便嘘嘘汇集6| 日本免费一区二区三区高清不卡| 国产精品美女特级片免费视频播放器| 男人舔奶头视频| 热99re8久久精品国产| 99久久久亚洲精品蜜臀av| tocl精华| 免费在线观看影片大全网站| 国产精品美女特级片免费视频播放器| 久久精品人妻少妇| xxxwww97欧美| 色在线成人网| 老司机福利观看| 91av网一区二区| 国产成人欧美在线观看| 亚洲自拍偷在线| 欧美3d第一页| 美女免费视频网站| 无人区码免费观看不卡| 在线天堂最新版资源| 精品久久久久久久末码| 欧美精品啪啪一区二区三区| 色综合站精品国产| 国产精品野战在线观看| 欧美日韩中文字幕国产精品一区二区三区| netflix在线观看网站| 丰满乱子伦码专区| 亚洲成av人片在线播放无| 欧美日韩中文字幕国产精品一区二区三区| 久久精品国产综合久久久| 淫秽高清视频在线观看| 国产成+人综合+亚洲专区| 日本免费a在线| 91在线观看av| 在线观看美女被高潮喷水网站 | av福利片在线观看| 国模一区二区三区四区视频| 午夜福利在线观看免费完整高清在 | 99热6这里只有精品| 日韩欧美国产一区二区入口| 国产单亲对白刺激| 亚洲精品日韩av片在线观看 | 成人国产一区最新在线观看| 欧美色欧美亚洲另类二区| 国产野战对白在线观看| 亚洲av不卡在线观看| 国产精品香港三级国产av潘金莲| av黄色大香蕉| 老汉色av国产亚洲站长工具| 啦啦啦韩国在线观看视频| 19禁男女啪啪无遮挡网站| a级一级毛片免费在线观看| 90打野战视频偷拍视频| 国产精品亚洲美女久久久| 亚洲欧美一区二区三区黑人| 欧美最新免费一区二区三区 | 黄色片一级片一级黄色片| 久久久久亚洲av毛片大全| 免费在线观看成人毛片| 啦啦啦免费观看视频1| 人妻久久中文字幕网| 久久精品夜夜夜夜夜久久蜜豆| 国产av一区在线观看免费| 国产私拍福利视频在线观看| 精品国内亚洲2022精品成人| 淫秽高清视频在线观看| 国产精品乱码一区二三区的特点| 午夜福利在线观看吧| 午夜两性在线视频| 操出白浆在线播放| 亚洲欧美日韩无卡精品| 亚洲国产中文字幕在线视频| 亚洲,欧美精品.| 脱女人内裤的视频| 极品教师在线免费播放| 亚洲av五月六月丁香网| 国产亚洲av嫩草精品影院| 每晚都被弄得嗷嗷叫到高潮| 一级黄片播放器| 在线视频色国产色| 国产av一区在线观看免费| 欧美黑人欧美精品刺激| 在线国产一区二区在线| av视频在线观看入口| 欧美日韩精品网址| 午夜精品在线福利| av天堂在线播放| 国产v大片淫在线免费观看| 在线观看一区二区三区| 国产成人a区在线观看| 女生性感内裤真人,穿戴方法视频| 免费av观看视频| 国产伦人伦偷精品视频| 国产精品1区2区在线观看.| 俺也久久电影网| 12—13女人毛片做爰片一| 老司机午夜十八禁免费视频| 在线观看一区二区三区| 淫妇啪啪啪对白视频| 成人特级av手机在线观看| 波野结衣二区三区在线 | 色尼玛亚洲综合影院| 久久中文看片网| 国产欧美日韩精品一区二区| 我要搜黄色片| 国产老妇女一区| 99精品久久久久人妻精品| 精品人妻1区二区| 老司机福利观看| 18禁国产床啪视频网站| 少妇的逼水好多| 91在线精品国自产拍蜜月 | 中文字幕精品亚洲无线码一区| 亚洲国产精品sss在线观看| 色尼玛亚洲综合影院| 波多野结衣高清作品| 久久精品国产综合久久久| 丝袜美腿在线中文| 精品一区二区三区人妻视频| 日本黄色片子视频| 免费av毛片视频| 成人欧美大片| 欧美成人性av电影在线观看| 动漫黄色视频在线观看| 欧美色欧美亚洲另类二区| av欧美777| 久久人妻av系列| 久久久国产精品麻豆| 少妇熟女aⅴ在线视频| 午夜免费激情av| 日本免费一区二区三区高清不卡| 特大巨黑吊av在线直播| 精品乱码久久久久久99久播| 一区二区三区国产精品乱码| 亚洲av熟女| 久久精品91蜜桃| 黄色片一级片一级黄色片| 亚洲精品成人久久久久久| 国产高清videossex| 国产精品三级大全| 亚洲国产精品合色在线| 真人一进一出gif抽搐免费| 2021天堂中文幕一二区在线观| 亚洲国产精品久久男人天堂| 757午夜福利合集在线观看| 久久久久九九精品影院| 久久欧美精品欧美久久欧美| 国产久久久一区二区三区| АⅤ资源中文在线天堂| 搞女人的毛片| 禁无遮挡网站| av中文乱码字幕在线| 久久伊人香网站| 少妇的逼好多水| 两性午夜刺激爽爽歪歪视频在线观看| 午夜福利视频1000在线观看| 免费看a级黄色片| 黄色丝袜av网址大全| 国产精品三级大全| 婷婷亚洲欧美| 亚洲人成电影免费在线| 啦啦啦免费观看视频1| 国产成人a区在线观看| 深爱激情五月婷婷| 国产老妇女一区| 美女 人体艺术 gogo| 热99在线观看视频| 成人欧美大片| 色播亚洲综合网| 久久久久久人人人人人| 一卡2卡三卡四卡精品乱码亚洲| 久久久久久久久久黄片| 欧美+日韩+精品| 黄片大片在线免费观看| 村上凉子中文字幕在线| 亚洲天堂国产精品一区在线| 黄色视频,在线免费观看| 日本成人三级电影网站| 欧美色欧美亚洲另类二区| 一进一出好大好爽视频| 在线观看舔阴道视频| 欧美xxxx黑人xx丫x性爽| 欧美一区二区精品小视频在线| 精品日产1卡2卡| 哪里可以看免费的av片| 在线十欧美十亚洲十日本专区| 久久午夜亚洲精品久久| 精华霜和精华液先用哪个| 午夜精品一区二区三区免费看| 午夜亚洲福利在线播放| 三级国产精品欧美在线观看| 欧美一级毛片孕妇| 亚洲内射少妇av| 成年版毛片免费区| 午夜激情福利司机影院| 欧美午夜高清在线| 国产午夜精品论理片| 国产亚洲av嫩草精品影院| 色在线成人网| 亚洲欧美日韩高清在线视频| 女人十人毛片免费观看3o分钟| 悠悠久久av| 亚洲人成网站在线播| 国产一区二区亚洲精品在线观看| 欧美不卡视频在线免费观看| 亚洲人成电影免费在线| 99久久精品热视频| 在线观看舔阴道视频| 男人的好看免费观看在线视频| 久久国产乱子伦精品免费另类| 亚洲av成人精品一区久久| 男女之事视频高清在线观看| 亚洲成人久久性| 欧美中文综合在线视频| 一个人免费在线观看的高清视频| 九九在线视频观看精品| 成人鲁丝片一二三区免费| 国产精品一区二区三区四区久久| 国产探花极品一区二区| 在线观看日韩欧美| 国产蜜桃级精品一区二区三区| 久久精品国产综合久久久| 日本一二三区视频观看| 亚洲国产精品sss在线观看| 国产探花在线观看一区二区| 99久久无色码亚洲精品果冻| 国产精品影院久久| 国产高清三级在线| 亚洲欧美日韩卡通动漫| 欧美+亚洲+日韩+国产| 中文在线观看免费www的网站| 听说在线观看完整版免费高清| 亚洲精品在线美女| 人妻久久中文字幕网| 亚洲av日韩精品久久久久久密| 日本成人三级电影网站| 久久精品国产99精品国产亚洲性色| 十八禁网站免费在线| 精品福利观看| 免费在线观看亚洲国产| 欧美黄色片欧美黄色片| 日韩精品中文字幕看吧| 在线免费观看不下载黄p国产 | 日本 av在线| 亚洲国产日韩欧美精品在线观看 | 久久人人精品亚洲av| 一级毛片女人18水好多| 亚洲精品影视一区二区三区av| 最好的美女福利视频网| 久久久久久久亚洲中文字幕 | 久久伊人香网站| 欧美一区二区亚洲| 一区二区三区高清视频在线| 人妻久久中文字幕网| 噜噜噜噜噜久久久久久91| 日韩中文字幕欧美一区二区| 老司机福利观看| 国产一区二区三区在线臀色熟女| 国产午夜福利久久久久久| 1000部很黄的大片| 色尼玛亚洲综合影院| 少妇裸体淫交视频免费看高清| 亚洲成人久久性| 国产高清videossex| а√天堂www在线а√下载| 成人国产一区最新在线观看| 男女那种视频在线观看| 99久久无色码亚洲精品果冻| 久久人人精品亚洲av|