Hi Atahan,

I don't think that there has been any work on Groebner bases in SymPy
in the last year.

I just looked at the Groebner bases project idea. I guess you mean this one:
https://github.com/sympy/sympy/wiki/GSoC-Ideas#efficient-groebner-bases-and-their-applications

I would say that there are several things that would improve the
performance of SymPy's Groebner basis calculations in this respect:

1. Make use of python_flint to speed up polynomial arithmetic.
2. Improve linear algebra for FGLM and F4 algorithms (the idea
suggests this is needed first for F4).
3. Improve polynomial gcd:
https://github.com/sympy/sympy/wiki/GSoC-Ideas#polynomial-gcd

On the linear algebra side see (plenty of work can be done to improve this):
https://docs.sympy.org/latest/modules/polys/domainmatrix.html
https://docs.sympy.org/latest/modules/polys/domainsintro.html

Also we have the f5b algorithm but it is not used by default even
though it seems to be always faster than buchberger as far as I can
tell. Likewise for zero-dimensional bases it is usually faster to
compute a grevlex basis and convert to lex with fglm. The nonlinsolve
code does this but solve does not. Ideally that would be a simple
option with the groebner function.

Another thing that could be worked on is supporting different
orderings such as elimination ordering. The current code is sort of
there to handle this but doesn't fully work and could certainly be
made easier. With an elimination ordering we could using some
combination of that and resultants as a way to implement an eliminate
function which would be useful:
https://reference.wolfram.com/language/ref/Eliminate.html

The other aspect though is making better use of Groebner bases within
SymPy. Both solve and nonlinsolve use Groebner bases but the code
using them can be improved to give better representations of
positive-dimensional solutions to polynomial systems of equations. I'm
not sure that either makes proper use of factorisation of the
polynomials in the basis to bring everything down to reduced bases for
example.

It would be useful to have a convenient way to compute a factorisation
of a Greobner basis into bases for irreducible components.

Another useful thing would be a way to generate a rational univariate
representation along with some way to represent that for the benefit
of users who are trying to solve systems polynomial equations.

--
Oscar

On Sat, 4 Mar 2023 at 07:01, Atahan Haznedar <[email protected]> wrote:
>
> Hello everyone, I am Atahan Haznedar from Turkey. Even though Turkish is my 
> native language, I am fluent with English. I am a third year Mathematics 
> undergraduate in Bogazici University in Istanbul. I have been using Linux for 
> 2 years to understand what really open source is, and I have always wanted to 
> be a part of a group to help develop an open source software. I am hoping 
> that GSoC will help me achieve to be part of a group to develop open source 
> project. I started coding with Python 3 years ago, and I have been using it 
> since then for academic purposes and I feel confident about it. I have basic 
> coding experience with C++ (Mostly scripting and optimization purposes) and 
> Octave (Machine Learning course on Coursera by Andrew NG) as well, however I 
> am more familiar with Python. I am studying with 2 different professors at 
> the same time. With one of them we started to learn Gröebner Bases with the 
> book "Ideals, Varieties, and Algorithms by Cox". With the other professor we 
> have read some chapters on "Undergraduate Convexity by Niel Lauritzen" and 
> "Lectures in Geometric Combinatorics By Rekha R. Thomas". At the moment we 
> are implementing an algorithm that uses cones and linear programming 
> optimization for a linearly constrained linear extension problem. I have 
> taken 2 semester Abstract Algebra course that includes Groups, Rings, Fields, 
> and Galois Theory from the book "A First Course in Abstract Algebra by 
> Fraleigh". My main expertise and area of interest is actually Mathematical 
> Logic and Geometry. At the moment I am willing to help contributing to 
> Gröebner Bases algorithm however if someone thinks that my help will be 
> better on different topic its not a problem for me. As for the Gröebner Bases 
> algorithm I can see that the documentation in the sympy is not that heavy at 
> the moment so I can easily start. I am open to any recommendation of books or 
> lectures to this topic since I am flexible as a student.
>
> 1. Should I check the book "Groebner Bases: A Computational Approach to 
> Commutative Algebra" before starting?
> 2. Apart from the articles that are referenced do you recommend anything else 
> to start with?
> 2. Apart from the articles that are referenced do you recommend anything else 
> to start with?
> 3. Couldn't find the link for old GSoC22' to see what has been done in the 
> last year for the gröebner bases. Can you link me to it if there is a summary 
> for it?
>
> Thanks in advance.
>
> --
> 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 view this discussion on the web visit 
> https://groups.google.com/d/msgid/sympy/5462c493-2044-4928-8c5c-2566b9f7e255n%40googlegroups.com.

-- 
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 view this discussion on the web visit 
https://groups.google.com/d/msgid/sympy/CAHVvXxQ%3DY1R%2B01q7BA6LQrfmiHmacA5DFawPJBT8kzVW%2BmSdpg%40mail.gmail.com.

Reply via email to