CN111738488A - 一种任务调度方法及其装置 - Google Patents

一种任务调度方法及其装置 Download PDF

Info

Publication number
CN111738488A
CN111738488A CN202010407594.3A CN202010407594A CN111738488A CN 111738488 A CN111738488 A CN 111738488A CN 202010407594 A CN202010407594 A CN 202010407594A CN 111738488 A CN111738488 A CN 111738488A
Authority
CN
China
Prior art keywords
scheduled
schedulable
tasks
reinforcement learning
schedulable resource
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.)
Pending
Application number
CN202010407594.3A
Other languages
English (en)
Inventor
甄慧玲
李隆康
陆佳文
袁明轩
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Huawei Technologies Co Ltd
Original Assignee
Huawei Technologies Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Huawei Technologies Co Ltd filed Critical Huawei Technologies Co Ltd
Priority to CN202010407594.3A priority Critical patent/CN111738488A/zh
Publication of CN111738488A publication Critical patent/CN111738488A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q10/00Administration; Management
    • G06Q10/04Forecasting or optimisation specially adapted for administrative or management purposes, e.g. linear programming or "cutting stock problem"
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N20/00Machine learning
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/04Architecture, e.g. interconnection topology
    • G06N3/045Combinations of networks
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/04Architecture, e.g. interconnection topology
    • G06N3/049Temporal neural networks, e.g. delay elements, oscillating neurons or pulsed inputs
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/08Learning methods
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q10/00Administration; Management
    • G06Q10/06Resources, workflows, human or project management; Enterprise or organisation planning; Enterprise or organisation modelling
    • G06Q10/063Operations research, analysis or management
    • G06Q10/0631Resource planning, allocation, distributing or scheduling for enterprises or organisations
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q50/00Systems or methods specially adapted for specific business sectors, e.g. utilities or tourism
    • G06Q50/04Manufacturing
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02PCLIMATE CHANGE MITIGATION TECHNOLOGIES IN THE PRODUCTION OR PROCESSING OF GOODS
    • Y02P90/00Enabling technologies with a potential contribution to greenhouse gas [GHG] emissions mitigation
    • Y02P90/30Computing systems specially adapted for manufacturing

Abstract

本申请公开了一种任务调度方法及其装置,应用于人工智能领域,包括:通过第一强化学习模型处理多个待调度任务以及多个可调度资源组,以得到第一分配关系,第一分配关系表示多个待调度任务与多个可调度资源组之间的对应关系;至少基于第一分配关系,通过第二强化学习模型处理多个待调度任务和多个可调度资源,以得到第二分配关系。本申请可以对第一分配关系进行采样,并通过第二强化学习模型分别对各个采样得到的部分待调度任务进行调度分配,进而得到各个部分待调度任务与多个可调度资源之间的对应关系,第二强化学习模型不需要对全局的待调度任务进行资源分配,提高了求解效率。

Description

一种任务调度方法及其装置
技术领域
本申请涉及人工智能领域,尤其涉及一种任务调度方法及其装置。
背景技术
调度问题是大型制造、物流、生产等环节中最常见的问题之一,在不同的场景下,调度总是有不同的意义。例如:物流调度主要是指在物流过程中,物流公司根据待发货物的重量、去向、规格、加急程度等对所属的车辆和人员进行合理的安排和调度;而生产环境中的调度是根据不同产线中不同机器的产能以及生产需求,在若干任务(job)中完成对任务的排序以及任务和机器(可调度资源)之间的匹配;大型制造工厂/机场的工人/空乘排班(timetabling)也是调度问题的一种,这是由于这类问题的目标也是依照工人/空乘的工作特点以及场景需要在不同的时间段内完成最优匹配。因此,核心是排序以及最优分配,而不局限任务是人还是货物。一般来讲,调度问题的目标是在给定任务数的前提下得到最小总工时(makespan)所对应的排序。
在现有技术中,往往采用例如贪婪法或者混合整数规划(Mixed IntegerProgramming,MIP)或者约束规划(Constraint Programming,CP)等方法来解决调度问题,但是这些方法在求解精度和求解效率上(尤其当任务较大的情况下)往往难以兼顾,并且现有技术的方案往往只能解决单一类型任务,泛化能力弱。
因此,需要一种方案,其可以高效、精确地对任务进行调度,特别是对于大型任务也能实现高效精确地调度;另外,还需要此方案具有较高的泛化能力。
发明内容
第一方面,本申请提供了一种任务调度方法,所述方法包括:
获取多个待调度任务以及多个可调度资源组;其中,所述多个可调度资源组中的每个可调度资源组包括多个可调度资源;例如,在产品生产的场景中,待调度任务可以是待生产的产品,在人员调度的场景中,待调度任务可以是待生产的人等等;在产品生产的场景中,多个可调度资源组中的每个可调度资源组可以为生产线,例如在手机的生产场景中,多个可调度资源组中的每个可调度资源组可以为一种手机组件的生产线,例如可以是电池的生产线、外壳的生产线、芯片的生产线等等,相应的,每个可调度资源组可以包括多个可调度资源,多个可调度资源中的每个可调度资源为所述生产线中的生产设备,例如,电池生产线可以包括多个电池生产设备,外壳生产线可以包括多个外壳生产设备;在人员调度的场景中,多个可调度资源组中的每个可调度资源组可以为时间段,例如在人员调度的场景中,多个可调度资源组中的每个可调度资源组可以为一天,例如可以是周一、周二、周三或者是一些月份的某一天等等,相应的,每个可调度资源组可以包括多个可调度资源,多个可调度资源中的每个可调度资源为时间段中的子时间段,例如,某一天可以包括多个小时、多个分钟或者其他多个子时间段;
需要说明的是,除了获取多个待调度任务以及多个可调度资源组之外,还可以获取到其他调度信息,例如各个可调度资源组在进行并完成各个任务的时间,以及一些约束条件,例如,某个每个可调度资源同时顶多被一个任务占用,每个任务最多同时占用一个可调度资源等,每个可调度资源在执行完一个具体任务之前不可以执行下一个任务,等待时间不要超过上一个任务的执行时间等等;
通过第一强化学习模型处理所述多个待调度任务以及所述多个可调度资源组,以得到第一分配关系,所述第一分配关系包括所述多个待调度任务与所述多个可调度资源组之间的对应关系;第一强化学习模型其具有对输入的调度信息实现调度分配的功能,在一种实现中,第一强化学习模型可以对多个待调度任务、所述多个可调度资源组以及其他获取到的调度信息进执行迭代处理,每次处理可以得到一个第一分配关系;本实施例中的第一分配关系可以表示所述多个待调度任务与所述多个可调度资源组之间的对应关系,其中,在第一分配关系中,对于任一个任务而言,其与所述多个可调度资源组之间的对应关系可以表示为多个可调度资源组的一种排序;
至少基于所述第一分配关系,通过第二强化学习模型处理所述多个待调度任务和所述多个可调度资源,以得到第二分配关系,所述第二分配关系包括所述多个待调度任务与所述多个可调度资源之间的对应关系;其中,在所述第二分配关系中,部分或全部所述多个待调度任务中的每个待调度任务与对应的可调度资源所属的可调度资源组满足所述第一分配关系。针对于任务调度,需要分配的调度资源通常可以划分为不同的粒度,例如在产品生产的场景中,调度资源可以划分为生产线、生产阶段以及生产设备等等,针对于上述场景,任务调度的结果应该表现为任务和最小粒度的调度资源之间的对应关系,然而,若直接计算各个任务和最小粒度的调度资源之间的对应关系,由于解空间很大,相应的计算开销也很大,随着任务的数量和可调度资源的增加,计算开销的增加是不被接受的,因此,本实施例中,不直接计算各个任务和最小粒度的调度资源之间的对应关系,而是以一个层次递进的方式,先计算各个任务和较大粒度的调度资源之间的对应关系,然后以上述得到的对应关系为约束,进一步计算各个任务和较小粒度的调度资源之间的对应关系。具体的,第一强化学习模型可以计算得到任务和较大粒度的调度资源之间的对应关系(第一分配关系),该第一分配关系规定了各个任务和较大粒度的调度资源之间的对应关系,然后以第一分配关系为约束,固定各个任务和较大粒度的调度资源之间的对应关系,通过第二强化学习模型计算得到各个任务和较小粒度的调度资源之间的对应关系(第二分配关系)。
本实施例可以对第一分配关系进行采样,并通过第二强化学习模型分别对各个采样得到的部分待调度任务进行调度分配,进而得到各个部分待调度任务与多个可调度资源之间的对应关系。通过上述方式,一方面,第二强化学习模型不需要对全局的待调度任务进行资源分配,提高了求解效率。另一方面,调度问题中可调度资源组常常是多层级的结构,其可以分成多个粒度层次,现有技术中,没有考虑调度问题的实质结构,而本案考虑了调度问题的自身结构(层级特性),设计了一种多层级的任务调度模型,从而实现了高效的精确求解。
在一种可选的实现中,所述多个可调度资源组中的每个可调度资源组为生产线,所述多个可调度资源中的每个可调度资源为所述生产线中的生产设备;或,
所述多个可调度资源组中的每个可调度资源组为时间段,所述多个可调度资源中的每个可调度资源为所述时间段中的子时间段。
在一种可选的实现中,所述基于所述第一分配关系,通过第二强化学习模型处理所述多个待调度任务和所述多个可调度资源,包括:
至少基于所述第一分配关系,通过第二强化学习模型处理所述多个待调度任务中的部分待调度任务和所述多个可调度资源,以得到子分配关系,所述子分配关系表示所述部分待调度任务与所述多个可调度资源之间的对应关系。
本申请实施例中,第二强化学习模型可以通过滑动窗口采样(sliding-windowsampling)的部分信息共享(partial information sharing),对第一分配关系进行采样,获得部分待调度任务与多个可调度资源之间的对应关系,然后计算得到表示这部分待调度任务与所述多个可调度资源之间的对应关系的子分配关系。即,本实施例中可以对第一分配关系进行采样,并通过第二强化学习模型分别对各个采样得到的部分待调度任务进行调度分配,进而得到各个部分待调度任务与多个可调度资源之间的对应关系。通过上述方式,第二强化学习模型不需要对全局的待调度任务进行资源分配,提高了求解效率。
在一种实现中,第一强化学习模型和第二强化学习模型可以各自独立展开训练,所以只需较小的训练集即可,而后利用泛化,指导更大的数据集上的调度。
在一种可选的实现中,所述多个待调度任务包括多个目标待调度任务,所述多个可调度资源组包括目标可调度资源组,所述目标可调度资源组包括多个目标可调度资源,在所述第一分配关系中,所述多个目标待调度任务对应于所述目标可调度资源组;所述方法还包括:在所述多个目标可调度资源中少于预设数量的目标可调度资源可被分配至所述至少一个目标待调度任务的情况下,确定目标约束,所述目标约束表示所述至少一个目标待调度任务不对应于所述目标可调度资源组。
在一种情况下,由于第二强化学习模型在进行资源分配运算时,没有充足的多个目标可调度资源可以分配至多个目标待调度任务(第一分配关系中对应于目标可调度资源组),即,此时目标可调度资源处于忙碌状态,则确定目标约束,所述目标约束表示所述至少一个目标待调度任务不对应于所述目标可调度资源组,即,第二强化学习模型确定第一强化学习模型计算得到的第一分配关系不是最优的分配关系。此时,第二分配关系中仅仅包括部分待调度任务与多个可调度资源之间的对应关系。
在一种可选的实现中,所述方法还包括:
至少基于所述目标约束和所述第二分配关系,通过第一强化学习模型处理所述多个待调度任务以及所述多个可调度资源组,以得到更新后的第一分配关系,所述更新后的第一分配关系表示所述多个待调度任务与所述多个可调度资源组之间的对应关系;其中,在所述更新后的第一分配关系中,所述至少一个目标待调度任务对应于所述多个可调度资源组中除所述目标可调度资源组之外的可调度资源组;至少基于所述更新后的第一分配关系,通过所述第二强化学习模型处理所述多个待调度任务和所述多个可调度资源,以得到更新后的第二分配关系,所述更新后的第二分配关系表示所述多个待调度任务与所述多个可调度资源之间的对应关系;其中,在所述更新后的第二分配关系中,所述多个待调度任务中的每个待调度任务与对应的可调度资源所属的可调度资源组满足所述更新后的第一分配关系。
即,第二强化学习模型可以将确定出的目标约束同步至第一强化学习模型,第一强化学习模型可以以目标约束为依据,重新处理多个待调度任务以及所述多个可调度资源组,以得到更新后的第一分配关系,其中,在所述更新后的第一分配关系中,所述至少一个目标待调度任务对应于所述多个可调度资源组中除所述目标可调度资源组之外的可调度资源组。在一种实现中,若第二强化学习模型确定出在第一分配关系的约束下,全部待调度任务都有可以分配的可调度资源,则可以直接输出第二强化学习模型得到的第二分配关系。
在一种可选的实现中,可以对所述第一强化学习模型和所述第二强化学习模型分别进行训练。本实施例中,第一强化学习模型和第二强化学习模型经过一个滑动窗口采样(sliding-window sampling)连接,从而第一强化学习模型和所述第二强化学习模型可以经过非联合训练得到,通过展开的训练方式可以降低训练过程的运算开销。第一强化学习模型和第二强化学习模型可以各自独立展开训练,所以只需较小的训练集即可,而后利用泛化,指导更大的数据集上的调度。
在一种可选的实现中,所述第一强化学习模型包括第一奖励函数;所述第二强化学习模型包括第二奖励函数。本实施例不同于依赖一个共同的奖励函数的强化学习模型,本实施例中为了兼容多层级强化学习模型,针对于不同的强化学习模型设置不同的奖励函数,使得与多层级的数学模型更加匹配,相应的模型训练方式也更加灵活。
在一种可选的实现中,所述方法还包括:生成第一共享向量,所述第一共享向量包括多个状态变量;其中每个状态变量可以表示一个待调度任务的分配状态或一个可调度资源组的被占用状态;所述至少基于所述第一分配关系,通过第二强化学习模型处理所述多个待调度任务和所述多个可调度资源,包括:至少基于所述第一共享向量以及所述第一分配关系,通过第二强化学习模型处理所述多个待调度任务和所述多个可调度资源。
在一种可选的实现中,所述方法包括:生成第二共享向量,所述第二共享向量包括多个状态变量;其中每个状态变量可以表示一个待调度任务的分配状态、一个可调度资源组的被占用状态或一个可调度资源的被占用状态;所述至少基于所述目标约束和所述第二分配关系,通过第一强化学习模型处理所述多个待调度任务以及所述多个可调度资源组,包括:至少基于所述第二共享向量、所述目标约束和所述第二分配关系,通过第一强化学习模型处理所述多个待调度任务以及所述多个可调度资源组。
第二方面,本申请提供了一种系统,包括:由一个或多个计算机实施的第一强化学习模型和第二强化学习模型;
所述第一强化学习模型,用于获取多个待调度任务以及多个可调度资源组,并处理所述多个待调度任务以及所述多个可调度资源组,以得到第一分配关系;其中,所述多个可调度资源组中的每个可调度资源组包括多个可调度资源,所述第一分配关系包括所述多个待调度任务与所述多个可调度资源组之间的对应关系;
所述第二强化学习模型,用于至少基于所述第一分配关系,通过第二强化学习模型处理所述多个待调度任务和所述多个可调度资源,以得到第二分配关系,所述第二分配关系包括所述多个待调度任务与所述多个可调度资源之间的对应关系;其中,在所述第二分配关系中,部分或全部所述多个待调度任务中的每个待调度任务与对应的可调度资源所属的可调度资源组满足所述第一分配关系。
在一种可选的实现中,所述多个可调度资源组中的每个可调度资源组为生产线,所述多个可调度资源中的每个可调度资源为所述生产线中的生产设备;或,
所述多个可调度资源组中的每个可调度资源组为时间段,所述多个可调度资源中的每个可调度资源为所述时间段中的子时间段。
在一种可选的实现中,所述第二强化学习模型,用于至少基于所述第一分配关系,通过第二强化学习模型处理所述多个待调度任务中的部分待调度任务和所述多个可调度资源,以得到子分配关系,所述子分配关系表示所述部分待调度任务与所述多个可调度资源之间的对应关系。
在一种可选的实现中,所述多个待调度任务包括多个目标待调度任务,所述多个可调度资源组包括目标可调度资源组,所述目标可调度资源组包括多个目标可调度资源,在所述第一分配关系中,所述多个目标待调度任务对应于所述目标可调度资源组;
所述第二强化学习模型,还用于在所述多个目标可调度资源中少于预设数量的目标可调度资源可被分配至所述至少一个目标待调度任务的情况下,确定目标约束,所述目标约束表示所述至少一个目标待调度任务不对应于所述目标可调度资源组。
在一种可选的实现中,所述第一强化学习模型还用于:
至少基于所述目标约束和所述第二分配关系,通过第一强化学习模型处理所述多个待调度任务以及所述多个可调度资源组,以得到更新后的第一分配关系,所述更新后的第一分配关系表示所述多个待调度任务与所述多个可调度资源组之间的对应关系;其中,在所述更新后的第一分配关系中,所述至少一个目标待调度任务对应于所述多个可调度资源组中除所述目标可调度资源组之外的可调度资源组;
所述第二强化学习模型还用于:
至少基于所述更新后的第一分配关系,通过所述第二强化学习模型处理所述多个待调度任务和所述多个可调度资源,以得到更新后的第二分配关系,所述更新后的第二分配关系表示所述多个待调度任务与所述多个可调度资源之间的对应关系;其中,在所述更新后的第二分配关系中,所述多个待调度任务中的每个待调度任务与对应的可调度资源所属的可调度资源组满足所述更新后的第一分配关系。
在一种可选的实现中,对所述第一强化学习模型和所述第二强化学习模型分别进行训练。
在一种可选的实现中,所述第一强化学习模型包括第一奖励函数;所述第二强化学习模型包括第二奖励函数。
在一种可选的实现中所述第一强化学习模型还用于:生成第一共享向量,所述第一共享向量包括多个状态变量;其中每个状态变量可以表示一个待调度任务的分配状态或一个可调度资源组的被占用状态;
所述第二强化学习模型用于:至少基于所述第一共享向量以及所述第一分配关系,通过第二强化学习模型处理所述多个待调度任务和所述多个可调度资源。
在一种可选的实现中,所述第一强化学习模型还用于:生成第二共享向量,所述第二共享向量包括多个状态变量;其中每个状态变量可以表示一个待调度任务的分配状态、一个可调度资源组的被占用状态或一个可调度资源的被占用状态;
所述第二强化学习模型用于:至少基于所述第二共享向量、所述目标约束和所述第二分配关系,通过第一强化学习模型处理所述多个待调度任务以及所述多个可调度资源组。
所述第一强化学习模型包括DDQN,所述第二强化学习模型包括指针网络PN。
在一种可选的实现中,所述第一强化学习模型和所述第二强化学习模型包括循环神经网络。
在一种可选的实现中,所述第一强化学习模型包括两个基于注意力机制的长短期记忆网络LSTM,所述第二强化学习模型包括用于编码的第一循环神经网络RNN和用于解码的第二RNN。
第三方面,本申请提供了一种任务调度装置,所述装置包括:
获取模块,用于获取多个待调度任务以及多个可调度资源组;其中,所述多个可调度资源组中的每个可调度资源组包括多个可调度资源;
第一强化学习模块,用于通过第一强化学习模型处理所述多个待调度任务以及所述多个可调度资源组,以得到第一分配关系,所述第一分配关系包括所述多个待调度任务与所述多个可调度资源组之间的对应关系;
第二强化学习模块,用于至少基于所述第一分配关系,通过第二强化学习模型处理所述多个待调度任务和所述多个可调度资源,以得到第二分配关系,所述第二分配关系包括所述多个待调度任务与所述多个可调度资源之间的对应关系;其中,在所述第二分配关系中,部分或全部所述多个待调度任务中的每个待调度任务与对应的可调度资源所属的可调度资源组满足所述第一分配关系。
在一种可选的实现中,所述多个可调度资源组中的每个可调度资源组为生产线,所述多个可调度资源中的每个可调度资源为所述生产线中的生产设备;或,
所述多个可调度资源组中的每个可调度资源组为时间段,所述多个可调度资源中的每个可调度资源为所述时间段中的子时间段。
在一种可选的实现中,所述第二强化学习模块,具体用于:
至少基于所述第一分配关系,通过第二强化学习模型处理所述多个待调度任务中的部分待调度任务和所述多个可调度资源,以得到子分配关系,所述子分配关系表示所述部分待调度任务与所述多个可调度资源之间的对应关系。
在一种可选的实现中,所述多个待调度任务包括多个目标待调度任务,所述多个可调度资源组包括目标可调度资源组,所述目标可调度资源组包括多个目标可调度资源,在所述第一分配关系中,所述多个目标待调度任务对应于所述目标可调度资源组;
所述第二强化学习模块,具体用于:
在所述多个目标可调度资源中少于预设数量的目标可调度资源可被分配至所述至少一个目标待调度任务的情况下,确定目标约束,所述目标约束表示所述至少一个目标待调度任务不对应于所述目标可调度资源组。
在一种可选的实现中,所述第一强化学习模块,还用于至少基于所述目标约束和所述第二分配关系,通过第一强化学习模型处理所述多个待调度任务以及所述多个可调度资源组,以得到更新后的第一分配关系,所述更新后的第一分配关系表示所述多个待调度任务与所述多个可调度资源组之间的对应关系;其中,在所述更新后的第一分配关系中,所述至少一个目标待调度任务对应于所述多个可调度资源组中除所述目标可调度资源组之外的可调度资源组;
所述第二强化学习模块,还用于至少基于所述更新后的第一分配关系,通过所述第二强化学习模型处理所述多个待调度任务和所述多个可调度资源,以得到更新后的第二分配关系,所述更新后的第二分配关系表示所述多个待调度任务与所述多个可调度资源之间的对应关系;其中,在所述更新后的第二分配关系中,所述多个待调度任务中的每个待调度任务与对应的可调度资源所属的可调度资源组满足所述更新后的第一分配关系。
在一种可选的实现中,对所述第一强化学习模型和所述第二强化学习模型分别进行训练。
在一种可选的实现中,所述第一强化学习模型包括第一奖励函数;所述第二强化学习模型包括第二奖励函数。
在一种可选的实现中,所述第一强化学习模块,还用于生成第一共享向量,所述第一共享向量包括多个状态变量;其中每个状态变量可以表示一个待调度任务的分配状态或一个可调度资源组的被占用状态;
所述第二强化学习模块,还用于至少基于所述第一共享向量以及所述第一分配关系,通过第二强化学习模型处理所述多个待调度任务和所述多个可调度资源。
在一种可选的实现中,所述第二强化学习模块,还用于生成第二共享向量,所述第二共享向量包括多个状态变量;其中每个状态变量可以表示一个待调度任务的分配状态、一个可调度资源组的被占用状态或一个可调度资源的被占用状态;
所述第一强化学习模块,还用于至少基于所述第二共享向量、所述目标约束和所述第二分配关系,通过第一强化学习模型处理所述多个待调度任务以及所述多个可调度资源组。
第四方面,本申请实施例提供了一种装置,包括存储器、处理器以及总线系统,其中,存储器用于存储程序,处理器用于执行存储器中的程序,以执行如上述第一方面及第一方面任一可选的方法。
第五方面,本发明实施例还提供一种系统,该系统包括至少一个处理器,至少一个存储器以及至少一个通信接口;处理器、存储器和通信接口通过通信总线连接并完成相互间的通信;
存储器用于存储执行以上方案的应用程序代码,并由处理器来控制执行。所述处理器用于执行所述存储器中存储的应用程序代码,以得到任务调度结果;其中存储器存储的代码可执行以上提供的一种任务调度方法。
通信接口,用于与其他设备或通信网络通信,以将所述任务调度结果发送至所述设备或通信网络。
第六方面,本申请实施例提供了一种计算机可读存储介质,所述计算机可读存储介质中存储有计算机程序,当其在计算机上运行时,使得计算机执行上述第一方面及其任一可选的方法。
第七方面,本申请实施例提供了一种计算机可读存储介质,所述计算机存储介质存储有一个或多个指令,所述指令在由一个或多个计算机执行时使得所述一个或多个计算机实施上述第二方面及其任一可选的系统。
第八方面,本申请实施例提供了一种计算机程序,当其在计算机上运行时,使得计算机执行上述第一方面及其任一可选的方法。
第九方面,本申请提供了一种芯片系统,该芯片系统包括处理器,用于支持执行设备或训练设备实现上述方面中所涉及的功能,例如,发送或处理上述方法中所涉及的数据;或,信息。在一种可能的设计中,所述芯片系统还包括存储器,所述存储器,用于保存执行设备或训练设备必要的程序指令和数据。该芯片系统,可以由芯片构成,也可以包括芯片和其他分立器件。
本申请实施例提供了一种任务调度方法,包括:获取多个待调度任务以及多个可调度资源组;其中,所述多个可调度资源组中的每个可调度资源组包括多个可调度资源;通过第一强化学习模型处理所述多个待调度任务以及所述多个可调度资源组,以得到第一分配关系,所述第一分配关系表示所述多个待调度任务与所述多个可调度资源组之间的对应关系;至少基于所述第一分配关系,通过第二强化学习模型处理所述多个待调度任务和所述多个可调度资源,以得到第二分配关系,所述第二分配关系表示所述多个待调度任务与所述多个可调度资源之间的对应关系;其中,在所述第二分配关系中,部分或全部所述多个待调度任务中的每个待调度任务与对应的可调度资源所属的可调度资源组满足所述第一分配关系。本实施例可以对第一分配关系进行采样,并通过第二强化学习模型分别对各个采样得到的部分待调度任务进行调度分配,进而得到各个部分待调度任务与多个可调度资源之间的对应关系。通过上述方式,第二强化学习模型不需要对全局的待调度任务进行资源分配,提高了求解效率。
附图说明
图1为人工智能主体框架的一种结构示意图;
图2为本申请实施例提供的一种系统架构的示意图;
图3为本申请实施例提供的一种芯片的硬件结构;
图4为本申请实施例提供的一种任务调度方法的流程示意图;
图5为本申请实施例提供的一种系统500的结构示意;
图6为本申请实施例中的一种调度器的结构示意;
图7为本申请实施例的计算性能示意;
图8和图9a为本申请实施例和现有其他技术在计算性能上的对比示意;
图9b为本申请实施例提供的一种任务调度方法的流程示意图;
图10为本实施例提供的一种任务调度装置的结构示意;
图11为本申请实施例提供的执行设备的一种结构示意图;
图12为本申请实施例提供的训练设备一种结构示意图;
图13为本申请实施例提供的芯片的一种结构示意图。
具体实施方式
下面结合本发明实施例中的附图对本发明实施例进行描述。本发明的实施方式部分使用的术语仅用于对本发明的具体实施例进行解释,而非旨在限定本发明。
下面结合附图,对本申请的实施例进行描述。本领域普通技术人员可知,随着技术的发展和新场景的出现,本申请实施例提供的技术方案对于类似的技术问题,同样适用。
本申请的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的术语在适当情况下可以互换,这仅仅是描述本申请的实施例中对相同属性的对象在描述时所采用的区分方式。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,以便包含一系列单元的过程、方法、系统、产品或设备不必限于那些单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它单元。
首先对人工智能系统总体工作流程进行描述,请参见图1,图1示出的为人工智能主体框架的一种结构示意图,下面从“智能信息链”(水平轴)和“IT价值链”(垂直轴)两个维度对上述人工智能主题框架进行阐述。其中,“智能信息链”反映从数据的获取到处理的一列过程。举例来说,可以是智能信息感知、智能信息表示与形成、智能推理、智能决策、智能执行与输出的一般过程。在这个过程中,数据经历了“数据—信息—知识—智慧”的凝练过程。“IT价值链”从人智能的底层基础设施、信息(提供和处理技术实现)到系统的产业生态过程,反映人工智能为信息技术产业带来的价值。
(1)基础设施
基础设施为人工智能系统提供计算能力支持,实现与外部世界的沟通,并通过基础平台实现支撑。通过传感器与外部沟通;计算能力由智能芯片(CPU、NPU、GPU、ASIC、FPGA等硬件加速芯片)提供;基础平台包括分布式计算框架及网络等相关的平台保障和支持,可以包括云存储和计算、互联互通网络等。举例来说,传感器和外部沟通获取数据,这些数据提供给基础平台提供的分布式计算系统中的智能芯片进行计算。
(2)数据
基础设施的上一层的数据用于表示人工智能领域的数据来源。数据涉及到图形、图像、语音、文本,还涉及到传统设备的物联网数据,包括已有系统的业务数据以及力、位移、液位、温度、湿度等感知数据。
(3)数据处理
数据处理通常包括数据训练,机器学习,深度学习,搜索,推理,决策等方式。
其中,机器学习和深度学习可以对数据进行符号化和形式化的智能信息建模、抽取、预处理、训练等。
推理是指在计算机或智能系统中,模拟人类的智能推理方式,依据推理控制策略,利用形式化的信息进行机器思维和求解问题的过程,典型的功能是搜索与匹配。
决策是指智能信息经过推理后进行决策的过程,通常提供分类、排序、预测等功能。
(4)通用能力
对数据经过上面提到的数据处理后,进一步基于数据处理的结果可以形成一些通用的能力,比如可以是算法或者一个通用系统,例如,翻译,文本的分析,计算机视觉的处理,语音识别,图像的识别等等。
(5)智能产品及行业应用
智能产品及行业应用指人工智能系统在各领域的产品和应用,是对人工智能整体解决方案的封装,将智能信息决策产品化、实现落地应用,其应用领域主要包括:智能终端、智能交通、智能医疗、自动驾驶、平安城市等。
调度问题是大型制造/物流/生产等环节中最常见的问题之一,并且在不同的场景下,调度总是有不同的意义。例如:物流调度主要是指在物流过程中,物流公司根据待发货物的重量、去向、规格、加急程度等对所属的车辆和人员进行合理的安排和调度。
而生产环境中的调度是根据不同产线中不同机器的产能以及生产需求,在若干任务(job)中完成对任务的排序以及任务和生产设备之间的匹配。即将多个任务分配至各条生产线中的生产设备。
例如,在作业车间调度(job-shop scheduling)的场景中,n个工件在m台机器上加工,每个工件有特定的加工工艺,每个工件加工的顺序及每道工序所花时间给定,安排工件在每台机器上工件的加工顺序,使得某种指标最优。这里不要求每个工件都在每个机器上执行。
例如,在流水车间调度(flow-shop scheduling)的场景中,该类调度问题要求每个任务必须依次执行到每个阶段,不涉及任务和阶段的匹配,而主要是决定任务的执行顺序。防止由于中间等待时间过长,而造成整体的完成时间时长。
与一般的货物调度略有不同的是,机场/大型制造工厂的工人/空姐排班(timetabling)也是调度问题的一种,这是由于这类问题的目标也是依照工人/空姐的工作特点以及场景需要在不同的时间段内完成最优匹配。因此,核心是排序以及最有分配,而不局限“任务”是人还是货物。一般来讲,调度问题的目标是在给定任务数的前提下得到最小总工时(makespan)所对应的排序。
同时,调度问题在计算机中是分配工作所需资源的方法。资源可以指虚拟的计算资源,如线程、进程或数据流;也可以指硬件资源,如处理器、网络连接或扩展卡。进行调度工作的程序叫做调度器。调度器通常的实现使得所有计算资源都处于忙碌状态(在负载均衡中),允许多位用户有效地同时共享系统资源,或达到指定的服务质量。
下面从模型训练侧和模型应用侧对本申请提供的方法进行描述:
图2是本申请实施例提供的一种系统100架构的示意图,在图2中,执行设备110配置输入/输出(input/output,I/O)接口112,用于与外部设备进行数据交互,用户可以通过客户设备140向I/O接口112输入数据,所述输入数据在本申请实施例中可以包括:各个待调度任务,、可调用资源以及其他参数。
在执行设备110对输入数据进行预处理,或者在执行设备110的计算模块111执行计算等相关的处理(比如进行本申请中神经网络的功能实现)过程中,执行设备110可以调用数据存储系统150中的数据、代码等以用于相应的处理,也可以将相应处理得到的数据、指令等存入数据存储系统150中。
最后,I/O接口112将处理结果返回给客户设备140,从而提供给用户。
值得说明的是,训练设备120可以针对不同的目标或称不同的任务,基于不同的训练数据生成相应的目标模型/规则,该相应的目标模型/规则即可以用于实现上述目标或完成上述任务,从而为用户提供所需的结果。
在图2中所示情况下,用户可以手动给定输入数据,该手动给定可以通过I/O接口112提供的界面进行操作。另一种情况下,客户设备140可以自动地向I/O接口112发送输入数据,如果要求客户设备140自动发送输入数据需要获得用户的授权,则用户可以在客户设备140中设置相应权限。用户可以在客户设备140查看执行设备110输出的结果,具体的呈现形式可以是显示、声音、动作等具体方式。客户设备140也可以作为数据采集端,采集如图所示输入I/O接口112的输入数据及输出I/O接口112的输出结果作为新的样本数据,并存入数据库130。当然,也可以不经过客户设备140进行采集,而是由I/O接口112直接将如图所示输入I/O接口112的输入数据及输出I/O接口112的输出结果,作为新的样本数据存入数据库130。
值得注意的是,图2仅是本申请实施例提供的一种系统架构的示意图,图中所示设备、器件、模块等之间的位置关系不构成任何限制,例如,在图2中,数据存储系统150相对执行设备110是外部存储器,在其它情况下,也可以将数据存储系统150置于执行设备110中。如图2所示,可以根据训练设备120训练得到强化学习模型。
图3为本申请实施例提供的一种芯片的硬件结构,该芯片包括神经网络处理器NPU50。该芯片可以被设置在如图5所示的执行设备110中,用以完成计算模块111的计算工作。该芯片也可以被设置在如图5所示的训练设备120中,用以完成训练设备120的训练工作并输出目标模型/规则。
神经网络处理器NPU 50,NPU作为协处理器挂载到主中央处理器(centralprocessing unit,CPU)(host CPU)上,由主CPU分配任务。NPU的核心部分为运算电路503,控制器504控制运算电路503提取存储器(权重存储器或输入存储器)中的数据并进行运算。
在一些实现中,运算电路503内部包括多个处理单元(process engine,PE)。在一些实现中,运算电路503是二维脉动阵列。运算电路503还可以是一维脉动阵列或者能够执行例如乘法和加法这样的数学运算的其它电子线路。在一些实现中,运算电路503是通用的矩阵处理器。
举例来说,假设有输入矩阵A,权重矩阵B,输出矩阵C。运算电路从权重存储器502中取矩阵B相应的数据,并缓存在运算电路中每一个PE上。运算电路从输入存储器501中取矩阵A数据与矩阵B进行矩阵运算,得到的矩阵的部分结果或最终结果,保存在累加器(accumulator)508中。
向量计算单元507可以对运算电路的输出做进一步处理,如向量乘,向量加,指数运算,对数运算,大小比较等等。例如,向量计算单元507可以用于神经网络中非卷积/非FC层的网络计算,如池化(pooling),批归一化(batch normalization),局部响应归一化(local response normalization)等。
在一些实现种,向量计算单元能507将经处理的输出的向量存储到统一缓存器506。例如,向量计算单元507可以将非线性函数应用到运算电路503的输出,例如累加值的向量,用以生成激活值。在一些实现中,向量计算单元507生成归一化的值、合并值,或二者均有。在一些实现中,处理过的输出的向量能够用作到运算电路503的激活输入,例如用于在神经网络中的后续层中的使用。
统一存储器506用于存放输入数据以及输出数据。
权重数据直接通过存储单元访问控制器505(direct memory accesscontroller,DMAC)将外部存储器中的输入数据搬运到输入存储器501和/或统一存储器506、将外部存储器中的权重数据存入权重存储器502,以及将统一存储器506中的数据存入外部存储器。
总线接口单元(bus interface unit,BIU)510,用于通过总线实现主CPU、DMAC和取指存储器509之间进行交互。
与控制器504连接的取指存储器(instruction fetch buffer)509,用于存储控制器504使用的指令;
控制器504,用于调用指存储器509中缓存的指令,实现控制该运算加速器的工作过程。
一般地,统一存储器506,输入存储器501,权重存储器502以及取指存储器509均为片上(On-Chip)存储器,外部存储器为该NPU外部的存储器,该外部存储器可以为双倍数据率同步动态随机存储器(double data rate synchronous dynamic random accessmemory,DDR SDRAM)、高带宽存储器(high bandwidth memory,HBM)或其他可读可写的存储器。
参见图4,图4为本申请实施例提供的一种任务调度方法的流程示意图。如图4所示,本申请实施例提供的任务调度方法,包括:
401、获取多个待调度任务以及多个可调度资源组;其中,所述多个可调度资源组中的每个可调度资源组包括多个可调度资源。
本申请实施例中,在进行任务的调度时,可以获取到多个待调度任务以及多个可调度资源组;其中,所述多个可调度资源组中的每个可调度资源组包括多个可调度资源。
例如,在产品生产的场景中,待调度任务可以是待生产的产品,在人员调度的场景中,待调度任务可以是待生产的人等等,本申请实施例并不限定。
在产品生产的场景中,多个可调度资源组中的每个可调度资源组可以为生产线,例如在手机的生产场景中,多个可调度资源组中的每个可调度资源组可以为一种手机组件的生产线,例如可以是电池的生产线、外壳的生产线、芯片的生产线等等,相应的,每个可调度资源组可以包括多个可调度资源,多个可调度资源中的每个可调度资源为所述生产线中的生产设备,例如,电池生产线可以包括多个电池生产设备,外壳生产线可以包括多个外壳生产设备,这里并不限定。
在人员调度的场景中,多个可调度资源组中的每个可调度资源组可以为时间段,例如在人员调度的场景中,多个可调度资源组中的每个可调度资源组可以为一天,例如可以是周一、周二、周三或者是一些月份的某一天等等,相应的,每个可调度资源组可以包括多个可调度资源,多个可调度资源中的每个可调度资源为时间段中的子时间段,例如,某一天可以包括多个小时、多个分钟或者其他多个子时间段,这里并不限定。
需要说明的是,本实施例中的可调度资源组可以是比可调度资源粒度更大的资源集合,可调度资源组可以包括多个可调度资源。
需要说明的是,除了获取多个待调度任务以及多个可调度资源组之外,还可以获取到其他调度信息,例如各个可调度资源组在进行并完成各个任务的时间,以及一些约束条件,例如,某个每个可调度资源同时顶多被一个任务占用,每个任务最多同时占用一个可调度资源等,每个可调度资源在执行完一个具体任务之前不可以执行下一个任务,等待时间不要超过上一个任务的执行时间等等。需要说明的是,基于要进行调度的场景不同,还可以获取其他调度信息,本实施例并不限定。
402、通过第一强化学习模型处理所述多个待调度任务以及所述多个可调度资源组,以得到第一分配关系,所述第一分配关系表示所述多个待调度任务与所述多个可调度资源组之间的对应关系。
本实施例中第一分配关系表示的对应关系可以理解为任务和可调度资源之间的分配关系,该分配关系可以表示多个待调度任务中各个待调度任务分配到的可调度资源组。
本申请实施例中,在获取到多个待调度任务以及多个可调度资源组之后,可以通过第一强化学习模型处理所述多个待调度任务以及所述多个可调度资源组。
本申请实施例中,第一强化学习模型其具有对输入的调度信息实现调度分配的功能,在一种实现中,第一强化学习模型可以对多个待调度任务、所述多个可调度资源组以及其他获取到的调度信息进执行迭代处理,每次处理可以得到一个第一分配关系,上述迭代处理过程中,第一强化学习模型可以沿着让自己的奖励函数增加的方向进行,即随着迭代的进行,第一强化学习模型会得到更优的分配关系,其中,分配关系的“更优”可以理解为,在该分配关系下,实现各个任务的整体开销更小(例如,时间开销更少等等,具体和第一强化学习模型中规定的优化函数有关,这里并不限定)。
在一种实现中,在调度开始时,第一强化学习模型可以将全部的任务按照可调度资源组的数目做聚类,尽量保证每个可调度资源组分配得到的任务的数量趋于平均。
在一种实现中,第一强化学习模型可以是双Q网络(double deep q-network,DDQN)。
需要说明的是,本实施例中的第一分配关系可以表示所述多个待调度任务与所述多个可调度资源组之间的对应关系,其中,在第一分配关系中,对于任一个任务而言,其与所述多个可调度资源组之间的对应关系可以表示为多个可调度资源组的一种排序;以产品生产的场景为例,第一分配关系可以表示各个产品与多个生产线之间的对应关系,具体的,对于任一个产品而言,其与所述多个生产线之间的对应关系可以表示为多个生产线的一种排序;例如,若有5条生产线(生产线1、生产线2、生产线3、生产线4、生产线5),在第一分配关系中,针对于产品1,其余5条生产线的对应关系为:生产线4—生产线2—生产线1—生产线5—生产线3,即在第一分配关系中,产品1需要依次经过生产线4、生产线2、生产线1、生产线5和生产线3。
403、至少基于所述第一分配关系,通过第二强化学习模型处理所述多个待调度任务和所述多个可调度资源,以得到第二分配关系,所述第二分配关系表示所述多个待调度任务与所述多个可调度资源之间的对应关系;其中,在所述第二分配关系中,部分或全部所述多个待调度任务中的每个待调度任务与对应的可调度资源所属的可调度资源组满足所述第一分配关系。
本申请实施例中,第一强化学习模型可以对多个待调度任务、所述多个可调度资源组以及其他获取到的调度信息进执行迭代处理,每次处理可以得到一个第一分配关系,每次得到的第一分配关系可以作为第二强化学习模型的输入。进而,第二强化学习模型可以基于所述第一分配关系,处理所述多个待调度任务和所述多个可调度资源,以得到第二分配关系,所述第二分配关系表示所述多个待调度任务与所述多个可调度资源之间的对应关系;其中,在所述第二分配关系中,部分或全部所述多个待调度任务中的每个待调度任务与对应的可调度资源所属的可调度资源组满足所述第一分配关系。
针对于任务调度,需要分配的调度资源通常可以划分为不同的粒度,例如在产品生产的场景中,调度资源可以划分为生产线、生产阶段以及生产设备等等,针对于上述场景,任务调度的结果应该表现为任务和最小粒度的调度资源之间的对应关系,然而,若直接计算各个任务和最小粒度的调度资源之间的对应关系,由于解空间很大,相应的计算开销也很大,随着任务的数量和可调度资源的增加,计算开销的增加是不被接受的,因此,本实施例中,不直接计算各个任务和最小粒度的调度资源之间的对应关系,而是以一个层次递进的方式,先计算各个任务和较大粒度的调度资源之间的对应关系,然后以上述得到的对应关系为约束,进一步计算各个任务和较小粒度的调度资源之间的对应关系。具体的,第一强化学习模型可以计算得到任务和较大粒度的调度资源之间的对应关系(第一分配关系),该第一分配关系规定了各个任务和较大粒度的调度资源之间的对应关系,然后以第一分配关系为约束,固定各个任务和较大粒度的调度资源之间的对应关系,通过第二强化学习模型计算得到各个任务和较小粒度的调度资源之间的对应关系(第二分配关系)。
在一种实现中,第二强化学习模型可以是指针网络(pointer network,PN)。
需要说明的是,本实施例中的第二分配关系可以表示所述多个待调度任务与所述多个可调度资源之间的对应关系,其中,在第二分配关系中,对于任一个任务而言,其与所述多个可调度资源之间的对应关系可以表示为多个可调度资源的一种排序;以产品生产的场景为例,第二分配关系可以表示各个产品与多个生产设备之间的对应关系,具体的,对于任一个产品而言,其与所述多个生产设备之间的对应关系可以表示为生产设备的一种排序;例如,若有5条生产线(生产线1、生产线2、生产线3、生产线4、生产线5),生产线1包括生产设备1-10(其中生产线各个阶段对应一定数量的生产设备,这里不再区分),生产线2包括生产设备1-10,生产线3包括生产设备1-10,生产线4包括生产设备1-10,生产线5包括生产设备1-10,在第一分配关系中,针对于产品1,其与5条生产线的对应关系为:生产线4—生产线2—生产线1—生产线5—生产线3,即在第一分配关系中,产品1需要依次经过生产线4、生产线2、生产线1、生产线5和生产线3,在第二分配关系中,针对于产品1,其与生产设备的对应关系为:生产线4中的设备2—生产线2中的设备1—生产线1中的设备8—生产线5中的设备5—生产线3中的设备9,即在第二分配关系中,产品1需要依次经过生产线4中的设备2、生产线2中的设备1、生产线1中的设备8、生产线5中的设备5以及生产线3中的设备9。
在一种实现中,可以基于所述第一分配关系,通过第二强化学习模型处理所述多个待调度任务中的部分待调度任务和所述多个可调度资源,以得到子分配关系,所述子分配关系表示所述部分待调度任务与所述多个可调度资源之间的对应关系。
本申请实施例中,第二强化学习模型可以通过滑动窗口采样(sliding-windowsampling)的部分信息共享(partial information sharing),对第一分配关系进行采样,获得部分待调度任务与多个可调度资源之间的对应关系,然后计算得到表示这部分待调度任务与所述多个可调度资源之间的对应关系的子分配关系。即,本实施例中可以对第一分配关系进行采样,并通过第二强化学习模型分别对各个采样得到的部分待调度任务进行调度分配,进而得到各个部分待调度任务与多个可调度资源之间的对应关系。通过上述方式,第二强化学习模型不需要对全局的待调度任务进行资源分配,提高了求解效率。
本申请实施例中,上下两层强化学习模型可以分别包括对应的奖励函数(第一强化学习模型包括第一奖励函数,第二强化学习模型包括第二奖励函数),但对于整体的任务调度模型而言,仍需要考虑到全局最优,因此要将上下层模型的两个奖励函数联合到一起。现有的多层模型的实现中,是将多层模型各自的奖励函数直接相加,而本实施例中,是采用滑动窗口采样的方式,对于任务调度模型整体而言,相当于实现了奖励函数的局部相加,即本实施例通过滑动窗口采样的方式连接了上下两层强化学习模型的奖励函数,避免了如果直接相加则会带来的求解空间过大所导致的求解性能的损失,进而可以有效的提升求解质量。
本申请实施例中,在所述第二分配关系中,部分或全部所述多个待调度任务中的每个待调度任务与对应的可调度资源所属的可调度资源组满足所述第一分配关系。
具体的,所述多个待调度任务包括多个目标待调度任务,所述多个可调度资源组包括目标可调度资源组,所述目标可调度资源组包括多个目标可调度资源,在所述第一分配关系中,所述多个目标待调度任务对应于所述目标可调度资源组;在所述多个目标可调度资源中少于预设数量的目标可调度资源可被分配至所述至少一个目标待调度任务的情况下,确定目标约束,所述目标约束表示所述至少一个目标待调度任务不对应于所述目标可调度资源组。即,在一种情况下,由于第二强化学习模型在进行资源分配运算时,没有充足的多个目标可调度资源可以分配至多个目标待调度任务(第一分配关系中对应于目标可调度资源组),即,此时目标可调度资源处于忙碌状态,则确定目标约束,所述目标约束表示所述至少一个目标待调度任务不对应于所述目标可调度资源组,即,第二强化学习模型确定第一强化学习模型计算得到的第一分配关系不是最优的分配关系。此时,第二分配关系中仅仅包括部分待调度任务与多个可调度资源之间的对应关系。
本实施例中,第一强化学习模型可以基于所述目标约束和所述第二分配关系,处理所述多个待调度任务以及所述多个可调度资源组,以得到更新后的第一分配关系,所述更新后的第一分配关系表示所述多个待调度任务与所述多个可调度资源组之间的对应关系;其中,在所述更新后的第一分配关系中,所述至少一个目标待调度任务对应于所述多个可调度资源组中除所述目标可调度资源组之外的可调度资源组。
即,第二强化学习模型可以将确定出的目标约束同步至第一强化学习模型,第一强化学习模型可以以目标约束为依据,重新处理多个待调度任务以及所述多个可调度资源组,以得到更新后的第一分配关系,其中,在所述更新后的第一分配关系中,所述至少一个目标待调度任务对应于所述多个可调度资源组中除所述目标可调度资源组之外的可调度资源组。在一种实现中,若第二强化学习模型确定出在第一分配关系的约束下,全部待调度任务都有可以分配的可调度资源,则可以直接输出第二强化学习模型得到的第二分配关系。
进而,第二强化学习模型可以基于所述更新后的第一分配关系,处理所述多个待调度任务和所述多个可调度资源,以得到更新后的第二分配关系,所述更新后的第二分配关系表示所述多个待调度任务与所述多个可调度资源之间的对应关系;其中,在所述更新后的第二分配关系中,所述多个待调度任务中的每个待调度任务与对应的可调度资源所属的可调度资源组满足所述更新后的第一分配关系。
本申请实施例中,以产品生产的场景为例,上层的第一强化学习模型决定了不同阶段的任务的分配和顺序,下层的第二强化学习模型决定了具体的每个阶段的不同生产设备的任务的顺序和分配。而后,上下层之间可以进入来回迭代循环(在下层模型的输出结果与上层结果矛盾的情况下),至收敛稳定(在下层模型的输出结果与上层结果不矛盾的情况下)后,整个调度完成。
可选的,可以对所述第一强化学习模型和所述第二强化学习模型分别进行训练。本实施例中,第一强化学习模型和第二强化学习模型经过一个滑动窗口采样(sliding-window sampling)连接,从而第一强化学习模型和所述第二强化学习模型可以经过非联合训练得到,通过展开的训练方式可以降低训练过程的运算开销。
可选的,所述第一强化学习模型的奖励函数与所述第二强化学习模型的奖励函数不同。不同于现有的实现中,依赖一个共同的奖励函数的双层模型,本实施例中为了兼容多层级强化学习模型,针对于不同的强化学习模型设置不同的奖励函数,使得与多层级的数学模型更加匹配,相应的模型训练方式也更加灵活。
可选的,第一强化学习模型还可以生成第一共享向量,所述第一共享向量包括多个状态变量;其中每个状态变量可以表示一个待调度任务的分配状态或一个可调度资源组的被占用状态;进而,第二强化学习模型可以至少基于所述第一共享向量以及所述第一分配关系,通过第二强化学习模型处理所述多个待调度任务和所述多个可调度资源。
可选的,第二强化学习模型还可以生成第二共享向量,所述第二共享向量包括多个状态变量;其中每个状态变量可以表示一个待调度任务的分配状态、一个可调度资源组的被占用状态或一个可调度资源的被占用状态;进而,第一强化学习模型可以至少基于所述第二共享向量、所述目标约束和所述第二分配关系,通过第一强化学习模型处理所述多个待调度任务以及所述多个可调度资源组。本实施例中,整个任务调度过程相当于形成了一个受约束的马尔科夫决策过程(constraint markov decision process),在这个过程中,上下层之间的状态(state)需要共享;其中,整个过程的状态可以基于共享向量来表示,例如N个任务的调度过程便构成一个N维向量。该向量的每个元素可以为待调度任务的状态变量,其初始值可以为0。决策过程中的动作(action)是选择状态中其中的部分元素由0变成1,若状态变量由0变成1则表示接下来是要执行这个任务。
本申请实施例提供了一种任务调度方法,包括:获取多个待调度任务以及多个可调度资源组;其中,所述多个可调度资源组中的每个可调度资源组包括多个可调度资源;通过第一强化学习模型处理所述多个待调度任务以及所述多个可调度资源组,以得到第一分配关系,所述第一分配关系表示所述多个待调度任务与所述多个可调度资源组之间的对应关系;至少基于所述第一分配关系,通过第二强化学习模型处理所述多个待调度任务和所述多个可调度资源,以得到第二分配关系,所述第二分配关系表示所述多个待调度任务与所述多个可调度资源之间的对应关系;其中,在所述第二分配关系中,部分或全部所述多个待调度任务中的每个待调度任务与对应的可调度资源所属的可调度资源组满足所述第一分配关系。本实施例可以对第一分配关系进行采样,并通过第二强化学习模型分别对各个采样得到的部分待调度任务进行调度分配,进而得到各个部分待调度任务与多个可调度资源之间的对应关系。调度问题中可调度资源组常常是多层级的结构,其可以分成多个粒度层次,现有的任务调度实现中,没有很好的匹配任务调度方法与调度问题的实质结构,而本案考虑了调度问题的自身结构(层级特性),设计了一种多层级的任务调度模型,从而实现了高效的精确求解。通过上述方式,第二强化学习模型不需要对全局的待调度任务进行资源分配,提高了求解效率。
参照图5,图5为本申请实施例提供的一种系统500的结构示意,如图5示出的那样,该系统500包括:由一个或多个计算机实施的第一强化学习模型501和第二强化学习模型502,所述第一强化学习模型和所述第二强化学习模型连接;
所述第一强化学习模型501,用于获取多个待调度任务503以及多个可调度资源组504,并处理所述多个待调度任务503以及所述多个可调度资源组504,以输出第一分配关系505;其中,所述多个可调度资源组中的每个可调度资源组包括多个可调度资源,所述第一分配关系表示所述多个待调度任务与所述多个可调度资源组之间的对应关系;
所述第二强化学习模型502,用于至少基于所述第一分配关系505,处理所述多个待调度任务和所述多个可调度资源,以输出第二分配关系506,所述第二分配关系506表示所述多个待调度任务与所述多个可调度资源之间的对应关系;其中,在所述第二分配关系506中,部分或全部所述多个待调度任务中的每个待调度任务与对应的可调度资源所属的可调度资源组满足所述第一分配关系。
可选地,所述多个可调度资源组中的每个可调度资源组为生产线,所述多个可调度资源中的每个可调度资源为所述生产线中的生产设备;或,
所述多个可调度资源组中的每个可调度资源组为时间段,所述多个可调度资源中的每个可调度资源为所述时间段中的子时间段。
可选地,所述第二强化学习模型502,具体用于至少基于所述第一分配关系,通过第二强化学习模型处理所述多个待调度任务中的部分待调度任务和所述多个可调度资源,以得到子分配关系,所述子分配关系表示所述部分待调度任务与所述多个可调度资源之间的对应关系。
可选地,所述多个待调度任务包括多个第一待调度任务和至少一个第二待调度任务,所述多个可调度资源组包括目标可调度资源组,所述目标可调度资源组包括多个目标可调度资源,在所述第一分配关系中,所述多个第一待调度任务和至少一个第二待调度任务对应于所述目标可调度资源组;
所述第二强化学习模型,还用于在所述多个目标可调度资源中少于预设数量的目标可调度资源可被分配至所述至少一个目标待调度任务的情况下,确定目标约束,所述目标约束表示所述至少一个目标待调度任务不对应于所述目标可调度资源组。
可选地,所述第一强化学习模型501还用于:
至少基于所述目标约束,处理所述多个待调度任务以及所述多个可调度资源组,以得到更新后的第一分配关系507,所述更新后的第一分配关系507表示所述多个待调度任务与所述多个可调度资源组之间的对应关系;其中,在所述更新后的第一分配关系507中,所述至少一个目标待调度任务对应于所述多个可调度资源组中除所述目标可调度资源组之外的可调度资源组;
可选地,所述第二强化学习模型502还用于:
至少基于所述更新后的第一分配关系507,处理所述多个待调度任务和所述多个可调度资源,以得到更新后的第二分配关系508,所述更新后的第二分配关系508表示所述多个待调度任务与所述多个可调度资源之间的对应关系;其中,在所述更新后的第二分配关系508中,所述多个待调度任务中的每个待调度任务与对应的可调度资源所属的可调度资源组满足所述更新后的第一分配关系507。
可选地,对所述第一强化学习模型和所述第二强化学习模型分别进行训练。
可选地,所述第一强化学习模型包括第一奖励函数;所述第二强化学习模型包括第二奖励函数。
所述第一强化学习模型还用于:生成第一共享向量,所述第一共享向量包括多个状态变量;其中每个状态变量可以表示一个待调度任务的分配状态或一个可调度资源组的被占用状态;
所述第二强化学习模型用于:至少基于所述第一共享向量以及所述第一分配关系,通过第二强化学习模型处理所述多个待调度任务和所述多个可调度资源。
可选地,所述第一强化学习模型还用于:生成第二共享向量,所述第二共享向量包括多个状态变量;其中每个状态变量可以表示一个待调度任务的分配状态、一个可调度资源组的被占用状态或一个可调度资源的被占用状态;
所述第二强化学习模型用于:至少基于所述第二共享向量、所述目标约束和所述第二分配关系,通过第一强化学习模型处理所述多个待调度任务以及所述多个可调度资源组。
可选地,所述第一强化学习模型包括DDQN,所述第二强化学习模型包括指针网络PN。
可选地,所述第一强化学习模型和所述第二强化学习模型为循环神经网络。
可选地,所述第一强化学习模型包括基于注意力机制的长短期记忆网络LSTM,所述第二强化学习模型包括用于编码的第一循环神经网络RNN和用于解码的第二RNN。
本申请实施例提供了一种系统,包括:由一个或多个计算机实施的第一强化学习模型和第二强化学习模型,所述第一强化学习模型和所述第二强化学习模型连接;所述第一强化学习模型,用于获取多个待调度任务以及多个可调度资源组,并处理所述多个待调度任务以及所述多个可调度资源组,以输出第一分配关系;其中,所述多个可调度资源组中的每个可调度资源组包括多个可调度资源,所述第一分配关系表示所述多个待调度任务与所述多个可调度资源组之间的对应关系;所述第二强化学习模型,用于基于所述第一分配关系,处理所述多个待调度任务和所述多个可调度资源,以输出第二分配关系,所述第二分配关系表示所述多个待调度任务与所述多个可调度资源之间的对应关系;其中,在所述第二分配关系中,所述多个待调度任务中的每个待调度任务与对应的可调度资源所属的可调度资源组满足所述第一分配关系。本实施例可以对第一分配关系进行采样,并通过第二强化学习模型分别对各个采样得到的部分待调度任务进行调度分配,进而得到各个部分待调度任务与多个可调度资源之间的对应关系。通过上述方式,第二强化学习模型不需要对全局的待调度任务进行资源分配,提高了求解效率。
在一种实施例中,所述第一强化学习模型为双Q网络DDQN,所述第二强化学习模型为指针网络PN。参照图6,图6为本申请实施例中的一种调度器的结构示意,从图6可知,本实施例中提供的调度器为双层级模型,上层为一个DDQN,下层是一个PN,两部分经过一个滑动窗口采样(sliding-window sampling)连接。本实施例中的BDP调度器,还可以有更广泛的应用场景,并不局限于双层级结构本身。例如,当我们处理更复杂的层级结构时,可以依托BDP调度器的结构构成多层级训练方式,不同层之间依托树结构展开。因此,因此本实施例中的BDP调度器具有很高的泛化能力。
示例性的,可以按照如下形式构造强化学习模型:
Figure BDA0002491969970000191
st.,πu,su∈Ωu
Figure BDA0002491969970000192
s.t.,πl,sl∈Ωl.
其中,Ωu可以具体化为:
Figure BDA0002491969970000193
Figure BDA0002491969970000194
Ωl可以具体化为:
Figure BDA0002491969970000201
Figure BDA0002491969970000202
Figure BDA0002491969970000203
Figure BDA0002491969970000204
其中,i可以表示阶段编号(i=1,…,I);j可以表示任务编号(j=1,…,N);k可以表示生产设备编号(k=1,…,M);πu *可以表示上层模型的最佳学习策略;Su *可以表示上层模型的整体状态;πl *可以表示下层模型的最佳学习策略;Sl *可以表示下层模型的整体状态;Ωul可以表示约束函数的集合;γt可以表示强化学习中的折扣因子;Rt,u可以表示上层模型奖励函数;Rt,,l可以表示下层模型奖励函数;sij (u)可以表示上层模型中,每个任务在不同的阶段上的状态,1表示被执行,0表示空闲;sijk (l)可以表示下层模型中,每个任务在不同的阶段上的状态,1表示被执行,0表示空闲;vj,k可以表示任务j在生产设备k的开始时间;Oi,j,k可以表示任务j在阶段i生产设备k的处理时间;ui,j可以表示任务j在阶段i的开始时间;ξi可以表示一个正的常数控制不同的任务在一个阶段的空闲时间。
本实施例中提供的强化学习模型示例为一个双层级规划结构,上下两层分别完成各自的目标。相关约束(2)~(7)是调度问题需要考虑的约束:例如,约束(2)和(4)分别表示每个生产设备同时顶多被一个任务占用,每个任务顶多同时在一个生产设备和一个阶段执行。约束(5)~(7)表示每个生产设备在执行完一个具体任务之前不可以执行下一个任务,等待时间不要超过上一个任务的执行时间等。
上述的模型示例中不需要依赖给定的目标直接完成优化,基于及时的奖励反馈:每一时刻的优化过程主要依赖于上一个时刻的优化结果,但整体利用一个折扣参数,来考虑全局性的目标。在实际优化中,这种阶段性的目标定义会比统一的目标能更加准确的指导优化和求解。示例性的,上层模型双Q网络(double deep q-network,DDQN)可以采用深度强化学习算法进行在线训练,其中可以运用到经验回放池,每次训练的时候,只是采样取一块(batch)来进行,而并非将所有的数据都读入,这样可以极大程度地提升训练的效率;而下层的指针网络(pointer network,PN)主要包括了两个循环神经网络(recurrent neuralnetwork,RNN)模型,分别用于编码(encode)和解码(decode),编码的操作是基于长短期记忆网络(long short-term memory,LSTM)算法的,它将读入的处理工时信息映射到一个更高维度的空间去进行更加精密地训练,然后再通过一个注意力机制(attention-based)的算法来进行解码操作,最终输出一个二次优化的局部最优序列。
以上实例中的整个BDP调度过程形成了一个受约束的马尔科夫决策过程(constraint markov decision process),在这个过程中,上下层之间的状态(state)进行共享。整个过程的状态就是一个0-1向量,N个任务的调度过程便构成一个N维向量。该向量的每个元素的初始值全部是0。决策过程中的动作(action)是选择状态中其中的部分元素由0变成1,表示接下来是要执行这个任务。
示例性的,本实施例可以在两组数据集上完成测试。每一组数据集有9个子集,每个子集有10000个样本,其中,8000个训练样本,1000个测试样本,1000个交叉验证样本。每个样本是由不同的任务在不同机器上的执行时间所组成的数对。不同数据集的区别是任务在不同机器上的执行时间的分布,一个是均匀分布,一个是卡方分布。同一数据集的不同子集的区别是训练集涉及到的任务数不同,分别是25,30,50,100,250,500,1000,2000和5000个。
下列测试中的对比算法主要是两类,一类是启发式算法,主要涉及两个目前应用于调度场景的基于贪婪的启发式算法1和基于NEH的启发式算法2,另一类是两种深度学习算法,一个是基于DDQN,一个是基于PN。
首先给出在不同的数据集的求解质量的对比,在表1和表2中,每行表示的是不同的子数据集中的奖励函数makespan的大小,越小则对应的算法越好。如表1和表2中示出的那样,本申请技术方案(BDP)相比于基于贪婪的启发式算法1(表1和表2中的Heuristic1)、基于NEH的启发式算法2(表1和表2中的Heuristic 2)、DDQN以及PN,其奖励函数makespan的数值大小是更小的,即可以指导得到更小的奖励函数,即在给定若干任务的情况下,可以得到更快速的调度方案,从而节约整体资源。
表1
Figure BDA0002491969970000211
表2
Figure BDA0002491969970000212
参照图7,图7为本申请实施例的计算性能示意,其中横轴表示问题规模,纵轴表示计算时间,单位是秒。星号线是本实施例的结果,方块线是启发式NEH的结果,圆圈线是PN的结果。从图7中我们可以看出,随着问题规模的变大,NEH和PN的运行时间都非线性的递增,尤其是启发式算法。但是本实施例的运行时间是拟线性的增长。从而导致本实施例比其他算法更适合用于工业生产中大规模的调度问题。
表3和表4分别展示两个数据集上的泛化结果,小(small),中(middle)和大(large)分别表示训练算法于只有25个任务,50个任务和100个任务的训练集上,而测试集合涉及到的任务数则在每个表的第一列给出。从两个表我们可以看出,本实施例基本上可以在只有50个任务的训练集完成训练,而在5000个任务的测试集上达到与100个任务的训练集类似的效果。这意味着本申请技术方案在应用场景中是一个非常轻量级的算法,不需要在线下训练中浪费太多时间。
表3
Figure BDA0002491969970000221
表4
Figure BDA0002491969970000222
参照图8和图9a,图8和图9a为本申请实施例和现有其他技术在计算性能上的对比示意。超参测试主要是针对展开的训练方式中滑动窗口采样(sliding-window sampling)而进行的,目的是为了验证训练方式及滑动窗口的必要性。从表5和表6我们可以看出,本申请技术方案中的滑动窗口是必须的,因为beta=0在任务数大于100的情况下,总是解的质量最差的,但是,解的质量并没有随着滑动窗口的变大而变好,而是在一个特定的值上得到最优的结果。因此,滑动窗口的大小在本实施例中是一个基于超参的设计。
图8和图9a的求解时间的对比也从另一个角度验证了滑动窗口的必要性。凡是有滑动窗口的实验,在性能上都超过了没有滑动窗口的实验,即更快得到了最优解。而且,从实验中显示,滑动窗口的大小与计算性能成反比,即:滑动窗口越小,得到解的时间越短。
表5
Figure BDA0002491969970000231
表6
Figure BDA0002491969970000232
参照图9b,图9b为本实施例提供的一种任务调度方法的流程示意,如图9b中示出的那样,本实施例的任务调度方法包括:
901、输入系统信息;
本申请实施例中的系统信息可以包括多个待调度任务、多个可调度资源组以及其他调度信息,例如各个可调度资源组在进行并完成各个任务的时间,以及一些约束条件。具体可以参照图4对应的实施例中步骤401的描述,这里不再赘述。
902、建立双层级调度器;
本申请实施例中的双层级调度器可以包括上述实施例中的第一强化学习模型以及第二强化学习模型,具体可以参照上述实施例中步骤402和步骤403的描述,这里不再赘述。
903、基于调度器上层进行调度处理,并固定相关变量值;
本申请实施例中的调度器上层可以为上述实施例中的第一强化学习模型,关于如何基于调度器上层进行调度处理可以参照上述实施例中步骤402的描述,这里不再赘述。
904、基于调度器下层进行调度处理,并固定相关变量值;
905、判断是否收敛;若是,则进行步骤906,若否,则返回步骤903;
本申请实施例中的调度器下层可以为上述实施例中的第而强化学习模型,关于如何基于调度器下层进行调度处理可以参照上述实施例中步骤403的描述,这里不再赘述。
906、输出调度结果。
参照图10,图10为本实施例提供的一种任务调度装置的结构示意,如图10中示出的那样,本实施例的装置1000包括:
获取模块1001,用于获取多个待调度任务以及多个可调度资源组;其中,所述多个可调度资源组中的每个可调度资源组包括多个可调度资源;
第一强化学习模块1002,用于通过第一强化学习模型处理所述多个待调度任务以及所述多个可调度资源组,以得到第一分配关系,所述第一分配关系表示所述多个待调度任务与所述多个可调度资源组之间的对应关系;
第二强化学习模块1003,用于至少基于所述第一分配关系,通过第二强化学习模型处理所述多个待调度任务和所述多个可调度资源,以得到第二分配关系,所述第二分配关系包括所述多个待调度任务与所述多个可调度资源之间的对应关系;其中,在所述第二分配关系中,部分或全部所述多个待调度任务中的每个待调度任务与对应的可调度资源所属的可调度资源组满足所述第一分配关系。
在一种可选的实现中,所述多个可调度资源组中的每个可调度资源组为生产线,所述多个可调度资源中的每个可调度资源为所述生产线中的生产设备;或,
所述多个可调度资源组中的每个可调度资源组为时间段,所述多个可调度资源中的每个可调度资源为所述时间段中的子时间段。
在一种可选的实现中,所述第二强化学习模块1003,具体用于:
至少基于所述第一分配关系,通过第二强化学习模型处理所述多个待调度任务中的部分待调度任务和所述多个可调度资源,以得到子分配关系,所述子分配关系表示所述多个待调度任务中的部分待调度任务与所述多个可调度资源之间的对应关系。
在一种可选的实现中,所述多个待调度任务包括多个目标待调度任务,所述多个可调度资源组包括目标可调度资源组,所述目标可调度资源组包括多个目标可调度资源,在所述第一分配关系中,所述多个目标待调度任务对应于所述目标可调度资源组;
所述第二强化学习模块1003,具体用于:
在所述多个目标可调度资源中少于预设数量的目标可调度资源可被分配至所述至少一个目标待调度任务的情况下,确定目标约束,所述目标约束表示所述至少一个目标待调度任务不对应于所述目标可调度资源组。
在一种可选的实现中,所述第一强化学习模块1002,还用于至少基于所述目标约束和所述第二分配关系,通过第一强化学习模型处理所述多个待调度任务以及所述多个可调度资源组,以得到更新后的第一分配关系,所述更新后的第一分配关系表示所述多个待调度任务与所述多个可调度资源组之间的对应关系;其中,在所述更新后的第一分配关系中,所述至少一个目标待调度任务对应于所述多个可调度资源组中除所述目标可调度资源组之外的可调度资源组;
所述第二强化学习模块1003,还用于至少基于所述更新后的第一分配关系,通过所述第二强化学习模型处理所述多个待调度任务和所述多个可调度资源,以得到更新后的第二分配关系,所述更新后的第二分配关系表示所述多个待调度任务与所述多个可调度资源之间的对应关系;其中,在所述更新后的第二分配关系中,所述多个待调度任务中的每个待调度任务与对应的可调度资源所属的可调度资源组满足所述更新后的第一分配关系。
在一种可选的实现中,对所述第一强化学习模型和所述第二强化学习模型分别进行训练。
在一种可选的实现中,所述第一强化学习模型包括第一奖励函数;所述第二强化学习模型包括第二奖励函数。
在一种可选的实现中,所述第一强化学习模块,还用于生成第一共享向量,所述第一共享向量包括多个状态变量;其中每个状态变量可以表示一个待调度任务的分配状态或一个可调度资源组的被占用状态;
所述第二强化学习模块,还用于至少基于所述第一共享向量以及所述第一分配关系,通过第二强化学习模型处理所述多个待调度任务和所述多个可调度资源。
在一种可选的实现中,所述第二强化学习模块,还用于生成第二共享向量,所述第二共享向量包括多个状态变量;其中每个状态变量可以表示一个待调度任务的分配状态、一个可调度资源组的被占用状态或一个可调度资源的被占用状态;
所述第一强化学习模块,还用于至少基于所述第二共享向量、所述目标约束和所述第二分配关系,通过第一强化学习模型处理所述多个待调度任务以及所述多个可调度资源组。
本申请提供了一种任务调度装置,所述装置包括:获取模块,用于获取多个待调度任务以及多个可调度资源组;其中,所述多个可调度资源组中的每个可调度资源组包括多个可调度资源;第一强化学习模块,用于通过第一强化学习模型处理所述多个待调度任务以及所述多个可调度资源组,以得到第一分配关系,所述第一分配关系表示所述多个待调度任务与所述多个可调度资源组之间的对应关系;第二强化学习模块,用于基于所述第一分配关系,通过第二强化学习模型处理所述多个待调度任务和所述多个可调度资源,以得到第二分配关系,所述第二分配关系表示所述多个待调度任务与所述多个可调度资源之间的对应关系;其中,在所述第二分配关系中,部分或全部所述多个待调度任务中的每个待调度任务与对应的可调度资源所属的可调度资源组满足所述第一分配关系。本实施例可以对第一分配关系进行采样,并通过第二强化学习模型分别对各个采样得到的部分待调度任务进行调度分配,进而得到各个部分待调度任务与多个可调度资源之间的对应关系。通过上述方式,第二强化学习模型不需要对全局的待调度任务进行资源分配,提高了求解效率。
接下来介绍本申请实施例提供的一种执行设备,请参阅图11,图11为本申请实施例提供的执行设备的一种结构示意图,执行设备1100具体可以表现为手机、平板、笔记本电脑、智能穿戴设备、服务器等,此处不做限定。其中,执行设备1100上可以部署有图10对应实施例中所描述的任务调度装置,用于实现图10对应实施例中任务调度的功能。具体的,执行设备1100包括:接收器1101、发射器1102、处理器1103和存储器1104(其中执行设备1100中的处理器1103的数量可以一个或多个,图11中以一个处理器为例),其中,处理器1103可以包括应用处理器11031和通信处理器11032。在本申请的一些实施例中,接收器1101、发射器1102、处理器1103和存储器1104可通过总线或其它方式连接。
存储器1104可以包括只读存储器和随机存取存储器,并向处理器1103提供指令和数据。存储器1104的一部分还可以包括非易失性随机存取存储器(non-volatile randomaccess memory,NVRAM)。存储器1104存储有处理器和操作指令、可执行模块或者数据结构,或者它们的子集,或者它们的扩展集,其中,操作指令可包括各种操作指令,用于实现各种操作。
处理器1103控制执行设备的操作。具体的应用中,执行设备的各个组件通过总线系统耦合在一起,其中总线系统除包括数据总线之外,还可以包括电源总线、控制总线和状态信号总线等。但是为了清楚说明起见,在图中将各种总线都称为总线系统。
上述本申请实施例揭示的方法可以应用于处理器1103中,或者由处理器1103实现。处理器1103可以是一种集成电路芯片,具有信号的处理能力。在实现过程中,上述方法的各步骤可以通过处理器1103中的硬件的集成逻辑电路或者软件形式的指令完成。上述的处理器1103可以是通用处理器、数字信号处理器(digital signal processing,DSP)、微处理器或微控制器,还可进一步包括专用集成电路(application specific integratedcircuit,ASIC)、现场可编程门阵列(field-programmable gate array,FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。该处理器1103可以实现或者执行本申请实施例中的公开的各方法、步骤及逻辑框图。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。结合本申请实施例所公开的方法的步骤可以直接体现为硬件译码处理器执行完成,或者用译码处理器中的硬件及软件模块组合执行完成。软件模块可以位于随机存储器,闪存、只读存储器,可编程只读存储器或者电可擦写可编程存储器、寄存器等本领域成熟的存储介质中。该存储介质位于存储器1104,处理器1103读取存储器1104中的信息,结合其硬件完成上述方法的步骤。
接收器1101可用于接收输入的数字或字符信息,以及产生与执行设备的相关设置以及功能控制有关的信号输入。发射器1102可用于通过第一接口输出数字或字符信息;发射器1102还可用于通过第一接口向磁盘组发送指令,以修改磁盘组中的数据;发射器1102还可以包括显示屏等显示设备。
本申请实施例中,在一种情况下,处理器1103,用于执行图4对应实施例中的执行设备执行的任务调度方法。
本申请实施例还提供了一种训练设备,请参阅图12,图12是本申请实施例提供的训练设备一种结构示意图,具体的,训练设备1200由一个或多个服务器实现,训练设备1200可因配置或性能不同而产生比较大的差异,可以包括一个或一个以上中央处理器(centralprocessing units,CPU)1212(例如,一个或一个以上处理器)和存储器1232,一个或一个以上存储应用程序1242或数据1244的存储介质1230(例如一个或一个以上海量存储设备)。其中,存储器1232和存储介质1230可以是短暂存储或持久存储。存储在存储介质1230的程序可以包括一个或一个以上模块(图示没标出),每个模块可以包括对训练设备中的一系列指令操作。更进一步地,中央处理器1212可以设置为与存储介质1230通信,在训练设备1200上执行存储介质1230中的一系列指令操作。
训练设备1200还可以包括一个或一个以上电源1226,一个或一个以上有线或无线网络接口1250,一个或一个以上输入输出接口1258;或,一个或一个以上操作系统1241,例如Windows ServerTM,Mac OS XTM,UnixTM,LinuxTM,FreeBSDTM等等。
本申请实施例中,中央处理器1212,用于执行上述实施例中的与强化学习网络训练方法相关的步骤。
本申请实施例中还提供一种包括计算机程序产品,当其在计算机上运行时,使得计算机执行如前述执行设备所执行的步骤,或者,使得计算机执行如前述训练设备所执行的步骤。
本申请实施例中还提供一种计算机可读存储介质,该计算机可读存储介质中存储有用于进行信号处理的程序,当其在计算机上运行时,使得计算机执行如前述执行设备所执行的步骤,或者,使得计算机执行如前述训练设备所执行的步骤。
本申请实施例提供的执行设备、训练设备或终端设备具体可以为芯片,芯片包括:处理单元和通信单元,所述处理单元例如可以是处理器,所述通信单元例如可以是输入/输出接口、管脚或电路等。该处理单元可执行存储单元存储的计算机执行指令,以使执行设备内的芯片执行上述实施例描述的数据处理方法,或者,以使训练设备内的芯片执行上述实施例描述的数据处理方法。可选地,所述存储单元为所述芯片内的存储单元,如寄存器、缓存等,所述存储单元还可以是所述无线接入设备端内的位于所述芯片外部的存储单元,如只读存储器(read-only memory,ROM)或可存储静态信息和指令的其他类型的静态存储设备,随机存取存储器(random access memory,RAM)等。
具体的,请参阅图13,图13为本申请实施例提供的芯片的一种结构示意图,所述芯片可以表现为神经网络处理器NPU 1300,NPU 1300作为协处理器挂载到主CPU(Host CPU)上,由Host CPU分配任务。NPU的核心部分为运算电路1303,通过控制器1304控制运算电路1303提取存储器中的矩阵数据并进行乘法运算。
在一些实现中,运算电路1303内部包括多个处理单元(Process Engine,PE)。在一些实现中,运算电路1303是二维脉动阵列。运算电路1303还可以是一维脉动阵列或者能够执行例如乘法和加法这样的数学运算的其它电子线路。在一些实现中,运算电路1303是通用的矩阵处理器。
举例来说,假设有输入矩阵A,权重矩阵B,输出矩阵C。运算电路从权重存储器1302中取矩阵B相应的数据,并缓存在运算电路中每一个PE上。运算电路从输入存储器1301中取矩阵A数据与矩阵B进行矩阵运算,得到的矩阵的部分结果或最终结果,保存在累加器(accumulator)1308中。
统一存储器1306用于存放输入数据以及输出数据。权重数据直接通过存储单元访问控制器(Direct Memory Access Controller,DMAC)1305,DMAC被搬运到权重存储器1302中。输入数据也通过DMAC被搬运到统一存储器1306中。
BIU为Bus Interface Unit即,总线接口单元1310,用于AXI总线与DMAC和取指存储器(Instruction Fetch Buffer,IFB)1309的交互。
总线接口单元1310(Bus Interface Unit,简称BIU),用于取指存储器1309从外部存储器获取指令,还用于存储单元访问控制器1305从外部存储器获取输入矩阵A或者权重矩阵B的原数据。
DMAC主要用于将外部存储器DDR中的输入数据搬运到统一存储器1306或将权重数据搬运到权重存储器1302中或将输入数据数据搬运到输入存储器1301中。
向量计算单元1307包括多个运算处理单元,在需要的情况下,对运算电路1303的输出做进一步处理,如向量乘,向量加,指数运算,对数运算,大小比较等等。主要用于神经网络中非卷积/全连接层网络计算,如Batch Normalization(批归一化),像素级求和,对特征平面进行上采样等。
在一些实现中,向量计算单元1307能将经处理的输出的向量存储到统一存储器1306。例如,向量计算单元1307可以将线性函数;或,非线性函数应用到运算电路1303的输出,例如对卷积层提取的特征平面进行线性插值,再例如累加值的向量,用以生成激活值。在一些实现中,向量计算单元1307生成归一化的值、像素级求和的值,或二者均有。在一些实现中,处理过的输出的向量能够用作到运算电路1303的激活输入,例如用于在神经网络中的后续层中的使用。
控制器1304连接的取指存储器(instruction fetch buffer)1309,用于存储控制器1304使用的指令;
统一存储器1306,输入存储器1301,权重存储器1302以及取指存储器1309均为On-Chip存储器。外部存储器私有于该NPU硬件架构。
其中,上述任一处提到的处理器,可以是一个通用中央处理器,微处理器,ASIC,或一个或多个用于控制上述程序执行的集成电路。
另外需说明的是,以上所描述的装置实施例仅仅是示意性的,其中所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。另外,本申请提供的装置实施例附图中,模块之间的连接关系表示它们之间具有通信连接,具体可以实现为一条或多条通信总线或信号线。
通过以上的实施方式的描述,所属领域的技术人员可以清楚地了解到本申请可借助软件加必需的通用硬件的方式来实现,当然也可以通过专用硬件包括专用集成电路、专用CPU、专用存储器、专用元器件等来实现。一般情况下,凡由计算机程序完成的功能都可以很容易地用相应的硬件来实现,而且,用来实现同一功能的具体硬件结构也可以是多种多样的,例如模拟电路、数字电路或专用电路等。但是,对本申请而言更多情况下软件程序实现是更佳的实施方式。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在可读取的存储介质中,如计算机的软盘、U盘、移动硬盘、ROM、RAM、磁碟或者光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,训练设备,或者网络设备等)执行本申请各个实施例所述的方法。
在上述实施例中,可以全部或部分地通过软件、硬件、固件或者其任意组合来实现。当使用软件实现时,可以全部或部分地以计算机程序产品的形式实现。
所述计算机程序产品包括一个或多个计算机指令。在计算机上加载和执行所述计算机程序指令时,全部或部分地产生按照本申请实施例所述的流程或功能。所述计算机可以是通用计算机、专用计算机、计算机网络、或者其他可编程装置。所述计算机指令可以存储在计算机可读存储介质中,或者从一个计算机可读存储介质向另一计算机可读存储介质传输,例如,所述计算机指令可以从一个网站站点、计算机、训练设备或数据中心通过有线(例如同轴电缆、光纤、数字用户线(DSL))或无线(例如红外、无线、微波等)方式向另一个网站站点、计算机、训练设备或数据中心进行传输。所述计算机可读存储介质可以是计算机能够存储的任何可用介质或者是包含一个或多个可用介质集成的训练设备、数据中心等数据存储设备。所述可用介质可以是磁性介质,(例如,软盘、硬盘、磁带)、光介质(例如,DVD)、或者半导体介质(例如固态硬盘(Solid State Disk,SSD))等。

Claims (33)

1.一种任务调度方法,其特征在于,所述方法包括:
获取多个待调度任务以及多个可调度资源组;其中,所述多个可调度资源组中的每个可调度资源组包括多个可调度资源;
通过第一强化学习模型处理所述多个待调度任务以及所述多个可调度资源组,以得到第一分配关系,所述第一分配关系包括所述多个待调度任务与所述多个可调度资源组之间的对应关系;
至少基于所述第一分配关系,通过第二强化学习模型处理所述多个待调度任务和所述多个可调度资源,以得到第二分配关系,所述第二分配关系包括所述多个待调度任务与所述多个可调度资源之间的对应关系;其中,在所述第二分配关系中,部分或全部所述多个待调度任务中的每个待调度任务与对应的可调度资源所属的可调度资源组满足所述第一分配关系。
2.根据权利要求1所述的方法,其特征在于,所述多个可调度资源组中的每个可调度资源组为生产线,所述多个可调度资源中的每个可调度资源为所述生产线中的生产设备;或,
所述多个可调度资源组中的每个可调度资源组为时间段,所述多个可调度资源中的每个可调度资源为所述时间段中的子时间段。
3.根据权利要求1或2所述的方法,其特征在于,所述基于所述第一分配关系,通过第二强化学习模型处理所述多个待调度任务和所述多个可调度资源,包括:
至少基于所述第一分配关系,通过第二强化学习模型处理所述多个待调度任务中的部分待调度任务和所述多个可调度资源,以得到子分配关系,所述子分配关系表示所述部分待调度任务与所述多个可调度资源之间的对应关系。
4.根据权利要求1或2所述的方法,其特征在于,所述多个待调度任务包括多个目标待调度任务,所述多个可调度资源组包括目标可调度资源组,所述目标可调度资源组包括多个目标可调度资源,在所述第一分配关系中,所述多个目标待调度任务对应于所述目标可调度资源组;所述方法还包括:
在所述多个目标可调度资源中少于预设数量的目标可调度资源可被分配至所述至少一个目标待调度任务的情况下,确定目标约束,所述目标约束表示所述至少一个目标待调度任务不对应于所述目标可调度资源组。
5.根据权利要求4所述的方法,其特征在于,所述方法还包括:
至少基于所述目标约束和所述第二分配关系,通过第一强化学习模型处理所述多个待调度任务以及所述多个可调度资源组,以得到更新后的第一分配关系,所述更新后的第一分配关系表示所述多个待调度任务与所述多个可调度资源组之间的对应关系;其中,在所述更新后的第一分配关系中,所述至少一个目标待调度任务对应于所述多个可调度资源组中除所述目标可调度资源组之外的可调度资源组;
至少基于所述更新后的第一分配关系,通过所述第二强化学习模型处理所述多个待调度任务和所述多个可调度资源,以得到更新后的第二分配关系,所述更新后的第二分配关系表示所述多个待调度任务与所述多个可调度资源之间的对应关系;其中,在所述更新后的第二分配关系中,所述多个待调度任务中的每个待调度任务与对应的可调度资源所属的可调度资源组满足所述更新后的第一分配关系。
6.根据权利要求1至5任一所述的方法,其特征在于,对所述第一强化学习模型和所述第二强化学习模型分别进行训练。
7.根据权利要求1至6任一所述的方法,其特征在于,所述第一强化学习模型包括第一奖励函数;所述第二强化学习模型包括第二奖励函数。
8.根据权利要求1至6任一所述的方法,其特征在于,所述方法还包括:
生成第一共享向量,所述第一共享向量包括多个状态变量;其中每个状态变量可以表示一个待调度任务的分配状态或一个可调度资源组的被占用状态;
所述至少基于所述第一分配关系,通过第二强化学习模型处理所述多个待调度任务和所述多个可调度资源,包括:
至少基于所述第一共享向量以及所述第一分配关系,通过第二强化学习模型处理所述多个待调度任务和所述多个可调度资源。
9.根据权利要求5至7任一所述的方法,其特征在于,所述方法包括:
生成第二共享向量,所述第二共享向量包括多个状态变量;其中每个状态变量可以表示一个待调度任务的分配状态、一个可调度资源组的被占用状态或一个可调度资源的被占用状态;
所述至少基于所述目标约束和所述第二分配关系,通过第一强化学习模型处理所述多个待调度任务以及所述多个可调度资源组,包括:
至少基于所述第二共享向量、所述目标约束和所述第二分配关系,通过第一强化学习模型处理所述多个待调度任务以及所述多个可调度资源组。
10.一种系统,其特征在于,包括:由一个或多个计算机实施的第一强化学习模型和第二强化学习模型;
所述第一强化学习模型,用于获取多个待调度任务以及多个可调度资源组,并处理所述多个待调度任务以及所述多个可调度资源组,以得到第一分配关系;其中,所述多个可调度资源组中的每个可调度资源组包括多个可调度资源,所述第一分配关系包括所述多个待调度任务与所述多个可调度资源组之间的对应关系;
所述第二强化学习模型,用于至少基于所述第一分配关系,通过第二强化学习模型处理所述多个待调度任务和所述多个可调度资源,以得到第二分配关系,所述第二分配关系包括所述多个待调度任务与所述多个可调度资源之间的对应关系;其中,在所述第二分配关系中,部分或全部所述多个待调度任务中的每个待调度任务与对应的可调度资源所属的可调度资源组满足所述第一分配关系。
11.根据权利要求10所述的系统,其特征在于,所述多个可调度资源组中的每个可调度资源组为生产线,所述多个可调度资源中的每个可调度资源为所述生产线中的生产设备;或,
所述多个可调度资源组中的每个可调度资源组为时间段,所述多个可调度资源中的每个可调度资源为所述时间段中的子时间段。
12.根据权利要求10或11所述的系统,其特征在于,
所述第二强化学习模型,用于至少基于所述第一分配关系,通过第二强化学习模型处理所述多个待调度任务中的部分待调度任务和所述多个可调度资源,以得到子分配关系,所述子分配关系表示所述部分待调度任务与所述多个可调度资源之间的对应关系。
13.根据权利要求10或11所述的系统,其特征在于,所述多个待调度任务包括多个目标待调度任务,所述多个可调度资源组包括目标可调度资源组,所述目标可调度资源组包括多个目标可调度资源,在所述第一分配关系中,所述多个目标待调度任务对应于所述目标可调度资源组;
所述第二强化学习模型,还用于在所述多个目标可调度资源中少于预设数量的目标可调度资源可被分配至所述至少一个目标待调度任务的情况下,确定目标约束,所述目标约束表示所述至少一个目标待调度任务不对应于所述目标可调度资源组。
14.根据权利要求13所述的系统,其特征在于,所述第一强化学习模型还用于:
至少基于所述目标约束和所述第二分配关系,通过第一强化学习模型处理所述多个待调度任务以及所述多个可调度资源组,以得到更新后的第一分配关系,所述更新后的第一分配关系表示所述多个待调度任务与所述多个可调度资源组之间的对应关系;其中,在所述更新后的第一分配关系中,所述至少一个目标待调度任务对应于所述多个可调度资源组中除所述目标可调度资源组之外的可调度资源组;
所述第二强化学习模型还用于:
至少基于所述更新后的第一分配关系,通过所述第二强化学习模型处理所述多个待调度任务和所述多个可调度资源,以得到更新后的第二分配关系,所述更新后的第二分配关系表示所述多个待调度任务与所述多个可调度资源之间的对应关系;其中,在所述更新后的第二分配关系中,所述多个待调度任务中的每个待调度任务与对应的可调度资源所属的可调度资源组满足所述更新后的第一分配关系。
15.根据权利要求10至14任一所述的系统,其特征在于,对所述第一强化学习模型和所述第二强化学习模型分别进行训练。
16.根据权利要求10至15任一所述的系统,其特征在于,所述第一强化学习模型包括第一奖励函数;所述第二强化学习模型包括第二奖励函数。
17.根据权利要求10至16任一所述的系统,其特征在于,所述第一强化学习模型还用于:生成第一共享向量,所述第一共享向量包括多个状态变量;其中每个状态变量可以表示一个待调度任务的分配状态或一个可调度资源组的被占用状态;
所述第二强化学习模型用于:至少基于所述第一共享向量以及所述第一分配关系,通过第二强化学习模型处理所述多个待调度任务和所述多个可调度资源。
18.根据权利要求10至16任一所述的系统,其特征在于,所述第一强化学习模型还用于:生成第二共享向量,所述第二共享向量包括多个状态变量;其中每个状态变量可以表示一个待调度任务的分配状态、一个可调度资源组的被占用状态或一个可调度资源的被占用状态;
所述第二强化学习模型用于:至少基于所述第二共享向量、所述目标约束和所述第二分配关系,通过第一强化学习模型处理所述多个待调度任务以及所述多个可调度资源组。
19.根据权利要求10至18任一所述的系统,其特征在于,所述第一强化学习模型包括DDQN,所述第二强化学习模型包括指针网络PN。
20.根据权利要求10至18任一所述的系统,其特征在于,所述第一强化学习模型和所述第二强化学习模型包括循环神经网络。
21.根据权利要求20所述的系统,其特征在于,所述第一强化学习模型包括两个基于注意力机制的长短期记忆网络LSTM,所述第二强化学习模型包括用于编码的第一循环神经网络RNN和用于解码的第二RNN。
22.一种任务调度装置,其特征在于,所述装置包括:
获取模块,用于获取多个待调度任务以及多个可调度资源组;其中,所述多个可调度资源组中的每个可调度资源组包括多个可调度资源;
第一强化学习模块,用于通过第一强化学习模型处理所述多个待调度任务以及所述多个可调度资源组,以得到第一分配关系,所述第一分配关系包括所述多个待调度任务与所述多个可调度资源组之间的对应关系;
第二强化学习模块,用于至少基于所述第一分配关系,通过第二强化学习模型处理所述多个待调度任务和所述多个可调度资源,以得到第二分配关系,所述第二分配关系包括所述多个待调度任务与所述多个可调度资源之间的对应关系;其中,在所述第二分配关系中,部分或全部所述多个待调度任务中的每个待调度任务与对应的可调度资源所属的可调度资源组满足所述第一分配关系。
23.根据权利要求22所述的装置,其特征在于,所述多个可调度资源组中的每个可调度资源组为生产线,所述多个可调度资源中的每个可调度资源为所述生产线中的生产设备;或,
所述多个可调度资源组中的每个可调度资源组为时间段,所述多个可调度资源中的每个可调度资源为所述时间段中的子时间段。
24.根据权利要求22或23所述的装置,其特征在于,所述第二强化学习模块,具体用于:
至少基于所述第一分配关系,通过第二强化学习模型处理所述多个待调度任务中的部分待调度任务和所述多个可调度资源,以得到子分配关系,所述子分配关系表示所述部分待调度任务与所述多个可调度资源之间的对应关系。
25.根据权利要求22或23所述的装置,其特征在于,所述多个待调度任务包括多个目标待调度任务,所述多个可调度资源组包括目标可调度资源组,所述目标可调度资源组包括多个目标可调度资源,在所述第一分配关系中,所述多个目标待调度任务对应于所述目标可调度资源组;
所述第二强化学习模块,具体用于:
在所述多个目标可调度资源中少于预设数量的目标可调度资源可被分配至所述至少一个目标待调度任务的情况下,确定目标约束,所述目标约束表示所述至少一个目标待调度任务不对应于所述目标可调度资源组。
26.根据权利要求25所述的装置,其特征在于,所述第一强化学习模块,还用于至少基于所述目标约束和所述第二分配关系,通过第一强化学习模型处理所述多个待调度任务以及所述多个可调度资源组,以得到更新后的第一分配关系,所述更新后的第一分配关系表示所述多个待调度任务与所述多个可调度资源组之间的对应关系;其中,在所述更新后的第一分配关系中,所述至少一个目标待调度任务对应于所述多个可调度资源组中除所述目标可调度资源组之外的可调度资源组;
所述第二强化学习模块,还用于至少基于所述更新后的第一分配关系,通过所述第二强化学习模型处理所述多个待调度任务和所述多个可调度资源,以得到更新后的第二分配关系,所述更新后的第二分配关系表示所述多个待调度任务与所述多个可调度资源之间的对应关系;其中,在所述更新后的第二分配关系中,所述多个待调度任务中的每个待调度任务与对应的可调度资源所属的可调度资源组满足所述更新后的第一分配关系。
27.根据权利要求22至26任一所述的装置,其特征在于,对所述第一强化学习模型和所述第二强化学习模型分别进行训练。
28.根据权利要求22至27任一所述的装置,其特征在于,所述第一强化学习模型包括第一奖励函数;所述第二强化学习模型包括第二奖励函数。
29.根据权利要求22至28任一所述的装置,其特征在于,所述第一强化学习模块,还用于生成第一共享向量,所述第一共享向量包括多个状态变量;其中每个状态变量可以表示一个待调度任务的分配状态或一个可调度资源组的被占用状态;
所述第二强化学习模块,还用于至少基于所述第一共享向量以及所述第一分配关系,通过第二强化学习模型处理所述多个待调度任务和所述多个可调度资源。
30.根据权利要求26至28任一所述的装置,其特征在于,所述第二强化学习模块,还用于生成第二共享向量,所述第二共享向量包括多个状态变量;其中每个状态变量可以表示一个待调度任务的分配状态、一个可调度资源组的被占用状态或一个可调度资源的被占用状态;
所述第一强化学习模块,还用于至少基于所述第二共享向量、所述目标约束和所述第二分配关系,通过第一强化学习模型处理所述多个待调度任务以及所述多个可调度资源组。
31.一种计算机存储介质,其特征在于,所述计算机存储介质存储有一个或多个指令,所述指令在由一个或多个计算机执行时使得所述一个或多个计算机执行权利要求1-9中任一项所述方法的操作。
32.一种计算机存储介质,其特征在于,所述计算机存储介质存储有一个或多个指令,所述指令在由一个或多个计算机执行时使得所述一个或多个计算机实施权利要求10-21中任一所述的系统。
33.一种系统,包括至少一个处理器,至少一个存储器以及至少一个通信接口;所述处理器、所述存储器和所述通信接口通过通信总线连接并完成相互间的通信;
所述至少一个存储器用于存储代码;
所述至少一个处理器用于执行所述代码,以执行如权利要求1-9任一所述的任务调度方法,以得到任务调度结果;
所述至少一个通信接口,用于与设备或通信网络通信,以将所述任务调度结果发送至所述设备或通信网络。
CN202010407594.3A 2020-05-14 2020-05-14 一种任务调度方法及其装置 Pending CN111738488A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202010407594.3A CN111738488A (zh) 2020-05-14 2020-05-14 一种任务调度方法及其装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202010407594.3A CN111738488A (zh) 2020-05-14 2020-05-14 一种任务调度方法及其装置

Publications (1)

Publication Number Publication Date
CN111738488A true CN111738488A (zh) 2020-10-02

Family

ID=72647202

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202010407594.3A Pending CN111738488A (zh) 2020-05-14 2020-05-14 一种任务调度方法及其装置

Country Status (1)

Country Link
CN (1) CN111738488A (zh)

Cited By (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112270483A (zh) * 2020-11-03 2021-01-26 成金梅 基于人工智能的化妆品生产信息监测方法及大数据中心
CN112395690A (zh) * 2020-11-24 2021-02-23 中国人民解放军海军航空大学 基于强化学习的舰载机舰面保障流程优化方法
CN112650583A (zh) * 2020-12-23 2021-04-13 新智数字科技有限公司 一种资源分配方法、装置、可读介质及电子设备
CN113627781A (zh) * 2021-08-09 2021-11-09 北京百度网讯科技有限公司 任务信息生成方法、装置、设备、存储介质和程序产品
CN113780839A (zh) * 2021-09-15 2021-12-10 湖南视比特机器人有限公司 基于深度强化学习的演化式分拣作业调度方法及系统
WO2022151951A1 (zh) * 2021-01-13 2022-07-21 华为技术有限公司 任务调度方法及管理系统
CN115660383A (zh) * 2022-12-12 2023-01-31 成都工业职业技术学院 农产品产销资源均衡分配分析方法、系统、终端及介质

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103439886A (zh) * 2013-07-26 2013-12-11 同济大学 一种半导体生产线自适应动态调度装置
CN109270904A (zh) * 2018-10-22 2019-01-25 中车青岛四方机车车辆股份有限公司 一种柔性作业车间批量动态调度优化方法
CN109902851A (zh) * 2018-10-18 2019-06-18 华为技术有限公司 一种生产计划的确定方法以及装置
US20190227533A1 (en) * 2018-01-19 2019-07-25 Industrial Technology Research Institute Method and apparatus for dynamic intelligent scheduling
CN110750342A (zh) * 2019-05-23 2020-02-04 北京嘀嘀无限科技发展有限公司 调度方法、装置、电子设备及可读存储介质

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103439886A (zh) * 2013-07-26 2013-12-11 同济大学 一种半导体生产线自适应动态调度装置
US20190227533A1 (en) * 2018-01-19 2019-07-25 Industrial Technology Research Institute Method and apparatus for dynamic intelligent scheduling
CN109902851A (zh) * 2018-10-18 2019-06-18 华为技术有限公司 一种生产计划的确定方法以及装置
CN109270904A (zh) * 2018-10-22 2019-01-25 中车青岛四方机车车辆股份有限公司 一种柔性作业车间批量动态调度优化方法
CN110750342A (zh) * 2019-05-23 2020-02-04 北京嘀嘀无限科技发展有限公司 调度方法、装置、电子设备及可读存储介质

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
DAMING SHI 等: "Intelligent scheduling of discrete automated production line via deep reinforcement learning", 《INTERNATIONAL JOURNAL OF PRODUCTION RESEARCH》, pages 3362 - 3380 *
李 莉等: "半导体生产线动态调度方法研究", 《计算机集成制造系统》, vol. 10, no. 8, pages 949 - 954 *

Cited By (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112270483A (zh) * 2020-11-03 2021-01-26 成金梅 基于人工智能的化妆品生产信息监测方法及大数据中心
CN112395690A (zh) * 2020-11-24 2021-02-23 中国人民解放军海军航空大学 基于强化学习的舰载机舰面保障流程优化方法
CN112650583A (zh) * 2020-12-23 2021-04-13 新智数字科技有限公司 一种资源分配方法、装置、可读介质及电子设备
WO2022151951A1 (zh) * 2021-01-13 2022-07-21 华为技术有限公司 任务调度方法及管理系统
CN113627781A (zh) * 2021-08-09 2021-11-09 北京百度网讯科技有限公司 任务信息生成方法、装置、设备、存储介质和程序产品
CN113627781B (zh) * 2021-08-09 2023-07-25 北京百度网讯科技有限公司 任务信息生成方法、装置、设备、存储介质和程序产品
CN113780839A (zh) * 2021-09-15 2021-12-10 湖南视比特机器人有限公司 基于深度强化学习的演化式分拣作业调度方法及系统
CN113780839B (zh) * 2021-09-15 2023-08-22 湖南视比特机器人有限公司 基于深度强化学习的演化式分拣作业调度方法及系统
CN115660383A (zh) * 2022-12-12 2023-01-31 成都工业职业技术学院 农产品产销资源均衡分配分析方法、系统、终端及介质
CN115660383B (zh) * 2022-12-12 2023-03-10 成都工业职业技术学院 农产品产销资源均衡分配分析方法、系统、终端及介质

Similar Documents

Publication Publication Date Title
CN111738488A (zh) 一种任务调度方法及其装置
CN113449857B (zh) 一种数据处理方法和数据处理设备
WO2022068623A1 (zh) 一种模型训练方法及相关设备
CN113449859A (zh) 一种数据处理方法及其装置
WO2022068663A1 (zh) 内存分配方法、相关设备及计算机可读存储介质
WO2023051505A1 (zh) 一种任务求解方法及其装置
WO2022048557A1 (zh) Ai模型的训练方法、装置、计算设备和存储介质
CN112328646B (zh) 多任务课程推荐方法、装置、计算机设备及存储介质
CN112764893A (zh) 数据处理方法和数据处理系统
CN111966361A (zh) 用于确定待部署模型的方法、装置、设备及其存储介质
CN113886080A (zh) 高性能集群任务调度方法、装置、电子设备及存储介质
CN113869496A (zh) 一种神经网络的获取方法、数据处理方法以及相关设备
CN115794341A (zh) 基于人工智能的任务调度方法、装置、设备及存储介质
CN115238909A (zh) 一种基于联邦学习的数据价值评估方法及其相关设备
CN112528108A (zh) 一种模型训练系统、模型训练中梯度聚合的方法及装置
CN116843022A (zh) 一种数据处理方法及相关装置
CN116739154A (zh) 一种故障预测方法及其相关设备
CN114707643A (zh) 一种模型切分方法及其相关设备
CN114707070A (zh) 一种用户行为预测方法及其相关设备
CN114021733A (zh) 模型训练优化方法、装置、计算机设备及存储介质
CN113065638A (zh) 一种神经网络压缩方法及其相关设备
WO2023207630A1 (zh) 一种任务求解方法及其装置
US20240135174A1 (en) Data processing method, and neural network model training method and apparatus
CN117056589A (zh) 一种物品推荐方法及其相关设备
CN116310677A (zh) 一种图像处理方法及其相关设备

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