基于时间约束网络的动态规划调度算法.pdf
《基于时间约束网络的动态规划调度算法.pdf》由会员分享,可在线阅读,更多相关《基于时间约束网络的动态规划调度算法.pdf(7页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、第 10 卷第 1 期计算机集成制造系统)CIMSVol.10 No.22 0 0 4 年 2 月Computer Integrated Manufacturing SystemsFeb.2 004文章编号:1006-5911(2004)02-0188-07基于时间约束网络的动态规划调度算法徐 瑞1,2,徐晓飞1,崔平远2收稿日期:2003-01-13;修订日期:2003-06-16。基金项目:国防科工委民用航天资助项目。作者简介:徐 瑞(1975-),男,河南南阳人,哈尔滨工业大学计算机科学与技术学院博士研究生,主要从事规划与调度、智能优化算法、分布式人工智能、系统建模与仿真等方面的研究。E
2、-mail:xurui 。(1.哈尔滨工业大学计算机科学与技术学院,黑龙江 哈尔滨 150001;2.哈尔滨工业大学航天学院,黑龙江 哈尔滨 150001)摘 要:为解决与时间有关的规划调度问题,提出了一种基于时间约束网络的动态算法。该算法与传统的计算最短路径方法不同,它只需计算受到新增约束影响的局部网络。同时,给出了算法的最坏时间复杂性,并进行了证明。最后,以 Job-Shop 调度系统为例进行了仿真验证,结果表明,该算法可快速地判断约束网络的一致性,并计算每个工序的最早可能开始时间。关键词:时间约束网络;规划调度;动态算法;最短路径中图分类号:TP18 文献标识码:A0 引言从 1983年
3、 Allen开创性地提出时间区间知识表示方法1之后,时间约束处理技术便在人工智能领域中日益受到关注。近十年来,该方面的研究取得了引人注目的成绩,并在计算机许多相关领域中得到了广泛应用,例如,计算机集成制造系统(CIMS)、计算机辅助设计系统(CAD)、规划调度系统 2,3、时态数据库系统4、自然语言处理、常识推理和探测器任务规划5等。并且提出了许多形式化描述和推理时间约束的方法 6 8,主要有时间区间代数方法1、时间点代数方法、线性不等式组方法、时间图方法以及和时间约束网络方法等。每一种不同的描述方法都有相应的一些约束传播方法来支持。时间约束网络是对具有时间知识和时间约束系统进行描述和推理的有
4、效方式和手段,它将图论中处理问题的思想引入到约束满足问题的求解中。时间约束网络中的顶点表示所要计算的时间变量,顶点之间的连接弧表示时间变量之间的约束关系。Dechter 等给出了时间约束网络的基本概念和常用的 Floyd-Warshall 算法 5。该方法是在时间约束网络为静态情况下的算法,但是对于规划调度系统,活动和约束的改变导致了约束网络的动态变化,若仍然采用 Floyd-Warshall 算法,必然导致计算量的大量增加。本文根据规划调度系统动态变化的特点,分析规划调度过程中约束出现的形式,在图论中最短路径理论的基础上,给出一种动态时间约束网络算法,该算法的时间复杂性在最坏的情况下是 O(
5、2ne)。仿真结果表明,该算法可以快速地判断时间约束网络的一致性,并计算出各个活动(工序)的最早可能开始时间和它们之间的时间关系。1 问题描述及时间约束网络在人工智能领域中,许多问题可以转化为约束满足问题来解决。时间约束满足问题是约束满足问题中的一个特例,它主要处理和时间知识密切相关的一类问题,例如规划调度等。时间约束网络是描述和求解这类问题的有效方法。111 问题描述我们所讨论的规划调度问题是在不违反多种时间约束的条件下选取活动,并调度各自的开始时间和结束时间,使其在执行后能够达到所要求的目标。这里,活动是系统能够执行的一个基本动作,它占用一定的时间和资源;时间约束是多个活动之间的时间关系,
6、例如,活动 A 必须在活动 B 开始之前的 10个时间单位内结束,活动 D 必须在活动 A 结束后20个时间单位内开始等。为了更加清楚地描述与时间有关的规划调度问题,首先给出一般时间约束问题的定义。定义 1 时间约束问题定义为一组有限变量集合 X=X1,X2,Xn 和一组变量上的约束 C1,C2,Cn。每个变量代表一个时间点,变量之间的约束代表时间点之间的时间关系。每个约束根据 Allen 提出的时间区间理论1,可以描述为区间的形式:I1,I2,In=a1,b1,a2,b2,an,bn(1)对于实际问题,变量可以代表各个活动的开始时间点和结束时间点。例如,活动 A 的开始和结束时间点分别为A-
7、和 A+,活动 B 的开始和结束时间点分别为B-和 B+,则前面的约束可以表示为 0 A+-B-10,即约束 Ci可表示为区间 0,10的形式。定义 2 时间约束问题的解。当赋值X1=a1,X2=a2,Xn=an满足所有的约束时,元组 X=(a1,a2,an)为时间约束问题的解。对于一般的时间约束问题,如果每一对变量的约束区间很多,而且约束区间是连续时,计算一致性后的总的区间的个数与每对变量的区间数呈指数关系增加,即所谓的区间碎裂化,给求解带来很大困难。而简单时间约束问题不会产生这个问题,因此,在求解一般时间约束问题一致性时,往往将其转化为简单时间约束问题来求解。而且实际中的许多问题也可以直接
8、用简单时间约束问题来描述和求解,例如规划问题和车间调度问题等。本文就是在简单时间约束问题的基础上来对相关的问题进行讨论。112 简单时间约束问题对于存在二元时间约束关系的问题,通常采用简单时间约束问题来描述和计算。下面首先给出简单时间约束问题的定义以及相关理论。定义 3 当一个时间约束满足问题的所有两个时间点之间的约束都仅是一个区间时,就称为简单时间约束问题。简单时间约束问题同样包括一组具有一定连续域的时间点变量 X1,Xn 和一组约束 aij Xj-Xi bij,其中,0 aij bij。对于这样的问题,可以用有向约束图 G(V,E)来表示,其中,V 为顶点的集合,每个顶点表示时间点变量;E
9、 为边的集合,边 i y j 表示约束 Cij,其每一边 i yj 仅标注了一个区间 aij,bij,它表示约束为 aij Xj-Xi bij。该约束还可以表示为一对不等式的形式:Xj-XibijXi-Xj-aij(2)这样,求解简单时间约束问题可归结为求解一组关于 Xi的线性不等式。求解线性不等式组的方法在运筹学中已经进行了非常深入地研究,给出了许多求解方法,例如,椭球算法及其系列改进、单纯形方法和内点方法等。这些方法在实际数值计算中都获得了很好的效果。这里,采用一种图形式来表示这组线性不等式,称之为时间网络图。这个概念是 Dean 和 Mcdermott 首次提出的。时间图采用一个有向加权
10、图 Gd=(Vd,Ed)来描述简单时间问题。为了区别,Gd称为距离图。图中的顶点仍是时间点的集合,边 i yj 标注权值bij,表示线性不等式 Xj-Xi bij;边 j y i 标注权值-aij,表示线性不等式 Xi-Xj-aij,如图 1 所示。Gd图中从i 到j 的每一个路径 i0=i,i1,ik=j,导致在 Xj-Xi上存在约束公式:Xj-XiEkj=1aij-1,ij(3)如果从 i 到j 存在多条路径,则:Xj-Xidij(4)这里,dij是从 i 到 j 的路径中最短的一条路径的长度。在给定约束网络之后,我们希望获得构成的网络是否一致的信息,即对应的时间约束问题是否存在解。如果网
11、络是一致的,希望得到问题的可能解。根据解可以回答以下关心的问题:时间点 xi可能在什么时间出现?时间点 xi和时间点 xj之间存在什189第 2期徐 瑞 等:基于时间约束网络的动态规划调度算法么样的关系?转化为规划调度中的问题即为:活动ai什么时候可以开始执行?活动 ai和活动aj之间存在什么样的关系?文献 5 中给出了以下几个简单时间约束网络的相关定理和推论。引理 1 给定简单时间约束网络是一致的,当且仅当它的距离图 Gd没有负环存在。该定理给出了判断简单时间问题是否有解的一种方法,时间约束网络算法就是根据这个定理设计的。引理 2 假设 Gd是一致的简单时间约束网络,可给定两种一致情况:S1
12、=(d01,d0n)S2=(-d10,-dn0)(5)它们分别将变量赋值为最迟和最早可能时间。引理 3 任何一致的简单时间约束问题,相对于它最短距离图中的约束是可分解的(可分解性)。该定理给出了一种构造简单时间问题解的有效方法。引理 4 令 Gd是一致的简单时间约束问题的距离图,变量 Xi的可能值的集合是-di0,d0i。由这个推论可以求得时间点可能的时间范围,即-di0 Xi d0i。根据最小时间网络图,可以很方便地得到时间点的最小范围,即约束区间的最小范围。113 规划调度过程中的时间约束网络如前所述,将规划调度问题每个可能执行活动的开始时间和结束时间看作时间点,从而建立起规划调度问题中活
13、动之间的时间约束。例如,有一时间约束规则为/活动 A 在活动B 执行之前 3,10秒内执行结 束0,假定活动 A 的开始时间 点是start A,结束时间点是 endA,活动 B 的开始时间点是startB,结束时间点是 endB,活动 A 的持续时间为 10,20 秒,活动 B 的持续时间是 5,15 秒,则这四个时间点之间存在如下关系:10 endA-startA 205 endB-start B 203 startB-endA 10 规划调度中就是根据这样的时间关系,建立起系统的简单时间约束网络。当一个新的活动加入时,通过简单时间约束网络来判断新加入的活动与已存在的活动在时间上是否一致,
14、如果一致,便可以求得各个时间点的取值范围。但是,规划调度过程中的简单时间约束网络是动态变化的,随着活动的增加或时间约束的增加,时间约束网络也不断变化。以前求解这种动态变化时间约束网络的方法是,当系统中网络的某一部分发生变化时,便重新对网络中的所有约束进行处理,得到各个时间点的可能的取值区间,例如,Floyd-Warshall 算法。但是网络的局部变化不一定影响到整个网络,对网络中的每个点求解是没有必要的。我们只需在前一次求解的基础上,将受到影响的点重新进行计算,便可以得到新的解,这也正是本文的出发点。下面对规划调度过程中可能出现的情况进行分析。假设距离图 Gd(Vd,Ed)是已经求解的距离图,
15、Cij是新增加的一个时间约束,表示为 aij Xj-Xi bij(0 aij bij),即Xj-XibijXi-Xj-aij(6)这时新加入的约束有以下三种情况:(1)Xi,Xj两个端点都不属于图Gd中的端点,即Xi,Xj|Vd(如图 2a)。(2)Xi,Xj两个端点有一个属于图Gd中的端点,即 XiI Vd或XjI Vd(如图 2b)。(3)Xi,Xj两个端点都属于图 Gd中的端点,即Xi,XjI Vd(如图 2c)。以上三种情况实际上是对应增加两个顶点、增加一个顶点和不增加顶点而只改变约束的情况。在上述三种情况中,加入新的约束时,第一种和第二种情况对前一步所求出的最短距离图不产生影响。当第
16、三种情况的约束加入后,前一步所求出的最短距离图将发生改变。下面分别对这三种情况进行说明:第一种情况下,新加入的两个点与前面求得的距离图是分离的,显然,对已经求出的距离图不产生影响,Xi和Xj与其他任何属于 Gd中的顶点之间的距离都是无穷大,即 d0i=di0=d0j=dj 0=。第二种情况下,在新加入的约束中,有一个顶点(假定是顶点 Xi)是属于前一步求得的距离图 Gd,而且已知新加入的约束条件 aij Xj-Xi bij(0190计算机集成制造系统)CIMS第 10 卷aij 0,因此,前一步 Gd中所有 dk0和 d0k(XkIVd)均不改变,且:d0j=d0i+bijdj 0=-aij+
17、di0(7)第三种情况下,新加入的约束的两个顶点均是前一步求得的距离图 Gd中的两个点,即没有新加入顶点,只是改变了相应两个顶点之间的约束关系,这样,它必然影响所有经过这两个点的最短路径。因而需要重新计算相关的点。对于规划调度系统中时间约束网络的上述三种情况,我们没有必要对第一和第二种情况进行过多地处理,仅需考虑第三种情况,并考虑其中相应受到影响的顶点,从而减少了计算量。根据有关改进的最短路径算法 9,本文提出了动态时间约束网络算法。2 基于时间约束网络的规划调度算法对于规划调度系统,给定时间约束问题的网络描述,最常用的算法是 Floyd-Warshall 的每对顶点间的最短路径算法 10,该
18、算法如图 3 所示。最短路径算法 for i=1Bn dij=0 for i,j=1Bn dij=aij for k=1Bn for i=1Bn for j=1Bn dij=min(dij,dik+dkj)图 3 每对顶点间的最短路径算法 这种算法结构简单、定义明确,可以很方便地对时间约束网络进行计算,从而由引理 4 确定网络中各个时间点的范围,以及时间点之间的可能关系。根据引理 1,可以通过检查对角线元素 dii的情况来确定网络的一致性。从图 3 中可以看出,这种算法的时间复杂性是 O(n3),其中,n 是顶点的个数。上述算法对于静态的时间约束问题可以得到满意的解,但是,对于规划调度系统而言
19、,随着规划的进行,需要不断地加入活动或改变一些约束条件,从而导致时间约束网络的不断变化,每次改变都需要重新检查一遍网络的一致性,即重复一遍上述的算法,这样,会大大增加算法的计算量。当规划调度系统中的活动很多时(即约束网络中的顶点和边很多时),上述算法必将降低规划调度算法效率。为了能快速地得到问题的解,根据对时间约束网络和规划调度过程中约束网络变化情况的分析,可以采用递推的方法来计算时间约束问题的解,即当有新的活动加入时,仅仅计算与新增活动相关的一些时间变量的范围。该算法的输入是图 Gd和新的约束 Cij(Cij为aij Xj-Xi bij),输出是网络是否一致和每个时间点的新的可能值区间。其算
20、法如图 4 所示。动态递推算法(Gd(Vd,Ed),Cij)判断新加入约束 Cij的两个顶点(Xi,Xj)是否属于上一步已经计算的距离图 Gd(Vd,Ed)中的顶点:(1)如果两个顶点中都不属于距离图 Gd(Vd,Ed)中的顶点,即Xi,Xj|Vd,则:d0i=di0=d0j=dj0=(2)如果两个顶点中有一个顶点(假设为 Xi)属于距离图 Gd(Vd,Ed)中的顶点,即 XiI Vd或Xj|Vd,则:d0j=d0i+bij,if d0j+dj0 0 then exit(fail)dj0=-aij+di0,if dj0+d0j 0 then exit(fail)(3)如果两个顶点都属于距离图
21、Gd(Vd,Ed)中的顶点,即 Xi,XjIVd,则:调用递推算法(Gd(Vd,Ed),Cij)图 4 时间约束网络动态递推算法主程序 该算法根据上节分析中给出的三种情况分别进行处理,前两种情况很容易得到,第三种情况是由图5 中所示的动态递推算法子程序来实现的。该动态算法的输入 Gd(Vd,Ed)为上一步已经计算出的时间约束网络距离图(此时源点 X0到每一个顶点 Xk的最短距离d0k和dk0已求出),Cij为新增约束。算法的输出是最短距离数组 D 和 D-,(D用来记录源点到每个顶点的最短距离值 d0i,D-用来记录每个顶点到源点的最短距离值 di0)。我们用一个队列 Queue 来记录受到影
22、响的顶点,用矩阵 L来记录时间约束网络的边的权值,其中 lij表示连接i,j 两个顶点的边的权值。对于 Gd中的一个顶点Xi,EOut(i)定义为离开顶点 Xi的边,其离开该顶点边的总数称为出度;EIn(i)定义为到达顶点 Xi的边,到达该顶点的边的总数称为入度。X0是 Gd的参考顶点,每一个顶点 u IVd,有 Forward(u)和Backward(u)两个标示,用于区分图中计算的方向。191第 2期徐 瑞 等:基于时间约束网络的动态规划调度算法具体算法如下:动态递推算法子程序(Gd,Cij)(1)Queuez i,j /将新加入约束的两个顶点放入队列(2)Forward(i)=Backw
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 基于 时间 约束 网络 动态 规划 调度 算法
限制150内