Hello everybody !!!! I am once more sending a draft of an idea to sage-devel, counting on your wealth of knowledge to tell me whether this idea is good/bad/already implemented or if some of you could be interested in helping me sorting this out :-)
Recently, I had to work on polynomial quantities defined as sums, or product of sums of some polynomials. Well, it happens often, I have one graph from which I can create a polynomial expression, and then I want to find out the general formula for this polynomial. ( Example 1 ) Let's be practical : is there any way, in Sage or elsewhere, to give to a computer something like that : x_1^2 + ... + x_5^2 + x_6^3 + ... + x_ {10}^3 And to obtain the following information : - There is "one set" A equal to : x_1, ..., x_5 - There is "one set" B equal to : x_6, ..., x_10 And the expression can be written : \sum_{x \in A} x^2 + \sum_{x \in B} x^3 I would like the computer to "smartly" regroup the terms of my polynomial in such a way that I can extract some structure from it.. ( Example 2 ) I would like, from the expansion of : ( x_1x_6 + ... + x_1 x_{10} ) + ... + ( x_5 x_6 + ... + x_5 x_10 ) to find that my polynomial is can be expressed ass the product of any element of A with any element of B ! Quite obviously, if I have an expression which is a sum, or a combination of such things, I would like the computer to notice it and tell me which sets should be defined, and what to do with them. The easiest example is to take one polynomial which is symmetric with two different variables ( they can be interverted in the expression without any change in the polynomial ). I would like the computer to tell me immediately which are such variables, to regroup them, and to try once more to "simplify" the expression to extract more meaning from it. I have my weaknesses. I see these as graphs ! For example, in my mind I see example B as a complete bipartite graph. let us create a graph from a polynomial : we have one vertex per variable, and two variables are linked (with multiplicity) if they are multiplied in the polynomial. As any variable of A is multiplied with any variable of B, our graph is a complete bipartite graph. Finding such a graph is equivalent to finding two disjoint cliques in the complement of our graph ( thanks Cliquer ! ), and we're done. We can remove this complete bipartite subgraph from our graph ( as we have been able to create two sets and "explain" this in some "smart" way, then try again something new. We can then put weight on the edges to signify degrees or coefficients, well whatever we want actually, it needs some thinking... Sage is unifying very different tools, and if it does not exist this could be a good use of them !!! The polynomials I use often have very simple structure. This is a simple structure when analysed by a computer, but doing it manually could take ages. How could we make Sage do it ? Thanks for your help ! Nathann --~--~---------~--~----~------------~-------~--~----~ To post to this group, send an email to sage-devel@googlegroups.com To unsubscribe from this group, send an email to sage-devel-unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/sage-devel URL: http://www.sagemath.org -~----------~----~----~----~------~----~------~--~---