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