Algorithm-QuineMcCluskey
view release on metacpan or search on metacpan
lib/Algorithm/QuineMcCluskey.pm view on Meta::CPAN
}
#
# recurse_solve
#
# Recursive divide-and-conquer solver
#
# "To reduce the complexity of the prime implicant chart:
#
# 1. Select all the essential prime impliciants. If these PIs cover all
# minterms, stop; otherwise go the second step.
#
# 2. Apply Rules 1 and 2 to eliminate redundant rows and columns from
# the PI chart of non-essential PIs. When the chart is thus reduced,
# some PIs will become essential (i.e., some columns will have a single
# 'x'. Go back to step 1."
#
# Introduction To Logic Design, by Sajjan G. Shiva, page 129.
#
sub recurse_solve
{
lib/Algorithm/QuineMcCluskey.pm view on Meta::CPAN
#
##### recurse_solve() Primes after loop
##### primes: "\n" . chart(\%primes, $self->width)
#
my($term, @ta) = covered_least(\%primes);
#
##### Least Covered term: $term
##### Covered by: @ta
#
# Make a copy of the section of the prime implicants
# table that don't cover that term.
#
my %r = map {
$_ => [ grep { $_ ne $term } @{ $primes{$_} } ]
} keys %primes;
#
# For each such cover, recursively solve the table with that column
# removed and add the result(s) to the covers table after adding
# back the removed term.
( run in 1.373 second using v1.01-cache-2.11-cpan-39bf76dae61 )