Thanks very much for the reply.

> Finally, for solving you should use a lexicographical term ordering:
>
> sage: R.<a111,a112,a121,a122,b111,b112,b211,b212,c111,c112> =
> BooleanPolynomialRing(order='lex')
> sage: I=(a111 * b111 * c111 + a112 * b112 * c112 - 1 , a111 * b211 * c111 +
> ....: a112 * b212 * c112 - 0 , a121 * b111 * c111 + a122 * b112 * c112 ,
> ....: a121 * b211 * c111 + a122 * b212 * c112 - 1)*R
>
> sage: I.groebner_basis()
> [a111 + b212, a112 + b211, a121 + b112, a122 + b111, c111 + 1, c112 + 1]
>
> Then, the Gröbner basis has a triangular shape and allows you to read the
> solution.
>
> The introduction of my Diplomarbeit describes this in more detail:
>
> http://bit.ly/B4zdThttp://sage.math.washington.edu/home/malb/thesis-1.0.pdf
>

Thanks, that's very helpful.

> > Also, I read back in April that there was a plan to implement
> > Faugere's F4 algorithm.
>
> There have been numerous attempts to implement F4 efficiently in the open-
> source world but non of them succeeded to satisfaction. However, PolyBoRi's
> SlimGB algorithm is heavily inspired by F4 and you can even use linear
> algebra. PolyBoRi is used behind the scene when you construct a
> BooleanPolynomialRing.
>

The problem in my case is really one of scale. I have put a larger
example at the bottom of this message.  When I try to find the
groebner basis in sage 4.1 (which seems to use polybori-0.5rc.p8) the
memory usage goes over 1.6GB and then sage crashes.  It is possible
that it just isn't realistic to solve it using Groebner Bases.
However, I should say that when reformulated as a SAT solving problem,
the standard off the shelf minisat 2.0 code can solve it in 0.04
seconds.  This is despite the fact that minisat only takes CNF as the
input which means that all the structure of the problem has been
removed before it sees it.

Raphael

--- Larger example that crashes sage/polybori but which can be solved
instantly by minisat ---

R.<a111,a112,a113,a114,a115,a116,a117,a121,a122,a123,a124,a125,a126,a127,a211,a212,a213,a214,a215,a216,a217,a221,a222,a223,a224,a225,a226,a227,b111,b112,b113,b114,b115,b116,b117,b121,b122,b123,b124,b125,b126,b127,b211,b212,b213,b214,b215,b216,b217,b221,b222,b223,b224,b225,b226,b227,c111,c112,c113,c114,c115,c116,c117,c121,c122,c123,c124,c125,c126,c127,c211,c212,c213,c214,c215,c216,c217,c221,c222,c223,c224,c225,c226,c227>
= BooleanPolynomialRing(order='lex')

I = ( a111 * b111 * c111 + a112 * b112 * c112 + a113 * b113 * c113 +
a114 * b114 * c114 + a115 * b115 * c115 + a116 * b116 * c116 + a117 *
b117 * c117 -1, a111 * b111 * c121 + a112 * b112 * c122 + a113 * b113
* c123 + a114 * b114 * c124 + a115 * b115 * c125 + a116 * b116 * c126
+ a117 * b117 * c127 , a111 * b111 * c211 + a112 * b112 * c212 + a113
* b113 * c213 + a114 * b114 * c214 + a115 * b115 * c215 + a116 * b116
* c216 + a117 * b117 * c217 , a111 * b111 * c221 + a112 * b112 * c222
+ a113 * b113 * c223 + a114 * b114 * c224 + a115 * b115 * c225 + a116
* b116 * c226 + a117 * b117 * c227 , a111 * b121 * c111 + a112 * b122
* c112 + a113 * b123 * c113 + a114 * b124 * c114 + a115 * b125 * c115
+ a116 * b126 * c116 + a117 * b127 * c117 , a111 * b121 * c121 + a112
* b122 * c122 + a113 * b123 * c123 + a114 * b124 * c124 + a115 * b125
* c125 + a116 * b126 * c126 + a117 * b127 * c127 , a111 * b121 * c211
+ a112 * b122 * c212 + a113 * b123 * c213 + a114 * b124 * c214 + a115
* b125 * c215 + a116 * b126 * c216 + a117 * b127 * c217 -1, a111 *
b121 * c221 + a112 * b122 * c222 + a113 * b123 * c223 + a114 * b124 *
c224 + a115 * b125 * c225 + a116 * b126 * c226 + a117 * b127 * c227 ,
a111 * b211 * c111 + a112 * b212 * c112 + a113 * b213 * c113 + a114 *
b214 * c114 + a115 * b215 * c115 + a116 * b216 * c116 + a117 * b217 *
c117 , a111 * b211 * c121 + a112 * b212 * c122 + a113 * b213 * c123 +
a114 * b214 * c124 + a115 * b215 * c125 + a116 * b216 * c126 + a117 *
b217 * c127 , a111 * b211 * c211 + a112 * b212 * c212 + a113 * b213 *
c213 + a114 * b214 * c214 + a115 * b215 * c215 + a116 * b216 * c216 +
a117 * b217 * c217 , a111 * b211 * c221 + a112 * b212 * c222 + a113 *
b213 * c223 + a114 * b214 * c224 + a115 * b215 * c225 + a116 * b216 *
c226 + a117 * b217 * c227 , a111 * b221 * c111 + a112 * b222 * c112 +
a113 * b223 * c113 + a114 * b224 * c114 + a115 * b225 * c115 + a116 *
b226 * c116 + a117 * b227 * c117 , a111 * b221 * c121 + a112 * b222 *
c122 + a113 * b223 * c123 + a114 * b224 * c124 + a115 * b225 * c125 +
a116 * b226 * c126 + a117 * b227 * c127 , a111 * b221 * c211 + a112 *
b222 * c212 + a113 * b223 * c213 + a114 * b224 * c214 + a115 * b225 *
c215 + a116 * b226 * c216 + a117 * b227 * c217 , a111 * b221 * c221 +
a112 * b222 * c222 + a113 * b223 * c223 + a114 * b224 * c224 + a115 *
b225 * c225 + a116 * b226 * c226 + a117 * b227 * c227 , a121 * b111 *
c111 + a122 * b112 * c112 + a123 * b113 * c113 + a124 * b114 * c114 +
a125 * b115 * c115 + a126 * b116 * c116 + a127 * b117 * c117 , a121 *
b111 * c121 + a122 * b112 * c122 + a123 * b113 * c123 + a124 * b114 *
c124 + a125 * b115 * c125 + a126 * b116 * c126 + a127 * b117 * c127 ,
a121 * b111 * c211 + a122 * b112 * c212 + a123 * b113 * c213 + a124 *
b114 * c214 + a125 * b115 * c215 + a126 * b116 * c216 + a127 * b117 *
c217 , a121 * b111 * c221 + a122 * b112 * c222 + a123 * b113 * c223 +
a124 * b114 * c224 + a125 * b115 * c225 + a126 * b116 * c226 + a127 *
b117 * c227 , a121 * b121 * c111 + a122 * b122 * c112 + a123 * b123 *
c113 + a124 * b124 * c114 + a125 * b125 * c115 + a126 * b126 * c116 +
a127 * b127 * c117 , a121 * b121 * c121 + a122 * b122 * c122 + a123 *
b123 * c123 + a124 * b124 * c124 + a125 * b125 * c125 + a126 * b126 *
c126 + a127 * b127 * c127 , a121 * b121 * c211 + a122 * b122 * c212 +
a123 * b123 * c213 + a124 * b124 * c214 + a125 * b125 * c215 + a126 *
b126 * c216 + a127 * b127 * c217 , a121 * b121 * c221 + a122 * b122 *
c222 + a123 * b123 * c223 + a124 * b124 * c224 + a125 * b125 * c225 +
a126 * b126 * c226 + a127 * b127 * c227 , a121 * b211 * c111 + a122 *
b212 * c112 + a123 * b213 * c113 + a124 * b214 * c114 + a125 * b215 *
c115 + a126 * b216 * c116 + a127 * b217 * c117 -1, a121 * b211 * c121
+ a122 * b212 * c122 + a123 * b213 * c123 + a124 * b214 * c124 + a125
* b215 * c125 + a126 * b216 * c126 + a127 * b217 * c127 , a121 * b211
* c211 + a122 * b212 * c212 + a123 * b213 * c213 + a124 * b214 * c214
+ a125 * b215 * c215 + a126 * b216 * c216 + a127 * b217 * c217 , a121
* b211 * c221 + a122 * b212 * c222 + a123 * b213 * c223 + a124 * b214
* c224 + a125 * b215 * c225 + a126 * b216 * c226 + a127 * b217 *
c227 , a121 * b221 * c111 + a122 * b222 * c112 + a123 * b223 * c113 +
a124 * b224 * c114 + a125 * b225 * c115 + a126 * b226 * c116 + a127 *
b227 * c117 , a121 * b221 * c121 + a122 * b222 * c122 + a123 * b223 *
c123 + a124 * b224 * c124 + a125 * b225 * c125 + a126 * b226 * c126 +
a127 * b227 * c127 , a121 * b221 * c211 + a122 * b222 * c212 + a123 *
b223 * c213 + a124 * b224 * c214 + a125 * b225 * c215 + a126 * b226 *
c216 + a127 * b227 * c217 -1, a121 * b221 * c221 + a122 * b222 * c222
+ a123 * b223 * c223 + a124 * b224 * c224 + a125 * b225 * c225 + a126
* b226 * c226 + a127 * b227 * c227 , a211 * b111 * c111 + a212 * b112
* c112 + a213 * b113 * c113 + a214 * b114 * c114 + a215 * b115 * c115
+ a216 * b116 * c116 + a217 * b117 * c117 , a211 * b111 * c121 + a212
* b112 * c122 + a213 * b113 * c123 + a214 * b114 * c124 + a215 * b115
* c125 + a216 * b116 * c126 + a217 * b117 * c127 -1, a211 * b111 *
c211 + a212 * b112 * c212 + a213 * b113 * c213 + a214 * b114 * c214 +
a215 * b115 * c215 + a216 * b116 * c216 + a217 * b117 * c217 , a211 *
b111 * c221 + a212 * b112 * c222 + a213 * b113 * c223 + a214 * b114 *
c224 + a215 * b115 * c225 + a216 * b116 * c226 + a217 * b117 * c227 ,
a211 * b121 * c111 + a212 * b122 * c112 + a213 * b123 * c113 + a214 *
b124 * c114 + a215 * b125 * c115 + a216 * b126 * c116 + a217 * b127 *
c117 , a211 * b121 * c121 + a212 * b122 * c122 + a213 * b123 * c123 +
a214 * b124 * c124 + a215 * b125 * c125 + a216 * b126 * c126 + a217 *
b127 * c127 , a211 * b121 * c211 + a212 * b122 * c212 + a213 * b123 *
c213 + a214 * b124 * c214 + a215 * b125 * c215 + a216 * b126 * c216 +
a217 * b127 * c217 , a211 * b121 * c221 + a212 * b122 * c222 + a213 *
b123 * c223 + a214 * b124 * c224 + a215 * b125 * c225 + a216 * b126 *
c226 + a217 * b127 * c227 -1, a211 * b211 * c111 + a212 * b212 * c112
+ a213 * b213 * c113 + a214 * b214 * c114 + a215 * b215 * c115 + a216
* b216 * c116 + a217 * b217 * c117 , a211 * b211 * c121 + a212 * b212
* c122 + a213 * b213 * c123 + a214 * b214 * c124 + a215 * b215 * c125
+ a216 * b216 * c126 + a217 * b217 * c127 , a211 * b211 * c211 + a212
* b212 * c212 + a213 * b213 * c213 + a214 * b214 * c214 + a215 * b215
* c215 + a216 * b216 * c216 + a217 * b217 * c217 , a211 * b211 * c221
+ a212 * b212 * c222 + a213 * b213 * c223 + a214 * b214 * c224 + a215
* b215 * c225 + a216 * b216 * c226 + a217 * b217 * c227 , a211 * b221
* c111 + a212 * b222 * c112 + a213 * b223 * c113 + a214 * b224 * c114
+ a215 * b225 * c115 + a216 * b226 * c116 + a217 * b227 * c117 , a211
* b221 * c121 + a212 * b222 * c122 + a213 * b223 * c123 + a214 * b224
* c124 + a215 * b225 * c125 + a216 * b226 * c126 + a217 * b227 *
c127 , a211 * b221 * c211 + a212 * b222 * c212 + a213 * b223 * c213 +
a214 * b224 * c214 + a215 * b225 * c215 + a216 * b226 * c216 + a217 *
b227 * c217 , a211 * b221 * c221 + a212 * b222 * c222 + a213 * b223 *
c223 + a214 * b224 * c224 + a215 * b225 * c225 + a216 * b226 * c226 +
a217 * b227 * c227 , a221 * b111 * c111 + a222 * b112 * c112 + a223 *
b113 * c113 + a224 * b114 * c114 + a225 * b115 * c115 + a226 * b116 *
c116 + a227 * b117 * c117 , a221 * b111 * c121 + a222 * b112 * c122 +
a223 * b113 * c123 + a224 * b114 * c124 + a225 * b115 * c125 + a226 *
b116 * c126 + a227 * b117 * c127 , a221 * b111 * c211 + a222 * b112 *
c212 + a223 * b113 * c213 + a224 * b114 * c214 + a225 * b115 * c215 +
a226 * b116 * c216 + a227 * b117 * c217 , a221 * b111 * c221 + a222 *
b112 * c222 + a223 * b113 * c223 + a224 * b114 * c224 + a225 * b115 *
c225 + a226 * b116 * c226 + a227 * b117 * c227 , a221 * b121 * c111 +
a222 * b122 * c112 + a223 * b123 * c113 + a224 * b124 * c114 + a225 *
b125 * c115 + a226 * b126 * c116 + a227 * b127 * c117 , a221 * b121 *
c121 + a222 * b122 * c122 + a223 * b123 * c123 + a224 * b124 * c124 +
a225 * b125 * c125 + a226 * b126 * c126 + a227 * b127 * c127 , a221 *
b121 * c211 + a222 * b122 * c212 + a223 * b123 * c213 + a224 * b124 *
c214 + a225 * b125 * c215 + a226 * b126 * c216 + a227 * b127 * c217 ,
a221 * b121 * c221 + a222 * b122 * c222 + a223 * b123 * c223 + a224 *
b124 * c224 + a225 * b125 * c225 + a226 * b126 * c226 + a227 * b127 *
c227 , a221 * b211 * c111 + a222 * b212 * c112 + a223 * b213 * c113 +
a224 * b214 * c114 + a225 * b215 * c115 + a226 * b216 * c116 + a227 *
b217 * c117 , a221 * b211 * c121 + a222 * b212 * c122 + a223 * b213 *
c123 + a224 * b214 * c124 + a225 * b215 * c125 + a226 * b216 * c126 +
a227 * b217 * c127 -1, a221 * b211 * c211 + a222 * b212 * c212 + a223
* b213 * c213 + a224 * b214 * c214 + a225 * b215 * c215 + a226 * b216
* c216 + a227 * b217 * c217 , a221 * b211 * c221 + a222 * b212 * c222
+ a223 * b213 * c223 + a224 * b214 * c224 + a225 * b215 * c225 + a226
* b216 * c226 + a227 * b217 * c227 , a221 * b221 * c111 + a222 * b222
* c112 + a223 * b223 * c113 + a224 * b224 * c114 + a225 * b225 * c115
+ a226 * b226 * c116 + a227 * b227 * c117 , a221 * b221 * c121 + a222
* b222 * c122 + a223 * b223 * c123 + a224 * b224 * c124 + a225 * b225
* c125 + a226 * b226 * c126 + a227 * b227 * c127 , a221 * b221 * c211
+ a222 * b222 * c212 + a223 * b223 * c213 + a224 * b224 * c214 + a225
* b225 * c215 + a226 * b226 * c216 + a227 * b227 * c217 , a221 * b221
* c221 + a222 * b222 * c222 + a223 * b223 * c223 + a224 * b224 * c224
+ a225 * b225 * c225 + a226 * b226 * c226 + a227 * b227 * c227 -1)*R
I.groebner_basis()

--~--~---------~--~----~------------~-------~--~----~
To post to this group, send email to sage-support@googlegroups.com
To unsubscribe from this group, send email to 
sage-support-unsubscr...@googlegroups.com
For more options, visit this group at 
http://groups.google.com/group/sage-support
URLs: http://www.sagemath.org
-~----------~----~----~----~------~----~------~--~---

Reply via email to