装填问题(packing problem)是一类典型的组合优化问题。设I=v1,v2,…,vm是一个有限集,E=E1,E2,…,En为I的子集所形成的一个集簇,若E的一个子族E′=Ej1,…,Ejs使得I中的每个元素包含在E′的至多一个元素之中,则称E′为I的一个装填,求I的一个装填E′使得所含的元素数为最多就是所谓装填问题。一般地,赋E中每个元素以一个权,而将E中的元素最多改为其中元素的权和为最大,当每个元素的权均为1时,即这里所说的装填问题,若将E′中的每个元素视为一个车厢,这时的装填问题也被称为装箱问题,若E′使得I中的每个元素包含在E′的至少一个元素之中,则称E′为I的一个覆盖,求I的一个覆盖E′使得E′含E中的元素最小就是所谓覆盖问题,也可以将它推广到带权的情形,若E′使得I中的每个元素包含在E′的恰好一个元素之中,则称E′为I的一个划分,求I的一个划分E′使得E′中含的元素数为最少就是划分问题,同样可以有带权情形下之推广,这里所述的装填问题、覆盖问题,以及划分问题均是NP完全问题,因此,要想用好的算法解这些问题是不现实的。

外文名

packing problem

简介

一类典型的组合优化问题

所属问题

组合学

所属学科

数学

基本介绍

图论中有两类相互有一定联系然而又是性质不同的问题,一类是研究用某种类型的子图

去覆盖图G的点集或边集(即

,或

),这就是所谓覆盖问题。例如正常边染色是用边不交的边无关集覆盖E(G);团覆盖集是用团去覆盖V(G)等等。一般说来,我们希望用最少个数的子图去完成覆盖,这就是最小覆盖问题。另一类问题是研究从给定图中,能取出多少个不交的某类子图,或者反其意而说成是可以往给定图中装填多少个不交的某类子图,这就是

装填问题

。一般说来,我们希望装填的子图个数尽可能地多,这就是

最大装填问题

。例如有向图中弧形式的Menger定理所研究的是往D中装填弧不交的(

)路。Menger定理是以最大最小定理的形式研究了能装填k个弧不交的(

)路的充分必要条件。

相关定理

给图

,对任意的

,记

含过e的圈},定义

称为

-的闭集。一个子集

,若

不含圈,且

,则称

的一个基集。不难证明,

的任何两个基集,总包含相同个数的边,定义

的基集所含的边数。

定理1

中含有k个边不交的支撑树的充分必要条件是对任何

定理1可以写成另一种形式。

定理1'

有k个边不交的支撑树,当且仅当对V的任意剖分

,有

需要指出的是定理1(1')对多重图也是成立的,利用定理1,我们可以得到覆盖边集合所需要的森林的最小个数(记之为

,称为图G的荫度)   。

定理2

令G是非平凡的多重图,

是G中m阶子图的最大边数,令