任务分配

2024-08-06

任务分配(精选十篇)

任务分配 篇1

任务分配是MAS(Multi-Agent Systems)研究的热点问题之一,研究者提出了许多任务分配方法[1,2,3],然而动态环境中由于任务、Agent的可变性使得这些方法很难发挥更好的作用。为了解决动态环境中的任务分配问题,研究者提出了许多方法如:文献[4]提出了一种分布式的任务分配方法BnB FMS,用于解决任务和成员动态变化时的任务分配问题,但没有对任务和Agent变化的细节进行描述;文献[5,6]用对策论方法来解决灾难环境中的任务分配问题,他们的方法假定Agent具有相同的能力,且Agent的能力不会发生变换。文献[7]提出了一种分组模型用于解决动态环境中的任务分配问题,通过动态分组来解决任务的动态调整问题,每个小组成员需要频繁通信,增加了通信量。文献[8,9]提出了基于群体智能的任务分配方法,群体智能由于没有中心的控制与数据,更具鲁棒性,不会因为某些个体的故障而影响整个问题的求解,因此适应于动态环境下进行任务分配,但是群体智能方法不能单独对某些个体进行调整,只能重新进行二次分配,造成了大量的计算。

为了解决动态环境中的任务分配问题,本文提出了一种基于Agent能力及任务需求的分配方法,该方法把任务分配分为两个层次:第一层为全局任务规划层,使用集中式任务分配方法,由某个特殊的成员根据了解的任务信息和环境信息为每个Agent分配相应的任务;第二层为动态调整层,以解决动态环境中,Agent能力、任务需求等变化导致的任务分配不合理等问题。仿真实验表明该方法是合理和有效的,能够适应动态变化的环境。

1 相关概念

每个任务都有一定需求,Agent要完成这些任务必须满足任务需求,为方便起见,本文引用文献[9,10]中关于Agent、任务的描述方法。其中C=<c1,c2,…,cs>为环境中基本的能力向量,0≤αij(t)≤1,0≤βij(t)≤1,分别表示Agent在t时刻所拥有的能力因子,t时刻任务所需要的能力因子。A={a1,a2,…,aM}为Agent集合,任务集合为W={w1,w2,…,wN}。

定义1 Agent的能力,Cia(t)=[αi1(t)c1,αi2(t)c2,…,αil(t)cl]T,表示t时刻Agent ai所具有的能力,αik(t)≥0对应于Agent ai能力ck的强弱程度。αik(t)=0,表明Agent ai不具备能力ck

定义2 任务需求,完成任务所需要的能力, Cjw(t)=[βj1(t)c1,βj2(t)c2,…,βjl(t)cl]T,表示任务wj 在t时刻的能力需求,βjk(t)≥0对应于任务wj对能力ck的强弱程度,如果完成任务wj不需要能力ck,则相应的βjk(t)=0。

定义3 Agent完成任务需要付出的代价:

cost:resourceR+∪{0}

环境的动态变化会导致完成任务的代价发生变化,故代价函数是一个随时间变化的量,记Agent ai完成任务wj的代价为:cost(ai,wj)(t),若Agent为空闲状态,则cost(ai,Φ)(t)=0。根据实际的实验环境,代价函数可以是一个随时间变化的连续函数,也可以是一个离散函数,或者由专家组给出的经验值。

定义4 任务报酬,指Agent完成任务后获得的报酬。Agent ai完成任务wj后得到的报酬为:r(ai,wj)=Uwj-cost(ai,wj)(t),其中Uwj表示成功完成任务wj后所获得的奖赏。若Agent没有承担任务,则r(ai,Φ)=0。

定义5 Agent对任务的期望度,表示Agent对任务的“偏好”。在不同的时刻,系统环境不同,Agent对任务的偏好也会改变,因此Agent ai对任务wj的期望度记为:Eij(t)∈R+∪{0},满足0≤Eij≤1。当Eij=0时,表示Agent ai对任务wj没有兴趣,不会选择承担该任务。

基于以上的定义,M个Agent,N个任务的分配问题可以描述如下:

(1) 任 务分配行为描述

Ρij={1wjAgentai0wjAgentai(1)

(2) Agent的效用函数,ui:SR,代表Agent对分配结果的满意度。S={s1,s2,…,sl}是任务分配结果的集合。如果对于Agent ai,如果两个分配结果s1和s2有如下关系:ui(s1)≥ui(s2),则对Agent ai,分配s1不劣于分配s2。

本文算法中,若任务wj分配给了Agent ai,则该Agent 对任务分配结果的满意度,用如下的式子衡量:

u(ai,wj)=(1-cost(ai,wj)(t)uwj)×Eij(t)(2)

其中,Uwj为Agent ai完成任务wj后得到的报酬。

(3) Agent对任务的适应度,表示任务与Agent的匹配程度。本文算法中,将t时刻,Agent对任务的适应度记为:Μij(t)=Eij(t)cost(ai,wj)(t)(3)

(4) 全局效用函数,表示任务分配后,系统的总效用,记为:

U=i=1Μj=1Νu(ai,wj)(4)

多Agent任务分配的最优分配问题可以形式化为如下的线性规划问题:

Umax=ΜAX(i=1Μj=1ΝΡiju(ai,wj))(5)

使得:i=1ΜΡij=1,j=1,2,…,N,j=1ΝΡij=1,i=1,2,…,M

2 基于能力及任务需求的任务分配方法

动态环境中由于任务需求变化、新任务的增加及Agent自身能力的变化,导致Agent不能完成目前承担的任务或者对现有的任务不满意,目前主要的解决方法[4]是进行任务的二次分配,但是这需要花费大量的代价。因此为了适应动态的变换环境,提高任务执行的效率和Agent的满意度,本文采用一种层次任务分配方法,如图1所示。该方法把任务分配问题分为两个层次:第一层为全局任务分配层。有一个成员负责任务的分配问题,把每个任务分配给相应的Agent;第二层为动态任务调整层。获得任务的Agent,当发现不能完成当前任务,或环境中有更好的任务可以来完成时,通过调整的方法来解决,使得更多的Agent能够得到满意的任务。

2.1 全局任务分配方法

在多Agent中选择一个管理Agent来完成全局分配任务,管理Agent掌握所有Agent的能力、偏好信息,并了解所有待分配的任务。但是鉴于Agent的自利性,了解所有Agent的能力和偏好是不现实的,本文采用基于拍卖的方法来实现第一层分配,算法如下:

Step1 管理Agent发布所有任务wj的信息,包括完成任务的能力需求Cjw,以及任务完成后可以给出的报酬uwj等信息。

Step2 等待所有满足能力需求的Aegnt提交投标信息Mij(t),若无投标信息,转向step 9。

Step3 管理Agent将每个任务的投标从高到低进行排序。设最高投标价格为FP,共有m个Agent给出了FP

Step4 如果m=1,管理Agent选择该Agent,转step7。

Step5 如果m>1,则管理Agent任意选择一个投标最高者。转step7。

Step6 如果同一个Agent向对多个任务提交了最高投标,则管理Aegnt计算该Agent对这些任务的效用函数,选择效用函数最高的任务分配给该Agent,其他任务选择第二投标价格的Agent执行。

Step7 向选定的Agent发送“中标”信息,设置该Agent的忙标志busy=1,不允许再投标其他任务。

Step8 向所有竞拍Agent发布分配结果。

Step9 结束。

2.2 局部任务调整方法

通过全局任务分配可以为Agent分配到合适的任务,但是由于任务分配是一个NP问题,因此很难得到最优解,这就意味着可能存在Agent对目前承担的任务不满意的情况。另外随着任务的执行,Agent的能力、任务的需求及完成任务的代价都可能发生变换,也可能出现新的任务,此时如果重新进行任务分配,需要花费很大的代价。

2.2.1 问题描述

随着环境的变换,Agent的能力、偏好或者任务的需求可能发生变化,这些变化导致原有的任务分配方法不能适应新的要求,需要进行必要的调整。调整的条件描述如下:

设在t 时刻,分配给Agent ai 的任务为wj。对任务w′,若Allow(w′)=1,表示w′被分配给某个Agent;若Allow(w′)=0,表示没有Agent承担任务w′;若Allow(w′)=2,表示w′目前被某个Agent承担,但是等待交换。某个Agentak没有承担任务,则Agentak的状态为空闲,即state(ak)=idle

(1) if ∃w′∈W,(Allow(w′)=0 or Allow(w′)=2) and Agent ai有能力完成该任务and r(ai,w′)>r(ai,wj)+T,then C1=1 ,else C1=0。if C1=1 ,Agent会放弃当前执行的任务,而选择任务w′,其中T为阈值。

(2) if ∃k∈{1,2,…,l},αikβjk<1,then C2=1 ,else C2=0。if C2=1,表明Agent能力发生变换或者任务需求发生变换,导致Agent不能完成当前任务。

(3) if u(ai,wj)<Td,then C3=1,else C3=0。 if C3=1 Agent请求交换当前任务,其中Td为阈值。

2.2.2 算法描述

设置一个黑板结构用于存放最新到达的尚未分配的任务、需求交换的任务信息,当前Agent为ai,其当前承担的任务为wj,算法描述如下。

Step1 如收到成功交换任务信息,则state(ai)=idel;

Step2ai评估自身能力信息;检查黑板信息;

Step3 计算C1,C2,C3的值;

Step4 如果C1+C2+C3 < 1则转Step8;

Step5 如果C1=1, 当前任务信息写入黑板,allow(wj)=0,把满足条件的任务设为w′作为当前任务,如果allow(w′)=2,则Agent ai通知目前承担w′的Agent愿意承担任务 w′,转Step8;

Step6 如果C2=1,当前任务写入黑板,allow(wj)=0,state(ai)=idel,转Step1;

Step7 当前任务写入黑板,allow(wj)=2;

Step8 执行当前任务;

Step9 如果当前任务没有完成,则转Step1;

Step10 结束。

3 仿真实验

战场环境和灾难环境都满足动态性和复杂性,为了验证本文提出算法的有效性,基于HLA/RTI 结构,20个CGA(Computer Generated Actor)为例进行仿真。

CGA地形数据库由DEM高程数据库和DLG文化特征数据融合而成,并在地形数据库中加入威胁区,采用Creator建模工具构建20个自治实体(CGA,本文使用地面车辆),文化特殊(如桥梁、树木、道理、村庄等)同样使用Creator构建,搭建仿真需要的虚拟战场环境。软件环境:BUAA RTI1.2、VC6.0、OpenGL、OpenGVS、Windows XP;硬件环境:1G内存,图形加速卡,显存512M。CGA能力描述向量和任务需求向量是时间的函数,由专家经验值给出,也可以根据环境的具体情况对这些初值进行修改。

由于战场环境中,随着仿真的进行,道路会遭到破坏、安全区域会发生变换、CGA可能被击毁或者出现故障等,导致分配的任务不能执行或者执行代价变大,因此为了确保任务能有效地完成,需要对任务进行调整。经过100次的仿真实验,对全局分配未交换方法和本文的方法,在完成任务总的效用方面进行了比较,如图2所示。从图中可以看出,随着任务的执行,环境发生变换后,如果没有调整,则整体效应呈下降态势,而且随着环境的变换,有可能导致整体任务不能完成,整体效用为零的情况。本文的算法可以保证Agent整体效用稳步上升,可能会有小的上下波动,但不会出现急速下降的情况,从而提高了MAS的可靠性。

在任务交换的过程中,需要进行必要的通信。动态环境中通信是有代价的,因此任务分配算法必须减少通信的数量,才能有效地提高整体效用。为了清楚描述本文算法的特点,在上述仿真环境中分别实现了文献[7]的方法、文献[4]的方法,重点统计的是需要的通信数量。本文的方法、文献[7]和文献[4]的方法在通信数量上的对比结果,如图3所示,从图中可以看出,Kathryn的方法需要的通信量最少,当Agent数目较少时,文献[7]的方法需要的通信数量优于本文的方法,当Agent数目较大时,本文的方法需要的通信数量明显少于李的方法。由于篇幅的限制本文所设计的具体仿真程序在这里不再详述。

4 结 语

多Agent任务分配是MAS中一个重要的和富有挑战性的问题之一,合理的任务分配方法能够使Agent之间形成有效地合作,提高MAS的整体性能。本文针对动态环境中的任务及Agent的动态变化,提出了一种层次任务分配方法,当Agent能力、任务需求发生变化及新任务出现时,Agent能够自主地对当前执行的任务进行调整。这种层次任务分配方法,融合了集中任务分配和分布式任务分配的优点,有效地提高了MAS的整体效用、MAS系统的鲁棒性和可靠性,仿真结果表明该方法是合理及有效的。

摘要:针对动态环境中的任务和Agent的动态变化问题,提出一种基于能力及任务需求的层次任务分配方法。利用全局分配方法为Agent分配合适的任务,当环境发生变换时,通过局部调整来解决任务和Agent之间的不适应问题,每个Agent能够根据局部信息选择理想的任务执行,提高了分配算法的鲁棒性。仿真实验表明该方法是可行及有效的,能够解决动态环境中的任务分配问题。

关键词:多Agent,任务分配,能力,调整

参考文献

[1]Pietro Baroni,Daniela Fogli.Modeling,robot cognitive activity throughactive mental entities[J].Robotics and Autonomous Systems,2000(30):325-349.

[2]Ponda S,Redding J,Choi H L,et al.Distributed Change-ConstrainedTask Allocation[C]//American Control Conference(ACC),June 2012.

[3]Kalran,Martinoli A.A comparative study of Market-based and Thresh-old-based Task Allocation[C]//Distributed Autonomous Robotic Sys-tems(DARS).Minneapolis,USA,2006.

[4]Kathryn S Macarthur,Ruben Stranders,Sarvapali D Ramchurn,et al.A Distributed Anytime Algorithm for Dynamic Task Allocation in Multi-Agent Systems[C]//Proceedings of the Twenty-Fifth AAAI Conferenceon Artificial Intelligence.

[5]Chapman A C,Micillo R A,Kota R,et al.Decentralised DynamicTask Allocation:A Practical Game-Theoretic Approach[C]//Proc 8thInt Conf on Autonomous Agents and Multi-Agent Systems(AAMAS-09),Budapest,Hungary,2009.

[6]刘小梅,田彦涛,杨茂.基于博弈论的多机器人任务分配算法[J].吉林大学学报:信息科学版,2010,28(3):256-262.

[7]李湘清,孙秀霞,夏岩.Multi Agent动态分组模型用于多无人机协同任务分配[J].系统仿真学,2010,22(5):1266-1269.

[8]Oliverra D,Ferreir A P R,Bazzaz A L C.A swarm based approach fortask allocation in dynamic agents organizations[C]//Autonomous A-gents and Multi-agent Systems,New York,2004:1252-1253.

[9]Zhang G Dandan,Xie Guangming,Yu Junzhi,et al.Adaptive taskassignment for multiple mobile robots via swarm intelligence approach[J].Robotics and Autonomous Systems,2007,55:572-588.

分配组员任务 篇2

收集相关数据与文献,并整理出此次活动的大概纲要,了解学习此次研究性学习的相关知识,编写并完成各自的研究性学习活动的指派任务,得出自己的一份研究学习成果。

针对主题进行一些调查活动,收集数据并整理,制成表格。编写并完成各自的研究性学习活动的指派任务,得出自己的一份研究学习成果,帮助完成研究性学习小组任务,参加编写论文,整理研究成果。

查找关于家庭洗涤用品的相关化学成分,收集资料从而了解并整理出其对于人体或者家庭生活所带来的各种影响,并具体收集资料,了解并进行小组讨论来确定其对于我们家庭生活的利与弊,后与小组成员一起进行总结。

收集相关资料,观察市场上家庭洗涤用品的类型与种类,并作出分析与总结,明确其在我们的日常生活中扮演的角色,了解家庭洗涤用品在哪些方面便捷了我们的生活。然后积极整理,得出讨论结果。

根据主题确定本次研究性学习的开题报告,分配组员任务,同时搜集资料,进行相关调查,根据所得结果与组员一同讨论,而后整理此次研究性学习所得编写此次研究性学习成果论文,最后开展 结题活动。

确定子题后根据子题核心来手收集各种文献资料,从中筛选出与此次活动主题相符合的类型的资料与调查结果,确定研究性学习成果后帮助宣传,为同学们在选择家庭洗涤用品时提供有效凭据。

自动化码头ALV实时任务分配 篇3

摘要:

为弥补自动化集装箱码头自动装载车(Automated Lifting Vehicle, ALV)先到先服务(First Come First Service, FCFS)分配方式的缺陷,提出基于触发事件的ALV作业任务实时分配方式.设置一组触发事件触发ALV实时分配,以ALV到达任务作业点估计时间最短为目标,建立ALV实时分配模型,选用A*算法对该模型进行求解.通过与贪婪算法的对比,验证A*算法的优越性.对用A*算法求解大型集装箱码头ALV实时分配问题的求解速度和稳定性进行实验测试,结果验证了选用A*算法的可行性.

关键词:

自动化集装箱码头; ALV实时分配; A*算法; 触发事件

中图分类号: U691.31; U656.135

0 引 言

随着集装箱码头整体效率的不断提高,码头水平运输车辆的任务分配问题也成为一个非常重要的问题.解决好车辆任务分配问题,可以使车辆更好地服务于其他设备,提高其他设备的作业效率.然而,随着码头向大型化和自动化方向发展,现有的先到先服务(First Come First Service, FCFS)车辆任务分配方式已经很难满足码头的作业需求,急需提出一种更加高效合理的分配方式来解决水平运输车辆的任务分配问题.[1]

国内外学者对集装箱码头的水平运输车辆任务分配问题已经进行了许多研究.NGUYEN等[2]为自动化集装箱码头的自动装载车(Automated Lifting Vehicle, ALV)分配问题建立混合整数规划模型.ANGELOUDIS等[3]根据不准确的码头作业信息,提出在成本/收益下的车辆分配模型和求解的算法.LEE等[4]考虑起重机的作业时间,建立根据多台岸桥的作业任务顺序分配车辆的混合整数规划模型,应用启发式算法进行求解.RASHIDI等[5]将自动导引车(Automated Guided Vehicle, AGV)的分配问题转化为一个最小成本流问题模型,应用改进的网络单纯形法求解.CAI等[6]研究跨运车的作业时序安排问题,利用装卸和搬运的时间窗解决这个问题,并用分支定界法求解.轩华[7]利用FCFS规则进行水平运输车辆和任务的分配,建立数学模型并用启发式算法进行求解.SONG等[8]针对AGV分配问题提出混合元启发式方法,并与贪婪算法进行仿真实验对比.ICHOUA等[9]针对车辆分配问题提出基于先进先出的按时间的行驶速度模型,通过与固定行驶时间的实验结果的对比,发现按时间的车辆分配方式明显优于固定行驶时间的车辆分配方式.GUJJULA等[10]总结几个AGV分配问题常用的目标,包括岸桥等待时间最短、AGV行驶时间最短、完成作业的时间最短等,也总结了几种常用的AGV分配方式,包括最短的行驶时间、使用车辆的数量最少、先到先服务方式等.LIU等[11]总结了3种AGV分配规则,即最大行驶距离、最小行驶距离和随机规则,并分别对其进行仿真.

然而,上述研究都很难解决大型自动化码头中难以估计车辆的实际行驶时间的问题.在交通布局呈现复杂网络结构的码头,由于运输车辆数量多,交通堵塞经常发生,对车辆的实际行驶时间估计的不准确会严重影响车辆任务分配方案的选择.

1 问题描述

1.1 目前ALV任务分配方式

ALV可以在没有其他设备辅助的情况下,自己提起和放下集装箱.ALV任务分配问题就是在码头作业时为需要作业的任务分配可用的ALV.

目前,码头ALV任务分配主要采用FCFS分配方式,每一个新产生的集装箱运输任务都会被分配一辆空闲的ALV,这辆ALV是在分配时最适合去执行这个运输任务的车.应用FCFS分配方式,在为任务分配了ALV后,即使有更合适的ALV可以选择,也不能作出改变.因此,这样的分配方式虽然操作简单,但不能实时保证水平运输车辆的任务分配方案处于最优状态.在ALV运输时间不确定的大型自动化码头,FCFS分配方式会导致ALV的作业效率大大降低,影响其他设备的作业,因此需要设计一个更加高效的水平运输车辆分配方式.

1.2 ALV实时分配方式

ALV实时分配是在作业过程中的某些条件下进行一次ALV的任务分配,当作业的条件发生变化时对ALV的作业任务进行重新分配.把这些条件作为一组触发事件,每次分配看作一次实时分配,建立一个实时分配模型.一组触发事件和一个实时分配模型组成一个完整的ALV实时分配方式.

由于大型集装箱码头ALV的作业过程中会经常出现过去的最佳ALV分配方案后来不再是最佳分配方案的情况,所以要考虑在某些情况

(岸桥(Quay Crane,QC)或者场桥(Yard Crane,YC)准备吊起下一个集装箱;ALV完成上一个运输任务;已经分配任务的ALV遇到交通拥堵等)下对ALV的任务重新进行分配,尽量使ALV的任务分配方案保持最优.

对上述各种作业条件进行归纳总结,设置一组触发事件.每次触发事件发生时,都需要进行一次实时分配.实时分配是对当时所有的任务和空闲ALV进行分配,分配的目标是使总的ALV到达作业地点的估计时间最短.

2 模型建立

2.1 ALV实时分配模型

由于集装箱码头其他作业的ALV实时分配方式与装卸船作业基本相同,所以本文构建模型时,只以装船和卸船作业为例.根据船的作业量给船配备适当数量的QC和ALV,分配给同一艘船的所有QC共享分配给这艘船的ALV,分配给这艘船的ALV也只服务于为这艘船作业的QC.

2.1.1 模型假设

一辆ALV最多只能运输一个集装箱;

分配给QC的ALV数量足够,不会出现等待运输的集装箱数量大于闲置ALV数量的情况;只预先分配一辆ALV给正在作业的QC.

2.1.2 参数定义

C为起重机即将进行作业的集装箱集合,如装船时YC即将进行作业的集装箱和卸船时QC即将进行作业的集装箱的集合;

c为集合C的元素总数量;Q为正在对同一艘船进行作业的QC的集合.在分配ALV时会考虑将部分空闲的ALV分配给正在作业的QC,这些空闲ALV任务的优先级低于C中任务的优先级.q为集合Q的元素总数量;d为在实时分配时需要考虑的ALV任务数量,包括集装箱运输任务数量和正在作业的QC的数量,d=c+q.将任务d分成两部分是因为两部分的分配优先级不同.A为没有开始作业的ALV的集合;a为集合A的元素总数量;i为任务的标识,i=1,2,…,c,c+1,…,c+q,其中,i=1,2,…,c表示需要运输的集装箱,i=c+1,c+2,…,c+q表示正在对同一艘船进行作业的QC;j为ALV的标识,j=1,2,…,a;vj 为ALVj某一时刻的瞬时速度,ALVj停在停车场时vj=V,V为ALV正常行驶时的平均速度;dij为ALVj到任务i的作业地点的距离;

[WTHX]T[WTBX]为从ALVj到达任务作业地点的估计时间矩阵,由ALVj到任务i的作业地点的距离和ALVj的瞬时速度得出;tij为矩阵

[WTHX]T[WTBX]的元素;M为一个很大的数,作为预计行驶时间的上限;D为一个较小的距离常数,dij

2.1.3 模型构建

式(1)表示xij是01变量,当ALVj分配给任务i时xij=1,否则xij=0.式(2)表示模型的目标为ALV到达作业地点的估计时间最短.由于αβ,会给到达任务地点时间短的ALV分配集装箱运输任务,达到先考虑将空闲ALV分配给急需ALV的集装箱运输任务,再考虑将空闲ALV分配给正在作业的QC的目的.式(3)表示每个集装箱运输任务和每一台正在作业的QC最多只能有一辆ALV为其服务;式(4)表示每辆ALV最多只能分配给一个集装箱运输任务或一台正在作业的QC;式(5)表示尽可能多地为需要考虑的作业任务分配ALV;式(6)表示根据距离和速度得出ALV到达作业地点的估计时间.优先考虑分配与任务地点的距离很近的ALV.

2.2 ALV实时分配触发事件

在ALV作业时,设置一个时间段Δt,在每个时间段末检测ALV的行驶速度.记录在第m次分配时ALV的速度vm,设置速度变化量为正值Δv.第m次分配后,当空闲ALV的速度在某个检测时间段末超出vm±Δv的范围(说明ALV的行驶速度相对于第m次分配时有了巨大变化,可能是因为ALV遇到交通拥堵,也可能是因为ALV的交通拥堵得到缓解,ALV的行驶速度恢复正常)时,需要考虑对ALV进行第m+1次分配.根据大型集装箱码头的特点,列举出一组触发事件:(1)新的集装箱运输任务的产生,即起重机准备对某个集装箱进行作业,需要进行重新分配;(2)ALV完成上一个任务,空闲ALV数量增加,需要进行重新分配;(3)第m次分配后,当已经分配任务的ALV的速度在某个检测时间段末的速度超出vm±Δv且dij>D时,需要对ALV进行第m+1次分配.

3 算法设计

大型高效的集装箱码头ALV实时分配触发事件发生的频率很高,每次触发事件的发生都会触发一次ALV实时分配,进行ALV实时分配的频率也会很高,因此对处理ALV实时分配的时间要求也很高.每次触发ALV实时分配后,ALV的任务分配必须在短时间内完成并向ALV发送作业指令,这样才能使ALV实时分配方式的优势得到发挥.因此,需要一种对ALV进行任务分配的算法,以快速地对规模较大的ALV实时分配模型进行求解.

3.1 算法简介

3.1.1 A*搜索算法

A*搜索算法是静态路网中求解最短路最有效的方法.A*搜索算法通过最佳优先搜索来寻找一条从起始节点到一个目标节点或者多个可能的目标节点的代价最短的路径.作为启发式搜索的一种,A*搜索算法同样需要选取估价函数,以省略大量的无意义搜索,提高搜索效率.n是搜索图中的一个节点,A*搜索算法通过一个启发式代价函数

f(n)对节点n进行评价,由f(n)决定在搜索图中的搜索顺序.f(n)是从初始点经由节点n到目标点的估价函数.

式中:g(n)是在状态空间中从起始节点到节点n的实际代价;h(n)是从节点n到目标节点最佳路径的估计代价.h(n)是f(n)函数的一部分,是一个可采纳的启发式函数.对h(n)的估计不能超过节点n与目标节点之间的距离.如果应用在路径问题中,h(n)可以表示节点n与目标节点的距离,是两个节点之间可能的最短实际距离.h(n)是f(n)函数中最重要的一部分,h(n)设计的好坏,决定该算法是否能被称为A*搜索算法,也会影响搜索的效率[13].

3.1.2 A*搜索算法搜索过程

在A*算法执行的过程中用到OPEN表(用于存放搜索到的点但非最小代价节点的集合)和CLOSE表(用于存放已经搜索过的最小代价节点的集合),假设起点和终点分别用

S和V表示,Vi表示节点S与V间的任意一点,fi表示该节点的估价值.A*搜索算法搜索基本步骤如下.

在搜索过程中可以根据需要记录取得最短路径的行走轨迹.行走轨迹就是从起始点到达目标节点的路径最短的行走方案,也是大多数问题的解.

3.2 算法设计

应用A*搜索算法对大型集装箱码头ALV实时分配模型进行求解时,可以很容易将码头获取的ALV到达作业地点的距离dij按照第2节的模型规则转换成ALV到达作业地点的估计时间tij,以时间tij作为任务分配的代价值进行分配.用A*算法求解ALV实时分配问题,需要先将ALV分配问题转换成静态路网中的求解最短路问题,举例说明如下.

将ALV的任务分配问题转换成一个路网图(见图1),圆圈表示节点,其中节点S是起始点.根据ALV的数量或者任务的数量进行分层,本文是根据ALV的数量进行分层的.每一层为一辆ALV分配任务,下一层是在上一层的基础上进行的,根据第2节的模型,按照一辆

ALV最多只能被分配一个任务,一个任务最多只能分配一辆ALV的原则进行分配.例如第一层为ALV1分配任务,此时ALV1可以选择任务1,2,3三个任务,所以节点S下面有1,2,3三个节点.节点1,2,3分别表示将任务1,2,3分配给ALV1.第二层分配是在第一层分配的基础上进行的.第一层中节点1表示任务1分配给ALV1后,第二层ALV2只能分配任务2或3.因此,节点1下面有两个节点4,5,节点4表示将任务1分配给ALV1后,任务2分配给ALV2,节点5表示将任务1分配给ALV1后,将任务3分配给ALV2.同样,节点2和3下面也分别有两个节点.到第三层为ALV3分配任务时,ALV3只能选择上面两层没有选择的任务,因此节点4下面只有一个节点10,表示任务1分配给ALV1,任务2分配给ALV2后,任务3分配给ALV3.节点5下面只有一个节点11,表示任务1分配给ALV1,任务3分配给ALV2后,任务2分配给ALV3.其他节点也按照同样的规则进行分配,直到所有的ALV分配任务完成,得到图1所示的树状图.

根据图1所示的树状图进行搜索,对于搜索到的节点,需要求出它的h(n),g(n)和f(n)值.

g(n)是从起始节点S到达节点n所走的总路程,也就是搜索到达节点n时已经进行任务分配的总的

ALV到达作业地点的估计时间.h(n)是未分配的ALV到达每个作业地点的估计时间里最小的m个的总

如图2所示,在搜索到节点11时,f(n)小于OPEN表中所有点的f(n)值,结束搜索.根据推理可得, S1511路径为最优路径,总的ALV到达作业地点的估计时间为110 s,节点11代表的意义就是ALV的作业任务分配方案,也是问题的解,即任务1分给ALV1,任务3分给ALV2,任务2分给ALV3.

在上述案例中,若不考虑从节点n到目标节点最佳路径的估计代价h(n),只考虑目前从起始节点到节点n的实际代价g(n),也可以看作h(n)=0,此时f(n)=g(n),即贪婪算法.其搜索过程见图3.从图中可以看出,到达目标节点的最优路径为S1511,最短路程与用A*搜索算法得到的相同,都为110 s,但贪婪算法的搜索点数多于A*算法.从这个例子可以看出,A*算法中h(n)的作用是巨大的.

4 算例分析

4.1 A*搜索算法与贪婪算法对比实验设计

为验证A*搜索算法适用于大型集装箱码头ALV实时分配问题,设计几组实验.实验中使用几组实验数据(ALV任务分配的到达作业地点的估计时间),用贪婪算法和A*搜索算法对ALV实时分配问题进行求解,对比两种算法的求解结果,分析A*算法解决大型集装箱码头ALV实时分配问题的可行性,同时也验证A*算法的优越性.

对a辆ALV和q个任务进行任务实时分配,ALV到达作业地点的估计时间为a×q的矩阵.本文设计8组实验,分别是a辆ALV和q个任务(a=q=6,7,…,13).实验数据是几组实验的ALV到达作业地点的估计时间矩阵,分别为a×q的时间矩阵,代表实验问题的规模,相应的实验组为a×q组,每组进行5次实验,分别对每组实验的5次实验结果取平均值.

用相同的软件分别编写利用A*搜索算法和贪婪算法求解ALV实时分配问题的程序,并在同一台笔记本电脑上运行.两种算法使用的实验数据相同,求解出来的最短路径的最优值也相同.在此问题中,这些分配方案是最优的,在第3节中已经证明.表3所示是两种算法每组实验在求解过程中的运行时间和总搜索点数的对比.通过对比可以看出,A*搜索算法的求解时间和总搜索点数明显少于贪婪算法.

如图4和5所示是求解运行时间和总搜索点数

的平均值变化趋势.从图4和5中可以看出,贪婪算法的运行时间和总搜索点数随求解问题规模的变大迅速增加,而A*搜索算法变化得比较慢.这说明,在遇到大规模的求解问题时,A*搜索算法运行时间和总搜索点数不会突然变大,求解速度所受的影响不大.

4.2 A*搜索算法性能测试

为进一步验证A*搜索算法的求解速度,在上述实验的基础上用A*搜索算法对14×14至17×17规模的ALV实时分配问题进行求解,实验运行时间和总的搜索点数的平均值见表4.

大型集装箱码头为一艘船最多配备6台QC,每台QC分配2辆ALV,即为同一艘船服务的ALV的最大数量为12台,因此ALV实时分配问题的最大规模为12×12,去掉部分正在运输集装箱的ALV,大多数情况实时分配的规模在10×10以内.从表3可以看出,10×10规模的问题用A*搜索算法求解的时间在0.3 s左右.从表3和4可以看出,如果问题的规模加大,A*搜索算法的计算时间不会出现急剧的增长.因此,在计算时间上,A*搜索算法完全可以满足解决大型集装箱码头ALV实时任务分配问题的需求.

5 结束语

本文在大型自动化集装箱码头的背景下,根据码头的新特点和FCFS分配的缺陷,设计了基于触发事件的ALV作业任务实时分配方式.设置了一组触发事件触发ALV实时分配,并以总的ALV到达任务作业地点估计时间最短为目标,建立了一个ALV实时分配模型.选用A*搜索算法对分配模型进行求解,通过与贪婪算法的对比验证A*搜索算法的优越性.对A*搜索算法求解大型集装箱码头的ALV实时分配问题的求解速度和稳定性进行实验测试,验证了选用A*搜索算法是可行的.

参考文献:

[1]

赵宁. 集装箱码头发箱任务的集卡指派模型[J]. 上海海事大学学报, 2011, 32(1): 910.

[2]NGUYEN V D, KIM K H. A dispatching method for automated lifting vehicles in automated port container terminals[J]. Computers & Industrial Engineering, 2009, 56(3): 10021020.

[3]ANGELOUDIS P, BELL M G H. An uncertaintyaware AGV assignment algorithm for automated container terminals[J]. Transportation Research Part E: Logistics and Transportation Review, 2010, 46(3): 354366.

[4]LEE L H, CHEW E P, TAN K C, et al. Vehicle dispatching algorithms for container transshipment hubs[J]. OR Spectrum, 2010, 32(3): 663685.

[5]RASHIDI H, TSANG E P K. A complete and an incomplete algorithm for automated guided vehicle scheduling in container terminals[J]. Computers & Mathematics with Applications, 2011, 61(3): 630641.

[6]CAI Binghuang, HUANG Shoudong, LIU Dikai, et al. Optimisation model and exact algorithm for autonomous straddle carrier scheduling at automated container terminals[J]. Intelligent Robots and Systems (IROS), 2011 IEEE/RSJ International Conference on. IEEE, 2011(4): 36863693.

[7]轩华. 基于FCFS策略的带时间窗车队调度问题研究[J]. 交通运输系统工程与信息, 2013, 13(6): 140157.

[8]SONG L Q, HUAGN S Y. A hybrid metaheuristic method for dispatching automated guided vehicles in container terminals[J]. Computational Intelligence in Scheduling (SCIS), 2013(8): 5259.

[9]ICHOUA S, GENDREAU M, POTVIN J. Vehicle dispatching with timedependent travel times[J]. European Journal of Operational Research, 2003, 144(2): 379396.

[10]GUJJULA R, GUNTHER HO. The impact of storage block assignment for import containers on AGV dispatching in highly automated seaport container terminals[J]. Industrial Engineering and Engineering Management, 2008(8): 17391743.

[11]LIU ChinI, LOANNOU P. A comparison of different AGV dispatching rules in an automated container terminal[J]. Intelligent Transportation Systems, 2002(6):880885.

[12]张海涛, 程荫杭. 基于A*算法的全局路径搜索[J]. 微计算机信息, 2007(23): 238240.

[13]李淑霞. 基于A*的路径规划算法研究[J]. 福建电脑, 2013(3): 99100.

基于任务分配的剪枝算法优化体会 篇4

关键词:任务分配,剪枝算法,匈牙利算法体会

1 引言

随着科技的不断发展与进步, 人们的生活节奏也在加快, 低效率的工作不能够很好的适应现代社会发展, 因此过去慢节奏的工作方式已经被新方法所取代。在我们的日常工作中, 常会面临任务分配的问题, 例如工作任务的分配;各小组之间的分配等, 这样的问题通常会用有多项任务让多个人去完成, 不同的人执行的效率不同得到的效果也不同, 要确定出最合适的分配方案, 才能让整个的任务得到圆满的完成, 还能使整体任务付出的成本最小。其实这类的问题在很多领域中都可以见到, 比如教育课程的分配、军事应用的武器分配、劳动生产分配问题等等, 过去此类的问题常会利用匈牙利算法进行解决, 但是随着匈牙利算法运算效率的降低, 研究人员又提出了一种新的解决方法就是基于任务分配的剪枝算法, 此算法提高了任务分配的速度与效率, 本文就对匈牙利算法思想以及基于任务分配的剪枝算法进行具体的分析。

2 匈牙利算法及思想

匈牙利算法主要应用于指派问题上, 比如车床加工问题, n个零件在m台车床上加工, 每个零件的加工时间与成本不同, 那么最佳的任务分配就是要让此任务的总成本最低。匈牙利算法在进行分配任务求解的时候, 会对原代价矩阵进行多次的改变, 让原代价矩阵变成有很多0元素的新代价矩阵, 将矩阵C的所有元素划分为0和非0, 得到不同行不同列的0元素最大数目与0元素最少的直线数相等。匈牙利算法在进行简化的过程中为了达到行列减少的目的, 会对成本矩阵进行迭代并且多次对零元素进行寻找、选择与删除, 这样一来使得逻辑变得复杂, 运算效率也慢慢降低。因此重新分析任务分配问题的特点提出了一种新的快速优化算法——剪枝算法。

3 基于任务分配的剪枝优化算法的理论

3.1 剪枝算法相关理论

3.2 剪枝算法具体步骤

根据本文的设计, 剪枝优化算法使得付出代价最小的任务分配方法步骤为:

(3) 剪枝算法, 让然后将与之同行列的元素标记成false, 这是进行剪枝算法的操作, 这样的算法就会让代价矩阵的规模减少一阶。

(4) 降低了一阶的代价矩阵中如果有没有进行标记的矩阵, 就可以重复这些步骤, 直到代价矩阵变为最低的1×1矩阵并且标记为true, 任务分配问题得到解决。通过以上算法的分析不难看出, 在利用剪枝算法进行求解矩阵分配问题的时候, 要用循环进行 (n-1) 次操作得到解, 本文的基于任务分配的剪枝算法经过分析使计算的逻辑性得到简化, 是一种实现了逻辑简单, 高效率的计算方法。

3.3 剪枝算法实例分析

对于比较常见的指派问题, 如果各主体间的代价矩阵给出了数据, 利用文中的剪枝优化算法, 经过多次的剪枝就能得到最佳的任务分配方案, 并且每一步的剪枝都能够得相应的解。需要说明:剪枝算法也有一定的缺陷, 即它的适用范围只能用于求解代价矩阵的元素, 并且其中元素不能出现负值。一旦代价矩阵中正负数都有时, 让先找出最小的负数, 然后将每一个代价元素增加相同的正数, 这样就有效解决了代价矩阵中都为非负值的条件, 最后就可以利用上文中的剪枝算法对问题进行求解, 可以看出, 相比于匈牙利算法, 剪枝优化算法才是对矩阵元素增加正数却并不影响问题解决的最佳方式。

4 结束语

综上所述, 本文开始对匈牙利算法与思想进行简要的分析, 然后由匈牙利算法的低效率引申出一种更好解决任务分配问题的新算法, 即剪枝优化算法, 再对剪枝算法的定义与步骤进行详细的说明, 得出剪枝算法是最佳的解决方法, 它将求解的范围慢慢变小得出解答, 有效的节省了运算时间, 降低了负载率, 也提高了计算机的利用率, 相信未来基于任务分配的剪枝算法会得到更多的应用, 获得更大的发展。

参考文献

[1]陆洋, 施侃乐, 雍俊海.细分法求解点投影问题时的剪枝算法[J].计算机辅助设计与图形学学报, 2014 (04) .

[2]熊焱, 吴微, 张超.基于灰色关联分析的高阶神经网络剪枝算法[J].大连理工大学学报, 2010 (03) .

教学任务分配表 篇5

一年级周小丽:一年级语文7节,1-3年级美术3节,书法1节(大学生)共11节 白兆平:一年级数学5节,阅读2节,A1(共9节)

二年级夏玉华:二年级语文7节,阅读2节,A1(共9节)

黄立付:二年级数学5节,新疆1节,民团1节,党建,标准化A1(7节)

三年级徐冰:三年级语文7节,思品2节,民团1节,德育主任,标准化A4(共10节)鲁水英:三年级数学5节,新疆1节(共6节)校长

四年级马晓花:四年级数学5节,一年级阅读2节,二年级写字1节,四年级美术1节 教务主任(9节)

沈荣富:四年级语文7节,思品2节,民团1节(10节)

五年级大学生2:五年级语文7节,思品2节,科学2节(11节)

魏云义:五年级数学5节,实践2节,新疆1节,五年级美术1节,实验室,仪器9节

六年级陈征:五六年级英语6节,五六年级体活2节,民团1节,A3,后勤,电子备课室(9节)

刘贞:六年级语文7节思品2节民团1节妇女主任1节晨检卫生室(10节)花文:六年级数学5节二、六年级实践4节六年级新疆1节数学教研组组长11节

耿英丽:

三、四年级科学4节,会计

李旭平:1-6年级音乐12节少先队标准化A2 协助刘老师搞学生汇报工作

买提明:

四、五年级维语2节,1-3年级体育10节,小三门教研组组长,学生体检,体育

室,课间操,升旗仪式

徐雁利:

三、四年级英语6节,三、四年级体活2节,三年级科学2节,档案室,(10节)

大学生3:

五、六年级科学4节,六年级美术1节,二年级品生2节,四年级新疆1节(共8节)

温学义:电脑3-6年级4节,4-6年级体育6节,安全,学生学籍,学校网站,电脑室

大学生4:学前班数学

葛增江:学前班语文,图书室

浅谈语文课合作学习的任务分配 篇6

一、科学分配任务的心理学和教育学依据

合作学习教学中, 教师面对的学习单位是一个个的小组, 而不仅是单个的“个人”。在这样的课堂结构中, 如何驱动学习小组和个人的学习动力呢?作为教师, 要考虑的不应仅是个体学习者的内在驱动力, 而更要考虑小组的内在驱动力。

根据美国教育心理学家J·布罗菲以及L·A·巴洛赫等人的学习动机理论和合作学习理论, 认为合作学习中小组动力与关联、自主能力发展和相互依存这几个要素有关, 这是驱动学生学习责任感和义务感的关键。下面是这几个概念的理解。

关联——青年学生在学习过程中, 希望与他人——同伴发生关联, 更多的时候, 他们喜欢在合作中的完成任务, 或在完成任务的过程中得到同伴的支持, 而不是孤军作战。

自主——学习任务的选择、学习任务的完成方式甚至学习目标的达成, 都应该是学生自主选择的。或者说, 当能够对任务进行自主选择时, 学生对任务的关注和投入程度会更高。

能力发展——即任务对于学生个人 (或者小组) 而言, 是符合其最近发展区水平的——不是太简单容易, 也不是太难太复杂, 对于他们而言, 有所挑战并且有信心胜任。

相互依存——这点与“关联”有关, 即任务的分配正好使得学生个人与个人之间、个人与小组之间、小组与小组之间产生相互依存——而不是竞争或其他类型的排斥关系。

二、任务分配的原则和方法

根据以上心理学和教育学原理, 合作课堂的学习任务分配, 应遵循以下几个原则。

(一) 合作方法指导原则

这个原则要求教师在学习任务的布置时, 不仅下达任务, 同时一定要提供具体的合作学习的机会, 并指导具体的合作学习的方法——这一点在学生进入合作式学习的初期, 尤为重要。

例如, 在学习朗读类的课文——诗歌时, 教师这样布置朗读练习的任务。

方法一 ——

师:请大家各自朗读诗歌, 体会诗中的情感。

方法二——

师:第一, 请大家各自朗读诗歌, 体会诗中的情感。第二, 请和同桌相互听读, 尽量使用你理解的情感进行朗读。第三, 组内轮流交流各自的体会, 并得出组内一致认可的意见。第四, 请练习全组齐读, 并做好为全班展示的准备。

显然, 第二种方法更能驱动学生。学生在这种方式中接受任务, 很少在课堂中表现出茫然和对任务的逃避和推托, 也很难完全应付了事。其中的原因就是, 教师不仅布置了任务, 还提供并指明了合作的机会, 非常具体地指导了合作学习的方法——这就保证合作学习的有效性, 不让学生在接受任务的同时陷于迷茫, 或有回避的可能。

(二) 自主原则

这个原则要求任务的呈现多样化, 以提供学生自主选择的机会。包括任务的类型、数量, 完成任务的方式等。

例如, 在文言文的通假字复习课中, 教师把练习的任务分为:“读音”、“通假字”、“出处”、“类似用法”几个部分。对比以下两种做法。

方法一 ——

师:请第一组负责展示‘读音’部分的练习, 第二组负责展示‘通假字’部分的练习, 第三组负责展示‘出处’部分的练习, 第四组负责展示‘类似用法’的练习;其他小组的同学注意倾听, 提出你们的补充意见或疑问……

方法二——

师:现在我们有四个任务:分别是“读音”、“通假字”、“出处”和“类似用法”。你们愿意选择哪个任务作为本组的任务呢?请尽快做出决定!当然, 我们班有8个小组, 我们可以考虑其中的4个小组分别作为一个任务的展示组, 另外的4个小组作为展示后的点评组, 负责对每个小组的展示提出你们的补充意见或疑问。现在, 我给大家1分钟的时间来和你们的同伴进行讨论:你们组将选择哪一个任务?

课堂上, 我们看到学生更喜欢第二种方法——他们会因为可以自由选择而欢呼雀跃!——当然, 这不重要, 重要的是, 他们对于自己选择的——而不是被老师强加给的任务, 更愿意投入他们的热情!

(三) 能力发展和搭桥原则

遵循这个原则, 意味着任务的设置在难度上要考虑学生的最近发展区, 同时还要给予必要的“搭桥性”的指导。

中职学校学生的特点是:学生之间在学科知识的基础、学习能力、学习策略、学习兴趣等多方面都存在着很大的差异。因此, 在布置任务时要考虑不同学生的差异, 提供必要的搭桥, 这非常重要。

比如, 作文课中, 考虑到部分学生的写作能力确实很低——甚至连小学四、五年级的水平都难以达到, 因此, 我会巧妙地为学生设计一些特殊的作文任务, 并通过适当的方式让学生不显难堪地选择到这样的任务。

例如, 在写“观后感”的作文课中, 我设置6道作文题, 其中有一道是:“用5句话描写昨晚观看文化艺术节开幕晚会的情景, 用1句话写你观察到的其他同学的感受, 用两句话写你自己的感受……”

这样格外简单的作文题与其他一般难度的作文题一起, 发放到各组, 同时我会暗示学生可以选择其中的任意一题——这样做的目的是保证每个组中作文基础较差的学生, 将有机会得到这个非常简单的、基本能够胜任的写作任务。

在实际操作中, 我们会很自然地将“自主”和“能力发展”, 甚至更多的方法结合在一起使用——根据学生的实际需要作出整合——方法是为需要而生的, 而不是生硬的遵循原则。

另外, 我们都知道, 设置得好的任务, 对学生而言, 应有那种“跳一跳, 够得着”的感觉。因此, 对于任务难度的考虑, 是以教师对学生的全面了解为基础的。在学生需要的地方搭一把梯子、递一个扶手, 让他通过适当的努力够得着, 是非常必要的。

(四) 依存原则

巧妙地设置小组内和小组间的相互依存的关系, 使学生相互关注、相互合作而不是相互排斥。在学生个人以及小组之间建立起相互依存的关系, 有资源、角色等多种做法。下面是我常常使用的几种方法。

1.角色分配产生依存。

记录员、朗读者、板书、讨论负责人、检验者等, 这些角色, 是我常常在课堂上使用的——每次布置任务时, 我都同时提示学生:“请各组确定好完成任务所需要的角色——谁是记录员、朗读者呢?……请讨论负责人一定要注意保证我们组内的讨论时刻都不要偏离主题……”

这样的角色分配, 并不仅仅是任务分工的简单需要, 更重要的是, 它使每位学生在小组内得以明确自己的身份和职责——对于年轻学生来说, 明确自己在团队中的身份, 并且, 这个身份在团队中是不可或缺的, 是让其他成员以及整个团队的任务完成所信赖的——再也没有什么比这种感觉能够更快地促使学生投入任务中并为之负起责任来。

2.资源分配产生依存。

比如, 我把一篇课文的学习任务分为:“关于作者和写作背景”、“重要的词句”、“写作顺序”、“写作的方法”、“人物的情感”、“主题”等6个任务, 然后, 把任务分配到各个小组中。经过一段时间 (如10分钟) 的学习后, 我让每个小组各留下一位同学在“家” (即本组内) , 负责向前来学习的其他小组的成员教授本组负责的那部分内容, 其余的5人, 则分别前往其他5个不同任务的小组去“游学”, 学习该组所负责的任务。一定时间后, 全部学生回到本组, 由5位“游学”回来的成员分别把自己的“游学”所得教授给本组成员……在这个过程中, 每位学生都很明确自己任务, 每位学生都负责各不相同的任务——对于他所在的小组而言, 他是不可或缺的、不可替代的——缺了他, 他所在的小组就缺了他所负责的那部分的内容。换个说法, 每位学生都掌握着一部分重要的学习资源, 为了使学习完整, 他们必须相互依存。

这样的关系, 使得学生在任务面前无法推诿——无须教师强迫, 他们完全是因为自己对小组“应尽”的责任和义务而投入到学习任务当中。

当然, 在这样的学习过程中, 小组之间并不存在竞争和排斥的关系, 而是一种依存和互助的关系。学生始终能够感受到支持和帮助, 并且在这种支持和帮助中感受到温暖和学习的快乐, 这正是合作课堂的灵魂。

至于小组和小组之间的依存关系, 我还常常使用这些简单的方法:“请关注你们的友好小组, 时刻考虑为他们提供他们所需要的帮助。”

由于篇幅所限, 以上所述并非全部。总而言之, 在合作学习的教学中, 学习任务的分配是需要教师用心思考精心设计的。当我们在课前下足了工夫, 课堂中, 我们就可能更少看到学生的游离和茫然, 而更多地看到他们在任务中的全神贯注!

参考文献

[1]L·A·巴洛赫.曾守锤, 吴华清译.合作课堂[M].上海:华东师范大学出版社

[2]郑金洲.课堂教学的50个细节[M].福州:福建教育出版社.2007.

任务分配 篇7

WSN的研究始于20世纪90年代。进入21世纪, 随着无线通信技术, 微芯片制造技术的进步, WSN的研究取得了重大进展, 并引起了军方、工业界和学术界的极大关注。WSN具有十分广阔的应用前景, 无论在军事领域还是民用领域都有重要的科研价值和巨大的实用价值[1]。

1 无线传感器网络结构

无线传感器网络是由多个节点组成的面向任务的自组织网络, 其典型系统组成如图1所示。

图1即为无线传感器网络系统典型组成结构。它由无线传感器节点、汇聚节点 (网关或基站) 、管理节点三部分组成。每个节点均具有无线通信与计算能力, 它们通过自组织方式构成能根据环境自主完成指定任务的分布式智能化网络系统, 并以协作的方式感知、采集、处理覆盖区域中的信息;汇聚节点具有较强的处理能力、通信能力和存储能力, 它负责连接传感器网络和外部网络, 将监测现场中的许多传感器节点所获得的监测信息收集汇聚后, 通过因特网或卫星传输给管理节点。反之, 管理节点也可以向感知节点发布命令, 对其进行实时的控制和操作。

2 无线传感器网络任务分配协同技术

2002年, Wang和Chandrakasan首先将协同任务分配思想引入了单跳分簇的无线传感器网络, 并提出了最原始的协同任务处理实现与应用方案[2]。在此之后, 人们开始广泛关注无线传感器网络协同任务分配机制。

目前主要的协同技术大致有如下几种[3]:

1) 协商的方法, 有动态仲裁与组合拍卖两种方式, 主要通过拍卖、合同网两种方法与协商相结合来解决WSN的协同问题。

2) 组织结构设计法, 多用于C/S/模式的分层结构, 在系统层次上定义了智能体的能力、责任和控制流程等内容, 能够很好地解决大规模无线传感器网络中目标跟踪的问题。

3) 分布式约束满足法, 将无线传感器网络中的任务分配问题转换为了分布式约束满足问题, 把每个传感器节点看作一个变量, 将传感器节点的各种行为看作变量的取值, 将传感器节点之间的关系看作变量之间的约束条件。

4) 基于动态联盟的方法, 经历动态联盟的初始化、形成、确认三个阶段建立无线传感器网络任务分配的动态联盟模型, 但由于其大规模、实时性等特点, 每个节点都无法获得全局信息, 因此也就不能获得全局最优解, 无法构建理想中的最优联盟。

3 现有任务分配算法

目前已有多种启发式算法求解任务分配问题, 主要分为两类:1) 经验启发式算法, 其决策过程由执行者的直觉或经验所制定的规则来引导;2) 元启发式算法, 这种方法将智能优化引入任务的分配与调度。

基于智能优化的元启发式算法具有优化效果好、计算效率高且优化条件较为宽松等优点, 被研究者们广泛关注与使用。

文献[4]提出用遗传算法解决无线传感器网络任务分配问题, 提出一种基于遗传算法的嵌套优化技术, 在多跳聚簇网络中进行能源高效的任务分配, 既可以满足应用的实时性要求, 也可以满足能源的高效性。以及文献[5]提出了一种基于粒子群优化的任务调度算法, 根据任务的完成时间与能量损耗, 建立代价函数, 并且针对无线传感器网络拓扑动态变化的特点, 建立了动态调整机制。文献[6]利用0-1非线性规划理论建立问题的代价函数, 用能量方差表征节点处理任务后的剩余能量均衡度, 并结合离散粒子群优化算法, 得到经优化的任务分配策略。文献[7]基于遗传算法和模拟退火算法提出了传感器网络GaSA任务分配算法, 对多跳分簇无线传感器网络的任务分配进行建模, 通过在适应度函数中加入加权的最大节点能耗实现负载均衡。

4 结语

由于无线传感器网络本身所具有的节点资源有限性、动态拓扑性、数据传输不可靠性等特性, 需要从节能性、协调性、实时性等方面改善无线传感器网络对任务分配方案。现有的研究主要从节能性方面对就无线传感器网络任务分配策略进行改善, 提出了一系列的传感器网络任务分配策略, 但大部分研究内容较少涉及分布式传感器网络任务调度算法的动态性、协调性和可靠性, 因此还需对这一问题进行进一步研究。

参考文献

[1]叶菁, 陈国龙, 吴运兵, 朱丹红.无线传感器网络任务分配的遗传优化算法[J].计算机工程与应用, 2010 (35)

[2]Wang A, Chandrakasan A.Energy-efficientDSPs for wireless sensor networks[J].IEEE SignalProcessing Magazine, 2002, 19 (4)

[3]朱兴国.无线传感器网络任务协同技术研究[D].西北工业大学, 2007

[4]朱敬华, 高宏.无线传感器网络中能源高效的任务分配算法[J].软件学报, 2007 (05)

[5]陈庆枝.无线传感器网络任务分配的粒子群优化算法[J].广西工学院学报, 2009 (03)

[6]蒋志强, 廖晓峰, 刘群.基于0-1规划的异构传感器网络任务分配策略[J].计算机应用, 2012, 32 (4)

任务分配 篇8

关键词:产品协同开发,任务分配,双层规划,供应商参与,直觉模糊理论

0 引言

随着技术创新、经济环境动态变化以及市场需求的多样性发展,企业逐渐意识到独自进行新产品开发所需要的资源和面临的风险均超出了他们可承受的范围。产品开发作为一项非常复杂的系统工程,需要多领域、多学科的企业和人员协同参与。

信息技术在全球的普及应用,使得产品供应链朝着全球化方向发展,大多数制造企业正在把供应商作为一个重要的战略资源。Carr等[1]的研究说明,供应商参与产品开发对企业的创新和绩效有很大的推动作用,可以使制造企业从中获得更大的利益。在降低开发成本和风险、提高原材料质量、缩短产品开发周期以及提高新技术的应用水平等方面具有很重要的意义[2]。对于供应商参与产品开发的研究,也得到了越来越多的重视。

文献[3]定义了供应商与制造企业的合作关系,在一定程度上偏向于战略联盟而有别于传统的采购关系,并通过共同解决问题的程度和利益共享的程度来衡量供应商参与的程度。文献[4]以供应商参与产品协同开发所承担的任务比例作为参与程度的指标,从供应商的角度出发,在考虑不确定性的基础上寻求最佳参与程度。文献[5]指出,与供应商的合作可以降低新产品开发项目的成本、缩短开发周期,并且由于供应商和制造企业的不断交流和沟通,使得新产品开发项目的柔性提高,有利于制造企业和供应商建立长期的合作关系。文献[6]基于产品结构特征、企业资源和供应商资源的分类及其之间的联系,给出了产品创新程度、零部件以及所需参与供应商的定义,将参与新产品开发的供应商分为战略供应商和一般供应商。

供应商参与新产品开发,可以使企业更加关注自己的专业领域。但是,如果各子任务在供应商之间分配不当,可能会使开发项目变得更加复杂。因为各开发子任务之间必然存在依赖和协同关系,如果承担子任务的供应商之间信息沟通不畅,将会导致整个产品开发任务无法顺利完成。虽然已经有不少学者对任务分配问题进行了研究[7,8,9],但主要是针对在同一组织中不同团队之间进行的优化分配。文献[10]将供应商参与引入到任务分配问题中,考虑了因任务之间存在的依赖关系而引起的协同时间,但仅以缩短开发周期为单目标进行优化,没有考虑任务分配规划中,制造企业对不同供应商的主观偏好以及战略供应商与一般供应商不同的参与情况,缺乏从战略层面对供应商参与产品协同开发的任务分配进行规划。

因此,本文探讨了利用双层规划理论解决供应商参与产品协同开发的任务分配问题。以战略紧密程度最大化为战略目标,以开发周期最短为执行目标,构建任务分配的双层规划模型,并利用直觉模糊理论和量子遗传算法进行了求解。

1 产品协同开发的任务分配模型

1.1模型变量及假设

根据供应商参与产品协同开发的特点,构建了协同子任务的分配数学模型。首先将模型涉及的各个变量作如下定义:i为开发子任务索引,当i=0时,任务i表示应由制造企业完成的集成主体部分,当i≠0时,任务i表示应由供应商完成的外包子任务;j表示与i相同的含义;k为参与产品开发的组织索引,当k=0时,组织k表示制造企业,当k≠0时,组织k表示供应商;l表示与k相同的含义;M为参与产品协同开发的战略供应商数量;m为参与产品协同开发的一般供应商数量;n为产品协同开发分解的子任务数量(不包括集成主体部分);λi为任务的重要程度;γk为制造商对组织k的主观偏好;wi为任务i本身的复杂程度;δki为组织k对任务i的技术开发能力;dij为任务ij之间的信息依赖程度;skl为组织k与组织l之间的协同程度;cki为组织k承担任务i时的开发时间成本系数;xki=1,表示任务i分配给组织k,xki=0,表示任务i分配给其他组织;Rk为组织k应当满足的战略偏好上限;Vk为组织k应当满足的战略地位;Tk为组织k所能承担的总体开发时间上限;Qk为组织k所能接受的子任务数量上限;Dk为组织k所能承担的开发成本。

模型的相关假设如下:

(1)在参与产品协同开发的所有供应商中,包含有战略供应商和一般供应商,制造商在任务分配时需要兼顾任务开发能力并保证联盟稳定;

(2)所有产品协同开发的子任务是经过任务解耦和重构得到的,并且集成主体部分的任务必须由制造企业完成,其他子任务均交由供应商完成;

(3)每个组织承担任一子任务所需要的总体时间包括用于开发的时间和用于协同的时间两部分;

(4)每个组织承担任一子任务所需要的成本均折算为单位时间成本;

(5)各组织并行进行开发任务,产品开发总体任务需待每一子任务完成之后方可结束,总体开发时间取决于并行开发过程中需要最多时间的组织。

1.2目标和约束函数分析

两层决策问题的数学模型采用双层规划模型,双层规划模型是一种具有两层递阶结构的系统优化模型[11]。上层问题的目标函数和约束条件不仅与上层变量有关,而且还依赖于下层问题的最优解,而下层问题的最优解又受到上层决策的影响。在产品协同开发的任务分配决策中,制造企业的高一级决策机构从战略目标层面对次一级决策机构实行控制和引导;而次一级决策机构可以在一定权限范围内,行使一定的决策权。

根据供应商参与产品协同开发的特点以及任务分配的具体需求,构建双层规划模型目标函数如下:上层目标即高一级决策机构战略目标,是制造企业需要保持与供应商的紧密合作关系,表示为maxi=0nk=0Μ+mλiγkxki;下层目标即次一级决策机构执行目标,应保证产品开发周期最短,表示为min[max(k=0nwixki/δki+j=0nk=0Μ+ml=0Μ+mdijxkixlj/skl)]

在模型的上层,为保证整个战略联盟的平衡和稳定,制造企业应当赋予战略供应商一定的战略地位;模型下层的约束条件主要包括单个供应商所能承担的子任务个数、所能利用的开发时间以及能够承受的开发成本等。

1.3基于双层规划的任务优化分配模型

根据前面的分析,供应商参与产品协同开发的任务分配模型可表述如下:

其中,式(1)和式(6)分别表示上下层的目标函数;式(2)~式(5)表示上层约束;式(7)~式(12)表示下层约束。

在上层,式(2)表示制造商应当赋予战略供应商一定的战略地位约束,保障其稳定性。在下层,式(7)为单个组织所能承担的开发时间约束;式(8)为单个组织能够承受的开发成本约束;式(9)为组织所能承担的子任务数量约束。式(3)~式(5)、式(10)~式(12)为基本约束条件。

2 直觉模糊双层规划模型

双层规划模型的求解一般都比较困难,即使是很简单的双层线性规划问题也是NP-hard问题[12]。并且上一节所建立的模型还包含诸多约束条件,直接对问题求解会很困难。因此,本文首先将上述双层规划模型转化为直觉模糊形式,再利用相应的启发式算法进行求解。

为简化讨论,上节中的双层规划模型可抽象表示为一般形式

其中,x∈Rn1,y∈Rn2,pq均为约束的数量。

直觉模糊集是对Zadeh模糊集进行的拓展,它把仅考虑隶属度的传统模糊集推广到同时考虑隶属度、非隶属度和犹豫度三个方面信息的模糊集[13]。由于直觉模糊规划不仅优化了隶属函数,而且也优化了非隶属函数,所以其性能优于模糊规划[14]。

定义1 设X是一个非空集合,则称

为直觉模糊集,其中μA(x)和vA(x)分别为X中元素x属于A的隶属度和非隶属度,即

且满足条件

此外

其中,πA(x)表示X中元素x属于A的犹豫度。

定义下层目标函数f1(x,y)的直觉模糊集合为f1={〈(x,y),μf1(x,y),vf1(x,y)〉|(x,y)∈U},隶属函数和非隶属函数为

其中,fmax2和fmin2分别为f2(x,y)的最大值和最小值,a为犹豫度πf2(x,y)的调节系数。当a=1时,πf2(x,y)=0;当a→∞时,πf2(x,y)→1-μf2(x,y)。a≥1,且一般情况下a∈[1,1.5]。

定义下层约束函数gj(x,y)的直觉模糊集合为gj={〈(x,y),μgj(x,y),vgj(x,y)〉|(x,y)∈U},隶属函数和非隶属函数分别为

其中,θj为约束函数gj(x,y)允许的最大正向偏移量,ηj为犹豫度πgj(x,y)的调节系数。当ηj=0时,πgj(x,y)=0;当ηj→∞时,πgj(x,y)→1-μgj(x,y)。ηj≥0,且一般情况下ηj∈[0,10]。

通过Angelov[15]提出的推导过程,可得到下层规划模型的直觉模糊形式为

其中,α2为下层规划目标函数和约束函数的最小隶属度,β2为下层规划目标函数和约束函数的最大非隶属度。

对于上层规划,首先需要将maxxf1(x,y)转化为min f′1(x,y),再通过上述方法变换为直觉模糊形式即可。最终,双层规划的直觉模糊形式为

其中,α1为上层规划目标函数和约束函数的最小隶属度,β1为下层规划目标函数和约束函数的最大非隶属度。μf′1(x,y)和vf′1(x,y)分别为上层目标函数的隶属函数和非隶属函数;μGi(x,y)和vGi(x,y)分别为上层约束函数的隶属函数和非隶属函数。αβ作为寻优计算过程中的调节因子,在算法的初期和后期起到逐渐逼近和加速收敛的作用。在计算初期由β对优化起主要作用,在后期则由α对优化起主要作用。因此在整个寻优过程中由αβ交替引导,向最优解的方向运动,保证全局最优解的获取。

3 量子遗传算法求解

遗传算法是一种高效、并行、全局性的概率搜索算法,适用于处理大规模的复杂非线性优化问题。量子遗传算法(quantum genetic algorithm,QGA)将量子的态矢量表达引入遗传编码,利用量子旋转门实现染色体基因的调整,由于在QGA中使用了量子叠加态,从而QGA比普通遗传算法具有更好的种群多样性和收敛性。仿真实验表明,量子计算与进化算法混合优化的方法在收敛速度和优化结果两方面都明显优于经典进化算法[16]。

量子遗传算法是基于量子位和量子叠加态的概念提出的。一个量子位可以处于|0〉态、|1〉态、以及|0〉到|1〉之间的任意叠加态。一个量子位的状态可描述为

其中,αβ是复数,是量子位对应态的概率幅,且满足|α|2+|β|2=1。一般地,用ρ个量子位就可以表示2ρ个状态,因此对于相同的优化问题,量子遗传算法的种群大小要比一般遗传算法的种群大小小很多。

针对本文提出的双层规划问题,算法的具体实施步骤如下:

(1)确定编码方法和适应度函数。采用基于参与开发的组织的编码方法,设子组织数量为m,满足2κ-1<m<2κ,则单个基因含κ个量子位,一条染色体含ρ=κ μ个量子位,其中μ为子任务数量。然后通过目标函数值和约束违反度来分别设计上下层适应度函数。

(2)种群初始化。设置算法参数,根据下式将全部φ条染色体的2φ ρ个概率幅都初始化为1/2,以表示每条染色体以相同概率处于可能的叠加态之中,然后组成初始种群。其中

其中,ε=1,2,…,φ;σ=1,2,…,ρ;φ为种群规模;ρ为量子位数,即染色体的长度;t为遗传代数;Ptε为第t代中第ε条染色体;αtε ρβtε ρ为第t代中第ε条染色体的第ρ个量子位对应态的概率幅。

(3)根据Ptε中概率幅的取值,构造二进制串{at1,at2,…,atρ}。如果random[0,1]>|αtσ|2,则αtσ取值为1,否则为0。

(4)根据上层模型(或下层模型)的适应度函数,计算每个个体的适应度,采用轮盘赌选择保存,即每个个体进入下一代的概率等于自身的适应度与整个种群适应度之和的比值,适应度越高,被选择的概率越大。

(5)实现种群状态更新。根据下式使用量子旋转门H(θ)更新种群Ptε:

式中,θtε σ为第t代中第ε条染色体的第σ个量子位的旋转角度,可通过量子旋转门查询表获得。

(6)进行量子交叉和变异操作,其基本原理与普通遗传算法相同,只是操作对象为量子位编码染色体,而不是二进制串。

(7)将更新的种群代入下层模型,重复步骤(3)~步骤(6),求解下层模型最优解,然后进入步骤(8)。

(8)将得到的下层最优解代回上层模型,重复步骤(3)~步骤(6),求解上层模型最优解。

(9)如果满足收敛条件或代数达到最大循环次数,则退出;否则,进入步骤(7)。

4 实例分析

上述分析给出了产品协同开发任务分配问题的双层规划模型及求解算法,下面结合产品开发实例,验证其方法的有效性,并对其做简单分析。

M=2,m=3,即有2个战略供应商和3个一般供应商参与开发;设n=12,即除了集成主体外,还存在12个子任务;记k∈{0,bM,bm}={0, 1,2,3,4,5},i∈{0,bn}={0,1,…,12};各子任务重要程度用1~5的等级刻度表示,λi={5,4,5,4,3,4,3,4,2,3,2,3,1}。

各子任务的复杂程度为wi={10,9,9,8,8,7,7,6,6,5,5,4,4}。技术开发能力、信息依赖程度、协同程度和单位时间成本系数以矩阵形式表示,即A=[δki],D=[dij],SWTBX]=[SKL],CWTBX]=[CKI]。各供应商对子任务的技术开发能力可表示为

使用1~9的等级刻度来表示各子任务间的信息依赖结构矩阵(dependence structure matrix, DSM):

各供应商之间的协同程度为

单位时间成本系数矩阵为

其他参数设置如表1所示。

对该算例,在Maple13.0平台上实现直觉模糊形式的变换,参数设置为fmax1=70,fmax1=130,a=1.2,fmax2=150,fmax2=350,η=2。在MATLAB7.0平台上实现QGA算法程序,参数设置如下:种群规模为100,交叉概率为0.60,变异概率为0.01,进化代数为200。重复程序50次,最终得到任务分配优化方案:战略供应商1承担子任务2、3;战略供应商2承担子任务1、5;一般供应商3承担子任务4、6、11;一般供应商4承担子任务8、9;一般供应商5承担子任务7、10、12。

制造商与供应商紧密关系程度为115;产品开发需要时间为222.3天。制造企业承担6.2万元的开发成本;战略供应商1需承担4.85万元的开发成本;战略供应商2需承担4.88万元开发成本;一般供应商3需承担4.69万元开发成本;一般供应商4需承担4.78万元开发成本;一般供应商5需承担4.23万元开发成本。同时,还可以看出一般供应商3由于能够承担较多的子任务数量和投入较多的开发时间,其战略地位达到了9,与战略供应商1相同。制造企业可以考虑在以后的战略规划中将一般供应商3纳为战略伙伴。

5 结语

本文综合考虑了供应商参与产品协同开发的战略目标与执行目标,构建了协同开发的任务分配双层规划模型,并将其转化为直觉模糊形式。将量子遗传算法运用于这一问题的求解,合理有效地在各个供应商之间进行任务分配,提高了制造企业与供应商的战略紧密程度,缩短了产品开发周期。实例验证表明,模型符合供应商参与产品协同开发的实际,为制造企业分配并行开发任务提供了方法。

由于产品协同开发的执行目标在实际环境中可能涉及到多目标优化。因此,在执行层综合考虑时间、成本和质量等问题,建立双层多目标规划,并寻求解决方法,将是下一步研究方向。

任务分配 篇9

无人作战飞机UCAV(Unmanned Combat Aerial Vehicles)作为无人飞行器系统的关键组成部分在现代战争中发挥着巨大的作用。对大规模无人机群的有效协调和指挥是一个复杂的多目标优化与决策问题[1]。而战场态势的瞬息万变要求地面指挥系统和UCAV自身具备快速反应能力,这对任务系统提出了更高的要求[2,3]。

另一方面,马尔科夫决策过程MDP(Markov Decision Process)理论产生于20世纪60年代,是一门研究随机序贯决策过程的理论[4]。所谓随机序贯决策问题是指在一系列离散或连续的时刻点上作出决策,在每个决策时刻点,决策者根据观察到的状态从可用的若干个决策中选取一个并付诸实施。此时系统将获得与所处状态和所采取决策有关的一项报酬(或费用)并影响系统在下一决策时刻点所处的状态。同时,系统在下一时刻点所处的状态也是随机的。

针对未知环境下UCAV执行攻击或侦察任务时目标出现的位置、时间、数量迅速变化的情况,静态的任务分配算法难以适应环境变化的要求。为此,本文引入MDP理论对无人作战飞机进行建模,寻找UCAV在未知动态环境下的最优任务分配策略,并提出改进的MMDP寻优算法,以实现UCAV的最优攻击策略。具体方案为:(1) 以Multi-Agent 马尔可夫决策过程理论为基础,将UCAV执行任务决策过程描述为有限时间序贯决策问题,建立基于Multi-Agent的MMDP动态任务分配模型;(2) 将威胁出现的时间和位置及攻击收益值等量化为在一定范围内的随机数,应用MDP理论有限阶段总报酬准则,获得UCAV最优攻击策略;(3) 应用遗传算法确定最优策略,使UCAV在执行任务过程中获得收益值最大。

1Multi-Agent系统

Multi-Agent(MA)系统是一个由多个Agent共同组成的松散网络,网络中全体Agent共同解决一个或多个问题,且这些问题大多为复杂的、大规模问题,是单个Agent的能力和知识所不能描述和解决的[5,6,7]。MA系统是一种分布式建模方法。该方法将系统中每一具有独立功能的个体视为一个Agent,系统中存在多个决策Agent,全体决策Agent获取系统中全体或部分Agent的状态信息,协同完成对系统中所有Agent的任务分配。

2MMDP决策模型

2.1模型建立

MMDP模型以Multi-Agent模型为基础,将任务系统中的每一UAV视为一个Agent,应用MDP理论求解Agent的最优决策使系统性能实现最优。

本文针对多UCAV动态协同任务分配问题的特点,以Multi-Agent 马尔可夫决策过程理论为基础,参考马尔可夫理论的建模方法,将UCAV执行任务决策过程描述为有限时间序贯决策问题,建立基于Multi-Agent的MMDP动态任务分配模型,并假定攻击每一目标所获收益值为有限值。建立的MMDP 动态任务分配模型由以下7元组表示:

(Time,Target,Agent,Status_Messages,Task_Cost,Policy_Set,Profit)

(1) 时间(Time)

由于UCAV的连续飞行时间、携带弹药量、燃油量等因素,其每次执行任务时间为有限值。MMDP模型中,系统时刻以离散的点t=t1,t2,…,tk表示,任意两个相邻时刻之间相差Δt

(2) 目标(Target)

将UCAV执行任务过程中出现的目标按时间顺序进行编号,表示为:Tj,j=1,2,…。

假定UCAV需要执行的任务可解耦为独立的任务,由不同的Agent执行。在每一时刻,进入系统中的任务数目为随机数且不超过Nmax。系统在有限时间内出现的目标数为有限值。

(3) 无人机(Agent)

将系统中每一UCAV视为Agent,表示为:

aii=1,2,…,m

Agent数目在初始阶段确定,随着分布式任务分配过程进行,失效Agent退出任务分配系统,不再执行任务。

(4) 状态信息(Status_Messages)

状态信息指目标和Agent在每一时刻的状态,分为初始状态信息和当前状态信息。MMDP模型中,初始状态信息服从一定的概率分布。

目标Tjt时刻状态信息表示为:

STj(t)={(Pjx(t),Pjy(t)),Vj(t),Wj(t),bj} (1)

其中,t=t1,t2,…,tk,k=0,1,2,…。

(Pjx(t),Pjy(t))为Tj当前位置,(Vjx(t),Vjy(t))为Tj当前速度,Wj(t)为预计武器消耗,bj为执行任务所获奖励值,在任务进入系统时确定。

Agentait时刻的状态信息表示为:

Sai(t)={Pi(t),Vi(t),Wi(t),Tj} (2)

其中,i=1,2,…,m,t=t1,t2,…,tk

(Pix(t),Piy(t))为ai当前位置,(Vix(t),Viy(t))为ai当前速度,Wi(t)为ai剩余武器量,此处Tj表示ai已分配任务Tj,Tj=0表示ai未分配任务。

上述状态信息中,t=t1时刻的状态信息表示为初始状态信息。

(5) 任务代价(Task_Cost)

任务代价表示为:

Eij=cij+dij+wiji=1,2,…,m j=0,1,2,…,n (3)

其中,cik,dik,wik分别表示ai执行Tk时的通信成本、决策成本和武器代价。Agent每次的通信成本为固定值,任务分配不占用通信成本。

(6) 策略集(Policy_Set)

将每一时刻系统存在的可选任务分配策略的集合定义为决策集,t时刻系统中Agent数和目标数分别记为m,n,可选任务分配策略可表示为:

D(t)为m×n矩阵,nt时刻存在任务数目。δij={0,1},δij=1表示t时刻ai执行Tj。满足:

j=1nδij1i=1mδij1 (5)

条件的所有D(t)都是可选分配策略。

策略集采用单步规划机制,即每次任务分配只为Agent分配一个任务,任务分配过程中依据战场态势变化对每一Agent的任务动态调整。系统在整个任务分配过程中的集合定义为策略集,表示为:{D(1),D(2),…,D(tend)}。策略集反应了每一Agent在整个执行任务过程中执行任务情况,是评价Agent间协同的依据。

(7) 赢利(Profit)

l(t)=sup{|D(t)Bj(t)|-i,j,tEi,j} (6)

t=t1,t2,…,tki=1,2,…,mj=0,1,2,…

其中,l(t)为系统在t时刻的赢利,|D(t)Bj(t)|t时刻采用策略D(t)时执行当前任务所获收益,Bj(t)为t时刻执行任务的奖励值列表,为一维列向量,i,jEi,j为系统t时刻执行所有任务的消耗。

则系统在t+1时刻的总收益为:

L(t+1)=sup{l(t)+L(t)} (7)

2.2模型约束条件

MMDP模型中存在的约束条件有:

(1) 同一Agent执行不同的任务有不同的收益和消耗,不同Agent执行同一任务有相同的收益,不同的消耗。收益值为正值。

(2) ai在每一时刻只能执行一个任务,在整个时间周期内可执行多个任务,且执行每一任务所需时间为Δt

(3) 任意时刻任务出现的概率服从某一分布,两个时刻之间任务出现的概率相互独立。

(4) UCAV在有限时间内的任务分配不考虑燃油限制,初始速度为零,执行任务时的速度为固定值。

3MMDP寻优算法

多UCAV 协同动态任务分配问题中,使系统总收益最大的策略集定义为最优策略。最优策略意味着全体Agent以最优分配方式执行任务,实现全体Agent协同。任务分配中由于战场态势变化,没有固定的分配策略可循,每一时刻的决策对系统总收益都将产生影响。并且最优策略的可能解规模巨大,采用遍历的方法寻找最优解无法满足动态任务分配的快速性要求。

针对以上特点,本节对于上述离散时间MMDP模型,在原有集中式策略迭代算法[2]的基础上进行了相应改进,提出了针对动态任务分配问题的MMDP寻优算法,并应用遗传算法确定最优策略,以获得分布式任务分配模式下各决策Agent 的最优任务分配策略。

算法步骤如下:

Step1 设定I(0)=0,k=0,m>0,L(0)=0;

Step2 对于t时刻的每一D(t),计算:

L(t+1)=max{l(t)+L(t)}=max{|D(t)Bj(t)|-i,j,tEi,j+L(t)}(8)

Step3 将策略解进行解编码染色体设置,应用遗传算法确定最优策略:D′(t)。

具体方法为:将编队内每一架无人机视为染色体中一个基因,长度为m,基因为整数值,代表对应任务队列中任务编码,基因位值为0表示该UCAV未参与攻击任何编号的子目标。基因位表示为gi=0,1,2,…,n,i=1,2,…,m,如图1所示。

Step4 若t<tend,转到Step 2,否则,停止计算。

对于某一MMDP问题,经过上述步骤的迭代,将得到最优策略:{D′(1),D′(2),…,D′(tend)},此时,系统的总赢利:Φ=∑t=1jL(t)。

4动态任务分配模式下的Agent分组管理

分布式动态任务分配模式下每一决策Agent负责若干成员Agent的任务分配,将由决策Agent和若干成员Agent的集合定义为Agent组。

Agent动态分组管理模型中,决策Agent和成员Agent间分组管理、动态调整。各Agent组间的状态信息交换由各组决策Agent完成。Agent之间相互协作,交换信息,实现系统资源配置的优化。

决策Agent和成员Agent分别依据不同评估函数动态调整,决策Agent的调整在组内进行,成员Agent的调整在组间进行。

4.1决策Agent调整

决策Agent调整流程包括7个步骤:

Step1 决策Agent提出选举;

Step2 成员Agent接收信息后应答;

Step3 成员Agent对决策Agent评估,评估函数:

E(am,am)=λdmink=1Μd(ak,am)/d(am,am)+

λφ(φm-φm)maxk=1Μ(φm-φk) (9)

其中,am为当前决策Agent,ak为成员Agent,λdλφ分别为距离评价系数和攻击能力评价系数,且λφ+λφ=1,λd,λφ≥0。mink=1Μd(ak,am)表示本组内与当前决策Agentam的最小距离,maxk=1Μ(φm-φk)表示本组内与当前决策Agent的攻击能力最大差值。E(am,am)越接近1,说明成员Agent对决策Agent的满意程度越高;

Step4 若E(am,am)≥ε,则认为成员Agent对决策Agent满意,转到Step7。否则,认为成员Agent对决策Agent不满意,当前决策Agent需要调整,转到Step5。0≤ε≤1为调整阈值;

Step5 本组内全体Agent对自身评估,评估函数:

E(am)=λdk=1Μd(ak,am)+λφφmk=1Μφk (10)

其中,am为Agent自身,∑k=1Μd(ak,am)为am与本组内全体Agent距离之和,∑k=1Μφk为本组内全体Agent攻击能力之和;

Step6 当前决策Agent根据评估函数值将本组决策权转移给评估值最大者,并通知全体成员Agent和其余决策Agent,完成新的决策Agent选举;

Step7 结束选举过程。

4.2成员Agent调整

成员Agent调整流程包括五个步骤:

Step1 决策Agent对本组中所有成员Agent进行评估。对成员Agentam评估时,评估函数:

E(am)=λdmink=1,kmΜd(ak,am)/d(am,am)+λφφmk=1Μφk (11)

Step2 若E(am)<τ,则认为成员Agent不满足要求,需对当前成员Agent的分组进行调整。0≤τ≤1为调整阈值。

当前组决策Agent向其余组决策Agent发出申请,要求其余决策Agent对当前成员Agent进行评估,每一决策Agentam采用的评估函数为:

E(am,am)=λdmink=1Μd(ak,am)/d(am,am)+

λφ(φm-φm)maxk=1Μ(φk-φm) (12)

mink=1Μd(ak,am)为决策Agentam考虑新成员Agent am后的距离最小值,maxk=1Μ(φk-φm)为决策Agent am考虑新成员Agentam后的攻击值差值最大值;

Step3 全体参与评估的决策Agent向当前决策Agent报告评估值。当前决策Agent将当前成员Agentam转移至评估值最高的Agent组,并向当前成员Agent、其余决策Agent和本组成员Agent报告转移情况;

Step4 新的决策Agent接收新的成员Agent并向本组其余成员Agent报告这一信息;

Step5 若当前组还有成员Agent未进行评估,转至Step1,否则,结束成员Agent调整过程。

5仿真实例与结果分析

以某UCAV编队攻击某区域内目标群为例,编队内UCAV抽象为决策Agent和一般成员Agent,假设该仿真实例中系统为全局状态可观测模式。

假定t0时刻系统中Agent数m=20,任务数n=10。任务分配过程在1000×1000单位长度范围内进行。Agent在初始时刻速度为零,执行任务时采用固定速度飞行。根据一般编队攻击目标群的实际作战情况,假设每一Agent的初始武器量服从(0,5)之间的均匀分布,每一任务的预计武器消耗量和奖励值在任务进入系统时确定,分别服从(0,5)和(0,10)之间的均匀分布。目标的初始速度服从(0,20)之间的均匀分布。每一时刻进入系统中目标的数量为{0,1,2}之间的均匀分布。随机生成Agent和任务的初始位置如图2所示。其中,箭头表示目标的运动方向及速率。

t=0时刻对全体Agent共分为4组。设定λd=λφ=0.5,依据决策Agent和成员Agent评估函数。分组情况如图3所示。

4个Agent组的决策Agent和成员Agent编码情况如表1所示。

采用MMDP寻优算法并经策略优化和调整后,得到系统初始最优染色体基因为:

gbest0=(1,0,0,2,0,0,4,0,0,3,9,0,0,7,6,10,8,5,0,0)

对应的最优任务分配策略如图4所示。

在初始分组基础上,系统中决策Agent和成员Agent的分组情况随Agent相对位置变化不断调整。编队在该仿真区域的UCAV群体分波次对所有子目标进行攻击,每一波次攻击进行完毕后系统根据各成员与剩余子目标的位置关系重新进行策略优化与任务分配,直到所有任务均已完成。任务执行过程中,假设所有UCAV均具有反复多次攻击的能力。

本仿真实例中,在系统中全体Agent按照初始最优分配策略gbest0执行任务之后,假设t=10s时刻第一波次攻击结束,此时T8,T9任务已执行完毕,同时a2和a12在任务执行过程中被敌防空火力击伤坠毁。根据余下的每架UCAV之间的相对位置关系,对Agent成员重新进行分组,如表2所示。

经第二次策略优化与调整后,新最优策略为

gbest1=(6,0,2,0,0,3,0,7,0,10,5,0,0,0,0,0,0,4,0,1)

对应的最优任务分配策略如图5所示。

t=20s时刻第二波次攻击结束,此时T1, T4,T6,T7已执行完毕,在此期间a4在任务执行过程中被敌防空火力击伤坠毁。对Agent成员再次进行分组,如表3所示,经第三次策略优化与调整后,更新的最优策略为:

gbest2=(0,0,0,0,5,0,0,0,10,0,0,0,3,0,0,0,0,0,2,0)

对应的最优任务分配策略如图6所示。

t=30s时刻第三波次攻击结束,剩余目标T2,T3,T5,T10也被摧毁。上述仿真过程中没有加入新的任务,UCAV在所有任务执行完毕后以编队形式返航。在整个分配策略下,系统在作战过程中总路径为3728.9m,并且随着时间的推进,系统的总收益逐渐增加,最终总收益为5668.57。

通过上述对UCAV动态任务分配问题的改进,MMDP寻优算法以及分布式模式进行策略寻优的仿真实验,可以得出如下结论:

(1) 通过建立的MMDP动态任务分配模型可以获得最优任务分配策略;

(2) 所提MMDP寻优算法能够在动态不确定环境中为多架UCAV进行实时的任务决策与分配;

(3) 分布式任务分配模式能够有效减少可行解的规模,从而降低决策成本和通信成本;

(4) 分布式任务分配模式动态调整决策Agent和成员Agent,全体Agent能够以最优状态进行组合并完成策略优化。

6结语

本文首先以MDP理论为基础,建立了基于MMDP的动态任务分配模型,该模型由时间、目标、智能体(无人机)、状态信息、任务代价、策略集、盈利等几大要素构成,有助于获得最优任务分配策略;其次,提出了针对动态任务分配问题的改进MMDP寻优算法,该算法以多UCAV在有限时间内执行任务收益值最大为评价函数,并应用遗传算法确定最优策略,获得了各决策Agent 的最优任务分配策略。最后,以某UCAV编队攻击某区域内目标群为例进行数值仿真,验证了算法的有效性。

仿真结果表明,该算法有效解决了动态协同任务分配问题,降低了决策成本和通信成本,提高了系统可靠性。

摘要:针对多无人作战飞机动态任务分配问题,以马尔科夫决策过程理论为基础,建立基于多智能体马尔科夫决策过程MMDP(Multi-Agent Markov Decision Process)的动态任务分配模型;系统中状态信息、目标的出现和收益值等均服从概率分布;改进的MM-DP寻优算法以多UCAV在有限时间内执行任务收益值最大为评价函数,并应用遗传算法在所有可选决策集中确定最优任务分配策略;数值仿真验证了算法的有效性。

关键词:多智能体,马尔科夫决策过程,无人作战飞机,动态任务分配

参考文献

[1]叶媛媛,闵春平,沈林成.多UCAV任务分配的混合遗传算法与约束处理[J].控制与决策,2006,21(7):781-786.

[2]Jin Yan,Minai A A,Polycarpou M M.Cooperative Real-Time Search and Task Allocation in UAV Teams[C]//Proceedings of the42nd IEEE Conference on Decision and Control,Hawaii USA,December 2003:7-12.

[3]Andrew C J.Intelligent Agent Control of Unmanned Aerial Vehicle[D].Ottawa:Carleton University,2005.

[4]胡奇英,刘建庸.马尔科夫决策过程引论[M].西安:西安电子科技大学出版社,2000.

[5]Naga K Krothapalli.Dynamic task allocation in multi-agent systems[D].USA:University of Massachusetts Amherst,2003.

[6]伍德里奇.多Agent系统引论[M].石纯一,译.北京:电子工业出版社,2003:5-25.

任务分配 篇10

Internet的兴起和不断发展, 给网络带宽和服务器带来了巨大的挑战, 特别是对服务器的性能提出了更高的要求。由于高性能的服务器往往价格非常昂贵, 而且单台服务器即使性能再好, 也已经满足不了Internet的需求。为了在减少服务器成本的同时更好的满足Internet的需要, 通过高性能网络或局域网互联的服务器集群就应运而生了。

集群是由很多连接在一起的独立计算机组成, 对外界是透明的, 在外界看来, 它就像一台独立的服务器一样对外提供服务。集群已成为了实现高可伸缩的, 高可用网络服务的有效结构。Linux虚拟服务器 (Linux Virtual Server, 简称LVS) 集群就是属于这种结构。LVS把很多服务器连接在一起, 利用基于IP层的负载均衡技术把客户请求均匀的分发到各个服务器上, 从而高效的对外提供服务。

1. LVS的结构框架

一般来说, LVS集群采用三层结构, 使用LVS方式架构的集群系统结构模型如图1所示, 三个主要组成部分为:

(1) 负载均衡器

它是整个集群对外的前端机, 也是LVS集群系统的唯一入口点, 所有的客户请求都会被发送到负载均衡器, 负载均衡器接收到客户请求后, 根据系统设定的任务分配算法从后台服务器中选择一台来执行客户的请求。不管选择哪台服务器提供服务, 客户机都认为服务是来自同一个IP地址上的, 这个IP地址称为虚拟IP地址 (VIP) 。因为所有的操作都是在Linux操作系统核心空间中将完成的, 它的调度开销很小, 所以它具有很高的吞吐率。

(2) 服务器池

它由一组真正执行客户请求的服务器组成, 接收从负载均衡器发送来的请求, 并根据请求提供服务。服务器池的结点数目是可变的。当整个系统收到的负载超过目前所有结点的处理能力时, 可以在服务器池中增加服务器来满足不断增长的请求负载。对大多数网络服务来说, 请求间不存在很强的相关性, 请求可以在不同的结点上并行执行, 所以整个系统的性能基本上可以随着服务器池的结点数目增加而线性增长。

(3) 共享存储

共享存储通常是数据库、网络文件系统或者分布式文件系统。它为服务器池提供一个共享的存储区, 当网络服务需要有相同的内容时, 共享存储是很好的选择, 当系统存储的内容越多, 共享存储的优势就越明显, 如果不采用共享存储, 则每台服务器需要一样大的存储空间, 任何的更新都需要涉及到每台服务器, 系统的维护代价会非常高, 而且资源的浪费也比较严重。

2. LVS的负载均衡技术

前面已经提到过LVS采用基于IP层的负载均衡调度方法, 将IP层的TCP/IP请求均匀的转移到服务器池中不同的服务器上。LVS主要有三种不同的负载均衡技术, 分别为VS/NAT (网络地址转换) , VS/TUN (IP隧道) , VS/DR (直接路由) 。

(1) VS/NAT技术

当请求报文到达负载均衡器时, 负载均衡器根据连接调度算法从一组真实服务器中选出一台服务器, 将报文的目标地址改写成选定服务器的地址, 报文的目标端口改写成选定服务器的相应端口, 最后将修改后的报文发送给选出的服务器。服务器响应完后将响应报文发送回给负载均衡器, 负载均衡器将报文的源地址和源端口改为系统的虚拟IP地址和相应的端口, 再把报文发给用户。由于请求和响应报文都要经过负载均衡器, 所以当客户请求增加到一定程度时, 负载均衡器就会成为整个LVS集群系统的瓶颈, 因此采用NAT方式实现LVS的系统服务器数量不宜过多。

(2) VS/TUN技术

由于VS/NAT具有上述的缺点, 所以如果能将请求和响应分开处理, 即负载均衡器只负责调度请求而响应直接返回给客户, 将极大地提高整个集群系统的性能。VS/TUN技术就实现了这种想法, 它利用了IP隧道技术, 当负载均衡器收到请求后, 根据各个服务器的负载情况, 动态地选择一台服务器, 根据IP隧道协议将请求报文封装在另一个IP报文中, 再将封装后的IP报文转发给选出的服务器;服务器收到报文后, 先将报文解封获得原来目标地址为VIP的报文, 服务器发现VIP地址被配置在本地的IP隧道设备上, 所以就处理这个请求, 然后将响应报文直接返回给客户。这种技术要求所有的服务器都支持IP隧道协议。

(3) VS/DR技术

跟VS/TUN方法一样, 在VS/DR技术中, 负载均衡器只负责调度请求, 响应数据也是直接返回给客户。这可以极大地提高LVS集群系统的伸缩性。跟VS/TUN相比, 这种方法没有IP隧道的开销, 但是要求负载均衡器与实际服务器都有一块网卡连在同一物理网段上。

3. LVS的8种负载调度算法及其改进思想

3.1 八种调度算法

LVS支持八种任务分配算法, 这些任务分配算法是以连接为粒度进行分配的, 下面对这八种算法进行简单介绍和分析。

(1) 轮叫调度:以轮叫的方式依次将请求调度到不同的服务器, 它假设所有服务器处理性能均相同, 不管服务器的当前连接数和响应速度。因此不适用于服务器组中处理性能不一的情况, 很容易导致服务器间的负载不平衡。

(2) 加权轮叫调度:为每个服务器指定一个权值, 性能越高则权值越大。算法按权值的高低和轮叫方式分配请求到各服务器, 权值高的服务器比权值低的服务器处理更多的连接。

(3) 最小连接调度:把新的连接请求分配到当前连接数最小的服务器。这是一种动态调度算法, 它通过服务器当前所活跃的连接数来估计服务器的负载情况。

(4) 加权最小连接调度:同样为每台服务器指定一个权值, 权值大小与性能成正比, 当新请求到来时, 选择一个权值较大且连接数较小的服务器提供服务。

(5) 基于局部性的最少连接调度:专门为高速缓存集群设计的, 它尽量将对同一目标地址的连接请求分配到同一个高速缓存服务器中, 这样可减少缓存节点向由目标地址确定的远端站点的访问次数。

(6) 带复制的基于局部性最少链接:与 (5) 类似, 也是专门为高速缓存集群设计的, 不同之处在于它要维护从一个目标地址到一组节点的映射, 而 (5) 则只维护从一个目标地址到一个节点的映射。

(7) 目标地址散列调度:根据目标地址查找事先设定的静态散列表来分配连接。

(8) 源地址散列调度:根据请求服务客户端的地址查找设定的静态散列表来分配连接。

3.2 算法改进思想

通过分析可以得知这八种算法都是静态的, 也就是调度策略事先已经确定了, 而不考虑系统运行时的状态。这样很难保证系统内服务器真正地实现负载均衡。为了解决这个问题, 可以在负载均衡器中增加一个统计模块, 用于在固定的时间间隔内动态地统计各个服务器节点的负载值, 并把这些负载信息保存在负载均衡器中。当有新的连接请求到达时, 负载均衡器就根据统计模块中保存的各个节点的负载信息选择一个负载最轻的服务器节点提供服务, 这样可以更有效的实现真正的负载均衡, 提高整个系统的性能。影响节点负载的因素很多, 我们可以采用下面的公式计算节点负载:

其中, CONN为服务器节点的当前连接数, CPU_U和CPU_S分别为服务器节点CPU的用户时间和系统时间, MEM为内存使用率, NET为网络带宽使用率, 上述各个参数根据它们对负载影响的大小而被赋予不同的权值。

4. 结语

本文主要介绍了LVS的体系结构以及3种负载均衡技术和8种任务调度算法, 并提出了对调度算法的一种改进思想。LVS具有高可靠性, 高可用性, 高可伸缩性, 因此可以使用LVS来实现各种实际的应用, 比如构建大型的视频点播系统以及电子商务应用等等。

摘要:对Linux虚拟服务器集群的结构和原理进行了分析和描述, 包括LVS的框架, 负载均衡技术, 并对LVS中的8种任务分配算法进行了分析, 最后提出了对任务分配算法的一种改进思想。

关键词:集群,LVS,负载均衡,任务分配

参考文献

[1].Zhang Wensong.Linux Virtual Server Web Site.http://www.linuxvirtu-alserver.org

[2].Rajkumar Buyya, 高性能集群计算:结构与系统 (第1卷) [M], 北京:电子工业出版社, 2001

[3].姚耀文, 茹建斌, 缪炯烨.基于Linux的服务器群集方案.计算机工程, 2001, 27 (4) :139-141

上一篇:辅助教学CAI下一篇:服务青年