Fast Computation of Boolean Function Symmetries: Types, Algorithms, and Results, Slides of Computer Science

An overview of symmetries in boolean functions, their types, known detection algorithms, and a new algorithm for fast computation. Symmetries are important in logic synthesis, technology mapping, bdd minimization, sat solving, and verification. Classical two-variable symmetries, four basic types, and generalized symmetries. It also discusses the disadvantages of naive symmetry detection and introduces a new algorithm that overcomes these issues.

Typology: Slides

2012/2013

Uploaded on 03/27/2013

agarkar
agarkar 🇮🇳

4.3

(26)

372 documents

1 / 28

Toggle sidebar

This page cannot be seen from the preview

Don't miss anything!

bg1
Fast Computation of Symmetries
in Boolean Functions
Docsity.com
pf3
pf4
pf5
pf8
pf9
pfa
pfd
pfe
pff
pf12
pf13
pf14
pf15
pf16
pf17
pf18
pf19
pf1a
pf1b
pf1c

Partial preview of the text

Download Fast Computation of Boolean Function Symmetries: Types, Algorithms, and Results and more Slides Computer Science in PDF only on Docsity!

Fast Computation of Symmetries

in Boolean Functions

Overview

• Motivation

• Symmetry types

• Known symmetry detection algorithms

• The new algorithm

– Computational core

– Specialized operators

– Implementation

• Experimental results

• Conclusions

Symmetry Types

• Classical two-variable symmetry

• Four basic two-variable symmetry types

  • Edward/Hurst (1978)
  • Tsai/Marek-Sadowska (1996)

• Generalized two-variable symmetries

  • Research group at PSU (1998-2000)

• Generalized multiple-variable symmetries

  • Mohnke/Molitor/Malik (1995)
  • Kravets/Sakallah (2000)

Classical Two-Variable Symmetry

• The function F has a non-skew non-equivalence

symmetry in variables xi and xj iff

F( …xi …xj…) = F(…xj …xi … )

F 01 = F 10

Detecting Classical Symmetries

• Naïve approach: For each variable pair, derive the

cofactors and compare them

F 01 = F 10

Detecting Classical Symmetries

• A better approach: Start by detecting as many non-

symmetric pairs as possible

  • Idea 1: Check if and
  • Idea 2: Check if or depends on x (^) j ; and vice versa
  • Idea 3: Check if it is true that the cofactor sets for xi and
xj in the shared BDD are the same

| Fx i | = | Fxj | | Fx i | = | Fxj |

Fx i Fxi

D.Moller et al. “Detection of Symmetry of Boolean Functions Represented by ROBDDs”. ICCAD’

Disadvantages

• Requires multiple BDD traversals

• Uses naïve method to check a relatively large

number of cofactors

• Takes long time for functions that have no

symmetries at all

• Detects only one type of “classical” two-variable

symmetry

New Symmetry Detection Algorithm

  • Overcomes the above disadvantages
    • Requires only one traversal
    • Does not use the naïve checking method
    • Quickly detects functions w/o symmetries
    • Detects four basic symmetry types
  • Achieves significant speed-up
  • Can be extended to other symmetry types

Generic Recursive Algorithm

solution RecursiveProcedure ( problem P )
Step 1: If P is a trivial case, return the solution.
Step 2: Cofactor P w.r.t. a variable into P 0 and P 1.
Step 3: Get solutions, S 0 and S 1 , of P 0 and P 1.
Step 4: Derive S, the solution of P, from S 0 and S 1.
Step 5: Return S.

Symmetry Computation Core

symmgraph ComputeSymmetries ( function F , varset V ) { Step 1: if ( F is a constant function ) return CompleteGraph( V ); Step 2: x = Var( V ); ( F 0 , F 1 ) = Cofactors( F , x ); Step 3: RemainingVars = supp( F ) – x ; S 0 = ComputeSymmetries ( F 0 , RemainingVars ); if ( S 0 = ∅ ) S 1 = ∅; else S 1 = ComputeSymmetries ( F 1 , RemainingVars ); Step 4: Y = SymmetricVars( F 0 , F 1 , RemainingVars ); S 2 = x × Y; S 3 = CompleteGraph( V – supp( F ) ); S = ( S 0 ∩ S 1 ) ∪ S 2 ∪ S 3 ; Step 5: return R ; }

Computing Tuples

tuples Tuples ( varset V , int i ) /* Tuples are the set of subsets of i elements out of V */ { Step 1: if ( | V | < i ) return ∅; if ( i = 0 ) return {∅}; Step 2: x = Var( V ); Step 3: S 0 = Tuples ( Vx , i ); S 1 = Tuples ( Vx , i –1); Step 4: S = (add x to all subsets in S 1 ) ∪ S 0 ; Step 5: return S ; }

Experimental Results

benchmark statistics symm info runtime, s name ins outs |BDD| pairs ratio,% reading naïve slow fast [1] [2] [3] dalu 75 16 1402 982 7.83 0.55 0.92 0.16 0.07 32.5 0.60 - des 256 245 3238 1264 6.95 1.57 0.51 0.27 0.05 52.5 5.60 3. frg2 143 139 1907 1353 9.32 0.18 0.23 0.10 0.02 5.3 2.70 14. i10 257 224 49387 3746 3.39 20.48 285.42 3.89 1.63 - - - C1355 41 32 29578 0 0.00 18.64 61.45 52.96 0.02 - 2.90 - C1908 33 25 9519 248 2.23 1.13 4.71 2.08 0.06 1126.5 0.70 - C2670 233 140 4971 1547 4.78 2.84 25 .63 3.25 0.16 - 7.20 - C3540 50 22 24475 81 0.60 16.43 27.36 1.14 0.67 - 3.00 - C432 36 7 1226 0 0.00 0.11 0.86 0.04 0.01 23.2 - - C499 41 32 27472 0 0.00 3.59 57.03 51.18 0.02 - 4.00 - C5315 178 123 2492 521 0.83 1.38 2.79 0.84 0.13 636.7 2.10 - C755 2 207 108 10674 1879 1.31 8.14 42.77 13.19 0.32 - 9.30 - C880 60 26 17755 262 4.01 1.81 8.48 0.34 0.19 7.7 - - Total 82.35 528.16 130.48 3. Ratio, % 16.0 100.0 24.7 0.

Methods Compared

[1] D. Möller, J. Mohnke, and M. Weber. Detection of Symmetry
of Boolean Functions Represented by ROBDDs. Proc. Intl. Conf.
Computer Aided Design , pp. 680-684, November 1993.
[2] Ch. Scholl, D. Möller, P. Molitor, and R. Drechsler. BDD
Minimization Using Symmetries. IEEE Trans. CAD , 18(2), pp.
81-100, February 1999.
[3] C.-C. Tsai and M. Marek-Sadowska. Generalized Reed-Muller
Forms as a Tool to Detect Symmetries. IEEE Trans. Computers ,
C-45(1), pp. 33-40, Jan1996.

Conclusions

• Defined two-variable symmetries

• Reviews the known algorithms

• Presented the new algorithm

• Showed the new algorithm is at least 10 times faster

than the known algorithms