Example #1
0
def upa_makegraph(num_nodes, iter_nodes):
    """
    Generates graph by UPA algorithm where num_nodes is a total number of nodes
    and iter_nodes is a number of edges added on each iteration
    """
    result = prj1.make_complete_graph(iter_nodes)
    upa = UPATrial(iter_nodes)
    if num_nodes <= iter_nodes:
        return result
    for step in range(iter_nodes, num_nodes):
        nodes_to_be_added = upa.run_trial(iter_nodes)
        result[step] = nodes_to_be_added
        for node in nodes_to_be_added:
            result[node].add(step)
    return result
def upa_undigraph_gen(node_num, step_node):
    '''
    generate un-digraph use UPA Algorithm

    Parameters
    ----------
    node_num : int
    step_node : int

    Returns
    -------
    graph : dict
    '''
    UPAGraph = UPATrial(step_node)
    graph = make_complete_graph(step_node)
    for i in range(step_node, node_num):
        neighbors = UPAGraph.run_trial(step_node) 
        graph[i] = neighbors
        for nei in neighbors:
            graph[nei] = graph.get(nei, set()).union({i})
    return graph