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
-~----------~----~----~----~------~----~------~--~---

Reply via email to