Hello, A few words on the questions you brought up: 1. The dpll algorithms use integer representations to speed up the solving process (hash checks go much faster as far as I recall). 2. Both boolean and integer representations exist in dpll.py because it started with boolean and went to integer later (mirroring the functionality). 3. dpll2.py contains most of the improvements done over the summer (variable selection heuristics, sentinals for unit propagation, etc). If you check the logic/inference.py module, you'll see that dpll2 is used by default: - https://github.com/sympy/sympy/blob/master/sympy/logic/inference.py#L64
Cheers, Christian On Mon, Jul 8, 2013 at 1:23 AM, Stephen Loo <[email protected]> wrote: > Ok, I will submit pull request tonight. And any FAQ/wiki about what is > "new assumptions"? > > Stephen > > > Aaron Meurer於 2013年7月8日星期一UTC+8上午11時50分28秒寫道: >> >> Hi. >> >> I don't know if there are many here who can answer your questions. I >> recommend reading the blog of Christian Muise, who wrote the module as part >> of his Google Summer of Code project (http://haz-tech.blogspot.com/**, >> read the posts from 2010). I have also CC'd him in this email. >> >> One thing I can tell you is that there are a lot of benchmarks in the >> logic module, so you can probably determine for yourself which is faster. >> In my experience, neither is particularly fast (or at least not as fast as >> a well-developed C solver like picosat). >> >> If you want to help out with the logic stuff in SymPy, that would be >> great. It is very important to our assumptions. See >> https://code.google.com/p/**sympy/issues/detail?id=3929<https://code.google.com/p/sympy/issues/detail?id=3929>for >> how I think we should be using logic in the new assumptions system. >> >> And by the way, here's a really easy issue that you could fix to get >> started: >> https://code.google.**com/p/sympy/issues/detail?id=**3856<https://code.google.com/p/sympy/issues/detail?id=3856> >> . >> >> Aaron Meurer >> >> >> On Sun, Jul 7, 2013 at 10:43 PM, Stephen Loo <[email protected]> wrote: >> >>> Hello, >>> >>> I am studying DPLL algorithm and reading source >>> sympy/logic/algorithms/dpll.**py, and have some questions. >>> >>> Why implement boolean and integer representation of same function in >>> this module? And why use integer representation version in public API? Is >>> dpll2.py same functionality and performance as dpll.py? The difference >>> between two module is function implementation and class implementation >>> only? >>> >>> Thanks, >>> Stephen >>> >>> >>> -- >>> You received this message because you are subscribed to the Google >>> Groups "sympy" group. >>> To unsubscribe from this group and stop receiving emails from it, send >>> an email to sympy+un...@**googlegroups.com. >>> To post to this group, send email to [email protected]. >>> >>> Visit this group at >>> http://groups.google.com/**group/sympy<http://groups.google.com/group/sympy> >>> . >>> For more options, visit >>> https://groups.google.com/**groups/opt_out<https://groups.google.com/groups/opt_out> >>> . >>> >>> >>> >> >> -- You received this message because you are subscribed to the Google Groups "sympy" group. To unsubscribe from this group and stop receiving emails from it, send an email to [email protected]. To post to this group, send email to [email protected]. Visit this group at http://groups.google.com/group/sympy. For more options, visit https://groups.google.com/groups/opt_out.
