pigale, graphs



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