Applications of Combinatorial Designs in Computer Science


A combinatorial design is a selection of subsets from a finite set that meets certain specifications. Usually the specifications are based on some set membership and intersection conditions. For example, consider a collection of 8 computers. The computers most closely connected are in the same local area network, LAN. The conditions on connecting these computers are that each computer is not connected to too many LAN's, no LAN is too large, each pair of computers is not on too many LANs—avoid redundancy, and every pair of computers is on enough LANs to ensure reliable direct communication. A specification that the 8 computers be networked with 14 LANs, each LAN having 4 computers and every computer on 7 LANs, any pair of computers are together on 3 different LANs, and any set of 3 computers can communicate on a single LAN is a combinatorial design. The design here is {{0,1,2,4}, {0,1,3,7}, {0,1,5,6}, {0,2,3,5}, {0,2,6,7}, {0,3,4,6}, {0,4,5,7}, {1,2,3,6}, {1,2,5,7}, {1,3,4,5}, {1,4,6,7}, {2,3,4,7}, {2,4,5,6}, {3,5,6,7}}.


The project is to study combinatorial designs following the book's consideration of this as an existence problem. What specifications can be met in combinatorial designs?


References:


Colbourn, Charles J. and Jeffrey H. Dinitz, Handbook of Combinatorial Design, 2nd ed, Chapman & Hall, Boca Raton, FL (2007)


Roberts, Fred S., Applied Combinatorics (Chapter 9), 2nd ed, Pearson Education, Upper Saddle River, NJ (2005)


Colbourn, Charles J. and Paul C van Oorshot, Applications of Combinatorial Designs in Computer Science, ACM Computing Surveys, Vol. 21, No2, June 1989.





Covering Arrays and Software Testing


If a number of components are used together the number of possible configurations of the entire system is the product of the number on possible states of each component. So for example, testing an internet site on three operating systems, two browsers, three printers, and two internet connections offers 36 = 3x2x3x2 possible configurations. To exhaustively test the configurations would need 36 tests. But each pair of combinations--operating system x browser, operating system x internet connection, browser x connection, etc. could be tested in only 9 tests.


This can be modeled with an array with the columns representing components, operating systems, browsers, printers, and internet connections, respectively, and the rows representing test configurations. We use 0 to n to represent the possible states of each component. The solution is


0000

0111

0021

1100

1010

1120

2001

2110

2021


If we project down any two columns, each combination of characters in the respective rows will be hit. For example, if column 1 represents operating systems and column 3 represents printers, the combination (operating system 2, printer 0) will be tested in the 7th configuration. The combination (browser 0, connection 1) is tested in configurations 2 and 3. The array is called a covering array.


The project is to investigate approaches to constructing covering arrays that cover all k-wise combinations of component configurations with the fewest rows.


References:


Roberts, Fred S., Applied Combinatorics (Chapter 9), 2nd ed, Pearson Education, Upper Saddle River, NJ (2005)


Colbourn, Charles J. and Jeffrey H. Dinitz, Handbook of Combinatorial Design, 2nd ed, Chapman & Hall, Boca Raton, FL (2007)


Hartman, Alan, Software and Hardware Testing Using Combinatorial Covering Suites in Graph Theory, Combinatorics and Algorithms, Martin Charles Golumbic and Irith Ben-Arroyo Hartman (eds), Springer US (2005)






Mutually Orthogonal Latin Squares and Error-Correcting Codes


A latin square is an n x n square matrix that contains n different symbols arranged so that no symbol occurs more than once in any row or column. Two latin squares are orthogonal if when they are superimposed the ordered pair produced in each cell occurs exactly once. The problem dates back to 1779 when Euler posed the problem of 36 Officers. A set of latin squares is mutually orthogonal, or a set of MOLS, if every pair of distinct squares is orthogonal.


The project is to survey how to construct sets of MOLS and then apply MOLS to error correcting code. The theory of error correcting code is also called algebraic coding theory because it is often related to the algebraic theory of finite fields.


References:


Roberts, Fred S., Applied Combinatorics (Chapter 9), 2nd ed, Pearson Education, Upper Sadle River, N.J. (2005)


Colbourn, Charles J. and Jeffrey H. Dinitz, Handbook of Combinatorial Design, 2nd ed, Chapman & Hall, Boca Raton, FL (2007)


Colbourn, Charles J. and Jeffrey H. Dinitz, Mutually orthogonal latin squares: a brief survey of constructions, Journal of Statistical Planning and Inference 95 (2001) 9-48.


Laywine, Charles F. and Gary L. Mullen, Discrete Mathematics Using Latin Squares (especially chapter 9: Error Correcting Codes), John Wiley & Sons, New York (1998)