0

Background: I am a newbie to graph theory, specially in "graph cut". Please don't be too technical and fast. Thank you.
Suppose I have a weighted undirected connected graph G=(V,E). I have a variable A that holds an integer value and I want to remove/cut all edges from the graph G whose weight are below the value of A.
Question 1: If this already exist in graph theory (I saw max-cut, min-cut, s-t cut, etc) how is it called?
Question 2: How can I formally express/define this approach using mathematical symbols.
Thank you for your suggestions.

george24
  • 331
  • 1
  • 3
  • 11

2 Answers2

2

From what I understand, you want to remove the edges whose weight are less than A. This has nothing to do with cuts in graphs.

I think the mathematical expression of what you want is:

G'(V', E') = G(V, Q) : Q = {x: x <= A and x belongs to E}
MrGreen
  • 479
  • 4
  • 24
2

You have:

  • a Graph G
  • composed of a set of vertices V
  • and a edges E which is a set of pairs of vertices (i.e. E = {{x,y} : x ∈ V, y ∈ V}).
  • each edge has a weight (assumed to be a natural number) which you can specify using a function (i.e. ∀ e ∈ E : weight(e) ∈ ℕ).

Then the graph G' with removed edges with weight not less than a (note: singular elements/values are usually denoted using lower-case whereas sets/lists/etc are usually denoted using upper-case) is given by:

  • G' = (V, { e ∈ E : weight(e) ≥ a })
  • or G' = (V,E') : E' = { e ∈ E : weight(e) ≥ a }

or, to make it more explicit that you are removing elements from E, you could be long-winded and define it as:

  • G' = (V, E \ { e ∈ E : weight(e) < a })
  • or G' = (V,E') : E' = E \ { e ∈ E : weight(e) < a }
MT0
  • 143,790
  • 11
  • 59
  • 117
  • @MTO Thank you very much bro! Excellent breakdown of the problem domain and very clear explanation. Ah, if only I could pay you a beer! One more question, what is the maximum running time of this procedure and how can I describe it formally. Thanks. – george24 Jul 29 '15 at 13:57
  • 1
    The running time should be `O(E)` - you need to iterate over each edge and test it's weight and then create a new data structure representing the graph. Each step - creating a new graph; testing the weight; and adding edges to the new graph - should be `O(1)` (if done efficiently) and you will repeat step for each edge (so `O(E)` in total). To state it formally you just need to write something like that but taking care to explicitly break the algorithm into its constituent parts and work from there. – MT0 Jul 29 '15 at 14:26
  • Yes since each edge need to be visited, 'O(E)' seems logical in this case. Thanks :) – george24 Jul 29 '15 at 14:34