欧美在线观看视频网站,亚洲熟妇色自偷自拍另类,啪啪伊人网,中文字幕第13亚洲另类,中文成人久久久久影院免费观看 ,精品人妻人人做人人爽,亚洲a视频

一種基于任務(wù)間優(yōu)先關(guān)系約束的任務(wù)分配方法和系統(tǒng)與流程

文檔序號(hào):12469902閱讀:292來(lái)源:國(guó)知局
一種基于任務(wù)間優(yōu)先關(guān)系約束的任務(wù)分配方法和系統(tǒng)與流程

本發(fā)明涉及網(wǎng)絡(luò)資源分配技術(shù)領(lǐng)域,特別涉及一種眾包背景下的基于任務(wù)間優(yōu)先關(guān)系約束的任務(wù)分配方法和系統(tǒng)。



背景技術(shù):

《連線》(Wired)雜志2006年發(fā)明了一個(gè)專業(yè)術(shù)語(yǔ)——眾包(crowdsourcing),這是一種組織形式,即在互聯(lián)網(wǎng)上把工作分配出去、發(fā)現(xiàn)創(chuàng)意或解決技術(shù)問(wèn)題。由于眾包的高效性,現(xiàn)階段,眾包更多地與眾多的商業(yè)應(yīng)用聯(lián)系在了一起,這樣的現(xiàn)象使得眾包廣泛流行起來(lái)。

在衡量一個(gè)眾包系統(tǒng)的性能時(shí),任務(wù)分配機(jī)制的優(yōu)劣是主要的因素。目前,相關(guān)的研究人員已經(jīng)設(shè)計(jì)了大量高效的任務(wù)分配機(jī)制。針對(duì)任務(wù)參與者的異質(zhì)性以及任務(wù)的異質(zhì)性,已有的研究愈見(jiàn)完善。在考慮任務(wù)的技能需求、任務(wù)參與者具備的技能各不相同的前提下,針對(duì)各種優(yōu)化目標(biāo)進(jìn)行任務(wù)分配的機(jī)制已不在少數(shù),且大都取得了不錯(cuò)的效果。

例如,中國(guó)專利申請(qǐng)?zhí)?01610144236.1的發(fā)明專利申請(qǐng),公開(kāi)了基于云平臺(tái)匿名地點(diǎn)的眾包服務(wù)系統(tǒng)及任務(wù)分配方法,包括云平臺(tái)、配置文件庫(kù)、元數(shù)據(jù)庫(kù)和內(nèi)容分析后臺(tái),其中元數(shù)據(jù)庫(kù)包括專業(yè)領(lǐng)域概念圖、Wiki和Dbpedia關(guān)鍵詞以及FAQ關(guān)鍵詞;內(nèi)容分析后臺(tái)包括加載平衡器、任務(wù)分配服務(wù)器、參與者模塊、領(lǐng)域?qū)<夷K和用戶數(shù)據(jù)存儲(chǔ)服務(wù)器。

然而,在眾包系統(tǒng)的實(shí)際應(yīng)用過(guò)程中,平臺(tái)往往是首先將一個(gè)大的任務(wù)分割成若干的子任務(wù),然后再將子問(wèn)題發(fā)布,分配給不同的任務(wù)參與者完成。而現(xiàn)有的研究均假設(shè)所有的子任務(wù)之間是彼此獨(dú)立無(wú)關(guān)的。顯然,這一假設(shè)并不能完全符合實(shí)際的應(yīng)用需求。實(shí)際系統(tǒng)分割出的子任務(wù)之間往往是相關(guān)的,任務(wù)與任務(wù)之間可能會(huì)存在一定的先后關(guān)系。換句話說(shuō),某些任務(wù)必須在部分任務(wù)完成之后才能開(kāi)始。由于已有的任務(wù)分配機(jī)制并沒(méi)有考慮到這一點(diǎn),此類(lèi)任務(wù)的按序分配無(wú)法實(shí)現(xiàn)。僅針對(duì)異質(zhì)性等約束條件進(jìn)行問(wèn)題研究,遠(yuǎn)遠(yuǎn)不夠滿足現(xiàn)在的需求。



技術(shù)實(shí)現(xiàn)要素:

為解決上述問(wèn)題,本發(fā)明提出了一種眾包背景下的基于任務(wù)間優(yōu)先關(guān)系約束的任務(wù)分配方法和系統(tǒng)。針對(duì)任務(wù)間存在優(yōu)先關(guān)系約束,被交付任務(wù)的任務(wù)參與者對(duì)不同的任務(wù),存在不同意愿的情況,利用貪心法,實(shí)現(xiàn)對(duì)任務(wù)的分配,保證完成全部任務(wù)的整體時(shí)間最短。

具體的,根據(jù)本發(fā)明的一個(gè)方面,本發(fā)明提出了一種基于任務(wù)間優(yōu)先關(guān)系約束的任務(wù)分配方法,所述方法包括以下步驟:

步驟一,對(duì)于任務(wù)集合中的每一個(gè)任務(wù),根據(jù)該任務(wù)的條件任務(wù)集合,確定該任務(wù)的層次;

步驟二、找出上述任務(wù)集合中所有的最終任務(wù),組成最終任務(wù)的集合;

步驟三、確定任務(wù)集合中各個(gè)任務(wù)之間的優(yōu)先分配級(jí)別,組成分配序列;

步驟四、按照上述分配序列中任務(wù)的先后順序,將任務(wù)集合中的任務(wù)分配出去。

根據(jù)本發(fā)明的另一個(gè)方面,本發(fā)明還提出了一種基于任務(wù)間優(yōu)先關(guān)系約束的任務(wù)分配系統(tǒng),所述系統(tǒng)包括以下模塊:

任務(wù)層次確定模塊,對(duì)于任務(wù)集合中的每一個(gè)任務(wù),根據(jù)該任務(wù)的條件任務(wù)集合,確定該任務(wù)的層次;

最終任務(wù)尋找模塊,用于找出上述任務(wù)集合中所有的最終任務(wù),組成最終任務(wù)的集合;

分配級(jí)別確定模塊,用于確定任務(wù)集合中各個(gè)任務(wù)之間的優(yōu)先分配級(jí)別,組成分配序列;

任務(wù)分配模塊,用于按照上述分配序列中任務(wù)的先后順序,將任務(wù)集合中的任務(wù)分配出去。

本發(fā)明的有益效果如下:本發(fā)明可以實(shí)現(xiàn)對(duì)任務(wù)間具有優(yōu)先關(guān)系約束的情況完成有效的任務(wù)分配,保證完成全部任務(wù)的整體時(shí)間最短,保證了任務(wù)的按序分配,提高了整體效率。

上述說(shuō)明僅是本發(fā)明技術(shù)方案的概述,為了能夠更清楚了解本發(fā)明的技術(shù)手段,而可依照說(shuō)明書(shū)的內(nèi)容予以實(shí)施,并且為了讓本發(fā)明的上述和其它目的、特征和優(yōu)點(diǎn)能夠更明顯易懂,以下特舉本發(fā)明的具體實(shí)施方式。

附圖說(shuō)明

通過(guò)閱讀下文優(yōu)選實(shí)施方式的詳細(xì)描述,各種其他的優(yōu)點(diǎn)和益處對(duì)于本領(lǐng)域普通技術(shù)人員將變得清楚明了。附圖僅用于示出優(yōu)選實(shí)施方式的目的,而并不認(rèn)為是對(duì)本發(fā)明的限制。而且在整個(gè)附圖中,用相同的參考符號(hào)表示相同的部件。在附圖中:

圖1是本發(fā)明的一種基于任務(wù)間優(yōu)先關(guān)系約束的任務(wù)分配方法的整體流程圖;

圖2是本發(fā)明中初始的任務(wù)關(guān)系圖;

圖3是本發(fā)明中分層后的任務(wù)關(guān)系圖;

圖4是本發(fā)明尋求關(guān)鍵序列的原理示意圖;

圖5是本發(fā)明中任務(wù)分配的示意圖;

圖6是本發(fā)明的一種基于任務(wù)間優(yōu)先關(guān)系約束的任務(wù)分配方法步驟一的流程圖;

圖7是本發(fā)明的一種基于任務(wù)間優(yōu)先關(guān)系約束的任務(wù)分配方法步驟二的流程圖;

圖8是本發(fā)明的一種基于任務(wù)間優(yōu)先關(guān)系約束的任務(wù)分配方法步驟三的流程圖;

圖9是本發(fā)明的一種基于任務(wù)間優(yōu)先關(guān)系約束的任務(wù)分配方法步驟四的流程圖;

圖10是本發(fā)明的一種基于任務(wù)間優(yōu)先關(guān)系約束的任務(wù)分配系統(tǒng)的結(jié)構(gòu)模塊圖。

具體實(shí)施方式

下面將參照附圖更詳細(xì)地描述本公開(kāi)的示例性實(shí)施例。雖然附圖中顯示了本公開(kāi)的示例性實(shí)施例,然而應(yīng)當(dāng)理解,可以以各種形式實(shí)現(xiàn)本公開(kāi)而不應(yīng)被這里闡述的實(shí)施例所限制。相反,提供這些實(shí)施例是為了能夠更透徹地理解本公開(kāi),并且能夠?qū)⒈竟_(kāi)的范圍完整的傳達(dá)給本領(lǐng)域的技術(shù)人員。

首先,本發(fā)明的具體問(wèn)題模型如下:

假設(shè)所研究的任務(wù)分配系統(tǒng)中,存在任務(wù)集合T={t1,t2,t3,...,tm}和一個(gè)任務(wù)參與者集合W={w1,w2,w3,...,wn}。對(duì)于任務(wù)集合T中的任意一個(gè)任務(wù)tj∈T,存在屬性{Cj,hj}。Cj為任務(wù)tj的條件任務(wù)集合。當(dāng)且僅當(dāng)Cj中的任務(wù)全部被完成交付給平臺(tái)時(shí),任務(wù)tj才能通過(guò)平臺(tái)開(kāi)始被分配。如果Cj是一個(gè)空集,則表示任務(wù)tj不存在條件任務(wù),可隨時(shí)被平臺(tái)分配出并由任務(wù)參與者完成;否則,任務(wù)tj只能等待,直至所有條件任務(wù)全部被完成交付。假定對(duì)于任務(wù)集合T中的一個(gè)任務(wù)tj,任意任務(wù)參與者完成的時(shí)間都是相同的,那么用符號(hào)hj來(lái)表示任意任務(wù)參與者完成交付任務(wù)tj所花的時(shí)間。任務(wù)分配由平臺(tái)進(jìn)行組織,平臺(tái)發(fā)布的單個(gè)任務(wù)僅需一個(gè)任務(wù)參與者完成交付,同時(shí)一個(gè)任務(wù)參與者可以被分配到多個(gè)任務(wù)但必須按順序依次完成。在任務(wù)拍賣(mài)開(kāi)始階段,任務(wù)參與者提交各自想做的任務(wù)集合,由符號(hào)Ti表示。

在所有任務(wù)參與者提交完各自的信息后,平臺(tái)決定如何合理地將任務(wù)集合中的全部任務(wù)分配給任務(wù)參與者集合中的個(gè)人。在分配過(guò)程中,平臺(tái)遵守任務(wù)間存在優(yōu)先關(guān)系的約束和個(gè)人意愿的約束進(jìn)行任務(wù)分配,以整個(gè)完成任務(wù)集合的過(guò)程花費(fèi)的時(shí)間能夠最短為目的,對(duì)分配方案進(jìn)行求解。

具體的,根據(jù)本發(fā)明的一個(gè)方面,如圖1所示,是本發(fā)明的一種基于任務(wù)間優(yōu)先關(guān)系約束的任務(wù)分配方法的整體流程圖;如圖1所示,本發(fā)明的任務(wù)分配方法包括以下步驟:

S1、對(duì)于任務(wù)集合T中的每一個(gè)任務(wù),根據(jù)任務(wù)的條件任務(wù)集合,確定該任務(wù)的層次。

S2、找出任務(wù)集合T中所有的最終任務(wù),組成最終任務(wù)的集合Final。

S3、確定任務(wù)集合T中各個(gè)任務(wù)之間的優(yōu)先分配級(jí)別,組成序列L。

S4、按照分配序列L中任務(wù)的先后順序,將任務(wù)集合中的任務(wù)分配出去。

下面對(duì)每個(gè)步驟進(jìn)行詳細(xì)解釋:

S1、對(duì)于任務(wù)集合T中的每一個(gè)任務(wù),根據(jù)任務(wù)的條件任務(wù)集合,確定該任務(wù)的層次。

以平臺(tái)發(fā)布的一個(gè)任務(wù)集合T={t1,t2,t3,...,t14}為例。任務(wù)間存在先后關(guān)系,關(guān)系如圖2所示,對(duì)于圖中的‘→’符號(hào),存在說(shuō)明,如果ti→tj,則表示任務(wù)tj存在于任務(wù)ti的條件任務(wù)集合Cj中。

假設(shè)在任務(wù)集合T中,條件任務(wù)集合為空的任務(wù)都已經(jīng)被完成了,那么可以將這些任務(wù)從圖上刪除,則新的條件任務(wù)集合為空的任務(wù)會(huì)因此而出現(xiàn),以此往復(fù),可以將圖上的任務(wù)全部刪除。最終,我們可以根據(jù)任務(wù)在第幾個(gè)輪次被刪除來(lái)確定任務(wù)所處的層次。

例如在圖2的情形下,第一輪次由于任務(wù)t1,t2,t3,...,t7不存在‘→’符號(hào)指向其它任務(wù),因此它們?cè)谠撦喆沃写_定了任務(wù)層次。將任務(wù)t1,t2,t3,...,t7從圖上刪除,使得任務(wù)t8,t9,t10,t11在第二輪次被確定了層次,緊接著確定了處在第三層的任務(wù)t12,t13,t14,最終圖上任務(wù)全部清空,S1過(guò)程由此結(jié)束。

根據(jù)最終對(duì)所有任務(wù)所處層次的判定結(jié)果,結(jié)合各個(gè)任務(wù)的條件任務(wù)集合,我們可以得到圖3所示的一個(gè)結(jié)構(gòu)分明的有向無(wú)環(huán)圖。

如圖6所示,所述步驟S1具體包括:

S101、對(duì)任務(wù)集合中的所有任務(wù)的條件任務(wù)集合進(jìn)行拷貝,分別對(duì)應(yīng)存放于C′j中;尋找任務(wù)集合T中,處在第i層次的任務(wù),i初始化為i=1。

為不破壞各任務(wù)的條件任務(wù)集合中的內(nèi)容,因此將各條件任務(wù)進(jìn)行拷貝。通過(guò)將拷貝任務(wù)集合中已經(jīng)確定了層次的任務(wù)刪除的方式,來(lái)確定新的可被確定層次的任務(wù)。

S102、j=1。

遍歷從任務(wù)集合T中的第一個(gè)任務(wù)開(kāi)始。

S103、遍歷任務(wù)集合T,當(dāng)前目標(biāo)為任務(wù)tj

確定整個(gè)遍歷過(guò)程在當(dāng)前階段下的目標(biāo)。

S104、判斷任務(wù)tj對(duì)應(yīng)的拷貝任務(wù)集合C′j是否為空集同時(shí)任務(wù)tj是否未確定分層,如果是空集,則執(zhí)行步驟S105,否則執(zhí)行步驟S107。

當(dāng)前階段下某個(gè)任務(wù)的條件任務(wù)集合中仍然存在未被完成的任務(wù),則當(dāng)前輪次下該任務(wù)是不可能被確定層次的,任務(wù)需等待在下一個(gè)輪次中判斷是否滿足條件。

S105、將任務(wù)tj標(biāo)記為第i層次的任務(wù)。

對(duì)找到的符合條件的任務(wù)進(jìn)行層次標(biāo)記。

S106、在任務(wù)集合T中,找出任務(wù)集合Cj′中存在任務(wù)tj的所有任務(wù),從任務(wù)的拷貝任務(wù)集合中刪除任務(wù)tj。

將任務(wù)tj從所有的拷貝任務(wù)集合中刪除的過(guò)程,可看作是將圖中的任務(wù)點(diǎn)tj刪除,同時(shí)把所有指向任務(wù)點(diǎn)tj的‘→’符號(hào)刪除的過(guò)程。

S107、判斷任務(wù)tj是否為任務(wù)集合T中的最后一個(gè)任務(wù),如果是,則執(zhí)行步驟S109,否則執(zhí)行步驟108。

只有遍歷到任務(wù)集合T中的最后一個(gè)任務(wù),我們才能確定當(dāng)前輪次下已經(jīng)把應(yīng)當(dāng)被標(biāo)記的任務(wù)都標(biāo)記上了,避免發(fā)生遺漏。

S108、j++,執(zhí)行步驟S103。

確定整個(gè)遍歷過(guò)程在下一個(gè)階段的目標(biāo),即在當(dāng)前目標(biāo)任務(wù)后面的任務(wù)中,排在第一個(gè)的任務(wù)。

S109、判斷任務(wù)集合T中的任務(wù)是否都已確定分層,如果是,則結(jié)束步驟S1,否則執(zhí)行步驟S110。

步驟S1的結(jié)束條件是任務(wù)集合T中的所有任務(wù)都已確定了層次。

S110、i++,執(zhí)行步驟S102。

確定處在第(i+1)層次的任務(wù)。

S2、找出任務(wù)集合T中所有的最終任務(wù),組成最終任務(wù)的集合Final。

最終任務(wù)tj滿足條件:該任務(wù)不存在于任務(wù)集合T中任何一個(gè)任務(wù)的條件任務(wù)集合中,即對(duì)于任意的任務(wù)tk∈T,有。

針對(duì)此特性,只需將任務(wù)tj與任務(wù)集合T中所有任務(wù)的條件任務(wù)集合進(jìn)行比較,如果任務(wù)tj不存在于任何一個(gè)任務(wù)的條件任務(wù)集合,則任務(wù)tj必定屬于最終任務(wù)的集合Final。

以圖3為例,由于t1∈C9,t2∈C8,t4∈C8,t5∈C10……,最終可以得出Final={t3,t11,t12,t12,t14}。

如圖7所示,所述步驟S2具體包括:

S201、初始化最終任務(wù)的集合Final,F(xiàn)inal=T。

為了找到最終任務(wù)集合Final,我們可以假設(shè)任務(wù)集合T中所有任務(wù)都為最終任務(wù),然后檢查集合Final中的任務(wù)是否滿足成為最終任務(wù)的條件,滿足就保留,不滿足則刪除。

S202、j=1。

依次判斷任務(wù)是否為最終任務(wù),遍歷從最終任務(wù)的集合Final中的第一個(gè)任務(wù)開(kāi)始。

S203、遍歷最終任務(wù)的集合Final,當(dāng)前目標(biāo)為任務(wù)tj。

確定整個(gè)遍歷過(guò)程在當(dāng)前階段下的目標(biāo)。

S204、k=1。

從任務(wù)集合T中的第一個(gè)任務(wù)開(kāi)始,按順序依次與當(dāng)前的判斷目標(biāo)任務(wù)進(jìn)行比較。

S205、遍歷任務(wù)集合T,當(dāng)前與任務(wù)tj進(jìn)行比較的目標(biāo)為任務(wù)tk。

在判斷一個(gè)任務(wù)是否為最終任務(wù)的過(guò)程中,確定當(dāng)前階段下與之進(jìn)行比較的任務(wù)。

S206、判斷任務(wù)tk的條件任務(wù)集合Ck是否包含任務(wù)tj,如果包含,則執(zhí)行步驟S207,否則執(zhí)行步驟S208。

任務(wù)tk是任務(wù)集合T中的某個(gè)任務(wù),如果任務(wù)tj存在于任務(wù)tk的條件任務(wù)集合Ck,那么任務(wù)tj已經(jīng)不符合成為最終任務(wù)了。

S207、將任務(wù)tj從關(guān)鍵任務(wù)的集合Final中刪除,執(zhí)行步驟S210。

對(duì)于不滿足最終任務(wù)條件的任務(wù)tj,將任務(wù)從集合Final中刪除任務(wù)tj。由于在是任務(wù)tk處查到了任務(wù)tj不滿足條件的,盡管任務(wù)tk之后可能還存在一些任務(wù),針對(duì)任務(wù)tj檢查而采取遍歷步驟也不需要進(jìn)行下去了。

S208、判斷任務(wù)tk是否為任務(wù)集合T的最后一個(gè)任務(wù),如果是,則執(zhí)行步驟S210,否則執(zhí)行步驟S209。

如果任務(wù)tj不存在于任務(wù)tk的條件任務(wù)集合Ck,則只有遍歷下去,直到檢查任務(wù)集合T的最后一個(gè)任務(wù)為止,我們才能真正的確認(rèn)任務(wù)tj是最終任務(wù)。

S209、k++,執(zhí)行步驟S205。

在判斷一個(gè)任務(wù)是否為最終任務(wù)的過(guò)程中,確定下一個(gè)階段與之進(jìn)行比較的任務(wù)。

S210、判斷任務(wù)tj是否為最終任務(wù)集合Final的最后一個(gè)任務(wù),如果是,則步驟S2結(jié)束,否則執(zhí)行步驟S211。

每一個(gè)在集合Final中的任務(wù)必須接受檢測(cè)才能確定該任務(wù)是否真的應(yīng)該存在于集合Final。

S211、j++,執(zhí)行步驟S203。

判斷下一個(gè)任務(wù)是否為最終任務(wù)。

S3、確定任務(wù)集合T中各個(gè)任務(wù)之間的優(yōu)先分配級(jí)別,組成序列L。

我們將原問(wèn)題模型簡(jiǎn)化。任務(wù)間依舊存在先后順序;對(duì)于一個(gè)任務(wù),任意任務(wù)參與者完成的時(shí)間固定;任務(wù)參與者能夠接收完成被分配的任意任務(wù)。

假如參與完成任務(wù)的任務(wù)參與者足夠多,使可分配的任務(wù)都能夠立即地被任務(wù)參與者接收完成,則在當(dāng)前的任務(wù)集合T中必然存在著一條關(guān)鍵任務(wù)序列(在圖上可視為一條路徑),序列從某一最終任務(wù)出發(fā),指向處在低層次的某個(gè)任務(wù),序列中所有任務(wù)的完成時(shí)間之和必定大于圖中的任何其他符合相同特征的序列。關(guān)鍵序列中所有任務(wù)的完成時(shí)間之和是關(guān)鍵序列的關(guān)鍵值。處于關(guān)鍵任務(wù)序列中是關(guān)鍵序列的關(guān)鍵任務(wù)。

如果此時(shí)平臺(tái)發(fā)布了一個(gè)任務(wù)集合T={t1,t2,t3,...,t10}。根據(jù)任務(wù)間存在先后關(guān)系,各個(gè)任務(wù)的層次都已確定,如圖4所示。按照上述假設(shè),我們可以得到那條關(guān)鍵任務(wù)序列{t10,t9,t7,t4},關(guān)鍵值為(h10+h9+h7+h4),顯然,關(guān)鍵值(h10+h9+h7+h4)是任務(wù)參與者足夠多這一假設(shè)成立的前提下,完成任務(wù)集合T中所有任務(wù)所花費(fèi)的時(shí)間。

而如果參與完成任務(wù)的任務(wù)參與者的數(shù)目并不是足夠多的,(h10+h9+h7+h4)可視為在此情形下最理想的完成時(shí)間。我們選擇以每次將關(guān)鍵任務(wù)優(yōu)先分配的方式對(duì)任務(wù)的完成順序進(jìn)行安排。

依舊以圖4為例,如果我們將關(guān)鍵任務(wù)優(yōu)先分配,則對(duì)于任務(wù)集合T中所有剩下的任務(wù)來(lái)說(shuō),在任務(wù)參與者足夠多的情形下,完成任務(wù)的總時(shí)間是會(huì)有所減少;而如果選擇完成其它可分配的任務(wù),同樣情形下,完成剩下的任務(wù)的總時(shí)間不會(huì)減少,顯然選擇完成其它任務(wù)優(yōu)先完成不存在任何好處。因此在任務(wù)參與者的數(shù)目并不是足夠多的情形下,我們有理由相信,相對(duì)于其它的優(yōu)先任務(wù)選擇方式,選擇將關(guān)鍵任務(wù)優(yōu)先分配,這樣的方式會(huì)更好一些。

圖4的例子中,最終任務(wù)僅僅存在一個(gè)最終任務(wù),對(duì)于集合Final存在多個(gè)最終任務(wù)的情況,我們將各個(gè)最終任務(wù)的關(guān)鍵值和關(guān)鍵任務(wù)求出,將集合Final中最大關(guān)鍵值對(duì)應(yīng)的關(guān)鍵任務(wù)優(yōu)先分配。將求出的關(guān)鍵路徑上最低層的關(guān)鍵任務(wù)從任務(wù)集合T后,更新各個(gè)最終任務(wù)的關(guān)鍵值和關(guān)鍵任務(wù),然后再次進(jìn)行優(yōu)先分配,以此往復(fù),完成對(duì)整個(gè)任務(wù)集合T中任務(wù)的優(yōu)先級(jí)排序,最終形成整個(gè)任務(wù)集合中所有任務(wù)的優(yōu)先分配序列L。

如圖8所示,所述步驟S3具體包括:

S301、用L表示任務(wù)按優(yōu)先級(jí)別組成的序列,

S302、用i表示正在遍歷任務(wù)集合T中第i層次的任務(wù),i=1。

事實(shí)上,無(wú)論是從低層次任務(wù)開(kāi)始往高層次任務(wù)尋找關(guān)鍵路徑,還是從高層次往低層次,最終的結(jié)果是一樣的,原因兩種過(guò)程的目標(biāo)都是找到關(guān)鍵值最大的路徑。盡管之前對(duì)關(guān)鍵路徑的解釋是從高層次往低層次的過(guò)程,在步驟S3中卻是從低層次任務(wù)開(kāi)始往高層次任務(wù)尋找關(guān)鍵路徑的。

S303、j=1。

遍歷從任務(wù)集合T中的第一個(gè)任務(wù)開(kāi)始。

S304、遍歷任務(wù)集合T,當(dāng)前目標(biāo)為任務(wù)tj

確定整個(gè)遍歷過(guò)程在當(dāng)前階段下的目標(biāo)。

S305、判斷任務(wù)tj是否為第i層次的任務(wù),如果是,則執(zhí)行步驟S306,否則執(zhí)行步驟S307。

找到第i層次的任務(wù),在接下來(lái)的步驟中對(duì)其進(jìn)行處理。

S306、得到任務(wù)tj的關(guān)鍵路徑上最低層的關(guān)鍵任務(wù)和關(guān)鍵值wj

如果任務(wù)tj為第一層次的任務(wù),則任務(wù)tj的關(guān)鍵值為wj=hj,任務(wù)tj的關(guān)鍵任務(wù)為任務(wù)tj本身。如果i≥1,任務(wù)tj為非第一層次的任務(wù),則必須找出任務(wù)tj的條件任務(wù)集合Cj中,wk最大的任務(wù)tk,任務(wù)tj的關(guān)鍵值為wj=hj+wk,任務(wù)tj的關(guān)鍵路徑上最低層的關(guān)鍵任務(wù)為任務(wù)tk的關(guān)鍵路徑上最低層的關(guān)鍵任務(wù)。

S307、判斷任務(wù)tj是否為任務(wù)集合T的最后一個(gè)任務(wù),如果是,則執(zhí)行步驟S309,否則執(zhí)行步驟S308。

找出任務(wù)集合T中所有第i層次的任務(wù)。

S308、j++,執(zhí)行步驟S304。

確定整個(gè)遍歷過(guò)程在下一個(gè)階段的目標(biāo),即在當(dāng)前目標(biāo)任務(wù)后面的任務(wù)中,排在第一個(gè)的任務(wù)。

S309、判斷最終任務(wù)集合Final中各個(gè)任務(wù)的關(guān)鍵值和關(guān)鍵路徑上最低層的關(guān)鍵任務(wù)是否都已經(jīng)確定,如果是則執(zhí)行步驟311,否則執(zhí)行步驟S310。

確定最終任務(wù)集合Final中所有任務(wù)的關(guān)鍵值和關(guān)鍵路徑。

S310、i++,執(zhí)行步驟303。

開(kāi)始對(duì)任務(wù)集合T中第(i+1)層次的任務(wù)進(jìn)行處理。

S311、找出最終任務(wù)集合Final中,wj最大的最終任務(wù)tj。

當(dāng)前階段下最應(yīng)當(dāng)被優(yōu)先分配出的任務(wù)必然存在于關(guān)鍵值最大的關(guān)鍵路徑中。

S312、將任務(wù)tj的關(guān)鍵任務(wù)tk從任務(wù)集合T中刪除,同時(shí)將任務(wù)tk加入到序列L末尾。

確定并找到前階段下最應(yīng)當(dāng)被優(yōu)先分配出的任務(wù)。

S313、判斷任務(wù)集合T是否為空集,如果是,則步驟S3結(jié)束,否則執(zhí)行步驟314。

當(dāng)所有任務(wù)都已確定了各自的分配級(jí)別,步驟S3結(jié)束。

S314、將任務(wù)tk從最終任務(wù)集合Final或者任務(wù)集合T中所有任務(wù)的條件任務(wù)集合中刪除,執(zhí)行步驟S302。

任務(wù)tk可能存在于最終任務(wù)集合Final中,也可能存在于多個(gè)任務(wù)的條件任務(wù)集合中,但兩者是互斥的,同時(shí)必定滿足其中一種。在這樣的情況下,如果前者滿足了,另一種情況就不需要進(jìn)行檢測(cè)了。

S4、按照分配序列L中任務(wù)的先后順序,將任務(wù)集合中的任務(wù)分配出去。

以圖4中的任務(wù)集合為例,執(zhí)行步驟S3,最終得到圖5上的任務(wù)分配序列,同時(shí)圖5中存在任務(wù)參與者集合W={w1,w2,w3,w4,w5}。如果有T1={t1,t4,t6,t8},T2={t3,t4,t6,t9},T3={t1,t2,t5,t10},T4={t2,t6,t7,t9},T5={t3,t5,t7,t9}。

任務(wù)分配過(guò)程開(kāi)始。我們從第一個(gè)任務(wù)參與者w1開(kāi)始,依次查看任務(wù)序列L中是否有任務(wù)參與者w1能做的任務(wù),由于任務(wù)參與者w1處于空閑狀態(tài)而且對(duì)任務(wù)t4表示出了興趣,同時(shí)任務(wù)t4當(dāng)前是可分配的,于是我們將任務(wù)t4交付給任務(wù)參與者w1完成。我們對(duì)下一個(gè)任務(wù)參與者進(jìn)行任務(wù)分配,對(duì)于任務(wù)參與者w2和任務(wù)t3、任務(wù)參與者w3和任務(wù)t2滿足了同樣的條件,于是將任務(wù)交付給對(duì)應(yīng)的任務(wù)參與者完成。

而對(duì)于任務(wù)參與者w4和任務(wù)t7,盡管任務(wù)參與者w4對(duì)任務(wù)t7表示出了興趣,任務(wù)參與者w4也處于空閑狀態(tài),但任務(wù)t7的條件任務(wù)未被完成,任務(wù)便不能被分配出,同樣對(duì)于任務(wù)t7之后的那些任務(wù),在進(jìn)行檢查后都發(fā)現(xiàn)任務(wù)參與者w4不能執(zhí)行,因此我們只能對(duì)下一個(gè)任務(wù)參與者進(jìn)行任務(wù)分配,任務(wù)參與者w4保持空閑狀態(tài)等待任務(wù)分配的時(shí)刻。

在對(duì)所有任務(wù)參與者進(jìn)行任務(wù)分配后,任務(wù)參與者集合W中有的任務(wù)參與者是處于忙碌狀態(tài)的,而有些是空閑的,我們需要等待最先被完成的任務(wù)出現(xiàn),才能針對(duì)空閑的任務(wù)參與者按照上述的原則進(jìn)行下一輪的任務(wù)分配。以此往復(fù),所有任務(wù)完成時(shí),任務(wù)分配過(guò)程才結(jié)束。

如圖9所示,所述步驟S4具體包括:

S401、對(duì)分配過(guò)程中需要的局部變量進(jìn)行初始化:

存在一個(gè)當(dāng)前正在被完成的任務(wù)的集合Tf,初始化為一個(gè)記錄任務(wù)分配和完成經(jīng)歷的時(shí)間time,初始化為time=0。

S402、i=1。

遍歷從任務(wù)參與者集合T中的第一個(gè)任務(wù)參與者開(kāi)始。

S403、遍歷任務(wù)參與者集合W,當(dāng)前目標(biāo)為任務(wù)參與者wi。

確定整個(gè)遍歷過(guò)程在當(dāng)前階段下的目標(biāo)任務(wù)參與者。

S404、j=1。

從任務(wù)序列L中的第一個(gè)任務(wù)開(kāi)始,按順序依次與當(dāng)前的判斷任務(wù)參與者進(jìn)行匹配。

S405、遍歷任務(wù)序列L,當(dāng)前目標(biāo)為任務(wù)tj。

在對(duì)一個(gè)任務(wù)參與者嘗試進(jìn)行任務(wù)分配的過(guò)程中,確定當(dāng)前階段下與之嘗試進(jìn)行匹配的任務(wù)。

S406、判斷任務(wù)參與者wi是否能夠完成任務(wù)tj。如果能夠完成,則執(zhí)行步驟S407,否則執(zhí)行步驟S408。

判斷任務(wù)參與者wi是否空閑,以及對(duì)任務(wù)tj是否存在意向,即任務(wù)tj屬于任務(wù)參與者wi想做的任務(wù)集合Ti,同時(shí)在當(dāng)前情形下任務(wù)tj是否可分配的,只有同時(shí)滿足這三個(gè)條件,任務(wù)參與者wi才能夠完成任務(wù)tj。

S407、將任務(wù)tj從任務(wù)集合T中刪除,并加入到當(dāng)前正在被完成的任務(wù)的集合Tf中,記錄任務(wù)tj被分配的時(shí)刻timej=time和完成任務(wù)tj的任務(wù)參與者,同時(shí)將任務(wù)參與者wi標(biāo)記為忙碌狀態(tài),執(zhí)行步驟S410。

對(duì)匹配成功的任務(wù)和任務(wù)參與者進(jìn)行處理。

S408、判斷任務(wù)tj是否為任務(wù)序列L的最后一個(gè)任務(wù),如果是則執(zhí)行步驟S410,否則執(zhí)行步驟S409。

是否最終確定任務(wù)序列L中不存在與目標(biāo)任務(wù)參與者匹配的任務(wù)。

S409、j++,執(zhí)行步驟S405。

確定下一個(gè)階段與目標(biāo)任務(wù)參與者進(jìn)行匹配的任務(wù)。

S410、判斷任務(wù)參與者wi是否為任務(wù)參與者集合W的最后一個(gè)任務(wù)參與者,如果是則執(zhí)行步驟S412,否則執(zhí)行步驟S411。

是否已經(jīng)對(duì)所有任務(wù)參與者嘗試過(guò)進(jìn)行任務(wù)分配。

S411、i++,執(zhí)行步驟S403。

對(duì)下一個(gè)任務(wù)參與者嘗試進(jìn)行任務(wù)分配。

S412、找到當(dāng)前正在被完成的任務(wù)的集合Tf中,timej+hj最小的任務(wù)tj,更新time=time+timej+hj。

當(dāng)有一個(gè)任務(wù)參與者完成任務(wù)時(shí),平衡的狀態(tài)被打破,需要再次對(duì)所有任務(wù)參與者進(jìn)行任務(wù)分配。

S413、判斷任務(wù)序列L是否為空,如果是則步驟S4結(jié)束,如果否則進(jìn)入步驟S414。

當(dāng)任務(wù)序列L中所有任務(wù)都被分配出時(shí),步驟S4結(jié)束。

S414、刪除任務(wù)集合Tf中的任務(wù)tj,將完成任務(wù)tj的任務(wù)參與者wi標(biāo)記為空閑狀態(tài),執(zhí)行步驟S402。

對(duì)完成任務(wù)的任務(wù)參與者和被完成的任務(wù)進(jìn)行處理。

根據(jù)本發(fā)明的另一個(gè)方面,如圖10所示,本發(fā)明還提出了一種基于任務(wù)間優(yōu)先關(guān)系約束的任務(wù)分配系統(tǒng)200,所述系統(tǒng)200包括以下模塊:

任務(wù)層次確定模塊210,對(duì)于任務(wù)集合中的每一個(gè)任務(wù),根據(jù)該任務(wù)的條件任務(wù)集合,確定該任務(wù)的層次;

最終任務(wù)尋找模塊220,用于找出上述任務(wù)集合中所有的最終任務(wù),組成最終任務(wù)的集合;

分配級(jí)別確定模塊230,用于確定任務(wù)集合中各個(gè)任務(wù)之間的優(yōu)先分配級(jí)別,組成分配序列;

任務(wù)分配模塊240,用于按照上述分配序列中任務(wù)的先后順序,將任務(wù)集合中的任務(wù)分配出去。

需要說(shuō)明的是:

在此提供的算法和顯示不與任何特定計(jì)算機(jī)、虛擬裝置或者其它設(shè)備固有相關(guān)。各種通用裝置也可以與基于在此的示教一起使用。根據(jù)上面的描述,構(gòu)造這類(lèi)裝置所要求的結(jié)構(gòu)是顯而易見(jiàn)的。此外,本發(fā)明也不針對(duì)任何特定編程語(yǔ)言。應(yīng)當(dāng)明白,可以利用各種編程語(yǔ)言實(shí)現(xiàn)在此描述的本發(fā)明的內(nèi)容,并且上面對(duì)特定語(yǔ)言所做的描述是為了披露本發(fā)明的最佳實(shí)施方式。

在此處所提供的說(shuō)明書(shū)中,說(shuō)明了大量具體細(xì)節(jié)。然而,能夠理解,本發(fā)明的實(shí)施例可以在沒(méi)有這些具體細(xì)節(jié)的情況下實(shí)踐。在一些實(shí)例中,并未詳細(xì)示出公知的方法、結(jié)構(gòu)和技術(shù),以便不模糊對(duì)本說(shuō)明書(shū)的理解。

類(lèi)似地,應(yīng)當(dāng)理解,為了精簡(jiǎn)本公開(kāi)并幫助理解各個(gè)發(fā)明方面中的一個(gè)或多個(gè),在上面對(duì)本發(fā)明的示例性實(shí)施例的描述中,本發(fā)明的各個(gè)特征有時(shí)被一起分組到單個(gè)實(shí)施例、圖、或者對(duì)其的描述中。然而,并不應(yīng)將該公開(kāi)的方法解釋成反映如下意圖:即所要求保護(hù)的本發(fā)明要求比在每個(gè)權(quán)利要求中所明確記載的特征更多的特征。更確切地說(shuō),如下面的權(quán)利要求書(shū)所反映的那樣,發(fā)明方面在于少于前面公開(kāi)的單個(gè)實(shí)施例的所有特征。因此,遵循具體實(shí)施方式的權(quán)利要求書(shū)由此明確地并入該具體實(shí)施方式,其中每個(gè)權(quán)利要求本身都作為本發(fā)明的單獨(dú)實(shí)施例。

本領(lǐng)域那些技術(shù)人員可以理解,可以對(duì)實(shí)施例中的設(shè)備中的模塊進(jìn)行自適應(yīng)性地改變并且把它們?cè)O(shè)置在與該實(shí)施例不同的一個(gè)或多個(gè)設(shè)備中??梢园褜?shí)施例中的模塊或單元或組件組合成一個(gè)模塊或單元或組件,以及此外可以把它們分成多個(gè)子模塊或子單元或子組件。除了這樣的特征和/或過(guò)程或者單元中的至少一些是相互排斥之外,可以采用任何組合對(duì)本說(shuō)明書(shū)(包括伴隨的權(quán)利要求、摘要和附圖)中公開(kāi)的所有特征以及如此公開(kāi)的任何方法或者設(shè)備的所有過(guò)程或單元進(jìn)行組合。除非另外明確陳述,本說(shuō)明書(shū)(包括伴隨的權(quán)利要求、摘要和附圖)中公開(kāi)的每個(gè)特征可以由提供相同、等同或相似目的的替代特征來(lái)代替。

此外,本領(lǐng)域的技術(shù)人員能夠理解,盡管在此所述的一些實(shí)施例包括其它實(shí)施例中所包括的某些特征而不是其它特征,但是不同實(shí)施例的特征的組合意味著處于本發(fā)明的范圍之內(nèi)并且形成不同的實(shí)施例。例如,在下面的權(quán)利要求書(shū)中,所要求保護(hù)的實(shí)施例的任意之一都可以以任意的組合方式來(lái)使用。

本發(fā)明的各個(gè)部件實(shí)施例可以以硬件實(shí)現(xiàn),或者以在一個(gè)或者多個(gè)處理器上運(yùn)行的軟件模塊實(shí)現(xiàn),或者以它們的組合實(shí)現(xiàn)。本領(lǐng)域的技術(shù)人員應(yīng)當(dāng)理解,可以在實(shí)踐中使用微處理器或者數(shù)字信號(hào)處理器(DSP)來(lái)實(shí)現(xiàn)根據(jù)本發(fā)明實(shí)施例的虛擬機(jī)的創(chuàng)建裝置中的一些或者全部部件的一些或者全部功能。本發(fā)明還可以實(shí)現(xiàn)為用于執(zhí)行這里所描述的方法的一部分或者全部的設(shè)備或者裝置程序(例如,計(jì)算機(jī)程序和計(jì)算機(jī)程序產(chǎn)品)。這樣的實(shí)現(xiàn)本發(fā)明的程序可以存儲(chǔ)在計(jì)算機(jī)可讀介質(zhì)上,或者可以具有一個(gè)或者多個(gè)信號(hào)的形式。這樣的信號(hào)可以從因特網(wǎng)網(wǎng)站上下載得到,或者在載體信號(hào)上提供,或者以任何其他形式提供。

應(yīng)該注意的是上述實(shí)施例對(duì)本發(fā)明進(jìn)行說(shuō)明而不是對(duì)本發(fā)明進(jìn)行限制,并且本領(lǐng)域技術(shù)人員在不脫離所附權(quán)利要求的范圍的情況下可設(shè)計(jì)出替換實(shí)施例。在權(quán)利要求中,不應(yīng)將位于括號(hào)之間的任何參考符號(hào)構(gòu)造成對(duì)權(quán)利要求的限制。單詞“包含”不排除存在未列在權(quán)利要求中的元件或步驟。位于元件之前的單詞“一”或“一個(gè)”不排除存在多個(gè)這樣的元件。本發(fā)明可以借助于包括有若干不同元件的硬件以及借助于適當(dāng)編程的計(jì)算機(jī)來(lái)實(shí)現(xiàn)。在列舉了若干裝置的單元權(quán)利要求中,這些裝置中的若干個(gè)可以是通過(guò)同一個(gè)硬件項(xiàng)來(lái)具體體現(xiàn)。單詞第一、第二、以及第三等的使用不表示任何順序。可將這些單詞解釋為名稱。

顯然,本領(lǐng)域的技術(shù)人員可以對(duì)本發(fā)明進(jìn)行各種改動(dòng)和變型而不脫離本發(fā)明的精神和范圍。這樣,倘若對(duì)本發(fā)明的這些修改和變型屬于本發(fā)明權(quán)利要求及其同等技術(shù)的范圍之內(nèi),則本發(fā)明也意圖包含這些改動(dòng)和變型在內(nèi)。

當(dāng)前第1頁(yè)1 2 3 
網(wǎng)友詢問(wèn)留言 已有0條留言
  • 還沒(méi)有人留言評(píng)論。精彩留言會(huì)獲得點(diǎn)贊!
1
齐河县| 韶山市| 漯河市| 石楼县| 时尚| 青田县| 白山市| 剑川县| 长武县| 德州市| 江川县| 龙游县| 广安市| 南宁市| 独山县| 滦南县| 清徐县| 昌图县| 密云县| 吴忠市| 平山县| 措勤县| 咸丰县| 射阳县| 泽州县| 宝山区| 内丘县| 清河县| 社会| 弋阳县| 会宁县| 广宁县| 邵东县| 泗洪县| 大冶市| 白城市| 恩平市| 肃北| 泰宁县| 连平县| 会同县|