A Method for Construction of Orthogonal Arrays 1

Similar documents
An implementation of hash table for classification of combinatorial objects

About parallelization of an algorithm for the maximum clique problem 1

Complete Enumeration of Pure-Level and. Mixed-Level Orthogonal Arrays

Construction and classification of orthogonal arrays with small numbers of runs

Computer Algebra Investigation of Known Primitive Triangle-Free Strongly Regular Graphs

Trees. 3. (Minimally Connected) G is connected and deleting any of its edges gives rise to a disconnected graph.

A geometric non-existence proof of an extremal additive code

Face two-colourable triangulations of K 13

CLASSIFICATION OF REGULAR DIGRAPHS, NORMALLY REGULAR DIGRAPHS, AND STRONGLY REGULAR DIGRAPHS

Parallel Construction of Orthogonal Arrays

Graph drawing in spectral layout

The canonical augmentation method

3 No-Wait Job Shops with Variable Processing Times

Formally Self-Dual Codes Related to Type II Codes

A Connection between Network Coding and. Convolutional Codes

On the construction of nested orthogonal arrays

A SHARKOVSKY THEOREM FOR VERTEX MAPS ON TREES

The Further Mathematics Support Programme

Chapter 18 out of 37 from Discrete Mathematics for Neophytes: Number Theory, Probability, Algorithms, and Other Stuff by J. M. Cargal.

Unlabeled equivalence for matroids representable over finite fields

Optimal Region for Binary Search Tree, Rotation and Polytope

Relational Database: The Relational Data Model; Operations on Database Relations

ON THE CONSTRUCTION OF ORTHOGONAL ARRAYS

Generating edge covers of path graphs

arxiv: v2 [math.co] 29 May 2013

Treewidth and graph minors

arxiv: v2 [math.co] 25 Aug 2016

arxiv: v1 [cs.dm] 21 Dec 2015

Term Algebras with Length Function and Bounded Quantifier Elimination

4.1.2 Merge Sort Sorting Lower Bound Counting Sort Sorting in Practice Solving Problems by Sorting...

Monotone Paths in Geometric Triangulations

TAGUCHI TECHNIQUES FOR 2 k FRACTIONAL FACTORIAL EXPERIMENTS

MAT 7003 : Mathematical Foundations. (for Software Engineering) J Paul Gibson, A207.

A graph is finite if its vertex set and edge set are finite. We call a graph with just one vertex trivial and all other graphs nontrivial.

BACKGROUND: A BRIEF INTRODUCTION TO GRAPH THEORY

Introductory Combinatorics

The Football Pool Problem for 5 Matches

The Extended Quadratic Residue Code is the only (48; 24; 12) Self-Dual Doubly-Even Code

Slides for Faculty Oxford University Press All rights reserved.

PAPER Constructing the Suffix Tree of a Tree with a Large Alphabet

CS 441 Discrete Mathematics for CS Lecture 26. Graphs. CS 441 Discrete mathematics for CS. Final exam

Introduction to Data Structure

A Formalization of Transition P Systems

ON SOME METHODS OF CONSTRUCTION OF BLOCK DESIGNS

TreeSearch User Guide

Testing Isomorphism of Strongly Regular Graphs

VERTEX MAPS FOR TREES: ALGEBRA AND PERIODS OF PERIODIC ORBITS. Chris Bernhardt

CHAPTER 3 FUZZY RELATION and COMPOSITION

A Particular Type of Non-associative Algebras and Graph Theory

GRAPH theory is a study in mathematical science that

THE SHRIKHANDE GRAPH. 1. Introduction

Module 9 : Numerical Relaying II : DSP Perspective

Planarity Algorithms via PQ-Trees (Extended Abstract)

Winning Positions in Simplicial Nim

Online algorithms for clustering problems

A Partition Method for Graph Isomorphism

Rectangular Matrix Multiplication Revisited

NICOLAS BOURBAKI ELEMENTS OF MATHEMATICS. General Topology. Chapters 1-4. Springer-Verlag Berlin Heidelberg New York London Paris Tokyo

Association Pattern Mining. Lijun Zhang

A Context-Tree Branch-Weighting Algorithm

A Fast Algorithm for Optimal Alignment between Similar Ordered Trees

Introduction III. Graphs. Motivations I. Introduction IV

Graph Theory S 1 I 2 I 1 S 2 I 1 I 2

On the Relationships between Zero Forcing Numbers and Certain Graph Coverings

Random Permutations, Random Sudoku Matrices and Randomized Algorithms

Binary Trees

Notes on Binary Dumbbell Trees

Optimum Alphabetic Binary Trees T. C. Hu and J. D. Morgenthaler Department of Computer Science and Engineering, School of Engineering, University of C

LOGIC AND DISCRETE MATHEMATICS

REGULAR GRAPHS OF GIVEN GIRTH. Contents

Fast Implementation of the ANF Transform

Permutation Matrices. Permutation Matrices. Permutation Matrices. Permutation Matrices. Isomorphisms of Graphs. 19 Nov 2015

Non-trivial Torus Equivariant Vector bundles of Rank Three on P

ApplMath Lucie Kárná; Štěpán Klapka Message doubling and error detection in the binary symmetrical channel.

Discovering the Association Rules in OLAP Data Cube with Daily Downloads of Folklore Materials *

An Efficient Algorithm for Computing Non-overlapping Inversion and Transposition Distance

Data Partitioning. Figure 1-31: Communication Topologies. Regular Partitions

Introduction to Combinatorial Algorithms

1 The range query problem

LATIN SQUARES AND TRANSVERSAL DESIGNS

A Combined Encryption Compression Scheme Using Chaotic Maps

GNDraw Software Application for Creating Generalized Nets

PÓLYA S THEORY OF COUNTING

Applying Dijkstra Algorithm for Solving Neutrosophic Shortest Path Problem

Data Structure. IBPS SO (IT- Officer) Exam 2017

Stamp Foldings, Semi-meanders, and Open Meanders: Fast Generation Algorithms

3 INTEGER LINEAR PROGRAMMING

Department of Computer Applications. MCA 312: Design and Analysis of Algorithms. [Part I : Medium Answer Type Questions] UNIT I

Structure generation

arxiv: v1 [cs.it] 9 Feb 2009

Graphs connected with block ciphers

CS388C: Combinatorics and Graph Theory

Set Cover with Almost Consecutive Ones Property

Biquasiprimitive oriented graphs of valency four

An Improved Upper Bound for the Sum-free Subset Constant

Construction of planar triangulations with minimum degree 5

DISCRETE MATHEMATICS

The Encoding Complexity of Network Coding

Discrete mathematics II. - Graphs

REDUNDANCY OF MULTISET TOPOLOGICAL SPACES

Transcription:

Eighth International Workshop on Optimal Codes and Related Topics July 10-14, 2017, Sofia, Bulgaria pp. 49-54 A Method for Construction of Orthogonal Arrays 1 Iliya Bouyukliev iliyab@math.bas.bg Institute of Mathematics and Informatics, Bulgarian Academy of Sciences P.O.Box 323, 5000 Veliko Tarnovo, Bulgaria Maya Hristova maqhristova@gmail.com Faculty of Mathematics and Informatics, Veliko Tarnovo University, 5000 Veliko Tarnovo, Bulgaria Abstract. In this article we present a method for generating orthogonal arrays by following the terminology from the book of Kaski and Östergård [5]. 1 Introduction An orthogonal array is a table (array) whose entries come from a fixed finite set of symbols, arranged in such a way that there is an integer t so that for every t-columns of the table, all ordered t-tuples of the symbols, appear the same number of times. Orthogonal arrays are of great research interest, as they are widely used in various scientific fields [4]. One of the main tasks associated with orthogonal arrays is their construction and classification. The classification problem is to determine exactly one element from every equivalence class. An essential point is the rejection of isomorphic objects. The methods known so far can be summarized in two groups. The first option is to generate all orthogonal arrays. Then among the generated orthogonal arrays, exhaustive isomorphism testing is performed. The second option is to use isomorph free generation (IF Generation) via canonical form (total lexicographical order). The methods of the second group are relatively more effective, but finding a total lexicographic order is a computationally difficult task, especially when the orthogonal array has more columns. For this reason, we offer a method for generating orthogonal arrays with isomorph rejection via canonical augmentation. Up to our knowledge, this method has not been developed for such objects (orthogonal arrays) so far. 1 This research was partially supported by Grant DN 02/2/13.12.2016 of the Bulgarian National Science Fund

50 OC2017 2 Main definitions and preliminary results Let S be a set of s symbols (levels). We will denote these levels by 0, 1,, s 1. We interpret the levels as the elements of some special structure such as an alphabet. Definition 1. An N k array A with entries from S is said to be an orthogonal array with s levels, strength t (0 t k) and index λ if every N t subarray of A contains each t-tuple based on S exactly λ as a rows. We will denote such orthogonal array by OA(N, t, s k ). The parameters N, t, s and k have various names depending on the application of the given orthogonal array. The number of rows N is also called the number of runs or observations. The number of columns k is also known as the number of constraints, different variables or factors whose effect is analyzed. The parameter s specifies the number of symbols, the elements of the orthogonal array. These are the levels of the various factors (their possible values) that affect the final result. The main properties of the orthogonal arrays are described in details in [4]. We will mention only two which are more important for us: the parameters of an orthogonal array satisfy the equality λ = N/s t. Taking the runs in an OA(N, t, s k ) that begin with fixed element (in example 0) and omitting the first column yields an OA(N/s, t 1, s k 1 ). Definition 2. Two arrays are said to be isomorphic if one array can be obtained by permuting rows, columns, or factor levels of the other array. There are different methods for constructing orthogonal arrays. The isomorph rejection is a key point in solving the task of generating all OA(N, t, s k ). Schoen, Eendebak and Nguyen describe in [7] an algorithm for generating orthogonal arrays with isomorph rejection using a lexicographic order of the arrays. The preliminary isomorphism testing is avoided by retaining only arrays of a specific form (lexicographically minimum in columns). The technique that is proposed in [3] implements linear programming. Isomorphism testing was carried out with computer-algebraic methods. For our purposes we represent OA(N, t, s k ) (up to equivalence) as a N k matrix A (a i,j S, i = 1, 2,, N, j = 1, 2,, k). We construct the matrix A by columns. Practically, the first two columns depends on the parameters. The main objects for construction a matrix are columns of a given length (N) and they form the set T. The searched matrix is a subset of T. We call solution the set of columns that form a matrix with the properties of an orthogonal array. If the matrix A has k columns (k is fixed), A is called complete solution. If i < k, the solution that we have is called partial solution. Let A is N i matrix and we can obtain matrix with (i+1) columns from A. All solutions for column i form set of objects called children or possible solution

Bouyukliev, Hristova 51 for A. We denote them by C(A). A is called parent for some B C(A) and is denoted by p(a). The solutions for column i (the children) are elements from T which have certain properties (see Definition 1 and Property 2). Let B C(A). Then C(B) depends on C(A). We will call them possible solutions for (i + 1)- th column. We call B fixed solution for i-th column. The fixed solution is called also a real solution (in the next section we denote it by sol i ). It becomes a parent, and with the other possible solutions we are searching for children who have certain properties. In this way we have recursive construction. Since we do not consider all possible column options, but only those that have the properties of an orthogonal array, the search space decreases significantly. 3 Classification algorithm - notation and pseudocode For the implementation of the algorithm for generating orthogonal arrays that we present, we use algorithmic strategy called backtrack search (backtracking). With this strategy, the complete solution is constructed sequentially. At each step, a set of possible extensions is generated and an attempt is made to extend the current partial solution with the elements of that set. If the current solution can be extended, a step forward is made. Depending on the algorithm s goals, it may stop or step back and continue traversing the search tree. The backtrack search strategy can be presented as depth-first search of a searched tree [1]. In the search tree, nodes at the first level correspond to subobjects and can be considered as sol 1 solutions for that level. These solutions belong to a finite set T. A solution that corresponds to m can be considered as a m-dimensional vector (sol 1, sol 2,, sol m ) because it depends directly on the solutions of the previous levels. Thus, at each step we have a set of solutions that have a certain number of children. The solutions at fixed level k correspond to the object we search for. These solutions are called complete. The solutions are found (by traversing the tree) by dynamic programming (dynamic backtrack search). In our case the node at first level corresponds to an orthogonal array with parameters OA(N, t, s 2 ) (we use the solution (sol 1, sol 2 ) as input). We are only interested in a parent s non-isomorphic children. Thus, we use the strategy described in [2]. Each vector is not represented by its elements, but by the number of elements within an interval specified by the parent. Based on the solutions for this interval, we define the possible solutions for the children. Example 1. Let an OA(N, t, 2 2 ) be given. Let r 1 = N/2. The root of the search tree is fixed by this way: sol 1 = (11 } {{ 11}} 00 {{ 00} ). For sol 2 we have r 1 r 1 r 2 = r 1 /2 and: sol 2 = (11 } {{ 11}} 00 {{ 00} 11 } {{ 11}} 00 {{ 00} ). r 2 r 2 r 2 r 2

52 OC2017 The structures of sol 1 and sol 2 defines two intervals of rows for the next column of the orthogonal array - [0, r 1 1] and [r 1, N]. Each of them has r 2 ones and the same number of zeros. The backtrack search procedure defines the set of solutions SOL m+1 = SOL m+1 (sol 1, sol 2,, sol m ) U, m = 2,, k and for every solution sol m+1 SOL m+1 recursively invokes itself with input (sol 1, sol 2,, sol m, sol m+1 ). A solution from level m corresponds to a given column with which we would expand the orthogonal array. If all the elements of the set SOL m+1 are considered or the level of the complete solutions is reached (m = k), the return stage in the calling procedure is performed. To find the solutions from every level m, we use decomposition of integers. Lets consider the sequence of integers a 1, a 2,, a k. Our goal is to present each of these numbers as the sum of j addends, each of which has a value between 0 and s(a i ) (the size of the corresponding interval), where i = 1, 2,, k. To solve this problem, we use a recursive algorithm with three levels of recursion. In fact, we generate orthogonal arrays whose corresponding matrices are sorted (and part of the redundancy). There may be isomorphic among the objects thus obtained. The solution obtained in this way is optimal because it always leads us to finding a particular one. On the other hand, not every solution satisfies the condition of an orthogonal array. For this reason, we make additional steps to verify whether the array A obtained after the expansion is orthogonal. The number of these steps is minimized by taking advantage of the specified properties of orthogonal arrays (for arrays with t 3). One of the most time consuming part of the task to finding all non-isomorphic OA(N, t, s k ) is the isomorphism test. The trivial solution to this problem is to generate all orthogonal arrays and then perform exhaustive isomorphism test among them. In practice, this strategy is ineffective because the number of orthogonal arrays could be large. To avoid this problem, we use an isomorph free generation technique. There are three main approaches for isomorph rejection - with recorded objects, canonical form and canonical augmentation. In our case, we use canonical augmentation. To each orthogonal array, we uniquely juxtapose a binary matrix as follows: to every element s i s we juxtapose vector with length S, 0 (10 0), 1 (010 0),, (s 1) (0 01). The next step is to extend the matrix with n rows, which mark the columns representing one coordinate. Thus, (N + i)-th row will have ones in the positions s(i 1) + 1, s(i 1) + 2,, si, i = 1, 2,, n and zeros in the rest. For the canonical augmentation algorithm, we consider binary matrices (EM) instead of matrices of orthogonal arrays (A). Two orthogonal arrays are isomorphic if their corresponding binary matrices are isomorphic.

Bouyukliev, Hristova 53 Definition 3. Two binary matrices A and B of the same dimension are isomorphic if one can be obtained from the other by permutations of rows and columns. Any permutation of columns that represents the rows of matrix B in rows of the same matrix is called automorphism. The set of all automorphisms of B forms a group called automorphism group and it is denoted with Aut(B). The Aut(B) group splits the set of columns of B into disjoint subsets O 1, O 2,, O k called orbits. Two elements (columns) are in one orbit if there is automorphism that leads an element from one to the other. Let denote by Ω the search space - a finite set, which contains all objects (subobjects) that are considered in the search process (in our case every subset of T ). Definition 4. A canonical representative map is called the function ρ : Ω Ω, which has the properties: for every X Ω : ρ(x) = X; for every X, Y Ω from X = Y follows that ρ(x) ρ(y ). The canonical form of an object X is its image according to the canonical representative ρ(x). The object X is in canonical form if ρ(x) = X. The canonical representation leads to an ordering of the orbits of X(preceding). This allows us to define one of these orbits as special and to determine a parent test (presented in [6]). Let select the last orbit for a special one and let us denote the last column added to the X with `x. We say that X `x satisfies the parent test if `x is in the special orbit. For the presented algorithm we use the following notation: A is matrix that corresponds to the solution so far (matrix of an orthogonal array), EM is extended matrix that is obtained from A, T k is the set of solutions so far, Ĉ(A) is the set of all non-isomorphic children of A that passed the parent test, SOL level are all possible solutions for given level and level - the number of columns of A. This algorithm is effective when A has more columns. Algorithm Procedure CanonicalAugmentation(SOL level, level, A) 1: if level is equal to k then 2: T k := T k A; 3: print(a); 4: end if 5: Ĉ(A) = 6: if level is less than k then 7: find the set SOL level of all possible solutions 8: for every sol SOL level do 9: set sol as real solution 10: for each solution in SOL level \{sol} do 11: find all possible solutions for level + 1

54 OC2017 12: obtain EM from sol; 13: if EM passes the parent test then 14: if B : B = sol, B Ĉ(A) then 16: Ĉ(A) = Ĉ(A) EM 17: CanonicalAugmentation(A, level + 1, SOL level+1 ); 18: end if 19: end if 20: end for 21: end for 22: end if end procedure Procedure Main Input: N, k, t, s: global variables (parameters of an orthogonal array) Output: all non-isomorphic OA(N, t, s k ) 1: level := 2; 2: obtain SOL 2 and A; 3: CanonicalAugmentation(A, level, SOL 2 ); end procedure References [1] I. Bouyukliev, Q - EXTENSION strategy in algorithms, in Proceedings of the International Workshop ACCT, Bansko, Bulgaria, 2000, 84-89. [2] I. Bouyukliev, M. Dzhumalieva-Stoeva and V. Monev, Classification of Binary Self-Dual Codes of Length 40, IEEE Transactions on Information Theory, vol.61, No. 8, August 2015. [3] D.A. Bulutoglu and F. Margot, Classification of orthogonal arrays by integer programming, Journal of Statistical Planning and Inference, 138:654-666, 2008. [4] A.S. Hedayat, N.J.A. Sloane, and J. Stufken, Orthogonal arrays : theory and applications, Springer, 1999. [5] P. Kaski and P. R. J. Östergård, Classification Algorithms for Codes and Designs, Springer-Verlag, Berlin Heidelberg, 2006. [6] B. D. McKay, Isomorph-free exhaustive generation, J. Algorithms 26, (1998), 306-324. [7] Eric D. Schoen, Pieter T. Eendebak and Man V.M. Nguyen, Complete Enumeration of Pure-Level and Mixed-Level Orthogonal Arrays, Journal of Combinatorial Designs,2, 18, 123-140, 2009.