lcz

994 Reputation

11 Badges

6 years, 131 days
changsha, China

MaplePrimes Activity


These are replies submitted by lcz

@tomleslie Thank you very much. Just for fun, we don't have to be graph theorists. My study focus on graph structure, not algorithm. So my knowledge of algorithm complexity is limited to some public sources. Intuitively, I think it might not be too expensive to find one, but it may (will?) be difficult to find all of them.

From the link https://en.wikipedia.org/wiki/K-vertex-connected_graph, we know that the vertex-connectivity of an input graph G can be computed in polynomial time (roughly speaking, even if the graph is large, the cost of time does not increase much). So my guess is that determining a minimum vertex cut set  is also in  polynomial time. But in what way, I haven't really thought about it, maybe depth first algorithm here  is useful.

The vertex-connectivity of an input graph G can be computed in polynomial time in the following way[2] consider all possible pairs  of nonadjacent nodes to disconnect, using Menger's theorem to justify that the minimal-size separator for  is the number of pairwise vertex-independent paths between them, encode the input by doubling each vertex as an edge to reduce to a computation of the number of pairwise edge-independent paths, and compute the maximum number of such paths by computing the maximum flow in the graph between  and  with capacity 1 to each edge, noting that a flow of  in this graph corresponds, by the integral flow theorem, to  pairwise edge-independent paths from  to .

@tomleslie Sorry, I didn't explain the problem clearly. I mean that  the vertex connectivity of a graph is just a  integer but  I want to find a special vertex set.

By the definition of  vertex connectivity(https://mathworld.wolfram.com/VertexConnectivity.html), there is a vertex cut  set in the graph whose cardinality is equal to the connectivity. 

And that's what I want to find,  is cut vertex set which cardinality  is equal to the vertex connectivity. (Look for them all, not just onel  is another matter.) So here's the Mathematica code, and of course this is just an example, maybe we can look at it manually, but I'm thinking in general.

g = CompleteGraph[{2, 2, 2, 2}, VertexLabels -> All, GraphLayout -> "StarEmbedding"]; 
FindVertexCut[g]
HighlightGraph[g, %]


{1, 2, 3, 4, 7, 8}

By the way, for some reason, the pictures I inserted on this platform keep getting lost recently, so I uploaded them as attachments.

cutvetexset.pdf

This requirement is fundamental in graph theory, and I think Maple should provide it.

Some links that might be useful:

@Carl Love I'm not clear about many of the simplified rules. So sometimes it works and sometimes it doesn't. I wonder if there are any materials or books that cover general rules to study. Many times, I just try my luck.

@TechnicalSupport  Thanks, and I see the color option in the layoutoptions, but I don't see the edge thickness, which is weird.

restart:
with(ColorTools):
with(GraphTheory):
g:=ConvertGraph("GsaCB{");
DrawGraph(g, layout = interactive, layoutoptions = [neutral_color = "pink", initial = spring])

@Carl Love What you said is just what I wanted to say. When  we set that selectform= graph, we can filter them  further by some property. As follows, we can obtain all planar graphs from  all 7-vertex non-IsomorphicGraphs.

with(GraphTheory):
n:= 7:
L:=  Array([GraphTheory:-NonIsomorphicGraphs(n, output=graphs, outputform= graph,  restrictto=connected, selectform= graph
    select= (A-> IsPlanar(A))
)]):
numelems(L)# https://oeis.org/A003094

646

As for the adjacency matrix of graph, we can also do some filtering. For example, according to the following theorem, we can choose which graphs in n-vertex Non-IsomorphicGraphs  have the maximum numbers of  closed walks of length k.

But when we set selectform= bits, I feel like we have to convert to graph format or adjacency matrix of graph itself for further screening out the desired graph, which is not very efficient. Unless we get some properties of the graph directly from the bits very quickly.

And that's what I'm asking: what's  advantage of bits.  tomleslie's answer makes me understand that maple provides a memory/speed tradeoff, but I think maybe we can get more.

 

 

@克里斯托弗2222 

Thank you, hope Maple will have.

@mmcdara 
This is a nice operation that indirectly labels the axis of rotation.

@Rouben Rostamian   Adding tickmarks may be difficult. But the picture below is the one I want more.

@Rouben Rostamian  Good way and thank you!

@Kitonum This is really a good solution, but if k is large, it doesn't seem to work very well in for-loop.

@tomleslie Thank you very much for your detailed explanation.  

@tomleslie Thank you for your reply. First of all, I still don't know the difference between posint  and positive  functions. I feel they are similar.

Second, I am curious about why Maple can determine that a number is an integer. Is it because any integer is given an inherent integer property in Maple in advance?   Pure curiosity, of course.  And one potential value is whether users can define their own types like integers.

@acer The function 'print' is surprisingly effective. It even makes me wonder why showstat exists.

interface(prettyprint=2):
print(PlaneDual)

@Carl Love 

I guess your  "the least complicated surface on which the graph can be embedded" means the genus of a graph.

The genus of a graph is the minimal integer n such that the graph can be drawn without crossing itself on a sphere with n handles.

 

 Here is what I refer to  https://math.stackexchange.com/questions/1990107/relationship-between-crossing-number-genus-of-space

For any graph G, we always have
                                            cr(G)≥g(G)
where cr(G) is the crossing number of G and g(G) is the genus of G.
On the other hand, the difference between the crossing number and the genus of a graph can be arbitrarily large, as we can see from this example:
The crossing number of C3×Cn, the Cartesian product of the cycle C3 and Cn, is given by cr(C3×Cn)=n for n≥3 (see here) . On the other hand, it is easy to show that the genus of C3×Cn is given by g(C3×Cn)=1 for n≥3.

 

Currently, there are programs that calculate the upper and lower bounds of the cross numbers of graphs, but they are not written in Maple. http://crossings.uos.de/

 

 

 

 

@tomleslie First of all thank you for your help and effective code.

I have taken note of your remark: it only works when all faces in the original graph have 3 (or fewer?) edges. It seems to me that your code works for non-triangulated graph , as long as the graph is 3-connected.

An example of this is, I dual the dual graph in my instance.

Maybe I need to clarify two concepts briefly: 3-connected graph and triangulating planar graphs. If you are not confused, ignore the following.

In graph theory, a connected graph G is said to be 3-vertex-connected (or 3-connected) if it has more than 3 vertices and remains connected whenever fewer than 3 vertices are removed.
planar graph G is said to be triangulated (also called maximal planar) if any length of face in G is 3.

Any simple triangulating planar graph is 3-connected, and conversely it is not necessarily true.  More interestingly 3-connected planar graphs have unique embeddings in the sphere.

 

 

 

First 7 8 9 10 11 12 13 Page 9 of 16