findPrimes {QCA} | R Documentation |
It is a general rule that all prime implicants can be found in the 3^k space, understood as all possible combinations of values in base 3, each variable having three levels: 0, 1 and 2 (Dusa, 2007, 2007a). There is a finite number of prime implicants for any combination of causal conditions, equal to 2^k - 1, where k is the number of causal conditions. Counting out the input combination itself, the actual number is 2^k - 2. This function computes all possible unique prime implicants for a specific set of combinations (either to explain or to exclude)
findPrimes(noflevels, input.combs)
noflevels |
a vector containing the number of levels for each causal condition plus 1 (because all prime implicants are to be found in the higher matrix) |
input.combs |
a matrix with combinations of causal conditions or a vector of line numbers from the same matrix |
a vector with the line numbers of all possible prime implicants in the 3^k space
Adrian Dusa
University of Bucharest, Faculty of Sociology and Social Work
dusa.adrian@unibuc.ro
Dusa, Adrian (2007) A mathematical approach to the boolean minimization problem, available on http://www.compasss.org/files/WPfiles/Dusa2007.pdf
Dusa, Adrian (2007a) Enhancing Quine-McCluskey, http://www.compasss.org/files/WPfiles/Dusa2007a.pdf
# all three conditions are binary, having two levels: 0 and 1 noflevels <- c(2, 2, 2) findPrimes(noflevels + 1, 14) # 2 4 5 10 11 13 14 findPrimes(noflevels + 1, 17) # 2 7 8 10 11 16 17 # both line numbers 14 and 17 findPrimes(noflevels + 1, c(14, 17)) # 2 4 5 7 8 10 11 13 14 16 17 # input.combs as a matrix (input.combs <- getRow(noflevels + 1, c(14, 17))) # [,1] [,2] [,3] #[1,] 1 1 1 #[2,] 1 2 1 findPrimes(noflevels + 1, input.combs) # 2 4 5 7 8 10 11 13 14 16 17