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.
Asked
Active
Viewed 165 times
0

george24
- 331
- 1
- 3
- 11
-
What do you mean by "remove/cut" ? – MrGreen Jul 28 '15 at 10:09
-
@MrGreen I mean to "delete" the edge. – george24 Jul 28 '15 at 10:14
2 Answers
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
-
Yes I think I don't have to look at cuts. Thanks for the mathematical expression. – george24 Jul 28 '15 at 18:31
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
-
1The 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