小型微塑计算机系统
2009年4月第4期
JournalofChineseComputerSystems
V01.30
No.4
2009
任务分配问题的建模与求解
聂明泓1,杨丽英2,聂义勇2
1(沈阳神州数码有限公司,辽宁沈阳110004)
2(中国科学院沈阳自动化研究所机器人学国家重点实验室.辽宁沈阳110016)E-mail:niemh@,digitalehina.com
摘要:建立了极大极小任务分配问题的混合整数线性规划模型,提出一种矩阵作业解答。并与穷举解及混合整数线性规划解的计算复杂度进行了比较.理论分析和数值试验表明矩阵作业法对两类任务分配问题。极大极小和总体极小任务分配问题,有效地提供最优解.
关键词:任务分配问题;穷举法;混合整数线性规划;松弛线性规划;矩阵作业法中图分类号:TPl8
文献标识码:A
文章编号:1000—1220(2009)04.0710-06
Modelling
andSolutionforAssignmentProblem
NIE
Ming-hon91,YANGLi—yin92,NIEYi—yon92
1(ShenyangDigitalCMnaLimited。Shcnyang110004,China)z(StateKeyLaboratory
ofRobotws。Shenyang
Institute
ofAutomation,Shenyang110016,China)
Abstract:Inthispaper,themixedintegerlinearprogramming(MILP)ofminimaxassignmentisformed・andasolutioncalled
Operations
On
Matrixispresentedandcomparedwiththesolutionsofexhaustionand
MILP.Theoreticalanalysesandnumerical
tests
showthattheoperations
on
matrix
are
efficientforbothminimaxandglobal-minimumassignmentproblems.
Keywords:assignmentproblemlmethodofexhaustion;mixedintegerlinearprogramming(MII,P),relaxedlinearprogram-
ming(RLP)Ioperations
on
matrix
1引言
划方法又是根据其松弛线性规划方法推导出来的,求解一次(1)的松弛线性规划的运算量通常是o((n×71)3』)=O(n7),总体极小任务分配问题[1]提法是:有71项不同的任务,恰因此整数线性规划方法求解(1)不会比匈牙利算法[1]更好.
好71个人分别承担这些任务I由于每个人专长不同,各人完成总代价极小的任务分配问题(1)也可以解决总利润极大不同任务所需的代价也不一样;问应该安排哪个人去完成哪的任务分配问题。这只要设一CiI为第i个人完成第j项任务所项任务,使完成咒项任务所需总代价最小?
获得的利润就够了.这样。C=(co)表示负利润矩阵,求解负利总体极小任务分配问题可以用712个决策变量描述.令o“润矩阵的总体极小任务分配问题.其目标函数反号就是极大为。一1决策变量,即Xij=1表示安排第i个人去完成第J项任总利润.
务,霸j=0表示不安排第i个人去完成第J项任务,用cu表示如果把“代价”理解为成本消耗,那么总体极小任务分配第i个人完成第J项任务所需的代价(实数),则ctJ构成已知问题的提法,即(1)的目标函数,是合理的.但若把“代价”理解的刀X一代价矩阵.我们有
为时间,那么(1)的目标函数就不一定合理了.因为任务分配rain石=∑∑C‘∥廿
好以后.大家在同一时刻开始干活,所以这里的总“时间”统计i-IJll
^
已不重要.重要的是挖个人作为一个团队去完成n项任务(每s.t.∑zij=1,(_『=1,…,n)
人完成且只完成一项任务).要求最后完成全部任务的时间最∑Xij=l,(f=l,…,疗)
短.这样,(1)的目标函数应该有所修改。即
i--l
min
Xij=0
or
1,i,J∈N={1,…,行)
(1)
2一max{cijxo)
l・J
^
这是一个整数线性规划问题.如果在(1)中去掉工u一0
or
1的
,.t.∑xij=l,(_f=l,..・,疗)
f-l
约束条件而代之以o≤z,J≤l,则它就是松弛线性规划问题.■
人们自然可以用整数线性规划的方法,如等量面法[纠.求解
∑Xij=l,(f=1,…,行)
i-I
(1).但由于这里有恕2个O一1决策变量柳,而所有整数线性规勘=0
or
1,i,J∈N暑{1,…,n}
(2)
收穑日期:2008—01.24收修改稿日期:2008—05—13作者简介:聂明泓.男.1975年生。研究方向为管理信息系统(MIS)和后勤支持系统等,杨丽英,女.1979年生.博士研究生,研究方向为动态环境下多移动机器人自治规划和混合线性整数规划等;聂义勇,男,1939年生.研究员,研究方向为应用数学和计算机辅助工程等.
万
方数据
4期聂明泓等:任务分配问题的建模与求解
71l
这就是所谓极大极小任务分配问题的数学模型,它是一个整数规划问题。其中目标函数是非线性的,问题(2)与(1)的解之间无明显联系。直接求解(2)的现成软件很难找到.
本文先分析求解(2)的穷举法;然后将极大极小任务分配问题(2)改进成混合整数线性规划模型并讨论其等量面解法,在此基础上提出求解(2)的矩阵作业法;同时也分析了矩阵作业法对求解(1)的应用;最后用计算复杂度的比较和数值试验表明矩阵作业法求解这两类任务分配问题的高效性.
2求解(2)的穷举法
穷举法的基本思想就是直接或间接比较全部可行解的目标函数,比较完成后自然就找到了全局最优解.可惜一般的整数规划或混合整数规划问题的全部可行解数量随同题规模增长太快(指数次增长),以至任何计算机都无法接受.
以极大极小任务分配问题(2)为例.满足其约束条件的可行解是在,l×恕零元索矩阵中不同行列任置一个元素为l所构成的(五个1所对应的)任务分配r.每个任务分配r的目标函数:是代价矩阵C一(cd)中对应于l的极大者.目标函数:最小的任务分配r就是(2)的一个解.解答可能不惟一,但解答的目标函数(最优目标函数)值是惟一的.
令{jt,j:,….^}是{l,2t..・,刀}的一个排列.在行×n零元素矩阵的第一行取J,号元素为1,第二行取jz号元素为1,….第一行取^号元素为1,这样就构成一个可行的任务分配r,其目标函数zr=maxkl,,,‘编,…,‘叽).
每一个排列{,.,歹:,….五}对应着一个任务分配r,因此任务分配的总数目是n!.按斯特林(Stifling)阶乘公式,当n
足够大时,砣!≈√2,r甩(n/e)‘,表明任务分配的总数随行的增
大而指数次增长.
只要n超过lo.在PC机上就不宜用穷举法求解(2).
一个混合整数线性规划模型
引进一个实变量曲+t。就可以将极大极小任务分配问题
(2)改进成混合整数线性规划.等价于(2)的混合整数线性规划问题是:
rainz=j,疗+l
^
^f.∑工o=1,(歹=1'..・,对)
i—l
■
∑z“=1,(f=1,…,挖)
j-1
弘+l一‘玎%≥0。(f。J=1'..・。靠)
Xij一0
or
1。i,J∈N兰{l,….行)
(3)
求解整数线性规划的等量面法[2]也适合于求解混合整数max:;一弘+l
t
^
,.f.∑.劭≥0.85。一∑工。≥一1.15(.『=1'..・,露)
万
方数据∑.%≥0.85,一∑Xij≥一1.15(i=l,…。疗)
J一1
j--]
儿+|-CtjXij≥0,(i,J=1,…,7/)
霸,=0
or
1,i,j∈N兰{l,…,理)
(4)
等量面法求解(4)的基础也是求解其松弛线性规划(5),(5)中的变量数是n2+1,约束不等式数目是3n2+4n・2,因此求解一次松弛线性规划(5)的运算量大于O(n7).对于混合整数线性规划(4).一般要做n2次割平面.即要解7/2次松弛线性规划(5),才能求得一个最优解.用等量面法求解混合整数线性规划(4)的运算量通常为O(n9),其效率不会太高.我们应该寻找更有效的方法来求解特殊整数规划(2).
j.t.∑工u≥0.85。一∑z。≥・1.15,(歹=l,…,砣)
i掌l
l—l
^
■
∑工巧≥0.85。一∑Xij≥一1.15(i=1'..・,,l一1)y.+l-CijXij≥0,(itJ=1’..・,雄).rij≥0,一Xij≥一1.0,(i,J一1,…,咒)
(5)
更不幸的是,确定松弛线性规划(5)最优解的起2+1个超平面组成坏条件线性方程组,无论采用MATLAB单纯形法或等高面法Ⅲ,一般都得不到正确答案,因而很难用于等量面法求解混合整数线性规划(4).由此可见。不是任何决策问题建成整数线性规划模型或混合整数线性规划模型后就可以顺利求解.
4求解(2)的矩阵作业法
针对极大极小任务分配问题(2)的矩阵作业法直接从代价矩阵C。=(cn)和目标函数出发寻求解答.这里代价矩阵G的下标n表示矩阵阶数.
我们把行2个代价Cij按由小到大的顺序排成一行,其中可
能有相等者。因此这厄2个代价由小到大为r(1≤,.≤恕2)个不同级别的实数R,,R:,…,尼,(Rl<飓<…<尼),等于风(1≤
r
五≤r)的代价Cij有“个.显然m≥1且∑“一疗2.又记R为一个不小于忌的数.它也可以看作oo符号.如果r一1,即所有∞=尺,。则(2)显然有恕!个解.每个解的目标函数都是见.因此不妨设r>1.
容易看出,风=maxmax{c“)=maxm
R
rainrain{cfj)=rainrain{Cij}.但如下两个数:尺‰=max
rain{cf』)和R‰=max
min{c玎},彼此有可能不相等.令%。
j
J
i
=max{R‰,R‰).我们有:
命韪1.极大极小任务分配问题(2)的最优目标函数值
名。≥‰。.
证明:按(2)的题意。每个人完成且只完成一项任务.最后
完成任务的代价不小于‰。,也不小于娲。,从而不小于
Ro眦.口
在代价矩阵G=(cu)中将所有大于R=:III的元素用R覆
盖,叫做G的基本覆盖.由命题1知,G基本覆盖后R缸为最
3
混合整数线性规划(3)显然与问题(2)等价。其中只有一个实变量曲+.,但与(2)相比增加了行2个约束不等式.
线性规划[“.为了利用等量面法求解混合整数线性规划(3),应将(3)变成其标准形:
712
小型微型计算机系统2009钽
大非覆盖元素且每行每列至少有一个非覆盖元素.在所有非覆盖元素中的任何一个可行任务分配r(如果存在的话)都是(2)的一个最优解.
命题2.G基本覆盖后.如果每行每列有不少于s个G≥2)非覆盖元素,则划去某一个非覆盖元素所在的行和列。余下的珂一1阶子代价矩阵G.,中每行每列至少有j—1个非覆盖元素.
证明:只需对l=2证明.假设G基本覆盖后第i行有两个非覆盖元素‘峨和q,(cq,,‘啦≤Ro眦).由于a的第J-和J2列除第i行的非覆盖元素外还有非覆盖元素。故G划去第i行第,。列或第J:列后,C,卜-中每行每列至少有一个不大于R‰。的非覆盖元素.
同理可证,如果G基本覆盖后第.『列有两个非覆盖元素o,,和‘u,G划去第J列第i。行或第i2行后余下的C+。中每行每列至少有一个不大于Ro眦的非覆盖元素.口
开始时置t:=行。cf:一G,于是可对代价矩阵G=(cq)做出基本覆盖.在序列尺t,飓,…,B中找出尺缸,的序号,令R-
=R‰.于是代价矩阵G中不小于膨+,=R¨,的元素都已用
R覆盖.求解极大极小任务分配问题(2)的矩阵作业算法分下面几个步骤完成:
①考察矩阵G中各行各列未被覆盖的元素,如果存在只有一个非覆盖元索的行或列,设所有这样的元素为f~,记录其中最小的元素(单项最优分配)并划去矩阵cl的第P行第q列。留下t—l阶矩阵Gl,置t:=t一1,Ct:=G.1转向步骤①或②;
②考察矩阵cf中各行各列未被覆盖的元素,如果每行每列至少有两个非覆盖元素,转向步骤③;
③G的最优目标函数为R:;G的每行每列至少有两个非覆盖元素。利用命题2将G降一阶,在降阶过程中可保留的非覆盖元素c~有多种选择,依次按如下顺序选择:
(I)划去的P行g列中不是P行就是q列含有最少数量的非覆盖元素,
(I)在所有满足(I)的行列中,P行口列含有的非覆盖元素数量和最小。
(I)在所有满足(I)、(I)的行列中。记录一个最小的
f~(单项最优分配),降阶后置t:=f—l,G:=G。若f≥2,转向
步骤①或②.
历次记录的c。中最大者如大于R・=R‰,说明凤覆盖
未做出可行的任务分配,此时必须考虑五:=量+1的风覆盖,重新执行下一轮覆盖的步骤①一③,直至最大c~(最优目标函数值)等于凡为止.
命鹿3.设代价矩阵G的n2个代价由小到大排成r个(1≤,,≤挖2)不同级别的实数R。,Rz,..・,尼,等于风的代价c“有
矗个(i一1,..・,,.).又设C基本覆盖后腺。在序列Rl,R2.…,
见中的序号是五(1≤志≤r).则用矩阵作业法求解极大极小任务分配问题(2)。不超过r一是+1轮覆盖定找到一个解.
证明:由于第一轮覆盖中每行每列至少有一个非覆盖元素,故第一轮覆盖至少记录两个非覆盖元素.如果第一轮覆盖
万
方数据记录了玎个非覆盖元素,那么矩阵作业法用基本覆盖求得问题(2)的一个最优解.否则。以后每增加一轮覆盖。如志:----k+1,非覆盖元素数量级递增到凡+.,非覆盖元素数个数递增
●+l
7
到∑趴由于∑矗=挖:,故不超过r-k+1轮覆盖总可以找到(2)
tIl
l’I
的一个解.口
下面来证明矩阵作业法按照良性隐式枚举给出问题(2)的最优解.所谓良性隐式枚举[5],是指一个隐式枚举算法,在某种意义下只需要列举小部分可行解便实际上可获得最优解。其中“小部分”理解为被列举的可行解数量是解空间维数及约束数的多项式函数,而“实际上”理解为获得最优解的某种概率等于1.由命题3知矩阵作业法求解问题(2)只列举了小部分可行解.因此只需证明它给出最优解的某种概率等于1.有关的概率计算,需要两个基本而符合常理的假定:
(U1)代价矩阵C中每个元素分布位置是等机会的;(U2)C作尺覆盖后将元素分成被覆盖和非覆盖两类,每一类的元素之间没有区别.
命题4.若代价矩阵c中每行每列至少有一个非覆盖元素.非覆盖元素数日为扰,则n≤柳≤恕2,矩阵作业算法对C做出最优解的概率多(Z1.m)当川=月或卵2一雅≤m≤珂2时等于1.
证明:由于n阶代价矩阵C的每行每列至少有一个非覆盖元素,所以显然有n≤m≤H2.如果m一"。则显然p(Z1,n)一1.因为疗个非覆盖元素只能分布在不同行列而构成最优解.矩阵作业算法的步骤①即可求得解答.
又假若m≥咒2一咒,也有户(ZI,坍)=1.这容易用归纳法证明.事实上,P(zl,mIn2-n≤m≤疗2)=1对至少有6个非覆盖元素的胆=3阶代价矩阵显然成立.设该结论对万一^的这种矩阵成立.令订一量+1.若代价矩阵的某行或某列只有一个非覆盖元素,则用矩阵作业算法降阶后的七阶代价矩阵最多只有1个被覆盖元素,该结论显然成立.若代价矩阵的每行每列至少有两个非覆盖元素,则用矩阵作业算法降阶后的^阶矩阵至少有(五+1)z-3(志+1)+2=kZ-k个非覆盖元素,该结论也成立.口
对于n<m<n2.行,代价矩阵c基本覆盖确有不存在分配问题可行解的可能,因而也存在p(Z。,研)<1的可能.
命题5.设代价矩阵G的非覆盖元素数目m≥n(砣+1)/2,且矩阵作业算法在每次降阶过程中划去的非覆盖元素数目不大于被降阶矩阵的阶数t(f=刀,挖一l,…),则矩阵作业算法做出最优解的概率p(Z。,扰)=1.
证明:采用归纳法证明.事实上,p(2。,mIm≥行(疗+1)/2)=1对刀=2显然成立.设命题对行=j—l成立,即P(Zl,研“I%.。≥5(P1)/2)=1,其中研¨表示,一1阶矩阵的非覆盖元素数目.令行一s,且s阶矩阵的非覆盖元素数目m,≥,(s+1>/Z.由于矩阵作业算法对5阶矩阵降阶时划去的非覆盖元素数目不大于j,故降阶后的s一1阶矩阵非覆盖元素数目m,t≥s(s+1)/Z—j=,(5一1)/2,从而p(Zl,m,I研,≥j0+1)/2)一1.口
易知,对于代价矩阵G的任何覆盖,不管它有无问题(2)的可行解,矩阵作业算法的出口总是步骤①.设代价矩阵的某一覆盖中每行每列至少有s个非覆盖元素,从而非覆盖元素
4期
聂明泓等:任务分配问题的建模与求解
713
总数坍≥,拧。其中s≥1.如果在矩阵作业算法的降阶过程中自始至终s=l,那么其解答显然是正确的.如果在降阶过程中出现过s>l的情况,所得解答就不一定正确了.例如:
1000101001
C=
111101111001001
其中1表示非覆盖元素,0表示覆盖元素.矩阵C至少有一个可行解且非覆盖元素数目为14,s=2,矩阵作业算法的步骤③划去4个非覆盖元素.有4种划法.如果划去的是1行5列,则矩阵作业算法得不出可行解.除此以外矩阵作业算法得出可行解.这就是说.当s>l时.矩阵作业法可能将本来具有可行解的覆盖误判为没有可行解.
为了避免这种可能的误判,矩阵作业算法在遇到s>l而又给出无解判断时应作特殊处理,即把当时被记录的元素人工地改为o。,再重新对人工修改后的代价矩阵应用矩阵作业法.这就保证了矩阵作业法在任何情况下都给出问题(2)的正
确解答.
命题6.设代价矩阵c^的每行每列至少有s个非覆盖元素.其中J≥1.如果矩阵作业算法在遇到5>1而又给出无解结论时对代价矩阵做人工修改,则矩阵作业算法给出问题(2)正确解答的概率p(Zz,所,5)=1.
证明:每一次人工修改。被记录的元素变为o。,从而它被覆盖,这就使人工修改后的代价矩阵中每行每列至少有s一1个非覆盖元素.如果,一1>1且矩阵作业算法仍给出无解结论,则再进行一次人工修改.因此,对某一次人工修改后的代价矩阵执行矩阵作业算法,其结果或者是得到一个可行解,或者在降阶过程中自始至终s=1而仍无可行解.矩阵作业算法总是给出确解答.即P(Zz.m,5)=1.口
命题7.具有人工修改代价矩阵的矩阵作业法是求解极大极小任务分配问题(2)的良性隐式枚举。不超过r一七+1轮覆盖肯定找到一个最优解。其中r和k如命题3所述.
证明:如果代价矩阵C基本覆盖中存在问题(2)的最优解,则由命题4-6知第一轮覆盖就做出最优解.否则进行下一轮覆盖的求解.每增加一轮覆盖,非覆盖元索的大小增加一个数量级别.由命题3知不超过r一量+1轮覆盖定找到一个可行解.设最早第j轮覆盖找到可行解.则第j轮覆盖以前的覆盖不存在可行解,即代价矩阵R覆盖的数量级必须在基本覆盖
数量级‰。的基础上再加户1个数量级才存在可行解,因而
最优目标函数值等于R口眦加产1个数量级.矩阵作业法第.『轮找到的解就是最优解.口
固定矩阵阶数t。每执行一次步骤①一③.运算量为O(t2);t从I'1减至1为一轮覆盖,故执行一轮覆盖的运算量为D(恕。).不超过r一量+1轮覆盖就可找到一个最优解.因此,不考虑人工修改代价矩阵的次数,用矩阵作业法求解极大极小型任务分配问题(2)的运算量最大为O(n5),其计算复杂度远低于求解混合整数线性规划(4)的复杂度.
万
方数据5矩阵作业法对求解(1)的应用
由于记录非覆盖元素时采取了“单项最优分配”原则.所以矩阵作业法求解问题(2)得到的解答往往也是问题(1)的解.但倘若在实施覆盖之前不先将代价矩阵做一次变换.矩阵作业法未必能求解总体极小任务分配问题(1),因为变换前的代价是绝对代价.
在代价矩阵G=(q)中每行各元素减去该行的最小元素(行标志数).然后每列各元素减去该列的最小元索(列标志数),如此变换后的新代价矩阵B。一(bi』)为非负矩阵且每行每列至少有一个最小级别的0元素.幻=0的第i行第J列标志数之和等于代价clj.由匈牙利算法[I]知,代价矩阵岛和G对于分配问题(1)是等价的,鼠中的元素表示相对代价.如果鼠中的0元素能构成一种可行的任务分配,那么该分配所对应的矩阵C。元素之和,即行列标志数之和.就是最优目标函数值.
对相对代价矩阵&应用具有“单项最优分配”原则的矩阵作业法.其基本覆盖就是所有非0元素的覆盖.倘若鼠的基本覆盖能求得可行的任务分配,那么该分配就是问题(1)的解答;否则矩阵作业法用最低级别的正元素覆盖.对鼠做出问题(2)的一个解且解中尽可能多地含有非覆盖最小元素,由“单项最优分配”原则知道它一般也是问题(1)的解答.用矩阵作业法求解问题(1)的目标函数值等于对应的矩阵尻元素之和加行列标志数之和.
注意.矩阵作业法对相对代价矩阵鼠做出问题(2)的解不一定总是问题(1)的解.某些特殊情况下,两者的解答是不一样的.例如,某轮覆盖的降阶相对代价矩阵
3『3
21
玩5
f3l
2
oJ,Bs—I
32u
11
L1
0
0J
矩阵作业法求得岛,鼠极大极小问题(2)的正确解答,其目标函数值为2;但此解答不是总体极小任务分配问题(1)的解答.
由于具有“单项最优分配”原则的矩阵作业法最终要应用于2阶相对代价矩阵,所以利用矩阵作业法求解总体极小任务分配问题(1)后应该对最后分配的两元素的绝对(矩阵A)代价和作验证.即使这样,矩阵作业法求解问题(1)仍有出错的小概率.
为了估算矩阵作业法求解问题(1)出错这件事E发生的概率户(E)的一个上界,除假定(U1)和(U2)之外,再增加一个假定:
(U3)只要问题(2)的矩阵作业解不是由相对代价矩阵的基本覆盖做出。那么相对代价矩阵中就存在九个不全是非覆盖的元素,其和小于问题(2)解各元素之和,存在这种情况的数量不大于命题3给出的最多覆盖轮数r-k+1.
假定(U3)夸大了事件E发生的概率但简化了其估算工作.
命题8.借助于相对代价矩阵,矩阵作业法是求解总体极小任务分配问题(1)的良性隐式枚举。不超过r-k+1轮覆盖
714
小型微型计算机系统
2009矩
找到一个最优解的概率随n增加而趋于1.
证明:由命题7知,矩阵作业法应用于相对代价矩阵。不超过r-七+1轮覆盖找到极大极小任务分配问题(2)的一个最优解.当求解轮数大于1时,将此最优解当作总体极小任务分配问题(1)的最优解有出错的可能.
按假定(U3),只要相对代价矩阵基本覆盖0元素做不出问题(2)的解,就存在n个不全是非覆盖的元素.其和小于问题(2)解各元素之和.存在的最多r-五-t-1种方式中,概率最大的是:此”个元素除一个被覆盖之外其它全为0.现在来计算此挖个元素能构成问题(1)可行解的概率.按假定(U1)和假定(U2),一个被覆盖正元素,起一1个0元素在髓中的分布方式共有种nZC"g“,其中做出问题(1)不同可行解的方式有行!理种,因此这n个元素能构成问题(1)解答的概率是rz=挖!挖/(挖2C罾+1)一(锄一1)!)2(n2一行)!/(n2—1)!.这样一来,事件E发生的概率p(E)≤(r-k+1)r2.应用斯特林阶乘公式估算P(E)的右端(r—k+1)r2,当珂足够大时,(r-k+1)r2≤2,r行2(以一1)
√石死i币((行一1)/(’l+1))一・(行/(理+1))”“”/P“,故借助于
相对代价矩阵风.矩阵作业法求解问题(1)出错的概率户(E)随报增加而趋于0.口
6数值试验
由计算复杂度的比较可知.矩阵作业法对求解极大极小或总体极小任务分配问题远比穷举法和混合整数线性规划模型有效.因此只需对较大规模的同题(2)和(1)做矩阵作业法的数值试验.为了考察矩阵作业法对求解任务分配问题的效率,需要阶数稍高的代价矩阵,因此数值试验过程中的代价矩阵G以计算机生成.
矩阵作业法求解(2)和(1)的试验在PC机上完成,程序在WindowsXP环境下用MATI,AB7.0运行.计算时间以秒计.MATLAB统计1秒以内的计算时间是不准确的,只能以平均计算时间作为参考.
例1.矩阵元素为
c;!f=10+5i+5j(i≠歹),跨=5+10i,
挖一10。15,20,25。30,35,40,45,50
(6)
问题(2)的最优目标函数值显然是15+5n,最优解至多两个(雄为偶数),而矩阵的左下至右上对角线分配总是一种最优任务分配.
对于元素为(6)的代价矩阵.问题(1)与(2)的解完全不一样.由相对代价矩阵知(1)的惟一解是矩阵的左上至右下对角线分配。其最优目标函数值为l晚+5挖2.
例2.矩阵元素为
矗=10+5i+5歹(i≠.『)。f;=15+10if
n=10,15。20.25,30,35,40,45,50
(7)
问题(2)的最优目标函数值是15+5行(起为偶数)或20+5恕(珂为奇数)。疗为偶数时最优解是惟一的,恕为奇数时最优解有4对于元素为(7)的代价矩阵。由相对代价矩阵知问题(1)的解非常多,除对角元素之外的许多可行分配都是最优解,其
万
方数据最优目标函数值为15n+5n2.
例3.矩阵元素为
砰f=10+5i+5J;雄=10,15。20,25,30,35。40,45,50
(8)
问题(2)的最优目标函数值是15+跏,最优解是惟一的,即矩阵的左下至右上对角线分配.
对于元素为(8)的代价矩阵,由相对代价矩阵知问题(1)的解有,l!个,即矩阵(8)的任何可行任务分配都是问题(1)的最优解。其最优目标函数值均为15n+Sn2.
为了考察矩阵作业法对例l~例3的求解情况.先令行=5和n一6,表1给出问题(2)解答的行列分配及其代价.注意疗=6时例1有两种解答。咒=5时例2有四种解答.表1给出的解答不是左下至右上对角线分配.而是符合“单项最优分配”原则,即在团队完成任务时间最短的前提下,还考虑单项任务用最小的代价去完成.当然,“单项最优分配”只能在问题(2)有多解时才会出现.通常,极大极小任务分配问题(2)存在多解.对例2和例3。矩阵作业法直接求解问题(2)得到的解答也是问题(1)的解,但例1不是这样.
表1问题(2)解答示例
Table1
Solutionexamplesoftheproblem(2)
n=5
n=6
.40
403540404545
45453545例1
5—1
4—23—32—41—56-15—2
1—62—53—34—4..40
40403545454545454545例2
5—1
4一Z1—52—33—46・15・24—33—4Z一51-6~
4040404040454545454545例3
5—1
4—2
3—3
2—4
1-5
6一l
5—2
4—3
3—4
2—5
1—6
表2列出”=10一50时对例1一例3求解问题(2)的全部计算时间.包括生成代价矩阵及显示结果的时间都统计在内.
用时最多的是行=45时例2.约花了0.125秒,原因是多运行
了一轮R。=245的覆盖.由表2看出矩阵作业法的运算效率极高,它完全适合于极大极小任务分配问题与总体极小任务分配问题的在线求解.
继续增大n,类似于表2的测试自然可以做下去.我们对例1做了行=100和1000的测试,时间分别为0.250和161.828秒;又对例2做了起一101和1001的测试,时间分别为0.422和253.750秒.行=1000阶的问题(2),矩阵作业法求解时间不超过5分钟.根据我们的经验,即使等量面法能求解混合整数线性规划(4),对于1000阶的问题,在PC机上求得解答需要20分钟以上[3],而1000阶的混合整数线性规划问题,只
相当于√1000≈-31阶任务分配问题.
表2问题(2)的求解时间
Table2
Timesolvingtheproblem(2)
n
101520
253035404550倒10.0310.0310.0310.063
0.0630.0630.0780.1090.109倒20.0310.0630.0310.094
0.0630.1090.0940.1250.094例3
0.031
0.031
0.031
0.063
0.063
0.063
0.078
0.078
0.094
表3是借助于相对代价矩阵,矩阵作业法给出问题(1)的
个,而矩阵的左下至右上对角线分配总是一种最优任务分配.
4期
聂明泓等:任务分配问题的建模与求解
715
解答元素及其行列分配,最优目标函数值为各元素之和.结果完全符合关于例l一例3的注释.
将(8)的各元素反号而形成负利润矩阵,最优解也有死!个。最优目标函数值为一15n一5n2.可见.对于元素为(8)的矩阵,任务分配的最小总代价或最大总利润是一样的.其实,只要矩
表3问题(1)解答示例
Table3
Solutionexamplesofthe
problem(1)
阵每行(或列)元素为同一公差的等差级数,任务分配的最小万
方数据References:
[1]KuhnHW.The
hungarian
methodforthe
assignmentproblem
[J].NavalResearch
Logistics
Quart。1955。2:83—97.
[2]NieYY。SuLJ,LiC.Anisometric
surface
methodfor
integer
linear
programmingEJ].Inter.J.ComputerMath.・2003,80
(7):835—844.
[3]YangL
Y,HanJD。SuLJ。eta1.Isometricsurfacemethodand
its
numerical
tests
formixed—integer
linear
programming[J].
ISASTTransactionson
Computersand
Software
Engineering,
2008,2(1):4Z・46.
[4]NieYi—yong,XuSR.Anisometric
plane
methodforlinearpro-
grammingrJ-I.JournalofComputational.Math..1991.9(3):
262—272.
[5]NieYY,SongXiang,SuLi.jie。eta1.Well—impliedand
near-
implied
enumerations
CJ].InformationandControl,2005。34
(3):296.302.
附中文参考文献:
[5]聂义勇,宋翔・苏丽杰,等・良性隐式枚举与近隐式枚举[J]・信息
与控制.2005,34(3)1296-302.
总代价或最大总利润就是一样.作为推论,此结果意味着对若干能力相当的人不必强行分配任务.
任务分配问题的建模与求解
作者:作者单位:
聂明泓, 杨丽英, 聂义勇, NIE Ming-hong, YANG Li-ying, NIE Yi-yong
聂明泓,NIE Ming-hong(沈阳神州数码有限公司,辽宁,沈阳,110004), 杨丽英,聂义勇,YANGLi-ying,NIE Yi-yong(中国科学院,沈阳自动化研究所,机器人学国家重点实验室,辽宁,沈阳,110016)
小型微型计算机系统
JOURNAL OF CHINESE COMPUTER SYSTEMS2009,30(4)
刊名:英文刊名:年,卷(期):
参考文献(5条)
1.Kuhn H W The hungarian method for the assignment problem 1955
2.Nie Y Y;Su L J;Li C An isometric surface method for integer linear programming[外文期刊] 2003(07)3.Yang L Y;Han J Do Su L J Isometric surface method and its numerical tests for mixed-integer linearprogramming 2008(01)
4.Nie Yi-yong;Xu S R An isometric plane method for linear programming 1991(03)5.聂义勇;宋翔;苏丽杰 良性隐式枚举与近隐式枚举[期刊论文]-信息与控制 2005(03)
本文读者也读过(6条)
1. 鄢超波.赵千川 任务分配问题的研究进展与算法比较[会议论文]-2008
2. 杨冬.王正欧 改进的蚂蚁算法求解任务分配问题[期刊论文]-天津大学学报2004,37(4)
3. 王灵霞.张远平.吴佩莉.WANG Ling-xia.ZHANG Yuan-ping.WU Pei-li 蚁群算法求解分布式系统任务分配问题[期刊论文]-计算机工程与设计2008,29(6)
4. 王雅琳.王宁.阳春华.桂卫华.WANG Ya-lin.WANG Ning.YANG Chun-hua.GUI Wei-hua 求解任务分配问题的一种离散微粒群算法[期刊论文]-中南大学学报(自然科学版)2008,39(3)
5. 王秀宏.王正欧.乔清理.WANG Xiu-hong.WANG Zheng-ou.QIAO Qing-li 用具有混沌特性的神经网络解任务分配问题[期刊论文]-系统工程学报2001,16(2)
6. 李大林.李杰.LI Da-lin.LI Jie 基于PSO算法的多巡飞器任务分配方法[期刊论文]-北京理工大学学报2010,30(12)
本文链接:http://d.g.wanfangdata.com.cn/Periodical_xxwxjsjxt200904026.aspx
小型微塑计算机系统
2009年4月第4期
JournalofChineseComputerSystems
V01.30
No.4
2009
任务分配问题的建模与求解
聂明泓1,杨丽英2,聂义勇2
1(沈阳神州数码有限公司,辽宁沈阳110004)
2(中国科学院沈阳自动化研究所机器人学国家重点实验室.辽宁沈阳110016)E-mail:niemh@,digitalehina.com
摘要:建立了极大极小任务分配问题的混合整数线性规划模型,提出一种矩阵作业解答。并与穷举解及混合整数线性规划解的计算复杂度进行了比较.理论分析和数值试验表明矩阵作业法对两类任务分配问题。极大极小和总体极小任务分配问题,有效地提供最优解.
关键词:任务分配问题;穷举法;混合整数线性规划;松弛线性规划;矩阵作业法中图分类号:TPl8
文献标识码:A
文章编号:1000—1220(2009)04.0710-06
Modelling
andSolutionforAssignmentProblem
NIE
Ming-hon91,YANGLi—yin92,NIEYi—yon92
1(ShenyangDigitalCMnaLimited。Shcnyang110004,China)z(StateKeyLaboratory
ofRobotws。Shenyang
Institute
ofAutomation,Shenyang110016,China)
Abstract:Inthispaper,themixedintegerlinearprogramming(MILP)ofminimaxassignmentisformed・andasolutioncalled
Operations
On
Matrixispresentedandcomparedwiththesolutionsofexhaustionand
MILP.Theoreticalanalysesandnumerical
tests
showthattheoperations
on
matrix
are
efficientforbothminimaxandglobal-minimumassignmentproblems.
Keywords:assignmentproblemlmethodofexhaustion;mixedintegerlinearprogramming(MII,P),relaxedlinearprogram-
ming(RLP)Ioperations
on
matrix
1引言
划方法又是根据其松弛线性规划方法推导出来的,求解一次(1)的松弛线性规划的运算量通常是o((n×71)3』)=O(n7),总体极小任务分配问题[1]提法是:有71项不同的任务,恰因此整数线性规划方法求解(1)不会比匈牙利算法[1]更好.
好71个人分别承担这些任务I由于每个人专长不同,各人完成总代价极小的任务分配问题(1)也可以解决总利润极大不同任务所需的代价也不一样;问应该安排哪个人去完成哪的任务分配问题。这只要设一CiI为第i个人完成第j项任务所项任务,使完成咒项任务所需总代价最小?
获得的利润就够了.这样。C=(co)表示负利润矩阵,求解负利总体极小任务分配问题可以用712个决策变量描述.令o“润矩阵的总体极小任务分配问题.其目标函数反号就是极大为。一1决策变量,即Xij=1表示安排第i个人去完成第J项任总利润.
务,霸j=0表示不安排第i个人去完成第J项任务,用cu表示如果把“代价”理解为成本消耗,那么总体极小任务分配第i个人完成第J项任务所需的代价(实数),则ctJ构成已知问题的提法,即(1)的目标函数,是合理的.但若把“代价”理解的刀X一代价矩阵.我们有
为时间,那么(1)的目标函数就不一定合理了.因为任务分配rain石=∑∑C‘∥廿
好以后.大家在同一时刻开始干活,所以这里的总“时间”统计i-IJll
^
已不重要.重要的是挖个人作为一个团队去完成n项任务(每s.t.∑zij=1,(_『=1,…,n)
人完成且只完成一项任务).要求最后完成全部任务的时间最∑Xij=l,(f=l,…,疗)
短.这样,(1)的目标函数应该有所修改。即
i--l
min
Xij=0
or
1,i,J∈N={1,…,行)
(1)
2一max{cijxo)
l・J
^
这是一个整数线性规划问题.如果在(1)中去掉工u一0
or
1的
,.t.∑xij=l,(_f=l,..・,疗)
f-l
约束条件而代之以o≤z,J≤l,则它就是松弛线性规划问题.■
人们自然可以用整数线性规划的方法,如等量面法[纠.求解
∑Xij=l,(f=1,…,行)
i-I
(1).但由于这里有恕2个O一1决策变量柳,而所有整数线性规勘=0
or
1,i,J∈N暑{1,…,n}
(2)
收穑日期:2008—01.24收修改稿日期:2008—05—13作者简介:聂明泓.男.1975年生。研究方向为管理信息系统(MIS)和后勤支持系统等,杨丽英,女.1979年生.博士研究生,研究方向为动态环境下多移动机器人自治规划和混合线性整数规划等;聂义勇,男,1939年生.研究员,研究方向为应用数学和计算机辅助工程等.
万
方数据
4期聂明泓等:任务分配问题的建模与求解
71l
这就是所谓极大极小任务分配问题的数学模型,它是一个整数规划问题。其中目标函数是非线性的,问题(2)与(1)的解之间无明显联系。直接求解(2)的现成软件很难找到.
本文先分析求解(2)的穷举法;然后将极大极小任务分配问题(2)改进成混合整数线性规划模型并讨论其等量面解法,在此基础上提出求解(2)的矩阵作业法;同时也分析了矩阵作业法对求解(1)的应用;最后用计算复杂度的比较和数值试验表明矩阵作业法求解这两类任务分配问题的高效性.
2求解(2)的穷举法
穷举法的基本思想就是直接或间接比较全部可行解的目标函数,比较完成后自然就找到了全局最优解.可惜一般的整数规划或混合整数规划问题的全部可行解数量随同题规模增长太快(指数次增长),以至任何计算机都无法接受.
以极大极小任务分配问题(2)为例.满足其约束条件的可行解是在,l×恕零元索矩阵中不同行列任置一个元素为l所构成的(五个1所对应的)任务分配r.每个任务分配r的目标函数:是代价矩阵C一(cd)中对应于l的极大者.目标函数:最小的任务分配r就是(2)的一个解.解答可能不惟一,但解答的目标函数(最优目标函数)值是惟一的.
令{jt,j:,….^}是{l,2t..・,刀}的一个排列.在行×n零元素矩阵的第一行取J,号元素为1,第二行取jz号元素为1,….第一行取^号元素为1,这样就构成一个可行的任务分配r,其目标函数zr=maxkl,,,‘编,…,‘叽).
每一个排列{,.,歹:,….五}对应着一个任务分配r,因此任务分配的总数目是n!.按斯特林(Stifling)阶乘公式,当n
足够大时,砣!≈√2,r甩(n/e)‘,表明任务分配的总数随行的增
大而指数次增长.
只要n超过lo.在PC机上就不宜用穷举法求解(2).
一个混合整数线性规划模型
引进一个实变量曲+t。就可以将极大极小任务分配问题
(2)改进成混合整数线性规划.等价于(2)的混合整数线性规划问题是:
rainz=j,疗+l
^
^f.∑工o=1,(歹=1'..・,对)
i—l
■
∑z“=1,(f=1,…,挖)
j-1
弘+l一‘玎%≥0。(f。J=1'..・。靠)
Xij一0
or
1。i,J∈N兰{l,….行)
(3)
求解整数线性规划的等量面法[2]也适合于求解混合整数max:;一弘+l
t
^
,.f.∑.劭≥0.85。一∑工。≥一1.15(.『=1'..・,露)
万
方数据∑.%≥0.85,一∑Xij≥一1.15(i=l,…。疗)
J一1
j--]
儿+|-CtjXij≥0,(i,J=1,…,7/)
霸,=0
or
1,i,j∈N兰{l,…,理)
(4)
等量面法求解(4)的基础也是求解其松弛线性规划(5),(5)中的变量数是n2+1,约束不等式数目是3n2+4n・2,因此求解一次松弛线性规划(5)的运算量大于O(n7).对于混合整数线性规划(4).一般要做n2次割平面.即要解7/2次松弛线性规划(5),才能求得一个最优解.用等量面法求解混合整数线性规划(4)的运算量通常为O(n9),其效率不会太高.我们应该寻找更有效的方法来求解特殊整数规划(2).
j.t.∑工u≥0.85。一∑z。≥・1.15,(歹=l,…,砣)
i掌l
l—l
^
■
∑工巧≥0.85。一∑Xij≥一1.15(i=1'..・,,l一1)y.+l-CijXij≥0,(itJ=1’..・,雄).rij≥0,一Xij≥一1.0,(i,J一1,…,咒)
(5)
更不幸的是,确定松弛线性规划(5)最优解的起2+1个超平面组成坏条件线性方程组,无论采用MATLAB单纯形法或等高面法Ⅲ,一般都得不到正确答案,因而很难用于等量面法求解混合整数线性规划(4).由此可见。不是任何决策问题建成整数线性规划模型或混合整数线性规划模型后就可以顺利求解.
4求解(2)的矩阵作业法
针对极大极小任务分配问题(2)的矩阵作业法直接从代价矩阵C。=(cn)和目标函数出发寻求解答.这里代价矩阵G的下标n表示矩阵阶数.
我们把行2个代价Cij按由小到大的顺序排成一行,其中可
能有相等者。因此这厄2个代价由小到大为r(1≤,.≤恕2)个不同级别的实数R,,R:,…,尼,(Rl<飓<…<尼),等于风(1≤
r
五≤r)的代价Cij有“个.显然m≥1且∑“一疗2.又记R为一个不小于忌的数.它也可以看作oo符号.如果r一1,即所有∞=尺,。则(2)显然有恕!个解.每个解的目标函数都是见.因此不妨设r>1.
容易看出,风=maxmax{c“)=maxm
R
rainrain{cfj)=rainrain{Cij}.但如下两个数:尺‰=max
rain{cf』)和R‰=max
min{c玎},彼此有可能不相等.令%。
j
J
i
=max{R‰,R‰).我们有:
命韪1.极大极小任务分配问题(2)的最优目标函数值
名。≥‰。.
证明:按(2)的题意。每个人完成且只完成一项任务.最后
完成任务的代价不小于‰。,也不小于娲。,从而不小于
Ro眦.口
在代价矩阵G=(cu)中将所有大于R=:III的元素用R覆
盖,叫做G的基本覆盖.由命题1知,G基本覆盖后R缸为最
3
混合整数线性规划(3)显然与问题(2)等价。其中只有一个实变量曲+.,但与(2)相比增加了行2个约束不等式.
线性规划[“.为了利用等量面法求解混合整数线性规划(3),应将(3)变成其标准形:
712
小型微型计算机系统2009钽
大非覆盖元素且每行每列至少有一个非覆盖元素.在所有非覆盖元素中的任何一个可行任务分配r(如果存在的话)都是(2)的一个最优解.
命题2.G基本覆盖后.如果每行每列有不少于s个G≥2)非覆盖元素,则划去某一个非覆盖元素所在的行和列。余下的珂一1阶子代价矩阵G.,中每行每列至少有j—1个非覆盖元素.
证明:只需对l=2证明.假设G基本覆盖后第i行有两个非覆盖元素‘峨和q,(cq,,‘啦≤Ro眦).由于a的第J-和J2列除第i行的非覆盖元素外还有非覆盖元素。故G划去第i行第,。列或第J:列后,C,卜-中每行每列至少有一个不大于R‰。的非覆盖元素.
同理可证,如果G基本覆盖后第.『列有两个非覆盖元素o,,和‘u,G划去第J列第i。行或第i2行后余下的C+。中每行每列至少有一个不大于Ro眦的非覆盖元素.口
开始时置t:=行。cf:一G,于是可对代价矩阵G=(cq)做出基本覆盖.在序列尺t,飓,…,B中找出尺缸,的序号,令R-
=R‰.于是代价矩阵G中不小于膨+,=R¨,的元素都已用
R覆盖.求解极大极小任务分配问题(2)的矩阵作业算法分下面几个步骤完成:
①考察矩阵G中各行各列未被覆盖的元素,如果存在只有一个非覆盖元索的行或列,设所有这样的元素为f~,记录其中最小的元素(单项最优分配)并划去矩阵cl的第P行第q列。留下t—l阶矩阵Gl,置t:=t一1,Ct:=G.1转向步骤①或②;
②考察矩阵cf中各行各列未被覆盖的元素,如果每行每列至少有两个非覆盖元素,转向步骤③;
③G的最优目标函数为R:;G的每行每列至少有两个非覆盖元素。利用命题2将G降一阶,在降阶过程中可保留的非覆盖元素c~有多种选择,依次按如下顺序选择:
(I)划去的P行g列中不是P行就是q列含有最少数量的非覆盖元素,
(I)在所有满足(I)的行列中,P行口列含有的非覆盖元素数量和最小。
(I)在所有满足(I)、(I)的行列中。记录一个最小的
f~(单项最优分配),降阶后置t:=f—l,G:=G。若f≥2,转向
步骤①或②.
历次记录的c。中最大者如大于R・=R‰,说明凤覆盖
未做出可行的任务分配,此时必须考虑五:=量+1的风覆盖,重新执行下一轮覆盖的步骤①一③,直至最大c~(最优目标函数值)等于凡为止.
命鹿3.设代价矩阵G的n2个代价由小到大排成r个(1≤,,≤挖2)不同级别的实数R。,Rz,..・,尼,等于风的代价c“有
矗个(i一1,..・,,.).又设C基本覆盖后腺。在序列Rl,R2.…,
见中的序号是五(1≤志≤r).则用矩阵作业法求解极大极小任务分配问题(2)。不超过r一是+1轮覆盖定找到一个解.
证明:由于第一轮覆盖中每行每列至少有一个非覆盖元素,故第一轮覆盖至少记录两个非覆盖元素.如果第一轮覆盖
万
方数据记录了玎个非覆盖元素,那么矩阵作业法用基本覆盖求得问题(2)的一个最优解.否则。以后每增加一轮覆盖。如志:----k+1,非覆盖元素数量级递增到凡+.,非覆盖元素数个数递增
●+l
7
到∑趴由于∑矗=挖:,故不超过r-k+1轮覆盖总可以找到(2)
tIl
l’I
的一个解.口
下面来证明矩阵作业法按照良性隐式枚举给出问题(2)的最优解.所谓良性隐式枚举[5],是指一个隐式枚举算法,在某种意义下只需要列举小部分可行解便实际上可获得最优解。其中“小部分”理解为被列举的可行解数量是解空间维数及约束数的多项式函数,而“实际上”理解为获得最优解的某种概率等于1.由命题3知矩阵作业法求解问题(2)只列举了小部分可行解.因此只需证明它给出最优解的某种概率等于1.有关的概率计算,需要两个基本而符合常理的假定:
(U1)代价矩阵C中每个元素分布位置是等机会的;(U2)C作尺覆盖后将元素分成被覆盖和非覆盖两类,每一类的元素之间没有区别.
命题4.若代价矩阵c中每行每列至少有一个非覆盖元素.非覆盖元素数日为扰,则n≤柳≤恕2,矩阵作业算法对C做出最优解的概率多(Z1.m)当川=月或卵2一雅≤m≤珂2时等于1.
证明:由于n阶代价矩阵C的每行每列至少有一个非覆盖元素,所以显然有n≤m≤H2.如果m一"。则显然p(Z1,n)一1.因为疗个非覆盖元素只能分布在不同行列而构成最优解.矩阵作业算法的步骤①即可求得解答.
又假若m≥咒2一咒,也有户(ZI,坍)=1.这容易用归纳法证明.事实上,P(zl,mIn2-n≤m≤疗2)=1对至少有6个非覆盖元素的胆=3阶代价矩阵显然成立.设该结论对万一^的这种矩阵成立.令订一量+1.若代价矩阵的某行或某列只有一个非覆盖元素,则用矩阵作业算法降阶后的七阶代价矩阵最多只有1个被覆盖元素,该结论显然成立.若代价矩阵的每行每列至少有两个非覆盖元素,则用矩阵作业算法降阶后的^阶矩阵至少有(五+1)z-3(志+1)+2=kZ-k个非覆盖元素,该结论也成立.口
对于n<m<n2.行,代价矩阵c基本覆盖确有不存在分配问题可行解的可能,因而也存在p(Z。,研)<1的可能.
命题5.设代价矩阵G的非覆盖元素数目m≥n(砣+1)/2,且矩阵作业算法在每次降阶过程中划去的非覆盖元素数目不大于被降阶矩阵的阶数t(f=刀,挖一l,…),则矩阵作业算法做出最优解的概率p(Z。,扰)=1.
证明:采用归纳法证明.事实上,p(2。,mIm≥行(疗+1)/2)=1对刀=2显然成立.设命题对行=j—l成立,即P(Zl,研“I%.。≥5(P1)/2)=1,其中研¨表示,一1阶矩阵的非覆盖元素数目.令行一s,且s阶矩阵的非覆盖元素数目m,≥,(s+1>/Z.由于矩阵作业算法对5阶矩阵降阶时划去的非覆盖元素数目不大于j,故降阶后的s一1阶矩阵非覆盖元素数目m,t≥s(s+1)/Z—j=,(5一1)/2,从而p(Zl,m,I研,≥j0+1)/2)一1.口
易知,对于代价矩阵G的任何覆盖,不管它有无问题(2)的可行解,矩阵作业算法的出口总是步骤①.设代价矩阵的某一覆盖中每行每列至少有s个非覆盖元素,从而非覆盖元素
4期
聂明泓等:任务分配问题的建模与求解
713
总数坍≥,拧。其中s≥1.如果在矩阵作业算法的降阶过程中自始至终s=l,那么其解答显然是正确的.如果在降阶过程中出现过s>l的情况,所得解答就不一定正确了.例如:
1000101001
C=
111101111001001
其中1表示非覆盖元素,0表示覆盖元素.矩阵C至少有一个可行解且非覆盖元素数目为14,s=2,矩阵作业算法的步骤③划去4个非覆盖元素.有4种划法.如果划去的是1行5列,则矩阵作业算法得不出可行解.除此以外矩阵作业算法得出可行解.这就是说.当s>l时.矩阵作业法可能将本来具有可行解的覆盖误判为没有可行解.
为了避免这种可能的误判,矩阵作业算法在遇到s>l而又给出无解判断时应作特殊处理,即把当时被记录的元素人工地改为o。,再重新对人工修改后的代价矩阵应用矩阵作业法.这就保证了矩阵作业法在任何情况下都给出问题(2)的正
确解答.
命题6.设代价矩阵c^的每行每列至少有s个非覆盖元素.其中J≥1.如果矩阵作业算法在遇到5>1而又给出无解结论时对代价矩阵做人工修改,则矩阵作业算法给出问题(2)正确解答的概率p(Zz,所,5)=1.
证明:每一次人工修改。被记录的元素变为o。,从而它被覆盖,这就使人工修改后的代价矩阵中每行每列至少有s一1个非覆盖元素.如果,一1>1且矩阵作业算法仍给出无解结论,则再进行一次人工修改.因此,对某一次人工修改后的代价矩阵执行矩阵作业算法,其结果或者是得到一个可行解,或者在降阶过程中自始至终s=1而仍无可行解.矩阵作业算法总是给出确解答.即P(Zz.m,5)=1.口
命题7.具有人工修改代价矩阵的矩阵作业法是求解极大极小任务分配问题(2)的良性隐式枚举。不超过r一七+1轮覆盖肯定找到一个最优解。其中r和k如命题3所述.
证明:如果代价矩阵C基本覆盖中存在问题(2)的最优解,则由命题4-6知第一轮覆盖就做出最优解.否则进行下一轮覆盖的求解.每增加一轮覆盖,非覆盖元索的大小增加一个数量级别.由命题3知不超过r一量+1轮覆盖定找到一个可行解.设最早第j轮覆盖找到可行解.则第j轮覆盖以前的覆盖不存在可行解,即代价矩阵R覆盖的数量级必须在基本覆盖
数量级‰。的基础上再加户1个数量级才存在可行解,因而
最优目标函数值等于R口眦加产1个数量级.矩阵作业法第.『轮找到的解就是最优解.口
固定矩阵阶数t。每执行一次步骤①一③.运算量为O(t2);t从I'1减至1为一轮覆盖,故执行一轮覆盖的运算量为D(恕。).不超过r一量+1轮覆盖就可找到一个最优解.因此,不考虑人工修改代价矩阵的次数,用矩阵作业法求解极大极小型任务分配问题(2)的运算量最大为O(n5),其计算复杂度远低于求解混合整数线性规划(4)的复杂度.
万
方数据5矩阵作业法对求解(1)的应用
由于记录非覆盖元素时采取了“单项最优分配”原则.所以矩阵作业法求解问题(2)得到的解答往往也是问题(1)的解.但倘若在实施覆盖之前不先将代价矩阵做一次变换.矩阵作业法未必能求解总体极小任务分配问题(1),因为变换前的代价是绝对代价.
在代价矩阵G=(q)中每行各元素减去该行的最小元素(行标志数).然后每列各元素减去该列的最小元索(列标志数),如此变换后的新代价矩阵B。一(bi』)为非负矩阵且每行每列至少有一个最小级别的0元素.幻=0的第i行第J列标志数之和等于代价clj.由匈牙利算法[I]知,代价矩阵岛和G对于分配问题(1)是等价的,鼠中的元素表示相对代价.如果鼠中的0元素能构成一种可行的任务分配,那么该分配所对应的矩阵C。元素之和,即行列标志数之和.就是最优目标函数值.
对相对代价矩阵&应用具有“单项最优分配”原则的矩阵作业法.其基本覆盖就是所有非0元素的覆盖.倘若鼠的基本覆盖能求得可行的任务分配,那么该分配就是问题(1)的解答;否则矩阵作业法用最低级别的正元素覆盖.对鼠做出问题(2)的一个解且解中尽可能多地含有非覆盖最小元素,由“单项最优分配”原则知道它一般也是问题(1)的解答.用矩阵作业法求解问题(1)的目标函数值等于对应的矩阵尻元素之和加行列标志数之和.
注意.矩阵作业法对相对代价矩阵鼠做出问题(2)的解不一定总是问题(1)的解.某些特殊情况下,两者的解答是不一样的.例如,某轮覆盖的降阶相对代价矩阵
3『3
21
玩5
f3l
2
oJ,Bs—I
32u
11
L1
0
0J
矩阵作业法求得岛,鼠极大极小问题(2)的正确解答,其目标函数值为2;但此解答不是总体极小任务分配问题(1)的解答.
由于具有“单项最优分配”原则的矩阵作业法最终要应用于2阶相对代价矩阵,所以利用矩阵作业法求解总体极小任务分配问题(1)后应该对最后分配的两元素的绝对(矩阵A)代价和作验证.即使这样,矩阵作业法求解问题(1)仍有出错的小概率.
为了估算矩阵作业法求解问题(1)出错这件事E发生的概率户(E)的一个上界,除假定(U1)和(U2)之外,再增加一个假定:
(U3)只要问题(2)的矩阵作业解不是由相对代价矩阵的基本覆盖做出。那么相对代价矩阵中就存在九个不全是非覆盖的元素,其和小于问题(2)解各元素之和,存在这种情况的数量不大于命题3给出的最多覆盖轮数r-k+1.
假定(U3)夸大了事件E发生的概率但简化了其估算工作.
命题8.借助于相对代价矩阵,矩阵作业法是求解总体极小任务分配问题(1)的良性隐式枚举。不超过r-k+1轮覆盖
714
小型微型计算机系统
2009矩
找到一个最优解的概率随n增加而趋于1.
证明:由命题7知,矩阵作业法应用于相对代价矩阵。不超过r-七+1轮覆盖找到极大极小任务分配问题(2)的一个最优解.当求解轮数大于1时,将此最优解当作总体极小任务分配问题(1)的最优解有出错的可能.
按假定(U3),只要相对代价矩阵基本覆盖0元素做不出问题(2)的解,就存在n个不全是非覆盖的元素.其和小于问题(2)解各元素之和.存在的最多r-五-t-1种方式中,概率最大的是:此”个元素除一个被覆盖之外其它全为0.现在来计算此挖个元素能构成问题(1)可行解的概率.按假定(U1)和假定(U2),一个被覆盖正元素,起一1个0元素在髓中的分布方式共有种nZC"g“,其中做出问题(1)不同可行解的方式有行!理种,因此这n个元素能构成问题(1)解答的概率是rz=挖!挖/(挖2C罾+1)一(锄一1)!)2(n2一行)!/(n2—1)!.这样一来,事件E发生的概率p(E)≤(r-k+1)r2.应用斯特林阶乘公式估算P(E)的右端(r—k+1)r2,当珂足够大时,(r-k+1)r2≤2,r行2(以一1)
√石死i币((行一1)/(’l+1))一・(行/(理+1))”“”/P“,故借助于
相对代价矩阵风.矩阵作业法求解问题(1)出错的概率户(E)随报增加而趋于0.口
6数值试验
由计算复杂度的比较可知.矩阵作业法对求解极大极小或总体极小任务分配问题远比穷举法和混合整数线性规划模型有效.因此只需对较大规模的同题(2)和(1)做矩阵作业法的数值试验.为了考察矩阵作业法对求解任务分配问题的效率,需要阶数稍高的代价矩阵,因此数值试验过程中的代价矩阵G以计算机生成.
矩阵作业法求解(2)和(1)的试验在PC机上完成,程序在WindowsXP环境下用MATI,AB7.0运行.计算时间以秒计.MATLAB统计1秒以内的计算时间是不准确的,只能以平均计算时间作为参考.
例1.矩阵元素为
c;!f=10+5i+5j(i≠歹),跨=5+10i,
挖一10。15,20,25。30,35,40,45,50
(6)
问题(2)的最优目标函数值显然是15+5n,最优解至多两个(雄为偶数),而矩阵的左下至右上对角线分配总是一种最优任务分配.
对于元素为(6)的代价矩阵.问题(1)与(2)的解完全不一样.由相对代价矩阵知(1)的惟一解是矩阵的左上至右下对角线分配。其最优目标函数值为l晚+5挖2.
例2.矩阵元素为
矗=10+5i+5歹(i≠.『)。f;=15+10if
n=10,15。20.25,30,35,40,45,50
(7)
问题(2)的最优目标函数值是15+5行(起为偶数)或20+5恕(珂为奇数)。疗为偶数时最优解是惟一的,恕为奇数时最优解有4对于元素为(7)的代价矩阵。由相对代价矩阵知问题(1)的解非常多,除对角元素之外的许多可行分配都是最优解,其
万
方数据最优目标函数值为15n+5n2.
例3.矩阵元素为
砰f=10+5i+5J;雄=10,15。20,25,30,35。40,45,50
(8)
问题(2)的最优目标函数值是15+跏,最优解是惟一的,即矩阵的左下至右上对角线分配.
对于元素为(8)的代价矩阵,由相对代价矩阵知问题(1)的解有,l!个,即矩阵(8)的任何可行任务分配都是问题(1)的最优解。其最优目标函数值均为15n+Sn2.
为了考察矩阵作业法对例l~例3的求解情况.先令行=5和n一6,表1给出问题(2)解答的行列分配及其代价.注意疗=6时例1有两种解答。咒=5时例2有四种解答.表1给出的解答不是左下至右上对角线分配.而是符合“单项最优分配”原则,即在团队完成任务时间最短的前提下,还考虑单项任务用最小的代价去完成.当然,“单项最优分配”只能在问题(2)有多解时才会出现.通常,极大极小任务分配问题(2)存在多解.对例2和例3。矩阵作业法直接求解问题(2)得到的解答也是问题(1)的解,但例1不是这样.
表1问题(2)解答示例
Table1
Solutionexamplesoftheproblem(2)
n=5
n=6
.40
403540404545
45453545例1
5—1
4—23—32—41—56-15—2
1—62—53—34—4..40
40403545454545454545例2
5—1
4一Z1—52—33—46・15・24—33—4Z一51-6~
4040404040454545454545例3
5—1
4—2
3—3
2—4
1-5
6一l
5—2
4—3
3—4
2—5
1—6
表2列出”=10一50时对例1一例3求解问题(2)的全部计算时间.包括生成代价矩阵及显示结果的时间都统计在内.
用时最多的是行=45时例2.约花了0.125秒,原因是多运行
了一轮R。=245的覆盖.由表2看出矩阵作业法的运算效率极高,它完全适合于极大极小任务分配问题与总体极小任务分配问题的在线求解.
继续增大n,类似于表2的测试自然可以做下去.我们对例1做了行=100和1000的测试,时间分别为0.250和161.828秒;又对例2做了起一101和1001的测试,时间分别为0.422和253.750秒.行=1000阶的问题(2),矩阵作业法求解时间不超过5分钟.根据我们的经验,即使等量面法能求解混合整数线性规划(4),对于1000阶的问题,在PC机上求得解答需要20分钟以上[3],而1000阶的混合整数线性规划问题,只
相当于√1000≈-31阶任务分配问题.
表2问题(2)的求解时间
Table2
Timesolvingtheproblem(2)
n
101520
253035404550倒10.0310.0310.0310.063
0.0630.0630.0780.1090.109倒20.0310.0630.0310.094
0.0630.1090.0940.1250.094例3
0.031
0.031
0.031
0.063
0.063
0.063
0.078
0.078
0.094
表3是借助于相对代价矩阵,矩阵作业法给出问题(1)的
个,而矩阵的左下至右上对角线分配总是一种最优任务分配.
4期
聂明泓等:任务分配问题的建模与求解
715
解答元素及其行列分配,最优目标函数值为各元素之和.结果完全符合关于例l一例3的注释.
将(8)的各元素反号而形成负利润矩阵,最优解也有死!个。最优目标函数值为一15n一5n2.可见.对于元素为(8)的矩阵,任务分配的最小总代价或最大总利润是一样的.其实,只要矩
表3问题(1)解答示例
Table3
Solutionexamplesofthe
problem(1)
阵每行(或列)元素为同一公差的等差级数,任务分配的最小万
方数据References:
[1]KuhnHW.The
hungarian
methodforthe
assignmentproblem
[J].NavalResearch
Logistics
Quart。1955。2:83—97.
[2]NieYY。SuLJ,LiC.Anisometric
surface
methodfor
integer
linear
programmingEJ].Inter.J.ComputerMath.・2003,80
(7):835—844.
[3]YangL
Y,HanJD。SuLJ。eta1.Isometricsurfacemethodand
its
numerical
tests
formixed—integer
linear
programming[J].
ISASTTransactionson
Computersand
Software
Engineering,
2008,2(1):4Z・46.
[4]NieYi—yong,XuSR.Anisometric
plane
methodforlinearpro-
grammingrJ-I.JournalofComputational.Math..1991.9(3):
262—272.
[5]NieYY,SongXiang,SuLi.jie。eta1.Well—impliedand
near-
implied
enumerations
CJ].InformationandControl,2005。34
(3):296.302.
附中文参考文献:
[5]聂义勇,宋翔・苏丽杰,等・良性隐式枚举与近隐式枚举[J]・信息
与控制.2005,34(3)1296-302.
总代价或最大总利润就是一样.作为推论,此结果意味着对若干能力相当的人不必强行分配任务.
任务分配问题的建模与求解
作者:作者单位:
聂明泓, 杨丽英, 聂义勇, NIE Ming-hong, YANG Li-ying, NIE Yi-yong
聂明泓,NIE Ming-hong(沈阳神州数码有限公司,辽宁,沈阳,110004), 杨丽英,聂义勇,YANGLi-ying,NIE Yi-yong(中国科学院,沈阳自动化研究所,机器人学国家重点实验室,辽宁,沈阳,110016)
小型微型计算机系统
JOURNAL OF CHINESE COMPUTER SYSTEMS2009,30(4)
刊名:英文刊名:年,卷(期):
参考文献(5条)
1.Kuhn H W The hungarian method for the assignment problem 1955
2.Nie Y Y;Su L J;Li C An isometric surface method for integer linear programming[外文期刊] 2003(07)3.Yang L Y;Han J Do Su L J Isometric surface method and its numerical tests for mixed-integer linearprogramming 2008(01)
4.Nie Yi-yong;Xu S R An isometric plane method for linear programming 1991(03)5.聂义勇;宋翔;苏丽杰 良性隐式枚举与近隐式枚举[期刊论文]-信息与控制 2005(03)
本文读者也读过(6条)
1. 鄢超波.赵千川 任务分配问题的研究进展与算法比较[会议论文]-2008
2. 杨冬.王正欧 改进的蚂蚁算法求解任务分配问题[期刊论文]-天津大学学报2004,37(4)
3. 王灵霞.张远平.吴佩莉.WANG Ling-xia.ZHANG Yuan-ping.WU Pei-li 蚁群算法求解分布式系统任务分配问题[期刊论文]-计算机工程与设计2008,29(6)
4. 王雅琳.王宁.阳春华.桂卫华.WANG Ya-lin.WANG Ning.YANG Chun-hua.GUI Wei-hua 求解任务分配问题的一种离散微粒群算法[期刊论文]-中南大学学报(自然科学版)2008,39(3)
5. 王秀宏.王正欧.乔清理.WANG Xiu-hong.WANG Zheng-ou.QIAO Qing-li 用具有混沌特性的神经网络解任务分配问题[期刊论文]-系统工程学报2001,16(2)
6. 李大林.李杰.LI Da-lin.LI Jie 基于PSO算法的多巡飞器任务分配方法[期刊论文]-北京理工大学学报2010,30(12)
本文链接:http://d.g.wanfangdata.com.cn/Periodical_xxwxjsjxt200904026.aspx