Beispiel #1
0
def mao_kblock(g, k, s):
    o = mao(g, s)
    # assert is_mao(g, o)
    candidate = o[-(k)::]
    # assert len(kp1_block) == k+1
    result = certify_non_kblock(g, candidate, k=k)
    if result:
        u,v,k_ = result
        return {'mao':o, 'u':u, 'v':v, 'k_':k_}
Beispiel #2
0
def single_mao_all_kp1b(g6):
    g = parse_graph6(g6)
    d = min(g.degree().viewvalues())
    # d >= k+1, take maximal k
    k = d-1
    s = g.nodes_iter().next()
    m = mao(g, s)
    for i in xrange(0, len(g)-(k+1)):
        result = certify_non_kblock(g, m[i:i+k+1], k+1)
        if not result:
            return
    # all are non-k+1-blocks 
    result['g'] = g6
    result['k'] = k
    result['d'] = d
    return result
Beispiel #3
0
def maotree_all_kblock(g6):
    g = parse_graph6(g6)
    d = min(g.degree().viewvalues())
    # or d > 3k/2 - 1
    k = int(ceil(2 * ((d+1) / 3.0)) - 1)
    m = mao(g,0)
    t = maotree(g,m)
    result = None
    for p in t.paths():
        if len(p) >= k:
            # print p
            result = certify_non_kblock(g, p[-(k+1):], k)
            if result:
                break
    if result:
        result['g'] = g6
        result['k'] = k
        result['d'] = d
        return result