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

    一種范圍性空間眾包任務(wù)的在線分配優(yōu)化研究

    2020-09-03 08:38:26高麗萍
    小型微型計算機系統(tǒng) 2020年8期
    關(guān)鍵詞:工人分配節(jié)點

    高麗萍,戴 焜,高 麗

    1(上海理工大學 光電信息與計算機工程學院,上海 200093)

    2(復(fù)旦大學 上海數(shù)據(jù)科學重點實驗室,上海 200093)

    3(上海理工大學 圖書館,上海 200093)E-mail:lipinggao@usst.edu.cn;2012701442@qq.com

    1 引 言

    近年來隨著人工智能領(lǐng)域的蓬勃發(fā)展,人們對于數(shù)據(jù)的需求日益增長,眾包技術(shù)在數(shù)據(jù)采集中的重要地位得到了廣泛的認可.空間眾包技術(shù)是眾包技術(shù)的一個重要分支[1,2],空間眾包嚴格規(guī)定了參與者的完成任務(wù)的工作地點,將采集到的數(shù)據(jù)賦予了地域性更加符合實際情況[3],例如滴滴打車客戶在指定某個地點叫車,在滴滴平臺上的司機看到任務(wù)后必須要到客戶所在地才可以完成任務(wù).隨著移動眾包感知技術(shù)(Mobile Crowdsourcing Sensing,MCS)的蓬勃發(fā)展,信息獲取手段的提升促進了在過去幾年里,越來越多的國內(nèi)外的學者開始對于空間眾包的分配問題進行研究,并且取得了巨大的成果[4-6].

    空間眾包問題中主要有三個方面的研究內(nèi)容:任務(wù)分配、任務(wù)規(guī)劃和隱私保護.其中任務(wù)分配是保證眾包任務(wù)完成的核心技術(shù).任務(wù)分配指如何分配任務(wù)給工人來實現(xiàn)最大的任務(wù)分配數(shù)量和最小化任務(wù)成本,例如TGOA[2]算法將分配過程分成兩個階段,利用當前分配和當前的全局最優(yōu)解作對比來考慮是否會采用,期望通過每次分配局部最優(yōu)來接近全局最優(yōu).在分配模式上分為離線模式和在線模式兩種,離線模式是在已知任務(wù)信息和參與者信息進行分配,但是在響應(yīng)時間有要求的情況下并不適用(例如外賣行業(yè)等),并且在現(xiàn)實的場景中分配平臺實現(xiàn)不可能了解到所有任務(wù)和工人的情況,所以離線模式只適合不需要高響應(yīng)的任務(wù),在線模式是指任務(wù)信息和參與者信息事前并不知道,只有當任務(wù)或參與者到達時才會知道其信息,例如Peng Chen[7]提出的MQA算法,通過分析地區(qū)任務(wù)出現(xiàn)情況來預(yù)測任務(wù)在某個時間段出現(xiàn)的概率,從而提高工人可以連續(xù)完成多個任務(wù)的概率以實現(xiàn)提高任務(wù)分配數(shù)量的提高.

    隨著人工智能的飛速發(fā)展,人們對于數(shù)據(jù)量的需求日益增長,傳統(tǒng)的派專人采集數(shù)據(jù)的形式已經(jīng)不能再滿足人們的需求,空間眾包利用MCS可以有效加快數(shù)據(jù)的采集速度和任務(wù)成本的控制,MCS技術(shù)是利用智能手機的傳感儀器在手機空閑時采集四周的傳感信息(如噪音強度,WIFI信號的強弱程度,交通擁堵情況等信息),在成本上,傳統(tǒng)方法是雇傭?qū)I(yè)人士來采集信息,但是對于某些信息并不是一定要專業(yè)儀器才可以采集到,沒有必要聘用專業(yè)人士利用MCS平臺征集參與者利用參與者的智能手機同樣可以采集到相同的數(shù)據(jù),在OMG算法基于MCS平臺通過反向競拍的方式將任務(wù)分配出去,參與者通過公開報價的方式去獲取任務(wù),并且將分配過程分成了多個階段,每個階段錄取的參與者的任務(wù)平均報價都會比之前階段低,可以將任務(wù)成本有效降低,比使用傳統(tǒng)方法雇傭?qū)I(yè)人士去采集信息任務(wù)成本上要低很多,在時間上因為空間眾包平臺是利用網(wǎng)絡(luò)來征集這段時間在任務(wù)地點附近并且有空完成任務(wù)的人,與傳統(tǒng)方法去請人到工作地點采集要更加的快捷.

    本課題組之前所提出的優(yōu)化范圍性空間眾包分配算法(Optimizing Scope Spatial Crowdsourcing Tasks Allocation algorithm,OSSA)在空間任務(wù)中工作地點加入了范圍屬性,在任務(wù)分配之前將任務(wù)優(yōu)化來消除任務(wù)冗余的問題,從而提高可分配任務(wù)數(shù)量.因為在感知信息采集時有時并不是采集一個地點的信息而實要采集一個范圍的信息,但是在采集范圍信息時,會出現(xiàn)任務(wù)范圍的重疊導致任務(wù)冗余的現(xiàn)象,在人少任務(wù)多的情況下,過多的任務(wù)冗余會導致分配數(shù)量的下降.OSSA在識別任務(wù)關(guān)系和分配任務(wù)時,會將任務(wù)隊列中所有任務(wù)進行比較,因此算法效率較低,本文所提出的OSSA改良算法的解決方法是將任務(wù)或工人的區(qū)域信息放入具有樹形結(jié)構(gòu)的任務(wù)樹中,并且在存儲時按照任務(wù)區(qū)域特性存儲信息,從而在檢索與到達任務(wù)或工人相關(guān)的任務(wù)信息或者工人信息時可以利用任務(wù)樹實現(xiàn)快速檢索.

    本文首先介紹下OSSA算法,之后在OSSA算法的基礎(chǔ)上利用二叉樹將任務(wù)信息在空間上進行分類管理,當有新任務(wù)到達時,會利用之前存儲范圍信息的二叉樹快速檢索到與任務(wù)范圍有冗余的任務(wù),從而減小問題的規(guī)模并且加快識別任務(wù)關(guān)系的速度,進一步提高算法分配效率.本文組織結(jié)構(gòu)如下:第二部分對研究背景與相關(guān)工作進行介紹;第三部介紹系統(tǒng)模型和問題定義;第四部分介紹利用二叉樹將空間任務(wù)分類的優(yōu)化算法并實例分析.第五部分,對設(shè)計的優(yōu)化算法通過隨機模擬工人和任務(wù)信息的數(shù)據(jù),進行模擬仿真實驗并給出實驗分析結(jié)果,然后進行對比實驗來證明優(yōu)化算法的效果和正確性,第六部分為全文內(nèi)容的總結(jié)以及對未來工作的展望.

    2 相關(guān)工作

    空間眾包的優(yōu)化問題,在近些年來被越來越多的研究者所關(guān)注,在優(yōu)化方法中主要有三個目標,主要從分配數(shù)量,任務(wù)成本,任務(wù)質(zhì)量三個方面去考慮,分配數(shù)量主要是考慮如何將最終分配的任務(wù)個數(shù)最大化,例如(GeoCrowd:Enabling Query Answering with SpatialCrowdsourcing)Leyla Kazemi[3]提出的LLEP方法,該方法主要是將工人出現(xiàn)的密度分等級分配任務(wù)時根據(jù)任務(wù)出現(xiàn)地區(qū)等級的高低去決定優(yōu)先分配任務(wù),來保證任務(wù)最大化分配數(shù)量.任務(wù)成本主要是優(yōu)化最終分配的任務(wù)的平均成本即參與者的報酬,例如Frugal-OMZ[1]算法和OMG[8]算法都是在通過參考上一個階段參與者產(chǎn)生價值與得到成本的比值作為閾值,將其作為下一個階段選擇參與者的指標,從而最大化降低任務(wù)完成成本,任務(wù)質(zhì)量是指參與者完成所分配任務(wù)的質(zhì)量,例如MELODY算法[9]采取分階段的方式,將分配過程分成多個階段,當工人完成任務(wù)后,會有一個質(zhì)量的反饋,算法基于EM(Expectation-Maximization algorithm)算法根據(jù)前幾次的所完成任務(wù)的質(zhì)量來預(yù)估下次質(zhì)量,根據(jù)工人質(zhì)量的預(yù)測將任務(wù)分配給工人.

    在上述的優(yōu)化方法中,大多是從分配階段對算法進行優(yōu)化,任務(wù)優(yōu)化是近年來一個新的優(yōu)化方向,該方向是將任務(wù)之間的屬性關(guān)聯(lián)起來分析,任務(wù)不再是相互獨立存在的,在文獻[4]中總結(jié)了任務(wù)優(yōu)化的三個主要優(yōu)化方面,第一種任務(wù)的整合,是指將某些任務(wù)整合在一起交給參與者去完成[10-12],例如Y.Liu[10]所提出的MT-MCMF算法通過分析參與者的行動軌跡將在將其軌跡范圍內(nèi)的任務(wù)整合交給參與者完成,實現(xiàn)最大化分配數(shù)量的目標.第二種是任務(wù)劃分[13-16]它是將任務(wù)與任務(wù)之間屬性的關(guān)聯(lián)或者是任務(wù)與工人之間屬性的關(guān)聯(lián)將任務(wù)進行劃分便于將來分配,減小分配的問題規(guī)模加快分配效率,例如文獻[11]中認為工人在分配任務(wù)時并不是和所有任務(wù)都是有關(guān)系的,其利用樹分解技術(shù)將有關(guān)系的工人或任務(wù)迅速找到,將那些不可能會出現(xiàn)在最優(yōu)方法中的枝杈剪除,從而實現(xiàn)最大化任務(wù)數(shù)量的目標.文獻[14]是利用分治的方法將僅和當前分配有關(guān)聯(lián)的任務(wù)和參與者找到,進行局部的分配,從而提高分配效率,第三種任務(wù)分解[17,18],在文獻中為了完成復(fù)雜的問題將任務(wù)進行分解成一個個子任務(wù),并將子任務(wù)分給參與者完成,最后將所有結(jié)果整合,從而實現(xiàn)提高任務(wù)的完成數(shù)量,文獻[17]研究了任務(wù)分解后的不同完成任務(wù)的方式如順序?qū)崿F(xiàn)、并行實現(xiàn)和分治實現(xiàn),文獻[18]將任務(wù)分解應(yīng)用到了圖像采集中通過將任務(wù)分解讓參與者從自己的角度去采集圖像,所得到的結(jié)果是從不同角度拍攝的圖像從而增強了任務(wù)的完成質(zhì)量和所完成任務(wù)的容錯率.

    上述在任務(wù)劃分的優(yōu)化方法大多是針對任務(wù)是一個地點通過圖的方式進行劃分,而本文是將帶有范圍屬性的空間眾包任務(wù)利用樹的技術(shù)將其分類,在優(yōu)化任務(wù)時通過其關(guān)系節(jié)點在樹中的位置推斷其與其他任務(wù)的關(guān)系,從而迅速找到與之相關(guān)聯(lián)的任務(wù),減小尋找關(guān)聯(lián)任務(wù)的問題規(guī)模,提高分配任務(wù)的效率.

    3 系統(tǒng)模型的定義和目標系統(tǒng)模型

    本系統(tǒng)基于OSSA算法的基礎(chǔ)上加入了范圍任務(wù)樹,將會有一系列任務(wù)T{t1,t2…}和工人W{w1,w2…}到達系統(tǒng)中,任務(wù)內(nèi)容是工人利用MCS技術(shù)通過智能手機中的傳感器去采集目標區(qū)域中的相關(guān)感知信息(例如空氣質(zhì)量信息、交通信息、噪音信息等),系統(tǒng)將會根據(jù)任務(wù)和工人信息給出分配結(jié)果,當任務(wù)t到達時,根據(jù)任務(wù)的范圍信息將任務(wù)放入范圍任務(wù)樹中,并且利用其所在樹節(jié)點的位置快速找到與之有關(guān)聯(lián)的任務(wù),然后根據(jù)關(guān)聯(lián)任務(wù)與任務(wù)t在樹中節(jié)點的相對位置來推斷任務(wù)關(guān)系,在有工人w到達時,檢索范圍任務(wù)樹找出符合工人接受范圍的任務(wù),如果發(fā)現(xiàn)符合條件的任務(wù)會立即分配,沒有符合的任務(wù)將等待符合的任務(wù)出現(xiàn),直到等待時間超過工人的離開時間,根據(jù)工人所完成的任務(wù)給出合理報酬,本系統(tǒng)由于是采用MCS技術(shù)收集感知數(shù)據(jù),所以系統(tǒng)中出現(xiàn)的任務(wù)都是同質(zhì)任務(wù).

    1)模型基本定義

    模型定義基本參照OSSA算法,其中加入了關(guān)于范圍任務(wù)二叉樹的基本定義.

    定義1.(任務(wù)時效性)每個任務(wù)ti都存在一個開始時間ai和一個結(jié)束時間di,ai是指任務(wù)的到達時間的時間點,di是指任務(wù)的離開時間的時間點,任務(wù)只有在ai和di的閉區(qū)間內(nèi)才可以被分配.

    定義2.(任務(wù)范圍)每個任務(wù)ti都有一個任務(wù)范圍,為了方便計算任務(wù)的范圍,將所有任務(wù)的范圍定義為一個矩形,由(ri,hi,wi)表示,ri是任務(wù)范圍的左頂點,hi是任務(wù)范圍的長度,wi是任務(wù)范圍的寬度.

    定義3.(工人時效性)每個工人wi都存在到達時間ai和結(jié)束時間di,ai是工人進入分配平臺的時間點,di是工人離開分配平臺的時間點,工人只有在ai和di閉區(qū)間內(nèi)才可以接受任務(wù).

    定義4.(工人可接受任務(wù)范圍)每個工人有一個可接受任務(wù)的范圍,為了方便計算可接受的范圍,將所有可接受范圍定義為一個矩形,用(ri,hi,wi)表示,ri是可接受范圍的左頂點,hi是可接受范圍的長度,wi是可接受范圍的寬度.

    定義5.(工人報酬)每一個工人都有一個報價ci,系統(tǒng)會根據(jù)當時的分配情況給出工人報酬pi,為了保證工人權(quán)益即系統(tǒng)給出的報酬pi必須滿足pi≥ci.

    定義6.(任務(wù)編號)每一個任務(wù)都有自己任務(wù)編號,m為任務(wù)類型號,n為子任務(wù)編號,當任務(wù)t根據(jù)其任務(wù)范圍分為了t1,t2時,其任務(wù)類型號為任務(wù)t的任務(wù)類型號,t1的子任務(wù)編號為1,t2的子任務(wù)編號為2,t的子任務(wù)編號為0.

    定義7.(子任務(wù)標志位和子任務(wù)數(shù)量位)每一個根任務(wù)都有一個子任務(wù)標志位N和子任務(wù)數(shù)量位M,當有子任務(wù)分解出來時子任務(wù)的子任務(wù)編號是當前任務(wù)子任務(wù)標志位,并且更新根任務(wù)的子任務(wù)標志位加1,子任務(wù)數(shù)量位則是記錄根任務(wù)中未完成子任務(wù)的個數(shù).

    定義8.(任務(wù)范圍的起始點與結(jié)束點)任務(wù)的起始點指的是任務(wù)范圍左上點即ri,而結(jié)束點為任務(wù)范圍的右下點ei即(ri.x+wi,ri.y+hi ).

    定義9.(范圍任務(wù)樹節(jié)點)范圍任務(wù)樹的節(jié)點由坐標值信息、任務(wù)編號、坐標點類型和右子樹節(jié)點集合組成,其中的坐標值信息為坐標的x軸信息或y軸信息,任務(wù)編號即該節(jié)點所描述任務(wù)的任務(wù)編號,坐標點類型分為兩類S,E用來記錄該座標點是任務(wù)范圍的起始點還是結(jié)束點,右子樹節(jié)點集合記錄了在右子樹中只有起始坐標信息沒有結(jié)束坐標信息任務(wù)的任務(wù)編號集合.

    定義10.(任務(wù)分配數(shù)量)

    (1)

    (2)

    定義11.(任務(wù)平均成本):

    (3)

    2)模型假設(shè)

    假設(shè)1.每一個工人最多只可以分配一個任務(wù).

    假設(shè)2.工人和任務(wù)的信息和到達的順序事先是未知的,只有到達以后才可以獲取任務(wù)和工人信息.

    假設(shè)3.由于本文所討論的范圍任務(wù)都是基于MCS技術(shù),所以工人在被分配任務(wù)時無需考慮工人能力問題,工人只要滿足上節(jié)的三點要求就可以分配任務(wù).

    假設(shè)4.任務(wù)一旦被分配以后,工人一定可以完成任務(wù),不存在中途放棄的情況.

    假設(shè)5.工人不會拒絕系統(tǒng)分配給的任務(wù),一旦分配任務(wù)會立即執(zhí)行任務(wù).

    假設(shè)6.當工人到達時如果存在可分配的任務(wù)會立即分配可執(zhí)行任務(wù)不會等待.

    假設(shè)7.工人的數(shù)量遠少于任務(wù)數(shù)量并且任務(wù)的分布是集中密集分布.

    假設(shè)8.工人的報價是趨于穩(wěn)定的,不會出現(xiàn)不真實的報價不會出現(xiàn)較大浮動的.

    3)模型目標

    利用范圍任務(wù)樹劃分范圍任務(wù),在對范圍任務(wù)檢測時可以利用任務(wù)在范圍任務(wù)樹存放任務(wù)信息的過程獲得的信息,快速鑒別那些可能會與任務(wù)有關(guān)聯(lián)的任務(wù),再通過任務(wù)樹中節(jié)點的與關(guān)聯(lián)任務(wù)的節(jié)點的相對位置,推斷出任務(wù)的任務(wù)關(guān)系.然后利用OSSA的分配方法來解決任務(wù)冗余所帶來的問題.

    4 基于樹形結(jié)構(gòu)優(yōu)化范圍空間眾包任務(wù)在線分配

    由于本算法是基于OSSA算法改進而來,接下來會首先介紹OSSA算法的基本原理和流程,然后再介紹本算法對于OSSA算法的優(yōu)化部分.

    4.1 OSSA算法

    OSSA算法主要是通過任務(wù)關(guān)系來解決節(jié)約范圍性空間眾包任務(wù)冗余問題,節(jié)約人力從而提高任務(wù)的可分配數(shù)量的方法.

    4.1.1 任務(wù)范圍冗余問題

    任務(wù)范圍冗余問題是指:多個工人在完成多個任務(wù)時會出現(xiàn)其所負責的部分與其他工人負責的部分之間出現(xiàn)重疊和部分重疊的問題.在空間任務(wù)分配時,由于任務(wù)的發(fā)布方往往不是同一個機構(gòu)或客戶,所以會導致任務(wù)與任務(wù)之間雖然是獨立存在的,但是任務(wù)之間可能會存在空間依賴關(guān)系.在傳統(tǒng)的分配算法中并沒有考慮這個問題而是認為任務(wù)之間相互獨立,因此分配任務(wù)時會出現(xiàn)任務(wù)空間之間的冗余.

    接下來會給出兩個案例來重點說明任務(wù)范圍冗余的所帶來的的人力浪費.

    4.1.2 任務(wù)范圍冗余的場景分析

    在這個小節(jié)里會介紹兩個案例來說明任務(wù)范圍冗余出現(xiàn)的兩種情況,分析范圍冗余對任務(wù)分配情況的影響.

    任務(wù)范圍假設(shè)為矩形,范圍信息由左上角坐標信息和矩形的長和寬組成.

    任務(wù)t1,t2,t3是采集任務(wù)范圍內(nèi)的感知信息,工人會利用MCS技術(shù)利用自己的智能手機的傳感器采集任務(wù)中的感知信息.

    場景1.有兩個工人w1和w2和兩個任務(wù)t1和t2到達,兩個工人的可接受范圍為((0,0),200,200),任務(wù)t1的任務(wù)范圍為((50,50),100,100),任務(wù)t2的任務(wù)范圍為((100,100),50,50),工人w1和w2時間信息為(2,10),w1的報價為1而w2的報價為5,任務(wù)t1的時間信息為(1,5),任務(wù)t2的到達時間為(2,6),詳情如圖1所示.

    圖1 場景1和場景2中工人和任務(wù)的范圍信息

    如圖1(a)所示當t1和t2到達時,w1和w2都可以分配t1和t2任務(wù),在傳統(tǒng)分配算法中會直接分配任務(wù)給w1和w2,但是可以看出t1和t2之間的任務(wù)范圍并不是完全獨立的,而是存在交集部分的t2的任務(wù)面積是包含在t1中的,在之前的假設(shè)中工人可以完成任何任務(wù),所以當在完成t1任務(wù)時,工人肯定會覆蓋t2的任務(wù)范圍,本來一個人就可以將t1和t2任務(wù)一起完成現(xiàn)在要兩個人才可以完成,因為t1和t2的任務(wù)范圍存在冗余部分(t2),導致了分配時人力的浪費情況的出現(xiàn).

    場景2.有三個工人w1,w2和w3和4個任務(wù)t1,t2,t3和t4,w1的時間信息為(3,10),w2的時間信息為(4,5),w3的時間信息為(5,5),t1的時間信息為(0,5),t2的時間信息為(1,4),t3的時間信息為(2,6),t4的時間信息為(2,6),任務(wù)和工人的范圍信息見圖1.

    如圖1(b)所示當任務(wù)到達時,t1,t2,t3分別在w1,w2和w3的到達范圍內(nèi),所以w1,w2,w3可以分配t1,t2,t3,但是t4的任務(wù)范圍卻不被任何一個工人所覆蓋,所以在傳統(tǒng)的分配算法中,t4會被擱置直到有新的工人到達檢測是否覆蓋t4的任務(wù)范圍,但是通過圖2可以直觀的看到,t4任務(wù)雖然不在任何一個工人的范圍內(nèi)但是t4的部分任務(wù)范圍被其他三個任務(wù)的任務(wù)范圍包含,即當完成其他3個任務(wù)時3個工人已經(jīng)把t4任務(wù)的任務(wù)范圍覆蓋了,但是由于沒有一個工人可以覆蓋t4的整個范圍導致t4任務(wù)無法被分配,在這種情況中,任務(wù)之間雖然在任務(wù)范圍中沒有出現(xiàn)直接包含的情況,但是任務(wù)與任務(wù)之間存在部分覆蓋的情況,導致了任務(wù)范圍冗余情況的出現(xiàn),可以想象在任務(wù)數(shù)量巨大的情況下,少量的部分覆蓋也會造成大面積的范圍冗余情況的出現(xiàn),從而出現(xiàn)分配時分配任務(wù)數(shù)量的下降.

    圖2 實例分析場景

    4.2 任務(wù)關(guān)系和節(jié)點關(guān)系

    為了消除任務(wù)范圍之間的關(guān)系,接下來會介紹三種任務(wù)之間的關(guān)系.

    1)獨立關(guān)系:存在兩個范圍任務(wù)t1和t2,其任務(wù)范圍為S1和S2,若S1∩S2=?則t1和t2屬于獨立關(guān)系.

    2)相交關(guān)系:存在兩個范圍任務(wù)t1和t2,其任務(wù)范圍為S1和S2,若S1∩S2=S3≠?且S3≠S1和S3≠S1,則t1和t2屬于相交關(guān)系.

    3)包含關(guān)系:存在兩個范圍任務(wù)t1和t2,其任務(wù)范圍為S1和S2,若S1∩S2=S2,則任務(wù)t1和t2屬于包含關(guān)系.

    4)被包含關(guān)系:存在兩個范圍任務(wù)t1和t2,其任務(wù)范圍為S1和S2,若S1∩S2=S1,則任務(wù)t1和任務(wù)t2屬于被包含關(guān)系.

    如圖1(a)所示,任務(wù)t1與t2在任務(wù)范圍上存在交集部分t2,根據(jù)上文的任務(wù)關(guān)系定義,t1與t2的任務(wù)范圍交集為t2,所以t1對于t2是包含關(guān)系,t2對于t1是被包含關(guān)系,如圖1(b)所示,任務(wù)t1和t4也存在交集部分,但是交集部分不等于t1或t4的任務(wù)范圍,所以t1和t4是相交關(guān)系,在圖1(b)中任務(wù)t1和t2的任務(wù)范圍不存在交集,所以t1和t2是獨立關(guān)系.

    從上述任務(wù)關(guān)系說明中可以看出在相交關(guān)系和包含與被包含關(guān)系中存在任務(wù)范圍冗余的問題,所以O(shè)SSA算法的目標是通過將任務(wù)整合和分解的手段,將每一個任務(wù)和除它外的所有任務(wù)的任務(wù)關(guān)系轉(zhuǎn)化為獨立關(guān)系從而消除任務(wù)范圍冗余的問題.

    4.3 OSSA算法設(shè)計

    為了跟好的理解算法,首先會在表1中介紹算法中會出現(xiàn)的變量以及變量的含義:

    變量名含 義tid表示任務(wù)編號tm,tn表示任務(wù)的類型號和子任務(wù)編號Wi,ti,pi分別表示工人i,任務(wù)i和工人i的報價.ri,hi,wi 分別表示范圍的起始點,范圍的高度和范圍的寬度.Ti.include表示任務(wù)i的包含集合存放與任務(wù)i有包含關(guān)系的任務(wù)id.ti.included表示任務(wù)i的被包含集合存放與任務(wù)i有被包含關(guān)系的任務(wù)id.ti.intersect表示任務(wù)i的相交集合存放與任務(wù)i有相交關(guān)系的任務(wù)id.Taskset表示任務(wù)集合將任務(wù)與其任務(wù)id映射表.Swi表示工人i可接受范圍Sti表示任務(wù)i的任務(wù)范圍wqueue表示已到達但沒有分配任務(wù)的工人隊列tqueue表示已到達但沒有執(zhí)行的任務(wù)隊列cur_time表示當前時間點

    OSSA算法具體內(nèi)容:

    算法1.OSSA

    n=0

    ui arrive

    Su=compterarea(ui)

    if T !=cur_time:

    detect_time(cur_time)

    sign=False

    if(type(ui)==Worker)

    for t in tqueue:

    if St∩Su=Stand count(t.include)>=count(task.include):

    if count(t.include)==count(task.include):

    if count(t.intersect)> count(task.intersect):continue

    pi=area_salary(t.id,u)

    task=t

    sign=True

    if not sign:

    wqueue.add(u)

    else:

    u.id=n

    n+=1

    Taskset[id]=u

    task_relation(u.id)

    if u.included !=?

    for w in wqueue:

    if Sw∩Su=Suand minprice > cw:

    selectedworker=w

    pw=area_salary(u)

    minprice=cw

    sign=True

    if not sign:

    tqueue.add(u.id)

    else:

    delete_relation(u.id)

    wqueue.remove(selectedworker)

    Taskset.pop(u)

    在OSSA算法中,如果是任務(wù)到達時會首先檢測該任務(wù)和任務(wù)隊列中的任務(wù)之間的關(guān)系,如果該任務(wù)與某一任務(wù)存在被包含關(guān)系(即該任務(wù)的任務(wù)范圍與其他任務(wù)完全重疊),則不會將任務(wù)放入任務(wù)隊列中,若沒有存在任務(wù)與其有被包含關(guān)系則將其放入任務(wù)隊列中,在識別任務(wù)關(guān)系時,會將存在關(guān)系的任務(wù)根據(jù)關(guān)系類型分別儲存在不同關(guān)系隊列中,方便分配任務(wù)時方便整合任務(wù)內(nèi)容,當有任務(wù)離開任務(wù)范圍分解或被分配時會根據(jù)其關(guān)系隊列重新更新與之有范圍關(guān)聯(lián)的任務(wù)的關(guān)系隊列,當工人到達時會根據(jù)工人的工作范圍從任務(wù)隊列中搜索可完成的任務(wù),然后將任務(wù)按照所包含的任務(wù)個數(shù)將其重新擺列,挑選出包含任務(wù)最多的任務(wù)交給工人完成,工人所獲得的報酬會根據(jù)任務(wù)范圍的大小和其所包含任務(wù)個數(shù)和其占包含任務(wù)的任務(wù)范圍的比例綜合計算,通過OSSA算法可以將范圍任務(wù)有效優(yōu)化,使得分配給工人的任務(wù)是在當時階段完全獨立的任務(wù),有效減輕了任務(wù)冗余所帶來的問題.

    在OSSA算法中,在對任務(wù)的任務(wù)關(guān)系初始判斷時,會將任務(wù)隊列中每一個任務(wù)都會進行判斷然后得出該任務(wù)與其他任務(wù)之間的關(guān)系,當任務(wù)數(shù)量越來越多時,關(guān)系判斷時間會線性增長,會極大降低算法的效率,接下來會介紹本算法如何利用空間任務(wù)樹將任務(wù)進行劃分,從而有效的找出可能存在非獨立關(guān)系的任務(wù).

    4.4 改進算法

    改進算法主要是在任務(wù)關(guān)系判斷環(huán)節(jié)對OSSA算法進行修改,使其可以快速將可能存在關(guān)系的任務(wù)從任務(wù)隊列中劃分并識別出任務(wù)關(guān)系.

    下面會列出改進算法中會出現(xiàn)的變量和變量的意義

    變量名含 義id分別表示任務(wù)編號tm,tn表示任務(wù)編號中的任務(wù)類型號和子任務(wù)編號XTree表示任務(wù)在X軸投影的任務(wù)樹YTree表示任務(wù)在Y軸投影的任務(wù)樹node表示樹的節(jié)點node.type表示樹中存放坐標的含義,S代表該節(jié)點表示任務(wù)范圍的初始點,E代表該節(jié)點表示任務(wù)范圍的結(jié)束點node.value表示節(jié)點存放的坐標值node.leftid存放了該節(jié)點右子樹中只有任務(wù)范圍的初始點卻沒有終結(jié)點所代表任務(wù)的任務(wù)編號node.kind表示節(jié)點種類,T代表存放的是任務(wù)信息,W代表存放的是工人信息node.id表示樹所代表任務(wù)或工人的編號Tnode.left表示節(jié)點的左節(jié)點Tnode.right表示節(jié)點的右節(jié)點XTree.firstYTree.first表示X軸投影樹的根節(jié)點表示Y軸投影樹的根節(jié)點

    改進算法具體內(nèi)容:

    算法2.Improved OSSA

    n=0

    ui arrive

    detect_time(cur_time)

    sign = False

    if(type(ui)==Worker)

    updateTree(ui)

    if ui.include==null

    wqueue.add(ui)

    else

    queue=ui.include

    task=null

    max=0

    for t in queue

    if t.included !=null

    continue

    if count(t.include)>max

    max=count(t.include)

    task=t

    if task

    pi=area_salary(task.tid,u)

    deletenode(task)

    deletenode(ui)

    else

    update(ui)

    for node in ui.included

    if node.kind==w&&minprice>=c

    selectedworker=workerset.get(node.id)

    minprice=c

    sign=true

    if sign

    pi=area_salary(ui,selectworker)

    wqueue.remove(selectworker)

    deletenode(ui)

    deleternode(selectworker)

    在改進算法中,在分配方面沿用了OSSA的機制,但是在任務(wù)關(guān)系識別方面,使用了范圍任務(wù)樹將范圍信息存儲到樹中,當工人或任務(wù)到達時會首先將其范圍信息放入到樹中,根據(jù)其所屬節(jié)點在范圍關(guān)系樹的相對位置,判別出任務(wù)關(guān)系,在每次分配完畢后會將已分配的節(jié)點在關(guān)系樹中進行更新,將已分配的節(jié)點從樹中剪除.

    算法3.updateTree

    relationX=updateX(ui)

    relationY=updateY(ui)

    if type(ui)=W

    for id,kind in relationX

    if kind !=1

    continue

    if relationY.get(id)!=null and realtionY[id]==1

    if id in taskset

    ui.include.add(id)

    else

    for id,kind in relationX

    if relationY.get(id)==null

    continue

    if kind==0 and id in taskset

    ui.intersct.add(id)

    taskset.get(id).intersect.add(id)

    if kind==1

    if relationY[id]==1

    ui.included.add(id)

    if id in taskset.key

    taskset.get(id).include(ui.id)

    else

    workerset.get(id).include(ui.id)

    else

    if id in taskset

    ui.intersect.add(id)

    taskset.get(id).intersect.add(ui.id)

    if kind==2

    if relationY[id]==2

    if id in taskset.key

    ui.include.add(id)

    taskset.get(id).included(id)

    else

    if id in taskset

    ui.intersect.add(id)

    在改良算法中,工人和任務(wù)之間也可以用任務(wù)范圍確定關(guān)系,但是工人與任務(wù)之間只有包含關(guān)系,因為只有當工人的工作范圍完全覆蓋了任務(wù)范圍才可以完成,所以工人與任務(wù)之間的相交關(guān)系和被包含關(guān)系沒有任何意義.首先算法會將任務(wù)/工人的信息分別放入代表X投影和Y投影的范圍任務(wù)樹中,然后根據(jù)從返回的任務(wù)節(jié)點在兩個樹中的關(guān)系,可以推斷出任務(wù)與現(xiàn)有任務(wù)之間的關(guān)系或工人與任務(wù)之間的關(guān)系,節(jié)點關(guān)系和任務(wù)關(guān)系的映射見表1.然后將識別好的關(guān)系放入關(guān)系隊列中.

    表1 節(jié)點關(guān)系與任務(wù)關(guān)系映射表

    算法4.UpdateX/uUpdateY

    snode←(ui.id,S,ui.x,null,ui.type )

    enode←(ui.id,S,ui.x+wi,null,ui.type)

    set1=updateNode(ui)

    set2=updateNode(ui)

    detect_relative(set1,set2-set1)

    在UpdateX或UpadteY函數(shù)中,會根據(jù)任務(wù)或工人信息計算其范圍的起始點和結(jié)束點在x軸和y軸的坐標,然后初始化樹節(jié)點,節(jié)點編號為任務(wù)或工人編號,set1和set2為比放入小于起始點和結(jié)束點的節(jié)點id,然后通過這些信息得出任務(wù)節(jié)點在樹中的節(jié)點關(guān)系.

    算法5.UpdateNode

    node put in Tree

    root=Tree.first

    tasked=[]

    prenode=null

    while root

    prenode=root

    if root.value<=node.value

    tasked.add(root.id)

    for id in root.leftid

    tasked.add(id)

    root=root.right

    if root.value>node.value

    root=root.left

    if prenode.value

    for id in prenode.leftid

    if taskid.exist(id)

    tasked.remove(id)

    else

    tasked.append(id)

    prenode.right=node

    else

    prenode.left=node

    if node.type==E

    taskset.remove(node.id)

    return tasked

    在updateNode函數(shù)中,會根據(jù)節(jié)點中的值放入相應(yīng)位置,首先插入節(jié)點會和樹的頭節(jié)點比較如果比插入節(jié)點的值要小,下次會和該節(jié)點的左節(jié)點比較,否則下一次和該節(jié)點的右節(jié)點比較,直到比較的節(jié)點為空為止,則將插入節(jié)點信息覆蓋該空節(jié)點,另外在整個插入過程中遇到比自己值小的節(jié)點會將其id記錄下來并且將其右子樹中的節(jié)點放入,每一次遇到比自己大的節(jié)點,該節(jié)點會將其id記錄在自己leftid集合中,函數(shù)最后將記錄的id集合返回.

    算法6.detect_relative(set1,set2-)

    nodeRelationship={}

    occur1,occur2={},{}

    for id in set1

    if occur1.get(id)==null

    occur1[id]=0

    occur1[id]+=1

    for id in set2

    if occur2.get(id )==null

    occur2[id]=0

    occur2[id]+=1

    for key,count in occur1

    if count==2

    continue

    if occur2.get(key)!=null

    occur2[id]=0

    nodeRelationship=0

    else

    nodeRelationship=1

    for key,count in occur2

    if count==0

    continue

    if count==1

    nodeRelationship[id]=0

    else

    nodeRelationship[id]=2

    return nodeRelationship

    在該函數(shù)的作用是將任務(wù)范圍的起始點和結(jié)束點在樹中返回的id集合進行分析,得出其與其他任務(wù)在x軸或y軸上的關(guān)系,set1代表的是起始點返回的id集合,set2代表的是結(jié)束點返回的id集合與set1的差集(即將出現(xiàn)在set1中的元素刪除),首先會分別記錄在兩個集合中id出現(xiàn)的次數(shù),如果在set1中出現(xiàn)只有一次而在set2中出現(xiàn)過則為相交關(guān)系用0代表,反之若在set2中沒有出現(xiàn)則為被包含關(guān)系用1代表,然后檢查在set2中節(jié)點出現(xiàn)次數(shù)如果只出現(xiàn)一次則為相交關(guān)系如果出現(xiàn)過兩次則為被包含關(guān)系用2代表,最后返回記錄節(jié)點關(guān)系的字典.

    算法7.deletenode

    if type(ui)==w

    for id in ui.include

    taskset.get(id).included.remove(id)

    else

    for id in ui.include

    taskset.get(id).included.remove(ui.id)

    deletenode(ui)

    for id in ui.included

    if id in taskset

    taskset.get(id).include.remove(id)

    for id in ui.intersect

    deleteAllraltionship(taskset.get(id))

    nodes=descompose(ui,taskset.get(id))

    deleteFromTree(taskset.get(id))

    for n in nodes

    update(n)

    snode=taskset.get(ui.id).snodeX

    enode=taskset.get(ui.id).enodeX

    deletenodefromTree(snode)

    deleternodefromTree(enode)

    snode=taskset.get(ui.id).snodeY

    enode=taskset.get(ui.id).enodeY

    deletenodefromTree(snode)

    deleternodefromTree(enode)

    該函數(shù)的目的是將已分配的任務(wù)和工人刪除其在算法中的所有信息,首先會判斷是工人還是任務(wù),如果刪除的工人,則將其所包含任務(wù)的被包含隊列里把其id刪除,如果刪除的任務(wù),首先將其id從其他任務(wù)的包含隊列中刪除,然后遍歷其相交隊列,將與其相交的任務(wù)去除相交部分,然后根據(jù)具體的相交情況,將剩余任務(wù)區(qū)域分解成若干個新的任務(wù)放入任務(wù)樹中,將被分解的任務(wù)從樹中刪除,最后將被其所包含的任務(wù)從樹中刪除,最后將該任務(wù)在任務(wù)樹中刪除.

    算法8.deletenodefromTree

    delnode=nodes.get(id)

    leftnodes,newleftnodess=delnode.leftid,null

    leftnode=delnode.left

    While delnode.right and delnode.right.right

    rnode=delnode.right

    newleftnodes=rnode.leftid

    rnode.leftid=leftnodes

    newleftnode=rnode.left

    rnode.left=leftnode

    leftnode=newleftnode

    leftnodes=newleftnodes

    delnode=delnode.right

    if delnode.right.left

    swap(delnode.right.left,delnode)

    deletenodefromTree(delnode)

    else

    delnode.right.leftid=leftnodes

    delnode.left=leftnode

    該函數(shù)用來將任務(wù)節(jié)點從任務(wù)樹中刪除,首先會檢查該節(jié)點的右節(jié)點是否存在如果不存在就尋找其左節(jié)點存在則由其左節(jié)點來代替其位置如果不存在則返回,如果右節(jié)點存在則檢查其節(jié)點的右節(jié)點是否存在,如果存在則將右節(jié)點信息覆蓋要刪除的節(jié)點將將要刪除節(jié)點的leftid賦給右節(jié)點,然后利用同樣的方法將原來右節(jié)點從樹中刪除一直遞歸直到不符合條件為止,若不存在就判斷該節(jié)點的左節(jié)點是否存在如果存在則將左節(jié)點來覆蓋刪除節(jié)點信息,然后將原來的左節(jié)點放入函數(shù)中遞歸,如果左節(jié)點不存在則將右節(jié)點替換要刪除的節(jié)點.

    4.5 實例分析

    首先用通常的分配算法,認為任務(wù)之間是相互獨立存在的,對任務(wù)進行分配,然后會使用改良算法對任務(wù)進行分配,由于改良算法是對OSSA算法中任務(wù)關(guān)系識別環(huán)節(jié)的改進,而在分配任務(wù)和工人報酬方面依然是沿用OSSA算法的方法,所以在實例分析中會在場景里放入先后出現(xiàn)的任務(wù),然后利用改進算法來識別任務(wù)之間的關(guān)系,來證明改良算法對于任務(wù)關(guān)系識別的可行性.

    實例說明假設(shè)有3個基于MCS完成的任務(wù)來自不同的機構(gòu)是采集三個不同區(qū)域的信息來做相關(guān)工作,為了方便計算將任務(wù)范圍簡單定義成一個矩形區(qū)域,所有任務(wù)的發(fā)生區(qū)域簡單定義為一個XY軸坐標組成的區(qū)域,任務(wù)范圍信息由矩形的左上角坐標和矩形的長寬構(gòu)成,任務(wù)信息由任務(wù)范圍信息和任務(wù)的報價組成,工人之間的采集工具(智能手機)可采集信息完全相同.

    在圖2中有t1,t2,t3三個任務(wù),它們是依次出現(xiàn)的,任務(wù)信息如下:t1(5,3,4,5,4)、t2(8,4,15,12,5)、t3(10,4,12,,6,6),任務(wù)出現(xiàn)順序是t2、t1、t3,t1和t3是采集區(qū)域的噪音信息而t2是采集WIFI信息強弱信息,在貪心算法和TGOA算法中認為三個任務(wù)之間是獨立的,會將三個任務(wù)分配給三個不同的人完成,但是可以從圖2看出t2和t3之間是存在范圍重疊的(即t2和t3之間存在任務(wù)冗余問題),而t2和t3的任務(wù)內(nèi)容雖然不同但是在任務(wù)是基于MCS技術(shù),是利用手機中的傳感器來收集區(qū)域的信息,所以在分配給t2任務(wù)的功能的工人其實在完成過程中也會經(jīng)過t3的任務(wù)區(qū)域,由于在前提假設(shè)中工人之間的手機可采集的信息是相同的,則完成t2任務(wù)的工人其實完全有能力完成t3任務(wù),由于任務(wù)冗余明明只有2個人完成的任務(wù)現(xiàn)在需要3個人完成.

    接下來會利用改良算法辨識任務(wù)之間的關(guān)系,證明改良算法對于任務(wù)識別結(jié)果是和使用OSSA算法一致的,另外通過例子來進一步理解改良算法的基本流程.

    一開始t2到達時,將其任務(wù)區(qū)域信息放入空間樹中,放入后的具體結(jié)果見圖3(a),由于是第一個到達任務(wù)所以沒有任何任務(wù)關(guān)系產(chǎn)生.

    圖3 各任務(wù)到達后樹的情況

    t1到達后將空間樹的信息放入其中,放入后詳細情況見圖3(b),在存放t1的初始點x坐標時,首先和t2的初始節(jié)點比較,發(fā)現(xiàn)小于節(jié)點的值所以將其放入頭節(jié)點的左子樹,并且頭節(jié)點會記錄放入其左子樹的任務(wù)id(即t2的id),由于沒有值小于t1初始節(jié)點的坐標值所以返回集合為空,而放入t1的結(jié)束點的坐標時,由于t2的初始節(jié)點的坐標小于其只,所以會返回一個t2的id,所以t1和t2在x軸投影上的關(guān)系是相交關(guān)系.同理在放入t1的初始點的y坐標時,由于沒有比其小的節(jié)點返回為空,而放入t1的結(jié)束點的坐標時會發(fā)現(xiàn)只有t2的初始節(jié)點的值比起小,所以會返回一個t2的id,所以t1和t2在y軸的投影關(guān)系是相交.通過綜合x,y軸的投影關(guān)系得出t1和t2是相交關(guān)系.

    t3到達后將其信息放入樹中,放入后的詳細情況見圖3(c),在存放t3初始點的x坐標時,由于t1的兩個節(jié)點的x坐標都小于它,而t2只有初始節(jié)點小于它,所以返回的是兩個t1的id和一個t2的id,同理在放入t3結(jié)束點的x坐標時會返回相同的結(jié)果在任務(wù)識別中由于t1的id出現(xiàn)了兩次在set1中,所以t3和t1在x軸投影上沒有關(guān)系,而set2是將結(jié)束點返回結(jié)合中刪除set1的元素,由于set1和set2相同所以set2為空,根據(jù)算法可以的出t3和t2是包含與被包含關(guān)系,當放入t3初始點的有坐標時,會發(fā)現(xiàn)t2的初始節(jié)點坐標和其相同而t1的初始節(jié)點坐標小于它所以會返回一個t1的id和一個t2的id,同理放入t3結(jié)束點y坐標時會返回相同結(jié)果,由于兩個點返回的結(jié)果一致所以set2為空,根據(jù)算法得出t3與t1和t2在y軸投影是包含與被包含關(guān)系,由于t1和t3在x軸投影沒有關(guān)系所以t1和t3是獨立關(guān)系,而t2和t3在x,y軸都是包含關(guān)系所以t2和t3是包含關(guān)系.

    從這個例子中可以了解改良算法對于任務(wù)關(guān)系識別上得出的結(jié)果與使用OSSA算法得出的結(jié)果是相同,在改良算法中,將三個任務(wù)放入了兩個任務(wù)樹中,在處理工程中發(fā)現(xiàn)了t2和t3在兩個樹中的坐標信息同時出現(xiàn)包含關(guān)系,則t2與t3的關(guān)系時包含關(guān)系,則會將t2和t3合成一個任務(wù),從而避免了任務(wù)冗余問題帶來的人力浪費的問題,另外改良算法在確認任務(wù)關(guān)系時,并沒有像OSSA算法中遍歷任務(wù)隊列中的任務(wù)確認任務(wù)之間的關(guān)系,而是利用任務(wù)樹坐標的情況迅速找到與其任務(wù)范圍相關(guān)的任務(wù)確認其任務(wù)關(guān)系.

    5 實驗分析

    本節(jié)首先會將OSSA算法與TGOA算法和貪心算法在可分配任務(wù)數(shù)量和任務(wù)成本上進行對比,證明改良算法所改良的OSSA算法的正確性和可行性.然后將改良算法與OSSA算法處理時間進行對比,比較兩種算法的執(zhí)行速度,證明改良算法對執(zhí)行效率的改良.實驗設(shè)備介紹:實驗將在win10系統(tǒng)下運行,實驗的程序是由python語言編寫,編譯平臺為pycharm,電腦cpu為 i7-6700,內(nèi)存為16g.

    實驗數(shù)據(jù):整個場景為300*300的平面假設(shè)有工人500人其報價在[1,10]之間隨機產(chǎn)生,工人出現(xiàn)地點在全圖范圍內(nèi)隨機產(chǎn)生,工人可接受范圍在[1,100]*[1,100]區(qū)間隨機產(chǎn)生,任務(wù)個數(shù)在800-1500之間每隔100取一次,任務(wù)地點隨機產(chǎn)生,任務(wù)范圍在[1-50]*[1-50]區(qū)間隨機產(chǎn)生.

    實驗1.將固定工作人員數(shù)量并逐漸增加了任務(wù)數(shù)量,以驗證OSSA使用任務(wù)優(yōu)化后的任務(wù)數(shù)量是否大于沒有任務(wù)優(yōu)化的算法數(shù)量.由于該算法針對的是任務(wù)較少的工作人員,因此任務(wù)數(shù)量將從超過工作人員數(shù)量開始.因此,實驗設(shè)計人員的數(shù)量逐漸從800增加到觀察完成任務(wù).在本實驗中,OSSA完成的任務(wù)數(shù)和沒有任務(wù)優(yōu)化的分配算法僅限于在給定數(shù)量的任務(wù)下每個工作人員的一個任務(wù).從圖4中可以看出,OSSA算法與其他兩種算法隨著任務(wù)數(shù)量的增加可分配任務(wù)數(shù)量之間的差距會逐漸增大,由于任務(wù)冗余會造成人力的浪費,在工人只能分配一次的情況下,由于對任務(wù)本身范圍的優(yōu)化使得最大可分配數(shù)量得到提高.

    圖4 任務(wù)完成數(shù)對比

    實驗2.當固定工人數(shù)量逐漸增加時,驗證OSSA算法的任務(wù)平均價格不會超過未使用任務(wù)優(yōu)化算法的任務(wù)平均價格.從圖5可以看出,任務(wù)的平均價格隨著任務(wù)數(shù)量的增加而逐漸減少.由于數(shù)據(jù)的隨機性,其他兩種算法上下波動,但從未低于OSSA算法的平均價格.當任務(wù)范圍內(nèi)的沖突數(shù)量不斷增加時,包含任務(wù)和交叉任務(wù)的改良任務(wù)的平均價格低于當時的單個任務(wù)價格.因此,當沖突次數(shù)逐漸增加時,已完成任務(wù)的平均價格將逐漸下降.

    圖5 任務(wù)平均價格對比

    通過上面兩組實驗可以證明OSSA算法在解決具有范圍性任務(wù)分配問題上的可行性和正確性.

    實驗3.將工人個數(shù)固定逐漸增加任務(wù)個數(shù),對比OSSA與改良算法之間在運行效率,從圖6中可以看出當OSSA算法與改良算法隨著任務(wù)個數(shù)的增多,改良算法與OSSA之間的運行時間逐漸增大,這是由于當任務(wù)個數(shù)增多時,OSSA算法在工人到達或任務(wù)到達檢查關(guān)系時,是將任務(wù)隊列或工人隊列中的信息拿出來一個個與到達工人或任務(wù)的區(qū)域信息對比,而在改良算法中當有工人或者任務(wù)到達時會將任務(wù)區(qū)域信息在任務(wù)樹中進行檢索查看是否有相關(guān)的信息,而不是與現(xiàn)有數(shù)據(jù)一個個對比獲得,所以當任務(wù)數(shù)量增大時改良算法與OSSA算法運行時間的差距會逐漸增大.

    圖6 OSSA與改良算法運行時間對比圖

    改良算法主要是改動了OSSA算法中任務(wù)關(guān)系識別過程,在時間上在OSSA算法中會將任務(wù)放入任務(wù)隊列中將任務(wù)與任務(wù)隊列中的其他任務(wù)放入任務(wù)信息中,在判斷任務(wù)之間的關(guān)系時,會遍歷整個任務(wù)隊列得出任務(wù)之間的關(guān)系所以時間復(fù)雜度是O(m*n),n為現(xiàn)有任務(wù)隊列中的任務(wù)個數(shù),m為與任務(wù)存在任務(wù)范圍冗余任務(wù)的個數(shù),而改良算法中會額外建立一個空間任務(wù)樹來存放任務(wù)范圍信息,利用樹形結(jié)構(gòu)可以迅速索引到與自己任務(wù)范圍相關(guān)的任務(wù),其時間復(fù)雜度為O(mlogn),改良算法通過增加空間任務(wù)樹在現(xiàn)有任務(wù)的任務(wù)范圍中建立索引,加快找到新到達任務(wù)與之在任務(wù)范圍有關(guān)系的任務(wù)判斷任務(wù)關(guān)系,因此具有更高的執(zhí)行效率.

    6 總結(jié)與展望

    在改良算法中針對OSSA算法在搜索任務(wù)關(guān)系過程進行優(yōu)化,使得識別任務(wù)關(guān)系不用和現(xiàn)有任務(wù)一一對比,而是將任務(wù)信息放入空間任務(wù)樹中,檢查代表任務(wù)區(qū)域的兩個節(jié)點與其他節(jié)點之間的關(guān)系來推斷出任務(wù)關(guān)系,從而加快了任務(wù)關(guān)系識別速度,通過對比實驗可以證明改良算法的識別速度在任務(wù)多的情況下由于原有算法,而且因為其他環(huán)節(jié)是與OSSA算法一致的,所以最后的分配結(jié)果是不會改變.

    改良算法由于是利用樹形結(jié)果進行優(yōu)化搜索,在一些極端情況下會出現(xiàn)線性搜索的結(jié)果,對于這種情況可能會在未來通過某種機制對這種情況進行改進.

    在算法中,假設(shè)了任務(wù)是同質(zhì)任務(wù)(即工人有能力完成所有類型的任務(wù)),但是在現(xiàn)實中由于人們智能手機的不同所能采集的感知信息是不同的,為了更加符合現(xiàn)實需求,接下來會主要去研究工人所能完成任務(wù)有差異的情況下如何去避免任務(wù)范圍冗余的問題.

    猜你喜歡
    工人分配節(jié)點
    為了不吃預(yù)制菜,打工人有多努力
    CM節(jié)點控制在船舶上的應(yīng)用
    Analysis of the characteristics of electronic equipment usage distance for common users
    基于AutoCAD的門窗節(jié)點圖快速構(gòu)建
    應(yīng)答器THR和TFFR分配及SIL等級探討
    遺產(chǎn)的分配
    一種分配十分不均的財富
    績效考核分配的實踐與思考
    抓住人才培養(yǎng)的關(guān)鍵節(jié)點
    調(diào)配工人
    讀寫算(下)(2015年11期)2015-11-07 07:21:09
    日韩精品中文字幕看吧| 国产精品免费一区二区三区在线| 少妇裸体淫交视频免费看高清 | 国产亚洲精品第一综合不卡| 两个人视频免费观看高清| 国产精品乱码一区二三区的特点| 亚洲第一电影网av| 韩国av在线不卡| 一区二区三区四区激情视频 | 色综合色国产| 亚洲精品乱码久久久v下载方式| 成人无遮挡网站| 国产高清视频在线观看网站| 一区二区三区高清视频在线| 成熟少妇高潮喷水视频| 在线免费观看的www视频| 国产爱豆传媒在线观看| 999久久久精品免费观看国产| 精品一区二区三区视频在线观看免费| 一进一出抽搐gif免费好疼| 嫩草影视91久久| 又粗又爽又猛毛片免费看| 久久人人精品亚洲av| 少妇被粗大猛烈的视频| 美女黄网站色视频| 精品久久国产蜜桃| 天美传媒精品一区二区| 夜夜爽天天搞| 真人一进一出gif抽搐免费| 美女 人体艺术 gogo| 欧美日韩亚洲国产一区二区在线观看| 亚洲最大成人中文| 午夜a级毛片| 免费观看人在逋| 日韩 亚洲 欧美在线| 真实男女啪啪啪动态图| 国产精品久久久久久久电影| 精品午夜福利在线看| 亚洲国产精品成人综合色| 成人二区视频| 久久久久久久久久成人| 深夜a级毛片| 黄色视频,在线免费观看| 亚洲成人久久爱视频| 十八禁国产超污无遮挡网站| 我的老师免费观看完整版| 国产精品国产三级国产av玫瑰| 久久天躁狠狠躁夜夜2o2o| 精品日产1卡2卡| 欧美日韩国产亚洲二区| 欧美激情在线99| 韩国av在线不卡| 午夜日韩欧美国产| 日日啪夜夜撸| 岛国在线免费视频观看| 美女高潮的动态| 级片在线观看| 亚洲18禁久久av| 在线观看一区二区三区| 久久久午夜欧美精品| 1000部很黄的大片| 大型黄色视频在线免费观看| 亚洲成人久久性| 亚洲精品一卡2卡三卡4卡5卡| 免费无遮挡裸体视频| 日本熟妇午夜| 精品一区二区三区视频在线观看免费| 老熟妇仑乱视频hdxx| 一区二区三区激情视频| 亚洲一区二区三区色噜噜| 两个人的视频大全免费| 欧美另类亚洲清纯唯美| 日韩 亚洲 欧美在线| 九九热线精品视视频播放| 十八禁网站免费在线| 免费av毛片视频| 久久人人精品亚洲av| 亚洲中文字幕日韩| 国产探花极品一区二区| 一个人看视频在线观看www免费| 天天一区二区日本电影三级| 国产黄片美女视频| 在线观看av片永久免费下载| 久久婷婷人人爽人人干人人爱| 免费不卡的大黄色大毛片视频在线观看 | 免费观看在线日韩| h日本视频在线播放| 欧美日本视频| 亚洲人成网站在线播放欧美日韩| 97人妻精品一区二区三区麻豆| 色综合站精品国产| 男女之事视频高清在线观看| 好男人在线观看高清免费视频| 久久精品国产亚洲av天美| 精品国内亚洲2022精品成人| av在线亚洲专区| 99视频精品全部免费 在线| 日日啪夜夜撸| 亚洲一级一片aⅴ在线观看| av在线天堂中文字幕| 97热精品久久久久久| 一级黄片播放器| 黄色丝袜av网址大全| 18+在线观看网站| 久久香蕉精品热| 亚洲成人精品中文字幕电影| 国产国拍精品亚洲av在线观看| 免费人成视频x8x8入口观看| 99热6这里只有精品| 九色国产91popny在线| 国语自产精品视频在线第100页| 精品人妻偷拍中文字幕| 悠悠久久av| 国产欧美日韩一区二区精品| 韩国av在线不卡| 美女 人体艺术 gogo| 少妇猛男粗大的猛烈进出视频 | 99久久九九国产精品国产免费| 欧美激情久久久久久爽电影| 亚洲真实伦在线观看| 日韩欧美三级三区| 少妇猛男粗大的猛烈进出视频 | 欧美人与善性xxx| 免费黄网站久久成人精品| 国产精品一区www在线观看 | 国产视频一区二区在线看| 国产极品精品免费视频能看的| 99久久九九国产精品国产免费| 欧美三级亚洲精品| 国产女主播在线喷水免费视频网站 | 一卡2卡三卡四卡精品乱码亚洲| 日韩一区二区视频免费看| 欧美日韩综合久久久久久 | 国产精品久久久久久av不卡| 韩国av在线不卡| 亚洲三级黄色毛片| 老熟妇乱子伦视频在线观看| 久久欧美精品欧美久久欧美| 国产精品,欧美在线| 91久久精品国产一区二区三区| 嫩草影院新地址| 一级黄片播放器| 成人欧美大片| 亚洲天堂国产精品一区在线| 校园人妻丝袜中文字幕| 在线免费观看不下载黄p国产 | 亚洲一级一片aⅴ在线观看| 欧美成人一区二区免费高清观看| 老司机福利观看| 成人永久免费在线观看视频| 亚洲美女黄片视频| 一级a爱片免费观看的视频| 欧美日韩精品成人综合77777| 国产黄a三级三级三级人| 男人的好看免费观看在线视频| 国产在视频线在精品| 在线a可以看的网站| 一进一出好大好爽视频| 久久久色成人| 午夜精品一区二区三区免费看| 在线a可以看的网站| 日韩欧美一区二区三区在线观看| 亚洲精品久久国产高清桃花| 内地一区二区视频在线| 搡老熟女国产l中国老女人| 神马国产精品三级电影在线观看| 国产亚洲91精品色在线| 美女xxoo啪啪120秒动态图| 嫩草影院入口| 美女高潮的动态| 国产精品人妻久久久久久| av.在线天堂| 男女做爰动态图高潮gif福利片| 天美传媒精品一区二区| 久久久久性生活片| 日日摸夜夜添夜夜添小说| 亚洲中文字幕日韩| 国产伦精品一区二区三区视频9| 制服丝袜大香蕉在线| 国产欧美日韩一区二区精品| 黄色丝袜av网址大全| 变态另类成人亚洲欧美熟女| 黄片wwwwww| 欧美在线一区亚洲| 欧美色欧美亚洲另类二区| 少妇高潮的动态图| 国产黄a三级三级三级人| 久久99热6这里只有精品| 国产精品98久久久久久宅男小说| 欧美性猛交黑人性爽| 亚洲精品乱码久久久v下载方式| 日本黄大片高清| 亚洲最大成人av| 亚洲男人的天堂狠狠| 国内精品美女久久久久久| 狂野欧美激情性xxxx在线观看| 午夜福利成人在线免费观看| 身体一侧抽搐| 欧美zozozo另类| 国产成人a区在线观看| 午夜免费成人在线视频| 一本一本综合久久| 国产成人一区二区在线| 亚州av有码| 成年免费大片在线观看| 九九在线视频观看精品| 欧美日韩乱码在线| 啦啦啦韩国在线观看视频| 搡老岳熟女国产| 18禁裸乳无遮挡免费网站照片| 日韩一区二区视频免费看| 国产真实伦视频高清在线观看 | 欧美日韩黄片免| 国产一区二区三区在线臀色熟女| 在线播放国产精品三级| 久久欧美精品欧美久久欧美| 国产精品久久久久久av不卡| av专区在线播放| 欧美日韩精品成人综合77777| 国产亚洲av嫩草精品影院| 91在线观看av| 长腿黑丝高跟| 内地一区二区视频在线| 免费看a级黄色片| 最后的刺客免费高清国语| 久久久久久久久中文| 97碰自拍视频| 亚洲国产欧洲综合997久久,| 毛片女人毛片| 国产 一区 欧美 日韩| 国产黄片美女视频| 久久欧美精品欧美久久欧美| 国国产精品蜜臀av免费| 国产成人aa在线观看| 啦啦啦观看免费观看视频高清| 精品一区二区三区视频在线观看免费| 99久久中文字幕三级久久日本| 色精品久久人妻99蜜桃| 亚洲不卡免费看| 黄色配什么色好看| 亚洲国产精品sss在线观看| 国产伦人伦偷精品视频| 啦啦啦啦在线视频资源| 国产伦在线观看视频一区| 欧美日本亚洲视频在线播放| 深爱激情五月婷婷| 一级av片app| 两性午夜刺激爽爽歪歪视频在线观看| 男女做爰动态图高潮gif福利片| 毛片女人毛片| 午夜日韩欧美国产| 色哟哟哟哟哟哟| 我要搜黄色片| 欧美一级a爱片免费观看看| 国产精品无大码| 在现免费观看毛片| 黄色日韩在线| 制服丝袜大香蕉在线| 国产成人a区在线观看| 国产 一区精品| 久久午夜亚洲精品久久| 欧美日韩瑟瑟在线播放| 国产精品三级大全| 日韩欧美国产在线观看| 久久精品夜夜夜夜夜久久蜜豆| 亚洲人成伊人成综合网2020| 悠悠久久av| 一个人观看的视频www高清免费观看| 国产精品野战在线观看| 丰满人妻一区二区三区视频av| 国产精品伦人一区二区| 此物有八面人人有两片| 禁无遮挡网站| 又黄又爽又免费观看的视频| 免费大片18禁| 色综合婷婷激情| 色吧在线观看| 内地一区二区视频在线| 亚洲精品成人久久久久久| 熟女人妻精品中文字幕| 人妻夜夜爽99麻豆av| 99在线视频只有这里精品首页| 天堂av国产一区二区熟女人妻| 国产伦精品一区二区三区视频9| 女人被狂操c到高潮| 中文字幕av成人在线电影| 成人无遮挡网站| 天堂网av新在线| 久久久午夜欧美精品| 欧美性感艳星| 99热这里只有精品一区| 国产视频一区二区在线看| 十八禁网站免费在线| videossex国产| 国产色婷婷99| 午夜福利在线在线| 校园人妻丝袜中文字幕| 亚洲图色成人| 国产精品一区二区性色av| 九九热线精品视视频播放| 老司机午夜福利在线观看视频| 波野结衣二区三区在线| 亚洲精品色激情综合| 成人性生交大片免费视频hd| 色5月婷婷丁香| 亚洲美女视频黄频| 成年人黄色毛片网站| 国产av麻豆久久久久久久| 久久人人精品亚洲av| 一区二区三区免费毛片| 欧美+日韩+精品| 国产一区二区激情短视频| 老师上课跳d突然被开到最大视频| 精品久久久久久,| 无人区码免费观看不卡| 国产高潮美女av| 国产成人影院久久av| 日本熟妇午夜| 亚洲精品色激情综合| 两人在一起打扑克的视频| 熟妇人妻久久中文字幕3abv| 如何舔出高潮| 久久久久久久久中文| 中文字幕av成人在线电影| 22中文网久久字幕| 综合色av麻豆| 国产av一区在线观看免费| 婷婷亚洲欧美| 他把我摸到了高潮在线观看| 非洲黑人性xxxx精品又粗又长| 久久久精品大字幕| 成人毛片a级毛片在线播放| 国产精品人妻久久久影院| 热99re8久久精品国产| 日韩欧美在线乱码| 亚洲一级一片aⅴ在线观看| 最后的刺客免费高清国语| 久久久久久久精品吃奶| 中文字幕精品亚洲无线码一区| 欧美最新免费一区二区三区| 国产高清激情床上av| 很黄的视频免费| 精品久久久噜噜| 国产老妇女一区| 免费大片18禁| 中亚洲国语对白在线视频| 观看免费一级毛片| 国产午夜福利久久久久久| 成人特级av手机在线观看| 午夜免费激情av| 亚洲久久久久久中文字幕| 成人美女网站在线观看视频| 亚洲精品一区av在线观看| 极品教师在线免费播放| x7x7x7水蜜桃| 一卡2卡三卡四卡精品乱码亚洲| 中文亚洲av片在线观看爽| 97超视频在线观看视频| 亚洲精华国产精华精| 日本在线视频免费播放| 国产一区二区三区视频了| 久久人人爽人人爽人人片va| 久久久国产成人精品二区| 搞女人的毛片| 日本 av在线| 午夜激情欧美在线| 欧美日韩国产亚洲二区| 一进一出好大好爽视频| 国产又黄又爽又无遮挡在线| av天堂在线播放| 啪啪无遮挡十八禁网站| 一级黄色大片毛片| 亚洲av一区综合| 国产伦一二天堂av在线观看| 国产精品日韩av在线免费观看| 国产伦精品一区二区三区四那| 黄色女人牲交| 老师上课跳d突然被开到最大视频| 人人妻,人人澡人人爽秒播| 国产成人aa在线观看| 欧美区成人在线视频| 97热精品久久久久久| 国产精品99久久久久久久久| 美女xxoo啪啪120秒动态图| 免费观看精品视频网站| 亚洲18禁久久av| 在线播放国产精品三级| 中文字幕av成人在线电影| 搡老妇女老女人老熟妇| 久久草成人影院| 天天一区二区日本电影三级| 国产av不卡久久| 国产美女午夜福利| 色综合婷婷激情| 大型黄色视频在线免费观看| АⅤ资源中文在线天堂| 久9热在线精品视频| a级一级毛片免费在线观看| 国产精品无大码| 日韩av在线大香蕉| 波多野结衣巨乳人妻| 免费看a级黄色片| 免费看美女性在线毛片视频| 男女那种视频在线观看| 不卡一级毛片| 亚洲av美国av| 亚洲欧美精品综合久久99| h日本视频在线播放| 男女做爰动态图高潮gif福利片| 欧美色欧美亚洲另类二区| 在线观看免费视频日本深夜| 一区二区三区免费毛片| 国产白丝娇喘喷水9色精品| 欧美性猛交╳xxx乱大交人| 高清在线国产一区| www日本黄色视频网| 久久天躁狠狠躁夜夜2o2o| 日本三级黄在线观看| 亚洲乱码一区二区免费版| 日本a在线网址| 成人综合一区亚洲| 国产高潮美女av| 哪里可以看免费的av片| 久久精品国产亚洲av天美| 亚洲第一区二区三区不卡| 久久人人爽人人爽人人片va| 在线看三级毛片| 又紧又爽又黄一区二区| 亚洲av第一区精品v没综合| 99热只有精品国产| 啦啦啦啦在线视频资源| 永久网站在线| 免费搜索国产男女视频| 欧美日韩国产亚洲二区| 亚洲精品粉嫩美女一区| 久久久久精品国产欧美久久久| 美女大奶头视频| 禁无遮挡网站| 国产黄片美女视频| 少妇被粗大猛烈的视频| 无人区码免费观看不卡| 又黄又爽又免费观看的视频| 俄罗斯特黄特色一大片| 精品日产1卡2卡| 99国产极品粉嫩在线观看| 免费人成视频x8x8入口观看| 欧美日本视频| 热99在线观看视频| 1024手机看黄色片| 久久香蕉精品热| 99国产精品一区二区蜜桃av| 日本成人三级电影网站| videossex国产| 日本黄大片高清| 最近在线观看免费完整版| 久久精品91蜜桃| 能在线免费观看的黄片| 亚洲av二区三区四区| 午夜福利视频1000在线观看| 一区二区三区激情视频| 国产成人av教育| 麻豆久久精品国产亚洲av| 非洲黑人性xxxx精品又粗又长| 色哟哟哟哟哟哟| 欧美色视频一区免费| 国产精品综合久久久久久久免费| 国产黄a三级三级三级人| 蜜桃久久精品国产亚洲av| 日本-黄色视频高清免费观看| 久久久精品欧美日韩精品| 亚洲欧美精品综合久久99| 免费观看在线日韩| av在线天堂中文字幕| 国产伦精品一区二区三区四那| 波多野结衣高清作品| 国产综合懂色| 国产精品免费一区二区三区在线| 国产大屁股一区二区在线视频| 香蕉av资源在线| 窝窝影院91人妻| 床上黄色一级片| 乱码一卡2卡4卡精品| 少妇的逼好多水| 免费观看精品视频网站| 超碰av人人做人人爽久久| 尾随美女入室| 欧美性感艳星| 一级黄色大片毛片| a在线观看视频网站| 此物有八面人人有两片| 在线免费观看不下载黄p国产 | 亚洲熟妇熟女久久| 午夜免费男女啪啪视频观看 | 欧美性猛交╳xxx乱大交人| 免费一级毛片在线播放高清视频| 女人十人毛片免费观看3o分钟| 内射极品少妇av片p| 极品教师在线免费播放| 欧美不卡视频在线免费观看| 99久久无色码亚洲精品果冻| 国内少妇人妻偷人精品xxx网站| 久久久色成人| 免费观看在线日韩| 最新在线观看一区二区三区| 亚洲精品一区av在线观看| 午夜激情欧美在线| 免费av不卡在线播放| 亚洲无线在线观看| 观看免费一级毛片| 91午夜精品亚洲一区二区三区 | 夜夜夜夜夜久久久久| 99视频精品全部免费 在线| 精品免费久久久久久久清纯| 亚洲三级黄色毛片| 搡老岳熟女国产| 老司机午夜福利在线观看视频| 嫩草影视91久久| 美女 人体艺术 gogo| 国产爱豆传媒在线观看| 内地一区二区视频在线| 琪琪午夜伦伦电影理论片6080| 天堂av国产一区二区熟女人妻| 精品免费久久久久久久清纯| 少妇熟女aⅴ在线视频| 最近在线观看免费完整版| 久久久久久九九精品二区国产| 成熟少妇高潮喷水视频| 亚洲av成人av| 亚洲在线自拍视频| 亚洲内射少妇av| 日韩欧美国产在线观看| 深爱激情五月婷婷| 99久久成人亚洲精品观看| 97超视频在线观看视频| 人妻丰满熟妇av一区二区三区| 18禁在线播放成人免费| 噜噜噜噜噜久久久久久91| 午夜免费男女啪啪视频观看 | 最好的美女福利视频网| 国产视频内射| 色吧在线观看| 亚洲最大成人手机在线| 欧美一区二区精品小视频在线| 国产亚洲欧美98| 少妇丰满av| 日本黄色片子视频| 久久亚洲精品不卡| 真人一进一出gif抽搐免费| 最好的美女福利视频网| 特大巨黑吊av在线直播| 欧美激情久久久久久爽电影| 校园人妻丝袜中文字幕| 欧美最黄视频在线播放免费| 欧美黑人欧美精品刺激| 天美传媒精品一区二区| 午夜日韩欧美国产| 丰满人妻一区二区三区视频av| 国产亚洲欧美98| 国产精品综合久久久久久久免费| 国产亚洲av嫩草精品影院| 99热这里只有精品一区| 天天一区二区日本电影三级| 欧美zozozo另类| 别揉我奶头 嗯啊视频| 亚洲va日本ⅴa欧美va伊人久久| 国产精品av视频在线免费观看| 日韩欧美精品免费久久| 尾随美女入室| 我要搜黄色片| 国产毛片a区久久久久| 51国产日韩欧美| 人人妻人人澡欧美一区二区| 亚洲欧美日韩高清在线视频| 久久久久久国产a免费观看| 精品人妻一区二区三区麻豆 | 国产精品伦人一区二区| 国产高清激情床上av| 91在线观看av| 99riav亚洲国产免费| 熟女电影av网| 久久久久性生活片| 久久久久久久久大av| 国产精品野战在线观看| av天堂中文字幕网| 亚洲黑人精品在线| 久久久精品大字幕| 欧美性猛交黑人性爽| 国产精品人妻久久久久久| 色综合站精品国产| 国产在线精品亚洲第一网站| 天美传媒精品一区二区| 成人高潮视频无遮挡免费网站| 毛片女人毛片| 久久亚洲精品不卡| 97热精品久久久久久| 简卡轻食公司| 啦啦啦韩国在线观看视频| 少妇高潮的动态图| 久久精品久久久久久噜噜老黄 | 很黄的视频免费| 午夜精品一区二区三区免费看| 99久久精品热视频| 99国产精品一区二区蜜桃av| 午夜免费男女啪啪视频观看 | 亚洲av日韩精品久久久久久密| 麻豆成人午夜福利视频| 国产女主播在线喷水免费视频网站 | 99久久精品国产国产毛片| 亚洲va日本ⅴa欧美va伊人久久| 听说在线观看完整版免费高清| 天堂av国产一区二区熟女人妻| 国产精品乱码一区二三区的特点| 动漫黄色视频在线观看| 亚洲国产精品sss在线观看| 乱系列少妇在线播放|