Factoring Boolean functions using graph partitioning

Research output: Contribution to journalArticlepeer-review

Abstract

Factoring Boolean functions is one of the basic operations in algorithmic logic synthesis. Current algorithms for factoring Boolean functions are based on some kind of division (Boolean or algebraic). In this paper, we present an algorithm for factoring that uses graph partitioning rather than division. Our algorithm is recursive and operates on the function and on its dual, to obtain the better factored form. As a special class, which appears in the lower levels of the factoring process, we handle read-once functions separately, as a special purpose subroutine which is known to be optimal. Since obtaining an optimal (shortest length) factorization for an arbitrary Boolean function is an NP-hard problem, all practical algorithms for factoring are heuristic and provide a correct, logically equivalent formula, but not necessarily a minimal length solution. Our method has been implemented in the SIS environment, and an empirical evaluation indicates that we usually get significantly better factorizations than algebraic factoring and are quite competitive with Boolean factoring but with lower computation costs.

Original languageEnglish
Pages (from-to)131-153
Number of pages23
JournalDiscrete Applied Mathematics
Volume149
Issue number1-3
DOIs
StatePublished - 1 Aug 2005

Keywords

  • Factoring Boolean functions
  • Graph partitioning
  • Logic synthesis

ASJC Scopus subject areas

  • Discrete Mathematics and Combinatorics
  • Applied Mathematics

Fingerprint

Dive into the research topics of 'Factoring Boolean functions using graph partitioning'. Together they form a unique fingerprint.

Cite this