On Tue, 18 Mar 2003, C Y wrote:
> Well, I guess my first question would be where do I start ;-).
I'd be glad glad glad if you'd like to contribute. If you really want to,
there are things to do on all levels of difficulty:
x documentation (both for users and for contributors)
x properly implement NEPS, clean up the implementation of
graph_composition
x more graph operations. You find some definitions on page 13--18 of my
Diplomarbeit, which you find on my homepage (www.mat.univie.ac.at/~rubey)
Much of this is already done, but some important things are missing.
Another possibility would be to look into Skiena's stuff
x more graph properties. One great thing (however very difficult if not
impossible) would be to implement the "circular-chromatic-number" of a
graph. If you are interested, contact me. I can send you stuff for
reading. Others can be found in Skiena's Combinatorica.m
x some thinking has to go into hypergraphs. I have not checked too much
which properties/operations make sense
x implement graph_eval_edge_weights. (rather straightforward, I think)
However: some thinking has to go into the immutability (or not) of graphs.
Currently, I "reuse" edges and vertices as much as possible. For example,
removing edges from a graph G will return a graph H, where all edges of H
are also in G. Suppose that the edge-weights of H are evaluated... I think
that it is OK to keep G and H sharing edges, but maybe there are good
reasons not to do this. In any case, a function copy_graph would be good,
too, I think.
x make the operations reuse more properties, eg. the list of spanning
trees can be reused exactly the same way as the list of perfect matchings.
In fact, it should be the same code, really. Also the Tutte polynomial
could be remembered in contract-vertices and remove-edges, I think.
x also a list of desirable properties/operations/functions would be very
desirable. Starting points are: Skiena, LEDA
http://www.algorithmic-solutions.info/leda_manual/Graph_Algorithms.html
the Stanford Graph Base...
x think about more generic algorithms. (eg., DFS can be used for more
things than finding components. Currently, it is not possible to reuse it,
though)
> I didn't pay as much attention as I should have originally, since I
> hadn't resolved my pigale issues - how does your package interface with
> it? Is it like the gnuplot interface where it opens pigale to view the
> results?
I used the $system command, so it should (!) just work by calling
graph_plot(complete_graph(5));
for example.
It expects that the TGF environment variable is set. graph_plot should
generate a file maxout.graph.txt there, and then call pigale with this
file as argument. You can than play around within pigale, upon exit you
return to maxima. If it doesn't work, please tell me.
> Is there any starter docs for all this :-)? Newbie alert.
Not really. Once upon a time I started something like this on the mailing
list
http://www.ma.utexas.edu/pipermail/maxima/2003/003761.html
but its by no means complete.
Martin