任务agent也设计为慎思型agent,但行为模式较调度agent简单。以下逐一描述任务agent在各个阶段的工作。
1.初始化阶段
任务agent在初始化阶段完成注册,将各自所负责的任务的资源需求、紧前任务等提交给调度agent。
2.再调度阶段
当任务j在可行任务集ESstage中时,aagj启动。aagj根据从黑板系统读取到的全局信息,分别计算非抢占情况下的开始时间sj和抢占情况下的开始时间sja。如果sj=sja,则任务只有一种非抢占调度方案。
如果sj>sja,则表示找到了抢占调度方案。此时aagj需要决定是提交非抢占调度方案还是抢占调度方案。这一决定通过计算抢占的效用来完成。抢占的效用函数如式(10.9)所示:(www.xing528.com)
aagj根据U[ja,Sopt(RCPSP)]的大小决定向sag提交的方案。如果U[ja,Sopt(RCPSP)]>δj,δj∈(0,1)为一个预定义的阈值,则aagj提交抢占调度方案;否则提交非抢占调度方案。
aagj以请求的方式提交调度方案。请求的结构为:
其中,τ∈{a,b},表示任务的第一部分或第二部分;sjτ是任务j的τ部分的开始时间,djτ是任务jτ请求持续的时间;(rj1,rj2,…,rjm)是资源需求;is_preemptive∈{true,false},true表示提交的是抢占方案,false表示提交的是非抢占方案。如果τ=a,且is_preemptive=false,则表示提交的是非抢占方案,此时有djτ=dja=dj;如果τ=a,且is_preemptive=true,则表示提交的是抢占方案,此时djτ=dja<dj;如果τ=b,则此时必有is_preemptive=false,且djτ=djb=dj−dja。
3.迭代改进阶段
任务agent在迭代改进阶段的决策行为与在调度阶段一样,配合调度agent,从黑板系统读取环境信息、计算调度方案、评估调度方案以及决定提交的调度方案。
免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。