From cfd671a0f1a2bbdad5a1fc0bfa1e7e53838f714c Mon Sep 17 00:00:00 2001 From: marcsello Date: Thu, 24 Sep 2020 21:47:13 +0200 Subject: [PATCH] Added predelete --- kebab_worker/main.py | 20 +++++++++++++++++++- 1 file changed, 19 insertions(+), 1 deletion(-) diff --git a/kebab_worker/main.py b/kebab_worker/main.py index c7866ff..9793d9c 100644 --- a/kebab_worker/main.py +++ b/kebab_worker/main.py @@ -22,11 +22,29 @@ def worker(outqueue, id): def max_comp_size(G): return max([len(c) for c in nx.connected_components(G)]) + predelete_count = int(id / 3) + target = len(input_graph.nodes) / 2 + + if predelete_count: + print(f"Worker {id} always deletes the {predelete_count} highest degree nodes") + print(f"Worker {id} is working...") while True: del_list = [] G = input_graph.copy() - target = len(G.nodes) / 2 + # A fresh new start + + for _ in range(predelete_count): + highest_node = None + highest_node_deg = 0 + for node in G.nodes: + if G.degree[node] > highest_node_deg: + highest_node = node + highest_node_deg = G.degree[node] + + del_list.append(highest_node) + G.remove_node(highest_node) + while max_comp_size(G) > target: u = np.random.choice(G.nodes) if u not in del_list: