开发者

What is a "graph carving"?

I've faved a question here, and the most promising answer to-date implies "graph carvings". Problem is, I have no clue what it is (neither does the OP, apparently), and it sounds very promising and interesting for several uses. My Googlefu failed me on this topic, as I found no useful/free resource talking about them.

Can someone please tell me what is a 'graph carving', how I can make one for a graph, and how I can determine what makes a certain carving better suited for a task than another?

Please don't go too mathematical on me (or be ready to answer more questions): I understand what's a graph, what's a node and what's a 开发者_C百科vertex, I manage with big O notation, but I have no real maths background.


I think the answer given in the linked question is a little loose with terminology. I think it is describing a tree carving of a graph G. This is still not particularly google-friendly, I admit, but perhaps it will get you going on your way. The main application of this structure appears to be in one particular DFS algorithm, described in these two papers.

A possibly more clear description of the same algorithm may appear in this book.

I'm not sure stepping through this algorithm would be particularly helpful. It is a reasonably complex algorithm and the explanation would probably just parrot those given in the papers I linked. I can't claim to understand it very well myself. Perhaps the most fruitful approach would be to look at the common elements of those three links, and post specific questions about parts you don't understand.


Q1:

what is a 'graph carving'

There are two types of graph carving: Tree-Carving and Carving.

  • A tree-carving of a graph is a partition of the vertex set V into subsets V1,V2,...,Vk with the following properties. Each subset constitutes a node of a tree T. For every vertex v in Vj, all the neighbors of v in G belong either to Vj itself, or to Vi where Vi is adjacent to Vj in the tree T.

  • A carving of a graph is a partitioning of the vertex set V into a collection of subsets V1,V2,...Vk with the following properties. Each subset constitutes a node of a rooted tree T. Each non-leaf node Vj of T has a special vertex denoted by g(Vj) that belongs to p(Vj). For every vertex v in Vi, all the neighbors of v that are in ancestor sets of Vi belong to either

    1. Vi or
    2. Vj, where Vj is the parent of Vi in the tree T, or
    3. Vl, where Vl is the grandparent in the tree T. In this case, however the neighbor of v can only be g(p(Vi))

Those defination referred from chapter 6 of book "Approximation Algorithms for NP-Hard problems" and paper1. (paper1 is picked from Gain's answer, thanks Gain.)

According to my understanding. Tree-Carving or Carving are a kind of representation (or a simplification) of an original graph G. So that the resulting new graph still preserve 'connection properties' of G, but with much smaller size(less vertex, less nodes). These two methods both somehow try to delete 'local' 'similar' information but to keep 'structure' 'vital' information. By merging some 'closed' vertices into one vertex and deleting some edges.

And It seems that Tree Carving is a little bit simpler and easier to understand Since in **Carving**, edges are allowed to go to a single vertex in the grapdhparenet node as well. It would preserve more information.

Q2:

how I can make one for a graph

I only know how to get a tree-carving.
You can refer the algorithm from paper1.
It's a Depth-First-Search based algorithm. Do DFS, before return from an iteration, check whether this edges is 'bridge' edge or not. If yes, you need remove this 'bridge' and adding some 'back edge'. You would get a DFS-partition which yields a tree-carving of G.

Q3:

how I can determine what makes a certain carving better suited for a task than another?

Sorry I don't know. I am also a new guy in graph theory.

 
 
 
If you have more question:

  • What's g function of g(Vj)?
    a special node called gray node. go to paper1
  • What's p function of p(Vj)?
    I am not sure. maybe p represent 'parent'. go to paper1
  • What's the back edge of node t?
    some edge(u,v) s.t. u is a decent of t and v is a precedent of t. goto to paper1
  • What's bridge?
    bridge wiki
0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜