锁具装箱问题中锁具总数的图论算法

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

锁具装箱问题中锁具总数的图论算法

杨华康 任国鹏

(云南大学数学系,昆明650091)

摘要 本文为1994年全国大学生数学建模竞赛B 题(锁具装箱)中关于锁具总数的求解提供

一种简便易行的图论算法.只需具备最基本的图论知识,即可掌握该算法,而运用该算法,计算量将比现有各种求解算法少得多.

关键词 锁具总数 图论算法

1994年全国大学生数学建模竞赛B 题(锁具装箱)中关于锁具总数的问题可叙述如下([1]):

某厂生产一种弹子锁具,每个锁具的钥匙有5个槽,每个槽的高度从{1,2,3,4,5,6}中任取一数.由于工艺及其它原因,制造锁具时对5个槽的高度还有两个限制:(1)至少有3个不同的数;(2)相邻两槽的高度之差不能为5.满足以上条件制造出来的所有互不相同的锁具称为一批.我们的问题是如何确定每一批锁具的个数x ?

目前,求解上述问题的方法有两种,一种是计算机枚举,另一种是排列组合计数([2],

[3]).这两种方法计算量都比较大,特别,针对槽高的限制(2)运用加法原理时,不易排除重复计数的各种可能情形.本文提出一种简便易行的图论算法,只需具备最基本的图论知识即可掌握该算法.而运用该算法,计算量将比现有各种求解方法要少得多,即使用笔算也能迅速得到正确的解答.

易见,x =x 1-x 2,其中,x 1=相邻两槽高度之差不为5的锁具数,即:满足限制条件(2)的锁具数;x 2=相邻两槽高度之差不为5且槽高仅有1个或2个的锁具数,即:满足限制条件(2)但不满足限制条件(1)的锁具数.

我们用图论方法计算x 1和x 2.

本文所用的图论术语和结论见[

4]图1

设G =(V ,E )为无向图,V ={v 1,v 2,…,v n }为顶点集,E 为边集.

令:A ={a ij }n ×n ,其中a ij =0,若v i v j ∈E ,1,其它,

称A 为G 的邻接矩阵.基本引理 令

A k =A ×A ×…×A k 次

={a (k )ij }n ×n ,

则a (k )ij =G 中以v i ,v j 为端点的长度为k 的道路数.

为利用上述引理计算x 1和x 2,我们构造无向图

G =(V ,E )如下(如图1所示)

V ={1,2,3,4,5,6},E ={ij ûi ,j ∈V 且ûi -j û≠5}.

在G 中,每一条长度为4的道路对应于一个相

 收稿日期:1998-04-13第15卷第2期1999年4月 工 科 数 学JOURNAL OF M ATHEM ATICS FOR TECHNOLOGY Vol.15,No.2Apr.1999

邻两槽高度之差不为5的锁具,即:满足限制条件(2)的锁具.反之,亦然.于是,可通过G 的邻接矩阵A 计算x 1,具体步骤如下:

A =111110

111111

111111

111111

111111

011111

,A 2=555554555555555555555555555555455555,A 4=141165165165165140165194194194194165165194194194194165165194194194194165165194194194194165140165165165165141,因此,x 1=

∑6i =1∑6

j =1a (4)ij =6306.

又令x 2=y 1+y 2+y 3+y 4+y 5+y 6,

其中,y i =满足限制条件(2)但不满足限制条件(1)且首位为i 的锁具数,(i =1,2,3,4,5,6).显然,y 1=y 6,y 3=y 4=y 5=y 2,我们只需计算y 1和y 2.

计算y 1可分别考虑槽高只有1,12,13,14,15的情形.

若只有1,这样的锁具数只有1个;

若只有1和i (i =2,3,4,5),这样的锁具数=G 中以1和i 为顶点,长度为3的道路数,此数可通过A 的子矩阵A 1i =

第1行第i 行1111(i =2,3,4,5)计算得到.事实上,因为

A 21i =

2222, A 31i =

4444 (i =2,3,4,5),所以

y 1=1+(4+4+4+4-1)×4=61.

同理,计算y 2时应考虑槽高只有2,21,22,23,24,25,26的情形,类似计算可得

y 2=1+(4+4+4+4+4-1)×5=76.

于是,

x 2=61×2+76×4=426, x =6306-426=5880.

我们给出的上述算法显然具有既易理解又易操作的优点.特别对于限制条件相同而槽数改变时,上述算法一样可以使用,因而,上述算法还具有很好的可扩展性.

参 考 文 献

1 1994年全国大学生数学建模竞赛试题

2 1994年全国大学生数学建模竞赛参考答案3 黄宗虎,李波,李春福.关于锁具装箱的数学模型.数学的实践与认识,1995年第1期

4 李尚志主编.数学建模竞赛教程P 314-P 331.江苏教育出版社,1996年6月第1版110 工科数学 第15卷

A Graphic Algorithm to Find the Total of the Locks in

Problem B of Chinese Mathematical Contest in Modeling (1994)

Yang H uakang Ren G uop eng

(Depart ment of M at hem atics ,Y unnan U niv ersit y ,Kunming 650091)

Abstract In this paper ,w e pr opose a gr aphic algo rit hm to find the total o f t he lo cks in pro blem B of Chinese M athematica l Contest in M odeling (1994),If the r eader has t he basic kno wledg e about Gr aph T heo -ry he can master this algo rithm and t his alg or ithm t akes less comput atio n time t han t he o ther pr esent meth-ods .

Key words t he t otal of t he lo cks,g r aphic alg or ithm.111

第2期 杨华康等:锁具装箱问题中锁具总数的图论算法

相关文档
最新文档