On 11-Sep-16 18:19, Lincoln A Baxter wrote:
> Having followed this discussion (more or less, I have no clue what the
> MiuneMcCluskey alorithm is), but I like Logic::Minimise
>
> Lincoln
Quine-McCluskey is used to simplify boolean functions.  It's similar to
Karnaugh maps, which may be familiar to more folks.  But if you think of
it as an expression optimizer similar to what compilers do, you have the
idea.

The problem is that QM is NP-hard O(3**n/n).  For non-toy problems, one
partitions the problem manually and/or uses something else: e.g.
EXPRESSO (BSD licensed, could be incorporated into a Perl module).

Logic::Minimize works for me.  (I won't get into the British vs. U.S.
spelling argument.)

I don't see much point in a pure QM implementation, except as an
educational exercise for students. 

I also don't see much point in separating the algorithm from
Logic::Minimize; as an implementation detail, you could have
Logic::Minimize::Expresso and/or Logic::Minimize::QM as internal
namespaces - mostly to allow for any breakthroughs in algorithms.  The
inputs and outputs of any such algorithm are stable, so changing under
the covers should not be hard.  Simply wrapping an algorithm to create
the Logic::Minimizer namespace doesn't add any value; there's no
additional (meaningful) level of abstraction.


Timothe Litt
ACM Distinguished Engineer
--------------------------
This communication may not represent the ACM or my employer's views,
if any, on the matters discussed. 



Attachment: smime.p7s
Description: S/MIME Cryptographic Signature

Reply via email to