四川理工学院算法.ppt

case :X是解结点and cost(X) <U: begin U?min(cost(X),u(X)+ ε); ans?X; end; : u(X)+ ε<U : U?u(X)+ ε: endcase; end; if 不再有活结点 or 下一个E-结点有C’≥U then begin print(‘least cost=’,U); while ans≠0 do begin print(ans); ans?parent(ans); end; return; end; call least(E); repeat; endp; 对算法LCBB还需强调以下几点: 1.当下一个E-结点,使C’≥U时,算法终止; 2.子算法ADD是加入一个结点到活结点表中,LEAST是从一个活结点表中删去一个结点,活结点表作成一个min-堆; 3.如果U是已找到的一个解X的成本值,U=c(X)<u(X),对于X的儿子Y,不仅c’(Y) >U而且c’(Y) =U的结点Y都要被杀死; 4.如果U是一个单纯的上界,它是由一可行结点 X的u值修改而得,U=u(X)+ε。对于X的儿子只杀死c’(Y) >U的Y,c’(Y) =U的Y不被杀死,Y入堆; 5.虽然找到了一个答案结点X,但它的成本值大于它的上界值u(X),这说明,这个答案结点的子孙中还有成本更小的答案结

文档评论(0)

1亿VIP精品文档

相关文档