Example #1
0
def entropy_value(states, nodes, edges):
    """Compute entropy values from states, nodes and edges.

    It recomputes edge occurrences to node occurences.
    It's too much coupled with bipartite model.
    #TODO - decouple it

    """
    cum_states = chain(*states)
    most_common = Counter(cum_states).most_common()
    most_common_nodes = count_nodes(nodes, edges, most_common)
    frequencies = (utils.get_names_and_occurrences(most_common_nodes)[1])
    return entropy(frequencies)
Example #2
0
def entropy_value(states, nodes, edges):
    """Compute entropy values from states, nodes and edges.

    It recomputes edge occurrences to node occurences.
    It's too much coupled with bipartite model.
    #TODO - decouple it

    """
    cum_states = chain(*states)
    most_common = Counter(cum_states).most_common()
    most_common_nodes = count_nodes(nodes, edges, most_common)
    frequencies = (utils.get_names_and_occurrences(most_common_nodes)[1])
    return entropy(frequencies)
Example #3
0
def diffusion_on_clique(hypergraph, t_max, plot_results=False):
    """Simulate diffusion on corresponding clique graph"""
    nodes = hypergraph.nodes()
    hyper_edges = hypergraph.hyper_edges()
    clique_graph = converters.convert_to_clique_graph(nodes, hyper_edges)
    markov_matrix = create_markov_matrix(clique_graph.edges(),
                                         count_itself=False)
    edges = clique_graph.edges()

    most_common, most_common_nodes, states = simulate_diffusion(
        nodes, edges, markov_matrix, t_max)
    if plot_results:
        return plot_diffusion_results(most_common, most_common_nodes,
                                      hyper_edges, "clique")
    else:
        return utils.get_names_and_occurrences(most_common_nodes)[1]
def diffusion_on_clique(hypergraph, t_max, plot_results=False):
    """Simulate diffusion on corresponding clique graph"""
    nodes = hypergraph.nodes()
    hyper_edges = hypergraph.hyper_edges()
    clique_graph = converters.convert_to_clique_graph(nodes, hyper_edges)
    markov_matrix = create_markov_matrix(clique_graph.edges(),
                                         count_itself=False)
    edges = clique_graph.edges()

    most_common, most_common_nodes, states = simulate_diffusion(
        nodes, edges, markov_matrix, t_max)
    if plot_results:
        return plot_diffusion_results(most_common, most_common_nodes,
                                      hyper_edges, "clique")
    else:
        return utils.get_names_and_occurrences(most_common_nodes)[1]
Example #5
0
def diffusion_on_hypergraph(hypergraph, markov_matrix,
                            t_max, plot_results=False):
    """Simulate numerically diffusion on a hypergraph,

    Diffusion is simulated using Markov Chains.

    """
    nodes = hypergraph.nodes()
    hyper_edges = hypergraph.hyper_edges()

    most_common, most_common_nodes, states = simulate_diffusion(
        nodes, hyper_edges, markov_matrix, t_max)

    if plot_results:
        return plot_diffusion_results(most_common, most_common_nodes,
                                      hyper_edges, "hypergraph")
    else:
        return utils.get_names_and_occurrences(most_common_nodes)[1]