Hello everybody !!!!

I have been thinking for a while about different ways to build something
great from the support for Linear Programming in Sage. There's one idea I
would like to explore, and I need to know if some of you would be :
- Interested in using it
- Interesting in helping me to write it

It may have to deal with a new "type" of symbolics in Sage, I do not know
yet, and you're all so full of experience I will probable keep asking
questions for the next month... ;-)

Here is what I thought about :

I wanted to write an algorithm in Sage for the Minimum Feedback Vertex Set
problem ( http://en.wikipedia.org/wiki/Feedback_vertex_set ). This problem
is the following : given a graph G, what is a vertex subset S of minimum
cardinality such that the graph minus S is a forest ( contains no cycle ).

It is very easy to say it, a bit harder ( at least for me ) to write it as a
linear program. I know which function I want to minimize, but I do not know
how to write a linear program testing that "there is no cycle in the graph".
I know, though, how to write a linear program GIRTH computing the smallest
cycle ( girth ) of the graph. What I need, then, to ensure that a graph is
cycle free "smallest cycle in the graph" is to ensure that the DUAL of the
GIRTH program can be at least the size of the graph+1.

So this is what I think we need in Sage : first, a way to compute duals (but
this I can write pretty quickly), and a way to merge programs one into the
other to build bigger ones. In the lab I work in, people are constantly
trying to build networks of minimum cost under very specific constraint (
some multiflow is feasible, the graph is k-connected, etc, etc ... ).

They --always-- have to rewrite all the LP programs, name the variables,
into a looong Linear Program. And this, as a coder, I can not stand :-)

Linear Programming needs a way to merge programs, to obtain duals without
more than a call to a .dual() method, and a big database of Linear Programs
from where other ones can be easily defined.

I do not know much of what can be done in GLPK, Ampl, Cplex, Coin-Or, and a
lot of other LP-related softwares I have no clues about, which you may
perfectly know.... Is it something you have already seen somewhere, in which
case I could try to give it a look to spare some time, or is it new and does
it need to be built from scratch ?

More importantely, do you think it is -- useful -- ?

Thank you 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
URLs: http://www.sagemath.org
-~----------~----~----~----~------~----~------~--~---

Reply via email to