Научная статья на тему 'A method for bi-decomposition of partial Boolean functions'

A method for bi-decomposition of partial Boolean functions Текст научной статьи по специальности «Математика»

CC BY
43
22
i Надоели баннеры? Вы всегда можете отключить рекламу.
Область наук
Ключевые слова
ЧАСТИЧНАЯ БУЛЕВА ФУНКЦИЯ / БИ-ДЕКОМПОЗИЦИЯ / ЗАДАЧА ПОКРЫТИЯ / ПОЛНЫЙ ДВУДОЛЬНЫЙ ГРАФ / PARTIAL BOOLEAN FUNCTION / BI-DECOMPOSITION / COVER PROBLEM / COMPLETE BIPARTITE SUBGRAPH

Аннотация научной статьи по математике, автор научной работы — Pottosin Yu. V.

A method for bi-decomposition of incompletely specified (partial) Boolean functions is suggested. The problem of bi-decomposition is reduced to the problem of two-block weighted covering a set of edges of a graph of rows orthogonality of a ternary or binary matrix that specify a given function, by complete bipartite subgraphs (bicliques). Each biclique is assigned in a certain way with a set of arguments of the given function, and the weight of a biclique is the cardinality of this set. According to each of bicliques, a Boolean function is constructed whose arguments are the variables from the set, which is assigned to the biclique. The obtained functions form a solution of the bi-decomposition problem.

i Надоели баннеры? Вы всегда можете отключить рекламу.
iНе можете найти то, что вам нужно? Попробуйте сервис подбора литературы.
i Надоели баннеры? Вы всегда можете отключить рекламу.

Метод би-декомпозиции частичной булевой функции

Предложен метод би-декомпозиции неполностью определенных (частичных) булевых функций. Проблема би-декомпозиции сводится к задаче взвешенного двублочного покрытия множества рёбер графа ортогональности строк троичной или двоичной матрицы, которые задают данную функцию, полными двудольными подграфами (бикликами).

Текст научной работы на тему «A method for bi-decomposition of partial Boolean functions»

2020 Вычислительные методы в дискретной математике №47

ВЫЧИСЛИТЕЛЬНЫЕ МЕТОДЫ В ДИСКРЕТНОЙ МАТЕМАТИКЕ

UDC 519.7 DOI 10.17223/20710410/47/9

A METHOD FOR BI-DECOMPOSITION OF PARTIAL BOOLEAN FUNCTIONS

Yu. V. Pottosin

United Institute of Informatics Problems National Academy of Sciences of Belarus, Minsk,

Belarus

E-mail: pott@newman.bas-net.by

A method for bi-decomposition of incompletely specified (partial) Boolean functions is suggested. The problem of bi-decomposition is reduced to the problem of two-block weighted covering a set of edges of a graph of rows orthogonality of a ternary or binary matrix that specify a given function, by complete bipartite subgraphs (bicliques). Each biclique is assigned in a certain way with a set of arguments of the given function, and the weight of a biclique is the cardinality of this set. According to each of bicliques, a Boolean function is constructed whose arguments are the variables from the set, which is assigned to the biclique. The obtained functions form a solution of the bi-decomposition problem.

Keywords: partial Boolean function, Ы-decomposition, cover problem, complete bipartite subgraph.

Introduction

The problem of decomposition of a Boolean function consists in searching a representation of a given Boolean function in a form of superposition of two of more functions that are simpler in a certain sense than the given one. The decomposition problem is one of important and complicated problems in logical design. Its successful solution influences directly on the quality and cost of digital devices being designed. In a number of cases, a solution of this problem of decomposition gives a possibility to replace a complicated hardware implementation of a Boolean function in a large number of arguments by a simpler problem of implementation of several functions of less complexity.

There exist rather many various kinds of a Boolean function decomposition [1]. One of them is bi-decomposition. The bi-decomposition problem is set as follows. Given a Boolean function y = f (x) where the components of vector x = (x1, x2,..., xn) are Boolean variables forming a set X, find a superposition f(x) = <p(g\(z1),g2(z2)) where the components of vectors z1 and z2 are Boolean variables from sets Z1 С X and Z2 С X, respectively, the type of the function p of two variables is given, as well. It can be any of ten Boolean functions with two essential arguments represented by logic algebra operations. As usual, the sets Z1 and Z2 are given and Z1 П Z2 = 0. Such a bi-decomposition is called disjoint in contrast to non-disjoint bi-decomposition where the condition Z1П Z2 = 0 is not obligatory, but restrictions can be put on the cardinalities of the sets Z1 and Z2.

There are known examples of applying methods for bi-decomposition in increasing performance of circuits [2, 3] and in the synthesis of circuits based on FPGA [4]. The problem of bi-decomposition using XOR operation with a given partition {Z1,Z2} of X is considered in [5] where logical equations are suggested to be used for solving the problem. The probability of existence of any kind of decomposition for a completely specified Boolean function is very low, while the situation differs in the case of incompletely specified (partial) functions, especially when they are defined at a small part of Boolean space. Such a case of disjoint bi-decomposition at a given partition {Z1,Z2} of X was investigated in detail in [6].

Below, the problem of bi-decomposition of a partial Boolean function is considered. In this case, a superposition ^(g1(z1),g2(z2)) ^ f (x) for a given partial Boolean function y = f (x) must be found where ^ denotes the relation of realization, i.e. the values of the function coincide with the values of the function f anywhere they are defined. As well as in the problem set above, the components of the vectors z1 and z2 are the variables from Z1 C X and Z2 C X, respectively. The sets Z1 and Z2 are not given. They can intersect, but it is naturally that the sum of their cardinalities should be minimal. There exist various methods for disjoint and non-disjoint bi-decompositions [7- 10]. Here we describe a method for bi-decomposition that uses the approach to solving the problem of parallel decomposition of partial Boolean functions suggested in [11].

1. The applied approach

The Boolean function is supposed to be given in a matrix form, i.e. by a pair of matrices X and Y where X is a Boolean or ternary matrix representing a part of Boolean space of arguments that is the definition domain of the given function f and Y is a one-column Boolean matrix that shows the values of the function f on elements or intervals of the Boolean space represented by X. The rows of X and one-element rows of Y have a natural common numeration.

Let us consider graphs GX = (V, EX) and GY = (V, EY) where V is the set of common numbers of rows in matrices X and Y. The edges from the set EX correspond to the pairs of orthogonal rows in X. Two rows of a ternary matrix are orthogonal if there is a column where 0 is in one of them and 1 in the other [12]. The edges from the set EY correspond to the pairs of elements in Y with different values. Evidently, GY is a complete bipartite graph where one part corresponds to the set of 0s in Y, and the other to the set of 1s. The function is given correctly by matrices X and Y if EY C EX, i.e. GY is a spanning subgraph of GX. Any pair of matrices (X, Y) of the described form can be considered as a representation of a partial Boolean function if the graph GY is a spanning subgraph of the graph GX.

Let every edge in GX be assigned with the set of variables from the set X = {x1,

X2, • • • , %n

}, by which the corresponding pair of rows in X is orthogonal. Let a complete bipartite subgraph, or biclique, of GX be assigned with a set of variables from X taken one by one from each edge belonging to that biclique.

The set of variables assigned to a biclique is formed as follows. Let {x^xj,... ,xk} be the set of variables, by which two rows of X correspond to an edge of GX. Form elementary disjunction Xj V Xj V ... V xk from those variables. For a biclique, construct conjunctive normal form (CNF) with terms which are those elementary disjunctions taken from all edges belonging to the biclique. After deleting possible absorbed disjunctions, transform the CNF into disjunctive normal form (DNF) by opening the brackets. The variables from the term of minimal rank in the obtained DNF constitute the set assigned to the biclique.

A biclique is called admissible if it contains at least one edge from EY and the number of variables assigned to it is less than the number n of arguments of the given function f.

If the type of the function ^ is not given, then the problem of bi-decomposition can be considered as a particular case of the parallel decomposition problem for a system of partial Boolean functions considered in [11]. In our case, only one function is decomposed, and the number of sub-functions is limited to two. The following Proposition is a base of the method.

Proposition 2. For a partial Boolean function f (x) given by matrices X and Y, there exists a realizing it superposition ^(gi(zi), g2(z2)) if there is a two-block cover of the set EY by admissible bicliques of the graph GX.

Let bicliques B1 and B2 constitute that cover. Every biclique B^ i = 1, 2, can be given by a pair of vertex sets (Vj', V") such that each vertex from Vj is connected with all the vertices of V/' by edges. Any function gj(zj) is given by matrices Xj and Yj. The matrix Xj is the minor of X formed by the columns corresponding to variables assigned to the biclique Bj. The matrix Yj has only one column with 0s in rows corresponding to vertices in Vj', and with 1s in rows corresponding to vertices in Vj'' (or vice versa). An element of this column has value "—" if its corresponding vertex is absent in both Vj' and Vj''. The function ^ is given by matrices U and Ф. The matrix U consists of the columns representing Y1 and Y2, and the matrix Ф coincides with Y. As it was said above, a pair of matrices (U, Ф) can be considered as a representation of a partial Boolean function. It is easy to see that for any value of vector x taken arbitrarily from the definition domain of the given function f, the values of ^ and f coincide. So, the pairs of matrices (X1, Y1), (X2, Y2) and (U, Ф) represent the desired superposition. This representation can be redundant as there can be repeated or absorbed rows in the matrices and symbol "—" in one-column matrices Yj. This redundancy can be eliminated easily by removing rows from the matrices.

Thus, the process of solving the considered problem with minimizing the sum of the numbers of arguments in the functions g1 and g2 consists of the following stages.

1. Finding all the maximal admissible bicliques in graph GX. The method described in [13] can be used for this purpose. Note that graph GY is a biclique of GX, which should not be admissible because it is a one-block cover of EY leading to a trivial solution — one of the functions gj is a constant. Any found biclique Bj is assigned with weight as an ordered pair (rj,Sj) where rj is the minimal rank of a term in the corresponding DNF, Sj is the number of such terms. This stage is a "bottle-neck" in the suggested method, as the upper bound of the number of all the maximal bicliques in a graph with m vertices is 2m-1 — 1. It is reached in a complete graph. Graph GX is the same one if X is a Boolean matrix.

2. Obtaining a two-block cover of EY by the found bicliques. The cover must have the best weight. The weight of a cover consisting of bicliques Bj and Bj is an ordered pair (Rk, Sk) where Rk = rj + rj and Sk = sj + Sj. A weight (Rk, Sk) is considered better than a weight (R^Sj) if Rk < R¿ or Sk > S¿ when Rk = R¿. At this stage, the demand of non-intersecting sets Z1 and Z2 in disjoint bi-decomposition is satisfied. The complexity of finding all the two-block covers is expressed by the second power polynomial relative to the number of sets, among which the cover is looked for. Therefore, the enumeration of all the two-block covers is not considered as a laborious task.

3. Constructing Boolean functions g1(z1) and g2(z2) that are represented by matrices X1, Y1 and X2, Y2, and obtaining function ^ if its type is not given.

If the type of the function ^ is given, the linear and non-linear functions should be considered separately, as it was done in [6], because the sets of admissible bicliques

and two-block covers have different peculiarities in those cases. Among Boolean functions depending essentially on two arguments, the linear functions are ones expressed by XOR and equivalence operations. The rest are non-linear functions.

2. Bi-decomposition with a non-linear function

To give the type of the function every pair of rows in matrices X and Y of the same name should be assigned with the set of possible values of functions g1 and g2 that are required according to the value of the given function f. For instance, if ^ = g1 Ag2 (that is, is expressed by conjunction), then that set is {(1,1)} at f =1 or {(0, 0), (0,1), (1, 0)} at f = 0. The latter set can be given as {(0, —), (—, 0)}, i.e. the value of one of the functions g1 or g2 can be indefinite. Note that according to the way of construction of the functions g1 and g2, the vertices of graph GX, to which the rows of X and Y with assigned one-element set {(1,1)} correspond, are in the same part in any of all the admissible bicliques. Denote the set of them by W. At that, the number of maximal admissible bicliques is limited to 2m-|W 1-1 where m is the number of vertices of a graph, |W| is the cardinality of W. That is almost 2|W 1-1 times less than the number of all the maximal bicliques.

Such reasons are true for other non-linear functions as well, but, for example, the set W will consist of vertices with corresponding one-element set {(0, 0)} for disjunction and of vertices with {(1, 0)} for implication.

As an example, let us take a partial Boolean function given by matrices

x1 X2 X3 x4 X5 X6 y

1 0 — 0 1 0 1 0

0 — 1 1 0 1 2 0

X= 1 1 1 _ 1 0 3 0

0 , , Y =

0 — — 1 — 4 , 1

0 1 0 1 1 1 5 1

1 0 — 1 1 — 6 1

— 0 1 — 1 1 7 1

The values of y are not defined at the part of Boolean space of variables Xi, X2, X3, X4, x5, x6, which is not covered by the intervals represented by X. The sets of variables assigned to the edges of graph GX are shown in Table 1 where rows and columns correspond to the vertices of GX. The empty squares show absence of edges between corresponding vertices.

Table 1

V2 V3 V4 V5 V6 V7

Xl, X4, X5, X6 X2 Xl Xl, X2, X4, X6 X4 X6 Vl

Xl,X5,X6 X4, X5 X3,X5 Xl, X5 X5 V2

Xl Xl,X3,X6 X2 X2, X6 V3

X4 Xl, X4 V4

Xl, X2 X2,X3 V5

V6

Let the function ^ be expressed by Sheffer function (inverse conjunction). In this case

W = {vi, V2, V3}.

All the maximal admissible bicliques of the graph GX in the form of a pair of subsets of vertices with corresponding CNF and DNF are:

1) ({vi, V2, V3, V4, V5}, {v6}>, X2X4(x 1 V X5) = X1X2X4 V X2X4X5;

2) ({Vi,V2,V3,V5,V6}, {V4}>, X1X4;

3) (|vi, V2, V3, Vol, {V4, V5}), xi(x4 V X5)(X3 V £5) = X1X3X4 V X1X5;

4) ({Vi,V2,V3}, {v4,V5,Vo}), ^1^2X4(^3 V £5) = X1X2X3X4 V X1X2X4X5;

5) ({V1, V2, V3, V5}, {vo, V7}), X2X4X5X6;

6) ({v1, v2, v3, v4, v6, v7}, {v5}), x4(x3 Vx5)(x1 Vx3 Vx6)(x1 Vx2) = x1x2x4x5 Vx1x3x4 V V x2x3x4 V x2x4x5x6;

7) ({V1, V2, V3, V4}, {V5, V6, V7}), X2X4X5X6;

8) ({V1, V2, V3, V5}, {V4, V6, V7}), X1X2X4X5X6;

9) ({V1, V2, V3}, {V4, V5, V7}), X1X5X6.

The table of covering the edge set of GY by those bicliques after application of reduction rules [12] looks as Table 2 where the obtained bicliques are represented by their numbers. The two-block cover with the best weight consists of the bicliques 1 and 9.

Table 2

No V1V4 V1V5 V1V6 V1V7 V2V4 V2V5 V2V6 V2V7 V3V4 V3V5 V3V6 V3V7 Weight

1 1 1 1 3, 2

2 1 1 1 2, 1

3 1 1 1 1 1 1 2, 1

4 1 1 1 1 1 1 1 1 1 4, 2

5 1 1 1 1 1 1 4, 1

6 1 1 1 3, 2

7 1 1 1 1 1 1 1 1 1 4, 1

8 1 1 1 1 1 1 1 1 1 5, 1

9 1 1 1 1 1 1 1 1 1 3, 1

The functions gi(xi,x2,x4) (or gi(x2,x4,x5)) and g2(xi,x5,x6) are constructed by these bicliques with corresponded DNFs and the given matrices X, Y. This is a non-disjoint decomposition with intersection of the set Z1 and Z2 by x1. None of the obtained covers leads to disjoint decomposition. One of the variants of the solution is represented by the following matrices (the type of ^ is given):

Xi

Xi X2 X4

gi

'X i 'X 5 'X 6

g2

"1 0 0 1 1 1 1 0 1 1

0 — 1 2 1 0 0 1 2 1

1 0 1 0 3 Y = 4 , Yi = 1 1 ; X2 = 1 0 1 1 0 3 Y = 4 , Y2 = 1 0

0 1 1 5 1 0 1 1 5 0

1 0 1 6 0 1 1 — 6 —

— 0 — 7 — — 1 1 7 0

The result of bi-decomposition of the given partial Boolean function after minimizing DNF is represented by the following formulas (the variable x3 turns out to be an inessential argument):

g1 = XT V X2 V X4, g2 = X1X6 V X5, y = g1|g2 = g1 A g2.

3. Bi-decomposition with a linear function

According to the values of a given function f, for a linear function certain pairs of rows in matrices X and Y of the same name are assigned with the set {(0, 0), (1,1)} of possible values of functions g1 and g2, the others are assigned with {(0,1), (1, 0)}. Since the values of functions g1 and g2 must be defined at any row of matrix X, it must be orthogonalized in order to obtain a complete graph of row orthogonality. Orthogonalization of a ternary

matrix consists in obtaining a matrix equivalent to it with mutually orthogonal rows. Since the values of functions g1 and g2 are required to be defined at any row of matrix X, not every cover of by two bicliques can be the base for constructing g1 and g2. It would be better not to refer to the cover problem, but look for pairs of bicliques agreed with the values of g1 and g2.

Denote by W the set of vertices of GX corresponding to the rows of the orthogonalized matrix X with assigned set {(0,1), (1, 0)}. Let us find all maximal bicliques B1, B2,..., Bp of the subgraph of GX induced by the set W. Every biclique is represented as B = (V0, V1) where upper index 0 (1) shows the value of gj (j = 1, 2) at the sets of argument values corresponding to Vj0 (to Vj1). The number of those bicliques is p = 2|W 1-1 — 1. For every of them we form the pair ((Vj0, V1), (U0, U1)) where U0 = Vj1 and U1 = Vj0 at first. The further process of obtaining the pairs of bicliques that define the values of the functions g1 and g2 can be described by the Algorithm 1. The input data for it are p pairs in the form of ((V0, V1), (UP, U1)) and the set V \ W.

Algorithm 1.

1: A := V \ W, choose v G A, A := A \ {v}, i := 0.

2: i := i + 1. If i > p, go to 3, otherwise C° := V0, Cj := V1, D° := U°, D1 := U1,

C := C? U {v}, D° := D0 U {v}, go to 2. 3: If A = 0, go to 6, otherwise choose v G A, A := A \ {v}, i := 0, j := p; 4: i := i + 1. If i > p, p := j, i := 0, go to 5, otherwise V0 := C° U {v}; U° := U {v}; V1 := C1; U1 := D1, j := j + 1, Vj1 := C1 U {v}, Uj1 := D\ U {v}, Vj0 := C°, Uj0 := go to 4;

5: i := i + 1. If i > p, go to 3, otherwise C° := V0, C1 := V1, D° := U°, D1 := U1,

iНе можете найти то, что вам нужно? Попробуйте сервис подбора литературы.

go to 5. 6: End.

The result of the algorithm executing is the set of transformed pairs in the form of (V0, V1), (U0, U1) where the union of parts of bicliques V0, V1 or U1 has all the vertices of V. The number of those pairs is expressed by the following formula:

p = (2|W 1-1 — 1)2|V|-1. (1)

The algorithm does not describe how to form the corresponded CNFs. It is done in order not to complicate the algorithm description. The bicliques and corresponding CNFs can be formed simultaneously or separately.

Solution of the bi-decomposition problem for the function ^ = g1 © g2 (XOR operation) is shown on the example above. After orthogonalization of matrix X the pair of matrices X and Y are as follows:

X1 X2 X3 X4 X5 X6

1 0 — 0 1 0 1 0

0 — 1 1 0 1 2 0

1 1 1 — 1 0 3 0

0 1 0 1 1 1 4 , Y = 1

0 — — 0 1 — 5 1

0 0 1 1 1 1 6 1

1 0 1 0 1 1 7 1

1 0 — 1 1 — 8 1

y

Table 3 represents the sets of variables assigned to the edges of GX likewise Table 1. In this case W = {v4, v5, v6, v7, vg}. The maximal bicliques of the subgraph of GX induced by W with corresponding CNFs and DNFs are given below: ({V4, V5, V6, V7}, {vg}), X1X4;

X 1 X4 ;

xi;

x1x4(x2 V x3) = x1x2x4 V x1x3x4; x4(x2 V x3)(x1 V x2) = x1x3x4 V x2x4; x1x4(x2 V x3) = x1x2x4 V x1x3x4; x1x4(x2 V x3) = x1x2x4 V x1x3x4;

x 1 x4 ; x 1 x4 ; x4; x 1 x4 ;

x1x4(x2 V x3) = x1x2x4 V x1x3x4; x1x4(x2 V x3) = x1x2x4 V x1x3x4; x1x4(x2 V x3) = x1x2x4 V x1x3x4; x4(x2 V x3)(x1 V x2) = x1x3x4 V x2x4.

|v4, V5, V6, Vsj, {V7 |v4, V5, Vol, {V7, Vs {v4,V5,V7,Vs}, {V6 {V4,V5,V7|, {Vo,Vs {V4, V5, Vs}, {Vo, V7 {V4, V5}, {Vo, V7, Vs {V4, Vo, V7, Vs}, {V5

{V4,V6,V7}, {V5,Vs {V4,Vo,Vs}, {V5,V7 {V4, Vo}, {V5, V7, Vs {V4, V7, Vs}, {V5, Vo {V4, V7}, {V5, Vo, Vs {V4,Vs}, {V5,Vo,V7 {V4}, {V5,Vo,V7,Vs

V2

V3

V4

V5

V6

V7

Table 3

V8

Xi, X4, X5, X6 X2 Xi, X2, X4, X6 Xi Xi, X4, X6 X6 X4

Xi,X5,X6 X3, X5 X4, X5 X5 Xi, X4, X6 Xi, X5

Xi,X3,X6 Xi Xi ,X2,X6 X2, X6 X2

X4 X2,X3 Xi, X2, X3, X4 Xi, X2

X4 Xi X i, X4

X i, X4 Xi

X4

vi

V2 V3 V4 V5 V6 V7

As input data for Algorithm 1, the following set of pairs of bicliques is given:

{V4,V5,Vo,V7}, {Vs

{V4, V5, Vo, Vs}, {V7 {V4, V5, Vo}, {V7, Vs {V4, V5, V7, Vs}, {Vo {^4,^5,^7}, {Vo,Vs {V4,V5,Vs}, {Vo,V7 {V4, V5}, {Vo,V7,Vs {V4, Vo, V7, Vs}, {V5 {V4, Vo, V7}, {V5, Vs {V4,Vo,Vs}, {V5,V7 {V4,Vo}, {V5,V7,Vs {V4,V7,Vs}, {V5,Vo {V4, V7}, {V5, Vo, Vs {V4, Vs}, {V5, Vo, V7 {V4}, {V5,Vo, V7, Vs

Vs}, {V4, V5, Vo, V7 V7}, {V4, V5, Vo, Vs V7, Vs}, {V4, V5, Vo Vo}, {V4, V5, V7, Vs Vo,Vs}, {V4,V5,V7 Vo, V7}, {V4, V5, Vs Vo,V7,Vs}, {V4,V5 V5}, {V4, Vo, V7, Vs V5, Vs}, {V4, Vo, V7 V5, V7}, {V4, Vo, Vs V5,V7,Vs}, {V4,Vo V5,Vo}, {V4,V7,Vs V5, Vo, Vs}, {V4, V7 V5, Vo, V7}, {V4, Vs

{V5, V6, V7, Vg}, {V4}

At the initial stage of Algorithm 1 (step 2), the vertex v1 from V \ W is added to all the pairs of bicliques, and ({v1, v4, v5, v6, v7}, {v8}), ({v1,v8}, {v4, v5, v6, v7}) will be the first of them. Then it is transformed into the following pairs:

({V1, V2, V3, V4, V5, V6, V7}, {vg}), ({V1, V2, V3, Vg}, {V4,V5, V6, V7});

<{vi, V2, V4, V5, V6, V7}, {V3, Vs}), <{vi, V2, Vg}, {V3, V4, V5, V6, V7});

<{Vi,V3,V4,V5,V6,V7}, {v2,vg}), <{Vi,V3,Vg}, {V2, V4, V5, V6, V7});

({Vi,V4,V5,V6,V7}, {V2,V3,VS}), <{Vi,Vg}, {V2, V3, V4, V5, V6, V7}).

Such transformations are fulfilled concurrently for all the pairs. Among all the pairs of bicliques that are obtained by the algorithm above (according to the formula (1) the number of them is p = 60), the pair with the best weight (6, 2) is

<{vi, V2, V3, V4, V5, V6}, {V7, Vg}), Xi^^^;

<{Vi,V2,V3,V7,Vg}, {V4,V5,V6}), ^£5.

According to these bicliques and matrices X and Y the functions gi(xi,x2,x4,x6) and g2(xi,x5) are constructed that are given as follows:

£2 £4 £6 gi £T £5 g2

"1 0 0 0 1 1 1 1 1 1

0 — 1 1 2 1 0 0 2 1

1 1 — 0 3 1 1 1 3 1

Xi = 0 1 1 1 4 , Yi = 1 ; X2 = 0 1 4 , Y2 = 0

0 — 0 — 5 1 0 1 5 0

0 0 1 1 6 1 0 1 6 0

1 0 0 1 7 0 1 1 7 1

1 0 1 — 8 0 1 1 8 1

Minimizing DNFs leads to the following expressions:

gi = XT V £2 V £4£6, g2 = Xi V £5, y = gi © g2.

The result is in the form of non-disjoint bi-decomposition (the variable ^ is an argument of both gi and g2). The variant of disjoint bi-decomposition is not found out in this example.

Conclusion

The described method for bi-decomposition differs from many known ones primarily in that it does not demand to give a partition of the set of arguments of a given function. The method has strong restrictions in practical application because of exponential growth of the number of bicliques with the growth of the number of rows of the matrices of specification. Its advantage can be that it shows the direction of the search for a solution. This can be used in developing heuristic methods.

REFERENCES

1. Perkowski M. A. and Grygiel S. A Survey of Literature on Functional Decomposition, Version IV (Technical Report). Portland, USA, Portland State University, Department of Electrical Engineering, 1995. 188 p.

2. Cortadella J. Timing-driven logic bi-decomposition. IEEE Trans. Computer-Aided Design of Integrated Circuits and Systems, 2003, vol. 22, no. 6, pp. 675-685.

3. Mishchenko A., Steinbach B., and Perkowski M. An algorithm for bi-decomposition of logic functions. Proc. 38th Ann. Design Automation Conf., Las Vegas, NV, USA, ACM, June 2001, pp. 103-108.

4. Chang S.-C., Marek-Sadowska M., and Hwang T. Technology mapping for TLU FPGA's based on decomposition of binary decision diagrams. IEEE Trans. Computer-Aided Design, 1996, vol. 15, no. 10, pp. 1226-1235.

5. Bibilo P. N. Dekompozitsiya bulevykh funktsiy na osnove resheniya logicheskikh uravneniy [Decomposition of Boolean Functions Based on Solving Logical Equations]. Minsk, Belaruskaya Navuka, 2009. 211 p. (in Russian)

6. Zakrevskij A. D. On a special kind decomposition of weakly specified Boolean functions. Second Intern. Conf. CAD DD'97, Minsk, Republic of Belarus, November 12-14, 1997. Minsk, NAS of Belarus, Institute of Engineering Cybernetics, 1997, vol. 1, pp. 36-41.

7. Cheng D. and Xu X. Bi-decomposition of logical mappings via semi-tensor product of matrices. Automatica, 2013, vol. 49, no. 7, pp. 1979-1985.

8. Choudhury M. and Mohanram K. Bi-decomposition of large Boolean functions using blocking edge graphs. IEEE/ACM Intern. Conf. ICCAD, San Jose, CA, USA, IEEE Press, 2010, pp.586-591.

9. Fiser P. and Schmidt J. Small but nasty logic synthesis examples. Proc. IWSBP'8, Freiberg, Germany, Freiberg University of Mining and Technology, Sept. 2008, pp. 183-190.

10. Steinbach B. and Posthoff C. Vectorial bi-decomposition for lattices of Boolean functions. Further Improvements in the Boolean Domain (ed. B. Steinbach). Cambridge Scholars Publishing, 2018, pp. 175-198.

11. Pottosin Yu. V. and Shestakov E. A. Dekompozitsiya sistemy chastichnykh bulevykh funktsiy s pomoshch'yu pokrytiya grafa polnymi dvudol'nymi podgrafami [Decomposition of a system of partial Boolean functions with the help of covering a graph by complete bipartite subgraphs]. Proc. 2nd Conf. "New Information Technologies in the Study of Discrete Structures", Yekaterinburg, UrS RAS, 1998, pp. 185-189. (in Russian)

12. Zakrevskij A. D., Pottosin Yu. V., and Cheremisinova L. D. Combinatorial Algorithms of Discrete Mathematics. Tallinn, TUT Press, 2008. 193 p.

13. Pottosina S., Pottosin Yu., and Sedliak B. Finding maximal complete bipartite subgraphs in a graph. J. Appl. Math., 2008, vol. 1, no. 1, pp. 75-81.

i Надоели баннеры? Вы всегда можете отключить рекламу.