最短路径在最优截断 切割问题中的应用

摘要

本文是把长方体切割的最小代价问题,转化成一个我们所熟悉的图论问题,把其抽象成为一个图论之中求路径的最短路的问题,并采用了图论中的Dijkstra算法,以求其的最短路,最终得到了对长方体切割问题的求解,最后我们通过了一个长方体切割实例,说明了我们的算法是可靠,有效的。

关键字:最短路径   Dijkstra算法   最优截断切割

  1. 预备知识

1.1图的基本概念

有序三元组G =(V,E,

)称为一个图,其中:(1)V是有穷非空集,称为顶点集,其元素叫做图的顶点;(2)E称为边集,其元素叫做图的边;(3)是从边集E到顶点集 的有序或者无序对集合的映射,称为关联函数。

1.2 权

如果图G中任意一条边上都附有一个数,则称这样的图G为加权图。若边e标记数为k,称边e的权为k。

定义1 在无向图G=(V,E,

)中:

(1)顶点与边相互交错且

 (i=1,2,…k)的有限非空序列

称为一条从

的通路,记为

(2)边不重复但顶点可重复的通路称为道路,记为

(3)边与顶点均不重复的通路称为路径,记为

右图中,我们可以根据定义得到:

通路

道路

路径

定义2 (1)任意两点均有路径的图称为连通图.

(2)起点与终点重合的路径称为圈.

(3)连通而无圈的图称为树.

定义3 (1)设P(u,v)是赋权图G中从u到v的路径,

             则称

为路径P的权.

(2)在赋权图G中,从顶点u到顶点v的具有最小权的路

         

,称为u到v的最短路.

1.3 固定起点的最短路

最短路是一条路径,且最短路的任一段也是最短路.假设在u0-v0的最短路中只取一条,则从u0到其余顶点的最短路将构成一棵以u0为根的树.因此,  可采用树生长的过程来求指定顶点到其余顶点的最短路.

Dijkstra算法:求G中从顶点u0到其余顶点的最短路,如图1所示:

设G为赋权有向图或无向图,G边上的权均非负.对每个顶点,定义两个标记(,),其中:

   :表从顶点u0到v的一条路的权.

v的父亲点,用以确定最短路的路线

算法的过程就是在每一步改进这两个标记,使最终为从顶点u0到v的最短路的权。.

S:具有永久标号的顶点集

输入: G的带权邻接矩阵

                                     图1

算法步骤:

(1)赋初值:令 S={}, =0,,令=,=,

(2)更新、: ,若>

               则令=,=

(3)设是使取最小值的中的顶点,则令S=S∪{},

                

(4)若φ,转2,否则,停止.

用上述算法求出的就是到的最短路的权,从的父亲标记

追溯到, 就得到到的最短路的路线.

4.最短路径在最优截断切割问题中的应用

从一个长方体中加工出一个已知尺寸、位置预定的长方体(这两个长方体的对应表面是平行的),通常要经过6 次截断切割.设水平切割单位面积的费用是垂直切割单位面积费用的r倍.且当先后两次垂直切割的平面(不管它们之间是否穿插水平切割)不平行时,因调整刀具需额外费用。为了使加工费用最少,下面我们利用最短路径法设计一种安排各面加工次序(称“切割方式”)的方法。

设待加工长方体的左右面、前后面、上下面间的距离分别为 a0b0 c0 ,六个切割面分别位于左、右、前、后、上、下,将它们相应编号为M1、M2、M3、M4、M5、M6,这六个面与待加工长方体相应外侧面的边距分别为 u1u2u3u4u5u6.这样,一种切割方式就是六个切割面的一个排列,共有

 种切割方式.当考虑到切割费用时,显然有局部优化准则:两个平行待切割面中,边距较大的待切割面总是先加工.由此准则,只需考虑 

种切割方式.即在求最少加工费用时,只需在90个满足准则的切割序列中考虑.不失一般性,设u1u2u3u4u5u6,故只考虑M1在M2前、M3在M4前、M5  在M6前的切割方式.

1、  e=0 的情况

       为简单起见,先考虑e=0 的情况.构造如图1的一个有向赋权网络图G(V,E).为了表示切割过程的有向性,在网络图上加上坐标轴x,y,z.

     

图1   G(V,E)

图1的含义为:

    (1)空间网络图中每个结点Vi(xi,yi,zi)表示被切割石材所处的一个状态.顶点坐标xiyizi分别代表石材在左右、前后、上下方向上已被切割的刀数.例如:V24(2,1,2) 表示石材在左右方向上已被切割两刀,前后方向上已被切一刀,上下方向上已被切两刀,即面M1、M2、M3、M5、M6均已被切割.顶点V1(0,0,0) 表示石材的最初待加工状态,顶点V27(2,2,2)表示石材加工完成后的状态.

    (2)G的弧(Vi,Vj)表示石材被切割的一个过程,若长方体能从状态Vi经一次切割变为状态Vj,即当且仅当xi+yi+zi+1=xj+yj+zj时,Vi(xi,yi,zi)到Vj(xj,yj,zj)有弧(Vi,Vj),相应弧上的权W(Vi,Vj)即为这一切割过程的费用.

     W(Vi,Vj)=(xj-xi)

(bi

ci)+(yj-yi)

(ai

ci)+(zj-zi)

(ai

bi)

r

     其中,aibici分别代表在状态Vi时,长方体的左右面、上下面、前后面之间的距离.

    例如,状态V5(1,1,0),a5 = a0-u1,b5 = b0-u3,c5 = c0;状态V6(2,1,0)

W(V5V6) =(b0-u3)

c0

     (3)根据准则知第一刀有三种选择, 即第一刀应切M1、M3、M5中的某个面,在图中分别对应的弧为( V1,V2),(V1,V4),(V1,V10). 图G中从V1到V27的任意一条有向道路代表一种切割方式.从V1到V27共有90条有向道路,对应着所考虑的90种切割方式.V1到V27的最短路即为最少加工费用,该有向道路即对应所求的最优切割方式.

    实例:待加工长方体和成品长方体的长、宽、高分别为10、145、19 和3、2、4,两者左侧面、正面、底面之间的距离分别为6、7、9,则边距如下表:

   u1

u2

u3

u4

u5

u6

6

1

7

55

6

9

r=1时,求得最短路为V1-V10-V13-V22-V23-V26-V27,其权为374

   对应的最优切割排列为M5-M3-M6-M1-M4-M2,费用为374元.

2、 e

0的情况

    当e

0时,即当先后两次垂直切割的平面不平行时,需加调刀费e.希望在图1的网络图中某些边增加权来实现此费用增加.在所有切割序列中,四个垂直面的切割顺序只有三种可能情况:

    <情况一>先切一对平行面,再切另外一对平行面,总费用比e=0时的费用增加e.

    <情况二>先切一个,再切一对平行面,最后割剩余的一个,总费用比e=0时的费用增加2e.

    <情况三>切割面是两两相互垂直,总费用比e=0时的费用增加3e.

    在所考虑的90种切割序列中,上述三种情况下垂直切割面的排列情形,及在图G中对应有向路的必经点如下表:

垂直切割面排列情形

有向路必经点

情况一  (一)

M1-M2-M3-M4

(1,0,z),(2,0,z),(2,1,z)

情况一  (二)

M3-M4-M1-M2

(0,1,z),(0,2,z),(1,2,z)

情况二  (一)

M3-M1-M2-M4

(0,1,z),(1,1,z),(2,1,z)

情况二  (二)

M1-M3-M4-M2

(1,0,z),(1,1,z),(1,2,z)

情况三  (一)

M1-M3-M2-M4

(1,0,z),(1,1,z),(2,1,z)

情况三  (二)

M3-M1-M4-M2

(0,1,z),(1,1,z),(1,2,z)

z=0,1,2

    我们希望通过在图1的网络图中的某些边上增加权来进行调刀费用增加的计算,但由于网络图中的某些边是多种切割序列所公用的.对于某一种切割序列,需要在此边上增加权e,但对于另外一种切割序列, 就有可能不需要在此边上增加权e,这样我们就不能直接利用图1的网络图进行边加权这种方法来求出最短路径. 

    由上表可以看出,三种情况的情形(一)有公共点集{(2,1,z)|z=0,1,2},情形(二)有公共点集{(1,2,z)|z=0,1,2}.且情形(一)的有向路决不通过情形(二)的公共点集,情形(二)的有向路也不通过情形(一)的公共点集.所以可判断出这两部分是独立的、互补的.如果我们在图G中分别去掉点集{(1,2,z)|z=0,1,2}和{(2,1,z)|z=0,1,2}及与之相关联的入弧,就形成两个新的网络图,如图2和3.这两个网络图具有互补性.对于一个问题来说,最短路线必存在于它们中的某一个中.

    由于调整垂直刀具为3次时,总费用需增加3e, 故我们先安排这种情况的权增加值e,每次转刀时,给其待切弧上的权增加e.增加e的情况如图2中所示.再来判断是否满足调整垂直刀具为二次、一次时的情况,我们发现所增加的权满足另外两类切割序列.

综合上述分析,我们将原网络图G分解为两个网络图2和3,并在指定边上的权增加e,然后分别求出图1和2中从V1到V27的最短路,最短路的权分别为:d1,d2.则得出整体的最少费用为:d = min(d1,d2) ,最优切割序列即为其对应的最短路径.

实例:r=15,e=2时,求得图G1与G2的最短路为2的路V1-V4-V5-V14-V17-V26-V27,权为4435,对应的最优切割序列为M3-M1-M6-M4-M5-M2,最优费用为4435.

图2

图3

5.结论

图论是数学的一个分支,它以图为研究对象。图论中的图是由若干给定的点及连接两点的线所构成的图形,这种图形通常用来描述某些事物之间的某种特定关系,用点代表事物,用连接两点的线表示相应两个事物间具有这种关系。

本文讨论了最优切割问题中使用最短路径分析及Dijkstra算法设计。另外,最短路径问题在城市道路建设、物资供应站选址等问题上也有相当重要的作用。

图论题目的求解多以证明题为主,我们在求解过程中往往是应用已知的定理,分析题目的真正内涵加以解决。但是我们在做题过程中,往往会碰到这样那样的阻力和障碍,这时,我们可以利用已知的定理,事先做好判断。

参考文献:

[1] 任善强,雷鸣.数学模型[M].重庆:重庆大学出版社,2006.

[2] 夏春林.道路网络中最短路径的算法与实现[J].辽宁工程技术大学学报,2003.

[3] 兰家隆,刘军.应用图论及算示[M].北京:电子科技大学出版社,1995.

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

等天晴i

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值