Fast Boolean Factoring with Multi-Objective Goals A.I.Reis Nangate Inc Sunnyvale CA USA

Size: px
Start display at page:

Download "Fast Boolean Factoring with Multi-Objective Goals A.I.Reis Nangate Inc Sunnyvale CA USA 94089-1321"

Transcription

1 Fast Boolean Factoring with Multi-Objective Goals A.I.Reis Nangate Inc Sunnyvale CA USA A.B.Rasmussen Nangate Inc Sunnyvale CA USA L.S.Rosa Jr. PGMICRO Instituto de Informatica UFRGS R.P.Ribas PGMICRO Instituto de Informatica UFRGS ABSTRACT This paper introduces a fast algorithm for Boolean factoring. The proposed approach is based on a novel synthesis paradigm, functional composition, which performs synthesis by associating simpler sub-functions. The method constructively controls characteristics of final and intermediate functions, allowing the adoption of secondary criteria other than the number of literals for optimization. This multi-objective factoring algorithm has presented interesting features and advantages when compared to previous related works. Categories and Subject Descriptors 7.1 [High-level Synthesis, Logic synthesis and Circuit Optimization]: Combinational, sequential, and asynchronous logic synthesis. General Terms Algorithms, Measurement, Performance, Design, Experimentation, Theory. Keywords Factoring, Functional Composition, Exact Factoring, Boolean Factoring, read-once formulas, unate functions, binate functions. 1. INTRODUCTION Factoring is a core procedure in logic synthesis. Yet, according to Hachtel and Somenzi [9], the only known optimality result for factoring (until 1996) is the one presented by Lawler in 1964 [10]. Heuristic techniques have been proposed for factoring that achieved high commercial success. This includes the quick_factor (QF) and good_factor (GF) algorithms available in SIS tool [15]. Recently, factoring methods that produce exact results for readonce factored forms have been proposed [7] and improved [8]. However, the IROF algorithm [7,8] fails for functions that cannot be represented by read-once formulas. The Xfactor algorithm [6,11] is exact for read-once forms and produces good heuristic solutions for functions not included in this category. Most of these algorithms [6,7,8,11,15] take as input a sum-ofproducts (SOP) or a product-of-sums (POS). As SOP/POS forms are completely specified, the don t cares are not treated during the factoring but while generating the SOP/POS. Thus, the whole process is not exact. Lawler s algorithm [10] starts from a functional description and considers don t cares, but it is too slow to complete for all functions of 4 variables. A method for exact factoring based on Quantified Boolean Satisfiability (QBF) [1] was proposed by Yoshida et al [19]. The Exact_Factor [19] algorithm constructs a special data structure called exchange Binary (XB) tree, which encodes all equations with a given number N of literals. The XB-tree contains three different classes of configurable nodes: internal (or operator), exchanger and leaf (or literal). All classes of nodes can be configured through configuration variables. The Exact_Factor algorithm derives a QBF formula representing the XB-tree and then compares it to the function to be factored by using a miter [2] structure. If the QBF formula for the miter is satisfiable, the assignment of the configuration variables is computed and a factored form with N literals is derived. The exactness of the algorithm derives from the fact that it searches for a read-once formula and then the number of literals is increased by one until a satisfiable QBF formula is obtained. The development of new multi-level optimization algorithms has recently shifted towards the use of And-Inverter-Graphs (AIGs) [12]. Especially important for these approaches is the concept of K-cuts, which allows working with sub-functions of at most K- inputs [5]. The use of factor-cuts [4] allows the efficient enumeration of cuts with up to 16 inputs. In this kind of approach, the minimum implementation of small functions has increased importance [13]. Notice that the criteria for optimality may include secondary criteria like logic depth [17]. In this context, an exact algorithm that is able to: (1) minimize factored forms taking into account multi-objective goals, (2) generate more than one alternative minimum solutions and (3) start from a functional description, possibly incompletely specified is largely desired. As shown in Table 1, all these characteristics are present in the algorithm introduced in this paper. When compared to Lawler s [10] and Exact_Factor [19] algorithms, the approach proposed here is more time-efficient and it has the characteristics (1) and (2) above as additional advantages. Both the method presented here and the Exact_Factor approach have features which provide optimized run-time for read-once formulas, when compared to Lawler s method. This paper is organized as follows. Section 2 presents basic concepts, including the need for multi-objective optimization goals. The proposed algorithm is described in Section 3, detailing timing optimizations for general, symmetric, unate and read-once functions. Results and comparisons to other methods are presented in Section 4. The final section discusses the conclusions of this paper.

2 Table 1. Comparing the properties of previous methods to the proposed approach. Method Start point Exactness Functions treated Optimized for read-once Incompletely specified functions More than one solution Multiobjective [10] Functional Exact All No Yes No No QF/GF [15] SOP/POS Heuristic All No No No No [6,10] SOP/POS Exact for read-once All Yes No No No [7,8] SOP/POS Exact for Only read-once read-once Yes No No No [19] Functional Exact All Yes Yes No No This paper Functional Exact (and multi-objective) All Yes Yes Yes Yes 2. BASIC CONCEPTS A literal is an instance of a variable (positive literal) or its complement (negative literal). A Boolean function is said to be positive (negative) unate with respect to a given variable when a prime irredundant SOP contains only positive (negative) literals of the variable. A Boolean function is said to be binate with respect to a given variable when positive and negative literals of the variable appear in a minimum SOP. Example 1: Consider the minimum SOP presented by Equation (1). The function is binate with respect to variable a, positive unate with respect to b and negative unate with respect to c. f = a b + a c (1) A factored form is read-once when each variable contributes with at most one literal. Equation (2) is a read-once form. Equation (1) is not a read-once form, since variable a is read twice. o = ( a b + c d) e + f (2) The cofactors of a Boolean function f with respect to a given variable are obtained by setting the variable to one (positive cofactor) or to zero (negative cofactor), eliminating then the variable from the function. A cube cofactor is obtained by setting more than one variable to specific values (zero or one). Example 2: Consider Equation (1). The positive cofactor with respect to variable a is f ( a) = b. The negative cofactor with respect to variable a is f ( a) = c. Examples of cube cofactors of f include f ( bc) = a, f ( b c) = 1, f ( b c) = 0 and f ( b c) = a. A factored form can be implemented as a complementary series/parallel CMOS transistor network. This process is straightforward; further details are described by Weste and Harris [18]. The number of series transistors in one CMOS plane is the number of parallel transistors in the other CMOS plane. The number of series transistors affects the performance of the final cell and it can vary for factored forms representing the same Boolean function. Example 3 illustrates the motivation for the proposed algorithm. Example 3: Consider the equations shown in Table 2, which represent the same Boolean function. Equation (3) has minimum literal cost (L). The number of series (S) switches is the same for all equations. Equation (5) has minimum parallel (P) cost. Table 2. Literal, series and parallel costs of factored forms. Eq# Equation L S P (3) f = b ( d + c) + ( a + d + c) ( a + b c) (4) f = c ( b + a) + c ( a d + ( d + b) ( b + a)) (5) f = ( c + b + a) ( c + a d + ( d + b) ( b + a)) (6) f = b ( d + c + a) + b ( c + a) ( a + d + c) Consequently, it is necessary to develop algorithms able to deal with multi-objective design goals, which consider topological properties (like the number of series and parallel switches) while reducing the number of literals. 3. PROPOSED ALGORITHM The proposed algorithm uses logic functions that are represented as a pair of {functionality, implementation}. The functionality is either a BDD node or a truth table (coded as bit strings on top of integers). The implementation is either the root of an operator tree or a string representing a factored form. The implementation can also have associated data about number of literals, logic depth, number of transistors, series/parallel properties, etc. These data are necessary to perform synthesis with multi-objective goals. 1 vector <factoredforms> optimizeequation() 2 { 3 if (target_function==constant) 4 return constant; 5 compute_allowed_subfunctions(); 6 bool sf false; //solutions found 7 sf=create_literals(); 8 if (sf) 9 return solutions; 10 else for (int i=2; i<maxlit; i++){ 11 sf=fillbucket(i); 12 if (sf) 13 return solutions; 14 } 15 return "no solutions found"; 16 } Figure 1. Pseudo-code for the optimization algorithm.

3 The pseudo-code of the algorithm proposed herein is shown in Fig.1. The first step is to verify if the target function is constant (lines 3-4). The second step is the computation of allowed subfunctions (line 5), which is described in Section 3.1. The algorithm is constructive and it starts from simple functions representing the literals. The call to create_literals() in line 7 will produce the pairs {functionality, implementation} for functions that can be represented by a single literal. The next step is to verify if the target function can be represented by a single literal, which is done by checking the flag sf on lines 8-9. The intermediate functions are kept in buckets indexed by number of literals. If the target function cannot be implemented as a single literal, the algorithm starts a loop (lines 10-14) where the buckets are filled with increasing number of literals. The fillbucket method fills a bucket with functions having i literals. The method combines pairs of functions with fewer literals than i to get the functions with i literals. For instance, to fill the bucket i=4 the buckets to be combined are {j=1, k=3} and {j=2, k=2}. The resulting combinations will have 4 literals, as j+k=4. The combination of two buckets makes all the and and or combinations with one element from each bucket. In the final step of the method, when the target function cannot be implemented with maxlit or fewer literals, the algorithm finishes without returning a solution (line 15). Next sub-sections describe further details of the algorithm. Hash tables for allowed and already looked sub-functions are described in Sections 3.1 and 3.2, respectively. Section 3.3 discusses the role of larger and smaller sub-functions. Optimizations for unate and symmetric variables are discussed in Sections 3.4 and 3.5, respectively. Section 3.6 discusses the special case of read-once formulas, whose solution is highly optimized. A complete example is presented in section Allowed Sub-Functions Hash Table The great number of intermediate sub-functions created by exhaustive combination increases the execution time of the algorithm. To optimize performance, a hash table of allowed subfunctions is maintained. Sub-functions that are not present in the allowed sub-functions hash table are discarded, unless they are greater or smaller than the target function (as described in Section 3.3). The use of a hash table of allowed sub-functions helps to control the execution time of the algorithm. The algorithm can be more or less exact according to the number of allowed subfunctions. Empirically we have found that the set of all cube cofactors of the target function are very good intermediate functions. The intuition behind this is that by setting variables to zero and one in an optimized factored form it is possible to obtain sub-expressions of the formula. However, the cube cofactors alone are not sufficient to obtain an exact solution, and for some functions this set of allowed sub-functions is not even able to produce a solution at all. So, several effort levels have been implemented in the algorithm. These levels are described in the following. (1) Effort low: only the cube cofactors of the target function are included in the allowed sub-functions. (2) Effort feasible: in addition to the cube cofactors, the product of the cube cofactors and each of the variables set in the cube cofactors are also added. (3) Effort medium: all the functions resulting from products and sums of the cube cofactors are also allowed. (4) Effort high: the products and sums of all the functions in effort medium are also allowed. (5) Effort exact: all functions allowed. It has been empirically observed that for all functions whose efforts high and exact completed the result was not superior to effort medium. That strongly suggests that effort medium is sufficient to produce exact results. 3.2 Already-Looked Hash Table The already-looked hash table stores the functions already introduced previously. These functions have been produced with fewer or equal number of literals and do not need to be introduced twice. This process speeds-up execution time. 3.3 Larger and Smaller Functions Two Boolean functions can be compared and classified according their relative order, which can be: equal, larger, smaller and notcomparable. It is said that f1 is larger (smaller) than f2 when the on-set of f1 is a superset (subset) of the on-set of f2. Two functions are equal when they have equal on-set and off-set. They are not-comparable when the on-sets are not contained by each other. Larger and smaller sub-functions with respect to the target function are always accepted as they are useful for composing products and sums representing the target function [10]. Larger and smaller functions are kept in separate buckets and checked for primality before insertion. Notice that don t cares can be treated by terminating the algorithm when a function in between the on-set and the off-set of the target unspecified function is found. 3.4 Unate Variables Unateness and binateness can be detected at functional level, before any equation is produced. This can be verified by comparing the positive and negative cofactors of the function with respect to each variable. A function f is positive (negative) unate on variable x when f (x) is larger (smaller) than f (x). The function does not depend on x if f ( x) = f ( x). When f (x) and f (x) are not comparable, the function is binate on x. Lemma 1: If a variable is positive (negative) unate, any factored form containing a negative (positive) literal of that variable is not optimized. By using Lemma 1, only the literals with the right polarity are created by the function create_literals. This reduces the execution time by avoiding the creation of non-optimal factored forms containing the literals in the wrong polarity. 3.5 Symmetric Variables Two variables are symmetric when they can be interchanged without modifying the logic function. Example 4: Consider Equation (7). Exchanging variables a and b results in the same function. So they are symmetric. Exchanging variables a and c does not yield the same function. So they are not symmetric. f = a b + c = b a + c c b + a (7) Symmetry can also be detected at functional level, before any equation is produced. This can be detected functionally, by comparing the cube cofactors of the two variables involved. Two variables x and y are symmetric in function f when

4 f ( x y) = f ( x y). Two variables x and y are anti-symmetric in function f when f ( x y) = f ( x y). The fact of two variables being anti-symmetric means that the function does not change if the variables are inverted and exchanged to each other. The information about symmetry and anti-symmetry can be used to greatly reduce the number of cube cofactors needed as allowed sub-functions. Basically, instead of computing all cube cofactors of the function, the symmetric and anti-symmetric variables are grouped and the cube cofactors are computed by first setting all the variables inside a group before picking a variable from another group. Example 5: Consider a function f of variables {a, b, c, d}. Suppose that a is symmetric to c and that b is anti-symmetric to d. Then the set {a, b, c, d} is divided into two sub-sets such that {(a, c), (b, d)} and the subsets impose an order for computing the cube cofactors. This way, the cofactors f ( a b) and f ( a d) are not considered, while f ( a c b) and f ( a c) are allowed. The information about unateness, derived as described in Section 3.4, can be used to detect variables that are not symmetric, as to be symmetric, variables must have the same polarity properties. Example 6: Recall Example 1; no variable in Example 1 can be symmetric to each other, as their unate/binate (polarity) properties are different. 3.6 Read-Once Formulas This section proves that effort low produces exact results when the target function can be represented through a read-once formula. Theorem 1: If a function f can be represented through a read once formula, all the partial sub-equations correspond to functions that are cube cofactors of f. Proof: As each variable appears as a single literal, they can all be independently set to non-controlling values, which makes only one literal disappear at a time. This way, any sub-equation (or sub-set) of f can be obtained by assigning non-controlling values to the variables to be eliminated. This is the definition of cube cofactors. Corollary: If the target function in our algorithm is a read-once function, the exact solution is obtained with effort low, as the cube cofactors are sufficient to obtain the read-once formula. Example 7: Consider Equation (8). Any sub-equation corresponds to a cube cofactor. For instance, f ( e f ) = ( a b + c d) and f ( c e f ) = ( a b). f = ( a b + c d) e + f (8) Notice that, for computing the cube cofactors, the read-once expression is not necessary. This can be made at functional level, before starting to compute the read-once equation. 3.7 A Complete Example In this section, we provide a complete example for the algorithm, discussing how the aspects described before are taken into account in the execution of the method. In our example we consider that the pairs {functionality, implementation} are described as {bit_vector, string}. Example 8: Find a minimum implementation for Boolean function f represented by the bit vector Consider it depends on three variables a, b, c, represented by bit vectors a= , b= and c= First step is to compute the allowed sub-functions. This step first computes the unateness and symmetry information for variables. Variable a is binate, as f (a) = and f (a) = are of non-comparable order. Variable b is positive unate, as f (b) = is larger than f (b) = Variable c is negative unate, as f (c) = is smaller than f (c) = No variable is symmetric, so symmetry information is not used to reduce the computation of cube cofactors. The computation of the cube cofactors will result in eight different non constant functions: f (a) = , f (a) = , f (b) = , f (b) = , f (c) = , f (c) = , f ( b c) = , f ( b c) = It is important to make two observations: (1) the total number of cube cofactors is greatly reduced since some cube cofactors are equal and some are constant; and (2) the list of cube cofactors already contains the literals in the right polarities. At this point, depending on the effort level, combinations could be done between every pair of allowed sub-functions. The effort medium would perform all the ands and ors of the allowed subfunctions resulting from cube cofactors. The effort high would compute all the and and or operations of the allowed subfunctions in effort medium. Suppose that for this example effort low is adopted. Then the set of eight non-constant cube cofactors listed above corresponds to the set of allowed sub-functions. Next step is the creation of the representations of the literals. This will create the following {bit_vector, string} pairs and insert them in the bucket for the 1-literal formulas: { , a}, { ,!a}, { , b} and { ,!c}. Once the 1-literal bucket is filled, the combination part starts, by producing the 2-literal combinations: { , (a)+(!c)}, { , (!a)*(!c)}, { , (a)*(b)} and { , (!a)+(b)}. Other 2-literal combinations are produced and not accepted, as they are not in the allowed sub-function hash table or they have already been produced with fewer literals. No 3-literal combination is accepted. The 4-literal combinations produce two minimum solutions: { , ((a)*(b))+((!a)*(!c))} and { , ((!a)+(b))*((a)+(!c))}. Both are accepted as they are equal to the target function. 4. RESULTS This section discusses the results of the proposed method. Table 3 presents the resulting equations from the method. The first column presents the numbers to identify the equations. The second column presents the references from which the equations were obtained. The third column presents the factored forms resulting from the method presented here. Notice that minimum forms were obtained for all equations; and the resulting minimum forms are the ones shown in the table. The fourth and fifth columns show the execution time (in seconds) for effort low to

5 obtain one (EL1S) or six (EL6S) solutions. The effort low did not find minimum solutions for all equations. In four cases, no solution was found. These are Equations (9), (14), (23) and (24), which are marked with a NF for low effort. In one case, a nonoptimal solution was found (with 18 literals instead of the minimum 14). This is Equation (15); which is indicated with a NO label. The sixth and seventh columns show the execution time (in seconds) for effort medium. The execution times are larger, but this effort level is able to produce minimum factored forms for all functions. Section 3.6 proved that effort low would produce exact results for functions in which a read-once formula exists. This can be verified in Table 3. However, several equations which are not read-once formulas were also found. Consider Equation (10), where variables b and d contribute with two literals each: f = b d + ( d + b c) a. This version of the equation is found only with effort medium, because the sub-expression d + b c is not a cube cofactor of the function. However, the equivalent equation f = a b c + d ( a + b) is obtained with effort low as it is composed of two cube cofactors which are read-once: f ( d) = a b c and f ( c) = d ( a + b). Notice that the effort level medium exploits a larger space of solutions, as the sums and the products of the cube cofactors are inserted in the hash table of allowed sub-functions. Before considering the execution time of the approach proposed here, it is necessary to consider some details of the most relevant prior approaches [11, 19]. The Xfactor [11] algorithm runs in the order of milliseconds. However, it starts from and already existing SOP and according to the authors (see [8]) the algorithm requires a pre-processing that can be exponential in the size of the original input if a BDD or truth table is used instead. The execution times reported for the proposed algorithm include reading a file on disk, constructing the BDD, applying the algorithm and rewriting the results to disk. Thus, the execution time is of the same order, but the fact that we start from a BDD makes the proposed algorithm very interesting from an execution time point-of-view. Additionally, the method introduced here has the advantages already presented in Table 1, including a much better control of the characteristics of the final factored form. The Exact_Factor [19] algorithm starts from a functional description (BDD or truth table). However, the execution times are of the order of seconds, instead of milliseconds (for a similar machine). For instance, Exact_Factor reports an execution time of 466.3sec to solve Equation (24), while the proposed algorithm takes only 3.172sec. This is a speed-up of two orders of magnitude. The worst case reported in Table 3 is 85sec for Equation (15), with 14 literals, and Exact_Factor reports equations up to a maximum of 12 literals, claiming a worst case time of 10 minutes. Table 3. Execution times for factorization examples from previous works (time unity is seconds). Eq# Source Equation Time EL1S Time EL6S Time EM1S Time EM6S (9) [10] f = c a b + c a + b) (NF) (NF) (10) [10] f = b d + ( d + b c) a (11) [10] f = ( e + c) a + b) e + c + b + d) (12) [10] f = ( b d) + ( d + b c) a (13) [3] f = ( e + f + g) a + ( b c + d ))) (14) [3] f = a b + c d + ( b + d) a + c) (NF) 0.027(NF) (15) [3] o = b f + g d + a) + e c + a + b) + ( c + d) a + b + f ) (NO) (NO) (16) [3] f = e + ( a + b) c + d) (17) [3,11,16] o = ( c + d + a b) f + g + a e) (18) [3] f = ( a + b) c + a e) (19) [3] f = a b + c a + e) (20) [3] f = a e + ( a + d ) c + a b) (21) [11] f = ( d + e) g + h) a + b + e h + c)) (22) [11] f = ( e + a d) ( c + a b) (23) [11] o = ( a b + c d + e f ) a b + c d + e f ) (NF) (NF) (24) [19] o = ( e + a b + c d) a b + c d + e f ) (NF) (NF)

6 Table 4. Example of multi-objective factorization. Eq# Equation L S P Time (sec) (25) o = ( f e) + (( d + c) ( b + a) (( d c) + ( b a)) + (( f + e) (( d c) + (( b a) + (( d + c) ( b + a)))))) (26) o = ( f e )+((( d c b+a ))+(b a d +c )))+(( f +e ) ( d c )+( b a )+( d +c ) b+a )))) (27) o = ((( e + f ) (( e f ) + ( c d))) + ( a + b)) (( e + f + ( a b) + ( c d )) ((( e + f ) (( e f ) + ( a b))) + ( c + d))) Table 4 presents an example of multi-objective factorization. Equation (25) is the minimum literal count equation obtained when only literals are minimized. Equation (26) is obtained when the algorithm is required to minimize literals and obtain the minimum possible number of switches in series (which is 3). This minimum number is pre-computed according [14] and used as a parameter by the algorithm. Sub-functions not respecting the lower bounds in [14] are discarded. Equation (27) is obtained when the algorithm is required to minimize literals and obtain the minimum possible number of switches in parallel (which is 4). In this case the number of literals is increased by two (from 20 to 22). Notice that, as the data of sub-functions is always known during the execution of the algorithm, the algorithm proposed can be modified to accept only sub-functions with certain characteristics. The approach can consider any secondary criteria that can be computed in a monotonically increasing way, so that the solutions are generated in the right order. Additionally, the new costs must be easily obtainable for a combination of the subfunctions, so that the method is fast. In the case of literals, this can be done by simple addition. These requirements allow not only to control the number of series and parallel switches, but also logic depth (per input variable) and sub-function support size. These features will be implemented as future work. Table 5 shows the number of literals for some functions where our algorithm produces better literal count than quick_factor and good_factor. Table 5. Number of literals of the proposed approach compared to quick_factor(qf) and good_factor(gf). Eq# QF [15] GF [15] This paper (17) (18) (20) (21) (22) (23) (24) (25) CONCLUSIONS This paper has proposed the first multi-objective exact factoring algorithm. The algorithm is based on a new synthesis paradigm (functional composition) and it is very fast compared to other approaches, providing speedups of two orders of magnitude for exact results. This characteristic makes it a useful piece for approaches based on restructuring small portions of logic, like [13] and [17]. The algorithm has the ability to take secondary criteria (like series and parallel number of transistors, or support size) into account, while generating several alternative solutions. These are unique characteristics which are very useful in the context of local optimizations. 6. REFERENCES [1] Benedetti. M skizzo: a suite to evaluate and certify QBFs. 20th CADE, LNCS vol. 3632, [2] Brand, D Verification of large synthesized designs. ICCAD 93. IEEE, Los Alamitos, CA, [3] Brayton, R. K Factoring logic functions. IBM J. Res. Dev. 31, 2 (Mar. 1987), [4] Chatterjee, S., Mishchenko, A., and Brayton, R Factor cuts. ICCAD '06. ACM, New York, NY, [5] Cong, J., Wu, C., and Ding, Y Cut ranking and pruning: enabling a general and efficient FPGA mapping solution. FPGA '99. ACM, New York, NY, [6] Golumbic, M. C. and Mintz, A Factoring logic functions using graph partitioning. ICCAD '99. IEEE Press, Piscataway, NJ, [7] Golumbic, M. C., Mintz, A., and Rotics, U Factoring and recognition of read-once functions using cographs and normality. DAC '01. ACM, New York, NY, [8] Golumbic, M. C., Mintz, A., and Rotics, U An improvement on the complexity of factoring read-once Boolean functions. Discrete Appl. Math. 156, 10 (May. 2008), [9] Hachtel, G. D. and Somenzi, F Logic Synthesis and Verification Algorithms. 1st. Kluwer Academic Publishers. [10] Lawler, E. L An Approach to Multilevel Boolean Minimization. J. ACM 11, 3 (Jul. 1964), [11] Mintz, A. and Golumbic, M. C Factoring boolean functions using graph partitioning. Discrete Appl. Math. 149, 1-3 (Aug. 2005),

7 [12] Mishchenko, A., Chatterjee, S., and Brayton, R DAGaware AIG rewriting a fresh look at combinational logic synthesis. DAC '06. ACM, New York, NY, [13] Mishchenko, A. Brayton, R. Chatterjee, S Boolean factoring and decomposition of logic networks. ICCAD IEEE, pp [14] Schneider, F. R., Ribas, R. P., Sapatnekar, S. S., and Reis, A. I Exact lower bound for the number of switches in series to implement a combinational logic cell. ICCD. IEEE Computer Society, Washington, DC, [15] Sentovich, E., Singh, K., Lavagno, L., Moon, C., Murgai, R., Saldanha, A., Savoj, H., Stephan, P., Brayton, R., and Sangiovanni-Vincentelli, A SIS: A system for sequential circuit synthesis. Tech. Rep. UCB/ERL M92/41. UC Berkeley, Berkeley. [16] Stanion, T.; Sechen, C Boolean division and factorization using binary decision diagrams," IEEE TCAD, vol.13, no.9, pp [17] Werber, J., Rautenbach, D., and Szegedy, C Timing optimization by restructuring long combinatorial paths. ICCAD'06. IEEE Press, Piscataway, NJ, [18] Weste, N.H.E. and Harris, D Section 6.2.1: Static CMOS. In: CMOS VLSI design, Addison Wesley, [19] Yoshida, H.; Ikeda, M.; Asada, K., Exact Minimum Logic Factoring via Quantified Boolean Satisfiability. ICECS '

Functional Composition Paradigm and Applications

Functional Composition Paradigm and Applications Functional Composition Paradigm and Applications Mayler G. A. Martins 1, Vinicius Callegaro 2, Lucas Machado 1, Renato P. Ribas 1,2, André I. Reis 1,2 1 PGMICRO / 2 PPGC, Institute of Informatics, UFRGS,

More information

Karnaugh Maps & Combinational Logic Design. ECE 152A Winter 2012

Karnaugh Maps & Combinational Logic Design. ECE 152A Winter 2012 Karnaugh Maps & Combinational Logic Design ECE 52A Winter 22 Reading Assignment Brown and Vranesic 4 Optimized Implementation of Logic Functions 4. Karnaugh Map 4.2 Strategy for Minimization 4.2. Terminology

More information

Boolean Algebra Part 1

Boolean Algebra Part 1 Boolean Algebra Part 1 Page 1 Boolean Algebra Objectives Understand Basic Boolean Algebra Relate Boolean Algebra to Logic Networks Prove Laws using Truth Tables Understand and Use First Basic Theorems

More information

CSE140: Midterm 1 Solution and Rubric

CSE140: Midterm 1 Solution and Rubric CSE140: Midterm 1 Solution and Rubric April 23, 2014 1 Short Answers 1.1 True or (6pts) 1. A maxterm must include all input variables (1pt) True 2. A canonical product of sums is a product of minterms

More information

1. True or False? A voltage level in the range 0 to 2 volts is interpreted as a binary 1.

1. True or False? A voltage level in the range 0 to 2 volts is interpreted as a binary 1. File: chap04, Chapter 04 1. True or False? A voltage level in the range 0 to 2 volts is interpreted as a binary 1. 2. True or False? A gate is a device that accepts a single input signal and produces one

More information

A Dynamic Programming Approach for Generating N-ary Reflected Gray Code List

A Dynamic Programming Approach for Generating N-ary Reflected Gray Code List A Dynamic Programming Approach for Generating N-ary Reflected Gray Code List Mehmet Kurt 1, Can Atilgan 2, Murat Ersen Berberler 3 1 Izmir University, Department of Mathematics and Computer Science, Izmir

More information

Logic Synthesis in a Nutshell

Logic Synthesis in a Nutshell Logic Synthesis in a Nutshell Jie-Hong Roland Jiang National Taiwan University, Taipei, Taiwan Srinivas Devadas Massachusetts Institute of Technology, Cambridge, Massachusetts October 16, 2008 About This

More information

CSE140: Components and Design Techniques for Digital Systems

CSE140: Components and Design Techniques for Digital Systems CSE4: Components and Design Techniques for Digital Systems Tajana Simunic Rosing What we covered thus far: Number representations Logic gates Boolean algebra Introduction to CMOS HW#2 due, HW#3 assigned

More information

NEW adder cells are useful for designing larger circuits despite increase in transistor count by four per cell.

NEW adder cells are useful for designing larger circuits despite increase in transistor count by four per cell. CHAPTER 4 THE ADDER The adder is one of the most critical components of a processor, as it is used in the Arithmetic Logic Unit (ALU), in the floating-point unit and for address generation in case of cache

More information

Scheduling Home Health Care with Separating Benders Cuts in Decision Diagrams

Scheduling Home Health Care with Separating Benders Cuts in Decision Diagrams Scheduling Home Health Care with Separating Benders Cuts in Decision Diagrams André Ciré University of Toronto John Hooker Carnegie Mellon University INFORMS 2014 Home Health Care Home health care delivery

More information

C H A P T E R. Logic Circuits

C H A P T E R. Logic Circuits C H A P T E R Logic Circuits Many important functions are naturally computed with straight-line programs, programs without loops or branches. Such computations are conveniently described with circuits,

More information

(b) (b) f 1 = x 1 x 2 ( x 3 v x 4 )

(b) (b) f 1 = x 1 x 2 ( x 3 v x 4 ) On Bi-Decompositions of Logic Functions Tsutomu Sasao Department of Computer Science and Electronics Kyushu Institute of Technology Iizuka 820, Japan Jon T. Butler Department of Electrical and Computer

More information

Lecture 7: NP-Complete Problems

Lecture 7: NP-Complete Problems IAS/PCMI Summer Session 2000 Clay Mathematics Undergraduate Program Basic Course on Computational Complexity Lecture 7: NP-Complete Problems David Mix Barrington and Alexis Maciel July 25, 2000 1. Circuit

More information

The LCA Problem Revisited

The LCA Problem Revisited The LA Problem Revisited Michael A. Bender Martín Farach-olton SUNY Stony Brook Rutgers University May 16, 2000 Abstract We present a very simple algorithm for the Least ommon Ancestor problem. We thus

More information

Multi-layer Structure of Data Center Based on Steiner Triple System

Multi-layer Structure of Data Center Based on Steiner Triple System Journal of Computational Information Systems 9: 11 (2013) 4371 4378 Available at http://www.jofcis.com Multi-layer Structure of Data Center Based on Steiner Triple System Jianfei ZHANG 1, Zhiyi FANG 1,

More information

each college c i C has a capacity q i - the maximum number of students it will admit

each college c i C has a capacity q i - the maximum number of students it will admit n colleges in a set C, m applicants in a set A, where m is much larger than n. each college c i C has a capacity q i - the maximum number of students it will admit each college c i has a strict order i

More information

Why? A central concept in Computer Science. Algorithms are ubiquitous.

Why? A central concept in Computer Science. Algorithms are ubiquitous. Analysis of Algorithms: A Brief Introduction Why? A central concept in Computer Science. Algorithms are ubiquitous. Using the Internet (sending email, transferring files, use of search engines, online

More information

BOOLEAN ALGEBRA & LOGIC GATES

BOOLEAN ALGEBRA & LOGIC GATES BOOLEAN ALGEBRA & LOGIC GATES Logic gates are electronic circuits that can be used to implement the most elementary logic expressions, also known as Boolean expressions. The logic gate is the most basic

More information

December 4, 2013 MATH 171 BASIC LINEAR ALGEBRA B. KITCHENS

December 4, 2013 MATH 171 BASIC LINEAR ALGEBRA B. KITCHENS December 4, 2013 MATH 171 BASIC LINEAR ALGEBRA B KITCHENS The equation 1 Lines in two-dimensional space (1) 2x y = 3 describes a line in two-dimensional space The coefficients of x and y in the equation

More information

Formal Verification Problems in a Bigdata World: Towards a Mighty Synergy

Formal Verification Problems in a Bigdata World: Towards a Mighty Synergy Dept. of Computer Science Formal Verification Problems in a Bigdata World: Towards a Mighty Synergy Matteo Camilli matteo.camilli@unimi.it http://camilli.di.unimi.it ICSE 2014 Hyderabad, India June 3,

More information

CNFSAT: Predictive Models, Dimensional Reduction, and Phase Transition

CNFSAT: Predictive Models, Dimensional Reduction, and Phase Transition CNFSAT: Predictive Models, Dimensional Reduction, and Phase Transition Neil P. Slagle College of Computing Georgia Institute of Technology Atlanta, GA npslagle@gatech.edu Abstract CNFSAT embodies the P

More information

ON THE COMPLEXITY OF THE GAME OF SET. {kamalika,pbg,dratajcz,hoeteck}@cs.berkeley.edu

ON THE COMPLEXITY OF THE GAME OF SET. {kamalika,pbg,dratajcz,hoeteck}@cs.berkeley.edu ON THE COMPLEXITY OF THE GAME OF SET KAMALIKA CHAUDHURI, BRIGHTEN GODFREY, DAVID RATAJCZAK, AND HOETECK WEE {kamalika,pbg,dratajcz,hoeteck}@cs.berkeley.edu ABSTRACT. Set R is a card game played with a

More information

Integer Factorization using the Quadratic Sieve

Integer Factorization using the Quadratic Sieve Integer Factorization using the Quadratic Sieve Chad Seibert* Division of Science and Mathematics University of Minnesota, Morris Morris, MN 56567 seib0060@morris.umn.edu March 16, 2011 Abstract We give

More information

Digital Logic Design. Basics Combinational Circuits Sequential Circuits. Pu-Jen Cheng

Digital Logic Design. Basics Combinational Circuits Sequential Circuits. Pu-Jen Cheng Digital Logic Design Basics Combinational Circuits Sequential Circuits Pu-Jen Cheng Adapted from the slides prepared by S. Dandamudi for the book, Fundamentals of Computer Organization and Design. Introduction

More information

Solution of Linear Systems

Solution of Linear Systems Chapter 3 Solution of Linear Systems In this chapter we study algorithms for possibly the most commonly occurring problem in scientific computing, the solution of linear systems of equations. We start

More information

A Direct Numerical Method for Observability Analysis

A Direct Numerical Method for Observability Analysis IEEE TRANSACTIONS ON POWER SYSTEMS, VOL 15, NO 2, MAY 2000 625 A Direct Numerical Method for Observability Analysis Bei Gou and Ali Abur, Senior Member, IEEE Abstract This paper presents an algebraic method

More information

Distributed Dynamic Load Balancing for Iterative-Stencil Applications

Distributed Dynamic Load Balancing for Iterative-Stencil Applications Distributed Dynamic Load Balancing for Iterative-Stencil Applications G. Dethier 1, P. Marchot 2 and P.A. de Marneffe 1 1 EECS Department, University of Liege, Belgium 2 Chemical Engineering Department,

More information

Outline. NP-completeness. When is a problem easy? When is a problem hard? Today. Euler Circuits

Outline. NP-completeness. When is a problem easy? When is a problem hard? Today. Euler Circuits Outline NP-completeness Examples of Easy vs. Hard problems Euler circuit vs. Hamiltonian circuit Shortest Path vs. Longest Path 2-pairs sum vs. general Subset Sum Reducing one problem to another Clique

More information

Discuss the size of the instance for the minimum spanning tree problem.

Discuss the size of the instance for the minimum spanning tree problem. 3.1 Algorithm complexity The algorithms A, B are given. The former has complexity O(n 2 ), the latter O(2 n ), where n is the size of the instance. Let n A 0 be the size of the largest instance that can

More information

Cost Model: Work, Span and Parallelism. 1 The RAM model for sequential computation:

Cost Model: Work, Span and Parallelism. 1 The RAM model for sequential computation: CSE341T 08/31/2015 Lecture 3 Cost Model: Work, Span and Parallelism In this lecture, we will look at how one analyze a parallel program written using Cilk Plus. When we analyze the cost of an algorithm

More information

Static Program Transformations for Efficient Software Model Checking

Static Program Transformations for Efficient Software Model Checking Static Program Transformations for Efficient Software Model Checking Shobha Vasudevan Jacob Abraham The University of Texas at Austin Dependable Systems Large and complex systems Software faults are major

More information

Chapter 6: Episode discovery process

Chapter 6: Episode discovery process Chapter 6: Episode discovery process Algorithmic Methods of Data Mining, Fall 2005, Chapter 6: Episode discovery process 1 6. Episode discovery process The knowledge discovery process KDD process of analyzing

More information

Implementation Of Clock Gating Logic By Matching Factored Forms A.kirankumari 1, P.P. Nagaraja Rao 2

Implementation Of Clock Gating Logic By Matching Factored Forms A.kirankumari 1, P.P. Nagaraja Rao 2 www.ijecs.in International Journal Of Engineering And Computer Science ISSN:2319-7242 Volume 4 Issue 7 July 2015, Page No. 13585-13600 Implementation Of Clock Gating Logic By Matching Factored Forms A.kirankumari

More information

Notes from February 11

Notes from February 11 Notes from February 11 Math 130 Course web site: www.courses.fas.harvard.edu/5811 Two lemmas Before proving the theorem which was stated at the end of class on February 8, we begin with two lemmas. The

More information

! Solve problem to optimality. ! Solve problem in poly-time. ! Solve arbitrary instances of the problem. #-approximation algorithm.

! Solve problem to optimality. ! Solve problem in poly-time. ! Solve arbitrary instances of the problem. #-approximation algorithm. Approximation Algorithms 11 Approximation Algorithms Q Suppose I need to solve an NP-hard problem What should I do? A Theory says you're unlikely to find a poly-time algorithm Must sacrifice one of three

More information

Incremental Reduction of Binary Decision Diagrams

Incremental Reduction of Binary Decision Diagrams Abstract Incremental Reduction of Binar Decision Diagrams R. Jacobi, N. Calazans, C. Trullemans. Université de Louvain Laboratoire de Microélectronique - Place du Levant, 3 B1348 Louvain-la-Neuve Belgium

More information

The Traveling Beams Optical Solutions for Bounded NP-Complete Problems

The Traveling Beams Optical Solutions for Bounded NP-Complete Problems The Traveling Beams Optical Solutions for Bounded NP-Complete Problems Shlomi Dolev, Hen Fitoussi Abstract Architectures for optical processors designed to solve bounded instances of NP-Complete problems

More information

COMMUTATIVE RINGS. Definition: A domain is a commutative ring R that satisfies the cancellation law for multiplication:

COMMUTATIVE RINGS. Definition: A domain is a commutative ring R that satisfies the cancellation law for multiplication: COMMUTATIVE RINGS Definition: A commutative ring R is a set with two operations, addition and multiplication, such that: (i) R is an abelian group under addition; (ii) ab = ba for all a, b R (commutative

More information

Approximation Algorithms

Approximation Algorithms Approximation Algorithms or: How I Learned to Stop Worrying and Deal with NP-Completeness Ong Jit Sheng, Jonathan (A0073924B) March, 2012 Overview Key Results (I) General techniques: Greedy algorithms

More information

High Speed Gate Level Synchronous Full Adder Designs

High Speed Gate Level Synchronous Full Adder Designs High Speed Gate Level Synchronous Full Adder Designs PADMANABHAN BALASUBRAMANIAN and NIKOS E. MASTORAKIS School of Computer Science, The University of Manchester, Oxford Road, Manchester M13 9PL, UNITED

More information

Sorting revisited. Build the binary search tree: O(n^2) Traverse the binary tree: O(n) Total: O(n^2) + O(n) = O(n^2)

Sorting revisited. Build the binary search tree: O(n^2) Traverse the binary tree: O(n) Total: O(n^2) + O(n) = O(n^2) Sorting revisited How did we use a binary search tree to sort an array of elements? Tree Sort Algorithm Given: An array of elements to sort 1. Build a binary search tree out of the elements 2. Traverse

More information

One last point: we started off this book by introducing another famously hard search problem:

One last point: we started off this book by introducing another famously hard search problem: S. Dasgupta, C.H. Papadimitriou, and U.V. Vazirani 261 Factoring One last point: we started off this book by introducing another famously hard search problem: FACTORING, the task of finding all prime factors

More information

ISSN: 2319-5967 ISO 9001:2008 Certified International Journal of Engineering Science and Innovative Technology (IJESIT) Volume 2, Issue 3, May 2013

ISSN: 2319-5967 ISO 9001:2008 Certified International Journal of Engineering Science and Innovative Technology (IJESIT) Volume 2, Issue 3, May 2013 Transistor Level Fault Finding in VLSI Circuits using Genetic Algorithm Lalit A. Patel, Sarman K. Hadia CSPIT, CHARUSAT, Changa., CSPIT, CHARUSAT, Changa Abstract This paper presents, genetic based algorithm

More information

Memory Allocation Technique for Segregated Free List Based on Genetic Algorithm

Memory Allocation Technique for Segregated Free List Based on Genetic Algorithm Journal of Al-Nahrain University Vol.15 (2), June, 2012, pp.161-168 Science Memory Allocation Technique for Segregated Free List Based on Genetic Algorithm Manal F. Younis Computer Department, College

More information

New Hash Function Construction for Textual and Geometric Data Retrieval

New Hash Function Construction for Textual and Geometric Data Retrieval Latest Trends on Computers, Vol., pp.483-489, ISBN 978-96-474-3-4, ISSN 79-45, CSCC conference, Corfu, Greece, New Hash Function Construction for Textual and Geometric Data Retrieval Václav Skala, Jan

More information

3 Fat tree construction

3 Fat tree construction Level-wise Scheduling Algorithm for Fat Tree Interconnection Networks Zhu Ding Union Switch & Signal Raymond R. Hoare Concurrent EDA, LLC Rami Melhem University of Pittsburgh Alex K. Jones University of

More information

Introduction. The Quine-McCluskey Method Handout 5 January 21, 2016. CSEE E6861y Prof. Steven Nowick

Introduction. The Quine-McCluskey Method Handout 5 January 21, 2016. CSEE E6861y Prof. Steven Nowick CSEE E6861y Prof. Steven Nowick The Quine-McCluskey Method Handout 5 January 21, 2016 Introduction The Quine-McCluskey method is an exact algorithm which finds a minimum-cost sum-of-products implementation

More information

Classification - Examples

Classification - Examples Lecture 2 Scheduling 1 Classification - Examples 1 r j C max given: n jobs with processing times p 1,...,p n and release dates r 1,...,r n jobs have to be scheduled without preemption on one machine taking

More information

On the Relationship between Classes P and NP

On the Relationship between Classes P and NP Journal of Computer Science 8 (7): 1036-1040, 2012 ISSN 1549-3636 2012 Science Publications On the Relationship between Classes P and NP Anatoly D. Plotnikov Department of Computer Systems and Networks,

More information

MapReduce and Distributed Data Analysis. Sergei Vassilvitskii Google Research

MapReduce and Distributed Data Analysis. Sergei Vassilvitskii Google Research MapReduce and Distributed Data Analysis Google Research 1 Dealing With Massive Data 2 2 Dealing With Massive Data Polynomial Memory Sublinear RAM Sketches External Memory Property Testing 3 3 Dealing With

More information

Simplifying Logic Circuits with Karnaugh Maps

Simplifying Logic Circuits with Karnaugh Maps Simplifying Logic Circuits with Karnaugh Maps The circuit at the top right is the logic equivalent of the Boolean expression: f = abc + abc + abc Now, as we have seen, this expression can be simplified

More information

Survey On: Nearest Neighbour Search With Keywords In Spatial Databases

Survey On: Nearest Neighbour Search With Keywords In Spatial Databases Survey On: Nearest Neighbour Search With Keywords In Spatial Databases SayaliBorse 1, Prof. P. M. Chawan 2, Prof. VishwanathChikaraddi 3, Prof. Manish Jansari 4 P.G. Student, Dept. of Computer Engineering&

More information

FPGA Implementation of an Extended Binary GCD Algorithm for Systolic Reduction of Rational Numbers

FPGA Implementation of an Extended Binary GCD Algorithm for Systolic Reduction of Rational Numbers FPGA Implementation of an Extended Binary GCD Algorithm for Systolic Reduction of Rational Numbers Bogdan Mătăsaru and Tudor Jebelean RISC-Linz, A 4040 Linz, Austria email: bmatasar@risc.uni-linz.ac.at

More information

GameTime: A Toolkit for Timing Analysis of Software

GameTime: A Toolkit for Timing Analysis of Software GameTime: A Toolkit for Timing Analysis of Software Sanjit A. Seshia and Jonathan Kotker EECS Department, UC Berkeley {sseshia,jamhoot}@eecs.berkeley.edu Abstract. Timing analysis is a key step in the

More information

1. Nondeterministically guess a solution (called a certificate) 2. Check whether the solution solves the problem (called verification)

1. Nondeterministically guess a solution (called a certificate) 2. Check whether the solution solves the problem (called verification) Some N P problems Computer scientists have studied many N P problems, that is, problems that can be solved nondeterministically in polynomial time. Traditionally complexity question are studied as languages:

More information

KNOWLEDGE FACTORING USING NORMALIZATION THEORY

KNOWLEDGE FACTORING USING NORMALIZATION THEORY KNOWLEDGE FACTORING USING NORMALIZATION THEORY J. VANTHIENEN M. SNOECK Katholieke Universiteit Leuven Department of Applied Economic Sciences Dekenstraat 2, 3000 Leuven (Belgium) tel. (+32) 16 28 58 09

More information

MATH10040 Chapter 2: Prime and relatively prime numbers

MATH10040 Chapter 2: Prime and relatively prime numbers MATH10040 Chapter 2: Prime and relatively prime numbers Recall the basic definition: 1. Prime numbers Definition 1.1. Recall that a positive integer is said to be prime if it has precisely two positive

More information

A Second Course in Mathematics Concepts for Elementary Teachers: Theory, Problems, and Solutions

A Second Course in Mathematics Concepts for Elementary Teachers: Theory, Problems, and Solutions A Second Course in Mathematics Concepts for Elementary Teachers: Theory, Problems, and Solutions Marcel B. Finan Arkansas Tech University c All Rights Reserved First Draft February 8, 2006 1 Contents 25

More information

Topology-based network security

Topology-based network security Topology-based network security Tiit Pikma Supervised by Vitaly Skachek Research Seminar in Cryptography University of Tartu, Spring 2013 1 Introduction In both wired and wireless networks, there is the

More information

Short Programs for functions on Curves

Short Programs for functions on Curves Short Programs for functions on Curves Victor S. Miller Exploratory Computer Science IBM, Thomas J. Watson Research Center Yorktown Heights, NY 10598 May 6, 1986 Abstract The problem of deducing a function

More information

A Performance Study of Load Balancing Strategies for Approximate String Matching on an MPI Heterogeneous System Environment

A Performance Study of Load Balancing Strategies for Approximate String Matching on an MPI Heterogeneous System Environment A Performance Study of Load Balancing Strategies for Approximate String Matching on an MPI Heterogeneous System Environment Panagiotis D. Michailidis and Konstantinos G. Margaritis Parallel and Distributed

More information

Network (Tree) Topology Inference Based on Prüfer Sequence

Network (Tree) Topology Inference Based on Prüfer Sequence Network (Tree) Topology Inference Based on Prüfer Sequence C. Vanniarajan and Kamala Krithivasan Department of Computer Science and Engineering Indian Institute of Technology Madras Chennai 600036 vanniarajanc@hcl.in,

More information

THE DESIGN OF AN EFFICIENT LOAD BALANCING ALGORITHM EMPLOYING BLOCK DESIGN. Ilyong Chung and Yongeun Bae. 1. Introduction

THE DESIGN OF AN EFFICIENT LOAD BALANCING ALGORITHM EMPLOYING BLOCK DESIGN. Ilyong Chung and Yongeun Bae. 1. Introduction J. Appl. Math. & Computing Vol. 14(2004), No. 1-2, pp. 343-351 THE DESIGN OF AN EFFICIENT LOAD BALANCING ALGORITHM EMPLOYING BLOCK DESIGN Ilyong Chung and Yongeun Bae Abstract. In order to maintain load

More information

Measuring the Performance of an Agent

Measuring the Performance of an Agent 25 Measuring the Performance of an Agent The rational agent that we are aiming at should be successful in the task it is performing To assess the success we need to have a performance measure What is rational

More information

Performance of networks containing both MaxNet and SumNet links

Performance of networks containing both MaxNet and SumNet links Performance of networks containing both MaxNet and SumNet links Lachlan L. H. Andrew and Bartek P. Wydrowski Abstract Both MaxNet and SumNet are distributed congestion control architectures suitable for

More information

Towards Optimal Firewall Rule Ordering Utilizing Directed Acyclical Graphs

Towards Optimal Firewall Rule Ordering Utilizing Directed Acyclical Graphs Towards Optimal Firewall Rule Ordering Utilizing Directed Acyclical Graphs Ashish Tapdiya and Errin W. Fulp Department of Computer Science Wake Forest University Winston Salem, NC, USA nsg.cs.wfu.edu Email:

More information

CS 3719 (Theory of Computation and Algorithms) Lecture 4

CS 3719 (Theory of Computation and Algorithms) Lecture 4 CS 3719 (Theory of Computation and Algorithms) Lecture 4 Antonina Kolokolova January 18, 2012 1 Undecidable languages 1.1 Church-Turing thesis Let s recap how it all started. In 1990, Hilbert stated a

More information

EE 42/100 Lecture 24: Latches and Flip Flops. Rev B 4/21/2010 (2:04 PM) Prof. Ali M. Niknejad

EE 42/100 Lecture 24: Latches and Flip Flops. Rev B 4/21/2010 (2:04 PM) Prof. Ali M. Niknejad A. M. Niknejad University of California, Berkeley EE 100 / 42 Lecture 24 p. 1/20 EE 42/100 Lecture 24: Latches and Flip Flops ELECTRONICS Rev B 4/21/2010 (2:04 PM) Prof. Ali M. Niknejad University of California,

More information

Introduction to Logic in Computer Science: Autumn 2006

Introduction to Logic in Computer Science: Autumn 2006 Introduction to Logic in Computer Science: Autumn 2006 Ulle Endriss Institute for Logic, Language and Computation University of Amsterdam Ulle Endriss 1 Plan for Today Now that we have a basic understanding

More information

RN-Codings: New Insights and Some Applications

RN-Codings: New Insights and Some Applications RN-Codings: New Insights and Some Applications Abstract During any composite computation there is a constant need for rounding intermediate results before they can participate in further processing. Recently

More information

Single-Link Failure Detection in All-Optical Networks Using Monitoring Cycles and Paths

Single-Link Failure Detection in All-Optical Networks Using Monitoring Cycles and Paths Single-Link Failure Detection in All-Optical Networks Using Monitoring Cycles and Paths Satyajeet S. Ahuja, Srinivasan Ramasubramanian, and Marwan Krunz Department of ECE, University of Arizona, Tucson,

More information

Lecture 10: Regression Trees

Lecture 10: Regression Trees Lecture 10: Regression Trees 36-350: Data Mining October 11, 2006 Reading: Textbook, sections 5.2 and 10.5. The next three lectures are going to be about a particular kind of nonlinear predictive model,

More information

Introduction to Algorithms. Part 3: P, NP Hard Problems

Introduction to Algorithms. Part 3: P, NP Hard Problems Introduction to Algorithms Part 3: P, NP Hard Problems 1) Polynomial Time: P and NP 2) NP-Completeness 3) Dealing with Hard Problems 4) Lower Bounds 5) Books c Wayne Goddard, Clemson University, 2004 Chapter

More information

OHJ-2306 Introduction to Theoretical Computer Science, Fall 2012 8.11.2012

OHJ-2306 Introduction to Theoretical Computer Science, Fall 2012 8.11.2012 276 The P vs. NP problem is a major unsolved problem in computer science It is one of the seven Millennium Prize Problems selected by the Clay Mathematics Institute to carry a $ 1,000,000 prize for the

More information

A Non-Linear Schema Theorem for Genetic Algorithms

A Non-Linear Schema Theorem for Genetic Algorithms A Non-Linear Schema Theorem for Genetic Algorithms William A Greene Computer Science Department University of New Orleans New Orleans, LA 70148 bill@csunoedu 504-280-6755 Abstract We generalize Holland

More information

136 CHAPTER 4. INDUCTION, GRAPHS AND TREES

136 CHAPTER 4. INDUCTION, GRAPHS AND TREES 136 TER 4. INDUCTION, GRHS ND TREES 4.3 Graphs In this chapter we introduce a fundamental structural idea of discrete mathematics, that of a graph. Many situations in the applications of discrete mathematics

More information

Lecture 15 An Arithmetic Circuit Lowerbound and Flows in Graphs

Lecture 15 An Arithmetic Circuit Lowerbound and Flows in Graphs CSE599s: Extremal Combinatorics November 21, 2011 Lecture 15 An Arithmetic Circuit Lowerbound and Flows in Graphs Lecturer: Anup Rao 1 An Arithmetic Circuit Lower Bound An arithmetic circuit is just like

More information

International Journal of Information Technology, Modeling and Computing (IJITMC) Vol.1, No.3,August 2013

International Journal of Information Technology, Modeling and Computing (IJITMC) Vol.1, No.3,August 2013 FACTORING CRYPTOSYSTEM MODULI WHEN THE CO-FACTORS DIFFERENCE IS BOUNDED Omar Akchiche 1 and Omar Khadir 2 1,2 Laboratory of Mathematics, Cryptography and Mechanics, Fstm, University of Hassan II Mohammedia-Casablanca,

More information

Understanding Logic Design

Understanding Logic Design Understanding Logic Design ppendix of your Textbook does not have the needed background information. This document supplements it. When you write add DD R0, R1, R2, you imagine something like this: R1

More information

Unit 4.3 - Storage Structures 1. Storage Structures. Unit 4.3

Unit 4.3 - Storage Structures 1. Storage Structures. Unit 4.3 Storage Structures Unit 4.3 Unit 4.3 - Storage Structures 1 The Physical Store Storage Capacity Medium Transfer Rate Seek Time Main Memory 800 MB/s 500 MB Instant Hard Drive 10 MB/s 120 GB 10 ms CD-ROM

More information

Chapter. NP-Completeness. Contents

Chapter. NP-Completeness. Contents Chapter 13 NP-Completeness Contents 13.1 P and NP......................... 593 13.1.1 Defining the Complexity Classes P and NP...594 13.1.2 Some Interesting Problems in NP.......... 597 13.2 NP-Completeness....................

More information

Find-The-Number. 1 Find-The-Number With Comps

Find-The-Number. 1 Find-The-Number With Comps Find-The-Number 1 Find-The-Number With Comps Consider the following two-person game, which we call Find-The-Number with Comps. Player A (for answerer) has a number x between 1 and 1000. Player Q (for questioner)

More information

α = u v. In other words, Orthogonal Projection

α = u v. In other words, Orthogonal Projection Orthogonal Projection Given any nonzero vector v, it is possible to decompose an arbitrary vector u into a component that points in the direction of v and one that points in a direction orthogonal to v

More information

Testing LTL Formula Translation into Büchi Automata

Testing LTL Formula Translation into Büchi Automata Testing LTL Formula Translation into Büchi Automata Heikki Tauriainen and Keijo Heljanko Helsinki University of Technology, Laboratory for Theoretical Computer Science, P. O. Box 5400, FIN-02015 HUT, Finland

More information

Implementation and Design of AES S-Box on FPGA

Implementation and Design of AES S-Box on FPGA International Journal of Research in Engineering and Science (IJRES) ISSN (Online): 232-9364, ISSN (Print): 232-9356 Volume 3 Issue ǁ Jan. 25 ǁ PP.9-4 Implementation and Design of AES S-Box on FPGA Chandrasekhar

More information

Logic in Computer Science: Logic Gates

Logic in Computer Science: Logic Gates Logic in Computer Science: Logic Gates Lila Kari The University of Western Ontario Logic in Computer Science: Logic Gates CS2209, Applied Logic for Computer Science 1 / 49 Logic and bit operations Computers

More information

FPGA area allocation for parallel C applications

FPGA area allocation for parallel C applications 1 FPGA area allocation for parallel C applications Vlad-Mihai Sima, Elena Moscu Panainte, Koen Bertels Computer Engineering Faculty of Electrical Engineering, Mathematics and Computer Science Delft University

More information

Quotient Rings and Field Extensions

Quotient Rings and Field Extensions Chapter 5 Quotient Rings and Field Extensions In this chapter we describe a method for producing field extension of a given field. If F is a field, then a field extension is a field K that contains F.

More information

On the k-path cover problem for cacti

On the k-path cover problem for cacti On the k-path cover problem for cacti Zemin Jin and Xueliang Li Center for Combinatorics and LPMC Nankai University Tianjin 300071, P.R. China zeminjin@eyou.com, x.li@eyou.com Abstract In this paper we

More information

Faster SAT Solving with Better CNF Generation

Faster SAT Solving with Better CNF Generation Faster SAT Solving with Better CNF Generation Benjamin Chambers Panagiotis Manolios Northeastern University {bjchamb, pete}@ccs.neu.edu Daron Vroon General Theological Seminary of the Episcopal Church

More information

The Classes P and NP

The Classes P and NP The Classes P and NP We now shift gears slightly and restrict our attention to the examination of two families of problems which are very important to computer scientists. These families constitute the

More information

Hardware Assisted Virtualization

Hardware Assisted Virtualization Hardware Assisted Virtualization G. Lettieri 21 Oct. 2015 1 Introduction In the hardware-assisted virtualization technique we try to execute the instructions of the target machine directly on the host

More information

CHAPTER 3 Boolean Algebra and Digital Logic

CHAPTER 3 Boolean Algebra and Digital Logic CHAPTER 3 Boolean Algebra and Digital Logic 3.1 Introduction 121 3.2 Boolean Algebra 122 3.2.1 Boolean Expressions 123 3.2.2 Boolean Identities 124 3.2.3 Simplification of Boolean Expressions 126 3.2.4

More information

THE FUNDAMENTAL THEOREM OF ALGEBRA VIA PROPER MAPS

THE FUNDAMENTAL THEOREM OF ALGEBRA VIA PROPER MAPS THE FUNDAMENTAL THEOREM OF ALGEBRA VIA PROPER MAPS KEITH CONRAD 1. Introduction The Fundamental Theorem of Algebra says every nonconstant polynomial with complex coefficients can be factored into linear

More information

Bitmap Index as Effective Indexing for Low Cardinality Column in Data Warehouse

Bitmap Index as Effective Indexing for Low Cardinality Column in Data Warehouse Bitmap Index as Effective Indexing for Low Cardinality Column in Data Warehouse Zainab Qays Abdulhadi* * Ministry of Higher Education & Scientific Research Baghdad, Iraq Zhang Zuping Hamed Ibrahim Housien**

More information

Some Polynomial Theorems. John Kennedy Mathematics Department Santa Monica College 1900 Pico Blvd. Santa Monica, CA 90405 rkennedy@ix.netcom.

Some Polynomial Theorems. John Kennedy Mathematics Department Santa Monica College 1900 Pico Blvd. Santa Monica, CA 90405 rkennedy@ix.netcom. Some Polynomial Theorems by John Kennedy Mathematics Department Santa Monica College 1900 Pico Blvd. Santa Monica, CA 90405 rkennedy@ix.netcom.com This paper contains a collection of 31 theorems, lemmas,

More information

A Branch and Bound Algorithm for Solving the Binary Bi-level Linear Programming Problem

A Branch and Bound Algorithm for Solving the Binary Bi-level Linear Programming Problem A Branch and Bound Algorithm for Solving the Binary Bi-level Linear Programming Problem John Karlof and Peter Hocking Mathematics and Statistics Department University of North Carolina Wilmington Wilmington,

More information

Circuits 1 M H Miller

Circuits 1 M H Miller Introduction to Graph Theory Introduction These notes are primarily a digression to provide general background remarks. The subject is an efficient procedure for the determination of voltages and currents

More information

Analysis of an Artificial Hormone System (Extended abstract)

Analysis of an Artificial Hormone System (Extended abstract) c 2013. This is the author s version of the work. Personal use of this material is permitted. However, permission to reprint/republish this material for advertising or promotional purpose or for creating

More information

Small Maximal Independent Sets and Faster Exact Graph Coloring

Small Maximal Independent Sets and Faster Exact Graph Coloring Small Maximal Independent Sets and Faster Exact Graph Coloring David Eppstein Univ. of California, Irvine Dept. of Information and Computer Science The Exact Graph Coloring Problem: Given an undirected

More information