Page 1

Theoretical Computer Science 321 (2004) 125–148

www.elsevier.com/locate/tcs

Packing arrays

Brett Stevensa;∗;1, Eric Mendelsohnb;2

aSchool of Mathematics and Statistics, Carleton University, 1125 Colonel By Dr., Ottawa,

Ont, Canada K1S 5B6

bDepartment of Mathematics, University of Toronto, Toronto, Ont., Canada M5S 3G3

Received 31 July 2002; received in revised form 4 February 2003; accepted 6 July 2003

Abstract

A packing array is a b × k array of values from a g-ary alphabet such that given any two

columns, i and j, and for all ordered pairs of elements from the g-ary alphabet, (g1;g2), there

is at most one row, r, such that ar;i= g1 and ar;j= g2. A central question is to determine, for

given g and k, the maximum possible b. We develop general direct and recursive constructions

and upper bounds on the sizes of packing arrays. We introduce the consideration of a set of

disjoint rows in a packing array which allows these constructions and additionally gives a new

upper bound on the size of all packing arrays. We also show the equivalence of the problem to

a matching problem on graphs and a class of resolvable pairwise balanced designs. We provide

tables of the best known upper and lower bounds.

c ? 2004 Elsevier B.V. All rights reserved.

Keywords: Orthogonal arrays; Transversal designs; Packing arrays; MDS codes; Matchings; Partial latin

squares; Partial match queries

1. Introduction

A g2×k array ?lled with elements from a g-ary alphabet such that each ordered pair

from the alphabet occurs exactly once in each pair of columns is called an orthogonal

array. By having the ?rst column index the rows of a g×g square, the second column

index its columns, and the remaining k −2 columns give the entries of k −2 di?erent

squares, orthogonal arrays are transformed into a set of k − 2 mutually orthogonal

∗Corresponding author.

E-mail addresses: brett@math.carleton.ca (B. Stevens), mendelso@math.toronto.edu (E. Mendelsohn).

URLs: http://mathstat.carleton.ca/∼brett/, http://www.math.toronto.edu/mendelso/

1Research supported by NSF Graduate Fellowship GER9452870, SFU, PIMS, MITACS, and IBM Watson

Research.

2Research supported by NSERC of Canada Grant No. OGP007681.

0304-3975/$-see front matter c ? 2004 Elsevier B.V. All rights reserved.

doi:10.1016/j.tcs.2003.06.004

Page 2

126 B. Stevens, E. Mendelsohn/Theoretical Computer Science 321 (2004) 125–148

latin squares (MOLS). Both are known never to exist for k¿g + 1 [3]. It is natural

to ask for structures that have similarly useful properties as orthogonal arrays for

larger k. One generalization is to require that all pairwise interactions be covered

at least once. These objects are known as covering arrays or transversal covers and

have been extensively studied, see [8–11,13] and their references. The other natural

generalization of orthogonal arrays is the packing array. We de?ne it here with the

addition of a substructure which will turn out to be very useful.

De?nition 1. A packing array, PA(k;g:n), is a b × k array with values from a g-ary

alphabet such that given any two columns, i and j, and for all ordered pairs of elements

from the g-ary alphabet, (g1;g2), there is at most one row, r, such that ar;i=g1 and

ar;j=g2. Further, there is a set of at least n rows that pairwise di?er in each column:

they are called disjoint. The largest number of rows possible in a PA(k;g:n) is denoted

by pa(k;g:n).

One might question the usefulness of requiring a set of disjoint rows, but we carry

this parameter n throughout the paper because this substructure is necessary to per-

mit the constructions discussed, most notably Theorems 12 and 13. If this set does

not occur inside the ingredient arrays of these recursive constructions then the arrays

formed will have many repeated pairs which is forbidden in a packing array. The same

constructions motivate the inclusion of the study of sets of disjoint rows in covering

arrays [10,11]. In that case these sets allowed the optimization of the construction, here

they are absolutely necessary.

It is important to note that if disjoint rows are not required, which may be the case

for most applications, one can simply focus on n=1, and not disregard this article as

uninteresting. On the other hand, in the quest for optimal packing arrays with n=1 we

utilize packing arrays with larger n. For example, Wilson’s construction requires their

existence and can be used to produce the PA(6;6:1) of size 26 and the PA(7;6:1) of

size 16. These are packing arrays with n=1 (suitable for applications). They are the

best currently known with these parameters, are not constructible without considera-

tion of n¿1. Additionally it should be emphasized that consideration of disjoint rows

directly gives a new upper bound on the size of packing arrays which, in particular,

directly gives results on the utility of one of the applications of packing arrays. This

bound is given in Theorem 6 and its corollaries in Section 2.2. Finally, in [12], consid-

ering sets of disjoint rows leads to very exciting connections between packing arrays

and the existence of ?nite projective planes.

Row and column permutations, as well as permuting symbols within each column,

leave the packing conditions intact.

Example 2. A PA(5;3:1) with six rows:

00000

01221

10122

21012

22101

12210

Page 3

B. Stevens, E. Mendelsohn/Theoretical Computer Science 321 (2004) 125–148127

We often and without loss of generality use Zg as the symbol set on each column

and let ri;j equal the number of times symbol i∈Zgappears in column j.

Packing arrays are also called transversal packings [9] and mutually orthogonal

partial latin squares [1,2]. Observing that any two rows of the packing array must

have Hamming distance at least k − 1 we see that packing arrays are also error cor-

recting codes, speci?cally, maximal distance separating (MDS) codes or partial MDS

codes.

Abdel-Gha?ar and Abbadi [2] use MDS codes to allocate large database ?les to

multiple hard disk systems so that the retrieval time is optimal. For storage on multiple

disks, each attribute space Di, 16i6k of a data base ?le with n records and k attributes

is broken up into g parts, Dij, 16i6k and 16j6g. The database ?le can be seen as a

subset of D1×D2×···×Dk. The set of all records with entries in D1j1×D2j2×···×Dkjk

for 16ji6g and 16i6k is called a bucket, which can be made equivalent to an

element of Zk

all its buckets and partitioning the set of all buckets into m pieces, each of which

will be stored on a single disk in an array of m disks. A partial match query is

a request for all records in the database ?le that match a choice of from zero to k

attribute values. A search will begin by retrieving from disk all the buckets that could

contain records matching the request. After retrieval, this set of buckets will be searched

for the matching records therein. Abdel-Gha?ar and Abbadi concern themselves with

minimizing the time required to retrieve the buckets from the disk array. If a request

matches bi buckets from disk i, 16i6m then they de?ne the retrieval time to be

max{b1;b2;:::;bm} and ask how they can optimize this time. A response time is strictly

optimal if

g. Abdel-Gha?ar and Abbadi begin by ?rst dividing up the database into

max{b1;b2;:::;bm} =

??m

i=1bi

m

?

:

The conditions necessary for strict optimality are very tight and cannot be achieved in a

large number of reasonable situations. Abdel-Gha?ar and Abbadi discuss best possible

response times when strict optimality is not possible, and show that if the set of buckets

on each disk is an MDS error correcting code then the response time, although not

strictly optimal, can be shown to be better than all other allocations schemes across m

disks.

They establish bounds on the size of packing arrays, the smallest form of MDS

codes, to yield extreme bounds on the e?ciency of their system. The MDS or partial

MDS codes that correspond to packing arrays would apply to optimal disk allocation

over a large number of disks, speci?cally at least gk−2. If packing arrays were used for

optimal disk allocation in their model, any search with at least two speci?ed attributes

would yield search time of one. Their method guarantees that any partial match query

with at least two speci?ed attributes matches at most one bucket on each disk. This is

the best possible response time to retrieve the buckets from the disk array.

If we de?ne

f(b;g) = max{k such that there exists a PA(k;g) with b rows}:

Page 4

128 B. Stevens, E. Mendelsohn/Theoretical Computer Science 321 (2004) 125–148

Then a simple adaptation of proof of Theorem 3.4 from [2] gives new results on the

e?cacy of this application:

Theorem 3. There is no partial MDS code of length k and size b over an alphabet

of g letters if

2 6 ?loggb? 6 k − f(b;g) + 1:

In particular the Corollaries from Section 2.2 give that no partial MDS code exists

when either

2 6 ?loggb? 6 k −g(g − 1)

2

or

2 6 ?loggb? 6 k −g(g − 1)

2

where rmaxis the most frequently occurring letter in any single coordinate position. In

a similar manner, the bound obtained from Theorem 4 can give results about the range

of possible application.

In addition to re?ning the application range, it is also necessary to construct par-

tial MDS codes if one is ever to implement the application. This is another task of

this article. Decomposing Zk

implementation. Abdel-Gha?ar and Abbadi [2] discuss this aspect but do not fully

solve it. In this paper we address the existence of partial MDS codes and leave the

decomposition problem associated with them to further research. We believe that con-

structing examples is a worthwhile endeavor and is not mitigated by not completing

the decomposition problem which is a separate research area in its own right.

In our terminology, Abdel-Gha?ar and Abbadi [2] show that

+rmax(rmax− 1)

2

+?b=g?(?b=g? − 1)

2

;

ginto partial of full MDS codes is also required for any

pa(k;g : 1) ¿ g + 1 ⇒ k 6g2+ g

which together with pa(k;g:1)¿g implies

2

;

pa((g2+ g + 2)=2;g : 1) = gandpa((g2+ g)=2;g : 1) ¿ g:

Although not in these precise terms, Abdel-Gha?ar modi?es the Plotkin bound for

packing arrays with n=1 and shows that this bound is met when k¿2g − 1 [1]. We

extend this result to include all n. He also completely solves the case where n=1 and

g=3;4 and shows that a packing array with g2−1 rows can be completed to one with

g2rows.

In Section 2, two sets of upper bounds on packing arrays are derived. The ?rst

set of bounds consists of our modi?cation of the Plotkin bound to account for sets

of disjoint rows and the implications of non-integrality. The second set comes from

an observation on the constraints that sets of disjoint rows place on these structures.

In Section 3, we discuss constructions which yield lower bounds. We review some

constructive techniques motivated by design theory that are also useful to construct

Page 5

B. Stevens, E. Mendelsohn/Theoretical Computer Science 321 (2004) 125–148129

transversal covers [11]. We also present a direct construction using matchings in graphs.

Finally, we present a set of recursive constructions based on this matching problem.

Both these constructions extend Abdel-Gha?ar’s result to packing arrays with sets of

disjoint rows.

2. Packing arrays: upper bounds

2.1. Modi?cation of the Plotkin bound

The rows of a PA(k;g:n) form a code on a g-ary alphabet with word length k

and Hamming distance at least k − 1. The set of n disjoint rows form a set of n

codewords with mutual Hamming distance k. If the PA(k;g:n) has pa(k;g:n) rows

then the number of codewords in the code is maximum among the codes containing

such a speci?ed set of n codewords.

One of the most potent coding theory bounds is the Plotkin bound. Abdel-Gha?ar

derives a generalization of the Plotkin bound for packing arrays. We adapt this bound

further to include consideration of sets of disjoint rows and to extend its utility to

parameter sets where the number of rows is not a multiple of g. We establish upper

bounds not only to discuss the range of application of packing arrays but also to

determine when we are using optimal objects in our constructions.

Theorem 4 (Plotkin bound modi?ed for packing arrays). A b×k packing array must

satisfy the following bound for all ?6b, ?=ug + v where 06v¡g:

k((g − v)u2+ v(u + 1)2) 6 ?2− ? − n2+ n + k?:

Proof. Since deletion of rows does not a?ect the packing conditions, if a b×k packing

array exists then a ? × k packing array must exist for all ?6b. Any bounds on the

parameters of packing arrays must therefore hold for all ?6b as well.

Let N be the number of ordered pairs of di?erent symbols in the columns of a

PA(k;g:n). Since pairs of rows from the set of n disjoint rows never intersect (i.e.

never have the same symbol in the same position) and any other pair of rows can

share a common symbol in the same position in at most one place, we get

N ¿ ?(? − 1)(k − 1) + n(n − 1):

On the other hand, we can determine this value, N, in another way. For each sym-

bol, i, there are b − ri;j rows where a di?erent symbol occurs in column j. So, with

?g

ri;j(? − ri;j) = ?2−

i=1

with equality if exactly v symbols have replication u + 1 and g − v symbols have

replication u. These two bounds on N give

i=1rij=?, we have

g?

i=1

g?

r2

i;j6 ?2− (g − v)u2− v(u + 1)2

(1)

k(?2− (g − v)u2− v(u + 1)2) ¿ N ¿ ?(? − 1)(k − 1) + n(n − 1);

Page 6

130 B. Stevens, E. Mendelsohn/Theoretical Computer Science 321 (2004) 125–148

which reduces to the desired bound, with equality if the replication numbers are as

stated above and every pair of rows meets in exactly one position except those in the

set of disjoint rows.

In the event that we can prove that there must be more than two replication numbers

this bound can be tightened in Eq. (1). On the other hand, when equality is reached in

Theorem 4, strong implications on the structure of the code arise: the bound must be

an integer (although the standard Plotkin bound might not be integral in many cases);

any two code words, except those in the set of disjoint rows must intersect; and each

symbol must appear nearly equally often in each column (either u or u+1 times). Let

us examine these consequences for packing arrays.

We dualize the packing array into a block design.

De?nition 5. A pairwise balanced block design (PBD(v;K;?)) is a base set V of v

elements, and a collection B of subsets B⊆V, and |B|∈K, called blocks, such that

every pair of points from V occur in exactly ? blocks. Furthermore if the collection of

blocks can be partitioned so that each part contains every element of V exactly once,

we say that the PBD is resolvable. A generalization of PBDs admits holes. A subset,

H ⊆V is called a hole if every pair of elements of H occurs in no blocks.

The base set of the design of interest is the rows of the array. The blocks of

this design are any maximal collection of rows that have the same symbol in some

column. Each column, therefore, de?nes a spanning subset of blocks, or resolution

class. This dual structure is a resolvable PBD(v;{u;u + 1};1) with a hole of order n.

Each resolution class must have each block size occurring the same number of times as

every other resolution class. If b is a multiple of g then there is only one block size in

the resolvable PBD. In fact, for n=1, these structures are a particular class of design:

a class-uniformly resolvable design (CURD). This recently studied class of designs

provides insight into resolvable structures and have important applications [4,7,14].

If b62g, consideration of Theorem 4 implies that the dual of this structure is a

packing of pairwise edge disjoint (b − g)-matchings into Kb− Kn. We discuss this

speci?c case in Section 3.2.

2.2. Disjoint row bound

If we have a symbol appearing m¿n times in one column of a PA(k;g:n) then

deleting this column yields a PA(k−1;g:m). Therefore, bounds on the sizes of packing

arrays can be translated into bounds on the admissible replication numbers for packing

arrays with one more column. To this end, we calculate the maximum number of

columns possible in a packing array with n disjoint rows and at least g + 1 rows.

Theorem 6. The maximum number of columns in a packing array with at least g+1

rows is

g(g + 1)

22

−n(n − 1)

:

Page 7

B. Stevens, E. Mendelsohn/Theoretical Computer Science 321 (2004) 125–148131

Proof. Since the number of columns is non-increasing as the number of rows increases

we need only establish the result for exactly g + 1 rows. Given an arbitrary packing

array with g+1 rows, we manipulate it row by row. By permuting rows and symbols

within columns, we can assume that the ?rst n rows of the packing array are the row

of all 0’s, the row of all 1’s and so on up to the row of all (n − 1)’s. Since, within

each column we can permute the symbols, when we consider each next row, i, (except

the last) the symbols in this row can be all the symbols that we have used in previous

rows and at most one new symbol. We can also assume that underneath a previously

occurring symbol in row i that the symbol, i, new to row i + 1 does not occur. If it

did we could permute the symbols in this column to swap symbol i and i − 1.

De?ne li;n to be the largest number of previously used symbols that can appear in

row i in a packing array with a set of n disjoint rows. Clearly ln+1;n=n; after the ?rst

n disjoint rows, each symbol in them appears at most once in every following row.

These numbers satisfy the recursion li+1;n=li;n+ i. We can assume, by performing

permutations of the columns, that each symbol new to a row appears in a contiguous

rightmost set of indices or columns. To the left of these indices we can assume are a set

of entries that only contain previously used symbols appearing directly below symbols

that were new to row i − 1. Finally we can assume that the remaining leftmost set

of indices are previously used entries in both row i and i − 1. Then, by assumption,

at most the ?rst li;n symbols of row i will be previously appearing symbols and the

remaining k −li;nwill be the symbol i −1, new to row i. Thus the right-hand side of

the packing array under manipulation will look like a large set of disjoint rows; rows

will only share the same symbols in a column on the left hand side. When considering

the row i + 1, the new symbol is i; at most i of the old symbols in this, row i + 1,

are underneath the right hand part of row i where symbol i − 1 appears. This is the

middle set of indices described above. This portion, along with the ?rst li;n positions

in row i + 1, is the largest possible set of positions in which old symbols can appear.

Iterating, we see that li;n=(i(i−1)−n(n−1))=2 and lg;n=(g(g−1)−n(n−1))=2. If

a g+1st row exists, it can only contain previously used symbols, and so we must have

a set of at most g right-most columns, restricted to which, the array so far manipulated,

consists of disjoint rows. So k − lg;n6g or

k 6g(g + 1)

22

To see that there is an array achieving this bound we use the following algorithm for

arranging the old symbols to each new row. In row i, the ?rst li−1;ncolumns will have

the old symbol, i−2 (new in the previous row, i−1). The next i−1 columns will have

each of the old symbols, 0;1;:::;i−2, once. The remaining (g(g+1)−n(n−1))=2−li;n

columns of this row will have the new symbol, i − 1. The last, g + 1st row, follows

the same pattern but will have no columns remaining for new symbols (which is good

seeing as there are not any). Each row intersects every other in at most one point

and thus satis?es the packing conditions. It is straightforward to check that the ?rst

g rows of a matrix using li;n previously used symbols in row i can only be those

constructed above, up to permutation of rows, columns and symbol sets within each

column.

−n(n − 1)

:

Page 8

132 B. Stevens, E. Mendelsohn/Theoretical Computer Science 321 (2004) 125–148

Corollary 7. If, in a PA(k;g:n) with more than g rows, we de?ne rmax= max{rij:

i∈Zg; 16j6k}, then

k − 1 6g(g + 1)

22

−rmax(rmax− 1)

:

Proof. Remove any column which has a point achieving rmax. This yields a PA(k −1;

g: max(n;rmax)).

Observing that if a PA(k;g:n) has more than mg rows, it must have a point with

replication number at least m + 1, we have the following corollary.

Corollary 8. The maximum number of columns in a packing array with more than

mg rows is

g(g + 1)

2

−m(m − 1)

2

+ 1;

or alternatively, noting that pa(k;g:n) is non-increasing in k, we have

pa

?g(g + 1)

2

−m(m − 1)

2

+ 2;g : n

?

6 mg:

One notable consequence of this is the fact that

pa(g + 2;g : n) 6 g2− g:

Finally, as discussed in the introduction, these corollaries directly give new results on

the range of useful application for disk allocation.

3. Packing arrays: constructions and lower bounds

3.1. Constructions from design theory

De?nition 9. An incomplete orthogonal array is the same as an orthogonal array ex-

cept there are s mutually disjoint subsets of the alphabet, Hi, called holes with cardi-

nalities bi, such that every ordered pair, both from Hi, 16i6s, never occurs in any

pair of columns.

They are also called incomplete transversal designs (ITD(k;g:b1;b2;:::;bs)) and are

used to construct transversal covers [11]. This construction can be similarly formulated

for packing arrays to yield.

Theorem 10. If there exists an ITD(k;g;b1;b2;:::;bs) then

pa(k;g : i) ¿

max

ii+i2+···+is=i

ij6bj

?

g2−

s ?

j=1

(b2

j− pa(k;bj: ij))

?

:

Page 9

B. Stevens, E. Mendelsohn/Theoretical Computer Science 321 (2004) 125–148133

Proof. Fill the holes of the ITD with the PA(k;bj:ij). These holes are disjoint, thus

the union of the sets of disjoint rows from the PA(k;bj:ij) will also be a set of disjoint

rows.

Example 11. The existence of ITD(4;6;2) and ITD(6;10;2), yield pa(4;6)=34, as

also stated by Abdel-Gha?ar [1] and pa(6;10)=98 or 100. PA(4;6) is explicitly

0 0 0 0 0 0 1 1 1 1 1 1 2 2 2 2 2 2 3 3 3 3 3 3 4 4 4 4 5 5 5 5 4 5

0 1 2 3 4 5 0 1 2 3 4 5 0 1 2 3 4 5 0 1 2 3 4 5 0 1 2 3 0 1 2 3 5 4

4 5 2 3 0 1 1 0 5 4 2 3 5 4 0 1 3 2 3 2 4 5 1 0 0 3 1 2 2 1 3 0 4 5

0 1 4 5 2 3 5 4 0 1 3 2 3 2 5 4 0 1 4 5 3 2 1 0 1 3 2 0 2 0 1 3 4 5

T

;

where the last two rows are the ?lled hole. We observe that this is actually a PA(4;6:5):

rows 1, 8, 18, 27 and 34 are a set of disjoint rows.

3.1.1. Generalizing Wilson’s construction to packings

Theorem 12. Let C be a PA(k + l;t) with columns G1;G2;:::;Gk and H1;H2;:::;Hl.

Let S be any set of choices of a subset of each symbol set on H1;:::;Hl, let hibe the

number of symbols chosen from column Hi,?l

intersection of column Hiwith row A is in the set of symbols chosen for Hisummed

from H1to Hl. Then

i=1hi=u, and m be any nonnegative

integer. For any row A of C let uA=|S∩A|, the number of times the symbol in the

pa(k;mt + u) ¿?

Proof. The proof is a straightforward generalization of Wilson’s construction for trans-

versal designs [15].

A

(pa(k;m + uA: uA) − uA) +

l ?

i=1

pa(k;hi):

If l=0, we get the obvious generalization of MacNeish’s theorem.

pa(k;g : n) ¿

max

26i6?g=2?

max(1;n=?g=i?)6j6min(n;i)

((pa(k;i : j)pa(k;?g=i? : ?n=j?)): (2)

When l=1, using some probabilistic analysis as in [11], we can achieve:

pa(k;mt + u : n)¿

max

(i;j;‘)∈An;u;t;m(pa(k;u : ‘) + (t + u)pa(k + 1;t : i)pa(k;m : j)=t

+upa(k + 1;t : i)(pa(k;m + 1 : j + 1) − 1)=t); (3)

where

An;u;t;m= {(i;j;‘) ∈ N3: ij + ‘ ¿ n; 1 6 ‘ 6 u; 1 6 i 6 t; 1 6 j 6 m}:

For l¿1 the potential of this construction is large but there are di?culties. For transver-

sal designs, the tight balance conditions often permit counting the number of blocks

that intersect S. We do not have such strong structural information about packing arrays

and this makes the case l¿1 di?cult to state as a recursion on the packing numbers

Page 10

134 B. Stevens, E. Mendelsohn/Theoretical Computer Science 321 (2004) 125–148

alone. It requires analyzing the particular master array. One case where this has be

done is m=0.

Theorem 13. Given a (v;{2;3;:::;g − 1};1)-design, and for each point x, a chosen

block to represent x, Bx, with x∈Bx, we can construct a PA(k;g). For each block, B,

of the design, we de?ne uBto be the number of points on this block not represented

by it. Then

pa(k;g) ¿?

For a full explanations of the constructions of this section see [11].

B

pa(k;|B| : uB) − uB:

3.2. Direct construction for b62g: matching packings

The equivalence, when b62g, between optimal packing arrays and packings of

matchings into Kb− Kn also yields a number of constructive results. We prove a

number of results from a purely graph theoretical point of view before applying the

results to packing arrays.

3.2.1. Graph theoretical results

We will need a result on graph edge colourings before we proceed. the proof can

be found in [5].

Lemma 14. Kv−Knis (v−1) edge colourable if and only if v is even or n2−n¿v−1.

The next two theorems are similar to the interesting work of Rodger and Ho?man

on the number of edge-disjoint perfect matching in graphs [6]. We are concerned with

the number of edge-disjoint partial matchings.

Theorem 15. The maximum number, k, of edge disjoint copies of an m-matching that

can be packed into a Kv− Knis subject to the following conditions:

2km 6 v(v − 1) − n(n − 1);

k(2m − v + n) 6 n(v − n)

and a packing achieving the largest integer k subject to these conditions always exists.

Proof. First note that since the m-matching must ?t in the graph, then v¿2m and

since every one of the edges in a matching must have at least one endpoint not in the

hole, then v−n¿m. Since each of the k m-matchings uses m edges and there are only

(v(v − 1) − n(n − 1))=2 edges and we obtain

2km 6 v(v − 1) − n(n − 1):

Let k1equal the greatest integer that satis?es this bound.

Page 11

B. Stevens, E. Mendelsohn/Theoretical Computer Science 321 (2004) 125–148135

There are n(v−n) edges between the n vertices in the hole and the remaining v−n

vertices. These are divided into k classes so some matching uses at most ?(n(v−n))=k?

of these edges. Each of the k m-matching spans 2m vertices and misses v−2m vertices

so if

?n(v − n)

We cannot complete the edges from Kn;v−ninto a m-matching and so if 2m−v+n¿0,

we derive the second necessary condition:

v − 2m ¡ n −

k

?

:

k(2m − v + n) 6 n(v − n):

Let k2 equal the greatest integer that satis?es this bound. Both k1 and k2 are upper

bounds on the number of m-matchings that can be packed into Kv− Kn.

When

v(v − 1) − n(n − 1)

2m

then k1is the lesser upper bound and as long as either k1¿v − 1 or the conditions of

Lemma 14 are met then an equitable k1colouring of Kv− Knwith any

e =v(v − 1) − n(n − 1)

2

edges removed give the desired packing and allow the leave graph to be any subgraph

of Kv− Knwith e edges. The only case not covered is when v is odd, n2− n¡v − 1

and k1=v − 1. These conditions imply that v=2m + 1. It is also clear that when

n1¡n2, then Kv− Kn2⊆Kv− Kn1and all we need consider is the largest n satisfying

n2− n¡v − 1.

Equitably (v − 1) edge colour Kv−n. Label the edges in each colour class from the

set {n;:::;m} such that no two edges in the same colour class get the same label.

Fill in a v × (v − 1) matrix in the following manner. Label the rows consecutively

0;1;:::;v−1. All cells in the ?rst n rows get the same symbol as their row. To ?ll in

the remaining rows assign one colour class from the (v − 1) edge colouring of Kv−n

to each column of the matrix and assign one vertex of Kv−nto each of the remaining

rows of the matrix. If edge {i;j} is in colour class k with label l then put symbol l

in cells (i;k) and (j;k).

After this is done, each row (not from the ?rst n) will have n un?lled cells. There

will be (v − 1 + n2− n)=2 columns with (n − 1) un?lled cells and (v − 1 − n2+ n)=2

columns with (n+1) un?lled cells. Each of these last columns will be missing exactly

one symbol from {n;:::;m}. In each such column arbitrarily place this symbol in

exactly one of the un?lled cells. Now each row and column has at most n un?lled

cells. Form the natural bipartite graph representing these holes: The two parts of this

graph will be the set of the bottom (v−n) rows and the set of columns. An edge will

be placed from vertex i to vertex j if the cell (i;j) is empty. This graph has ?=n and

is therefore n edge colourable with colours {0;:::;n−1} using this colouring ?ll in the

remaining un?lled cells. Every symbol from {0;:::;m} appears at least once in each

¿ v − 1

− mk1

Page 12

136 B. Stevens, E. Mendelsohn/Theoretical Computer Science 321 (2004) 125–148

column, no symbol more than twice and exactly one symbol once in each column. The

pairs of rows that have identical symbols in the ith column are the sets of edges in

the ith m-matching packed into Kv− Kn.

The remaining case is when

v(v − 1) − n(n − 1)

2m

and k26k1. Remove all but k2(v − n − m) edges from Kv−n This is possible because

(v−n)(v−n−1)=2¿(n(v−n)(v−n−m))=(2m + n − v). Since the maximum degree

of Kv−nwas v−n−1 before the edges were removed, this is still the largest possible

maximum degree. Now k2edge colour the remaining graph. This is possible since

¡ v − 1

? + 1 6 v − n 6

?

n(v − n)

(2m − v + n)

?

= k2:

As above ?ll in the cells of a v×k2array. There are (2m−v+n) empty cells in each

column and at most

k2(2m − v + n)

(v − n)

in each of the last (v−n) rows (there are no empty cells in the ?rst n rows). Now in

the bipartite graph de?ned on the set

{last v − n rows} ∪ {k2columns}:

Edge {i;j}; i∈{last v − n rows}; j∈{k2columns} is in the graph if and only if cell

(i;j) is empty. The maximum degree of this bipartite graph is

? = max

?

2m − v + n;

?k(2m − v + n)

(v − n)

??

6 n:

So this graph is n edge colourable. Use this colouring to ?ll in the empty cells of the

matrix and de?ne the partial matchings as above. It is easy to check that each matching

has at least m edges, so we can remove any excess and obtain the desired packing of

m-matchings in Kv− Kn.

Theorem 16. The maximum number, k, of edge disjoint copies of an m-matching that

can be packed into a Kv1;v2− Kn1;n2(assume without loss of generality that v1¿v2)

is subject to the following constraints:

k(m − v1+ n1) 6 n1(v2− n2);

k(m − v2+ n2) 6 n2(v1− n1);

km 6 v1v2− n1n2

and the largest integer k satisfying all these is always achievable.

Proof. First we establish the necessary conditions. Since the m-matching must ?t in

the graph, we have v2¿m and since every one of the edges in a matching must have

Page 13

B. Stevens, E. Mendelsohn/Theoretical Computer Science 321 (2004) 125–148137

at least one endpoint not in the hole, then v1+v2−n1−n2¿m. Since each m-matching

uses m edges and there are only v1v2− n1n2edges and we obtain

k 6

m

?v1v2− n1n2

?

:= k1:

The union of the k m-matchings form a subgraph of Kv1;v2−Kn1;n2that is, by construc-

tion, k colourable. Therefore this subgraph must have degree at most k. Therefore it

must be possible to remove v1v2− n1n2− mk edges so as to reduce the degree of all

vertices to at most k. There are v1− n1vertices of degree v2and so we get

v1v2− n1n2− mk ¿ (v1− n1)(v2− k):

If m − v1+ n1¿0 this reduces to

k 6

m − v1+ n1

There are v2− n2vertices of degree v1and so we get

v1v2− n1n2− mk ¿ (v2− n2)(v1− k):

If m − v2+ n2¿0 this reduces to

k 6

m − v2+ n2

It is also true that there are n1 vertices of degree v2− n2 and n2 vertices of degree

v1− n1but the bounds on k derived from these two facts are never stronger than k1.

To establish the su?ciency of these conditions we shall examine three cases:

Case 1: k1is the least.

In particular, if m − v2+ n2¿0, so k3is de?ned, then k16k3:

v1v2− n1n2

m

mv1(v2− n2) 6 v1v2(v2− n2) − n1n2(v2− n2);

v16v1v2− n1n2

m

v16 k1:

?n1(v2− n2)

?

:= k2:

?n2(v1− n1)

?

:= k3:

6n2(v1− n1)

m − v2+ n2;

;

On the other hand if m − v2+ n260 then m6v2− n2and we get

n16 v1;

v1v2− v1n26 v1v2− n1n2;

v16v1v2− n1n2

m

v16 k1:

;

Since v1is the maximum degree of the bipartite graph Kv1;v2− Kn1;n2, we can remove

all but k1m edges from the graph and equitably k1edge colour it and the colour classes

will be the desired number of m-matchings.

Page 14

138 B. Stevens, E. Mendelsohn/Theoretical Computer Science 321 (2004) 125–148

Case 2: k2is the least.

Since k2is de?ned then we know that m−v1+n1¿0. If m−v2+n260, equivalently,

k3is not de?ned, then

n16 v1;

v1v2− v1n26 v1v2− n1n2;

v1m 6 v1v2− n1n2;

v2m 6 v1v2− n1n2;

v2m(v1− n1) 6 (v1v2− n1n2)(v1− n1);

mv1v2− mn1n2− (v1v2− n1n2)(v1− n1) 6 mv2n1− mn1n2;

(m − v1+ n1)(v1v2− n1n2) 6 mn1(v2− n2);

k16 k2

and so k1is also the least and the results of the ?rst case apply.

So we can assume that both m − v1+ n1¿0 and m − v2+ n2¿0. In what follows

we will remove x edges from the Kn1;v2−n2portion of the graph, y edges from the

Kv1−n1;v2−n2portion of the graph and z edges from the Kv1−n1;n2portion of the graph.

We must assign values to x, y and z so that all the degrees of the remaining graph

are no more than k2and there are k2m edges remaining. At this point simply k2edge

colouring will produce the desired set of m-matchings. The conditions that must be

satis?ed are:

x ¿ (v2− n2− k2)(n1);

x + y ¿ (v1− k2)(v2− n2);

y + z ¿ (v2− k2)(v1− n1);

z ¿ (v1− n1− k2)n2;

x + y + z = v1v2− n1n2− k2m:

Since m6v, this implies that m−v1+n16n1. Together with the fact that v2−n2must be

integral means that v2−n26?(n1(v2−n2))=(m − v1+ n1)?=k2. Thus we can set x=0,

y=(v1−k2)(v2−n2) and z =v1v2−n1n2−k2m−y=v1v2−n1n2−k2m−(v1−k2)(v2−n2).

It is easy to check that all the constraints are satis?ed. The edges can easily be removed

so as to reduce the degrees as evenly as possible in each component.

Case 3: k3is the least.

If k3 is de?ned then we know that m − v2+ n2¿0. If m − v1+ n160, so k2 is

not de?ned then m6v1− n1. Now if k36v2 then consider Km;k3as a subgraph of the

Kv1−n1;v2that is a subgraph of Kv1;v2−Kn1;n2. We know that m6v1−n16k3so we can

k3 edge colour this graph to produce the needed number of m-matchings. So we may

now assume that k3¿v2. Like above we need to choose x, y and z to satisfy

x ¿ (v2− n2− k3)(n1);

x + y ¿ (v1− k3)(v2− n2);

Page 15

B. Stevens, E. Mendelsohn/Theoretical Computer Science 321 (2004) 125–148139

y + z ¿ (v2− k3)(v1− n1);

z ¿ (v1− n1− k3)n2;

x + y + z = v1v2− n1n2− k3m:

But knowing that k3¿v2and k3¿v1−n1means that the only one of these inequalities

not automatically satis?ed is

x + y ¿ (v1− k3)(v2− n2):

So the evenly distributed removal of any v1v2−n1n2−k3m edges between the v2−n2

vertices of degree v1will reduce all degrees to no more k3and leave exactly k3m edges.

So equitably k3 edge colouring the remaining graph produces the needed number of

m-matchings.

In the only remaining case, both m − v1+ n1¿0 and m − v2+ n2¿0. Since v1−

n16?(n2(v1−n1))=(m − v2+ n2)?=k3we can set z =0. Then set y=(v2−k3)(v1−n1)

and x=v1v2− n1n2− k3m − y=v1v2− n1n2− k3m − (v2− k3)(v1− n1). It is easy to

check that all the constraints are satis?ed. The edges can easily be removed so that

they reduce the degrees as evenly as possible in each component. Equitably k3 edge

colouring once again produces the desired set of m-matchings.

3.2.2. Packing array constructions

A direct application of Theorem 15 to packing arrays gives

Corollary 17.

pa(k;g : n)

¿ min

?

2g;2kg − kn − n2

k − n

;2k + 1 −

?(1 + 2k)2+ 4(n2− n − 2kg)

2

?

:

If k6n6g then a PA(k;g:n) with 2g rows is easily constructed using Theorem

15 and so we can ignore this bound if the denominator is zero or negative. Similarly

if the discriminant in the third bound is negative then the corresponding bound from

Theorem 15 is always satis?ed, so it may also be ignored in that case. In particular,

when k¿2g−1, Corollary 17 gives a packing array that meets the bound in Theorem

4 and is optimal.

Abdel-Gha?ar and Abbadi [2] ask and answer the question: when does a packing

array have more than g rows? We extend this result to include sets of disjoint rows in

Theorem 6. Theorems 15 and 4 also allow us to derive several exact packing arrays

numbers:

Corollary 18.

pa

?g2+ 3g + 2 − n2+ n

4

;g : n

?

= g + 2:(4)

Download full-text