I have a full implementation of linear programming in https://github.com/sympy/sympy/issues/20391 Although if you may or may not want the code, I hope it can reduce any duplicate efforts if you were intending to implement the same method.
On Thursday, December 31, 2020 at 5:58:55 AM UTC+9 Oscar wrote: > On Wed, 30 Dec 2020 at 19:47, אוריאל מליחי <orielm...@gmail.com> > wrote: > > > > > Okay, well if you want this to be included in sympy I suggest to begin. > > > by making some specific proposals either here or in github issues. We > > > should agree the basic ideas before too much work is done. Of course > > > you don't have to implement all the proposals but we should agree what > > > makes sense as part of sympy even if your project is only a part of > > > what we would want. > > > > > Where possible it is best to improve the implementation of existing > > > API functions rather than introduce new ones but there certainly are > > > reasons for wanting some new functions for working with inequalities: > > > exactly what those new functions would be is the part that needs to be > > > agreed if this is to be included in sympy. > > > > > I would say that eliminating one or more variables from a system of > > > inequalities is very useful and there is e.g. Fourier-Motzkin > > > elimination > > > https://en.wikipedia.org/wiki/Fourier%E2%80%93Motzkin_elimination > > > as well as linear programming: > > > https://en.wikipedia.org/wiki/Linear_programming > > > > > Actually one of the most useful things at least for internal use in > > > sympy would be being able to ask whether an inequality is implied by a > > > collection of inequalities. A simple example is that x > 0 implies > > > that x > 1 > > > > I think you meant that x > 1 implies that x > 0, but I get the point. > > > > > but we would like to pose more complicated questions like: > > > > > Given that x > y, y > 0, x + y > z is it the case that 2*x > 0 > > > > > The possible answers to a problem like this are "yes", "no" or "maybe". > > > > I see. Well I believe I can implement this function using the Linear > Programing technique. > > > > if that is okay with you, I would like to start working on it right > after my semester exams (in 3 weeks). > > > > Is there anything more I need to know/do before I start coding? > > I think the main thing is that if you are looking to contribute this > to sympy then you should specify whether you are hoping to change > existing public functions (which functions and how would they change?) > or whether you are introducing new public API and if so what that API > would be. It's not possible for me to say on behalf of sympy that any > work would likely be included in sympy without knowing what the > expected output is. > > The other thing I would say is that it's important to consider the > symbolic case in sympy. Algorithms in the symbolic case are different > from algorithms intended for an explicit numeric representation. As an > example of what I mean the wikipedia article describes Fourier-Motzkin > elimination as something that generates an exponentially growing > number of cases and therefore is computationally awkward. That isn't > true in sympy though because we can represent limits symbolically > using something like `Max(a, b)` where `a` and `b` are symbols and > that is a useful representation in situations where it isn't known > which symbol is greater. It isn't clear to me how easily the linear > programming techniques can apply in a situation where the coefficients > in the inequalities are symbolic. > > Oscar > -- 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+unsubscr...@googlegroups.com. To view this discussion on the web visit https://groups.google.com/d/msgid/sympy/a69bc5a0-abf6-401a-9004-7c7eedbfdf8dn%40googlegroups.com.