Groups keyboard shortcuts have been updated
Dismiss
See shortcuts

Ideal element in terms of generators

33 views
Skip to first unread message

Trevor Karn

unread,
Oct 7, 2024, 12:38:39 PM10/7/24
to Macaulay2
Hi all,

I have a known generating set for an ideal `I` of a polynomial ring in many variables and an element `x` such that `x % I == 0`.

I would like to express `x` in terms of my favorite generators of `I`. From the online documentation, I see that a standard way to do this would be to use the `//` operator. My question is "is there a better way?"

I have tried running my computation using some HPS resources, and I ran out of memory with 498GB available. I have done the rest of the computation up to the point of running `x // gens I` on my laptop, so I feel reasonably confident that the problem is with my use of `//`. Is there another approach I can use to reduce the memory required?

Thanks so much,
Trevor

Mahrud Sayrafi

unread,
Oct 7, 2024, 4:55:36 PM10/7/24
to maca...@googlegroups.com
Hi Trevor,

You might know this already, but RingElement // Matrix calls Matrix // Matrix which in turn calls Matrix // GroebnerBasis, meaning that you've probably found a gb computation that takes half a terabyte of memory!

There are other strategies for computing Grobner bases and then calling x // G, but it depends on your ideal. A different monomial order could help significantly, but it really depends on your situation, especially if the ideal is combinatorially defined, but I'm not an expert.

For instance if you can prove that the ideal is already a Grobner basis in a different monomial order, then you could just define your ring in that monomial order and call x // forceGB gens I.

Hope that helps!
Mahrud

--
You received this message because you are subscribed to the Google Groups "Macaulay2" group.
To unsubscribe from this group and stop receiving emails from it, send an email to macaulay2+...@googlegroups.com.
To view this discussion on the web visit https://groups.google.com/d/msgid/macaulay2/9e81d39b-b3a5-41d2-89a2-3be48c08e348n%40googlegroups.com.

Trevor Karn

unread,
Oct 8, 2024, 9:07:18 AM10/8/24
to maca...@googlegroups.com
Hi Mahrud,
Thanks so much. I'll definitely try a different monomial order. Unfortunately I know that my generating set is not a GB with respect to the monomial order I have been using. Can you say why running `x % J` might take ~1min on my laptop while computing the GB takes up so much memory? I was under the impression that in order to compute `x % J`, one had to compute a GB anyway. Is there a way I can cache the one used there?
Thanks,
Trevor 

You received this message because you are subscribed to a topic in the Google Groups "Macaulay2" group.
To unsubscribe from this topic, visit https://groups.google.com/d/topic/macaulay2/i0ahprE5ODU/unsubscribe.
To unsubscribe from this group and all its topics, send an email to macaulay2+...@googlegroups.com.
To view this discussion on the web visit https://groups.google.com/d/msgid/macaulay2/CAA3cHptazgUmRSLjHMxAsmq_ZFVNjfDGtjcf3-mLdywQe%3D02aQ%40mail.gmail.com.


--
Best Regards,

Trevor Karn
Graduate Student, Mathematics

Michael Burr

unread,
Oct 8, 2024, 9:13:21 AM10/8/24
to Macaulay2
Hi Trevor,
I believe that using % only computes a partial Groebner basis (enough to compute the normal form) and not the entire GB.
Best, 
Michael


Trevor Karn

unread,
Oct 8, 2024, 10:57:03 AM10/8/24
to maca...@googlegroups.com
Hi Michael,

Ah I see. If it computes enough to give the normal form, shouldn’t that be enough to give the polynomial-linear combination that certifies element membership in the ideal? Is there a way to cache that partial GB?


Best Regards,

Trevor Karn
Graduate Student, Mathematics
Reply all
Reply to author
Forward
0 new messages