Ejemplo n.º 1
0
def count_em(n):
    vertices, edges = make_grid(n)
    corner_root = (0, ) * 2
    vertex_order = order_vertices(vertices, edges, root = corner_root)
    edge_order = order_edges(vertices, edges, vertex_order)
    frontiers = make_frontiers(vertex_order, edge_order)
    beads = make_connectedness_tree(
        vertex_order,
        edge_order,
        frontiers,
    )
    beads = reduce_beads(beads, verbose = False)
    count = bdd_count_solutions({'s' : len(beads), 'dag' : beads})
    print count * 2
Ejemplo n.º 2
0
def gen_random_solutions(beads, how_many):
    bdd_beads = {
        's' : len(beads),
        'dag' : beads,
    }
    c = {}
    n_solns = bdd_count_solutions(bdd_beads, c)
    print 'number of solutions : %d' % n_solns
    print 'here are a few random ones:'
    for _ in xrange(how_many):
        yield bdd_generate_random_solution(
            bdd_beads,
            c,
            rand = numpy.random.rand
        )