第三章任务分解与调度.pptVIP

  1. 1、本文档共20页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  5. 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  6. 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  7. 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  8. 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
第三章任务分解与调度

史忠植 智能科学的研究 第三章 任务分解与调度 本章内容 3.1 任务分解 3.1.1任务分解的形式化描述 3.1.1任务分解的形式化描述 3.1.1任务分解的形式化描述 3.1.1任务分解的形式化描述 3.1.1任务分解的形式化描述 3.1.1任务分解的形式化描述 3.1.1任务分解的形式化描述 3.1.2任务分解的启发式算法 3.1.2任务分解的启发式算法 3.2 任务分配 3.3 并行调度 3.3.1 基于环结构的并行调度算法 3.3.1 基于环结构的并行调度算法 3.3.2 环结构的并行调度算法示例 3.3.2 环结构的并行调度算法示例 3.3.2 环结构的并行调度算法示例 3.4 子任务的协调及结果集成 1.任务分解 2.任务分配 3.并行调度 4.子任务执行时的协调及结果集成 任务分解的主要功能是将提交的任务分解成多个具有尽可能高并行度的子任务,并决定由哪些Agent在何时执行它们。经典的算法有: McCornock的基于聚簇的方法; Niizuna和Kitahachi的基于状态和等价关系的方法。 任务分解问题定义为如下五元组: K,A,E,I,G 其中: K为问题的知识集; A为操作集; E为执行单元集 I为初始条件集; G为目标集。 于是,可定义任务的可行最优分解为下列条件的实现: ①所有的操作在执行前都行到了其必要的输入信息; ②G中所有知识都将得到; ③所耗费的通信和执行开销最小。 另外,定义一个执行开销函数ExecFun与通信开销函数CommFun: ExecFun: A,E?R CommFun: E,E ?R 其中R为实数集。 并定义如下二进制向量: Mjq=1若操作j的输入信息中包含知识q; Djq=1 若操作j的输入信息中包含知识q; Zik=1 若由执行单元k来完成操作i; Xi=1 若在完成任务的过程中执行了操作i; Vi=1 若信息i是完成所必需的; Yij=1 若操作j的输入信息可由操作i的输出信息提供; Wik=1 若执行单元i与执行单元k通信。 根据以上的定义可知: ①每个操作最多可被执行一次,即: ?i(∑Zik≤1) ....(1) k ?i(∑Zik=Xi) ....(2) k ②所有操作的输出信息必须覆盖目标集,即: ?i(∑DjiXj≥Vi) ....(3) j ③每个操作仅当其输入信息存在时才能执行,即: ?q ?j(∑DiqYij≥MjqXj) ....(4) i ④所执行的操作序列必须是可行的,即: ?i ?j(Rij≥Yij) ....(5a) ?i ?j ?k(Rik+ Rkj ≤ Rij +1) ....(5b) ?i (Rii= 0) ....(5c) ⑤仅当需要传递信息时,才进行通信,即: ?i ?j ?k ?l(Zik+ Zjl + Yij ≤ Wkl +2) ....(6) ⑥完成任务的开销为: ∑∑ZijExecFun(Ei,Ej)+ ∑∑WijCommFun(Ei,Ej) i j i j ....(7) 结论:任务分解问题就是在满足(1)-(6)的同时使(7)之值最小的问题。 ①定义Ti为操作,INP(Ti)为操作Ti所需要的输入信息,OUT(Ti)为操作Ti的输出信息,INP0为初始输入信息。OUT为完成任务所获得的输出信息。令Beginners={Ti:INP(Ti)≤INP0},Actions[1..N]为操作集数组。 ②如果Beginners为空集,同不存在可行的操作集,算法结束。否则从Beginners中选择一操作T0,置Beginners= Beginners- {T0},定义输入信息集INP=INP0∪OUT(T0),INP’=INP0,令Actions[1]={T0},M=1。 ③置M=M+1,Actions[M]={Ti:INP(Ti)INP∩INP(Ti) ≮INP’},INP’=INP,INP=INP ∪ ∪OUT(Ti)(Ti∈Actions[M]。 ④如果INP≥OUT,则执行第⑤步;否则,如果( ∪ Actions[i] A,则执行第3步,否则执行第2步。 ⑤定义操作集Result为空集,临时工作集Wanted=OUT。 ⑥重复执行如下操作: 取Wanted的第一个元素K0, 按顺序搜寻Actions,找出操作Ti:OUT(Ti) ≥{K0} 置Wanted=Wanted-{K0},Result=Result∪{Ti}。

文档评论(0)

118books + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档