Mathematica 9 is now available
Services & Resources / Wolfram Forums / MathGroup Archive
-----

MathGroup Archive 2012

[Date Index] [Thread Index] [Author Index]

Search the Archive

Re: strange booleanconvert behavior?

  • To: mathgroup at smc.vnet.net
  • Subject: [mg127239] Re: strange booleanconvert behavior?
  • From: Peter Pein <petsie at dordos.net>
  • Date: Wed, 11 Jul 2012 02:16:42 -0400 (EDT)
  • Delivered-to: l-mathgroup@mail-archive0.wolfram.com
  • Delivered-to: mathgroup-newout@smc.vnet.net
  • Delivered-to: mathgroup-newsend@smc.vnet.net
  • References: <jtgbqo$49b$1@smc.vnet.net>

Am 10.07.2012 06:42, schrieb Francisco Gutierrez:
> Dear Group:
> Say I have the following expression:
> num1={{a,b,c,d},{a,b,c,e},{a,b,c,f},{a,b,c,g},{a,b,c,h},{a,b,c,i},{a,b,c,j},{a,b,c,k},{a,b,c,l},{a,b,c,m},{a,b,c,n}}
>
> I transform it into a logical expression:
> n=
> um2=Apply[Or,Apply[And,#]&/@num1]
>
> I want to simplify this to a CNF, and the obvious function to use is Boolean Convert. Suppose I apply it to NINE elements of num2:
> BooleanConvert[Take[num2,9],"CNF"]
> The output is
> a&&b&&c&&(d||e||f||g||h||i||j||k||l)
>
> It works perfectly well!
>
> However, if I apply BooleanConvert to the whole expression I get back a bunch of crap. Also if I apply it to 10 elements of num2.
> In sum, it appears that BooleanConvert only works well for 9 expressions or less. Tried this with other two examples, and found
> exactly the same result.
>
> All this in Mathematica 8
>
> Can somebody help me?
> Francisco
>

Hi Francisco,

using similar to your 'num2'
num2 = Or @@ Table[And[a, b, c, last],
   {last, ToExpression@CharacterRange["d", "z"]}]
I observed that FullSimplify works up to seventeen terms:

FullSimplify[Take[num2, 17]]

results in

a && b && c && (d || e || f || ... || t)

I've got no idea what the "ConversionMethodParameters" in the following 
input are but I multiplied suspicious values by 100 and it works :)

SetSystemOptions[
   "BooleanComputationOptions" ->
     {"ConversionMethodParameters" ->
       {1200, 1., 10000, False}}];
BooleanConvert[num2, "CNF"]

results in

a && b && c && (d || e || f || ... || z)

Any esoteric knowledge about the SystemOptions and how 
Experimental`SystemOptionsEditor[] works are welcome and highly appreciated.

Greetings,
Peter



  • Prev by Date: How to write code for Plotting Polar Coordinates in r and theta ?
  • Next by Date: Re: strange booleanconvert behavior?
  • Previous by thread: Re: strange booleanconvert behavior?
  • Next by thread: Re: strange booleanconvert behavior?