1. Introduction
The problem of two-level minimization of Boolean functions is usually solved for functions with less than 100 variables. This is due to two mutually dependent facts: larger circuits are not so common, and no minimization method for larger problems has been available so far. However, Boolean minimization is by no means limited to the area of switching circuit design, where it was first identified [8]. The new implementation technologies of digital circuits, e.g., multi-level custom design, FPGAs, and above all PLAs, require this minimization in some phase. Minimization problems with a large number of variables are encountered in many modern application areas like design of online real-time control systems, design of built-in self-test equipment for VLSI circuits, in the area of artificial intelligence, in software engineering, etc. These problems are mostly characterized by a limited number of input states for which the output value is determined (care states). On the other hand, the number of don't care states then reaches astronomical values, and the quality of a minimization method is thus determined by its ability to take advantage of their existence without enumerating them. An efficient minimization method must in addition be able to cope with the existence of a large number of prime implicants (PIs) of the given function, most of which are not needed for the minimum solution.