基于时间约束的资源调度问题的空间排斥算法

文档序号:10535170阅读:238来源:国知局
基于时间约束的资源调度问题的空间排斥算法
【专利摘要】本发明属于有限资源调度问题运算方法,本算法尤其对于基于时间约束的离散性资源的分配问题,可以大幅缩减该问题的计算时间。该发明对于已知资源供应和消耗的总量与分量的情况下,求取一个基于时间序列的资源分配方案,具有较高的效率。本发明通过构造一系列相互约束的数据结构,通过资源在时间序列的错位排列,即可完成资源的分配,将庞大的状态空间的搜索缩减为对一个行的搜索,从而去除了对整个状态空间的搜索和回溯带来的繁复计算,大幅提高了算法的效率。
【专利说明】
基于时间约束的资源调度问题的空间排斥算法 一、
技术领域
[0001] 本发明属于有限资源调度问题运算方法,本算法尤其对于基于时间约束的离散性 资源的分配问题,可以大幅缩减该问题的计算时间。 二、
【背景技术】
[0002] 有限资源调度问题是在实际应用中经常遇到的问题,如:运输物流系统的车辆调 度,自动教师排课系统,工业设备租赁等;所谓基于时间约束的资源调度问题,是指在资源 调度问题中,资源提供者和资源消费者都具有时间互斥的特点:即在同一个时刻任何一个 资源只可以被一个消费者占用,同时资源消费者在任何时刻只可以消费一个资源。
[0003] 基于时间约束的资源调度问题的空间排斥算法拟解决的问题是:在已知资源供应 和消费的总量和分量的情况下,如何把资源分配给资源消费者?当这些资源的分配不受偏 序限制,但受制于时间序列的约束时,在实际工作中资源供应种类和数量、消费实体数量巨 大的情况下,我们如何通过一种计算方法,由计算机软件找到一个给定的资源对于预定的 消费的基本分配方案。这是一个十分有意义的事情,因为在得到一个基本方案之后,我们可 以基于该方案进行优化和再排列,最终得到一个最接近要求的方案。
[0004] 这一类问题应用及其广泛,尤其是在计算机信息系统中更是如此。该问题理论上 涉及到运筹学和组合数学等方面的内容,应用中又涉及到计算机软件与数据结构、算法设 计,人工智能等方面的内容;因此在实际中解决该问题具有一定的难度。通常的软件设计领 域,没有充分地使用运筹学思想,局限于某一个考虑问题的角度。而从事作业调度研究的专 家学者,更加注重专业领域中的前缘和难点,对于一些实际的应用却有较少的注意,这或许 是该问题一直未有较好解决方案的原因。
[0005] 对于时间约束的资源调度问题,当前国内外多数调度算法都基于带回溯的状态空 间深度优先搜索方案;在排列空间上,不断地进行试探和回溯,对整个排列的状态空间进行 穷举;其算法的优化原则也是基于搜索空间的优化,例如采用a剪枝策略。这些算法 在复杂的应用环境中,当状态空间很大时,仍然具有非常大的时间复杂度;即使采用各种优 化算法,也很难从根本上减少计算量,这对于只希望找到一个解的应用而言,计算的代价太 大。
[0006] 如果把上述问题分为两步来考虑,首先找到一个基本的符合要求的分配方案,然 后在此方案上进行优化,则可以化解复杂而费时的搜索工作。
[0007] 可以使用本发明实现第一步,而采用其他方法进行排列优化。
[0008] 本发明没有包括如何优化调度的方法,这些方法可以借助人工智能领域的一些经 典方法,如:遗传算法等。 三、

【发明内容】

[0009] 为了减少基于时间约束的资源调度问题的巨大状态空间搜索带来的大量计算,本 算法通过构造一个互斥的资源规划空间,避免了对状态空间的穷举搜索,在调度过程中不 需要进行大范围回溯,从而较大地提高了计算效率。
[0010] 所谓空间排斥算法就是通过对资源供应者和供给量的时间序列,构造一个大的二 维状态空间,通过对资源消费实体按照时间顺序错位排列的资源,从而最终完成整个资源 对消费实体的分配。本发明对整个状态空间的搜索过程压缩为对单一资源的深度搜索过 程,并且没有回溯,从而大幅度提高分配的速度。
[0011] 本发明将整个计算方法分为两步,以下是表述算法的几个约定
[0012] :表示定义的实体,内容表示实体的必要特征,可以根据实际应用拓展实体特征
[0013] []:表示实体集合
[0014] -:表示元素之间的依赖关系
[0015] 具体的计算方案如下:
[0016] 首先,定义需参与调度的各种数据结构
[0017] 1、定义表示基本资源单元的数据结构:
[0018] resitemlresID,resTotal};①
[0019] resitem :资源单元resID :资源id resTotal :该资源可以提供的数量
[0020] 建立表示资源集合:resitem[]resitems ;
[0021] 2、定义资源消耗实体的数据结构:ex_resitem{ex_resID}②
[0022] ex_resitem :资源消耗实体ex_resID :资源消耗实体ID
[0023] 建立资源消耗实体集合:ex_resitem[]ex_resitems ;
[0024] 3、建立资源消耗实体对各种资源的需求量关系的数据结构:
[0025] rtoer : {ex_resID 一 [resID,resNumber]};③
[0026] resID:同①中说明
[0027] resNumber :表示资源需求数量
[0028] [resID,resNumber]:表不 resID,resNumber 的集合
[0029] rtoer关系表示各个消耗实体对于每一个资源的需求量
[0030] 4、基于时间序列划分资源量二维状态空间:resMap_t : {resitem,h J ;④
[0031] resMapj需要将所有的资源按照时间序列编排成二维表,该表的行为resID,列 为最小需求的时间单元序列,交叉点为提供的资源量
[0032] tln:时间单元序列
[0033] ①②③④在实际应用中通常是已知的条件,通过①②③,再加上各资源在时间序 列上的分布情况,就可以得到resMap_t数据结构。
[0034] 5、定义基于时间序列划分的资源消费实体对资源要求的关系的数据结构:
[0035] ex_resMap_t : {ex_resitem,h n};⑤
[0036] ex_resMap_t将消费实体在每一个时间单元的资源消费量进行记录。该关系存放 本发明求取的结果。因此,初始化时,该关系为空。
[0037] ④⑤数据结构的时间序列应该一致,这样就为实施以下算法提供保障。
[0038] 其次,按照下面步骤实现计算方法:
[0039] 1、初始化 resitem、resitems、ex_resitem、ex_resitems、rtoer、resMap_t、ex_ resMap_t〇
[0040] 2、从ex_resitems中取出一个实体,根据该实体id从rtoer中获取所需要的 resID和resNumber,如果ex_resitems取完,提示分配完毕信息,转6,否则继续。
[0041] 3、检查resitems的相应的resID是否具有可分配资源,如果存在,转向resMap_t 查到欲分配的资源id,则按照一个resID在同一时间单元只被一个消费者占用的原则(时 间约束,空间排斥法),在该资源的时间序列上进行搜索分配,完成该消费实体的资源分配; 分配后在resMap_t关系的相应时间点上作上已分配标记(表示该时间单元该资源不可 用);同时减少该resID的资源总量;继续下一步。如果resMap_t在相应的分量上无资源 可分,提示分配失败信息,转6.
[0042] 4、记录和输出该消耗实体资源分配数据
[0043] 5、回到步骤2
[0044] 6、结束
[0045] 由上述算法过程可以看出,该计算方法是按照时间序列完成一个分配方案,该方 案具备各种分配方案的基本特征。对于一个资源调度项目而言,可能存在多个分配方案;其 中有些方案可能更符合实际情况,另一些可能不能很好地适应工作状况。但无论哪一种方 案都具备相同的特征,因此寻找最优分配可以在本发明的基础上进行方案优化,这不属于 本发明的范畴。 四、
【附图说明】
[0046] 图1为整个算法的逻辑结构图,它与以上所述的算法过程具有同等效果,互相参 照阅读将更加便于说明本算法。
[0047] 图2为实施案例中对于一个班级课程的部分搜索求解树。 五、
【具体实施方式】
[0048] 为了使本发明所要解决的技术问题、技术方案及有益效果更加清楚明白,以下结 合附图及一个课程安排的具体实施例,对本发明进行详细的说明。应当说明的是,此处所描 述的具体实施例仅用以解释本发明,并不用于限定本发明。
[0049] 本例使用B表示班级,C表示课程,P表示教师
[0050] 假设每班级每周可安排课程为10次,每教师每周的最大排课量为8次,P(Ci)表 示任第i门课程的教师数(每教师对应一门课程),每一门课程的教师数量为(也就是课程 量):P(C1) = 2 P(C2) = 2 P(C3) = 2 P(C4) = 1,由此得到与课程相关的教师编号:P11, P12, P21,P22, P31,P32, P41。其中Pll,P12表示任教C1课程的教师的序号,其他标号类 推;因此课程与教师的对应关系为:
[0051] C1 - (Pll,P12) C2 - (P21,P22) C3 - (P31,P32) C4 - (P41)
[0052] 假设无特别情况下,各教师担任的课程都按近似平均分配(如果不想平均分配, 可以调整),由此可以计算得到7个教师实体以及各实体的教师号和任课数量:
[0053] (Pll,8) (P12,7) (P21,8) (P22,8) (P31,7) (P32,5) (P41,8)
[0054] 各班级对于课程的需求表见表1 :
[0055] 表1班级对各课程需求表
[0056]
[0057] 建立教师安排记录,见表2, T1-T10表示每班级10次课程,该表初始化为空。
[0058] 开始算法:以班级数循环,按照所需课程到teachers结构中取任课教师(因为教 师与课程有对应关系),当某一个教师的课程为〇时,则取任教同一课程的下一位教师;由 于同一列上同一个教师不能出现两次,因此在本行课程安排的算法(以B2为例)可以表述 为:B2所需课程为C2 (2)、C3 (4)、C4 (2),由课程教师对应关系表以及teachers数据结构可 取出P21 (2)、P31 (4)、P41 (2),接着在表2中找到P21、P31、P41三个行,由此对这三行建立 一个如图2 (参见附图)的搜索树。然后对此三行的可编排时间进行深度优先搜索,即可找 出本班的课程安排;如此完成之后,再次修改表2和teachers数据结构。照此方式,直到所 有班级的课程安排完成。
[0059] 表2教师时间安排记录
[0060]
[0061] 按上述算法,可得到课程编排表3 :
[0062] 表3课程编排表
[0063]
[0064] 以上所述仅为本发明的一个实施案例,并不用于限制本发明,凡在本发明的原则 和精神之内所作的任何修改、等同替换和改进等,均就包含在本发明的保护范围之内。
【主权项】
1. 基于时间约束的资源调度问题的空间排斥算法,由基本资源单元、资源消耗实体、消 耗实体对各种资源的需求量、基于时间序列划分资源量二维状态空间几个相互约束的数据 结构和分配算法构成。2. 根据权利要求书1所述的基于时间约束的资源调度问题的空间排斥算法,其特征在 于构造了基于时间序列划分资源量二维状态空间resMap_t和资源在时间序列上的错位排 列方法。基于时间序列划分资源量二维状态空间resMap_t确保寻找分配方案的过程中,将 搜索空间压缩在一个行上;资源在时间序列上的错位排列方法确保了分配的可行性。
【文档编号】G06F17/30GK105893727SQ201410741734
【公开日】2016年8月24日
【申请日】2014年12月8日
【发明人】吴旭军, 徐宝华, 张福元
【申请人】烟台惠通网络技术有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1