任务安排方法、装置、电子设备及存储介质与流程

文档序号:17444687发布日期:2019-04-17 05:22阅读:146来源:国知局
任务安排方法、装置、电子设备及存储介质与流程

本公开涉及软件数据技术领域,具体为一种任务安排方法、装置、电子设备及计算机可读存储介质。



背景技术:

目前很多企业或组织(例如学校、医院)在一段时间内(例如每天、每周或每月)有固定任务(例如打水、清洁、值班、上课等)需要处理,通常安排员工轮流处理该任务。一般来说,企业或组织会设置任务安排表,以安排员工何时处理哪些任务。

通常情况下,秉着公平合理的原则,任务安排表为每个员工安排的工作量大概相同。相关技术中,可采用运筹学中的整数规划问题来确定任务安排表,原理是先将问题转化为一系列的约束等式或不等式,再采用求解器搜索可行的搜索空间,直到找到一个可行任务安排表或确认无任务安排表。如果冲突需要自行分析冲突原因,遇到较复杂的规则组合常常需要大量时间调试规则,任务安排时所需要时间的大幅增加违背了最初“减少安排时间”的初衷。

但由于各种限制条件(例如各任务的限制条件或各员工有各自的限制条件)的因素,如何快速地确定可行的最优任务安排表是一个急需解决的问题。



技术实现要素:

本公开的目的在于提供一种任务安排方法、装置、电子设备及可存储介质,能够快速地确定可行的最优任务安排表。

第一方面,本公开提供一种任务安排方法,包括:

依据待安排任务的任务属性,获取符合多元正态分布的λ个样本任务安排表yj,针对每一根据样本任务安排表yj,根据均值m、步长σ和该样本任务安排表yj,确定与该样本任务安排表yj对应的初始任务安排表xj;其中,j=1,2,……λ,λ为正整数;

对设定的任务限制条件,依据每一初始任务安排表xj中所有人在所有任务列表中不满足特定任务模型的次数,确定每一初始任务安排表xj的损失值costj;

依据所述损失值costj,并更新所述步长σ、更新所述多元正态分布的协方差矩阵c、所述均值m;

若更新后步长σ处于预设范围,并且损失值costj最小,则将此时初始任务安排表作为目标任务安排表。

可选的,所述对设定的任务限制条件,依据每一初始任务安排表xj中所有人在所有任务列表中不满足特定任务模型的次数,确定每一初始任务安排表xj的损失值costj,包括:

定义一个期望安排的任务列表pass_shift,一个不期望安排的任务列表fail_shift,

pass_shift=[s0,s1,……,sk],sk∈[0,1……,s-1];

fail_shift=[s0,s1,……,sl],sl∈[0,1……,s-1];

其中,sk表示第k个任务,sl表示第l个任务,s表示总安排任务类型;

计算损失costj,其值为所有人在所有任务列表中不满足特定任务模型的次数。

可选的,所述对设定的任务限制条件,依据每一初始任务安排表xj中所有人在所有任务列表中不满足特定任务模型的次数,确定每一初始任务安排表xj的损失值costj,之前包括:

通过设定非目标员工和/或非目标日期的条件,进行第一步筛查;

其中,所述非目标员工包括:性别、工号、熟练度或职位类别;所述非目标日期包括:指定某几天、指定某个时间段、指定周几、指定工作日或指定节假日。

可选的,还包括:

依据所述损失值costj,更新所述多元正态分布的协方差矩阵c、所述均值m;

若更新后步长σ未处于预设范围、或步长σ的更新次数小于预设次数,则依据更新后步长σ、更新后协方差矩阵c和更新后均值m,重复执行获取符合多元正态分布的λ个样本任务安排表yj、确定与该样本任务安排表yj对应的初始任务安排表xj、确定每一初始任务安排表xj的损失值costj、依据所述损失值costj,并更新所述步长σ,直至所述σ处于预设范围、或所述步长σ的更新次数等于预设次数。

可选的,所述依据所述损失值costj,更新所述步长σ,包括:

在多个初始任务安排表x的损失值costj中,选择μ个的最小损失值cost,并确定各最小损失值cost对应的初始任务安排表x的权重wi,其中,i=1,2,……μ,小于或等于j;

依据损失值排序后第i个元素对应的样本任务安排表yi以及所述权重wi,确定第一参数yw,并根据所述第一参数yw、与维度n相关的第一维度参数cσ、与任务安排表数量相关的参数μw以及协方差矩阵c,确定更新步长的更新参数pσ;依据所述与任务安排表数量相关的参数μw和维度n,确定第二参数dσ,并依据所述第二参数dσ和更新步长的更新参数pσ,更新步长σ。

可选的,所述依据所述损失值costj,更新所述协方差矩阵c,包括:

依据与维度n相关的第二维度参数cc、与任务安排表数量相关的参数μw和第一参数yw,确定更新协方差矩阵的更新参数pc;

依据所述第一参数yw以及更新协方差矩阵的更新参数pc,更新所述协方差矩阵c。

可选的,所述依据所述损失值costj,更新所述均值m,包括:

在多个初始任务安排表x的损失值cost中,选择μ个的最小损失值cost,并确定各最小损失值cost对应的初始任务安排表x的权重wi;

依据损失值排序后第i个元素对应的样本任务安排表yi以及所述权重wi,确定第一参数yw,并根据所述第一参数yw、依据损失值排序后第i个元素对应的初始任务安排表xi以及所述权重wi,更新所述均值m。

可选的,所述获取符合多元正态分布的λ个样本任务安排表yj,针对每一根据样本任务安排表yj,根据均值m、步长σ和该样本任务安排表yj,确定与该样本任务安排表yj对应的初始任务安排表xj,包括:

利用以下公式,确定样本任务安排表yj:

yj~n(0,c);

利用以下公式,确定与该样本任务安排表yj对应的初始任务安排表xj:

xj=m+σyj;

其中,c为多元正态分布的协方差矩阵,m∈rn,σ∈r+。

可选的,所述针对设定的任务限制条件,依据每一初始任务安排表xj中所有人在所有任务列表中不满足特定任务模型的次数,确定每一初始任务安排表xj的损失值costj,包括:

针对每一初始任务安排表xj,依据该初始任务安排表xj中不满足各任务限制条件的次数,确定该初始任务安排表xj对应于各任务限制条件的损失值;

获取各任务限制条件对应的权重,并依据该初始任务安排表xj对应于每一任务限制条件的损失值和该任务限制条件对应的权重,确定该初始任务安排表xj的损失值costj。

第二方面,本公开提供一种任务安排装置,包括:

第一确定单元,用于依据待安排任务的任务属性,获取符合多元正态分布的λ个样本任务安排表yj,针对每一根据样本任务安排表yj,根据均值m、步长σ和该样本任务安排表yj,确定与该样本任务安排表yj对应的初始任务安排表xj;其中,j=1,2,……λ,λ为正整数;

损失值确定单元,用于针对设定的任务限制条件,依据每一初始任务安排表xj中所有人在所有任务列表中不满足特定任务模型的次数,确定每一初始任务安排表xj的损失值costj;

更新单元,依据所述损失值costj,并更新所述步长σ、更新所述多元正态分布的协方差矩阵c、所述均值m;

第二确定单元,用于在更新后步长σ处于预设范围的情况下,将所述多个初始任务安排表xj作为目标任务安排表。

第三方面,本发明提供一种电子设备,包括处理器和存储器,所述存储器存储有能够被所述处理器执行的计算机程序指令,所述处理器执行所述计算机程序指令时,实现如上任一所述的方法步骤。

第四方面,本发明提供一种计算机可读存储介质,存储有计算机程序指令,所述计算机程序指令在被处理器调用和执行时实现如上任一所述的方法步骤。

与现有技术相比,本公开实施例的有益效果是:

本公开实施例旨在减少任务安排所需要的整体时间,提供更公平合理的任务安排表。此外,在多条件约束下,很可能并不存在一个可行的任务安排表,本公开实施例会在有可行的任务安排表的条件下,尽量去找到最大满足各条件的最优任务安排表,在不存在可行的任务安排表时,通过最优化原理逐步逼近最优任务安排表、以提供一个可行的任务安排表。针对有任务指定问题的列表,在进化策略算法的基础上描述此类规则,可对特定规则下的任务安排进行建模及优化,并且利用缓存加速技术提高了评估速度。

附图说明

为了更清楚地说明本公开实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作一简单地介绍,显而易见地,下面描述中的附图是本公开的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。

图1为本公开一实施例提供的任务安排方法流程示意图;

图2为本公开又一实施例提供的任务安排方法流程示意图;

图3为本公开一实施例提供的任务安排装置的结构示意图;

图4为本公开另一实施例提供的任务安排装置的结构示意图;

图5为本公开实施例提供的电子设备的结构示意图。

具体实施方式

为使本公开实施例的目的、技术方案和优点更加清楚,下面将结合本公开实施例中的附图,对本公开实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本公开一部分实施例,而不是全部的实施例。基于本公开中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本公开保护的范围。

在本公开实施例中使用的术语是仅仅出于描述特定实施例的目的,而非旨在限制本公开。在本公开实施例和所附权利要求书中所使用的单数形式的“一种”、“所述”和“该”也旨在包括多数形式,除非上下文清楚地表示其他含义,“多种”一般包含至少两种,但是不排除包含至少一种的情况。

应当理解,本文中使用的术语“和/或”仅仅是一种描述关联对象的关联关系,表示可以存在三种关系,例如,a和/或b,可以表示:单独存在a,同时存在a和b,单独存在b这三种情况。另外,本文中字符“/”,一般表示前后关联对象是一种“或”的关系。

应当理解,尽管在本公开实施例中可能采用术语第一、第二、第三等来描述技术名称,但这些技术名称不应限于这些术语。这些术语仅用来将技术名称区分开。例如,在不脱离本公开实施例范围的情况下,第一校验签名也可以被称为第二校验签名,类似地,第二校验签名也可以被称为第一校验签名。

取决于语境,如在此所使用的词语“如果”、“若”可以被解释成为“在……时”或“当……时”或“响应于确定”或“响应于检测”。类似地,取决于语境,短语“如果确定”或“如果检测(陈述的条件或事件)”可以被解释成为“当确定时”或“响应于确定”或“当检测(陈述的条件或事件)时”或“响应于检测(陈述的条件或事件)”。

还需要说明的是,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的商品或者系统不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种商品或者系统所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的商品或者系统中还存在另外的相同要素。

另外,下述各方法实施例中的步骤时序仅为一种举例,而非严格限定。

发明人在研究本公开的过程中,发现现有技术存在问题:目前很多企业或组织会设置任务安排表来安排需要处理的固定任务,秉着公平合理的原则,任务安排表为每个员工安排的工作量大概相同。而采用运筹学的整数规划来确定任务安排表的方案,若遇到较复杂的规则组合常常需要大量时间调试规则,任务安排时所需要时间的大幅增加违背了最初“减少安排时间”的初衷。因此,由于各种限制条件的因素,如何快速地确定可行的任务安排表是一个急需解决的问题。

有鉴于此,发明人提出了一种思想,旨在减少任务安排所需要的整体时间,提供更公平合理的任务安排表。此外,在多条件约束下,很可能并不存在一个可行的任务安排表,本公开实施例会在有可行的任务安排表的条件下,尽量去找到最大满足各条件的最优任务安排表,在不存在可行的任务安排表时,通过最优化原理逐步逼近最优任务安排表、以提供一个可行的任务安排表。本公开实施例在多条件约束下,能够快速、尽可能地确定出可行的任务安排表。

请参阅图1,本公开实施例提供一种任务安排方法,具体包括如下步骤。

步骤101,依据待安排任务的任务属性,获取符合多元正态分布的λ个样本任务安排表yj,针对每一根据样本任务安排表yj,根据均值m、步长σ和该样本任务安排表yj,确定与该样本任务安排表yj对应的初始任务安排表xj。其中,j=1,2,……λ,λ为正整数。

在本实施例中,任务属性可以是对实际任务进行描述时的各种参数。

示例性的,假设实际任务是在一段时间(如天数d)内,为总人数n安排工作次数,其中,该天数d内每人的总工作数次为s,那么将该实际任务转化为数学表示为任务安排表x,其搜索空间大小为sn×d,x为n×d长度的编码,即维度n=n×d,每个编码为实数,不为整数时自动取整,取值范围在[0,s-1]之间。其中,参数n、d、s则可以认为是任务属性。

一个例子中,假设实际任务为2天安排2名员工的2种任务(第一任务、第二任务),两种任务的编码分别为0第一任务、1第二任务。那么求解出的任务安排表x将被表示为(1,0,0,1),其中第一个编码表示第一个员工第一天的任务(1第二任务),第二个编码表示第一个员工第二天的任务(0第一任务),第三个编码表示第二个员工第一天的任务(0第一任务),第四个编码表示第二个员工第二天的任务(1第二任务)。

在一个例子中,yj符合的多元正态分布可以是:yj~n(0,c),其中,c为协方差矩阵,初始值为单位阵。

依据上述每一样本任务安排表yj,根据均值m、步长σ,确定与每一样本任务安排表yj对应的初始任务安排表xj,具体可以为:xj=m+σyj,其中,m∈rn,σ∈r+,m初始值为0。

步骤102,针对设定的任务限制条件,依据每一初始任务安排表xj中所有人在所有任务列表中不满足特定任务模型的次数,确定每一初始任务安排表xj的损失值costj。

每个解x中的元素是实数,对各元素向下取整,可以映射到各列表上,每个元素代表了某个人的排表情况。

将x从向量表示为矩阵,每行为总人数n,每列为总天数d。

首先,排除掉一部分明显不符合要求的解,例如过滤非目标员工,对于不属于目标类别的员工,不进行后续计算。员工类别包含:性别、工号、熟练度、职位类别,再例如过滤非目标日期,对于不属于目标范围的日期,不进行后续计算。日期范围可表示为:指定某几天、指定某个时间段、指定周几、指定工作日、指定节假日等。

其次,计算损失值,具体为,定义一个期望安排的任务列表pass_shift,一个不期望安排的任务列表fail_shift,

pass_shift=[s0,s1,……,sk],sk∈[0,1……,s-1];

fail_shift=[s0,s1,……,sl],sl∈[0,1……,s-1];

其中,sk表示第k个任务,sl表示第l个任务,s表示总安排任务类型。

计算损失值cost,其值为所有人在所有任务列表中不满足特定任务模型的次数,其中

其中,n为自然数,i∈[1,2,……,n]。

对于以上操作,对每个员工的规则损失emp_costi缓存,当输入一个员工的所有班次均相同,则不需要重复计算emp_costi。

emp_costi=cache(pass_shift,fail_shift,xi)

在一个示例中,步骤102具体通过如下过程实现。

步骤1021,针对每一初始任务安排表xj,依据每一初始任务安排表xj中所有人在所有任务列表中不满足特定任务模型的次数,确定该初始任务安排表xj对应于各任务限制条件的损失值。

例如,假设初始任务安排表xj中不满足任务限制条件1的次数为2,不满足任务限制条件2的次数为1,则确定该初始任务安排表对应于任务限制条件1的损失值为2,对应于任务限制条件2的损失值为1。

步骤1022,获取各任务限制条件对应的权重,并依据该初始任务安排表xj对应于每一任务限制条件的损失值和该任务限制条件对应的权重,确定该初始任务安排表xj的损失值costj。

在本实施例中,可以为各任务限制条件设置权重,以此来表示各任务限制条件的重要程度,可以理解的是,该权重可以自定义,并依据实际情况调整。

在一个示例中,针对每一初始任务安排表xj,可以将各任务限制条件的损失值和该任务限制条件对应的权重相乘,并将各乘积相加,获得该初始任务安排表xj的损失值costj。

例如,假设初始任务安排表xj中不满足任务限制条件1的次数为2,不满足任务限制条件2的次数为1,则确定该初始任务安排表xj对应于任务限制条件1的损失值为2,对应于任务限制条件2的损失值为1。其中,任务限制条件1的权重为0.3,任务限制条件2的权重为0.7,则该初始任务安排表xj的损失值costj为0.3*2+0.7*1=1.3。

步骤103,依据所述损失值costj,并更新所述步长σ、更新所述多元正态分布的协方差矩阵c、所述均值m。

步骤1031,在多个初始任务安排表x的损失值cost中,选择μ个的最小损失值cosi,并确定各最小损失值cost对应的初始任务安排表x的权重wi,其中,i=1,2,……μ,μ小于或等于j。

在本实施例中,对于λ个初始任务安排表x,有λ个损失值cost,可以从损失值cost中,选择μ个的最小损失值cost,可选的,可以根据损失值cost从小到大排序,在λ个样本中选择前μ个损失值cost,即μ个数值最小的损失值cost。

μ个最小损失值cost对应的初始任务安排表x的损失值较小,说明针对多个任务限制条件,μ个初始任务安排表x的满足度较高,是μ个最优秀可行的任务安排表。可选的,μ=λ/2。

在本示例中,对于每个初始任务安排表x构造了一个权重wi,该权重wi能够度量一个初始任务安排表x的重要性,其中,权重wi满足以下公式:

步骤1032,利用以下公式,确定更新步长的更新参数pσ:

其中,cσ为与维度n相关的参数,可选的,cσ可以设为4/n;μw为与任务安排表数量相关的参数,c为多元正态分布的协方差矩阵,yi:λ为根据损失值排序后第个元素对应的yi。在一个示例中,pσ初始值是元素全为0的向量。

步骤1033,利用以下公式,更新步长σ:

步骤104,若更新后步长σ处于预设范围,则将所述多个初始任务安排表x作为目标任务安排表。

在本实施例中,每经过一次更新,步长σ就衰减,当衰减至预设范围时,则可以认为依据更新后步长σ获得的多个初始任务安排表xj已经最大限度地逼近最优方案了。可选的,预设范围为σ小于或等于s/8。应当理解的是,预设范围可以自定义,本方案并不作特别限定。

本公开实施例可以在多任务限制条件约束下,在有可行的任务安排表的条件下,尽量去找到最大满足各条件的最优任务安排表,在不存在可行的任务安排表时,通过最优化原理逐步逼近最优任务安排表、以提供一个可行的任务安排表。本公开实施例能够快速、尽可能地确定出可行的任务安排表。

请参阅图2,本公开实施例提供一种任务安排方法,具体包括如下步骤。

步骤201,依据待安排任务的任务属性,获取符合多元正态分布的λ个样本任务安排表yj,针对每一根据样本任务安排表yj,根据均值m、步长σ和该样本任务安排表yj,确定与该样本任务安排表yj对应的初始任务安排表x。该步骤可对应参阅步骤101,在此不再赘述。

步骤202,针对设定的任务限制条件,依据每一初始任务安排表xj中所有人在所有任务列表中不满足特定任务模型的次数,确定每一初始任务安排表x的损失值cost。该步骤可对应参阅步骤102,在此不再赘述。

步骤203,依据所述损失值cost,更新所述步长σ、所述多元正态分布的协方差矩阵c、所述均值m。

其中,步骤203中更新步长的过程该步骤可对应参阅步骤104,在此不再赘述。针对更新多元正态分布的协方差矩阵c、均值m的过程如下所述。

一、依据所述损失值costj,更新所述协方差矩阵c,包括:

利用以下公式,确定更新协方差矩阵的更新参数pc:

其中,cc为与维度n相关的参数,可选的,cc可以为4/n。在一个示例中,pc初始值是元素全为0的向量。

利用以下公式,更新所述协方差矩阵c:

其中,c1≈2/n2、cμ≈μw/n2,满足c1+cμ≤1。这个公式的更新原理是增大沿成功搜索方向的方差,即增大沿这些方向采样的概率,使采样的结果更接近最优值。

二、依据所述损失值cost,更新所述均值m,包括:

在多个初始任务安排表xi的损失值cost中,选择μ个的最小损失值cost,并确定各最小损失值cost对应的初始任务安排表x的权重wi;

利用以下公式,更新所述均值m:

其中,yi:λ为根据损失值排序后第i个元素对应的yi,xi:λ为根据损失值排序后第i个元素对应的xi。

步骤204,若更新后步长σ处于预设范围、或更新后步长σ的更新次数不小于预设次数,则将所述多个初始任务安排表x作为目标任务安排表。该步骤可对应参阅步骤104,在此不再赘述。

步骤205,若更新后步长σ未处于预设范围、或步长σ的更新次数小于预设次数,则依据更新后步长σ、更新后协方差矩阵c和更新后均值m,重复执行获取符合多元正态分布的λ个样本任务安排表yj、确定与该样本任务安排表yj对应的初始任务安排表x、确定每一初始任务安排表x的损失值costj、依据所述损失值costj并更新所述步长σ、更新所述多元正态分布的协方差矩阵c、所述均值m;直至所述σ处于预设范围、或所述步长σ的更新次数等于预设次数。

此为更新迭代过程,使最后更新的步长σ处于预设范围。更新迭代的终止条件还可以是达到一定的更新次数,以控制计算时间,符合“减少安排时间”的初衷。

本公开实施例首次使用进化策略算法应用于任务安排例如人员排班,提供了一种任务安排方法,比传统整数规划方法能够更快地得出最终结果,有性能优势。并且在多规则的限定下,基于进化策略算法可在有解性前提下给出近似最优方案。因此,本公开实施例可以在多任务限制条件约束下,在有可行的任务安排表的条件下,尽量去找到最大满足各条件的最优任务安排表,在不存在可行的任务安排表时,通过最优化原理逐步逼近最优任务安排表、以提供一个可行的任务安排表。本公开实施例能够快速、尽可能地逐步求出一个能满足各任务属性,并能满足大部分任务限制条件(即规则)的任务安排表,确定出可行的任务安排表。针对有班次指定问题的班表,在进化策略算法的基础上描述此类规则,可对某些具体规则进行建模及优化,并且利用缓存加速技术提高了评估速度。

为能更好地理解本公开实施例的优势,我们使用数据“人数:175人、天数:15天、规则:15种”进行测试。

采用传统整数规划方法最终获得结论的是无解,即没有可行的任务安排表,总体时间消耗了4个小时。而采用本公开实施例提供方案,获得90%的总体满足度的可行的任务安排表,且总体时间消耗从4小时降低到了1小时。

由此可见,本公开实施例提供的方案最终能够获得一个满足大部分任务限制条件(即规则)的任务安排表,且耗时时间大辐度降低。

请参阅图3,本公开实施例提供一种任务安排装置,包括:第一确定单元302、损失值确定单元304、更新单元306和第二确定单元308,各单元的描述如下所示。

第一确定单元302,用于依据待安排任务的任务属性,获取符合多元正态分布的λ个样本任务安排表yj,针对每一根据样本任务安排表yj,根据均值m、步长和该样本任务安排表yj,确定与该样本任务安排表yj对应的初始任务安排表xj;其中,j=1,2,……λ,λ为正整数;

损失值确定单元304,用于针对设定的任务限制条件,依据每一初始任务安排表xj中所有人在所有任务列表中不满足特定任务模型的次数,确定每一初始任务安排表xj的损失值costj;

更新单元306,用于依据所述损失值costj,并更新所述步长σ、更新所述多元正态分布的协方差矩阵c、所述均值m;

第二确定单元308,用于在更新后步长σ处于预设范围的情况下,将所述多个初始任务安排表xj作为目标任务安排表。

请参阅图4,所述更新单元306,还用于依据所述损失值cost,更新所述多元正态分布的协方差矩阵c、所述均值m;

所述第二确定单元308,还用于在更新后步长σ未处于预设范围、或步长σ的更新次数小于预设次数的情况下,依据更新后步长σ、更新后协方差矩阵c和更新后均值m,重复执行获取符合多元正态分布的λ个样本任务安排表yj、确定与该样本任务安排表yj对应的初始任务安排表xj、确定每一初始任务安排表xj的损失值costj、计算总损失值cost,依据所述损失值cost更新所述步长σ,直至所述σ处于预设范围、或所述步长σ的更新次数等于预设次数。

可选的,所述更新单元306,具体用于:

在多个初始任务安排表x的损失值cost中,选择μ个的最小损失值cost,并确定各最小损失值cost对应的初始任务安排表x的权重wi;其中,i=1,2,……μ,小于或等于j。

利用以下公式,确定更新步长的更新参数pσ:

其中,cσ为与维度n相关的参数,μw为与任务安排表数量相关的参数,c为多元正态分布的协方差矩阵,yi:λ为根据损失值排序后第i个元素对应的yi;

利用以下公式,更新步长σ:

可选的,所述更新单元306,具体用于:

利用以下公式,确定更新协方差矩阵的更新参数pc:

其中,cc为与维度n相关的参数;

利用以下公式,更新所述协方差矩阵c:

其中,c1≈2/n2、cμ≈μw/n2,满足c1+cμ≤1。

可选的,所述更新单元306,具体用于:在多个初始任务安排表xi的损失值cost中,选择μ个的最小损失值cost,并确定各最小损失值cost对应的初始任务安排表x的权重wi;

利用以下公式,更新所述均值m:

其中,yi:λ为根据损失值排序后第i个元素对应的yi,xi:λ为根据损失值排序后第i个元素对应的xi。

可选的,所述第一确定单元302,具体用于:

利用以下公式,确定样本任务安排表yj:

yj~n(0,c);

利用以下公式,确定与该样本任务安排表yj对应的初始任务安排表xj:

xj=m+σyj;

其中,c为多元正态分布的协方差矩阵,

可选的,所述损失值确定单元304,具体用于:

针对每一初始任务安排表,依据该初始任务安排表x中不满足各任务限制条件的次数,确定该初始任务安排表x对应于各任务限制条件的损失值;

获取各任务限制条件对应的权重,并依据该初始任务安排表x对应于每一任务限制条件的损失值和该任务限制条件对应的权重,确定该初始任务安排表x的损失值costj。

本公开实施例还提供一种电子设备,包括处理器和存储器,所述存储器存储有能够被所述处理器执行的计算机程序指令,所述处理器执行所述计算机程序指令时,实现前述任一所述的方法步骤。

本公开实施例还提供一种计算机可读存储介质,其特征在于,存储有计算机程序指令,所述计算机程序指令在被处理器调用和执行时实现前述任一所述的方法步骤。

下面参考图5,其示出了适于用来实现本公开实施例的电子设备500的结构示意图。本公开实施例中的终端设备可以包括但不限于诸如移动电话、笔记本电脑、数字广播接收器、pda(个人数字助理)、pad(平板电脑)、pmp(便携式多媒体播放器)、车载终端(例如车载导航终端)等等的移动终端以及诸如数字tv、台式计算机等等的固定终端。图5示出的电子设备仅仅是一个示例,不应对本公开实施例的功能和使用范围带来任何限制。

如图5所示,电子设备500可以包括处理装置(例如中央处理器、图形处理器等)501,其可以根据存储在只读存储器(rom)502中的程序或者从存储装置508加载到随机访问存储器(ram)503中的程序而执行各种适当的动作和处理。在ram503中,还存储有电子设备500操作所需的各种程序和数据。处理装置501、rom502以及ram503通过总线504彼此相连。输入/输出(i/o)接口505也连接至总线504。

通常,以下装置可以连接至i/o接口505:包括例如触摸屏、触摸板、键盘、鼠标、摄像头、麦克风、加速度计、陀螺仪等的输入装置506;包括例如液晶显示器(lcd)、扬声器、振动器等的输出装置507;包括例如磁带、硬盘等的存储装置508;以及通信装置509。通信装置509可以允许电子设备500与其他设备进行无线或有线通信以交换数据。虽然图5示出了具有各种装置的电子设备500,但是应理解的是,并不要求实施或具备所有示出的装置。可以替代地实施或具备更多或更少的装置。

特别地,根据本公开的实施例,上文参考流程图描述的过程可以被实现为计算机软件程序。例如,本公开的实施例包括一种计算机程序产品,其包括承载在计算机可读介质上的计算机程序,该计算机程序包含用于执行流程图所示的方法的程序代码。在这样的实施例中,该计算机程序可以通过通信装置509从网络上被下载和安装,或者从存储装置508被安装,或者从rom502被安装。在该计算机程序被处理装置501执行时,执行本公开实施例的方法中限定的上述功能。

需要说明的是,本公开上述的计算机可读介质可以是计算机可读信号介质或者计算机可读存储介质或者是上述两者的任意组合。计算机可读存储介质例如可以是——但不限于——电、磁、光、电磁、红外线、或半导体的系统、装置或器件,或者任意以上的组合。计算机可读存储介质的更具体的例子可以包括但不限于:具有一个或多个导线的电连接、便携式计算机磁盘、硬盘、随机访问存储器(ram)、只读存储器(rom)、可擦式可编程只读存储器(eprom或闪存)、光纤、便携式紧凑磁盘只读存储器(cd-rom)、光存储器件、磁存储器件、或者上述的任意合适的组合。在本公开中,计算机可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行系统、装置或者器件使用或者与其结合使用。而在本公开中,计算机可读信号介质可以包括在基带中或者作为载波一部分传播的数据信号,其中承载了计算机可读的程序代码。这种传播的数据信号可以采用多种形式,包括但不限于电磁信号、光信号或上述的任意合适的组合。计算机可读信号介质还可以是计算机可读存储介质以外的任何计算机可读介质,该计算机可读信号介质可以发送、传播或者传输用于由指令执行系统、装置或者器件使用或者与其结合使用的程序。计算机可读介质上包含的程序代码可以用任何适当的介质传输,包括但不限于:电线、光缆、rf(射频)等等,或者上述的任意合适的组合。

上述计算机可读介质可以是上述电子设备中所包含的;也可以是单独存在,而未装配入该电子设备中。

上述计算机可读介质承载有一个或者多个程序,当上述一个或者多个程序被该电子设备执行时,使得该电子设备:获取至少两个网际协议地址;向节点评价设备发送包括所述至少两个网际协议地址的节点评价请求,其中,所述节点评价设备从所述至少两个网际协议地址中,选取网际协议地址并返回;接收所述节点评价设备返回的网际协议地址;其中,所获取的网际协议地址指示内容分发网络中的边缘节点。

或者,上述计算机可读介质承载有一个或者多个程序,当上述一个或者多个程序被该电子设备执行时,使得该电子设备:接收包括至少两个网际协议地址的节点评价请求;从所述至少两个网际协议地址中,选取网际协议地址;返回选取出的网际协议地址;其中,接收到的网际协议地址指示内容分发网络中的边缘节点。

可以以一种或多种程序设计语言或其组合来编写用于执行本公开的操作的计算机程序代码,上述程序设计语言包括面向对象的程序设计语言—诸如java、smalltalk、c++,还包括常规的过程式程序设计语言—诸如“c”语言或类似的程序设计语言。程序代码可以完全地在用户计算机上执行、部分地在用户计算机上执行、作为一个独立的软件包执行、部分在用户计算机上部分在远程计算机上执行、或者完全在远程计算机或服务器上执行。在涉及远程计算机的情形中,远程计算机可以通过任意种类的网络——包括局域网(lan)或广域网(wan)—连接到用户计算机,或者,可以连接到外部计算机(例如利用因特网服务提供商来通过因特网连接)。

附图中的流程图和框图,图示了按照本公开各种实施例的系统、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段、或代码的一部分,该模块、程序段、或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个接连地表示的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或操作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。

描述于本公开实施例中所涉及到的单元可以通过软件的方式实现,也可以通过硬件的方式来实现。其中,单元的名称在某种情况下并不构成对该单元本身的限定,例如,第一获取单元还可以被描述为“获取至少两个网际协议地址的单元”。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1