CN109522107A - 一种面向时空约束的任务分配方法及系统 - Google Patents
一种面向时空约束的任务分配方法及系统 Download PDFInfo
- Publication number
- CN109522107A CN109522107A CN201811254179.8A CN201811254179A CN109522107A CN 109522107 A CN109522107 A CN 109522107A CN 201811254179 A CN201811254179 A CN 201811254179A CN 109522107 A CN109522107 A CN 109522107A
- Authority
- CN
- China
- Prior art keywords
- task
- user
- time
- tasks
- cloud platform
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
- 238000000034 method Methods 0.000 title claims abstract description 33
- 239000011159 matrix material Substances 0.000 description 11
- 238000004891 communication Methods 0.000 description 3
- 230000006870 function Effects 0.000 description 3
- 230000008447 perception Effects 0.000 description 3
- 238000011161 development Methods 0.000 description 2
- 238000005516 engineering process Methods 0.000 description 2
- 230000036772 blood pressure Effects 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 238000010586 diagram Methods 0.000 description 1
- 230000007613 environmental effect Effects 0.000 description 1
- 238000005457 optimization Methods 0.000 description 1
- 238000011160 research Methods 0.000 description 1
- 230000008566 social perception Effects 0.000 description 1
- 230000002123 temporal effect Effects 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/48—Program initiating; Program switching, e.g. by interrupt
- G06F9/4806—Task transfer initiation or dispatching
- G06F9/4843—Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
- G06F9/4881—Scheduling strategies for dispatcher, e.g. round robin, multi-level priority queues
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Management, Administration, Business Operations System, And Electronic Commerce (AREA)
Abstract
一种通过多个移动终端采集数据的面向时空约束的任务分配方法及系统,该方法包括:任务请求者向云平台提交任务需求;多个用户通过各自的移动终端向云平台提交数据;云平台根据所述任务需求和各个移动终端提交上来的自身数据进行初步任务分配;云平台根据所述初步任务分配的结果,规划每个用户执行任务的顺序,把该顺序发送给用户;所述多个用户依据所规划的顺序,利用其携带的移动终端采集相应的数据,并回传所采集的数据给云平台;云平台将上述回传的数据传输给所述任务请求者。根据所述方法,即满足了任务的时空约束需求又通过计算为用户合理规划了所选择任务集合。
Description
技术领域
本公开属于信息技术领域,特别涉及一种通过多个移动终端采集数据的面向时空约束的任务分配方法及系统。
背景技术
近年来,随着移动计算和无线通信技术的快速发展,移动智能设备(如智能手机、平板电脑、智能手表等)得到广泛普及,其存储、计算、通信能力得到不断加强,并配备了众多智能传感器,比如摄像头、麦克风、重力仪、GPS、陀螺仪、温度传感器、血压传感器等等。这使得人们通过移动智能设备可以自动、实时地感知和收集周围环境信息,并通过无线通信模块将信息传输到服务器,如云平台,从而可以完成复杂的环境和社会感知任务。云平台需要根据任务请求者的任务需求,将各个任务分配给参与的众多用户,分配的依据是实现特定的优化目标,如最大化任务接收率等。
从目前的研究成果上看,当前任务分配方法只从单一角度考虑任务需求,如任务感知时间长度、任务的地理位置、任务类型和用户能力需求,尚未综合考虑任务的弹性时空约束,比如最早开始时间、最迟结束时间、感知时间长度、地理位置需求,以及用户的实时位置。事实上,随着移动群体感知应用的不断发展和深入,具有综合需求的复杂任务尤其是弹性时空约束的任务越来越受到人们的关注。一个弹性时空约束的任务是指一个感知任务需要用户在某个区域内在某段时间内完成,且对任务的地理区域、最早开始时间、最迟开始时间、感知时间长度均有规定。更为困难的是,一个用户往往被分配多个任务,而每个任务均有上述时间空间约束,因此需要用户对所有分配的任务的执行顺序进行规划,此时需要进一步考虑用户完成任务的代价以及用户移动所产生的代价,这进一步增加了问题的难度。
为了保证任务的时空约束得到满足,同时也为了能够合理规划分配给用户的各任务的执行顺序,设计一种通过多个移动终端采集数据的面向时空约束的任务分配方法是十分必要的。
发明内容
鉴于此,本公开提供了一种通过多个移动终端采集数据的面向时空约束的任务分配方法,包括如下步骤:
S100:任务请求者向云平台提交任务需求,包括任务位置、最早开始时间、最迟结束时间、感知时间长度以及任务预算;
S200:多个用户通过各自的移动终端向云平台提交各自的位置以及最晚工作时间;
S300:云平台根据所述任务需求和各个移动终端提交上来的自身数据进行初步任务分配;
S400:云平台根据所述初步任务分配的结果,规划每个用户执行任务的顺序,把该顺序发送给用户;
S500:所述多个用户依据所规划的顺序,利用其携带的移动终端采集相应的数据,并回传所采集的数据给云平台;
S600:云平台将上述回传的数据传输给所述任务请求者。
本公开还提供了一种通过多个移动终端采集数据的面向时空约束的任务分配系统,包括任务请求者、云平台和多个用户,其中,
所述任务请求者向所述云平台提交任务需求,包括任务位置、最早开始时间、最迟结束时间、感知时间长度以及任务预算;
所述多个用户通过各自的移动终端向云平台提交各自的位置及最晚工作时间;
所述云平台根据所述任务需求和各个移动终端提交上来的自身数据进行初步任务分配;
云平台根据所述初步任务分配的结果,规划每个用户执行任务的顺序,把该顺序发送给用户;
所述多个用户依据所规划的顺序,利用其携带的移动终端采集相应的数据,并回传所采集的数据给云平台;
云平台将上述回传的数据传输给所述任务请求者。
通过上述技术方案,本公开的方法和系统能够通过计算保证任务的时空约束得到满足,进一步扩展了方法的应用范围。同时,本公开的方法和系统相对于传统方法和系统,增加了为用户进行任务规划的步骤,通过对任务集合进行规划,使得任务的执行更加合理,提高了效率。
附图说明
图1是本公开一个实施例中所提供的一种通过多个移动终端采集数据的面向时空约束的任务分配方法的流程示意图;
图2是本公开一个实施例中所提供的一种通过多个移动终端采集数据的面向时空约束的任务分配系统的结构示意图。
具体实施方式
参见图1,在一个实施例中,本公开提供了一种通过多个移动终端采集数据的面向时空约束的任务分配方法,包括如下步骤:
S100:任务请求者向云平台提交任务需求,包括任务位置、最早开始时间、最迟结束时间、感知时间长度以及任务预算;
S200:多个用户通过各自的移动终端向云平台提交各自的位置以及最晚工作时间;
S300:云平台根据所述任务需求和各个移动终端提交上来的自身数据进行初步任务分配;
S400:云平台根据所述初步任务分配的结果,规划每个用户执行任务的顺序,把该顺序发送给用户;
S500:所述多个用户依据所规划的顺序,利用其携带的移动终端采集相应的数据,并回传所采集的数据给云平台;
S600:云平台将上述回传的数据传输给所述任务请求者。
就该实施例而言,即保证了任务的时空约束得到满足,又通过计算为用户选择可执行的任务集合并规划所选择任务集合,从而扩大了本方法的应用范围。
在另一个实施例中,所述步骤S100还进一步包括如下步骤:
所述任务需求用集合S={s1,s2,...,si,...,sn}表示,其中si是第i个任务,n为一个有限的自然数,表示任务si的位置,表示任务si的最早开始时间,表示任务si的最迟结束时间,表示任务si的感知时间长度, 表示任务si的预算。
就该实施例而言,将任务需求采用集合的形式进行表示有助于后面分配方法的建模。
在另一个实施例中,所述步骤S200还进一步包括如下步骤:
所述多个用户以集合U={u1,u2,...,uj...,uk}表示,其中,uj是第j位用户,k为一个有限的自然数,表示用户uj的位置,表示用户的最晚工作时间。
就该实施例而言,将多个用户采用集合的形式进行表示有助于后面分配方法的建模。
在另一个实施例中,所述步骤S300还进一步包括如下步骤:
所述初步任务分配按照以下公式计算:
其中,cij表示用户uj执行任务si的代价,dij表示用户uj移动到任务si所要求的位置而产生的代价,
所述多个用户以集合U={u1,u2,...,uj...,uk}表示,其中,uj是第j位用户,k为一个有限的自然数,表示用户uj的位置,表示用户的最晚工作时间;
所述任务需求用集合S={s1,s2,...,si,...,sn}表示,其中si是第i个任务,n为一个有限的自然数,表示任务si的位置,表示任务si的最早开始时间,表示任务si的最迟结束时间,表示任务si的感知时间长度, 表示任务si的预算;
xij=1表示将任务si分配给用户uj,xij=0则表示不将任务si分配给用户uj;
表示用户uj到达每个任务si(si∈S)的时间。
目标函数的目标是最大化收益,即为所有任务的预算之和与所有任务分配所产生代价之和的差值。一个任务分配(用户uj被分配执行任务si)所产生的代价包括两部分:用户uj执行任务si的代价cij,用户uj移动到任务si所要求的位置而产生的代价dij,
条件1表示一个任务只能由一个用户完成;条件2中xij=1表示将任务si分配给用户uj,反之,xij=0则表示不将任务si分配给用户uj;条件3表示分配给用户uj的任务最迟结束时间不超过该用户的最晚工作时间;条件4表示用户uj到任务si的时间不超过该任务的最晚开始时间;条件5表示用户执行任务的代价和用户移动到任务所在位置产生的代价之和不超过该任务的预算。
用户uj执行任务si的收益记为wij,它的公式表示:wij=bi-(cij+dij)。
表示用户uj的位置坐标,表示任务si的位置坐标,两者之间的空间距离表示:用户uj从它的位置移动到任务si位置所带来的移动代价dij可以用以下函数定义:
dij=f(sij)。
就该实施例而言,通过建模来实现任务分配方法。
在另一个实施例中,所述步骤S300还进一步包括如下步骤:
步骤301:令集合S′表示待分配的任务集合,初始时S′=S;令U′表示可以选用的用户集合,初始时U′=U,集合U+表示执行任务的用户集合,初始用户uj(uj∈U′)分配的任务集合表示为初始
步骤302:按照公式计算所有任务si(si∈S′)的最晚开始时间,找一个最晚开始时间最小的任务si,从用户集合U′找出执行任务si总收益最大的用户uj;
步骤303:判断用户uj执行任务si是否满足三个约束条件:
公式(1)表示uj执行任务si的总代价不超过任务si的预算;公式(2)表示任务si的最迟结束时间不超过用户uj的最晚工作时间公式(3)表示用户uj到任务si的时间不超过该任务的最晚开始时间
若以上三个约束条件均成立,就转向步骤304;若是其中一个条件不满足在集合S′删除任务si,则转向步骤302;
步骤304:云平台将任务si分配给用户uj,即令xij=1,在集合S′删除任务si,更新用户uj的已分配任务集合如果集合U+不存在用户uj将其添加到集合U+;如果集合S′不为空,则转向步骤302;否则转向步骤S400。
就该实施例而言,给出了一种模型的求解方式,即从寻找开始时间最小的任务,找出执行该任务的总收益最大的用户,将满足条件的任务分配给该用户,循环了所有的任务之后,初步任务分配即完成。
在另一个实施例中,所述步骤S400还进一步包括如下步骤:
步骤401:按照公式计算用户uj到任务集合中每个任务的距离sij,其中是其分配的任务集合;令Tj表示用户uj所分配任务的执行顺序,Tj可用一个有序线性表描述,初始为空;表示用户uj的位置坐标,表示任务si的位置坐标;
步骤402:选择距离用户uj最短的任务,记为si,将任务si插入到线性表Tj中,并更新用户uj的已分配任务集合,为
步骤403:选择下一个任务使其中任务si是线性表Tj的最后一个元素,
其中公式(4)中的sij指的是用户uj到线性表Tj中第一个元素si的距离;指的是任务si和任务之间的时空距离,w1,w2为权重系数,满足w1+w2=1,w1≥0,w2≥0,取w1=0.5,w2=0.5,指的是任务si和任务之间的空间距离,指的是任务si和任务之间的时间距离;
若满足公式(4)和公式(5),任务是任务si到用户uj的剩余分配任务的距离最短的任务,将任务插入到线性表Tj中最后一个元素之后,并更新用户uj的已分配任务集合,为如果不为空,找下一个任务到线性表Tj中最后一个元素的时空距离最短;否则放弃任务转到步骤403;
步骤404:求得从用户uj到达任务集合中所有任务的路径规划,该路径规划是一个依次按时空距离递增的序列;删除U+中的用户uj,若U+不为空集,转向步骤401。
就该实施例而言,给出了一种任务执行顺序的规划方法,即依次按时空距离递增的顺序规划任务的执行顺序,通过该种规划方法,可以为用户选择可执行的任务集合并合理规划所选择任务集合的顺序。
在另一个实施例中,所述步骤S403中的时间距离的计算如下:
一个用户依次服务任务si和任务任务si和任务的时间窗分别为且满足否则任务过期;当两个时间窗口有重叠,则认为这两个任务在相同的时间段内被服务,其时间窗距离为0,如果不重叠,则时间窗距离为后一时间窗的开始时间减去前一时间窗的结束时间,计算公式如下:
其中,为后一任务的结束时间,为前一任务si的开始时间。
在另一个实施例中,所述用户uj到达每个任务si(si∈S)的时间定义如下:
其中,v表示所有用户uj∈U的速度,sij表示用户到任务si的空间距离。
在另一个实施例中,用户执行任务的代价和任务的感知时间长度有关。
就该实施例而言,通常,任务的感知时间长度越大,代价也就越大,一种简单的策略是定义用户执行任务的代价为任务的感知时间长度的函数:
用户uj到达每个任务si(si∈S)的时间可以通过以下公式定义:
其中v表示所有用户uj∈U的速度,sij表示用户到任务si的空间距离。
在另一个实施例中,参见图2,公开了一种通过多个移动终端采集数据的面向时空约束的任务分配系统,包括任务请求者、云平台和多个用户,其中,
所述任务请求者向所述云平台提交任务需求,包括任务位置、最早开始时间、最迟结束时间、感知时间长度以及任务预算;
所述多个用户通过各自的移动终端向云平台提交各自的位置及最晚工作时间;
所述云平台根据所述任务需求和各个移动终端提交上来的自身数据进行初步任务分配;
云平台根据所述初步任务分配的结果,规划每个用户执行任务的顺序,把该顺序发送给用户;
所述多个用户依据所规划的顺序,利用其携带的移动终端采集相应的数据,并回传所采集的数据给云平台;
云平台将上述回传的数据传输给所述任务请求者。
就该实施例而言,该系统即保证了任务的时空约束得到满足,又通过计算为用户选择可执行的任务集合并规划所选择任务集合,进而可以提高用户的参与积极性。
在另一个实施例中,
步骤S100:任务请求者提交的任务集合表示为S={s1,s2,s3,s4},任务的属性如下表所示:
任务 | 位置 | 最早开始时间 | 最迟结束时间 | 感知时间长度 | 预算 |
s<sub>1</sub> | (2,6) | 1 | 5 | 2 | 10 |
s<sub>2</sub> | (3,5) | 6 | 13 | 5 | 20 |
s<sub>3</sub> | (4,6) | 2 | 10 | 6 | 10 |
s<sub>4</sub> | (5,8) | 11 | 20 | 8 | 20 |
步骤S200:收集到的用户集合为U={u1,u2},u1=<(3,4),18>,u2=<(5,6),20>,其中u1的第一个属性(3,4)表示用户的位置,18表示该用户的最晚工作时间。
步骤S300:按照公式(cij+dij)计算出用户集合中各个用户u1,u2执行任务s1,s2,s3,s4的总代价,其中cij指的是用户执行任务的代价,本实施例中dij指的是用户uj从它的位置移动到任务si位置所带来的移动代价,本实施例中dij=f(sij)=0.5×sij,其中(xi,yi),(xj,yj)分别为任务si和用户uj的位置。
计算出的用户集合中各个用户u1,u2执行任务s1,s2,s3,s4的总代价的值用矩阵(a)表示:
按照公式wij=bi-(cij+dij)计算用户uj执行任务si的收益记为wij,则
用户集合各个用户u1,u2执行任务s1,s2,s3,s4的收益的结果用矩阵(b)表示:
步骤301:令集合S′表示待分配的任务集合,初始时S′=S。令U′表示可以选用的用户集合,初始时U′=U,集合U+表示执行任务的用户集合,初始用户uj(uj∈U′)分配的任务集合表示为初始
步骤302:按照公式计算所有任务si(si∈S′)的最晚开始时间,计算出所有任务s1,s2,s3,s4的最晚开始时间分别为3,8,4,12,首先为最晚开始时间最小的任务s1选择用户,从用户集合U′中执行所有任务收益的矩阵中可以得出用户u1执行任务s1的收益大于用户u2执行任务s1的收益,所以考虑用户u1执行任务s1。
步骤303:判断用户u1执行任务s1是否满足三个约束条件:可得即2.12≤10;即5≤18,即2.24≤3,约束条件成立,转向步骤304。
步骤304:云平台将任务s1分配给用户u1,即令x11=1,在集合S′删除任务s1,将用户u1添加到集合U+,更新用户u1的已分配任务集合集合S′不为空,则转向步骤302。
步骤302:按照公式计算所有任务si(si∈S′)的最晚开始时间,计算任务s2,s3,s4的最晚开始时间分别为8,4,12,为最晚开始时间最小的任务s3选择用户,从用户集合U′中执行所有任务收益的矩阵中可以得出用户u2执行任务s3的收益大于用户u1执行任务s3的收益,所以考虑u2执行任务s3。
步骤303:判断u2执行任务s3是否满足三个约束条件:可得即3.5≤10;即10≤20,即1≤4,约束条件成立,转向步骤304。
步骤304:云平台将任务s3分配给用户u2,即令x32=1,在集合S′删除任务s3,将用户u2添加到集合U+,更新用户u2的已分配任务集合集合S′不为空,则转向步骤302。
在步骤302:按照公式计算所有任务si(si∈S′)的最晚开始时间,计算所有任务s2,s4的最晚开始时间分别为8,12,为最晚开始时间最小的任务s2选择用户,从用户集合U′中执行所有任务收益的矩阵中可以得出用户u1执行任务s2的收益大于用户u2执行任务s2的收益,所以考虑用户u1执行任务s2。
在步骤303:判断用户u1执行任务s2是否满足三个约束条件:可得即2.5≤20;即13≤18,即1≤9,约束条件成立,转向步骤304。用户u1执行任务s2满足三个约束条件。
步骤304:云平台可以将任务s2分配给用户u1,即令x21=1,在集合S′删除任务s2,因为集合U+存在用户u1,更新用户u1的已分配任务集合集合S′不为空,则转向步骤302。
在步骤302:按照公式计算所有任务si(si∈S′)的最晚开始时间,计算任务s4的最晚开始时间分别为12,为最后一个任务s4选择用户,从用户集合U′中执行所有任务收益的矩阵可以得出用户u2执行任务s4的收益大于用户u1执行任务s4的收益,所以考虑用户u2执行任务s4。
在步骤303:判断用户u2执行任务s4是否满足三个约束条件:可得即5≤20;即20≤20,即2≤12,约束条件成立,转向步骤304。
步骤304:云平台可以将任务s4分配给用户u2,即令x42=1,在集合S′删除任务s4,因为集合U+存在用户u2,更新用户u2的已分配任务集合集合S′为空,则转向步骤S400。
所有任务分配结束后,U+={u1,u2},用户u1的已分配任务集合记为 用户u2的已分配任务集合记为
步骤S400云平台为每一个已分配任务的用户规划任务执行顺序,进一步包括如下步骤。
步骤401:按照公式计算用户u1到任务集合中每个任务的距离sij,其中 是其分配的任务集合,求得s11=2.24,s21=1。令T1表示用户u1所分配任务的执行顺序,T1可用一个有序线性表描述,初始为空。
步骤402:选择距离用户u1最短的任务为s2,将任务s2插入到T1中,并更新用户u1的已分配任务集合,为
步骤403:因为用户u1任务列表只有两个元素,任务s2是当前T1的最后一个元素,所以考虑选择用户u1任务集合中的最后一个任务s1。
因为任务s1的时间窗为[1,5],任务s2时间窗为[6,13],在计算过程中发现用户u1执行任务s2结束后在执行任务s1时,因为任务s2的开始时间大于任务s1的开始时间,所以任务s1已经过期。所以用户u1必须放弃任务s1,u1的所分配任务的执行顺序的线性表T1=(s2)。
步骤401:按照公式计算用户u2到任务集合中每个任务的距离sij,其中为求得s32=1,s42=2。令T2表示用户u2所分配任务的执行顺序,T2可用一个线性表描述,初始为空。
步骤402:选择距离用户u2最短的任务为s3,将任务s3插入到T2中,并更新用户u2的已分配任务集合,为
步骤403:因为用户u2任务列表只有两个元素,任务s3是当前T2的最后一个元素,所以考虑选择用户u2任务集合中的最后一个任务s4。
按照空间距离计算得出s34=2.24,s32=1,按照时间距离公式计算得出T34=1,w1s34+w2T34=1.62,
计算公式(4)得出,(1+1.62)/1=2.62,因为2.62≤20(用户u2的最晚工作时间),计算公式(5)得出,1.62/1=1.62≤4(任务的最晚开始时间)。
任务s4满足上述这两个条件,将任务s4插入到线性表T2中最后一个元素(也就是任务s3)之后,并更新用户u2的已分配任务集合,为u2的所分配任务的执行顺序的线性表T2=(s3,s4)。
步骤404:所有用户路径规划结束后,u1的所分配任务的执行顺序的线性表T1=(s2);u2的所分配任务的执行顺序的线性表T2=(s3,s4)。
S500:u1根据T1=(s2),u2根据T2=(s3,s4),利用其携带的移动终端采集相应的数据,并回传所采集的数据给云平台;
S600:云平台将上述回传的数据传输给所述任务请求者。
在另一个实例中:
步骤S100:任务请求者提交的任务集合表示为S={s1,s2,s3,s4,s5},任务的属性如下表所示:
任务 | 位置 | 最早开始时间 | 最迟结束时间 | 感知时间长度 | 预算 |
s<sub>1</sub> | (2,3) | 3 | 7 | 3 | 10 |
s<sub>2</sub> | (3,6) | 2 | 5 | 2 | 20 |
s<sub>3</sub> | (2,5) | 6 | 11 | 5 | 10 |
s<sub>4</sub> | (4,6) | 14 | 22 | 14 | 20 |
s<sub>5</sub> | (4,8) | 4 | 13 | 6 | 10 |
步骤S200:收集到的用户集合为U={u1,u2},u1=<(3,4),25>,u2=<(4,5),30>,其中u1的第一个属性(3,4)表示用户的位置,25表示该用户的最晚工作时间。
步骤S300:按照公式(cij+dij)计算出用户集合中各个用户u1,u2执行任务s1,s2,s3,s4,s5的总代价,其中cij指的是用户执行任务的代价,本实施例中dij指的是用户uj从它的位置移动到任务si位置所带来的移动代价,本实施例中dij=f(sij)=0.5×sij,其中(xi,yi),(xj,yj)分别为任务si和用户uj的位置。
计算出的用户集合中各个用户u1,u2执行任务s1,s2,s3,s4,s5的总代价的值用矩阵(a)表示:
按照公式wij=bi-(cij+dij)计算用户uj执行任务si的收益记为wij,则
用户集合各个用户u1,u2执行任务s1,s2,s3,s4,s5的收益的结果用矩阵(b)表示:
步骤301:令集合S′表示待分配的任务集合,初始时S′=S。令U′表示可以选用的用户集合,初始时U′=U,集合U+表示执行任务的用户集合,初始用户uj(uj∈U′)分配的任务集合表示为初始
步骤302:按照计算所有任务si(si∈S′)的最晚开始时间,计算所有任务s1,s2,s3,s4,s5的最晚开始时间分别为4,3,6,8,7,首先为最晚开始时间最小的任务s2选择用户,从用户集合U′中执行所有任务收益的矩阵中可以得出用户u1执行任务s2的收益大于用户u2执行任务s2的收益。所以先考虑用户u1执行任务s2。
步骤303:判断用户u1执行任务s2是否满足三个约束条件:可得即2.91≤20;即5≤25,即1≤3,约束条件成立,转向步骤304。
步骤304:云平台可以将任务s2分配给用户u1,即令x21=1,在集合S′删除任务s2,将用户u1添加到集合U+,更新用户u1的已分配任务集合集合S′不为空,则转向步骤302。
步骤302:按照计算所有任务si(si∈S′)的最晚开始时间,计算所有任务s1,s3,s4,s5的最晚开始时间分别为4,6,8,7,为最晚开始时间最小的任务s1选择用户,从用户集合U′中执行所有任务收益的矩阵中可以得出用户u1执行任务s1的收益大于用户u2执行任务s1的收益,所以考虑用户u1执行任务s1。
步骤303:判断用户u1执行任务s1是否满足三个约束条件:可得即2≤10;即7≤25,即1.41≤4,约束条件成立,转向步骤304。
步骤304:云平台可以将任务s1分配给用户u1,即令x11=1,在集合S′删除任务s1,因为集合U+存在用户u1,更新用户u1的已分配任务集合集合S′不为空,则转向步骤302。
步骤302:按照计算所有任务si(si∈S′)的最晚开始时间,计算所有任务s3,s4,s5的最晚开始时间分别为6,8,7,为最晚开始时间最小的任务s3选择用户,从用户集合U′中执行所有任务收益的矩阵中可以得出用户u1执行任务s3的收益大于用户u2执行任务s3的收益。所以先考虑用户u1执行任务s3。
步骤303:判断用户u1执行任务s3是否满足三个约束条件:可得即3.9l≤10;即11≤25,即1.41≤6,约束条件成立,转向步骤304。
步骤304:云平台可以将任务s3分配给用户u1,即令x31=1,在集合S′删除任务s3,因为集合U+存在用户u1,更新用户u1的已分配任务集合集合S′不为空,则转向步骤302。
步骤302:按照计算所有任务si(si∈S′)的最晚开始时间,计算任务s4,s5的最晚开始时间分别为8,7,为最晚开始时间最小的任务s5选择用户,从用户集合U′中执行所有任务收益的矩阵中可以得出用户u2执行任务s5的收益大于用户u1执行任务s5的收益。所以考虑用户u2完成任务s5。
步骤303:判断用户u2执行任务s5是否满足三个约束条件:可得即6≤10;即16≤30,即3≤7,约束条件成立,转向步骤304。
步骤304:云平台可以将任务s5分配给用户u2,即令x52=1,在集合S′删除任务s5,将用户u2添加到集合U+,更新用户u2的已分配任务集合集合S′不空,则转向步骤302。
步骤302:按照计算所有任务si(si∈S′)的最晚开始时间,计算任务s4的最晚开始时间分别为8,为最后一个任务s4选择用户,从用户集合U′中执行所有任务收益的矩阵可以得出用户u2执行任务s4的收益大于用户u1执行任务s4的收益,所以考虑用户u2完成任务s4。
步骤303:判断用户u2执行任务s4是否满足三个约束条件:可得即8≤20;即22≤30,即1≤8,约束条件成立,转向步骤304。
步骤304:云平台可以将任务s4分配给用户u2,即令x42=1,在集合S′删除任务s4,因为集合U+存在用户u2,更新用户u1的已分配任务集合则转向步骤S400。
所有任务分配结束后,U+={u1,u2},用户u1的任务集合记为 用户u2的任务集合记为
在步骤S400云平台为每一个已分配任务的用户规划任务执行顺序,进一步包括如下步骤。
步骤401:按照公式计算用户u1到任务集合中每个任务的距离sij,其中为是其分配的任务集合,求得s11=1.41,s21=1,s31=1.41。令线性表T1表示用户u1所分配任务的执行顺序,初始为空。
步骤402:选择距离用户u1最短的任务为s2,将任务s2插入到线性表T1中,并更新用户u1的已分配任务集合,为
步骤403:因为用户u1任务列表有三个元素,任务s2是当前线性表T1的最后一个元素,选择下一个任务使得
按照空间距离计算得出s21=3.16,s23=1.41,按照时间距离公式计算得出T21=0,T23=l,w1s21+w2T21=1.58,w1s23+w2T23=1.21,因为1.58>1.21,所以考虑任务s3作为线性表T1中的任务s2的下一个任务,
如果
计算得出任务s3满足上面两个公式,所以将任务s3插入到线性表T1中最后一个元素(也就是任务s2)之后,并更新用户u1的已分配任务集合,为
考虑任务s3之后的下一个任务,因为中仅剩下任务s1,所以直接计算w1s31+w2T31,但是发现用户u1执行任务s3结束后在执行任务s1时,任务s1已经过期。所以用户u1必须放弃掉任务s1,u1的所分配任务的执行顺序的线性表T1=(S2,S3)。
步骤401:按照公式如计算用户u2到任务集合中每个任务的距离sij,其中为是其分配的任务集合,求得s42=1,s52=3。令线性表T2表示用户u2所分配任务的执行顺序,初始为空。
步骤402:选择距离用户u2最短的任务为s4,将任务s4插入到线性表T2中,并更新用户u2的已分配任务集合,为
步骤403:因为用户u2任务列表只有两个元素,任务s4是当前线性表T2的最后一个元素,考虑任务s5,计算w1s45+w2T45,但是发现用户u2执行任务s4结束后在执行任务s5时,任务s5已经过期。所以用户u2必须放弃掉任务s5,u2的所分配任务的执行顺序的线性表T2=(s4)。
步骤404:所有用户路径规划结束后,u1的所分配任务的执行顺序的线性表T1=(s2,s3);u2的所分配任务的执行顺序的线性表T2=(s4)。
S500:u1根据T1=(s2,s3),u2根据T2=(s4),利用其携带的移动终端采集相应的数据,并回传所采集的数据给云平台;
S600:云平台将上述回传的数据传输给所述任务请求者。
以上对本公开进行了详细介绍,本文中应用了具体个例对本公开的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本公开的方法及其核心思想;同时,对于本领域技术人员,依据本公开的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本公开的限制。
Claims (10)
1.一种通过多个移动终端采集数据的面向时空约束的任务分配方法,包括如下步骤:
S100:任务请求者向云平台提交任务需求,包括任务位置、最早开始时间、最迟结束时间、感知时间长度以及任务预算;
S200:多个用户通过各自的移动终端向云平台提交各自的位置以及最晚工作时间;
S300:云平台根据所述任务需求和各个移动终端提交上来的自身数据进行初步任务分配;
S400:云平台根据所述初步任务分配的结果,规划每个用户执行任务的顺序,把该顺序发送给用户;
S500:所述多个用户依据所规划的顺序,利用其携带的移动终端采集相应的数据,并回传所采集的数据给云平台;
S600:云平台将上述回传的数据传输给所述任务请求者。
2.根据权利要求1的方法,优选的,所述步骤S100还进一步包括如下步骤:
所述任务需求用集合S={s1,s2,...,si,...,sn}表示,其中si是第i个任务,n为一个有限的自然数,表示任务si的位置,表示任务si的最早开始时间,表示任务si的最迟结束时间,表示任务si的感知时间长度, 表示任务si的预算。
3.根据权利要求1的方法,所述步骤S200还进一步包括如下步骤:
所述多个用户以集合U={u1,u2,...,uj...,uk}表示,其中,uj是第j位用户,k为一个有限的自然数,表示用户uj的位置,表示用户的最晚工作时间。
4.根据权利要求1的方法,所述步骤S300还进一步包括如下步骤:
所述初步任务分配按照以下公式计算:
s.t.1.
2.
3.
4.
5.
其中,cij表示用户uj执行任务si的代价,dij表示用户uj移动到任务si所要求的位置而产生的代价,
所述多个用户以集合U={u1,u2,...,uj...,uk}表示,其中,uj是第j位用户,k为一个有限的自然数,表示用户uj的位置,表示用户的最晚工作时间;
所述任务需求用集合S={s1,s2,...,si,...,sn}表示,其中si是第i个任务,n为一个有限的自然数,表示任务si的位置,表示任务si的最早开始时间,表示任务si的最迟结束时间,表示任务si的感知时间长度, 表示任务si的预算;
xij=1表示将任务si分配给用户uj,xij=0则表示不将任务si分配给用户uj;
表示用户uj到达每个任务si(si∈S)的时间。
5.根据权利要求4的方法,所述步骤S300还进一步包括如下步骤:
步骤301:令集合S′表示待分配的任务集合,初始时S′=S;令U′表示可以选用的用户集合,初始时U′=U,集合U+表示执行任务的用户集合,初始用户uj(uj∈U′)分配的任务集合表示为初始
步骤302:按照公式计算所有任务si(si∈S′)的最晚开始时间,找一个最晚开始时间最小的任务si,从用户集合U′找出执行任务si总收益最大的用户uj;
步骤303:判断用户uj执行任务si是否满足三个约束条件:
公式(1)表示uj执行任务si的总代价不超过任务si的预算;公式(2)表示任务si的最迟结束时间不超过用户uj的最晚工作时间公式(3)表示用户uj到任务si的时间不超过该任务的最晚开始时间
若以上三个约束条件均成立,就转向步骤304;若是其中一个条件不满足在集合S′删除任务si,则转向步骤302;
步骤304:云平台将任务si分配给用户uj,即令xij=1,在集合S′删除任务si,更新用户uj的已分配任务集合如果集合U+不存在用户uj将其添加到集合U+;如果集合S′不为空,则转向步骤302;否则转向步骤S400。
6.根据权利要求1的方法,所述步骤S400还进一步包括如下步骤:
步骤401:按照公式计算用户uj到任务集合中每个任务的距离sij,其中是其分配的任务集合;令Tj表示用户uj所分配任务的执行顺序,Tj可用一个有序线性表描述,初始为空;表示用户uj的位置坐标,表示任务si的位置坐标;
集合U+表示执行任务的用户集合;
所述多个用户以集合U={u1,u2,...,uj...,uk}表示,其中,uj是第j位用户,k为一个有限的自然数,表示用户uj的位置,表示用户的最晚工作时间;
所述任务需求用集合S={s1,s2,...,si,...,sn}表示,其中si是第i个任务,n为一个有限的自然数,表示任务si的位置,表示任务si的最早开始时间,表示任务si的最迟结束时间,表示任务si的感知时间长度, 表示任务si的预算;
步骤402:选择距离用户uj最短的任务,记为si,将任务si插入到线性表Tj中,并更新用户uj的已分配任务集合,为
步骤403:选择下一个任务使其中任务si是线性表Tj的最后一个元素,
其中公式(4)中的sij指的是用户uj到线性表Tj中第一个元素si的距离;指的是任务si和任务之间的时空距离,w1,w2为权重系数,满足w1+w2=1,w1≥0,w2≥0,取w1=0.5,w2=0.5,指的是任务si和任务之间的空间距离,指的是任务si和任务之间的时间距离;
若满足公式(4)和公式(5),任务是任务si到用户uj的剩余分配任务的距离最短的任务,将任务插入到线性表Tj中最后一个元素之后,并更新用户uj的已分配任务集合,为如果不为空,找下一个任务到线性表Tj中最后一个元素的时空距离最短;否则放弃任务转到步骤403;
步骤404:求得从用户uj到达任务集合中所有任务的路径规划,该路径规划是一个依次按时空距离递增的序列;删除U+中的用户uj,若U+不为空集,转向步骤401。
7.根据权利要求6的方法,所述步骤S403中的时间距离的计算如下:
一个用户依次服务任务si和任务任务si和任务的时间窗分别为且满足否则任务过期;当两个时间窗口有重叠,则认为这两个任务在相同的时间段内被服务,其时间窗距离为0,如果不重叠,则时间窗距离为后一时间窗的开始时间减去前一时间窗的结束时间,计算公式如下:
其中,为后一任务的结束时间,为前一任务si的开始时间。
8.根据权利要求4的方法,所述用户uj到达每个任务si(si∈S)的时间定义如下:
其中,v表示所有用户uj∈U的速度,sij表示用户到任务si的空间距离。
9.根据权利要求4的方法,用户执行任务的代价和任务的感知时间长度有关。
10.一种通过多个移动终端采集数据的面向时空约束的任务分配系统,包括任务请求者、云平台和多个用户,其中,
所述任务请求者向所述云平台提交任务需求,包括任务位置、最早开始时间、最迟结束时间、感知时间长度以及任务预算;
所述多个用户通过各自的移动终端向云平台提交各自的位置及最晚工作时间;
所述云平台根据所述任务需求和各个移动终端提交上来的自身数据进行初步任务分配;
云平台根据所述初步任务分配的结果,规划每个用户执行任务的顺序,把该顺序发送给用户;
所述多个用户依据所规划的顺序,利用其携带的移动终端采集相应的数据,并回传所采集的数据给云平台;
云平台将上述回传的数据传输给所述任务请求者。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811254179.8A CN109522107B (zh) | 2018-10-25 | 2018-10-25 | 一种面向时空约束的任务分配方法及系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811254179.8A CN109522107B (zh) | 2018-10-25 | 2018-10-25 | 一种面向时空约束的任务分配方法及系统 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN109522107A true CN109522107A (zh) | 2019-03-26 |
CN109522107B CN109522107B (zh) | 2020-11-20 |
Family
ID=65773063
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201811254179.8A Active CN109522107B (zh) | 2018-10-25 | 2018-10-25 | 一种面向时空约束的任务分配方法及系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN109522107B (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110401718A (zh) * | 2019-07-29 | 2019-11-01 | 腾讯科技(深圳)有限公司 | 基于空间众包的任务分配方法、装置、服务器及存储介质 |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1967488A (zh) * | 2005-11-15 | 2007-05-23 | 索尼计算机娱乐公司 | 任务分配方法和任务分配装置 |
CN104778076A (zh) * | 2015-04-27 | 2015-07-15 | 东南大学 | 一种云服务工作流调度方法 |
CN105183543A (zh) * | 2015-08-28 | 2015-12-23 | 中国科学技术大学苏州研究院 | 一种基于移动社交网络的群智计算在线任务分配方法 |
CN106339924A (zh) * | 2016-08-29 | 2017-01-18 | 东南大学 | 一种基于工作流的云计算资源混合租赁方法 |
CN106557891A (zh) * | 2016-12-05 | 2017-04-05 | 苏州大学 | 基于用户可靠性的众包任务分配方法 |
CN108683743A (zh) * | 2018-05-21 | 2018-10-19 | 陕西师范大学 | 一种通过多个移动终端采集数据的任务分配方法 |
-
2018
- 2018-10-25 CN CN201811254179.8A patent/CN109522107B/zh active Active
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1967488A (zh) * | 2005-11-15 | 2007-05-23 | 索尼计算机娱乐公司 | 任务分配方法和任务分配装置 |
CN104778076A (zh) * | 2015-04-27 | 2015-07-15 | 东南大学 | 一种云服务工作流调度方法 |
CN105183543A (zh) * | 2015-08-28 | 2015-12-23 | 中国科学技术大学苏州研究院 | 一种基于移动社交网络的群智计算在线任务分配方法 |
CN106339924A (zh) * | 2016-08-29 | 2017-01-18 | 东南大学 | 一种基于工作流的云计算资源混合租赁方法 |
CN106557891A (zh) * | 2016-12-05 | 2017-04-05 | 苏州大学 | 基于用户可靠性的众包任务分配方法 |
CN108683743A (zh) * | 2018-05-21 | 2018-10-19 | 陕西师范大学 | 一种通过多个移动终端采集数据的任务分配方法 |
Non-Patent Citations (2)
Title |
---|
李洋等: "基于树分解的空间众包最优任务分配算法", 《软件学报》 * |
童咏昕等: "时空众包数据管理技术研究综述", 《软件学报》 * |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110401718A (zh) * | 2019-07-29 | 2019-11-01 | 腾讯科技(深圳)有限公司 | 基于空间众包的任务分配方法、装置、服务器及存储介质 |
Also Published As
Publication number | Publication date |
---|---|
CN109522107B (zh) | 2020-11-20 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US9870531B2 (en) | Analysis system using brokers that access information sources | |
CN112328914A (zh) | 一种基于时空众包工人行为预测的任务分配方法 | |
CN110390415A (zh) | 一种基于用户出行大数据进行出行方式推荐的方法及系统 | |
CN113657718B (zh) | 一种多机器人动态联盟任务分配方法及相关装置 | |
CN116976652A (zh) | 一种基于时空众包的多目标任务分配方法 | |
CN108255141A (zh) | 一种装配调度信息生成方法及系统 | |
CN115629885B (zh) | 群智感知中基于局部预算共享的多源任务分配方法及系统 | |
CN109522107B (zh) | 一种面向时空约束的任务分配方法及系统 | |
CN118171361A (zh) | 一种基于cim和ar的城市规划方法 | |
US11501247B1 (en) | Optimizing delivery routing using machine learning systems | |
CN109086976B (zh) | 一种面向群智感知的任务分配方法 | |
CN108683743A (zh) | 一种通过多个移动终端采集数据的任务分配方法 | |
CN109101329B (zh) | 通过多个移动终端采集数据的细粒度任务分配方法及系统 | |
CN109978353B (zh) | 一种面向位置可调整用户的大数据群智感知激励方法 | |
CN108924196B (zh) | 工业互联网绿色能源管理系统 | |
CN118500397A (zh) | 无人农机的作业路径确定方法、装置、设备及存储介质 | |
US9754328B2 (en) | Social activity planning system and method | |
CN115392058A (zh) | 工业物联网中基于演化博弈构建数字孪生模型的方法 | |
JP6852193B2 (ja) | ソーシャルネットワークにおける中心頂点の確定方法、装置、デバイスおよび記憶媒体 | |
CN115018428A (zh) | 考虑预测不确定性的配送调度方法、装置及可存储介质 | |
CN112308318A (zh) | 一种排队时间预测方法、装置、设备及存储介质 | |
JP5053783B2 (ja) | 情報配信装置 | |
Chen et al. | Onboard Edge Computing: Optimizing Resource Allocation and Offloading in Mobile Scenarios | |
CN113591017B (zh) | 室内导航的方法、系统、装置及可读存储介质 | |
JP7494695B2 (ja) | 情報処理装置、情報処理方法、およびプログラム |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant | ||
TR01 | Transfer of patent right | ||
TR01 | Transfer of patent right |
Effective date of registration: 20220915 Address after: Room 884, Room 406, No. 1 Yichuang Street, Huangpu District, Guangzhou City, Guangdong Province (Sino-Singapore Guangzhou Knowledge City) 510000 Patentee after: Guangzhou Aladdin Intelligent Technology Co.,Ltd. Address before: 710000 east side of Chang'an South Road, changyanbao office, Yanta District, Xi'an City, Shaanxi Province Patentee before: Shaanxi Normal University |