Post new topic Reply to topic  [ 2 posts ] 
Author Message
 Post subject: "slimgb" strategy differences in groebner versus liftstd
PostPosted: Thu Mar 04, 2021 8:10 pm 
Using option(prot) I can see that "slimgb" almost immediately diverges in strategy when used in groebner versus liftstd.
How can I make liftstd proceed like the groebner calculation?

For comparison, here are some snippets of output (I added newlines added in the prot output to make it easier to read and compare with a diff).
Groebner calculation with "slimgb":
Code:
...
STDIN  94> option(redSB);
STDIN  95> option(prot);
STDIN  96> ideal I2 = groebner(I, "slimgb");
slimgb in ring (QQ),(... snip variable list ...),(dp(54),C)
2M[81,81](648)
3M[100,100](2061)
3M[100,100](3833)
3M[100,100](5768)
3M[100,100](7465)
3M[100,100](9490)
3M[100,100](11436)
3M[48,48](12558)
...

liftstd calculation with "slimgb":
Code:
...
STDIN  94> option(redSB);
STDIN  95> option(prot);
STDIN  96> module s;
STDIN  97> matrix T;
STDIN  98> ideal I2 = liftstd(I,T,s,"slimgb");
{1}slimgb:
2M[81,81](729)
3M[100,100](2412)
3M[100,100](4197)
3M[100,100](6043)
...


With the same ideal, the first finishes in 10 seconds and under 100MB total memory usage (including program). While the second one is still running after hours. This is why I'd like to be able to have liftstd follow the same strategy and groebner.

Is it possible liftstd is changing the problem (homogenizing first?) under the hood? If so, in my particular case, the basis would explode to something huge, so I really hope it is not trying to do that.

As a check to see if groebner was doing extra heuristics, I also ran a test calling slimgb directly for calculating the groebner basis "ideal I2 = slimgb(I);"
The prot output matched exactly with the "ideal I2 = groebner(I, "slimgb");" case, so groebner is not added extra heuristics here.

What is causing the change in strategy between using slimgb for groebner and for liftstd?


Report this post
Top
  
Reply with quote  
 Post subject: Re: "slimgb" strategy differences in groebner versus liftstd
PostPosted: Fri Mar 05, 2021 2:56 pm 

Joined: Wed May 25, 2005 4:16 pm
Posts: 275
liftstd computes much more: not just a Groebner basis, but also the transformation matrix and the syzygies.
The current Singular(github version) tries to improve that by not computing the syzygies, if one does not need them.


Report this post
Top
 Profile  
Reply with quote  
Display posts from previous:  Sort by  
Post new topic Reply to topic  [ 2 posts ] 

You can post new topics in this forum
You can reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot post attachments in this forum

It is currently Fri May 13, 2022 10:54 am
cron
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group