Skip to content

Commit 1baa222

Browse files
committed
graph rendering improvements + bug fixes
1 parent ed80da5 commit 1baa222

File tree

7 files changed

+255
-116
lines changed

7 files changed

+255
-116
lines changed

.gitignore

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,3 @@
1-
venv
1+
.venv
22
.idea
33
__pycache__

README.md

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1 +1,8 @@
11
# Visualization of max flow algorithms
2+
3+
implemented algorithms:
4+
- Ford-Fulkerson
5+
- Edmonds-Karp
6+
- Capacity Scaling
7+
- Dinic
8+
- Goldberg-Tarjan

graph.py

Lines changed: 12 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -39,7 +39,7 @@ class Graph:
3939

4040
def __init__(self, n: int):
4141
rows = math.ceil(math.sqrt(n))
42-
padding = 1 / (rows + 1)
42+
padding = 1 / (2 * rows)
4343
self.nodes = [Node(i,
4444
(i % rows) / rows + padding,
4545
(i // rows) / rows + padding)
@@ -68,6 +68,9 @@ def get_edges(self):
6868
for edge in self.get_edges_by_node(i):
6969
yield edge
7070

71+
def get_base_edges(self):
72+
return list(filter(lambda x: not x.reverse, self.get_edges()))
73+
7174
def has_edge(self, source, target):
7275
for edge in self.get_edges_by_node(source):
7376
if edge.start == source and edge.end == target:
@@ -77,11 +80,15 @@ def has_edge(self, source, target):
7780
def get_nodes(self):
7881
return self.nodes
7982

83+
def get_node(self, node_id: int):
84+
return self.nodes[node_id]
85+
8086
def number_of_nodes(self):
8187
return self.n
8288

83-
def copy(self):
84-
new_graph = Graph(self.number_of_nodes())
89+
def number_of_edges(self):
90+
return len(list(self.get_edges()))
91+
92+
def reset(self):
8593
for edge in self.get_edges():
86-
new_graph.add_edge(edge.start, edge.end, edge.capacity)
87-
return new_graph
94+
edge.flow = 0

0 commit comments

Comments
 (0)