From 677a66f55b6b9c345039e2e3e91bbae110a5203c Mon Sep 17 00:00:00 2001 From: Gulshan Kumar Date: Wed, 4 Mar 2026 09:19:23 +0530 Subject: [PATCH] add timing script change for graph to be bipartite --- .../timing_individual_function.py | 28 ++++++++++--------- 1 file changed, 15 insertions(+), 13 deletions(-) diff --git a/timing/new_heatmaps/timing_individual_function.py b/timing/new_heatmaps/timing_individual_function.py index 5cc77d52..1f5ee0b6 100644 --- a/timing/new_heatmaps/timing_individual_function.py +++ b/timing/new_heatmaps/timing_individual_function.py @@ -58,19 +58,21 @@ def record_result(stdTime, parallelTime, row, col): G = nx.bipartite.random_graph( n[ind], m[ind], p, directed=True, seed=seed ) - for cur_node in G.nodes: - neighbors = set(G.neighbors(cur_node)) - # have atleast 2 outgoing edges - while len(neighbors) < 2: - new_neighbor = seed.choice( - [ - node - for node in G.nodes - if node != cur_node and node not in neighbors - ] - ) - G.add_edge(cur_node, new_neighbor) - neighbors.add(new_neighbor) + A, B = range(n[ind]), range(n[ind], n[ind] + m[ind]) + for source_group, target_group in [(A, B), (B, A)]: + for cur_node in source_group: + neighbors = set(G.neighbors(cur_node)) + # have atleast 2 outgoing edges + while len(neighbors) < 2: + new_neighbor = seed.choice( + [ + node + for node in target_group + if node not in neighbors + ] + ) + G.add_edge(cur_node, new_neighbor) + neighbors.add(new_neighbor) else: print(f"Number of Nodes: {num}") G = nx.fast_gnp_random_graph(