The following code
but it's not a path after I delete vertex 6. It's the disjoint union of 2 paths. Same thing occurs with cycle (except it says Cycle Graph), same thing occurs if you delete an edge from either. Happens with complete graph if you delete an edge and make it no longer complete... so probably happens with any such named graph under edge or vertex deletions. Or, if you end with "Print g" instead of just "g", it says just "Complete Graph".
Yeah, that's a side effect of the way the classes work. I'm not sure what the best way to handle this is:
(1) Give up on clever naming entirely.
(2) Check whether the name still makes sense whenever the graph is changed and update accordingly. This would be very silly and very expensive.
(3) Check whether the name still makes sense whenever the name is printed, and update accordingly. This makes a lot more sense but could still be pretty expensive, although it could have a modification-invalidating cache.
(4) Whenever a graph has nodes or vertices changed, in-place or otherwise, set a "modified" flag. If the modified flag is set, print the generic string instead, without testing whether the name would still apply. This would add one extra operation to every graph change, but it should be pretty fast.
ISTR this came up on one of the mailing lists within the last six months or so.
posted Jan 28 '12DSM
4882 ● 12 ● 65 ● 105
Asked: Jan 28 '12
Seen: 52 times
Last updated: Jan 28 '12
powered by ASKBOT version 0.7.22
Copyright Sage, 2010. Some rights reserved under creative commons license.