import networkx as nx
import numpy as np
import scipy as sp
import scipy.cluster.vq as vq
import matplotlib.pyplot as plt
import math
import random
import operator
from networkx import graph_atlas_g

################################################################################
################################################################################
###################  Part 1: Multi-level Label Propagation  ####################
################################################################################
################################################################################
# Implement multi-level label propagation as described in the homework document.
# Note that you'll need to keep track of the explicit hierarchy of the 
# coasening, as you will be returning community assignments for the original
# graph input.
def multilevel_lp(G):
  comms = {}
  
  return comms

################################################################################
################################################################################
############  Part 2: Benchmarking Community Detection Algorithms   ############
################################################################################
################################################################################
# Run LFR given the parameters in the homework document.

louvain_wins = 0
lp_wins = 0
multilevel_lp_win = 0

print("Louvain:", louvain_wins)
print("Label Prop:", lp_wins)
print("Multi-level Label Prop:", multilevel_lp_win)

