專利名稱:多方交易系統(tǒng)及交易方法
技術(shù)領(lǐng)域:
本發(fā)明屬于計(jì)算機(jī)網(wǎng)絡(luò)技術(shù)領(lǐng)域,涉及一種交易系統(tǒng),尤其涉及一種多方交易系統(tǒng);同時(shí),本發(fā)明還涉及一種多方交易方法。
背景技術(shù):
物物交換是常見(jiàn)的交易方式。用戶將自己想要的物品或者自己所擁有的物品信息發(fā)布到互聯(lián)網(wǎng)上,其他人看到后,如果滿足他的需求,和信息發(fā)布者聯(lián)系,雙方達(dá)成交換意向,完成交易。。然而,如果A想要B的東西,但是B不想要A的東西,卻想要C的東西,那么交易方案無(wú)法在A,B之間形成。一旦交易方案的形成牽涉到第三方的介入,就難以通過(guò)傳統(tǒng)的信息發(fā)布方式來(lái)完成,只有很好地解決信息不對(duì)稱的問(wèn)題,才能促成交易方案的形成。隨著參加交易的人數(shù)的增加,更多方的交易方案幾乎是無(wú)法通過(guò)用戶人為的尋找來(lái)形成的。正因?yàn)檫@一模式和技術(shù)上的壁壘,當(dāng)前的物物交換都是一對(duì)一的兩方交易,卻損失了更多潛在的、充滿樂(lè)趣的、多方交易的可能性。
發(fā)明內(nèi)容
本發(fā)明所要解決的技術(shù)問(wèn)題是提供一種多方交易系統(tǒng),通過(guò)對(duì)有向圖的分析,計(jì)算出已經(jīng)形成的交易方案和推薦的交易方案,挖掘潛在的交易可能。此外,本發(fā)明進(jìn)一步提供一種多方交易方法,通過(guò)對(duì)有向圖的分析,計(jì)算出已經(jīng)形成的交易方案和推薦的交易方案,挖掘潛在的交易可能。為解決上述技術(shù)問(wèn)題,本發(fā)明采用如下技術(shù)方案一種多方交易系統(tǒng),其特征在于,所述系統(tǒng)包括交易信息輸入模塊,用以輸入交易請(qǐng)求信息,并將交易請(qǐng)求信息保存至數(shù)據(jù)庫(kù)中; 所述交易請(qǐng)求信息包括被交易物信息、需求信息,被交易物信息、需求信息均為一種或多種方案;核心引擎模塊,用以讀取所述數(shù)據(jù)庫(kù)中的各交易請(qǐng)求信息,將交易請(qǐng)求信息中的被交易物信息抽象化為有向圖中的節(jié)點(diǎn),將交易請(qǐng)求數(shù)據(jù)抽象化為有向圖中的邊,將交易期望和交易地點(diǎn)轉(zhuǎn)化為相應(yīng)的屬性以及權(quán)值,附著到對(duì)應(yīng)的節(jié)點(diǎn)和有向邊上;然后對(duì)整個(gè)有向圖進(jìn)行聚合,關(guān)聯(lián)所有的節(jié)點(diǎn)以及有向邊,構(gòu)建一個(gè)有向圖網(wǎng)絡(luò);并按照交易期望以及交易地點(diǎn)屬性過(guò)濾輸出結(jié)果;方案輸出模塊,用以將核心引擎模塊產(chǎn)生的有向圖信息重新轉(zhuǎn)化為交易信息,得到交易方案,并分配到對(duì)應(yīng)的用戶和物品,完成數(shù)據(jù)的重組。作為本發(fā)明的一種優(yōu)選方案,所述核心引擎模塊基于圖論中的有向圖理論來(lái)抽象真實(shí)世界中的交易問(wèn)題;所述核心引擎模塊包括抽象化單元,用以將數(shù)據(jù)庫(kù)中存在的物品數(shù)據(jù)抽象為有向圖中的節(jié)點(diǎn),將數(shù)據(jù)庫(kù)中記錄的交易請(qǐng)求數(shù)據(jù)抽象為有向邊,將輸入的交易期望以及交易地點(diǎn),轉(zhuǎn)化為對(duì)應(yīng)的屬性附加到對(duì)應(yīng)的節(jié)點(diǎn)和有向邊上;系統(tǒng)初次啟動(dòng)時(shí),對(duì)數(shù)據(jù)庫(kù)中的所有交易信息以及物品信息進(jìn)行一次完整的掃描,從而構(gòu)建出當(dāng)前狀態(tài)下的有向圖網(wǎng)絡(luò);聚合單元,用以將所述有向圖網(wǎng)絡(luò)矩陣化,然后通過(guò)搜索算法找到當(dāng)前狀態(tài)整個(gè)有向圖網(wǎng)絡(luò)中的節(jié)點(diǎn)的相關(guān)信息,對(duì)部分信息在內(nèi)存中做臨時(shí)性的保留;分析單元,用以檢查節(jié)點(diǎn)和有向邊上的交易期望和交易地點(diǎn)屬性,過(guò)濾掉不符合要求的數(shù)據(jù),并導(dǎo)出最后交易方案。作為本發(fā)明的一種優(yōu)選方案,所述核心引擎模塊進(jìn)一步提供了一個(gè)客戶端接口, 留給外部系統(tǒng)調(diào)用修改以及查詢有向圖的狀態(tài);接口內(nèi)容包括修改操作、查詢操作、初始化操作、數(shù)據(jù)同步;修改操作包含增加一個(gè)節(jié)點(diǎn)、刪除一個(gè)節(jié)點(diǎn)、增加一條有向邊、刪除一條有向邊、 修改節(jié)點(diǎn)參數(shù);增加一條有向邊之后,需調(diào)整與這條邊相關(guān)的交易方案;查詢操作包括(1)查詢某條邊的半環(huán)數(shù),這個(gè)方法返回這條邊的半環(huán)數(shù);(2)查詢某條邊的半環(huán),返回這條邊的半環(huán)集合;(3)查詢某條邊的環(huán)路數(shù),返回這條邊的環(huán)路數(shù);(4)查詢某條邊的環(huán)路,返回這條邊的環(huán)路集合;(5)查詢兩點(diǎn)間的路徑,返回兩點(diǎn)間的路徑集合;其中,所述半環(huán)指再補(bǔ)上一條有向邊即可形成環(huán)路的有向圖網(wǎng)絡(luò),所述環(huán)路指從一個(gè)節(jié)點(diǎn)出發(fā),沿著有向邊前進(jìn),最終回到這個(gè)節(jié)點(diǎn)的有向圖網(wǎng)絡(luò);初始化操作在系統(tǒng)啟動(dòng)時(shí)被調(diào)用,根據(jù)電子數(shù)據(jù)庫(kù)完成有向圖網(wǎng)絡(luò)的構(gòu)建;為了防止保存在電子數(shù)據(jù)庫(kù)中的數(shù)據(jù)與內(nèi)存中的有向圖數(shù)據(jù)不一致,需要手動(dòng)調(diào)用數(shù)據(jù)同步服務(wù),從有向圖中計(jì)算輸出所有必要的數(shù)據(jù)并同步到數(shù)據(jù)庫(kù)。作為本發(fā)明的一種優(yōu)選方案,所述核心引擎模塊進(jìn)一步包括定時(shí)更新單元,負(fù)責(zé)定時(shí)從有向圖網(wǎng)絡(luò)中計(jì)算出最近變化的數(shù)據(jù)并輸出;對(duì)整個(gè)有向圖網(wǎng)絡(luò)有一個(gè)變化標(biāo)志,表示最近這張圖的結(jié)構(gòu)是否發(fā)生變化,如果沒(méi)有變化,定時(shí)服務(wù)沒(méi)有必要執(zhí)行;如果有變化,定時(shí)服務(wù)才會(huì)計(jì)算并輸出; 對(duì)每一條邊同樣有一個(gè)變化標(biāo)志,表示這條邊是新增加的,還是已經(jīng)被刪除的;對(duì)每一個(gè)節(jié)點(diǎn)也有一個(gè)變化標(biāo)志,表示這個(gè)節(jié)點(diǎn)的參數(shù)是否有變化。作為本發(fā)明的一種優(yōu)選方案,所述定時(shí)更新單元每隔一定的時(shí)間輪詢有向圖網(wǎng)絡(luò);如果有向圖網(wǎng)絡(luò)的狀態(tài)為“未變化”,則什么都不需要做;如果狀態(tài)變?yōu)椤白兓?,則查找有向圖中所有的標(biāo)記為“新增加”或者“已刪除”的有向邊,以及標(biāo)記為“已修改”的節(jié)點(diǎn),根據(jù)這些節(jié)點(diǎn)和有向邊,計(jì)算出有向圖中的變化并輸出;設(shè)置整個(gè)有向圖的狀態(tài)為“未變化”,將圖中的每個(gè)節(jié)點(diǎn)、每條有向邊都標(biāo)志為“未變化”。作為本發(fā)明的一種優(yōu)選方案,所述方案輸出模塊將核心引擎模塊獲得有向圖的輸出,包括環(huán)路和半環(huán)數(shù)據(jù),并將其重新轉(zhuǎn)化、重組為交易數(shù)據(jù),保存到數(shù)據(jù)庫(kù);一個(gè)環(huán)路表示的是一個(gè)已經(jīng)形成了的交易方案,其中的有向邊表示用戶之間的交易請(qǐng)求,其中的節(jié)點(diǎn)表示參與其中的用戶所拿出的錢或者物品或者錢和物品的打包;一個(gè)半環(huán)表示一個(gè)推薦的交易方案,其中的有向邊表示用戶之間的交易請(qǐng)求,其中的節(jié)點(diǎn)表示參與其中的用戶所拿出的錢或者物品或者錢和物品的打包,缺少的一條有向邊表示最后需要被推薦的交易請(qǐng)求;所述核心引擎模塊輸出的環(huán)路和半環(huán),系統(tǒng)需要先對(duì)它們進(jìn)行節(jié)點(diǎn)和有向邊的分解,重新將其中的節(jié)點(diǎn)轉(zhuǎn)為數(shù)據(jù)庫(kù)中對(duì)應(yīng)的物品或者錢,將有向邊轉(zhuǎn)為對(duì)應(yīng)的交易請(qǐng)求數(shù)據(jù);并且分析得出參與其中的用戶,同時(shí)從數(shù)據(jù)庫(kù)中讀取必要的交易信息以及用戶信息;然后對(duì)這些數(shù)據(jù)進(jìn)行整合及歸類,將這些數(shù)據(jù)還原,得到真實(shí)世界中的交易方案以及推薦的交易方案,保存到數(shù)據(jù)庫(kù)。一種多方交易系統(tǒng),所述系統(tǒng)包括交易信息輸入模塊,用以輸入交易請(qǐng)求信息,并將交易請(qǐng)求信息保存至數(shù)據(jù)庫(kù)中; 所述交易請(qǐng)求信息包括被交易物信息、需求信息,被交易物信息、需求信息均為一種或多種方案;核心引擎模塊,用以讀取所述數(shù)據(jù)庫(kù)中的各交易請(qǐng)求信息,將交易請(qǐng)求信息中的被交易物信息抽象化為有向圖中的節(jié)點(diǎn),將匹配的交易抽象化為有向圖中的邊;然后對(duì)整個(gè)有向圖進(jìn)行聚合,關(guān)聯(lián)所有的節(jié)點(diǎn)以及有向邊,構(gòu)建一個(gè)有向圖網(wǎng)絡(luò);方案輸出模塊,用以將引擎模塊產(chǎn)生的有向圖信息重新轉(zhuǎn)化為交易信息,得到交易方案,并分配到對(duì)應(yīng)的用戶和物品,完成數(shù)據(jù)的重組。一種多方交易方法,所述方法包括如下步驟交易信息輸入步驟,輸入交易請(qǐng)求信息,并將交易請(qǐng)求信息保存至數(shù)據(jù)庫(kù)中;所述交易請(qǐng)求信息包括被交易物信息、需求信息,被交易物信息、需求信息均為一種或多種方案;核心引擎步驟,讀取所述數(shù)據(jù)庫(kù)中的各交易請(qǐng)求信息,將交易請(qǐng)求信息中的被交易物信息抽象化為有向圖中的節(jié)點(diǎn),將匹配的交易抽象化為有向圖中的邊;然后對(duì)整個(gè)有向圖進(jìn)行聚合,關(guān)聯(lián)所有的節(jié)點(diǎn)以及有向邊,構(gòu)建一個(gè)有向圖網(wǎng)絡(luò);方案輸出步驟,將核心引擎步驟產(chǎn)生的有向圖信息重新轉(zhuǎn)化為交易信息,得到交易方案,并分配到對(duì)應(yīng)的用戶和物品,完成數(shù)據(jù)的重組。作為本發(fā)明的一種優(yōu)選方案,所述核心引擎步驟包括抽象化步驟,將數(shù)據(jù)庫(kù)中存在的物品數(shù)據(jù)抽象為有向圖中的節(jié)點(diǎn),將數(shù)據(jù)庫(kù)中記錄的交易請(qǐng)求數(shù)據(jù)抽象為有向邊,將輸入的交易期望以及交易地點(diǎn),轉(zhuǎn)化為對(duì)應(yīng)的屬性附加到對(duì)應(yīng)的節(jié)點(diǎn)和有向邊上;系統(tǒng)初次啟動(dòng)時(shí),對(duì)數(shù)據(jù)庫(kù)中的所有交易信息以及物品信息進(jìn)行一次完整的掃描,從而構(gòu)建出當(dāng)前狀態(tài)下的有向圖網(wǎng)絡(luò);聚合步驟,將所述有向圖網(wǎng)絡(luò)矩陣化,然后通過(guò)搜索算法找到當(dāng)前狀態(tài)整個(gè)有向圖網(wǎng)絡(luò)中的節(jié)點(diǎn)的相關(guān)信息,對(duì)部分信息在內(nèi)存中做臨時(shí)性的保留;分析步驟,檢查節(jié)點(diǎn)和有向邊上的交易期望和交易地點(diǎn)屬性,過(guò)濾掉不符合要求的數(shù)據(jù),并導(dǎo)出最后交易方案。作為本發(fā)明的一種優(yōu)選方案,所述核心引擎步驟進(jìn)一步提供了一個(gè)客戶端接口, 留給外部系統(tǒng)調(diào)用修改以及查詢有向圖的狀態(tài);接口內(nèi)容包括修改操作、查詢操作、初始化操作、數(shù)據(jù)同步;修改操作包含增加一個(gè)節(jié)點(diǎn)、刪除一個(gè)節(jié)點(diǎn)、增加一條有向邊、刪除一條有向邊、 修改節(jié)點(diǎn)參數(shù);增加一條有向邊之后,需調(diào)整與這條邊相關(guān)的交易方案;查詢操作包括(1)查詢某條邊的半環(huán)數(shù),這個(gè)方法返回這條邊的半環(huán)數(shù);(2)查詢某條邊的半環(huán),返回這條邊的半環(huán)集合;(3)查詢某條邊的環(huán)路數(shù),返回這條邊的環(huán)路數(shù);(4)查詢某條邊的環(huán)路,返回這條邊的環(huán)路集合;(5)查詢兩點(diǎn)間的路徑,返回兩點(diǎn)間的路徑集合;其中,所述半環(huán)指再補(bǔ)上一條有向邊即可形成環(huán)路的有向圖網(wǎng)絡(luò),所述環(huán)路指從一個(gè)節(jié)點(diǎn)出發(fā),沿著有向邊前進(jìn),最終回到這個(gè)節(jié)點(diǎn)的有向圖網(wǎng)絡(luò);初始化操作在系統(tǒng)啟動(dòng)時(shí)被調(diào)用,根據(jù)電子數(shù)據(jù)庫(kù)完成有向圖網(wǎng)絡(luò)的構(gòu)建;數(shù)據(jù)同步為了防止保存在電子數(shù)據(jù)庫(kù)中的數(shù)據(jù)與內(nèi)存中的有向圖數(shù)據(jù)不一致,所以手動(dòng)調(diào)用,從有向圖中計(jì)算輸出所有必要的數(shù)據(jù)并同步到數(shù)據(jù)庫(kù)。作為本發(fā)明的一種優(yōu)選方案,所述核心引擎步驟進(jìn)一步包括定時(shí)更新步驟,負(fù)責(zé)定時(shí)從有向圖網(wǎng)絡(luò)中計(jì)算出最近變化的數(shù)據(jù)并輸出;對(duì)整個(gè)有向圖網(wǎng)絡(luò)有一個(gè)變化標(biāo)志,表示最近這張圖的結(jié)構(gòu)是否發(fā)生變化,如果沒(méi)有變化,定時(shí)服務(wù)沒(méi)有必要執(zhí)行;如果有變化,定時(shí)服務(wù)才會(huì)計(jì)算并輸出;對(duì)每一條邊同樣有一個(gè)變化標(biāo)志,表示這條邊是新增加的,還是已經(jīng)被刪除的;對(duì)每一個(gè)節(jié)點(diǎn)也有一個(gè)變化標(biāo)志,表示這個(gè)節(jié)點(diǎn)的參數(shù)是否有變化。作為本發(fā)明的一種優(yōu)選方案,所述定時(shí)更新步驟中,每隔一定的時(shí)間輪詢有向圖網(wǎng)絡(luò);如果有向圖網(wǎng)絡(luò)的狀態(tài)為“未變化”,則什么都不需要做;如果狀態(tài)變?yōu)椤白兓?,則查找有向圖中所有的標(biāo)記為“新增加”或者“已刪除”的有向邊,以及標(biāo)記為“已修改”的節(jié)點(diǎn), 根據(jù)這些節(jié)點(diǎn)和有向邊,計(jì)算出有向圖中的變化并輸出;設(shè)置整個(gè)有向圖的狀態(tài)為“未變化”,將圖中的每個(gè)節(jié)點(diǎn)、每條有向邊都標(biāo)志為“未變化”。作為本發(fā)明的一種優(yōu)選方案,所述方案輸出步驟中,將核心引擎步驟獲得有向圖的輸出,包括環(huán)路和半環(huán)數(shù)據(jù),并將其重新轉(zhuǎn)化、重組為交易數(shù)據(jù),保存到數(shù)據(jù)庫(kù);一個(gè)環(huán)路表示的是一個(gè)已經(jīng)形成了的交易方案,其中的有向邊表示用戶之間的交易請(qǐng)求,其中的節(jié)點(diǎn)表示參與其中的用戶所拿出的錢或者物品或者錢和物品的打包;一個(gè)半環(huán)表示一個(gè)推薦的交易方案,其中的有向邊表示用戶之間的交易請(qǐng)求,其中的節(jié)點(diǎn)表示參與其中的用戶所拿出的錢或者物品或者錢和物品的打包,缺少的一條有向邊表示最后需要被推薦的交易請(qǐng)求;所述核心引擎步驟輸出的環(huán)路和半環(huán),系統(tǒng)需要先對(duì)它們進(jìn)行節(jié)點(diǎn)和有向邊的分解,重新將其中的節(jié)點(diǎn)轉(zhuǎn)為數(shù)據(jù)庫(kù)中對(duì)應(yīng)的物品或者錢,將有向邊轉(zhuǎn)為對(duì)應(yīng)的交易請(qǐng)求數(shù)據(jù);并且分析得出參與其中的用戶,同時(shí)從數(shù)據(jù)庫(kù)中讀取必要的交易信息以及用戶信息;然后對(duì)這些數(shù)據(jù)進(jìn)行整合及歸類,將這些數(shù)據(jù)還原,得到真實(shí)世界中的交易方案以及推薦的交易方案,保存到數(shù)據(jù)庫(kù)。本發(fā)明的有益效果在于本發(fā)明提出的多方交易系統(tǒng)及方法,是一種用于計(jì)算、過(guò)濾、推薦交易方案的計(jì)算機(jī)軟件系統(tǒng)及方法。結(jié)合有向圖算法理論,將現(xiàn)實(shí)世界中,人與人之間的交換、購(gòu)買、捐贈(zèng)等交易行為統(tǒng)一成供和求的關(guān)系,虛擬化出一個(gè)龐大的供求關(guān)系有向圖網(wǎng)絡(luò)。通過(guò)對(duì)有向圖的分析,同時(shí)附加考慮預(yù)先設(shè)置的過(guò)濾條件,從而計(jì)算出已經(jīng)形成的交易方案和推薦的交易方案,挖掘潛在的交易可能。這些交易方案可能是兩方的,也可能是三方的,甚至是多方的,其中包含買賣關(guān)系,也可以包含交換的,甚至是捐贈(zèng)的。用戶的交易需求本質(zhì)上是一種供求關(guān)系的體現(xiàn),無(wú)論用戶采用用錢購(gòu)買還是物物交換的方式,都可以統(tǒng)一地歸結(jié)為用戶想得到什么和愿意拿出什么。在本發(fā)明中,用戶只要提出“我有什么”和“我想要什么”,系統(tǒng)就會(huì)為用戶計(jì)算出合適的交易方案。每個(gè)人提出了 “我有什么”,“我想要什么”,引擎自動(dòng)構(gòu)建一個(gè)交易需求網(wǎng)絡(luò)。
圖1至圖9為本發(fā)明多方交易系統(tǒng)的交易示意圖。圖10為本發(fā)明多方交易系統(tǒng)的組成示意圖。圖11為用戶輸入模塊的組成示意圖。圖12為用戶瀏覽并選擇交易的示意圖。圖13為用戶交易時(shí)變更條件的示意圖。圖14為核心引擎模塊的組成示意圖。圖15為客戶端接口的示意圖。圖16為方案輸出模塊的組成示意圖。
具體實(shí)施例方式下面結(jié)合附圖詳細(xì)說(shuō)明本發(fā)明的優(yōu)選實(shí)施例。實(shí)施例一本系統(tǒng)將真實(shí)世界中用戶之間的交易需求抽象成一個(gè)巨大的有向圖網(wǎng)絡(luò),使之適合計(jì)算機(jī)算法的分析以及處理。有向圖由其中的節(jié)點(diǎn)和連接節(jié)點(diǎn)之間的有向邊組成。節(jié)點(diǎn)表示用戶的物品或者愿意出的錢,也可以是若干個(gè)物品或者錢的打包。有向邊連接兩個(gè)節(jié)點(diǎn),其中一個(gè)節(jié)點(diǎn)表示用戶想要的部分,另一個(gè)表示用戶愿意拿出的部分,一條有向邊在整個(gè)圖中表示由用戶發(fā)出的一條供求需求。請(qǐng)參閱圖1,有向邊連接A和B兩個(gè)節(jié)點(diǎn),從A指向B。A和B表示兩個(gè)物品,分別屬于用戶甲和乙。這條有向邊所代表的供求需求可以描述為,用戶乙愿意拿出B去得到用戶甲的A。如圖2所示,有向邊連接A和B兩個(gè)節(jié)點(diǎn),從A指向B。A表示一個(gè)物品,屬于用戶甲。B表示的是用戶乙出的價(jià)格。這條有向邊所代表的供求需求可以描述為,用戶乙愿意用多少錢去得到用戶甲的A。如圖3所示,有向邊連接A和B兩個(gè)節(jié)點(diǎn),從A指向B。A表示一個(gè)物品,屬于用戶甲。節(jié)點(diǎn)B包含了用于乙愿意拿出的錢和他的物品。這條有向邊所代表的供求需求可以描述為,用戶乙愿意用這些錢加上這些物品去得到用戶甲的A。環(huán)路(簡(jiǎn)單環(huán)路)指的是從一個(gè)節(jié)點(diǎn)出發(fā),沿著有向邊前進(jìn),最終可以回到這個(gè)節(jié)點(diǎn)。引擎中的交易方案正是基于有向圖中環(huán)路的概念來(lái)識(shí)別的。用戶的供求需求形成一種鏈?zhǔn)浇Y(jié)構(gòu),當(dāng)一條環(huán)路產(chǎn)生的時(shí)候,表示若干個(gè)用戶的供求需求可以互相滿足,交易方案才能夠形成。如圖4所示,對(duì)用戶甲來(lái)說(shuō),他愿意拿出物品A來(lái)得到用戶丙的物品C。對(duì)用戶乙來(lái)說(shuō),他愿意拿出物品B來(lái)得到用戶甲的物品A。對(duì)用戶丙來(lái)說(shuō),他愿意拿出物品C來(lái)得到用戶乙的物品B。于是一個(gè)三方交易形成了,最終用戶甲需要把物品A給用戶乙,用戶乙需要把物品B給用戶丙,用戶丙需要把物品C給用戶甲來(lái)完成交易。如圖5所示,對(duì)用戶甲來(lái)說(shuō),他愿意賣出物品A來(lái)得到用戶丙的500元。對(duì)用戶乙來(lái)說(shuō),他愿意拿出物品B來(lái)得到用戶甲的物品A。對(duì)用戶丙來(lái)說(shuō),他愿意拿出500元來(lái)得到用戶乙的物品B。于是一個(gè)三方交易形成了,最終用戶甲需要把物品A給用戶乙,用戶乙需要把物品B給用戶丙,用戶丙需要把500元錢給用戶甲來(lái)完成交易。
11
如圖6所示,節(jié)點(diǎn)A、B、C組成一個(gè)環(huán)路,表示一個(gè)交易方案,參與交易的人數(shù)為三人。節(jié)點(diǎn)A、B、E組成一個(gè)環(huán)路,表示一個(gè)交易方案,參與交易的人數(shù)為三人。節(jié)點(diǎn)A、B、D、 E組成一個(gè)環(huán)路,表示一個(gè)交易方案,參與交易的人數(shù)為四人。如圖6所示,如果存在一條從D到A的有向邊,那么節(jié)點(diǎn)A、B、D也可以形成一個(gè)環(huán)路。諸如此類再補(bǔ)上一條有向邊即可形成環(huán)路的在本系統(tǒng)中稱為“半環(huán)”?;诎氕h(huán)的推薦信息由這個(gè)半環(huán)的最后一個(gè)節(jié)點(diǎn)的主人看到,然后向這個(gè)半環(huán)的第一個(gè)節(jié)點(diǎn)發(fā)出交易請(qǐng)求,來(lái)補(bǔ)足這個(gè)半環(huán)的最后一個(gè)有向邊,形成一個(gè)交易方案。如圖7所示,存在一條從A指向B的有向邊,于是由A、B和有向邊A_>B組成一個(gè)半環(huán)。B的主人會(huì)收到推薦信息,可以用物品B去換到用戶甲的物品A(如圖中的虛線)。如果用戶乙確定發(fā)出這個(gè)交易請(qǐng)求,那么A、B就形成一個(gè)環(huán),產(chǎn)生了一個(gè)交易方案。如圖8所示,節(jié)點(diǎn)A、B、C以及其中的兩條有向邊組成一個(gè)半環(huán)。C的主人會(huì)收到推薦信息,可以用物品C去換到用戶甲的物品A(如圖中的虛線)。如果用戶丙確定發(fā)出這個(gè)交易請(qǐng)求,那么A、B、C就形成一個(gè)環(huán),產(chǎn)生了一個(gè)交易方案。如圖9所示,節(jié)點(diǎn)A、B、C以及其中的兩條有向邊組成一個(gè)半環(huán),節(jié)點(diǎn)B、C、D與其中的兩條有向邊也組成一個(gè)半環(huán)。C的主人會(huì)同時(shí)收到兩條推薦信息,可以用物品C去換到用戶甲的物品A(如圖中的虛線),也可以用物品C去換到用戶丁的物品D(如圖中的虛線)。如果用戶丙確定發(fā)出其中一個(gè)交易請(qǐng)求,那么就會(huì)形成一個(gè)新的交易方案??紤]隨著節(jié)點(diǎn)個(gè)數(shù)以及有向邊的數(shù)量的增加,會(huì)使得半環(huán)和環(huán)的數(shù)量對(duì)應(yīng)增加, 過(guò)多的推薦信息以及交易方案對(duì)用戶來(lái)說(shuō)會(huì)造成困擾。而更為重要的是,泛濫的推薦信息中參雜著不符合實(shí)際需求的推薦數(shù)據(jù),會(huì)干擾到真正有用的數(shù)據(jù)的推薦,并不能很好的服務(wù)用戶。因此在本系統(tǒng)中,加入了交易條件過(guò)濾算法,根據(jù)預(yù)先設(shè)定的交易過(guò)濾條件對(duì)最后產(chǎn)生的推薦方案做篩選過(guò)濾,盡可能使用戶看到的交易方案符合他們的需求,方便他們執(zhí)行交易。 交易條件包括交易期望以及交易地點(diǎn)。交易期望中包含交易的物品的類別、物品的價(jià)格、物品的屬性等等。對(duì)用戶來(lái)說(shuō), 交易期望的設(shè)置會(huì)影響引擎可能給出的推薦數(shù)據(jù),不符合用戶設(shè)定要求的推薦物品經(jīng)過(guò)交易條件過(guò)濾算法模塊被過(guò)濾了,不會(huì)推薦給用戶。交易地點(diǎn)作為一個(gè)固定的屬性附著在物品上。每一個(gè)物品可以有多個(gè)交易地點(diǎn)。 對(duì)應(yīng)的有向圖中的每一個(gè)節(jié)點(diǎn)有一組交易地點(diǎn)屬性。本系統(tǒng)中,要求節(jié)點(diǎn)的交易地點(diǎn)屬性有重合的部分,才可以最終形成環(huán)或者半環(huán)。系統(tǒng)也允許用戶修改物品屬性來(lái)增加、刪除一個(gè)交易地點(diǎn)。有向邊上的交易地點(diǎn)屬性指的是這條有向邊兩端兩個(gè)節(jié)點(diǎn)的交易地點(diǎn)屬性的重合部分。如圖10所示,本系統(tǒng)整體上主要分為三大模塊用戶輸入模塊1、核心引擎模塊5 以及方案輸出模塊10。用戶輸入模塊1既允許用戶從客戶端計(jì)算機(jī)完成輸入,也允許用戶從手機(jī)客戶端完成輸入。輸入完成之后,通過(guò)Internet將輸入信息發(fā)送至本系統(tǒng)的服務(wù)器端,由服務(wù)器端自動(dòng)對(duì)輸入內(nèi)容進(jìn)行檢查、整合,然后保存到電子數(shù)據(jù)庫(kù)。核心引擎模塊5 核心交易方案推薦引擎通過(guò)讀取電子數(shù)據(jù)庫(kù)的信息得到用戶輸入的物品數(shù)據(jù)以及交易需求數(shù)據(jù)。首先將物品數(shù)據(jù)抽象化為有向圖中的節(jié)點(diǎn),將交易需求數(shù)據(jù)抽象化為有向圖中的邊,將交易期望和交易地點(diǎn)轉(zhuǎn)化為相應(yīng)的屬性以及權(quán)值,附著到對(duì)應(yīng)的節(jié)點(diǎn)和有向邊上。然后對(duì)整個(gè)有向圖進(jìn)行聚合,關(guān)聯(lián)所有的節(jié)點(diǎn)以及有向邊,構(gòu)建一個(gè)龐大的有向圖網(wǎng)絡(luò)。這是一個(gè)動(dòng)態(tài)變化的有向圖,系統(tǒng)實(shí)時(shí)對(duì)圖的狀態(tài)分析輸出,并且按照交易期望以及交易地點(diǎn)屬性過(guò)濾輸出結(jié)果,最后產(chǎn)生過(guò)濾后的環(huán)以及半環(huán)。方案輸出模塊10將引擎模塊產(chǎn)生的有向圖信息重新轉(zhuǎn)化為交易信息,得到交易方案以及交易推薦方案,并分配到對(duì)應(yīng)的用戶和物品,完成數(shù)據(jù)的重組。用戶輸入模塊用戶輸入模塊1包括本地計(jì)算機(jī)2、手機(jī)客戶端3、輸入內(nèi)容整合單元4。具體地,如圖11所示,在用戶輸入模塊1中,用戶通過(guò)計(jì)算機(jī)或者手機(jī)輸入的內(nèi)容主要分為兩個(gè)部分。如框A中,本系統(tǒng)提供接口,讓用戶發(fā)布自己手中的物品信息。第一步,系統(tǒng)接收用戶輸入的物品的基本信息,包括物品的名字,折舊價(jià)格,物品圖片,物品描述,購(gòu)買時(shí)間等等。然后,系統(tǒng)詢問(wèn)用戶是否需要輸入交易期望,交易期望包括想要交易的物品的價(jià)格范圍,類型范圍等等。最后,系統(tǒng)提示用戶輸入物品的默認(rèn)交易地點(diǎn)。如果這些信息的輸入有誤,系統(tǒng)會(huì)提示用戶輸入發(fā)生了錯(cuò)誤,請(qǐng)核查輸入并修正出現(xiàn)問(wèn)題的部分。確認(rèn)了全部物品信息之后,將物品信息保存到電子數(shù)據(jù)庫(kù)。在框B中,描述了用戶發(fā)布交易請(qǐng)求的流程。引擎會(huì)自動(dòng)計(jì)算出推薦的交易方案供用戶選擇。用戶也可以瀏覽、尋找自己感興趣的物品,根據(jù)物品的基本信息做出自己的判斷。用戶在瀏覽其它物品的時(shí)候,引擎也會(huì)推薦交易方案,告知用戶如何去得到這個(gè)物品。如圖12所示,當(dāng)用戶在瀏覽物品C的時(shí)候,系統(tǒng)會(huì)給出兩條推薦的交易方案,都是屬于交換類型。其中之一是“如果您有物品B,就可以交換得到物品C”,如果用戶選擇了這個(gè)交易方案,最終形成一個(gè)包含節(jié)點(diǎn)B、C的環(huán)路。另一個(gè)推薦方案是“如果您有物品A,就可以交換得到物品C”,如果用戶選擇了這個(gè)交易方案,最終形成一個(gè)包含節(jié)點(diǎn)A、B、C的環(huán)路。依然如圖12中所示,如果物品A標(biāo)價(jià)Y500,物品B標(biāo)價(jià)Y450,表示物品A和物品 B都是可以通過(guò)買賣方式參與交易的,則用戶還會(huì)收到系統(tǒng)給出的另外兩條推薦的交易方案,屬于購(gòu)買的類型。其中之一是“您可以以Y450的價(jià)格買到物品C”,如果用戶選擇了這個(gè)交易方案,最終形成一個(gè)包含節(jié)點(diǎn)B、C、D的環(huán)路。另一個(gè)推薦方案是“您可以以Y500的價(jià)格買到物品C”,如果用戶選擇了這個(gè)交易方案,最終形成一個(gè)包含節(jié)點(diǎn)A、B、C、D的環(huán)路?;氐綀D11中,用戶辨識(shí)了推薦的交易方案之后,經(jīng)過(guò)自己的判斷,可以發(fā)布交易請(qǐng)求。系統(tǒng)會(huì)記錄用戶“我有什么,我想要什么”??紤]到方便用戶之間實(shí)施交易,本系統(tǒng)加入了交易地點(diǎn)的信息。物品上的交易地點(diǎn)表示用戶愿意在哪些區(qū)域或者具體地點(diǎn)進(jìn)行交易,交易請(qǐng)求上的交易地點(diǎn)可以通過(guò)兩個(gè)物品的重合部分計(jì)算得到。交易地點(diǎn)沒(méi)有重合部分的交易請(qǐng)求所形成的交易方案最終會(huì)被過(guò)濾掉。因?yàn)閷?duì)用戶來(lái)說(shuō),這些方案并不符合他們的實(shí)際情況。因此在用戶發(fā)布交易請(qǐng)求的時(shí)候,自己的物品的交易地點(diǎn)可能會(huì)做一定的修改。 如圖13所示,物品A的交易地點(diǎn)設(shè)定為a,b和c,物品B的交易地點(diǎn)為d和e。如果物品B 的主人想要用物品B來(lái)得到物品A,由于物品A和物品B目前沒(méi)有重合的交易地點(diǎn),因此系統(tǒng)會(huì)給出提示,B的主人必須要選擇至少一個(gè)交易地點(diǎn)a或b或c,添加到物品B的可交易地點(diǎn)。比如用戶通過(guò)權(quán)衡,選擇了地點(diǎn)b,則物品B的交易地點(diǎn)被這個(gè)用戶,也就是物品B的主人修改成了 b、d和e,一條由A指向B的有向邊才能夠完成,交易地點(diǎn)的重合是一個(gè)必要條件。交易地點(diǎn)修改完成之后,用戶發(fā)出的請(qǐng)求還需要經(jīng)過(guò)一些檢查,主要是檢查發(fā)出請(qǐng)求的物品信息是否符合被請(qǐng)求物品的交易期望。確認(rèn)了交易請(qǐng)求之后,同樣被保存到電子數(shù)據(jù)庫(kù)。核心引擎模塊核心引擎模塊5基于圖論中的有向圖理論來(lái)抽象真實(shí)世界中的交易問(wèn)題。如圖10 及圖14所示,核心引擎模塊5包括抽象化單元6、聚合單元7、分析單元8。抽象化單元6將數(shù)據(jù)庫(kù)中存在的物品數(shù)據(jù)抽象為有向圖中的節(jié)點(diǎn),將數(shù)據(jù)庫(kù)中記錄的交易請(qǐng)求數(shù)據(jù)抽象為有向邊,將輸入的交易期望以及交易地點(diǎn),轉(zhuǎn)化為對(duì)應(yīng)的屬性附加到對(duì)應(yīng)的節(jié)點(diǎn)和有向邊上。系統(tǒng)初次啟動(dòng)時(shí),對(duì)電子數(shù)據(jù)庫(kù)中的所有交易信息以及物品信息進(jìn)行一次完整的掃描,從而構(gòu)建出當(dāng)前狀態(tài)下的有向圖網(wǎng)絡(luò)。聚合單元7采用圖論中針對(duì)有向圖常用的算法將其矩陣化,然后通過(guò)搜索算法找至IJ當(dāng)前狀態(tài)整個(gè)有向圖中的節(jié)點(diǎn)的相關(guān)信息,對(duì)部分信息在內(nèi)存中做臨時(shí)性的保留。分析單元8檢查節(jié)點(diǎn)和有向邊上的交易期望和交易地點(diǎn)屬性,過(guò)濾掉不符合要求的數(shù)據(jù),并導(dǎo)出最后的半環(huán)和環(huán)信息。整個(gè)系統(tǒng)的運(yùn)行過(guò)程中,用戶會(huì)陸續(xù)增加或者修改物品數(shù)據(jù)以及交易請(qǐng)求數(shù)據(jù)。 因此整個(gè)有向圖的處理不是一個(gè)簡(jiǎn)單的圖的遍歷查詢問(wèn)題,而是一個(gè)動(dòng)態(tài)調(diào)整計(jì)算的過(guò)程。然而在系統(tǒng)初始化完成之后,任何所做的信息修改都不需要重新初始化整個(gè)有向圖。一個(gè)物品數(shù)據(jù)的添加對(duì)應(yīng)一個(gè)節(jié)點(diǎn)的增加,一條交易請(qǐng)求的添加對(duì)應(yīng)一條有向邊的增加,軟件系統(tǒng)采用局部化的更新策略,使系統(tǒng)由一個(gè)狀態(tài)轉(zhuǎn)換到另一個(gè)狀態(tài),從而輸出新的環(huán)和半環(huán)的信息。核心引擎模塊5還提供了一個(gè)客戶端接口 9,留給外部系統(tǒng)調(diào)用修改以及查詢有向圖的狀態(tài)。接口內(nèi)容包括1)修改操作;2)查詢操作;3)初始化;4)數(shù)據(jù)同步。請(qǐng)參閱圖15,修改操作包含1)增加一個(gè)節(jié)點(diǎn);2)刪除一個(gè)節(jié)點(diǎn);3)增加一條有向邊,調(diào)用這個(gè)方法返回加入這條邊之后,與這條邊相關(guān)的半環(huán)數(shù)以及環(huán)數(shù);4)刪除一條有向邊;5)修改節(jié)點(diǎn)參數(shù)。如圖15所示,查詢操作包括1)查詢某條邊的半環(huán)數(shù),這個(gè)方法返回這條邊的半環(huán)數(shù);2)查詢某條邊的半環(huán),這個(gè)方法返回這條邊的半環(huán)集合;3)查詢某條邊的環(huán)路數(shù),這個(gè)方法返回這條邊的環(huán)路數(shù);4)查詢某條邊的環(huán)路,這個(gè)方法返回這條邊的環(huán)路集合;5) 查詢兩點(diǎn)間的路徑,這個(gè)方法返回兩點(diǎn)間的路徑集合。如圖15所示,初始化操作在系統(tǒng)啟動(dòng)時(shí)被調(diào)用,根據(jù)電子數(shù)據(jù)庫(kù)完成有向圖網(wǎng)絡(luò)的構(gòu)建。如圖15所示,數(shù)據(jù)同步為了防止保存在電子數(shù)據(jù)庫(kù)中的數(shù)據(jù)與內(nèi)存中的有向圖數(shù)據(jù)不一致,所以手動(dòng)調(diào)用,從有向圖中計(jì)算輸出所有必要的數(shù)據(jù)并同步到電子數(shù)據(jù)庫(kù)。定時(shí)更新服務(wù)負(fù)責(zé)定時(shí)從有向圖中計(jì)算出最近變化的數(shù)據(jù)并輸出。對(duì)整個(gè)有向圖有一個(gè)變化標(biāo)志,表示最近這張圖的結(jié)構(gòu)是否發(fā)生變化,如果沒(méi)有變化,定時(shí)服務(wù)沒(méi)有必要執(zhí)行;如果有變化,定時(shí)服務(wù)才會(huì)計(jì)算并輸出。對(duì)每一條邊同樣有一個(gè)變化標(biāo)志,表示這條邊是新增加的,還是已經(jīng)被刪除的。對(duì)每一個(gè)節(jié)點(diǎn)也有一個(gè)變化標(biāo)志,表示這個(gè)節(jié)點(diǎn)的參數(shù)是否有變化。以下操作會(huì)對(duì)導(dǎo)致變化標(biāo)志的修改(1)增加一條有向邊標(biāo)志這條邊為“新增加”,并標(biāo)志整個(gè)圖為“變化”。(2)刪除一條有向邊標(biāo)志這條邊為“已刪除”,并標(biāo)志整個(gè)圖為“變化”。(3)修改節(jié)點(diǎn)參數(shù)標(biāo)志這個(gè)節(jié)點(diǎn)為“已修改”,并標(biāo)志整個(gè)圖為“變化”。但是(1)對(duì)于操作“增加點(diǎn)”,不會(huì)導(dǎo)致變化標(biāo)志的修改(2)對(duì)于操作“刪除點(diǎn)”,可以考慮為“刪除多條邊”定時(shí)更新服務(wù)每隔一定的時(shí)間輪詢有向圖數(shù)據(jù)結(jié)構(gòu)。如果有向圖的狀態(tài)為“未變化”,則什么都不需要做;如果狀態(tài)變?yōu)椤白兓?,則查找有向圖中所有的標(biāo)記為“新增加”或者“已刪除”的有向邊,以及標(biāo)記為“已修改”的節(jié)點(diǎn),根據(jù)這些節(jié)點(diǎn)和有向邊,計(jì)算出有向圖中的變化并輸出。最后,設(shè)置整個(gè)有向圖的狀態(tài)為“未變化”,將圖中的每個(gè)節(jié)點(diǎn)、每條有向邊都標(biāo)志為“未變化”。方案輸出模塊方案輸出模塊10的主要工作是從核心引擎模塊獲得有向圖的輸出,包括環(huán)路和半環(huán)數(shù)據(jù),并將其重新轉(zhuǎn)化、重組為交易數(shù)據(jù),保存到電子數(shù)據(jù)庫(kù)。方案輸出模塊10包括交易方案解析單元11、推薦方案形成單元12一個(gè)環(huán)路表示的是一個(gè)已經(jīng)形成了的交易方案,其中的有向邊表示用戶之間的交易請(qǐng)求,其中的節(jié)點(diǎn)表示參與其中的用戶所拿出的錢或者物品或者錢和物品的打包。一個(gè)半環(huán)表示一個(gè)推薦的交易方案,其中的有向邊表示用戶之間的交易請(qǐng)求,其中的節(jié)點(diǎn)表示參與其中的用戶所拿出的錢或者物品或者錢和物品的打包,缺少的一條有向邊表示最后需要被推薦的交易請(qǐng)求。如圖16所示,引擎輸出的環(huán)路和半環(huán),系統(tǒng)需要先對(duì)它們進(jìn)行節(jié)點(diǎn)和有向邊的分解,重新將其中的節(jié)點(diǎn)轉(zhuǎn)為數(shù)據(jù)庫(kù)中對(duì)應(yīng)的物品或者錢,將有向邊轉(zhuǎn)為對(duì)應(yīng)的交易請(qǐng)求數(shù)據(jù)。并且分析得出參與其中的用戶,同時(shí)從數(shù)據(jù)庫(kù)中讀取必要的交易信息以及用戶信息。然后對(duì)這些數(shù)據(jù)進(jìn)行整合及歸類,將這些數(shù)據(jù)還原,得到真實(shí)世界中的交易方案以及推薦的交易方案,并分配到對(duì)應(yīng)的用戶以及物品上,保存到數(shù)據(jù)庫(kù)。綜上所述,本發(fā)明提出的多方交易系統(tǒng)及方法,是一種用于計(jì)算、過(guò)濾、推薦交易方案的計(jì)算機(jī)軟件系統(tǒng)及方法。結(jié)合有向圖算法理論,將現(xiàn)實(shí)世界中,人與人之間的交換、 購(gòu)買、捐贈(zèng)等交易行為統(tǒng)一成供和求的關(guān)系,虛擬化出一個(gè)龐大的供求關(guān)系有向圖網(wǎng)絡(luò)。通過(guò)對(duì)有向圖的分析,同時(shí)附加考慮預(yù)先設(shè)置的過(guò)濾條件,從而計(jì)算出已經(jīng)形成的交易方案和推薦的交易方案,挖掘潛在的交易可能。這些交易方案可能是兩方的,也可能是三方的, 甚至是多方的,其中包含買賣關(guān)系,也可以包含交換的,甚至是捐贈(zèng)的。用戶的交易需求本質(zhì)上是一種供求關(guān)系的體現(xiàn),無(wú)論用戶采用用錢購(gòu)買還是物物交換的方式,都可以統(tǒng)一地歸結(jié)為用戶想得到什么和愿意拿出什么。在本發(fā)明中,用戶只要提出“我有什么”和“我想要什么”,系統(tǒng)就會(huì)為用戶計(jì)算出合適的交易方案。每個(gè)人提出了 “我有什么”,“我想要什么”,引擎自動(dòng)構(gòu)建一個(gè)交易需求網(wǎng)絡(luò)。
實(shí)施例二本實(shí)施例揭示一種多方交易系統(tǒng),請(qǐng)參閱圖10,所述系統(tǒng)包括交易信息輸入模塊1、核心引擎模塊5、方案輸出模塊10。交易信息輸入模塊交易信息輸入模塊1用以輸入交易請(qǐng)求信息,并將交易請(qǐng)求信息保存至數(shù)據(jù)庫(kù)中;所述交易請(qǐng)求信息包括被交易物信息、需求信息,被交易物信息、需求信息均為一種或多種方案。如,需求信息可以為諾基亞手機(jī)或摩托羅拉手機(jī)兩種方案。核心引擎模塊核心引擎模塊5用以讀取所述數(shù)據(jù)庫(kù)中的各交易請(qǐng)求信息,將交易請(qǐng)求信息中的被交易物信息抽象化為有向圖中的節(jié)點(diǎn),將交易請(qǐng)求數(shù)據(jù)抽象化為有向圖中的邊,將交易期望和交易地點(diǎn)轉(zhuǎn)化為相應(yīng)的屬性以及權(quán)值,附著到對(duì)應(yīng)的節(jié)點(diǎn)和有向邊上;然后對(duì)整個(gè)有向圖進(jìn)行聚合,關(guān)聯(lián)所有的節(jié)點(diǎn)以及有向邊,構(gòu)建一個(gè)有向圖網(wǎng)絡(luò);并按照交易期望以及交易地點(diǎn)屬性過(guò)濾輸出結(jié)果。所述核心引擎模塊5基于圖論中的有向圖理論來(lái)抽象真實(shí)世界中的交易問(wèn)題;所述核心引擎模塊5包括抽象化單元6、聚合單元7、分析單元8、客戶端接口 9、定時(shí)更新單元。抽象化單元6用以將數(shù)據(jù)庫(kù)中存在的物品數(shù)據(jù)抽象為有向圖中的節(jié)點(diǎn),將數(shù)據(jù)庫(kù)中記錄的交易請(qǐng)求數(shù)據(jù)抽象為有向邊,將輸入的交易期望以及交易地點(diǎn),轉(zhuǎn)化為對(duì)應(yīng)的屬性附加到對(duì)應(yīng)的節(jié)點(diǎn)和有向邊上;系統(tǒng)初次啟動(dòng)時(shí),對(duì)數(shù)據(jù)庫(kù)中的所有交易信息以及物品信息進(jìn)行一次完整的掃描,從而構(gòu)建出當(dāng)前狀態(tài)下的有向圖網(wǎng)絡(luò)。聚合單元7用以將所述有向圖網(wǎng)絡(luò)矩陣化,然后通過(guò)搜索算法找到當(dāng)前狀態(tài)整個(gè)有向圖網(wǎng)絡(luò)中的節(jié)點(diǎn)的相關(guān)信息,對(duì)部分信息在內(nèi)存中做臨時(shí)性的保留。分析單元8用以檢查節(jié)點(diǎn)和有向邊上的交易期望和交易地點(diǎn)屬性,過(guò)濾掉不符合要求的數(shù)據(jù),并導(dǎo)出最后交易方案。客戶端接口 9留給外部系統(tǒng)調(diào)用修改以及查詢有向圖的狀態(tài);接口內(nèi)容包括修改操作、查詢操作、初始化操作、數(shù)據(jù)同步。修改操作包含增加一個(gè)節(jié)點(diǎn)、刪除一個(gè)節(jié)點(diǎn)、增加一條有向邊、刪除一條有向邊、修改節(jié)點(diǎn)參數(shù);增加一條有向邊之后,需調(diào)整與這條邊相關(guān)的交易方案。查詢操作包括(1)查詢某條邊的半環(huán)數(shù),這個(gè)方法返回這條邊的半環(huán)數(shù); (2)查詢某條邊的半環(huán),返回這條邊的半環(huán)集合;(3)查詢某條邊的環(huán)路數(shù),返回這條邊的環(huán)路數(shù);(4)查詢某條邊的環(huán)路,返回這條邊的環(huán)路集合;(5)查詢兩點(diǎn)間的路徑,返回兩點(diǎn)間的路徑集合;其中,所述半環(huán)指再補(bǔ)上一條有向邊即可形成環(huán)路的有向圖網(wǎng)絡(luò),所述環(huán)路指從一個(gè)節(jié)點(diǎn)出發(fā),沿著有向邊前進(jìn),最終回到這個(gè)節(jié)點(diǎn)的有向圖網(wǎng)絡(luò)。初始化操作在系統(tǒng)啟動(dòng)時(shí)被調(diào)用,根據(jù)電子數(shù)據(jù)庫(kù)完成有向圖網(wǎng)絡(luò)的構(gòu)建。數(shù)據(jù)同步為了防止保存在電子數(shù)據(jù)庫(kù)中的數(shù)據(jù)與內(nèi)存中的有向圖數(shù)據(jù)不一致,所以手動(dòng)調(diào)用,從有向圖中計(jì)算輸出所有必要的數(shù)據(jù)并同步到數(shù)據(jù)庫(kù)。定時(shí)更新單元負(fù)責(zé)定時(shí)從有向圖網(wǎng)絡(luò)中計(jì)算出最近變化的數(shù)據(jù)并輸出;對(duì)整個(gè)有向圖網(wǎng)絡(luò)有一個(gè)變化標(biāo)志,表示最近這張圖的結(jié)構(gòu)是否發(fā)生變化。如果沒(méi)有變化,定時(shí)服務(wù)沒(méi)有必要執(zhí)行;如果有變化,定時(shí)服務(wù)才會(huì)計(jì)算并輸出;對(duì)每一條邊同樣有一個(gè)變化標(biāo)志, 表示這條邊是新增加的,還是已經(jīng)被刪除的;對(duì)每一個(gè)節(jié)點(diǎn)也有一個(gè)變化標(biāo)志,表示這個(gè)節(jié)點(diǎn)的參數(shù)是否有變化;所述定時(shí)更新單元每隔一定的時(shí)間輪詢有向圖網(wǎng)絡(luò);如果有向圖網(wǎng)
16絡(luò)的狀態(tài)為“未變化”,則什么都不需要做;如果狀態(tài)變?yōu)椤白兓?,則查找有向圖中所有的標(biāo)記為“新增加”或者“已刪除”的有向邊,以及標(biāo)記為“已修改”的節(jié)點(diǎn),根據(jù)這些節(jié)點(diǎn)和有向邊,計(jì)算出有向圖中的變化并輸出;設(shè)置整個(gè)有向圖的狀態(tài)為“未變化”,將圖中的每個(gè)節(jié)點(diǎn)、每條有向邊都標(biāo)志為“未變化”。方案輸出模塊方案輸出模塊10用以將核心引擎模塊產(chǎn)生的有向圖信息重新轉(zhuǎn)化為交易信息, 得到交易方案,并分配到對(duì)應(yīng)的用戶和物品,完成數(shù)據(jù)的重組;所述方案輸出模塊將核心引擎模塊獲得有向圖的輸出,包括環(huán)路和半環(huán)數(shù)據(jù),并將其重新轉(zhuǎn)化、重組為交易數(shù)據(jù),保存到數(shù)據(jù)庫(kù);一個(gè)環(huán)路表示的是一個(gè)已經(jīng)形成了的交易方案,其中的有向邊表示用戶之間的交易請(qǐng)求,其中的節(jié)點(diǎn)表示參與其中的用戶所拿出的錢或者物品或者錢和物品的打包;一個(gè)半環(huán)表示一個(gè)推薦的交易方案,其中的有向邊表示用戶之間的交易請(qǐng)求,其中的節(jié)點(diǎn)表示參與其中的用戶所拿出的錢或者物品或者錢和物品的打包,缺少的一條有向邊表示最后需要被推薦的交易請(qǐng)求;所述核心引擎模塊輸出的環(huán)路和半環(huán),系統(tǒng)需要先對(duì)它們進(jìn)行節(jié)點(diǎn)和有向邊的分解,重新將其中的節(jié)點(diǎn)轉(zhuǎn)為數(shù)據(jù)庫(kù)中對(duì)應(yīng)的物品或者錢,將有向邊轉(zhuǎn)為對(duì)應(yīng)的交易請(qǐng)求數(shù)據(jù);并且分析得出參與其中的用戶,同時(shí)從數(shù)據(jù)庫(kù)中讀取必要的交易信息以及用戶信息;然后對(duì)這些數(shù)據(jù)進(jìn)行整合及歸類,將這些數(shù)據(jù)還原,得到真實(shí)世界中的交易方案以及推薦的交易方案,并分配到對(duì)應(yīng)的用戶以及物品上,保存到數(shù)據(jù)庫(kù)。以上介紹了本發(fā)明多方交系統(tǒng),本發(fā)明在揭示上述多方交系統(tǒng)的同時(shí),還揭示一種多方交易方法;所述方法包括如下步驟交易信息輸入步驟輸入交易請(qǐng)求信息,并將交易請(qǐng)求信息保存至數(shù)據(jù)庫(kù)中;所述交易請(qǐng)求信息包括 被交易物信息、需求信息,被交易物信息、需求信息均為一種或多種方案。核心引擎步驟讀取所述數(shù)據(jù)庫(kù)中的各交易請(qǐng)求信息,將交易請(qǐng)求信息中的被交易物信息抽象化為有向圖中的節(jié)點(diǎn),將匹配的交易抽象化為有向圖中的邊;然后對(duì)整個(gè)有向圖進(jìn)行聚合,關(guān)聯(lián)所有的節(jié)點(diǎn)以及有向邊,構(gòu)建一個(gè)有向圖網(wǎng)絡(luò)。所述核心引擎步驟包括-抽象化步驟,將數(shù)據(jù)庫(kù)中存在的物品數(shù)據(jù)抽象為有向圖中的節(jié)點(diǎn),將數(shù)據(jù)庫(kù)中記錄的交易請(qǐng)求數(shù)據(jù)抽象為有向邊,將輸入的交易期望以及交易地點(diǎn),轉(zhuǎn)化為對(duì)應(yīng)的屬性附加到對(duì)應(yīng)的節(jié)點(diǎn)和有向邊上;系統(tǒng)初次啟動(dòng)時(shí),對(duì)數(shù)據(jù)庫(kù)中的所有交易信息以及物品信息進(jìn)行一次完整的掃描,從而構(gòu)建出當(dāng)前狀態(tài)下的有向圖網(wǎng)絡(luò)。-聚合步驟,將所述有向圖網(wǎng)絡(luò)矩陣化,然后通過(guò)搜索算法找到當(dāng)前狀態(tài)整個(gè)有向圖網(wǎng)絡(luò)中的節(jié)點(diǎn)的相關(guān)信息,對(duì)部分信息在內(nèi)存中做臨時(shí)性的保留。-分析步驟,檢查節(jié)點(diǎn)和有向邊上的交易期望和交易地點(diǎn)屬性,過(guò)濾掉不符合要求的數(shù)據(jù),并導(dǎo)出最后交易方案。-提供了一個(gè)客戶端接口,留給外部系統(tǒng)調(diào)用修改以及查詢有向圖的狀態(tài);接口內(nèi)容包括修改操作、查詢操作、初始化操作、數(shù)據(jù)同步。修改操作包含增加一個(gè)節(jié)點(diǎn)、刪除一個(gè)節(jié)點(diǎn)、增加一條有向邊、刪除一條有向邊、 修改節(jié)點(diǎn)參數(shù);增加一條有向邊之后,需調(diào)整與這條邊相關(guān)的交易方案。
查詢操作包括(1)查詢某條邊的半環(huán)數(shù),這個(gè)方法返回這條邊的半環(huán)數(shù);(2)查詢某條邊的半環(huán),返回這條邊的半環(huán)集合;(3)查詢某條邊的環(huán)路數(shù),返回這條邊的環(huán)路數(shù);(4)查詢某條邊的環(huán)路,返回這條邊的環(huán)路集合;(5)查詢兩點(diǎn)間的路徑,返回兩點(diǎn)間的路徑集合;其中,所述半環(huán)指再補(bǔ)上一條有向邊即可形成環(huán)路的有向圖網(wǎng)絡(luò),所述環(huán)路指從一個(gè)節(jié)點(diǎn)出發(fā),沿著有向邊前進(jìn),最終回到這個(gè)節(jié)點(diǎn)的有向圖網(wǎng)絡(luò)。初始化操作在系統(tǒng)啟動(dòng)時(shí)被調(diào)用,根據(jù)電子數(shù)據(jù)庫(kù)完成有向圖網(wǎng)絡(luò)的構(gòu)建。數(shù)據(jù)同步為了防止保存在電子數(shù)據(jù)庫(kù)中的數(shù)據(jù)與內(nèi)存中的有向圖數(shù)據(jù)不一致,所以手動(dòng)調(diào)用,從有向圖中計(jì)算輸出所有必要的數(shù)據(jù)并同步到數(shù)據(jù)庫(kù)。-定時(shí)更新步驟,負(fù)責(zé)定時(shí)從有向圖網(wǎng)絡(luò)中計(jì)算出最近變化的數(shù)據(jù)并輸出。對(duì)整個(gè)有向圖網(wǎng)絡(luò)有一個(gè)變化標(biāo)志,表示最近這張圖的結(jié)構(gòu)是否發(fā)生變化,如果沒(méi)有變化,定時(shí)服務(wù)沒(méi)有必要執(zhí)行;如果有變化,定時(shí)服務(wù)才會(huì)計(jì)算并輸出。對(duì)每一條邊同樣有一個(gè)變化標(biāo)志,表示這條邊是新增加的,還是已經(jīng)被刪除的;對(duì)每一個(gè)節(jié)點(diǎn)也有一個(gè)變化標(biāo)志,表示這個(gè)節(jié)點(diǎn)的參數(shù)是否有變化。所述定時(shí)更新步驟中,每隔一定的時(shí)間輪詢有向圖網(wǎng)絡(luò);如果有向圖網(wǎng)絡(luò)的狀態(tài)為“未變化”,則什么都不需要做;如果狀態(tài)變?yōu)椤白兓保瑒t查找有向圖中所有的標(biāo)記為“新增加”或者“已刪除”的有向邊,以及標(biāo)記為“已修改”的節(jié)點(diǎn),根據(jù)這些節(jié)點(diǎn)和有向邊,計(jì)算出有向圖中的變化并輸出;設(shè)置整個(gè)有向圖的狀態(tài)為“未變化”,將圖中的每個(gè)節(jié)點(diǎn)、每條有向邊都標(biāo)志為“未變化”。方案輸出步驟將核心引擎步驟產(chǎn)生的有向圖信息重新轉(zhuǎn)化為交易信息,得到交易方案,并分配到對(duì)應(yīng)的用戶和物品,完成數(shù)據(jù)的重組。所述方案輸出步驟中,將核心引擎步驟獲得有向圖的輸出,包括環(huán)路和半環(huán)數(shù)據(jù), 并將其重新轉(zhuǎn)化、重組為交易數(shù)據(jù),保存到數(shù)據(jù)庫(kù)。一個(gè)環(huán)路表示的是一個(gè)已經(jīng)形成了的交易方案,其中的有向邊表示用戶之間的交易請(qǐng)求,其中的節(jié)點(diǎn)表示參與其中的用戶所拿出的錢或者物品或者錢和物品的打包。一個(gè)半環(huán)表示一個(gè)推薦的交易方案,其中的有向邊表示用戶之間的交易請(qǐng)求,其中的節(jié)點(diǎn)表示參與其中的用戶所拿出的錢或者物品或者錢和物品的打包,缺少的一條有向邊表示最后需要被推薦的交易請(qǐng)求。所述核心引擎步驟輸出的環(huán)路和半環(huán),系統(tǒng)需要先對(duì)它們進(jìn)行節(jié)點(diǎn)和有向邊的分解,重新將其中的節(jié)點(diǎn)轉(zhuǎn)為數(shù)據(jù)庫(kù)中對(duì)應(yīng)的物品或者錢,將有向邊轉(zhuǎn)為對(duì)應(yīng)的交易請(qǐng)求數(shù)據(jù);并且分析得出參與其中的用戶,同時(shí)從數(shù)據(jù)庫(kù)中讀取必要的交易信息以及用戶信息。然后對(duì)這些數(shù)據(jù)進(jìn)行整合及歸類,將這些數(shù)據(jù)還原,得到真實(shí)世界中的交易方案以及推薦的交易方案,并分配到對(duì)應(yīng)的用戶以及物品上,保存到數(shù)據(jù)庫(kù)。這里本發(fā)明的描述和應(yīng)用是說(shuō)明性的,并非想將本發(fā)明的范圍限制在上述實(shí)施例中。這里所披露的實(shí)施例的變形和改變是可能的,對(duì)于那些本領(lǐng)域的普通技術(shù)人員來(lái)說(shuō)實(shí)施例的替換和等效的各種部件是公知的。本領(lǐng)域技術(shù)人員應(yīng)該清楚的是,在不脫離本發(fā)明的精神或本質(zhì)特征的情況下,本發(fā)明可以以其它形式、結(jié)構(gòu)、布置、比例,以及用其它組件、 材料和部件來(lái)實(shí)現(xiàn)。在不脫離本發(fā)明范圍和精神的情況下,可以對(duì)這里所披露的實(shí)施例進(jìn)行其它變形和改變。
權(quán)利要求
1.一種多方交易系統(tǒng),其特征在于,所述系統(tǒng)包括交易信息輸入模塊,用以輸入交易請(qǐng)求信息,并將交易請(qǐng)求信息保存至數(shù)據(jù)庫(kù)中;所述交易請(qǐng)求信息包括被交易物信息、需求信息,被交易物信息、需求信息均為一種或多種方案;核心引擎模塊,用以讀取所述數(shù)據(jù)庫(kù)中的各交易請(qǐng)求信息,將交易請(qǐng)求信息中的被交易物信息抽象化為有向圖中的節(jié)點(diǎn),將交易請(qǐng)求數(shù)據(jù)抽象化為有向圖中的邊,將交易期望和交易地點(diǎn)轉(zhuǎn)化為相應(yīng)的屬性以及權(quán)值,附著到對(duì)應(yīng)的節(jié)點(diǎn)和有向邊上;然后對(duì)整個(gè)有向圖進(jìn)行聚合,關(guān)聯(lián)所有的節(jié)點(diǎn)以及有向邊,構(gòu)建一個(gè)有向圖網(wǎng)絡(luò);并按照交易期望以及交易地點(diǎn)屬性過(guò)濾輸出結(jié)果;方案輸出模塊,用以將核心引擎模塊產(chǎn)生的有向圖信息重新轉(zhuǎn)化為交易信息,得到交易方案。
2.根據(jù)權(quán)利要求1所述的多方交易系統(tǒng),其特征在于所述核心引擎模塊基于圖論中的有向圖理論來(lái)抽象真實(shí)世界中的交易問(wèn)題;所述核心引擎模塊包括抽象化單元,用以將數(shù)據(jù)庫(kù)中存在的物品數(shù)據(jù)抽象為有向圖中的節(jié)點(diǎn),將數(shù)據(jù)庫(kù)中記錄的交易請(qǐng)求數(shù)據(jù)抽象為有向邊,將輸入的交易期望以及交易地點(diǎn),轉(zhuǎn)化為對(duì)應(yīng)的屬性附加到對(duì)應(yīng)的節(jié)點(diǎn)和有向邊上;系統(tǒng)初次啟動(dòng)時(shí),對(duì)數(shù)據(jù)庫(kù)中的所有交易信息以及物品信息進(jìn)行一次完整的掃描,從而構(gòu)建出當(dāng)前狀態(tài)下的有向圖網(wǎng)絡(luò);聚合單元,用以將所述有向圖網(wǎng)絡(luò)矩陣化,然后通過(guò)搜索算法找到當(dāng)前狀態(tài)整個(gè)有向圖網(wǎng)絡(luò)中的節(jié)點(diǎn)的相關(guān)信息,對(duì)部分信息在內(nèi)存中做臨時(shí)性的保留;分析單元,用以檢查節(jié)點(diǎn)和有向邊上的交易期望和交易地點(diǎn)屬性,過(guò)濾掉不符合要求的數(shù)據(jù),并計(jì)算出最后交易方案。
3.根據(jù)權(quán)利要求2所述的多方交易系統(tǒng),其特征在于所述核心引擎模塊進(jìn)一步提供了一個(gè)客戶端接口,留給外部系統(tǒng)調(diào)用修改以及查詢有向圖的狀態(tài);接口內(nèi)容包括修改操作、查詢操作、初始化操作、數(shù)據(jù)同步;修改操作包含增加一個(gè)節(jié)點(diǎn)、刪除一個(gè)節(jié)點(diǎn)、增加一條有向邊、刪除一條有向邊、修改節(jié)點(diǎn)參數(shù);查詢操作包括(1)查詢某條邊的半環(huán)數(shù),這個(gè)方法返回這條邊的半環(huán)數(shù);(2)查詢某條邊的半環(huán),返回這條邊的半環(huán)集合;(3)查詢某條邊的環(huán)路數(shù),返回這條邊的環(huán)路數(shù);(4) 查詢某條邊的環(huán)路,返回這條邊的環(huán)路集合;(5)查詢兩點(diǎn)間的路徑,返回兩點(diǎn)間的路徑集合;其中,所述半環(huán)指再補(bǔ)上一條有向邊即可形成環(huán)路的有向圖網(wǎng)絡(luò),所述環(huán)路指從一個(gè)節(jié)點(diǎn)出發(fā),沿著有向邊前進(jìn),最終回到這個(gè)節(jié)點(diǎn)的有向圖網(wǎng)絡(luò);初始化操作在系統(tǒng)啟動(dòng)時(shí)被調(diào)用,根據(jù)電子數(shù)據(jù)庫(kù)完成有向圖網(wǎng)絡(luò)的構(gòu)建;為了防止保存在電子數(shù)據(jù)庫(kù)中的數(shù)據(jù)與內(nèi)存中的有向圖數(shù)據(jù)不一致,需要手動(dòng)調(diào)用數(shù)據(jù)同步服務(wù),從有向圖中計(jì)算輸出所有必要的數(shù)據(jù)并同步到數(shù)據(jù)庫(kù)。
4.根據(jù)權(quán)利要求3所述的多方交易系統(tǒng),其特征在于所述核心引擎模塊進(jìn)一步包括定時(shí)更新單元,負(fù)責(zé)定時(shí)從有向圖網(wǎng)絡(luò)中計(jì)算出最近變化的數(shù)據(jù)并輸出;對(duì)整個(gè)有向圖網(wǎng)絡(luò)有一個(gè)變化標(biāo)志,表示最近這張圖的結(jié)構(gòu)是否發(fā)生變化,如果沒(méi)有變化,定時(shí)服務(wù)沒(méi)有必要執(zhí)行;如果有變化,定時(shí)服務(wù)才會(huì)計(jì)算并輸出;對(duì)每一條邊同樣有一個(gè)變化標(biāo)志,表示這條邊是新增加的,還是已經(jīng)被刪除的;對(duì)每一個(gè)節(jié)點(diǎn)也有一個(gè)變化標(biāo)志,表示這個(gè)節(jié)點(diǎn)的參數(shù)是否有變化。
5.根據(jù)權(quán)利要求4所述的多方交易系統(tǒng),其特征在于所述定時(shí)更新單元每隔一定的時(shí)間輪詢有向圖網(wǎng)絡(luò);如果有向圖網(wǎng)絡(luò)的狀態(tài)為“未變化”,則什么都不需要做;如果狀態(tài)變?yōu)椤白兓保瑒t查找有向圖中所有的標(biāo)記為“新增加”或者“已刪除”的有向邊,以及標(biāo)記為“已修改”的節(jié)點(diǎn),根據(jù)這些節(jié)點(diǎn)和有向邊,計(jì)算出有向圖中的變化并輸出;設(shè)置整個(gè)有向圖的狀態(tài)為“未變化”,將圖中的每個(gè)節(jié)點(diǎn)、每條有向邊都標(biāo)志為“未變化”。
6.根據(jù)權(quán)利要求1所述的多方交易系統(tǒng),其特征在于所述方案輸出模塊將核心引擎模塊獲得有向圖的輸出,包括環(huán)路和半環(huán)數(shù)據(jù),并將其重新轉(zhuǎn)化、重組為交易數(shù)據(jù),保存到數(shù)據(jù)庫(kù);一個(gè)環(huán)路表示的是一個(gè)已經(jīng)形成了的交易方案,其中的有向邊表示用戶之間的交易請(qǐng)求,其中的節(jié)點(diǎn)表示參與其中的用戶所拿出的錢或者物品或者錢和物品的打包;一個(gè)半環(huán)表示一個(gè)推薦的交易方案,其中的有向邊表示用戶之間的交易請(qǐng)求,其中的節(jié)點(diǎn)表示參與其中的用戶所拿出的錢或者物品或者錢和物品的打包,缺少的一條有向邊表示最后需要被推薦的交易請(qǐng)求;所述核心引擎模塊輸出的環(huán)路和半環(huán),系統(tǒng)需要先對(duì)它們進(jìn)行節(jié)點(diǎn)和有向邊的分解, 重新將其中的節(jié)點(diǎn)轉(zhuǎn)為數(shù)據(jù)庫(kù)中對(duì)應(yīng)的物品或者錢,將有向邊轉(zhuǎn)為對(duì)應(yīng)的交易請(qǐng)求數(shù)據(jù); 并且分析得出參與其中的用戶,同時(shí)從數(shù)據(jù)庫(kù)中讀取必要的交易信息以及用戶信息;然后對(duì)這些數(shù)據(jù)進(jìn)行整合及歸類,將這些數(shù)據(jù)還原,得到真實(shí)世界中的交易方案以及推薦的交易方案,保存到數(shù)據(jù)庫(kù)。
7.一種多方交易系統(tǒng),其特征在于,所述系統(tǒng)包括交易信息輸入模塊,用以輸入交易請(qǐng)求信息,并將交易請(qǐng)求信息保存至數(shù)據(jù)庫(kù)中;所述交易清求信息包括被交易物信息、需求信息,被交易物信息、需求信息均為一種或多種方案;核心引擎模塊,用以讀取所述數(shù)據(jù)庫(kù)中的各交易請(qǐng)求信息,將交易請(qǐng)求信息中的被交易物信息抽象化為有向圖中的節(jié)點(diǎn),將交易請(qǐng)求數(shù)據(jù)抽象化為有向圖中的邊,將交易期望和交易地點(diǎn)轉(zhuǎn)化為相應(yīng)的屬性以及權(quán)值,附著到對(duì)應(yīng)的節(jié)點(diǎn)和有向邊上;然后對(duì)整個(gè)有向圖進(jìn)行聚合,關(guān)聯(lián)所有的節(jié)點(diǎn)以及有向邊,構(gòu)建一個(gè)有向圖網(wǎng)絡(luò);并按照交易期望以及交易地點(diǎn)屬性過(guò)濾輸出結(jié)果;所述核心引擎模塊基于圖論中的有向圖理論來(lái)抽象真實(shí)世界中的交易問(wèn)題;所述核心引擎模塊包括-抽象化單元,用以將數(shù)據(jù)庫(kù)中存在的物品數(shù)據(jù)抽象為有向圖中的節(jié)點(diǎn),將數(shù)據(jù)庫(kù)中記錄的交易請(qǐng)求數(shù)據(jù)抽象為有向邊,將輸入的交易期望以及交易地點(diǎn),轉(zhuǎn)化為對(duì)應(yīng)的屬性附加到對(duì)應(yīng)的節(jié)點(diǎn)和有向邊上;系統(tǒng)初次啟動(dòng)時(shí),對(duì)數(shù)據(jù)庫(kù)中的所有交易信息以及物品信息進(jìn)行一次完整的掃描,從而構(gòu)建出當(dāng)前狀態(tài)下的有向圖網(wǎng)絡(luò);-聚合單元,用以將所述有向圖網(wǎng)絡(luò)矩陣化,然后通過(guò)搜索算法找到當(dāng)前狀態(tài)整個(gè)有向圖網(wǎng)絡(luò)中的節(jié)點(diǎn)的相關(guān)信息,對(duì)部分信息在內(nèi)存中做臨時(shí)性的保留;-分析單元,用以檢查節(jié)點(diǎn)和有向邊上的交易期望和交易地點(diǎn)屬性,過(guò)濾掉不符合要求的數(shù)據(jù),并導(dǎo)出最后交易方案;_客戶端接口,留給外部系統(tǒng)調(diào)用修改以及查詢有向圖的狀態(tài);接口內(nèi)容包括修改操作、查詢操作、初始化操作、數(shù)據(jù)同步;修改操作包含增加一個(gè)節(jié)點(diǎn)、刪除一個(gè)節(jié)點(diǎn)、增加一條有向邊、刪除一條有向邊、修改節(jié)點(diǎn)參數(shù);增加一條有向邊之后,需調(diào)整與這條邊相關(guān)的交易方案;查詢操作包括(1)查詢某條邊的半環(huán)數(shù),這個(gè)方法返回這條邊的半環(huán)數(shù);(2) 查詢某條邊的半環(huán),返回這條邊的半環(huán)集合;(3)查詢某條邊的環(huán)路數(shù),返回這條邊的環(huán)路數(shù);(4)查詢某條邊的環(huán)路,返回這條邊的環(huán)路集合;(5)查詢兩點(diǎn)間的路徑,返回兩點(diǎn)間的路徑集合;其中,所述半環(huán)指再補(bǔ)上一條有向邊即可形成環(huán)路的有向圖網(wǎng)絡(luò),所述環(huán)路指從一個(gè)節(jié)點(diǎn)出發(fā),沿著有向邊前進(jìn),最終回到這個(gè)節(jié)點(diǎn)的有向圖網(wǎng)絡(luò);初始化操作在系統(tǒng)啟動(dòng)時(shí)被調(diào)用,根據(jù)電子數(shù)據(jù)庫(kù)完成有向圖網(wǎng)絡(luò)的構(gòu)建;數(shù)據(jù)同步為了防止保存在電子數(shù)據(jù)庫(kù)中的數(shù)據(jù)與內(nèi)存中的有向圖數(shù)據(jù)不一致,所以手動(dòng)調(diào)用,從有向圖中計(jì)算輸出所有必要的數(shù)據(jù)并同步到數(shù)據(jù)庫(kù);-定時(shí)更新單元,負(fù)責(zé)定時(shí)從有向圖網(wǎng)絡(luò)中計(jì)算出最近變化的數(shù)據(jù)并輸出;對(duì)整個(gè)有向圖網(wǎng)絡(luò)有一個(gè)變化標(biāo)志,表示最近這張圖的結(jié)構(gòu)是否發(fā)生變化,如果沒(méi)有變化,定時(shí)服務(wù)沒(méi)有必要執(zhí)行;如果有變化,定時(shí)服務(wù)才會(huì)計(jì)算并輸出;對(duì)每一條邊同樣有一個(gè)變化標(biāo)志, 表示這條邊是新增加的,還是已經(jīng)被刪除的;對(duì)每一個(gè)節(jié)點(diǎn)也有一個(gè)變化標(biāo)志,表示這個(gè)節(jié)點(diǎn)的參數(shù)是否有變化;所述定時(shí)更新單元每隔一定的時(shí)間輪詢有向圖網(wǎng)絡(luò);如果有向圖網(wǎng)絡(luò)的狀態(tài)為“未變化”,則什么都不需要做;如果狀態(tài)變?yōu)椤白兓?,則查找有向圖中所有的標(biāo)記為“新增加”或者“已刪除”的有向邊,以及標(biāo)記為“已修改”的節(jié)點(diǎn),根據(jù)這些節(jié)點(diǎn)和有向邊,計(jì)算出有向圖中的變化并輸出;設(shè)置整個(gè)有向圖的狀態(tài)為“未變化”,將圖中的每個(gè)節(jié)點(diǎn)、每條有向邊都標(biāo)志為“未變化”;方案輸出模塊,用以將核心引擎模塊產(chǎn)生的有向圖信息重新轉(zhuǎn)化為交易信息,得到交易方案,并分配到對(duì)應(yīng)的用戶和物品,完成數(shù)據(jù)的重組;所述方案輸出模塊將核心引擎模塊獲得有向圖的輸出,包括環(huán)路和半環(huán)數(shù)據(jù),并將其重新轉(zhuǎn)化、重組為交易數(shù)據(jù),保存到數(shù)據(jù)庫(kù);一個(gè)環(huán)路表示的是一個(gè)已經(jīng)形成了的交易方案,其中的有向邊表示用戶之間的交易請(qǐng)求,其中的節(jié)點(diǎn)表示參與其中的用戶所拿出的錢或者物品或者錢和物品的打包;一個(gè)半環(huán)表示一個(gè)推薦的交易方案,其中的有向邊表示用戶之間的交易請(qǐng)求,其中的節(jié)點(diǎn)表示參與其中的用戶所拿出的錢或者物品或者錢和物品的打包,缺少的一條有向邊表示最后需要被推薦的交易請(qǐng)求;所述核心引擎模塊輸出的環(huán)路和半環(huán),系統(tǒng)需要先對(duì)它們進(jìn)行節(jié)點(diǎn)和有向邊的分解,重新將其中的節(jié)點(diǎn)轉(zhuǎn)為數(shù)據(jù)庫(kù)中對(duì)應(yīng)的物品或者錢,將有向邊轉(zhuǎn)為對(duì)應(yīng)的交易請(qǐng)求數(shù)據(jù);并且分析得出參與其中的用戶,同時(shí)從數(shù)據(jù)庫(kù)中讀取必要的交易信息以及用戶信息;然后對(duì)這些數(shù)據(jù)進(jìn)行整合及歸類,將這些數(shù)據(jù)還原,得到真實(shí)世界中的交易方案以及推薦的交易方案,保存到數(shù)據(jù)庫(kù)。
8. 一種多方交易系統(tǒng),其特征在于,所述系統(tǒng)包括交易信息輸入模塊,用以輸入交易請(qǐng)求信息,并將交易請(qǐng)求信息保存至數(shù)據(jù)庫(kù)中;所述交易請(qǐng)求信息包括被交易物信息、需求信息,被交易物信息、需求信息均為一種或多種方案;核心引擎模塊,用以讀取所述數(shù)據(jù)庫(kù)中的各交易請(qǐng)求信息,將交易請(qǐng)求信息中的被交易物信息抽象化為有向圖中的節(jié)點(diǎn),將匹配的交易抽象化為有向圖中的邊;然后對(duì)整個(gè)有向圖進(jìn)行聚合,關(guān)聯(lián)所有的節(jié)點(diǎn)以及有向邊,構(gòu)建一個(gè)有向圖網(wǎng)絡(luò);方案輸出模塊,用以將引擎模塊產(chǎn)生的有向圖信息重新轉(zhuǎn)化為交易信息,得到交易方案,完成數(shù)據(jù)的重組。
9.一種多方交易方法,其特征在于,所述方法包括如下步驟交易信息輸入步驟,輸入交易請(qǐng)求信息,并將交易請(qǐng)求信息保存至數(shù)據(jù)庫(kù)中;所述交易請(qǐng)求信息包括被交易物信息、需求信息,被交易物信息、需求信息均為一種或多種方案;核心引擎步驟,讀取所述數(shù)據(jù)庫(kù)中的各交易請(qǐng)求信息,將交易請(qǐng)求信息中的被交易物信息抽象化為有向圖中的節(jié)點(diǎn),將匹配的交易抽象化為有向圖中的邊;然后對(duì)整個(gè)有向圖進(jìn)行聚合,關(guān)聯(lián)所有的節(jié)點(diǎn)以及有向邊,構(gòu)建一個(gè)有向圖網(wǎng)絡(luò);方案輸出步驟,將核心引擎步驟產(chǎn)生的有向圖信息重新轉(zhuǎn)化為交易信息,得到交易方案,完成數(shù)據(jù)的重組。
10.根據(jù)權(quán)利要求9所述的多方交易方法,其特征在于 所述核心引擎步驟包括抽象化步驟,將數(shù)據(jù)庫(kù)中存在的物品數(shù)據(jù)抽象為有向圖中的節(jié)點(diǎn),將數(shù)據(jù)庫(kù)中記錄的交易請(qǐng)求數(shù)據(jù)抽象為有向邊,將輸入的交易期望以及交易地點(diǎn),轉(zhuǎn)化為對(duì)應(yīng)的屬性附加到對(duì)應(yīng)的節(jié)點(diǎn)和有向邊上;系統(tǒng)初次啟動(dòng)時(shí),對(duì)數(shù)據(jù)庫(kù)中的所有交易信息以及物品信息進(jìn)行一次完整的掃描,從而構(gòu)建出當(dāng)前狀態(tài)下的有向圖網(wǎng)絡(luò);聚合步驟,將所述有向圖網(wǎng)絡(luò)矩陣化,然后通過(guò)搜索算法找到當(dāng)前狀態(tài)整個(gè)有向圖網(wǎng)絡(luò)中的節(jié)點(diǎn)的相關(guān)信息,對(duì)部分信息在內(nèi)存中做臨時(shí)性的保留;分析步驟,檢查節(jié)點(diǎn)和有向邊上的交易期望和交易地點(diǎn)屬性,過(guò)濾掉不符合要求的數(shù)據(jù),并導(dǎo)出最后交易方案。
11.根據(jù)權(quán)利要求10所述的多方交易方法,其特征在于所述核心引擎步驟進(jìn)一步提供了一個(gè)客戶端接口,留給外部系統(tǒng)調(diào)用修改以及查詢有向圖的狀態(tài);接口內(nèi)容包括修改操作、查詢操作、初始化操作、數(shù)據(jù)同步;修改操作包含增加一個(gè)節(jié)點(diǎn)、刪除一個(gè)節(jié)點(diǎn)、增加一條有向邊、刪除一條有向邊、修改節(jié)點(diǎn)參數(shù);增加一條有向邊之后,需調(diào)整與這條邊相關(guān)的交易方案;查詢操作包括(1)查詢某條邊的半環(huán)數(shù),這個(gè)方法返回這條邊的半環(huán)數(shù);(2)查詢某條邊的半環(huán),返回這條邊的半環(huán)集合;(3)查詢某條邊的環(huán)路數(shù),返回這條邊的環(huán)路數(shù);(4) 查詢某條邊的環(huán)路,返回這條邊的環(huán)路集合;(5)查詢兩點(diǎn)間的路徑,返回兩點(diǎn)間的路徑集合;其中,所述半環(huán)指再補(bǔ)上一條有向邊即可形成環(huán)路的有向圖網(wǎng)絡(luò),所述環(huán)路指從一個(gè)節(jié)點(diǎn)出發(fā),沿著有向邊前進(jìn),最終回到這個(gè)節(jié)點(diǎn)的有向圖網(wǎng)絡(luò);初始化操作在系統(tǒng)啟動(dòng)時(shí)被調(diào)用,根據(jù)電子數(shù)據(jù)庫(kù)完成有向圖網(wǎng)絡(luò)的構(gòu)建; 為了防止保存在電子數(shù)據(jù)庫(kù)中的數(shù)據(jù)與內(nèi)存中的有向圖數(shù)據(jù)不一致,需要手動(dòng)調(diào)用數(shù)據(jù)同步服務(wù),從有向圖中計(jì)算輸出所有必要的數(shù)據(jù)并同步到數(shù)據(jù)庫(kù)。
12.根據(jù)權(quán)利要求11所述的多方交易方法,其特征在于所述核心引擎步驟進(jìn)一步包括定時(shí)更新步驟,負(fù)責(zé)定時(shí)從有向圖網(wǎng)絡(luò)中計(jì)算出最近變化的數(shù)據(jù)并輸出;對(duì)整個(gè)有向圖網(wǎng)絡(luò)有一個(gè)變化標(biāo)志,表示最近這張圖的結(jié)構(gòu)是否發(fā)生變化,如果沒(méi)有變化,定時(shí)服務(wù)沒(méi)有必要執(zhí)行;如果有變化,定時(shí)服務(wù)才會(huì)計(jì)算并輸出;對(duì)每一條邊同樣有一個(gè)變化標(biāo)志,表示這條邊是新增加的,還是已經(jīng)被刪除的;對(duì)每一個(gè)節(jié)點(diǎn)也有一個(gè)變化標(biāo)志,表示這個(gè)節(jié)點(diǎn)的參數(shù)是否有變化。
13.根據(jù)權(quán)利要求12所述的多方交易方法,其特征在于所述定時(shí)更新步驟中,每隔一定的時(shí)間輪詢有向圖網(wǎng)絡(luò);如果有向圖網(wǎng)絡(luò)的狀態(tài)為“未變化”,則什么都不需要做;如果狀態(tài)變?yōu)椤白兓?,則查找有向圖中所有的標(biāo)記為“新增加” 或者“已刪除”的有向邊,以及標(biāo)記為“已修改”的節(jié)點(diǎn),根據(jù)這些節(jié)點(diǎn)和有向邊,計(jì)算出有向圖中的變化并輸出;設(shè)置整個(gè)有向圖的狀態(tài)為“未變化”,將圖中的每個(gè)節(jié)點(diǎn)、每條有向邊都標(biāo)志為“未變化”。
14.根據(jù)權(quán)利要求9所述的多方交易方法,其特征在于所述方案輸出步驟中,將核心引擎步驟獲得有向圖的輸出,包括環(huán)路和半環(huán)數(shù)據(jù),并將其重新轉(zhuǎn)化、重組為交易數(shù)據(jù),保存到數(shù)據(jù)庫(kù);一個(gè)環(huán)路表示的是一個(gè)已經(jīng)形成了的交易方案,其中的有向邊表示用戶之間的交易請(qǐng)求,其中的節(jié)點(diǎn)表示參與其中的用戶所拿出的錢或者物品或者錢和物品的打包;一個(gè)半環(huán)表示一個(gè)推薦的交易方案,其中的有向邊表示用戶之間的交易請(qǐng)求,其中的節(jié)點(diǎn)表示參與其中的用戶所拿出的錢或者物品或者錢和物品的打包,缺少的一條有向邊表示最后需要被推薦的交易請(qǐng)求;所述核心引擎步驟輸出的環(huán)路和半環(huán),系統(tǒng)需要先對(duì)它們進(jìn)行節(jié)點(diǎn)和有向邊的分解, 重新將其中的節(jié)點(diǎn)轉(zhuǎn)為數(shù)據(jù)庫(kù)中對(duì)應(yīng)的物品或者錢,將有向邊轉(zhuǎn)為對(duì)應(yīng)的交易請(qǐng)求數(shù)據(jù); 并且分析得出參與其中的用戶,同時(shí)從數(shù)據(jù)庫(kù)中讀取必要的交易信息以及用戶信息;然后對(duì)這些數(shù)據(jù)進(jìn)行整合及歸類,將這些數(shù)據(jù)還原,得到真實(shí)世界中的交易方案以及推薦的交易方案,保存到數(shù)據(jù)庫(kù)。
全文摘要
本發(fā)明揭示了一種多方交易系統(tǒng)及交易方法,所述系統(tǒng)包括交易信息輸入模塊、核心引擎模塊、方案輸出模塊。交易信息輸入模塊輸入交易請(qǐng)求信息,并將交易請(qǐng)求信息保存至數(shù)據(jù)庫(kù)中;核心引擎模塊讀取所述數(shù)據(jù)庫(kù)中的各交易請(qǐng)求信息,將交易請(qǐng)求信息中的被交易物信息抽象化為有向圖中的節(jié)點(diǎn),將交易請(qǐng)求數(shù)據(jù)抽象化為有向圖中的邊;然后對(duì)整個(gè)有向圖進(jìn)行聚合,關(guān)聯(lián)所有的節(jié)點(diǎn)以及有向邊,構(gòu)建一個(gè)有向圖網(wǎng)絡(luò);并按照交易期望以及交易地點(diǎn)等條件屬性過(guò)濾輸出結(jié)果。本發(fā)明通過(guò)對(duì)有向圖的分析,計(jì)算出已經(jīng)形成的交易方案和推薦的交易方案,挖掘潛在的交易可能。
文檔編號(hào)G06Q30/06GK102467728SQ201010536098
公開(kāi)日2012年5月23日 申請(qǐng)日期2010年11月9日 優(yōu)先權(quán)日2010年11月9日
發(fā)明者孫文俊, 陳雪峰 申請(qǐng)人:上海悅易網(wǎng)絡(luò)信息技術(shù)有限公司