I have a boolean condition parsed like this: (a v b) ^ (c ^ d)...
with the elements on a list. Counting both variables, brackets and operators the list is around a thousand elements long. There are around 80 variables in the condition.
I have tried two different approaches but none of them work: If I use a truth table for solving the condition to true, I need in the worst case 2^80 iterations, which would need an insane amount of time to compute. The other approach consisted in converting the condition to Disjuntctive Normal Form and find a solution just for one operand. This method does work for smaller conditions, but for big ones the System runs out of memory because the result condition has millions and millions of elements.
Is there an effective technique for this kind of problem? Maybe using database for storing the elements, or converting the truth table in some kind of binary tree?
Thanks in advance,
Miguel