MathGroup Archive 2012

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

Search the Archive

Re: strange booleanconvert behavior?

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 :)

   "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.


  • 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?