車(chē)輛共享利潤(rùn)最大化的用戶(hù)請(qǐng)求分配系統(tǒng)及其方法
【專(zhuān)利摘要】本發(fā)明公開(kāi)了一種車(chē)輛共享利潤(rùn)最大化的用戶(hù)請(qǐng)求分配系統(tǒng)及其方法,本發(fā)明的系統(tǒng)由請(qǐng)求處理模塊、數(shù)據(jù)處理模塊、控制中心模塊和擴(kuò)展存儲(chǔ)模塊組成。本發(fā)明使用請(qǐng)求處理模塊接收需要搭乘車(chē)輛用戶(hù)和搭載用戶(hù)的司機(jī)的請(qǐng)求數(shù)據(jù),數(shù)據(jù)處理模接收控制中心的命令,對(duì)數(shù)據(jù)進(jìn)行處理,分別得到有搭乘車(chē)輛需求的用戶(hù)的路徑序列表、請(qǐng)求分組表、相容性條件表以及所有司機(jī)可搭乘組合距離表,控制中心模塊將數(shù)據(jù)暫存到擴(kuò)展存儲(chǔ)模塊,傳送命令給數(shù)據(jù)處理模塊,并將結(jié)果發(fā)送給需要搭乘車(chē)輛用戶(hù)和搭載用戶(hù)的司機(jī)的終端設(shè)備。本發(fā)明具有適用范圍廣、容錯(cuò)性高、擴(kuò)展性強(qiáng)、實(shí)用性強(qiáng)的特點(diǎn),可用于用戶(hù)請(qǐng)求的分配。
【專(zhuān)利說(shuō)明】
車(chē)輛共享利潤(rùn)最大化的用戶(hù)請(qǐng)求分配系統(tǒng)及其方法
技術(shù)領(lǐng)域
[0001] 本發(fā)明屬于計(jì)算機(jī)技術(shù)領(lǐng)域,更進(jìn)一步設(shè)及移動(dòng)數(shù)據(jù)分析與服務(wù)軌跡數(shù)據(jù)處理技 術(shù)領(lǐng)域中的一種車(chē)輛共享利潤(rùn)最大化的用戶(hù)請(qǐng)求分配系統(tǒng)及其方法。本發(fā)明通過(guò)前端服務(wù) 中屯、系統(tǒng)接收用戶(hù)和司機(jī)從終端發(fā)出的多個(gè)用戶(hù)搭乘同一個(gè)車(chē)輛的請(qǐng)求數(shù)據(jù),然后將數(shù)據(jù) 傳送給后臺(tái)進(jìn)行數(shù)據(jù)處理,最終服務(wù)中屯、系統(tǒng)將分配結(jié)果返回給用戶(hù)和司機(jī)的終端。
【背景技術(shù)】
[0002] 城市大數(shù)據(jù)是多學(xué)科交叉的研究領(lǐng)域,設(shè)及數(shù)學(xué),計(jì)算機(jī),經(jīng)濟(jì)學(xué),環(huán)境學(xué)等。面對(duì) 每天產(chǎn)生的大量車(chē)輛軌跡數(shù)據(jù),如何通過(guò)數(shù)據(jù)挖掘出市民和司機(jī)的出行軌跡規(guī)律對(duì)于城市 管理起著關(guān)鍵作用。通過(guò)對(duì)城市中的居民、車(chē)輛等移動(dòng)對(duì)象的軌跡數(shù)據(jù)進(jìn)行收集,并對(duì)數(shù)據(jù) 進(jìn)行分析處理,可W挖掘出其中隱藏的模式與知識(shí)。利用運(yùn)些模式與知識(shí),可W幫助城市管 理者與決策者對(duì)城市進(jìn)行合理的規(guī)劃,W此解決城市當(dāng)前面臨的問(wèn)題。車(chē)輛共享問(wèn)題對(duì)于 用戶(hù)來(lái)說(shuō)可W較好地解決打車(chē)難的問(wèn)題,同時(shí)對(duì)于司機(jī)來(lái)說(shuō)可W解決車(chē)輛座位利用率低的 問(wèn)題同時(shí)增加自己的收入。
[0003] Bin Cao、Louai Alarabi、Mohamed F.MolcbeKAnas Basalamah在其發(fā)表的論文 "細(xì)AREK:A Scalable Dynamic Ride 化aring System." (MDM,2015)中提出Euclidean Temporal&Cost PruningW及Semi-Euclidean Skyline-aware Pruning算法解決多個(gè)用戶(hù) 同時(shí)搭乘同一個(gè)車(chē)輛的問(wèn)題。該方法首先計(jì)算車(chē)輛與指定用戶(hù)之間的距離,根據(jù)設(shè)定的距 離闊值刪減掉不滿(mǎn)足的車(chē)輛。然后計(jì)算每一個(gè)滿(mǎn)足的車(chē)輛搭乘該用戶(hù)所需要產(chǎn)生費(fèi)用,根 據(jù)設(shè)定的價(jià)格參加刪減掉不滿(mǎn)足的車(chē)輛。最終計(jì)算每個(gè)滿(mǎn)足的車(chē)輛到用戶(hù)的完整路徑與時(shí) 間,并根據(jù)時(shí)間進(jìn)行排序,將時(shí)間最短的一個(gè)車(chē)輛分配給用戶(hù)。該系統(tǒng)存在的不足之處是, 數(shù)據(jù)處理模塊中沒(méi)有加入存儲(chǔ)擴(kuò)展模塊,使得數(shù)據(jù)傳送過(guò)程中可能導(dǎo)致數(shù)據(jù)的混亂。該方 法存在的不足之處是,不能將多個(gè)需要搭乘車(chē)輛的用戶(hù)在同一時(shí)間分配給需要搭載用戶(hù)的 司機(jī)。
[0004] 化11〇 Ma,化 Zheng,0u;ri Wolfson在其發(fā)表的叮-Share:A Large-Scale Dynamic Taxi Ridesharing Service( International Conference on Data Engineering,2013, pages 89-101)提出基于時(shí)空索引的車(chē)輛捜索算法快速檢索候選車(chē)輛,并通過(guò)時(shí)刻分配算 法將候選車(chē)輛分配給用戶(hù),W此動(dòng)態(tài)的使得多個(gè)用戶(hù)同時(shí)搭乘同一個(gè)車(chē)輛。該方法首先將 城市進(jìn)行標(biāo)號(hào)網(wǎng)格化,并將網(wǎng)格的中屯、作為該網(wǎng)格的結(jié)點(diǎn)。然后計(jì)算每個(gè)網(wǎng)格到指定用戶(hù) 起始點(diǎn)所在的網(wǎng)格的時(shí)間,根據(jù)設(shè)定的時(shí)間參數(shù),得到滿(mǎn)足的起點(diǎn)網(wǎng)格。其次計(jì)算每個(gè)網(wǎng)格 到指定用戶(hù)終點(diǎn)所在的網(wǎng)格的時(shí)間,根據(jù)設(shè)定的時(shí)間參數(shù),得到滿(mǎn)足的終點(diǎn)網(wǎng)格。最終,根 據(jù)起點(diǎn)網(wǎng)格與終點(diǎn)網(wǎng)格里面所包含的車(chē)輛,找到同時(shí)滿(mǎn)足車(chē)輛,將該車(chē)輛分配給用戶(hù)。該問(wèn) 題將車(chē)輛分配給提出共享車(chē)輛請(qǐng)求的用戶(hù)。該系統(tǒng)存在的不足之處是,數(shù)據(jù)處理模塊中沒(méi) 有計(jì)算路徑序列,無(wú)法提供給需要搭載用戶(hù)司機(jī)一個(gè)完整的行駛路徑。該方法存在的不足 之處是,沒(méi)有將需要搭載用戶(hù)司機(jī)行駛的距離考慮到分配的方法之中。
【發(fā)明內(nèi)容】
[0005] 本發(fā)明的目的在于克服上述已有技術(shù)的不足,提出了一種車(chē)輛共享利潤(rùn)最大化的 用戶(hù)請(qǐng)求分配系統(tǒng)及其方法,通過(guò)請(qǐng)求處理模塊接收搭乘車(chē)輛需求的用戶(hù)和需要搭載用戶(hù) 的司機(jī)從終端設(shè)備發(fā)送的請(qǐng)求數(shù)據(jù),進(jìn)行預(yù)處理后,將請(qǐng)求數(shù)據(jù)發(fā)送給數(shù)據(jù)處理模塊,控制 中屯、發(fā)送給數(shù)據(jù)處理模塊數(shù)據(jù)讀取命令,數(shù)據(jù)處理模塊分別得到路徑序列數(shù)據(jù)、請(qǐng)求分組 表、相容性條件表、所有司機(jī)可搭乘組合距離表,當(dāng)處理完成后,控制中屯、將分配結(jié)果發(fā)送 給搭乘車(chē)輛需求用戶(hù)、需要搭載用戶(hù)的司機(jī)的終端。
[0006] 本發(fā)明的系統(tǒng)包括請(qǐng)求處理模塊,數(shù)據(jù)處理模塊,控制中屯、模塊,擴(kuò)展存儲(chǔ)模塊W 及城市道路網(wǎng)絡(luò)數(shù)據(jù)模塊。其中:
[0007] 請(qǐng)求處理模塊,用于接收搭乘車(chē)輛需求的用戶(hù)和需要搭載用戶(hù)的司機(jī)從終端設(shè)備 發(fā)送的請(qǐng)求數(shù)據(jù),得到搭乘車(chē)輛需求的用戶(hù)請(qǐng)求數(shù)據(jù)表與需要搭載用戶(hù)的司機(jī)請(qǐng)求數(shù)據(jù) 表。
[0008] 數(shù)據(jù)處理模塊,用于從請(qǐng)求處理模塊中讀取搭乘車(chē)輛需求的用戶(hù)請(qǐng)求數(shù)據(jù)表,讀 取城市道路網(wǎng)絡(luò)數(shù)據(jù)模塊中的當(dāng)前城市道路網(wǎng)絡(luò)數(shù)據(jù),利用迪杰斯科拉Dijkstra算法,計(jì) 算出每個(gè)有搭乘車(chē)輛需求的用戶(hù)從起點(diǎn)到終點(diǎn)路徑序列,將計(jì)算結(jié)果存儲(chǔ)于擴(kuò)展存儲(chǔ)模 塊;數(shù)據(jù)處理模塊從擴(kuò)展存儲(chǔ)模塊中讀取搭乘車(chē)輛需求的用戶(hù)請(qǐng)求表,計(jì)算得到請(qǐng)求分組 表,將請(qǐng)求分組表存儲(chǔ)于擴(kuò)展存儲(chǔ)模塊;數(shù)據(jù)處理模塊從擴(kuò)展存儲(chǔ)模塊中讀取目標(biāo)請(qǐng)求分 組表、路徑序列數(shù)據(jù),利用相容性剪枝算法,得到相容性條件表,將相容性條件表存儲(chǔ)于擴(kuò) 展存儲(chǔ)模塊;數(shù)據(jù)處理模塊從擴(kuò)展存儲(chǔ)模塊中讀取需要搭載用戶(hù)的司機(jī)請(qǐng)求數(shù)據(jù)表、相容 性條件表、路徑序列數(shù)據(jù),計(jì)算得到所有司機(jī)可搭乘組合距離表,將所有司機(jī)可搭乘組合距 離表存儲(chǔ)于擴(kuò)展存儲(chǔ)模塊。
[0009] 控制中屯、模塊,用于將搭乘車(chē)輛需求的用戶(hù)請(qǐng)求數(shù)據(jù)表和需要搭載用戶(hù)的司機(jī)請(qǐng) 求數(shù)據(jù)表發(fā)送給數(shù)據(jù)處理模塊;所述的控制中屯、模塊將數(shù)據(jù)讀取命令發(fā)送給數(shù)據(jù)處理模 塊,將所有司機(jī)可搭乘組合距離表中長(zhǎng)度最大的一個(gè)請(qǐng)求組合分別發(fā)送給搭乘車(chē)輛需求用 戶(hù)、需要搭載用戶(hù)的司機(jī)的終端。
[0010] 擴(kuò)展存儲(chǔ)模塊,用于存儲(chǔ)數(shù)據(jù)處理模塊發(fā)送的路徑序列數(shù)據(jù)、目標(biāo)請(qǐng)求分組表、所 有司機(jī)可搭乘組合距離表,供控制中屯、模塊讀取。
[0011] 城市道路網(wǎng)絡(luò)數(shù)據(jù)模塊,用于存儲(chǔ)城市道路網(wǎng)絡(luò)數(shù)據(jù),供數(shù)據(jù)處理模塊讀取。
[0012] 本發(fā)明方法的具體步驟如下:
[OOU] (1)接收數(shù)據(jù):
[0014] (Ia)請(qǐng)求處理模塊接收搭乘車(chē)輛需求的用戶(hù)和需要搭載用戶(hù)的司機(jī)從終端設(shè)備 發(fā)送的請(qǐng)求數(shù)據(jù),得到搭乘車(chē)輛需求的用戶(hù)請(qǐng)求數(shù)據(jù)表與需要搭載用戶(hù)的司機(jī)請(qǐng)求數(shù)據(jù) 表。
[0015] (Ib)控制中屯、將搭乘車(chē)輛需求的用戶(hù)請(qǐng)求數(shù)據(jù)表和需要搭載用戶(hù)的司機(jī)請(qǐng)求數(shù) 據(jù)表發(fā)送給數(shù)據(jù)處理模塊。
[0016] (2)計(jì)算有搭乘車(chē)輛需求的用戶(hù)的路徑序列:
[0017] (2a)數(shù)據(jù)處理模塊讀取擴(kuò)展模塊中搭乘車(chē)輛需求的用戶(hù)請(qǐng)求數(shù)據(jù)表,讀取城市道 路網(wǎng)絡(luò)數(shù)據(jù)模塊中當(dāng)前城市道路網(wǎng)絡(luò)數(shù)據(jù),利用迪杰斯科拉Di化Stra算法,得到每個(gè)有搭 乘車(chē)輛需求的用戶(hù)從起點(diǎn)到終點(diǎn)路徑序列,將計(jì)算結(jié)果存儲(chǔ)于擴(kuò)展存儲(chǔ)模塊。
[0018] (2b)控制中屯、將讀取數(shù)據(jù)命令發(fā)送給數(shù)據(jù)處理模塊。
[0019] (3)獲取請(qǐng)求分組表:
[0020] (3a)在數(shù)據(jù)處理模塊中設(shè)置一個(gè)空的請(qǐng)求分組表。
[0021] (3b)將空集合加入到請(qǐng)求分組表,得到當(dāng)前請(qǐng)求分組表。
[0022] (3c)數(shù)據(jù)處理模塊從擴(kuò)展存儲(chǔ)模塊中讀取搭乘車(chē)輛需求的用戶(hù)請(qǐng)求表。
[0023] (3d)將請(qǐng)求迭代次數(shù)設(shè)置為1。
[0024] (3e)設(shè)置一個(gè)目標(biāo)請(qǐng)求分組表,將當(dāng)前請(qǐng)求分組表復(fù)制到目標(biāo)請(qǐng)求分組表中。
[0025] (3f)將搭乘車(chē)輛需求的用戶(hù)請(qǐng)求表中第一個(gè)搭乘車(chē)輛需求的用戶(hù)加入到目標(biāo)表 中,判斷當(dāng)前請(qǐng)求組合的總?cè)藬?shù)是否超過(guò)車(chē)輛的容量,若是,則執(zhí)行步驟(3g),否則,執(zhí)行步 驟(3h)。
[0026] (3g)將當(dāng)前請(qǐng)求組合在請(qǐng)求分組表中刪除。
[0027] (3h)判斷請(qǐng)求迭代次數(shù)是否大于搭乘車(chē)輛需求的用戶(hù)請(qǐng)求表中請(qǐng)求的數(shù)目,若 是,則將迭代次數(shù)加1,執(zhí)行步驟(3e),否則,執(zhí)行步驟(3i)。
[0028] (3i)將目標(biāo)請(qǐng)求分組表存儲(chǔ)于擴(kuò)展存儲(chǔ)模塊。
[0029] (3 j)控制中屯、將數(shù)據(jù)讀取命令發(fā)送給數(shù)據(jù)處理模塊。
[0030] (4)建立相容性條件表:
[0031] (4a)數(shù)據(jù)處理模塊讀取目標(biāo)請(qǐng)求分組表、路徑序列數(shù)據(jù),利用相容性剪枝算法,得 到相容性條件表。
[0032] (4b)將相容性條件表存儲(chǔ)與擴(kuò)展存儲(chǔ)模塊中,控制中屯、將數(shù)據(jù)讀取命令發(fā)送給數(shù) 據(jù)處理模塊。
[0033] (5)建立所有司機(jī)可搭乘組合距離表:
[0034] (5a)數(shù)據(jù)處理模塊設(shè)置一個(gè)空的所有司機(jī)可搭乘組合距離表。
[0035] (5b)數(shù)據(jù)處理模塊從擴(kuò)展存儲(chǔ)模塊中讀取需要搭載用戶(hù)的司機(jī)請(qǐng)求數(shù)據(jù)表,相容 性條件表,路徑序列數(shù)據(jù)。
[0036] (5c)將請(qǐng)求數(shù)目迭代次數(shù)設(shè)置為1。
[0037] (5d)取出需要搭載用戶(hù)的司機(jī)請(qǐng)求數(shù)據(jù)表中任意一個(gè)司機(jī)的請(qǐng)求數(shù)據(jù),作為當(dāng)前 需要搭載用戶(hù)的司機(jī)的請(qǐng)求數(shù)據(jù)。
[0038] (5e)采用距離剪枝算法,獲得可搭乘請(qǐng)求組合距離表,將可搭乘請(qǐng)求組合距離表 加入到所有司機(jī)可搭乘組合距離表中。
[0039] (5f)判斷請(qǐng)求數(shù)目迭代次數(shù)是否大于搭載用戶(hù)的司機(jī)請(qǐng)求數(shù)據(jù)表中請(qǐng)求的數(shù)目, 若是,則將迭代次數(shù)加1后執(zhí)行步驟(5d),否則,執(zhí)行步驟(5g)。
[0040] (5g)數(shù)據(jù)處理模塊將所有司機(jī)可搭乘組合距離表存儲(chǔ)于擴(kuò)展存儲(chǔ)模塊,控制中屯、 模塊發(fā)送讀取數(shù)據(jù)命令給數(shù)據(jù)處理模塊。
[0041] (6)發(fā)送分配結(jié)果:
[0042] (6a)數(shù)據(jù)處理模塊讀取擴(kuò)展存儲(chǔ)模塊中所有司機(jī)可搭乘組合距離表。
[0043] (6b)取出所有司機(jī)可搭乘組合距離表中長(zhǎng)度最大的一個(gè)請(qǐng)求組合,作為當(dāng)前發(fā)送 請(qǐng)求分組。
[0044] (6c)控制中屯、將當(dāng)前發(fā)送請(qǐng)求分組分別發(fā)送給搭乘車(chē)輛需求用戶(hù)的終端和需要 搭載用戶(hù)的司機(jī)的終端。
[0045] 本發(fā)明與現(xiàn)有技術(shù)相比具有如下優(yōu)點(diǎn):
[0046] 第一,由于本發(fā)明的系統(tǒng)中加入了存儲(chǔ)擴(kuò)展模塊,可W將數(shù)據(jù)處理模塊中得到的 數(shù)據(jù)結(jié)果存儲(chǔ)于該模塊中,克服了現(xiàn)有技術(shù)數(shù)據(jù)傳送過(guò)程中可能導(dǎo)致的數(shù)據(jù)混亂問(wèn)題,使 得本發(fā)明系統(tǒng)具有增強(qiáng)容錯(cuò)性的優(yōu)點(diǎn)。
[0047] 第二,由于本發(fā)明的方法中采用了對(duì)需要搭乘車(chē)輛用戶(hù)的請(qǐng)求數(shù)據(jù)進(jìn)行分組,克 服了現(xiàn)有技術(shù)中存在的不能將多個(gè)用戶(hù)在同一時(shí)間分配給搭載用戶(hù)的司機(jī),使得本發(fā)明的 適用性增強(qiáng)。
[0048] 第=,由于本發(fā)明方法中計(jì)算了可搭乘請(qǐng)求分組中路徑序列的長(zhǎng)度,克服了現(xiàn)有 技術(shù)中沒(méi)有將需要搭載用戶(hù)司機(jī)行駛的距離考慮到分配的方法之中,使得本發(fā)明的實(shí)用性 增強(qiáng)。
【附圖說(shuō)明】
[0049] 圖1為本發(fā)明系統(tǒng)的方框圖;
[0050] 圖2為本發(fā)明方法的流程圖;
[0051] 圖3為本發(fā)明方法中步驟(4a)所述的相容性剪枝算法的具體步驟的流程圖。
【具體實(shí)施方式】
[0052] 下面結(jié)合附圖對(duì)本發(fā)明做進(jìn)一步的描述。
[0053] 參照附圖1本發(fā)明的系統(tǒng)包括請(qǐng)求處理模塊,數(shù)據(jù)處理模塊,控制中屯、模塊,擴(kuò)展 存儲(chǔ)模和城市道路網(wǎng)絡(luò)數(shù)據(jù)模塊。其中:
[0054] 請(qǐng)求處理模塊,由電腦客戶(hù)端負(fù)責(zé),接收搭乘車(chē)輛用戶(hù)和搭載用戶(hù)的司機(jī)通過(guò)手 機(jī)終端傳來(lái)的數(shù)據(jù),并對(duì)數(shù)據(jù)進(jìn)行預(yù)處理。
[0055] 數(shù)據(jù)處理模塊,數(shù)據(jù)處理模塊,用于從請(qǐng)求處理模塊中讀取搭乘車(chē)輛需求的用戶(hù) 請(qǐng)求數(shù)據(jù)表,讀取城市道路網(wǎng)絡(luò)數(shù)據(jù)模塊中的當(dāng)前城市道路網(wǎng)絡(luò)數(shù)據(jù),利用迪杰斯科拉 Di Astra算法,計(jì)算出每個(gè)有搭乘車(chē)輛需求的用戶(hù)從起點(diǎn)到終點(diǎn)路徑序列,將計(jì)算結(jié)果存 儲(chǔ)于擴(kuò)展存儲(chǔ)模塊;所述的數(shù)據(jù)處理模塊從擴(kuò)展存儲(chǔ)模塊中讀取搭乘車(chē)輛需求的用戶(hù)請(qǐng)求 表,計(jì)算得到請(qǐng)求分組表,將請(qǐng)求分組表存儲(chǔ)于擴(kuò)展存儲(chǔ)模塊;所述的數(shù)據(jù)處理模塊從擴(kuò)展 存儲(chǔ)模塊中讀取目標(biāo)請(qǐng)求分組表、路徑序列數(shù)據(jù),利用相容性剪枝算法,得到相容性條件 表,將相容性條件表存儲(chǔ)于擴(kuò)展存儲(chǔ)模塊;所述的數(shù)據(jù)處理模塊從擴(kuò)展存儲(chǔ)模塊中讀取需 要搭載用戶(hù)的司機(jī)請(qǐng)求數(shù)據(jù)表、相容性條件表、路徑序列數(shù)據(jù),計(jì)算得到所有司機(jī)可搭乘組 合距離表,將所有司機(jī)可搭乘組合距離表存儲(chǔ)于擴(kuò)展存儲(chǔ)模塊。
[0056] 控制中屯、模塊,用于將搭乘車(chē)輛需求的用戶(hù)請(qǐng)求數(shù)據(jù)表和需要搭載用戶(hù)的司機(jī)請(qǐng) 求數(shù)據(jù)表發(fā)送給數(shù)據(jù)處理模塊;所述的控制中屯、模塊將數(shù)據(jù)讀取命令發(fā)送給數(shù)據(jù)處理模 塊,將所有司機(jī)可搭乘組合距離表中長(zhǎng)度最大的一個(gè)請(qǐng)求組合分別發(fā)送給搭乘車(chē)輛需求用 戶(hù)、需要搭載用戶(hù)的司機(jī)的終端。
[0057] 擴(kuò)展存儲(chǔ)模塊,由動(dòng)態(tài)隨機(jī)存儲(chǔ)器組成,存儲(chǔ)路徑序列數(shù)據(jù)、目標(biāo)請(qǐng)求分組表、所 有司機(jī)可搭乘組合距離表,供數(shù)據(jù)處理模塊讀取。
[0058] 城市道路網(wǎng)絡(luò)數(shù)據(jù)模塊,用于存儲(chǔ)城市道路網(wǎng)絡(luò)數(shù)據(jù),供數(shù)據(jù)處理模塊讀取。
[0059] 下面結(jié)合圖2對(duì)本發(fā)明方法做進(jìn)一步的描述。
[0060] 步驟1.接收數(shù)據(jù)。
[0061] 請(qǐng)求處理模塊接收搭乘車(chē)輛需求的用戶(hù)和需要搭載用戶(hù)的司機(jī)從終端設(shè)備發(fā)送 的請(qǐng)求數(shù)據(jù),得到搭乘車(chē)輛需求的用戶(hù)請(qǐng)求數(shù)據(jù)表與需要搭載用戶(hù)的司機(jī)請(qǐng)求數(shù)據(jù)表。
[0062] 控制中屯、將搭乘車(chē)輛需求的用戶(hù)請(qǐng)求數(shù)據(jù)表和需要搭載用戶(hù)的司機(jī)請(qǐng)求數(shù)據(jù)表 發(fā)送給數(shù)據(jù)處理模塊。
[0063] 步驟2.計(jì)算有搭乘車(chē)輛需求的用戶(hù)的路徑序列。
[0064] 數(shù)據(jù)處理模塊讀取擴(kuò)展模塊中搭乘車(chē)輛需求的用戶(hù)請(qǐng)求數(shù)據(jù)表,讀取城市道路網(wǎng) 絡(luò)數(shù)據(jù)模塊中當(dāng)前城市道路網(wǎng)絡(luò)數(shù)據(jù),利用迪杰斯科拉Di Astra算法,得到每個(gè)有搭乘車(chē) 輛需求的用戶(hù)從起點(diǎn)到終點(diǎn)路徑序列,將計(jì)算結(jié)果存儲(chǔ)于擴(kuò)展存儲(chǔ)模塊。
[0065] 控制中屯、將讀取數(shù)據(jù)命令發(fā)送給數(shù)據(jù)處理模塊。
[0066] 步驟3.獲取請(qǐng)求分組表。
[0067] 第1步,在數(shù)據(jù)處理模塊中設(shè)置一個(gè)空的請(qǐng)求分組表。
[0068] 第2步,將空集合加入到請(qǐng)求分組表,得到當(dāng)前請(qǐng)求分組表。
[0069] 第3步,數(shù)據(jù)處理模塊從擴(kuò)展存儲(chǔ)模塊中讀取搭乘車(chē)輛需求的用戶(hù)請(qǐng)求表。
[0070] 第4步,將請(qǐng)求迭代次數(shù)設(shè)置為1。
[0071 ]第5步,設(shè)置一個(gè)目標(biāo)請(qǐng)求分組表,將當(dāng)前請(qǐng)求分組表復(fù)制到目標(biāo)請(qǐng)求分組表中。
[0072] 第6步,將搭乘車(chē)輛需求的用戶(hù)請(qǐng)求表中第一個(gè)搭乘車(chē)輛需求的用戶(hù)加入到目標(biāo) 表中,判斷當(dāng)前請(qǐng)求組合的總?cè)藬?shù)是否超過(guò)車(chē)輛的容量,若是,則執(zhí)行本步驟第7步,否則, 執(zhí)行本步驟第8步。
[0073] 第7步,將當(dāng)前請(qǐng)求組合在請(qǐng)求分組表中刪除。
[0074] 第8步,判斷請(qǐng)求迭代次數(shù)是否大于搭乘車(chē)輛需求的用戶(hù)請(qǐng)求表中請(qǐng)求的數(shù)目,若 是,則將迭代次數(shù)加1,執(zhí)行本步驟第5步,否則,執(zhí)行本步驟第9步。
[0075] 第9步,將目標(biāo)請(qǐng)求分組表存儲(chǔ)于擴(kuò)展存儲(chǔ)模塊。
[0076] 第10步,控制中屯、將數(shù)據(jù)讀取命令發(fā)送給數(shù)據(jù)處理模塊。
[0077] 步驟4.建立相容性條件表。
[0078] 數(shù)據(jù)處理模塊讀取目標(biāo)請(qǐng)求分組表、路徑序列數(shù)據(jù),利用相容性剪枝算法,得到相 容性條件表。
[0079] 下面結(jié)合圖3,對(duì)本步驟中的相容性剪枝算法的具體步驟做進(jìn)一步的描述。
[0080] 第1步,設(shè)置一個(gè)空的相容性條件表。
[0081] 第2步,判斷目標(biāo)請(qǐng)求分組表中請(qǐng)求分組的個(gè)數(shù)是否大于0,若是,則執(zhí)行本步驟第 3步,否則,執(zhí)行本步驟第14步。
[0082] 第3步,取出目標(biāo)請(qǐng)求分組表中任意一個(gè)請(qǐng)求分組,作為當(dāng)前請(qǐng)求分組。
[0083] 第4步,設(shè)置一個(gè)空的目標(biāo)請(qǐng)求分組,將當(dāng)前請(qǐng)求分組復(fù)制到目標(biāo)請(qǐng)求分組中;
[0084] 第5步,判斷目標(biāo)請(qǐng)求分組中請(qǐng)求的個(gè)數(shù)是否大于1,若是,則執(zhí)行本步驟第6步,否 貝IJ,執(zhí)行本步驟第13步。
[0085] 第6步,從路徑序列中取出目標(biāo)請(qǐng)求分組中任意兩個(gè)請(qǐng)求的路徑序列,分別作為路 徑序列1、路徑序列2。
[0086] 第7步,判斷路徑序列1中是否包含路徑序列2中的第一個(gè)結(jié)點(diǎn)并且路徑序列2中是 否包含路徑序列I中最后一個(gè)結(jié)點(diǎn),若是,則執(zhí)行本步驟第11步,否則,執(zhí)行本步驟第8步。
[0087] 第8步,判斷路徑序列2中是否包含路徑序列1中的第一個(gè)結(jié)點(diǎn)并且路徑序列2中是 否包含路徑序列1中的最后一個(gè)結(jié)點(diǎn),若是,則執(zhí)行本步驟第11步,否則,執(zhí)行本步驟第9步。
[0088] 第9步,判斷路徑序列1中是否包含路徑序列2中的第一個(gè)結(jié)點(diǎn)并且路徑序列1中是 否包含路徑序列2中的最后一個(gè)結(jié)點(diǎn),若是,則執(zhí)行本步驟第11步,否則,執(zhí)行本步驟第10 步。
[0089] 第10步,判斷路徑序列2中是否包含路徑序列1中的第一個(gè)結(jié)點(diǎn)并且路徑序列1中 包含路徑序列2中的最后一個(gè)結(jié)點(diǎn),若是,則執(zhí)行本步驟第11步,否則,執(zhí)行本步驟第14步。
[0090] 第11步,合并路徑序列1和路徑序列2相同的路徑結(jié)點(diǎn),組成一個(gè)目標(biāo)路徑序列,將 目標(biāo)路徑序列加入到目標(biāo)請(qǐng)求分組中。
[0091] 第12步,判斷目標(biāo)請(qǐng)求分組中請(qǐng)求的個(gè)數(shù)是否大于1,若是,則執(zhí)行本步驟第6步, 否則,執(zhí)行本步驟第13步。
[0092] 第13步,將當(dāng)前請(qǐng)求分組加入到相容性條件表。
[0093] 第14步,在目標(biāo)請(qǐng)求分組表中刪除當(dāng)前請(qǐng)求分組。
[0094] 第15步,判斷目標(biāo)請(qǐng)求分組表中請(qǐng)求分組的個(gè)數(shù)是否大于0,若是,則執(zhí)行本步驟 第3步,否則,執(zhí)行本步驟第16步。
[0095] 第16步,得到相容性條件表。
[0096] 將相容性條件表存儲(chǔ)與擴(kuò)展存儲(chǔ)模塊中,控制中屯、將數(shù)據(jù)讀取命令發(fā)送給數(shù)據(jù)處 理模塊。
[0097] 步驟5.建立所有司機(jī)可搭乘組合距離表。
[0098] 第1步,數(shù)據(jù)處理模塊設(shè)置一個(gè)空的所有司機(jī)可搭乘組合距離表。
[0099] 第2步,數(shù)據(jù)處理模塊從擴(kuò)展存儲(chǔ)模塊中讀取需要搭載用戶(hù)的司機(jī)請(qǐng)求數(shù)據(jù)表,相 容性條件表,路徑序列數(shù)據(jù)。
[0100] 第3步,將請(qǐng)求數(shù)目迭代次數(shù)設(shè)置為1。
[0101] 第4步,取出需要搭載用戶(hù)的司機(jī)請(qǐng)求數(shù)據(jù)表中任意一個(gè)司機(jī)的請(qǐng)求數(shù)據(jù),作為當(dāng) 前需要搭載用戶(hù)的司機(jī)的請(qǐng)求數(shù)據(jù)。
[0102] 第5步,采用距離剪枝算法,獲得可搭乘請(qǐng)求組合距離表,將可搭乘請(qǐng)求組合距離 表加入到所有司機(jī)可搭乘組合距離表中。
[0103] 下面對(duì)本步驟中的距離剪枝算法的具體步驟做進(jìn)一步的描述。
[0104] 第1步,在數(shù)據(jù)處理模塊中設(shè)置一個(gè)可搭乘請(qǐng)求組合距離表。
[0105] 第2步,判斷路徑序列表中路徑的個(gè)數(shù)是否大于0,若是,則執(zhí)行本步驟第3步,否 貝IJ,執(zhí)行本步驟第9步。
[0106] 第3步,從路徑序列表中選擇任意一個(gè)路徑序列,作為當(dāng)前路徑序列。
[0107] 第4步,從相容性條件表中取出當(dāng)前路徑序列對(duì)應(yīng)的請(qǐng)求分組,作為當(dāng)前請(qǐng)求分 組。
[0108] 第5步,判斷當(dāng)前路徑序列是否滿(mǎn)足下述公式,若是,則執(zhí)行本步驟第6步,否則,執(zhí) 行本步驟第2步。
[0109] dis(s,d)《〇
[0110] 其中,dis表示歐式距離,S表示當(dāng)前路徑序列中的第一個(gè)結(jié)點(diǎn),d表示當(dāng)前需要搭 載用戶(hù)的司機(jī)的位置,O表示距離闊值,該參數(shù)由搭乘車(chē)輛需求的用戶(hù)在范圍(〇,1)內(nèi)設(shè)置。
[0111] 第6步,按照下式,計(jì)算請(qǐng)求分組內(nèi)所有搭乘車(chē)輛用戶(hù)路徑序列的總長(zhǎng)度:
[0112]
[0113] 其中,D表示請(qǐng)求分組內(nèi)所有搭乘車(chē)輛用戶(hù)路徑序列的總長(zhǎng)度,E表示求和操作,m 表示請(qǐng)求分組中路徑序列的總數(shù),Xj表示請(qǐng)求分組中第j個(gè)路徑序列的長(zhǎng)度,a表示浮動(dòng)參 數(shù),該參數(shù)由控制中屯、在范圍(〇,1)內(nèi)設(shè)置,Y表示請(qǐng)求分組中所有路徑序列中公共部分路 徑序列的長(zhǎng)度。
[0114] 第7步,將當(dāng)前請(qǐng)求分組和請(qǐng)求分組內(nèi)所有搭乘車(chē)輛用戶(hù)路徑序列的總長(zhǎng)度加入 到可搭乘請(qǐng)求組合距離表中。
[0115] 第8步,判斷路徑序列表中路徑的個(gè)數(shù)是否大于0,若是,則執(zhí)行本步驟第3步,否 貝IJ,執(zhí)行本步驟第9步。
[0116] 第9步,得到可搭乘請(qǐng)求組合距離表。
[0117] 第6步,斷請(qǐng)求數(shù)目迭代次數(shù)是否大于搭載用戶(hù)的司機(jī)請(qǐng)求數(shù)據(jù)表中請(qǐng)求的數(shù)目, 若是,則將迭代次數(shù)加1后執(zhí)行本步驟第4步,否則,執(zhí)行本步驟第7步。
[0118] 第7步,數(shù)據(jù)處理模塊將所有司機(jī)可搭乘組合距離表存儲(chǔ)于擴(kuò)展存儲(chǔ)模塊,控制中 屯、模塊發(fā)送讀取數(shù)據(jù)命令給數(shù)據(jù)處理模塊。
[0119] 步驟6.發(fā)送分配結(jié)果。
[0120] 數(shù)據(jù)處理模塊讀取擴(kuò)展存儲(chǔ)模塊中所有司機(jī)可搭乘組合距離表。
[0121] 取出所有司機(jī)可搭乘組合距離表中長(zhǎng)度最大的一個(gè)請(qǐng)求組合,作為當(dāng)前發(fā)送請(qǐng)求 分組。
[0122] 控制中屯、將當(dāng)前發(fā)送請(qǐng)求分組分別發(fā)送給搭乘車(chē)輛需求用戶(hù)的終端和需要搭載 用戶(hù)的司機(jī)的終端。
[0123] 下面結(jié)合仿真實(shí)驗(yàn)對(duì)本發(fā)明的效果做進(jìn)一步的描述。
[0124] 本發(fā)明的仿真實(shí)驗(yàn)的條件是,使用相同的道路網(wǎng)絡(luò)數(shù)據(jù)集,需要搭乘的用戶(hù)請(qǐng)求 數(shù)據(jù),搭載用戶(hù)的司機(jī)請(qǐng)求數(shù)據(jù),計(jì)算得到分配請(qǐng)求后搭載用戶(hù)的司機(jī)的車(chē)輛行駛的距離 與分配前車(chē)輛需要行駛距離的比值。本發(fā)明使用的PC機(jī)處理器為AMD Phenom N660 Dual- Core Processor,3GB內(nèi)存,Windows?操作系統(tǒng),Java語(yǔ)言編程。
[0125] 實(shí)驗(yàn)結(jié)果如下表所示:
LUU/」 買(mǎi)粒結(jié)呆化明,本巧明迪巧分肥請(qǐng)求,Rj 將牛輛的化現(xiàn)跑罔降化正石,巧局 了車(chē)輛的運(yùn)行效率??蒞看出,本發(fā)明具有實(shí)用性的特點(diǎn)。
【主權(quán)項(xiàng)】
1. 一種車(chē)輛共享利潤(rùn)最大化的用戶(hù)請(qǐng)求分配系統(tǒng),包括請(qǐng)求處理模塊,數(shù)據(jù)處理模塊, 控制中心模塊,擴(kuò)展存儲(chǔ)模塊以及城市道路網(wǎng)絡(luò)數(shù)據(jù)模塊;其中: 所述的請(qǐng)求處理模塊,用于接收搭乘車(chē)輛需求的用戶(hù)和需要搭載用戶(hù)的司機(jī)從終端設(shè) 備發(fā)送的請(qǐng)求數(shù)據(jù),得到搭乘車(chē)輛需求的用戶(hù)請(qǐng)求數(shù)據(jù)表與需要搭載用戶(hù)的司機(jī)請(qǐng)求數(shù)據(jù) 表; 所述的數(shù)據(jù)處理模塊,用于從請(qǐng)求處理模塊中讀取搭乘車(chē)輛需求的用戶(hù)請(qǐng)求數(shù)據(jù)表, 讀取城市道路網(wǎng)絡(luò)數(shù)據(jù)模塊中的當(dāng)前城市道路網(wǎng)絡(luò)數(shù)據(jù),利用迪杰斯科拉Dijkstra算法, 計(jì)算出每個(gè)有搭乘車(chē)輛需求的用戶(hù)從起點(diǎn)到終點(diǎn)路徑序列,將計(jì)算結(jié)果存儲(chǔ)于擴(kuò)展存儲(chǔ)模 塊;所述的數(shù)據(jù)處理模塊從擴(kuò)展存儲(chǔ)模塊中讀取搭乘車(chē)輛需求的用戶(hù)請(qǐng)求表,計(jì)算得到請(qǐng) 求分組表,將請(qǐng)求分組表存儲(chǔ)于擴(kuò)展存儲(chǔ)模塊;所述的數(shù)據(jù)處理模塊從擴(kuò)展存儲(chǔ)模塊中讀 取目標(biāo)請(qǐng)求分組表、路徑序列數(shù)據(jù),利用相容性剪枝算法,得到相容性條件表,將相容性條 件表存儲(chǔ)于擴(kuò)展存儲(chǔ)模塊;所述的數(shù)據(jù)處理模塊從擴(kuò)展存儲(chǔ)模塊中讀取需要搭載用戶(hù)的司 機(jī)請(qǐng)求數(shù)據(jù)表、相容性條件表、路徑序列數(shù)據(jù),計(jì)算得到所有司機(jī)可搭乘組合距離表,將所 有司機(jī)可搭乘組合距離表存儲(chǔ)于擴(kuò)展存儲(chǔ)模塊; 所述的控制中心模塊,用于將搭乘車(chē)輛需求的用戶(hù)請(qǐng)求數(shù)據(jù)表和需要搭載用戶(hù)的司機(jī) 請(qǐng)求數(shù)據(jù)表發(fā)送給數(shù)據(jù)處理模塊;所述的控制中心模塊將數(shù)據(jù)讀取命令發(fā)送給數(shù)據(jù)處理模 塊,將所有司機(jī)可搭乘組合距離表中長(zhǎng)度最大的一個(gè)請(qǐng)求組合分別發(fā)送給搭乘車(chē)輛需求用 戶(hù)、需要搭載用戶(hù)的司機(jī)的終端; 所述的擴(kuò)展存儲(chǔ)模塊,用于存儲(chǔ)數(shù)據(jù)處理模塊發(fā)送的路徑序列數(shù)據(jù)、目標(biāo)請(qǐng)求分組表、 所有司機(jī)可搭乘組合距離表,供控制中心模塊讀??; 所述的城市道路網(wǎng)絡(luò)數(shù)據(jù)模塊,用于存儲(chǔ)城市道路網(wǎng)絡(luò)數(shù)據(jù),供數(shù)據(jù)處理模塊讀取。2. -種車(chē)輛共享利潤(rùn)最大化的用戶(hù)請(qǐng)求分配方法,其具體步驟如下: (1) 接收數(shù)據(jù): (la) 請(qǐng)求處理模塊接收搭乘車(chē)輛需求的用戶(hù)和需要搭載用戶(hù)的司機(jī)從終端設(shè)備發(fā)送 的請(qǐng)求數(shù)據(jù),得到搭乘車(chē)輛需求的用戶(hù)請(qǐng)求數(shù)據(jù)表與需要搭載用戶(hù)的司機(jī)請(qǐng)求數(shù)據(jù)表; (lb) 控制中心將搭乘車(chē)輛需求的用戶(hù)請(qǐng)求數(shù)據(jù)表和需要搭載用戶(hù)的司機(jī)請(qǐng)求數(shù)據(jù)表 發(fā)送給數(shù)據(jù)處理模塊; (2) 計(jì)算有搭乘車(chē)輛需求的用戶(hù)的路徑序列: (2a)數(shù)據(jù)處理模塊讀取擴(kuò)展模塊中搭乘車(chē)輛需求的用戶(hù)請(qǐng)求數(shù)據(jù)表,讀取城市道路網(wǎng) 絡(luò)數(shù)據(jù)模塊中當(dāng)前城市道路網(wǎng)絡(luò)數(shù)據(jù),利用迪杰斯科拉Dijkstra算法,得到每個(gè)有搭乘車(chē) 輛需求的用戶(hù)從起點(diǎn)到終點(diǎn)路徑序列,將計(jì)算結(jié)果存儲(chǔ)于擴(kuò)展存儲(chǔ)模塊; (2b)控制中心將讀取數(shù)據(jù)命令發(fā)送給數(shù)據(jù)處理模塊; (3) 獲取請(qǐng)求分組表: (3a)在數(shù)據(jù)處理模塊中設(shè)置一個(gè)空的請(qǐng)求分組表; (3b)將空集合加入到請(qǐng)求分組表,得到當(dāng)前請(qǐng)求分組表; (3c)數(shù)據(jù)處理模塊從擴(kuò)展存儲(chǔ)模塊中讀取搭乘車(chē)輛需求的用戶(hù)請(qǐng)求表; (3d)將請(qǐng)求迭代次數(shù)設(shè)置為1; (3e)設(shè)置一個(gè)目標(biāo)請(qǐng)求分組表,將當(dāng)前請(qǐng)求分組表復(fù)制到目標(biāo)請(qǐng)求分組表中; (3f)將搭乘車(chē)輛需求的用戶(hù)請(qǐng)求表中第一個(gè)搭乘車(chē)輛需求的用戶(hù)加入到目標(biāo)表中,判 斷當(dāng)前請(qǐng)求組合的總?cè)藬?shù)是否超過(guò)車(chē)輛的容量,若是,則執(zhí)行步驟(3g),否則,執(zhí)行步驟 (3h); (3g)將當(dāng)前請(qǐng)求組合在請(qǐng)求分組表中刪除; (3h)判斷請(qǐng)求迭代次數(shù)是否大于搭乘車(chē)輛需求的用戶(hù)請(qǐng)求表中請(qǐng)求的數(shù)目,若是,則 將迭代次數(shù)加1,執(zhí)行步驟(3e),否則,執(zhí)行步驟(3i); (3i)將目標(biāo)請(qǐng)求分組表存儲(chǔ)于擴(kuò)展存儲(chǔ)模塊; (3 j)控制中心將數(shù)據(jù)讀取命令發(fā)送給數(shù)據(jù)處理模塊; (4) 建立相容性條件表: (4a)數(shù)據(jù)處理模塊讀取目標(biāo)請(qǐng)求分組表、路徑序列數(shù)據(jù),利用相容性剪枝算法,得到相 容性條件表; (4b)將相容性條件表存儲(chǔ)與擴(kuò)展存儲(chǔ)模塊中,控制中心將數(shù)據(jù)讀取命令發(fā)送給數(shù)據(jù)處 理模塊; (5) 建立所有司機(jī)可搭乘組合距離表: (5a)數(shù)據(jù)處理模塊設(shè)置一個(gè)空的所有司機(jī)可搭乘組合距離表; (5b)數(shù)據(jù)處理模塊從擴(kuò)展存儲(chǔ)模塊中讀取需要搭載用戶(hù)的司機(jī)請(qǐng)求數(shù)據(jù)表,相容性條 件表,路徑序列數(shù)據(jù); (5c)將請(qǐng)求數(shù)目迭代次數(shù)設(shè)置為1; (5d)取出需要搭載用戶(hù)的司機(jī)請(qǐng)求數(shù)據(jù)表中任意一個(gè)司機(jī)的請(qǐng)求數(shù)據(jù),作為當(dāng)前需要 搭載用戶(hù)的司機(jī)的請(qǐng)求數(shù)據(jù); (5e)采用距離剪枝算法,獲得可搭乘請(qǐng)求組合距離表,將可搭乘請(qǐng)求組合距離表加入 到所有司機(jī)可搭乘組合距離表中; (5f)判斷請(qǐng)求數(shù)目迭代次數(shù)是否大于搭載用戶(hù)的司機(jī)請(qǐng)求數(shù)據(jù)表中請(qǐng)求的數(shù)目,若 是,則將迭代次數(shù)加1后執(zhí)行步驟(5d),否則,執(zhí)行步驟(5g); (5g)數(shù)據(jù)處理模塊將所有司機(jī)可搭乘組合距離表存儲(chǔ)于擴(kuò)展存儲(chǔ)模塊,控制中心模塊 發(fā)送讀取數(shù)據(jù)命令給數(shù)據(jù)處理模塊; (6) 發(fā)送分配結(jié)果: (6a)數(shù)據(jù)處理模塊讀取擴(kuò)展存儲(chǔ)模塊中所有司機(jī)可搭乘組合距離表; (6b)取出所有司機(jī)可搭乘組合距離表中長(zhǎng)度最大的一個(gè)請(qǐng)求組合,作為當(dāng)前發(fā)送請(qǐng)求 分組; (6c)控制中心將當(dāng)前發(fā)送請(qǐng)求分組分別發(fā)送給搭乘車(chē)輛需求用戶(hù)的終端和需要搭載 用戶(hù)的司機(jī)的終端。3.根據(jù)權(quán)利要求2所述的車(chē)輛共享利潤(rùn)最大化的用戶(hù)請(qǐng)求分配方法,其特征在于,步驟 (4a)中所述的相容性剪枝算法的具體步驟如下: 第1步,設(shè)置一個(gè)空的相容性條件表; 第2步,判斷目標(biāo)請(qǐng)求分組表中請(qǐng)求分組的個(gè)數(shù)是否大于0,若是,則執(zhí)行第3步,否則, 執(zhí)行第16步; 第3步,取出目標(biāo)請(qǐng)求分組表中任意一個(gè)請(qǐng)求分組,作為當(dāng)前請(qǐng)求分組; 第4步,設(shè)置一個(gè)空的目標(biāo)請(qǐng)求分組,將當(dāng)前請(qǐng)求分組復(fù)制到目標(biāo)請(qǐng)求分組中; 第5步,設(shè)置目標(biāo)分組迭代次數(shù)為1; 第6步,從路徑序列中取出目標(biāo)請(qǐng)求分組中任意兩個(gè)請(qǐng)求的路徑序列,分別作為路徑序 列1、路徑序列2; 第7步,判斷路徑序列1中是否包含路徑序列2中的第一個(gè)結(jié)點(diǎn)并且路徑序列2中是否包 含路徑序列1中最后一個(gè)結(jié)點(diǎn),若是,則執(zhí)行第11步,否則,執(zhí)行第8步; 第8步,判斷路徑序列2中是否包含路徑序列1中的第一個(gè)結(jié)點(diǎn)并且路徑序列2中是否包 含路徑序列1中的最后一個(gè)結(jié)點(diǎn),若是,則執(zhí)行第11步,否則,執(zhí)行第9步; 第9步,判斷路徑序列1中是否包含路徑序列2中的第一個(gè)結(jié)點(diǎn)并且路徑序列1中是否包 含路徑序列2中的最后一個(gè)結(jié)點(diǎn),若是,則執(zhí)行第11步,否則,執(zhí)行第10步; 第10步,判斷路徑序列2中是否包含路徑序列1中的第一個(gè)結(jié)點(diǎn)并且路徑序列1中包含 路徑序列2中的最后一個(gè)結(jié)點(diǎn),若是,則執(zhí)行第11步,否則,執(zhí)行第14步; 第11步,合并路徑序列1和路徑序列2相同的路徑結(jié)點(diǎn),組成一個(gè)目標(biāo)路徑序列,將目標(biāo) 路徑序列加入到目標(biāo)請(qǐng)求分組中; 第12步,判斷目標(biāo)分組迭代次數(shù)是否大于目標(biāo)分組組合的個(gè)數(shù),若是,則目標(biāo)分組迭代 次數(shù)加1,執(zhí)行第6步,否則,執(zhí)行第13步; 第13步,將當(dāng)前請(qǐng)求分組加入到相容性條件表; 第14步,在目標(biāo)請(qǐng)求分組表中刪除當(dāng)前請(qǐng)求分組; 第15步,判斷目標(biāo)請(qǐng)求分組表中請(qǐng)求分組的個(gè)數(shù)是否大于0,若是,則執(zhí)行第3步,否則, 執(zhí)行第16步; 第16步,得到相容性條件表。4.根據(jù)權(quán)利要求2所述的車(chē)輛共享利潤(rùn)最大化的用戶(hù)請(qǐng)求分配方法,其特征在于,步驟 (5e)中所述的距離剪枝算法的具體步驟如下: 第1步,在數(shù)據(jù)處理模塊中設(shè)置一個(gè)空的可搭乘請(qǐng)求組合距離表; 第2步,判斷路徑序列表中路徑的個(gè)數(shù)是否大于0,若是,則執(zhí)行第3步,否則,執(zhí)行第9 步; 第3步,從路徑序列表中選擇任意一個(gè)路徑序列,作為當(dāng)前路徑序列; 第4步,從相容性條件表中取出當(dāng)前路徑序列對(duì)應(yīng)的請(qǐng)求分組,作為當(dāng)前請(qǐng)求分組; 第5步,判斷當(dāng)前路徑序列是否滿(mǎn)足下述公式,若是,則執(zhí)行第6步,否則,執(zhí)行第2步: dis(s,dX〇 其中,dis表示歐式距離,s表示當(dāng)前路徑序列中的第一個(gè)結(jié)點(diǎn),d表示當(dāng)前需要搭載用 戶(hù)的司機(jī)的位置,σ表示距離閾值,該參數(shù)由搭乘車(chē)輛需求的用戶(hù)在范圍(0,1)內(nèi)設(shè)置; 第6步,按照下式,計(jì)算請(qǐng)求分組內(nèi)所有搭乘車(chē)輛用戶(hù)路徑序列的總長(zhǎng)度:其中,D表示請(qǐng)求分組內(nèi)所有搭乘車(chē)輛用戶(hù)路徑序列的總長(zhǎng)度,Σ表示求和操作,m表示 請(qǐng)求分組中路徑序列的總數(shù),?表示請(qǐng)求分組中第j個(gè)路徑序列的長(zhǎng)度,α表示浮動(dòng)參數(shù),該 參數(shù)由控制中心在范圍(〇,1)內(nèi)設(shè)置,Υ表示請(qǐng)求分組中所有路徑序列中公共部分路徑序列 的長(zhǎng)度; 第7步,將當(dāng)前請(qǐng)求分組和請(qǐng)求分組內(nèi)所有搭乘車(chē)輛用戶(hù)路徑序列的總長(zhǎng)度加入到可 搭乘請(qǐng)求組合距離表中; 第8步,判斷路徑序列表中路徑的個(gè)數(shù)是否大于0,若是,則執(zhí)行第3步,否則,執(zhí)行第9 步; 第9步,得到可搭乘請(qǐng)求組合距離表。
【文檔編號(hào)】G06Q50/30GK105956686SQ201610247876
【公開(kāi)日】2016年9月21日
【申請(qǐng)日】2016年4月20日
【發(fā)明人】黃健斌, 趙智強(qiáng), 劉懷亮, 高華
【申請(qǐng)人】西安電子科技大學(xué)