Factoring Boolean functions using graph partitioning

  • Authors:
  • Aviad Mintz;Martin Charles Golumbic

  • Affiliations:
  • Department of Computer Science, Caesarea Rothschild Institute of Computer Science, University of Haifa, Haifa 31905, Israel;Department of Computer Science, Caesarea Rothschild Institute of Computer Science, University of Haifa, Haifa 31905, Israel

  • Venue:
  • Discrete Applied Mathematics - Special issue: Boolean and pseudo-boolean funtions
  • Year:
  • 2005

Quantified Score

Hi-index 0.00

Visualization

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.