I'm attempting to use get_edges_prob to find the most likely missing edges out of every possible non-edge. I know every possible edge is O(n^2).

Currently I'm sampling the like this:

    non_edges_probs = [[] for _ in range(len(non_edges))]

    def collect_edge_probs(s):
        s = s.levels[0]

        for i, non_edge in enumerate(non_edges):
            p = s.get_edges_prob([non_edge], [],
                                 entropy_args=dict(partition_dl=False))
            non_edges_probs[i].append(p)

    gt.mcmc_equilibrate(nested_state,
                        force_niter=100,
                        mcmc_args=dict(niter=10),
                        callback=collect_edge_probs,
                        verbose=True)

Is there a way to speed this up at all? If not, is there a heuristic I can use to reduce the number of possibilities?

Currently I'm using vertex similarity measures to cut the possibilities, but I'm wondering if there is a heuristic involving just the NestedState.

Any help appreciated!