def main():

    citation_graph = load_graph(CITATION_URL)

    print compute_in_degrees(citation_graph)


    start_time = timeit.default_timer()

    dist = in_degree_distribution(citation_graph)
    print 'dist =', dist
    total = sum(dist.itervalues())
    normalized = {key: float(value)/total for key, value in dist.items()}
    print(timeit.default_timer() - start_time)

    x = normalized.keys()
    y = normalized.values()
    print len(y)
    plt.loglog(x, y, 'ro')

    plt.yscale('log')
    plt.xscale('log')
    plt.minorticks_off()

    plt.xlabel('In-degree distribution')
    plt.ylabel('Normalized In-degree distribution')
    plt.title('Graph of Citations')
    plt.grid(True)
    plt.savefig('citations-q1.png')
    plt.show()
    graph = {0: set([])}
    if num_nodes > 0:
        for node in range(num_nodes):
            edges = []
            for head in range(num_nodes):
                if node != head:
                    a = random.random()
                    if a < probability:
                        edges.append(head)
            graph[node] = set(edges)
    return graph


graph = er_graph(2777, 0.05)
print graph
degrees = compute_in_degrees(graph)
print degrees
dist = in_degree_distribution(graph)
print dist

total = sum(dist.itervalues())
normalized = {key: float(value)/total for key, value in dist.items()}
#print(timeit.default_timer() - start_time)
print sum(normalized.itervalues())
#print dist
print normalized


x = normalized.keys()
y = normalized.values()