一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

用于资源调度的方法、系统、装置和介质与流程

2022-06-08 14:15:52 来源:中国专利 TAG:


1.本技术涉及资源调度,尤其涉及用于资源调度的方法、系统、装置和介质。


背景技术:

2.存在各种类型的资源调度问题。例如,在涉及计算设备的场景中,希望最优地调度(例如,如何分配)计算设备的处理器、内存、存储器、io、网络等资源来执行一个或多个计算任务。其它类型的资源,例如实物资源、运输资源、时间资源等等,同样存在类似的调度问题。
3.尤其是,当使用资源调度策略来调度这些资源的过程中存在约束冲突时,如何获得可行解,是需要解决的问题。
4.因此,需要能够灵活地执行资源调度的方案。


技术实现要素:

5.为了克服现有技术的缺陷,本说明书的一个或多个实施例通过将松弛变量引入规划模型,从而增加了获得可行解的概率。
6.本说明书的一个或多个实施例通过以下技术方案来实现其上述目的。
7.在一个方面,提供了一种用于资源调度的方法,包括:获取关于供调度的资源的资源信息;获取资源需求信息;基于所述资源信息和所述资源需求信息生成规划模型,所述规划模型包括目标函数和一个或多个约束条件;将松弛变量应用于所述规划模型,以生成新规划模型;以及对所述新规划模型进行求解以获得可行解,其中对所述供调度的资源的调度至少部分地基于所述可行解。
8.优选地,其中获取关于供调度的资源的资源信息包括:自动读取一个或多个计算设备的硬件信息;以及基于所读取的硬件信息来确定所述资源信息。
9.优选地,其中获取资源需求信息包括:自动读取一个或多个计算任务的配置信息;以及基于所述配置信息来确定所述资源需求信息。
10.优选地,其中将松弛变量应用于所述规划模型包括:判断所述规划模型是否有可行解;以及当所述规划模型没有可行解时,将松弛变量应用于所述规划模型。
11.优选地,其中将松弛变量应用于所述规划模型包括:接收来自用户的输入;以及基于来自所述用户的输入,自动生成用于将松弛变量应用于所述规划模型的一个或多个参数。
12.优选地,其中所述新规划模型包括新目标函数,且优化方向为使所述新目标函数最小化,其中所述新目标函数包括所应用的松弛变量的绝对值之和。
13.优选地,其中所述新目标函数为所应用的松弛变量的绝对值之和与所述目标函数的加权和。
14.优选地,其中一个或多个约束条件具有量纲,且所述方法还包括:对所述量纲执行归一化。
15.优选地,其中所述一个或多个约束条件包括等式约束条件和不等式约束条件,且其中所述新规划模型允许独立地将松弛变量应用于等式约束条件和不等式约束条件。
16.优选地,其中所述一个或多个约束条件包括边界型约束条件和约束型约束条件,且其中所述新规划模型允许独立地将松弛变量应用于边界型约束条件和约束型约束条件。
17.优选地,其中所述新规划模型允许独立地控制是否向所述一个或多个约束条件中的每一者应用松弛变量。
18.优选地,其中所述新规划模型允许独立地控制向所述一个或多个约束条件中的每一者应用的松弛变量的权重。
19.优选地,其中所述新规划模型允许独立地控制向所述一个或多个约束条件中的每一者应用的松弛变量的取值范围。
20.在另一方面,提供了一种用于资源调度的系统,包括:资源信息获取模块,用于获取关于供调度的资源的资源信息;资源需求信息获取模块,用于获取资源需求信息;规划模型生成模块,用于基于所述资源信息和所述资源需求信息生成规划模型,所述规划模型包括目标函数和一个或多个约束条件;松弛变量应用模块,用于将松弛变量应用于所述规划模型,以生成新规划模型;以及规划模型求解模块,用于对所述新规划模型进行求解以获得可行解,其中对所述供调度的资源的调度至少部分地基于所述可行解。
21.优选地,所述系统进一步包括:资源调度模块,用于至少部分地基于所述可行解对所述供调度的资源执行调度。
22.优选地,其中所述松弛变量应用模块用于:判断所述规划模型是否有可行解;以及当所述规划模型没有可行解时,将松弛变量应用于所述规划模型。
23.优选地,其中所述新规划模型允许独立地控制向所述一个或多个约束条件中的每一者应用的松弛变量的权重。
24.优选地,其中所述新规划模型允许独立地控制向所述一个或多个约束条件中的每一者应用的松弛变量的取值范围。
25.在又另一方面中,提供了一种用于资源调度的装置,包括:存储器;以及处理器,所述处理器被配置成执行如上文任一项所述的方法。
26.在又另一方面中,提供了一种存储指令的计算机可读存储介质,该指令当被计算机执行时,使所述计算机执行上述方法。
27.与现有技术相比,本说明书的一个或多个实施例能够实现以下技术效果中的一者或多者:增加了规划模型获得可行解的概率;能够灵活地执行对约束条件的各种松弛;能够综合考虑原始目标和松弛变量影响最小化。
附图说明
28.以上发明内容以及下面的具体实施方式在结合附图阅读时会得到更好的理解。需要说明的是,附图仅作为所请求保护的发明的示例。在附图中,相同的附图标记代表相同或类似的元素。
29.图1示出根据本说明书实施例的用于资源调度的示例方法的示意流程图。
30.图2示出根据本说明书的实施例的用于资源调度的示例场景的示意图。
31.图3示出根据本说明书的实施例的用于资源调度的另一示例场景的示意图。
32.图4示出根据本说明书实施例的用于资源调度的另一示例方法的示意流程图。
33.图5示出根据本说明书实施例的用于资源调度的系统的示意框图。
34.图6示出用于实现根据本说明书一个或多个实施例的方法的装置的示意框图。
具体实施方式
35.以下具体实施方式的内容足以使任何本领域技术人员了解本说明书的一个或多个实施例的技术内容并据以实施,且根据本说明书所揭露的说明书、权利要求及附图,本领域技术人员可轻易地理解本说明书的一个或多个实施例相关的目的及优点。
36.存在各种类型的资源调度问题。例如,在涉及计算设备的场景中,希望最优地调度(例如,如何分配)计算设备的处理器、内存、存储器、io、网络等资源来执行一个或多个计算任务。其它类型的资源,例如实物资源、运输资源、时间资源等等,同样存在类似的调度问题。
37.参见图1,其示出根据本说明书实施例的用于资源调度的示例方法100的示意流程图。
38.如图1所示,方法100可包括:在操作102,可获取关于供调度的资源的资源信息。
39.在本说明书实施例中,资源可指任何类型的资源,包括但不限于:涉及计算设备的资源、实物资源(例如各种物料)、时间资源和/或其任何组合。
40.参见图2,其示出根据本说明书的实施例的用于资源调度的示例场景的示意图。如图2所示,该资源可来自一个或多个资源池206a、206b等。每个资源池可具有一种或多种可供资源调度系统202调度的资源。不同资源池中包括的资源可相同或不同。例如,资源池206a可具有资源1、资源2和资源3。资源池206b可具有资源2、资源4、资源5等等。
41.在本说明书的优选实施例中,该资源可指涉及计算设备的资源,其可包括硬件资源(包括但不限于处理器资源、内存资源、磁盘资源、io资源、网络资源等等)、软件资源(包括但不限于api资源、许可证资源等等)等等。更优选地,该资源可指计算设备的硬件资源。
42.计算设备可指具有计算能力和/或存储能力的任何实体计算设备或虚拟计算设备。实体计算设备的示例可包括但不限于大型机、小型机、个人计算机等等。虚拟计算设备的示例可包括各种类型的虚拟机(例如vmware虚拟机或virtualbox虚拟机等)或虚拟容器(例如docker等虚拟容器)。硬件资源是指供该计算设备使用的任何实体硬件和/或虚拟硬件。
43.参加图3,其示出根据本说明书的实施例的用于资源调度的另一示例场景的示意图。如图3所示,该资源可来自一个或多个计算设备306a、306b。每个计算设备可具有可供资源调度系统302调度的一种或多种资源,如计算资源、磁盘资源、网络资源等。例如,计算设备306a和306b可均具有处理器核心、内存、磁盘等资源。不同计算设备的资源可能不同,例如,一些计算设备可能仅作为存储设备(例如云存储或块存储设备)提供存储资源,而另一些计算设备可能仅提供计算资源等等。
44.资源信息可指示资源的种类和数量。资源信息还可指示与资源相关联的其它信息,例如资源的品质、资源可用的时间、资源优先级等等。
45.可按各种方式来获取供调度的资源的资源信息。
46.在一个示例中,可接收来自用户的输入,并基于用户的输入来确定供调度的资源的资源信息。
47.例如,用户的输入可指定供调度的资源的种类和数量和/或其它信息,随后根据用户输入的信息,可确定供调度的资源的资源信息。
48.在优选示例中,当资源为计算设备的硬件资源时,获取资源信息可包括:自动读取一个或多个计算设备的硬件信息,以及基于所读取的硬件信息来确定所述资源信息。
49.例如,可通过各种硬件信息读取命令来读取硬件信息。例如,可通过读取/proc/cpuinfo(例如通过cat /pro/cpuinfo命令)来读取处理器信息,可通过/proc/meminfo(例如通过cat /pro/memeinfo命令)来读取内存信息,可通过lsblk命令查看磁盘信息等。在读取硬件信息之后,可对所读取的硬件信息进行处理,从而提取出其中所包括的资源信息,例如处理器频率及核心数、内存容量、磁盘容量、系统带宽等等。
50.在存在多个计算设备的情况下,在已知道每个计算设备的硬件信息的情况下,可通过简单计算来确定可供调度的资源的资源信息。而在不知道每个计算设备的硬件信息的情况下,可首先自动读取每个计算设备的硬件信息,然后可计算出所有可供调度的资源的资源信息。
51.可通过任何其他适当方式来获得供调度的任何资源的资源信息。
52.方法100可包括:在操作104,可获取资源需求信息。资源需求信息是指涉及对资源的需求的各种信息。
53.例如,在图2的示例中,可存在一个或多个资源需求方204a、204b和204c,这些资源需求方可具有对资源的相同或不同需求。
54.在本说明书的优选实施例中,所述资源需求信息是对计算设备的资源的需求信息。计算设备的资源如上文所解释的。例如,在图3的示例中,该资源需求信息可来自一个或多个计算任务304a、304b和304c。
55.例如,假设所述计算设备的资源被用于处理计算任务流,该计算任务流中可存在各种计算任务,不同计算任务对资源的需求可能存在差异。
56.设想一个具体示例,对于各种网络服务而言,可能不断出现新的计算任务要处理。假设该网络服务为网络点餐服务,则计算任务流可能包括用户认证(登录)任务、餐饮展示任务、用户点单任务、用户结账任务、餐饮库存更新任务、商户通知任务
……
等等。这些计算任务可能分别对处理器、内存、磁盘、网络、io的需求是不同的,而且可能需要同时为多个不同的用户执行不同的任务。
57.在本说明书的优选实施例中,获取资源需求信息可包括自动读取一个或多个计算任务的配置信息。例如,可由开发者或管理者对每个任务所需的各种资源进行预先配置,并存储相应的配置信息。随后,可基于所读取的配置信息来确定资源需求信息。
58.应理解,对于其他类型的资源调度,可采用任何适当方式来获取资源需求信息。例如,可从用户接收输入,该输入可指定资源需求信息。
59.应当理解,取决于具体情形,本说明书中的资源和资源需求可以是静态的或动态的。例如,在对物料资源进行调度的场景中,随着新物料的到来和物料的消耗,资源将会动态变化;而随着例如生产任务的改变,例如所要生产的产品的变化,资源需求可能也将动态
变化。
60.因此,本说明书实施例的方案可用于静态调度,也可用于动态调度,其中该调度过程可被持续执行。
61.方法100可包括:在操作106,可基于资源信息和资源需求信息生成规划模型。
62.规划模型可指运筹学模型。规划模型的示例可包括但不限于:线性规划模型、混合整数线性规划模型(milp模型)、二次规划模型(qp模型)、凸优化规划模型等等。
63.规划模型可由一个或多个目标函数和零个或多个约束条件来定义。在本说明书的实施例中,规划模型可包括至少一个约束条件。
64.目标函数定义所要实现的评价准则,而规划模型所要解决的问题是使评价准则最大化、最小化、适中、高于/低于阈值等等。例如,在上文的网络点餐服务的示例中,目标函数可为平均任务处理时间,优化方向是使其最小化。评价准则可为一个或多个。
65.约束条件定义在对规划模型求解时面临的约束。约束条件可为零个、一个或多个。约束条件还可能来自可用资源量对资源的需求之间的供需矛盾。约束条件还可能来自供调度的资源或资源需求本身的约束。供调度的资源的约束例如可包括某个处理器可能仅能用于服务于某个任务。资源需求本身的约束例如可包括任务所需的特定资源的最低量。
66.目标函数和约束条件中均可包括可控变量和已知参数。可控变量可以指规划模型中定义的自变量,是要对其求解以便针对目标函数进行优化的决策变量,例如被调度给各资源需求方的资源量。已知参数可以指规划模型中的确定性的非变量的参数。已知参数的示例可包括:求解目标中决策变量的系数、约束条件的约束参数矩阵、约束条件中的右端项(资源向量)等。
67.在上文的网络点餐服务的示例中,可控变量例如可包括在特定时间为每个任务分配的各个资源的量,已知参数例如可包括每个任务对资源的需求量(例如其可对应于上文所述的资源需求信息)、可供调度的每个资源的量(例如其可对应于上文所述的资源信息)等等。
68.约束条件可包括等式约束条件和/或不等式约束条件。在上文的网络点餐服务的示例中,等式约束条件的示例可包括:每个任务的被调度的处理器核心数(约束参数)之和应当等于可供调度的处理器核心总数(约束值),以便最大化处理器核心利用率而提升效率;不等式约束条件示例可包括:每个任务的被分配的磁盘容量(约束参数)之和应当小于等于可供调度的磁盘总容量(即约束值,或资源量),以在可能的情况下提供必要的余裕。本领域技术人员根据具体需求可设计出一个或多个等式约束条件和/或一个或多个不等式约束条件,从而分别构成等式约束条件组合和不等式约束条件组合。
69.一个简单的规划模型的示例如下:
ꢀꢀ
(式1)在式1中,x为要求解的变量,f(x)是目标函数,minf(x)表示优化方向为使该目标函数最小化。需要理解,该目标函数仅仅是示例。在实际应用中,可能存在其它形式的目标函数,也可能存在多个目标函数。
70.在式1中,和是约束条件(或称约束条件组合),其中为一个或多个等式约束条件(或称等式约束条件组合),为一个或多个不等式约束条件(或称不等式约束条件组合),为可控变量向量,n为可控变量的个数,为等式约束参数矩阵,为等式约束值向量,m为等式约束的个数,为不等式约束参数矩阵,为不等式约束值向量,l为不等式约束的个数。
71.举例而言,在上文的网络点餐服务的示例中,假设有2个任务,其中任务一通常需要2个处理器核心;任务二通常需要3个处理器核心和3g内存;可供调度的处理器核心有4个、内存有5g且磁盘有50g,则上述式1的简单示例如下:令x1、x2、x3、x4、x5、x6分别为任务1处理器核心数、任务1内存量、任务1磁盘量、任务2处理器核心数、任务2内存量、任务2磁盘量,则可获得以下的规划模型:minf(x)x1 x4=4x2 x5≤5x3 x6≤50x1≥2x4≥3x5≥3其中目标函数f(x)的一个示例可以是平均任务完成时间,而优化方向是使该目标函数最小化。约束条件可以被转换为式1中所示的形式(例如,其中“≥”可以通过两侧取负来转换为“≤”),这是本领域技术人员所知晓的。
72.可以理解,在存在约束的情况下,并不一定存在可行域,即规划模型并不总是有可行解。例如,在上面示例中,任务一所需的处理器核心的数量(2)加上任务二所需的处理器核心数量(3)超过了可供调度的处理器核心总数(4),导致该规划模型无可行解。然而,在降低标准的情况下,则有可能获得可行解。例如,虽然任务二需要3个处理器核心,但在2个处理器核心的情况下仍能正常工作,只是效率较低。因此,通过将上面的x4≥3引入松弛变量(例如改变为x4-a≥3),则有可能获得可行解(例如当1≤a≤3时)。
73.如图1所示,方法100可包括:在操作108,可将松弛变量应用于该规划模型,以生成新规划模型。松弛变量是指能够使规划模型中的约束条件松弛的变量。使约束条件松弛是指使该规划模型获得可行解的概率更大。
74.在优选示例中,可仅在规划模型没有可行解时,将松弛变量应用于规划模型。此时,将松弛变量应用于所述规划模型包括:判断规划模型是否有可行解,以及当规划模型没有可行解时,将松弛变量应用于所述规划模型。
75.判断规划模型是否有可行解例如可以通过尝试对规划模型求解来进行。替代地,判断规划模型是否有可行解可通过检测规划模型中彼此矛盾的约束条件来进行。还可采用本领域技术人员可构想的任何其它方式来判断规划模型是否有可行解。
76.下面通过多个示例,来描述将松弛变量应用于规划模型以生成新规划模型的具体
实现。
77.示例一:继续以上示例,通过引入松弛变量,式1可被重写如下:
ꢀꢀ
(式2)在式2中,等式约束条件左侧增加了新项,其中表示主对角线元素均为1的对角方阵,表示引入到等式约束条件的松弛变量向量。这可表示将每个等式约束条件加上对应的松弛变量。
78.不等式约束条件左侧减去了项,其中表示主对角线元素均为1的对角方阵,表示引入到不等式约束条件的松弛变量向量。这可表示对于每个不等式约束条件减去对应的松弛变量。
79.表示松弛变量向量s中的元素属于实数,且松弛变量c中的元素属于非负实数。可以理解,在≤号的左侧减去一非负实数为对该不等式约束条件的松弛。对于等式约束条件,加上非负实数还是非正实数将取决于该等式约束的具体情形(例如在上文的网络订餐服务的示例中的处理器核心这一等式约束条件中,左侧减去一正实数将实际上使该约束条件松弛)。
80.可以理解,为了尽量减小引入松弛变量所带来的影响,应当将所引入的松弛变量的绝对值之和最小化。相应地,在对约束条件应用松弛变量之后,minf(x)被修改为,其中表示引入到等式约束条件的松弛变量的绝对值之和,表示引入到不等式约束条件的松弛变量之和(即其绝对值之和),m表示由于引入松弛变量导致的所有松弛变量之和所占的权重,其决定了“将引入松弛变量带来的影响最小化”这一目标与原有目标函数之间的重要程度。m越大,新目标函数越注重将引入松弛变量带来的影响最小化;m越小,则新目标函数越不注重引入松弛变量带来的影响。
81.可以看出,通过将引入松弛变量引入到约束条件中,能够使得约束条件变得松弛,从而更有可能获得可行解;同时通过修改目标函数以考虑松弛变量的引入带来的影响,以尽量将松弛变量带来的影响最小化。
82.示例二:在上文的示例一中,出现绝对值符号。为了求解方便,在示例二中,可去除绝对值符号。在示例二中,可将式2重写为:
ꢀꢀ
(式3)可以看出,在式3中,与式2相比,加上被取代为加上并减去,其中对应于需要加上的松弛变量,对应于需要减去的松弛变量;表示中的元素为非负实数,而表示中的元素也均为非负实数。
83.相应地,被修改为,其中被取代为,因为两者都为非负实数,无需再执行取绝对值的操作。
84.示例三:在上文的示例中,规划模型中原始目标函数的权重均为1。为了允许用户能够控制是否在改变后的规划模型中考虑原始目标函数以及在考虑原始目标函数时灵活地调整目标函数的权重,在此示例中,将原始目标函数也赋予权重,如以下的式4所示:
ꢀꢀ
(式4)可以看出,被修改为,其中原始目标函数前增加了权重w。因此,可以通过改变w的大小来改变原始目标函数对引入松弛变量后的规划模型的目标函数的影响。通常,w可取大于等于0小于等于1的值。当w为0时,不考虑原始目标函数而仅考虑使松弛变量影响最小化,即在此情况下可独立于原始目标函数来对规划模型进行求解。当w为1时,完全结合原始目标函数来对规划模型进行求解。
85.也就是说,在此示例中,新目标函数包括所应用的松弛变量的绝对值之和,更优选地新目标函数为所应用的松弛变量的绝对值之和与原始目标函数的加权和,而优化方向是使其最小化。
86.示例四:在上面的式中,向不等式约束条件和等式约束条件均引入松弛变量。在有些情况下,可能期望针对不等式约束条件和等式约束条件进行独立的控制。为了解决这一问题,在本说明书的优选实施例中,提供设置项,使得用户能够更便捷地选择将松弛变量引入到等
式约束条件、不等式约束条件中的零者、任一者或两者。
87.如以下的式5所示:
ꢀꢀ
(式5)在式5中,为所引入的等式约束条件组合增加了参数,为所引入的不等式约束条件组合增加了参数。和两者都是布尔型数据,即可取0或1。当为0时,不在任何等式约束条件中引入松弛变量;而当为1时,则在等式约束条件中引入松弛变量。类似地,当为0时,不在任何不等式约束条件中引入松弛变量;而当为1时,则在等式约束条件中引入松弛变量。相应地,参数和也体现在目标函数中。
88.通过这种方式,本说明书的实施例允许独立地将松弛变量应用于等式约束条件和不等式约束条件。
89.示例五:在许多情形中,存在两种类型的约束条件:边界型(bound)以及约束型(constraint)。边界型约束是指决策变量本身的约束限制。约束型约束是指不同决策变量组合形成的约束。在本说明书的优选实施例中,还可针对这两种类型的约束分别指定松弛变量。
90.ꢀꢀ
(式6)在式6中,如最后一行所限定的,当等式约束条件组合中的第i个约束条件的类型不满足约束类型时,和均为0,这表示当等式约束条件组合中的某个约束条件不是指定的约束类型时(例如指定约束类型为边界型,而该约束条件的约束类型为约束型;或反之亦然),则可将该约束条件的对应的松弛变量设为0,即不对该约束条件进行松弛,否则对该约束条件进行松弛。
91.类似地,当不等式约束条件中的第j个约束条件的类型不满足约束类型时,为0,这表示当不等式约束条件组合的某个约束条件不是指定的约束类型时(例如指定约束类型为边界型,而该约束条件的约束类型为约束型;或反之亦然),则可将该约束条件的对应的松弛变量设为0,即不对该约束条件进行松弛,否则对该约束条件进行松弛。
92.通过这种方式,本说明书的实施例允许独立地将松弛变量应用于边界型约束条件和约束型约束条件。
93.示例六:
在所有约束条件中,可能有些约束条件是用户特别关心的,因此用户可能想对这些约束条件应用松弛变量,而对其它约束条件不应用松弛变量。在本说明书的优选实施例中,通过由用户指定约束条件集合来灵活地选择要对其应用松弛变量的约束条件。
94.如式7所示,
ꢀꢀ
(式7)可以看出,与式6相比,被替换为,其中为对角矩阵(除主对角线为其余元素为0),但其主对角线上只有属于集合的元素才为1,否则为0。这表示只有在用户指定的集合中的等式约束条件才被应用松弛变量,而其余等式约束条件则不被应用松弛变量。
95.类似地,被替换为,其中为对角矩阵(除主对角线为其余元素为0),但其主对角线上只有属于集合的元素才为1,否则为0。这表示只有在用户指定的集合中的不等式约束条件才被应用松弛变量,而其余不等式约束条件则不被应用松弛变量。
96.相应地,目标函数也出现变化。仅与集合中的元素对应的松弛向量将被求和,因为其它松弛向量所带来的影响为0。
97.通过这种方式,本说明书的一优选实施例允许指定要应用松弛变量的约束条件的集合,也就是说,允许独立地控制是否向所述一个或多个约束条件中的每一者应用松弛变量,这大大提升了在应用松弛变量时的灵活性及可定制性。
98.示例七:在上文的示例六中,允许指定要应用松弛变量的约束条件的集合,但仅仅是指定对上述集合(即示例六中的集合)要应用松弛变量,但用户并不能指定要对这些集合中的元素应用的松弛的优选程度,即松弛变量的优选值。在本说明书实施例中,通过指定约束条件集合的权重来灵活地选择要对其应用松弛变量的约束条件。
99.ꢀꢀ
(式8)如式8所示,在目标函数中,针对与每个等式约束条件对应的松弛变量和施加了权重,且针对与每个不等式约束条件对应的松弛变量施加了权重。和分别为用户要对指定的等式约束条件i和不等式约束条件j应用的松弛变量的优选值。可以理
解,由于优化方向为使其最小化,因此在目标函数中增大松弛变量的权重,意味着对该松弛变量施加更大的惩罚。也就是说,和的值越大,对对应的松弛变量施加的惩罚就越严重,在执行优化时其越受到限制。
100.通过这种方式,本说明书实施例能灵活地设置每个约束条件要应用的松弛变量的权重,即本说明书实施例允许独立地控制向所述一个或多个约束条件中的每一者应用的松弛变量的权重。
101.示例八:在前面的示例中,已经介绍了允许灵活设置每个约束条件要应用的松弛变量的权重。在本说明书的进一步实施例中,可进一步设置要应用的松弛变量本身的取值范围。如式9所示:
ꢀꢀ
(式9)可以看出,和均小于等于,即要对等式约束条件应用的松弛变量的最大值(即上界)为。
102.类似地,小于等于,即要对不等式约束条件应用的松弛变量的最大值(即上界)为。
103.在其它示例中,也可指定松弛变量的下界,即最小值。
104.通过这种方式,本说明书实施例能够更灵活地指定所应用的松弛变量本身的范围,也就是说,本说明书实施例允许独立地控制向所述一个或多个约束条件中的每一者应用的松弛变量的取值范围。
105.通过将松弛变量的权重与松弛变量本身的范围相结合,本说明书实施例能够对所要松弛的程度进行细粒度、多维度的控制,增强了灵活性。
106.在以上示例中,采用逐层递进的方式来描述每个示例。然而在实际应用中,这些示例中所采用的手段可被按任何适当方式组合。例如,在示例三到八的任一者或多者中,可不去绝对值符号。在示例四到八的任一者或多者中,可不考虑原始目标函数的权重。在示例五到八的任一者或多者中,可不引入和。在示例六到八的任一者或多者中,可不考虑约束类型。在示例八中,可不考虑松弛变量的权重。可构想其他适当的实现方式。
107.在本说明书的优选实施例中,上述的实施例中的用于将松弛变量应用于规划模型的一个或多个参数可取决于用户输入。这样的参数的示例可包括对所采用的具体模型的选择(例如采用上文示例一到八中的哪一者)、m、w、、、、、等等。例如,可接收来自用户的输入,并基于来自用户的输入来自动生成用于将所述松弛变量应用于规划模型的一个或多个参数,从而生成新规划模型。
108.在替代实施例中,该一个或多个参数可由开发人员或管理人员预先指定。
109.在一些示例中,一个或多个约束条件可能具有量纲。例如,对于计算设备的内存而言,有些约束条件可能以兆字节为量纲,而有些约束条件可能以千兆字节为量纲,在此情况下,优选地,在执行上述的一个或多个操作之前,可首先对一个或多个约束条件的量纲进行归一化,例如归一化为兆字节量纲。
110.方法100可包括:在操作110,可对该规划模型进行求解以获得可行解。对规划模型进行求解的过程在本文中不再赘述。
111.在本说明书的实施例中,对供调度的资源的调度至少部分地基于该可行解。对供调度的资源的调度还可基于其它因素,例如基于来自用户的输入。例如,可向用户展示该可行解,且可接收用户对该可行解的微调。
112.可以理解,在一些情况下,可能获得多个可行解。在此情况下,可自动选择或由用户手动选择该多个可行解中的最优解,并至少部分地基于最优解来执行资源调度。
113.在另一些情况下,可能没有获得可行解。在此情况下,可进一步应用松弛变量,以对该规划模型进行进一步松弛,直至获得可行解或者达到终止条件(例如进一步松弛是不可接受的)为止。
114.参见图4,其示出根据本说明书实施例的用于资源调度的另一示例方法400的示意流程图。
115.如图4所示,方法400可包括:在操作402,可获取关于供调度的资源的资源信息。此操作的具体细节可参考上文对操作102的描述,在此不再赘述。
116.方法400可包括:在操作404,可获取资源需求信息。此操作的具体细节可参考上文对操作104的描述,在此不再赘述。
117.方法400可包括:在操作406,可基于资源信息和资源需求信息生成规划模型。该规划模型可包括目标函数以及一个或多个约束条件。此操作的具体细节可参考上文对操作106的描述,在此不再赘述。
118.方法400可包括:在操作408,可判断规划模型是否有可行解。在优选示例中,可通过尝试对规划模型求解来判断该规划模型是否有可行解。在另一示例中,可通过检测规划模型中是否存在彼此矛盾的约束条件来判断规划模型是否有可行解。还可采用本领域技术人员可构想的任何其它方式来判断规划模型是否有可行解。
119.方法400还可包括:如果在操作408判断规划模型没有可行解,则可在操作410,将松弛变量应用于该规划模型,以生成新规划模型。此操作的具体细节可参考上文对操作108的描述,在此不再赘述。
120.方法400还可包括:在获得新规划模型之后,可再次进行步骤408,判断该新规划模型是否有可行解。可执行多次应用松弛变量以及判断是否有可行解的过程,直到得到具有可行解的规划模型或者满足终止条件(图4中未示出)为止。该终止条件例如可以是达到预定松弛次数、进一步松弛已不可能、进一步松弛已不可接受等等。
121.方法400还可包括:如果在408判断规划模型有可行解,则可在操作412判断是否仅有一个可行解。例如,可通过尝试对该规划模型求解来确定该规划模型有一个还是多个可行解。
122.方法400还可包括:如果在412判断仅有一个可行解,则可在操作414至少部分地基于该可行解执行调度。此操作的具体细节可参考上文对操作110的描述,在此不再赘述。
123.方法400还可包括:如果在412判断有多个可行解,则可在操作416,从该多个可行解中选择最优可行解。
124.在一个示例中,可将该多个可行解展示给用户,接收用户对最优解的选择,并基于用户的选择来确定最优可行解。
125.替代地,可采用本领域技术人员已知或可构想的任何其它方式来从多个可行解中选择最优可行解,在此不再赘述。
126.方法400还可包括:在操作418,在确定最优可行解后,可至少部分地基于该最优可行解来执行调度。此操作的具体细节可部分参考操作414,在此不再赘述。
127.参见图5,其示出根据本说明书实施例的用于资源调度的系统500的示意框图。
128.如图5所示,系统500可包括资源信息获取模块502,其可用于获取关于供调度的资源的资源信息。资源信息获取模块502的操作的具体细节可参考上文对操作102的描述,在此不再赘述。
129.系统500还可包括:资源需求信息获取模块504,其可用于获取资源需求信息。资源需求信息获取模块504的操作的具体细节可参考上文对操作104的描述,在此不再赘述。
130.系统500还可包括:规划模型生成模块506,其可用于基于该资源信息和该资源需求信息生成规划模型,该规划模型可包括目标函数和一个或多个约束条件。规划模型生成模块506的操作的具体细节可参考上文对操作106的描述,在此不再赘述。
131.系统500还可包括:松弛变量应用模块508,其可用于将松弛变量应用于该规划模型,以生成新规划模型。松弛变量应用模块508的操作的具体细节可参考上文对操作108的描述,在此不再赘述。
132.系统500还可包括:规划模型求解模块510,其可用于对该新规划模型进行求解以获得可行解,其中对该供调度的资源的调度至少部分地基于该可行解。规划模型求解模块510的操作的具体细节可参考上文对操作110的描述,在此不再赘述。
133.优选地,系统500还可包括资源调度模块(图5中未示出),其可用于至少部分地基于该可行解对该供调度的资源执行调度。此操作的具体细节可参考上文对操作110以及412-418的描述,在此不再赘述。
134.优选地,该松弛变量应用模块可508可用于:判断该规划模型是否有可行解;以及当该规划模型没有可行解时,将松弛变量应用于该规划模型。
135.优选地,该新规划模型允许独立地控制向该一个或多个约束条件中的每一者应用的松弛变量的权重。
136.优选地,该新规划模型允许独立地控制向该一个或多个约束条件中的每一者应用的松弛变量的取值范围。
137.类似地,可实现与图4的方法相对应的系统,在此不再赘述。
138.图6示出用于实现根据本说明书一个或多个实施例的方法的装置600的示意框图。该装置可用于实现例如本文描述的方法(例如方法100和400)中的任一者。该装置可被用于实现如参考图4所述的系统。该装置还可被实现为本文描述的任何计算设备或计算设备集群(例如通过虚拟化等)。该装置可包括处理器610以及存储器1015,该处理器被配置成执行如上所述的任何方法。该存储器可包括内存和/或持久存储,以利用如上文所述的方式存储最新版本和先前版本的部分增量图。该存储器还可用于存储在方法的执行过程中可使用的
任何指令、变量、中间数据等等。
139.该装置600可包括网络连接元件625,例如可包括通过有线连接或无线连接来连接到其它设备的网络连接设备。该无线连接例如可以为wifi连接、蓝牙连接、3g/4g/5g网络连接等。例如,可通过该网络连接元件连接到网络以获取数据(如新增数据)及其它各种数据。还可经由网络连接元件接收用户从其它设备所进行的输入或者将数据传送到其它设备以供显示。
140.该装置还可选地包括其它外围元件620,例如输入装置(如键盘、鼠标)、输出装置(如显示器)等。例如,在基于用户输入的方法中,用户可经由输入装置执行输入操作。还可经由输出装置向用户输出相应的信息。
141.这些模块中的每一者可彼此直接或间接通信,例如,经由一条或多条总线(例如总线605)。
142.而且,本技术还公开了一种包括存储于其上的计算机可执行指令的计算机可读存储介质,所述计算机可执行指令在被处理器执行时使得所述处理器执行本文所述的各实施例的方法。
143.此外,本技术还公开了一种装置,该装置包括处理器以及存储有计算机可执行指令的存储器,所述计算机可执行指令在被处理器执行时使得所述处理器执行本文所述的各实施例的方法。
144.此外,本技术还公开了一种系统,该系统包括用于实现本文所述的各实施例的方法的装置。
145.可以理解,根据本说明书的一个或多个实施例的方法可以用软件、固件或其组合来实现。
146.应该理解,本说明书中的各个实施例均采用递进的方式描述,各个实施例之间相同或相似的部分互相参考即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于装置和系统实施例而言,由于其基本相似于方法实施例,所以描述的比较简单,相关之处参考方法实施例的部分说明即可。
147.应该理解,上述对本说明书特定实施例进行了描述。其它实施例在所附权利要求书的范围内。在一些情况下,在权利要求书中记载的动作或步骤可以按照不同于实施例中的顺序来执行并且仍然可以实现期望的结果。另外,在附图中描绘的过程不一定要求示出的特定顺序或者连续顺序才能实现期望的结果。在某些实施方式中,多任务处理和并行处理也是可以的或者可能是有利的。
148.应该理解,本文用单数形式描述或者在附图中仅显示一个的元件并不代表将该元件的数量限于一个。此外,本文中被描述或示出为分开的模块或元件可被组合为单个模块或元件,且本文中被描述或示出为单个的模块或元件可被拆分为多个模块或元件。
149.还应理解,本文采用的术语和表述方式只是用于描述,本说明书的一个或多个实施例并不应局限于这些术语和表述。使用这些术语和表述并不意味着排除任何示意和描述(或其中部分)的等效特征,应认识到可能存在的各种修改也应包含在权利要求范围内。其他修改、变化和替换也可能存在。相应的,权利要求应视为覆盖所有这些等效物。
150.同样,需要指出的是,虽然已参考当前的具体实施例来描述,但是本技术领域中的普通技术人员应当认识到,以上的实施例仅是用来说明本说明书的一个或多个实施例,在
没有脱离本发明精神的情况下还可做出各种等效的变化或替换,因此,只要在本发明的实质精神范围内对上述实施例的变化、变型都将落在本技术的权利要求书的范围内。
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献