第5期 杨舒,等:一种面向任务的对地观测卫星Aget团队构建方法 ·657. pruning strategy,HTFA),算法伪码如算法4所示。 团队的代价偏大。为此,对输人任务集合TaskSet 算法4是基于剪枝策略的启发式算法,以teamo 进行排序: 作为根节点,从第1个任务开始搜索,TEAM是所 1)记无序的任务集合为TaskSet-S,以TaskSet-S 有完成task,的team集合,对TEAM1中每个team, 作为输入的HTFA算法为HTFA-S; 搜索ask,以此类推直到搜索到TEAM。语句8)~ 2)根据任务代价由高到低排序的任务集合为 22)是根据剪枝策略对TEAMy进行的剪枝操作。 TaskSet-.C,以TaskSet-C作为输入的HTFA算法为 算法4HTFA HTFA-C: 功能基于剪枝策略的启发式算法; 3)根据任务性价比由高到低排序的任务集合 输入TaskSet,SatSet,teamo; 为TaskSet-RC,以TaskSet--RC作为输入的HTFA算 输出team。 法为HTFA-RC。 1)Begin 4实验与分析 2)set TEAM:=☑,i∈(0,M) 3)TEAM。=TEAM。U{team,} 为了验证TFCA算法、HTFA-S算法、HTFA-C 算法、HTFA-RC算法的性能,设计了4组实验。 4)for(i=1:i≤M:i++) 计算平台:ntel(R)Core(TM)i5-6400CPU@ 5)for each teamin TEAM- 2.70GHz(4CPUs),内存8192 MB RAM,操作系统 6)set TEAM,=☑ Win7,采用Microsoft Visual Studio2010C#编码。 7)solve(1,team,teamSet,i) 实验数据在STK卫星数据库中选取50颗低 8)for each team,in teamSet 轨卫星数据模拟卫星集群的运行,以全球100个重 9)if(TEAM:= 要城市作为观测目标,从中随机挑选。设定每颗卫 10)TEAM,=TEAM,U{team, 星上携带可见光、红外、电磁探测、多光谱、超光谱5 11)else 种载荷。根据卫星硬件情况,设置卫星使用代价 12)for each team,in TEAM SC:=a(|Btasks:,|+|TW_used:)中的参数a,随机 l3)if(team1>team,) 挑选1~5个时间窗作为卫星上已经被占用的时间 14)TEAM,TEAM /(team2} 窗集合TW_used。采用随机生成一组任务的方式, 15)TEAM,TEAM,U (team 模拟真实环境下一段时间内卫星系统接收到的待 16)else 规划任务集合。 17)if(team2 team) 卫星集群按照卫星成员的数量可以分为小规 18)break 模卫星集群(small--scale satellite cluster,SSC)和大 19)else 规模卫星集群(large-scale satellite cluster,LSC)。 20)TEAM,TEAM,U {team,) 小规模卫星集群中成员数量在10颗以下,大规模卫 21)end for 星集群的成员数量大于10颗。 22)end for 实验1随机生成6组任务,在10颗卫星构成 23)end for 的小规模集群上采用TFCA、HTFA-S、HTFA-C、 24)end for HTFA-RC构建团队,比较4种算法的性能。实验结 25)for each team in TEAM 果如图1和表2。 26)if(team.Cost teamu".Cost 450r 400 OTFCA 27)teamur"=team 350 HTFA-S 28)end for 300 题HTFA-RC 250 ■HTFA-C 29)return team 200 30)End 150 100 由于HTFA算法的这种剪枝策略,TaskSet的输 50 入顺序可能会影响算法最终输出结果。如果在随 0 10 12 141618 20 机的任务集合中,代价小的任务排在前面,HT℉A将 任务数量/个 会优先挑选代价小的卫星执行该任务,代价大的任 图14种算法在小规模卫星集群上的性能对比 务只能选择代价大的卫星,会使最终构建出的卫星 Fig.1 Performances of four algorithms in SSCpruning strategy, HTFA),算法伪码如算法 4 所示。 算法 4 是基于剪枝策略的启发式算法,以 team0 作为根节点,从第 1 个任务开始搜索,TEAM1 是所 有完成 task1 的 team 集合,对 TEAM1 中每个 team, 搜索 task2 ,以此类推直到搜索到 TEAMM 。 语句8) ~ 22)是根据剪枝策略对 TEAMM 进行的剪枝操作。 算法 4 HTFA 功能 基于剪枝策略的启发式算法; 输入 TaskSet, SatSet,team0 ; 输出 team best M 。 1) Begin 2) set TEAMi = ∅,i ∈ (0,M) 3) TEAM0 = TEAM0 ∪ team0 { } 4)for(i = 1; i ≤ M ;i++) 5)for each teamin TEAMi-1 6)set TEAMi = ∅ 7)solve(1,team,teamSet,i) 8)for each team1 in teamSet 9)if( TEAMi = ∅ ) 10) TEAMi = TEAMi ∪ team1 { } 11)else 12)for each team2 in TEAMi 13)if( team1 > team2 ) 14) TEAMi = TEAMi / team2 { } 15) TEAMi = TEAMi ∪ team1 { } 16)else 17)if( team2 > team1 ) 18)break 19)else 20) TEAMi = TEAMi ∪ team1 { } 21)end for 22)end for 23)end for 24)end for 25)for each team in TEAMM 26) if( team.Cost < team best M .Cost ) 27) team best M = team 28)end for 29)return team best M 30) End 由于 HTFA 算法的这种剪枝策略,TaskSet 的输 入顺序可能会影响算法最终输出结果。 如果在随 机的任务集合中,代价小的任务排在前面,HTFA 将 会优先挑选代价小的卫星执行该任务,代价大的任 务只能选择代价大的卫星,会使最终构建出的卫星 团队的代价偏大。 为此,对输入任务集合 TaskSet 进行排序: 1)记无序的任务集合为 TaskSet⁃S,以 TaskSet⁃S 作为输入的 HTFA 算法为 HTFA⁃S; 2)根据任务代价由高到低排序的任务集合为 TaskSet⁃C,以 TaskSet⁃C 作为输入的 HTFA 算法为 HTFA⁃C; 3)根据任务性价比由高到低排序的任务集合 为 TaskSet⁃RC,以 TaskSet⁃RC 作为输入的 HTFA 算 法为 HTFA⁃RC。 4 实验与分析 为了验证 TFCA 算法、HTFA-S 算法、HTFA-C 算法、HTFA-RC 算法的性能,设计了 4 组实验。 计算平台:Intel(R) Core(TM) i5⁃6400 CPU @ 2.70 GHz (4 CPUs),内存 8192 MB RAM,操作系统 Win7,采用 Microsoft Visual Studio 2010 C#编码。 实验数据 在 STK 卫星数据库中选取 50 颗低 轨卫星数据模拟卫星集群的运行,以全球 100 个重 要城市作为观测目标,从中随机挑选。 设定每颗卫 星上携带可见光、红外、电磁探测、多光谱、超光谱 5 种载荷。 根据卫星硬件情况,设置卫星使用代价 SCi = α Btasksi + TW_usedi ( ) 中的参数 α,随机 挑选 1~5 个时间窗作为卫星上已经被占用的时间 窗集合 TW_used。 采用随机生成一组任务的方式, 模拟真实环境下一段时间内卫星系统接收到的待 规划任务集合。 卫星集群按照卫星成员的数量可以分为小规 模卫星集群( small⁃scale satellite cluster, SSC) 和大 规模卫星集群 ( large⁃scale satellite cluster, LSC)。 小规模卫星集群中成员数量在 10 颗以下,大规模卫 星集群的成员数量大于 10 颗。 实验 1 随机生成 6 组任务,在 10 颗卫星构成 的小 规 模 集 群 上 采 用 TFCA、 HTFA⁃S、 HTFA⁃C、 HTFA⁃RC 构建团队,比较 4 种算法的性能。 实验结 果如图 1 和表 2。 图 1 4 种算法在小规模卫星集群上的性能对比 Fig.1 Performances of four algorithms in SSC 第 5 期 杨舒,等:一种面向任务的对地观测卫星 Agent 团队构建方法 ·657·