Ejemplo n.º 1
0
def  search_graph(query, nodes, DS, K):
    dt = numpy.dtype('f8')
    random.seed(100)
    k = nodes.shape[1]
    depth = 0
    flag  = 0
    parent_id = randd(1, nodes.shape[0], 1); # Check this
    visited = 1;
    while 1:
        parent_vec = MA(DS[parent_id,0:],dt)  # parent node
        child_ids = nodes[parent_id,0:];
        Val = numpy.zeros((len(child_ids),DS.shape[1]),dt)
        I = 0 
        while I < len(child_ids):
            Val[I,0:] = DS[child_ids[I],0:]
            I += 1
        (nn1_ind, nn1_dist) = knnsearch(query,Val, K)
        visited = visited + k
        if (parent_dist <= nn1_dist):
            flag=1
            break
        parent_id = child_ids(nn1_ind)
        depth = depth+1
    if flag == 1:
        nn_id = parent_id
        nn_dist  = parent_dist
    else:
        nn_id = - 1
        nn_dist = -1

    return nn_id, nn_dist, visited
def search_graph(query, nodes, DS, K):
    dt = numpy.dtype('f8')
    random.seed(100)
    k = nodes.shape[1]
    depth = 0
    flag = 0
    parent_id = randd(1, nodes.shape[0], 1)
    # Check this
    visited = 1
    while 1:
        parent_vec = MA(DS[parent_id, 0:], dt)  # parent node
        child_ids = nodes[parent_id, 0:]
        Val = numpy.zeros((len(child_ids), DS.shape[1]), dt)
        I = 0
        while I < len(child_ids):
            Val[I, 0:] = DS[child_ids[I], 0:]
            I += 1
        (nn1_ind, nn1_dist) = knnsearch(query, Val, K)
        visited = visited + k
        if (parent_dist <= nn1_dist):
            flag = 1
            break
        parent_id = child_ids(nn1_ind)
        depth = depth + 1
    if flag == 1:
        nn_id = parent_id
        nn_dist = parent_dist
    else:
        nn_id = -1
        nn_dist = -1

    return nn_id, nn_dist, visited
Ejemplo n.º 3
0
def  search_graph(query, nodes, DS, K):

    ''' Authors: Ankush Roy ([email protected])
                 Kiana Hajebi ([email protected])
    '''
    dt = numpy.dtype('f8')
    nodes = MA(nodes,dt)
    query = MA(query,dt)
    DS = MA(DS, dt)
    random.seed(100)
    k = nodes.shape[1]
    depth = 0
    flag  = 0
    parent_id = randd(1, nodes.shape[0], 1); # Check this
    visited = 1;
    while 1:
        parent_vec = MA(DS[int(parent_id),0:],dt)  # parent node
        parent_dist = numpy.sqrt((query - parent_vec) * numpy.transpose(query - parent_vec))
        child_ids = nodes[int(parent_id),0:];
        Val = numpy.zeros((child_ids.shape[1],DS.shape[1]),dt)
        I = 0 
        while I < child_ids.shape[1]:
            Val[I,0:] = DS[int(child_ids[0,I]),0:]
            I += 1
        Val = MA(Val)
        (nn1_ind, nn1_dist) = knnsearch(query,Val, K)
        visited = visited + k
        if (parent_dist <= nn1_dist):
            flag=1
            break
        parent_id = child_ids[0,nn1_ind]
        depth = depth+1
    if flag == 1:
        nn_id = parent_id
        nn_dist  = parent_dist
    else:
        nn_id = - 1
        nn_dist = -1
    return nn_id, nn_dist, visited
def build_graph(X, k):
    ''' Build a Connected graph using k neighbours
        Author: Ankush Roy ([email protected])
                Kiana Hajebi ([email protected])
    '''
    dt = numpy.dtype('f8')
    f = []
    nodes = numpy.zeros((X.shape[0], k), dt)

    for i in range(X.shape[0]):
        query = MA(X[(i - 1), 0:], dt)
        (nns_inds, nns_dists) = knnsearch(query, X, k + 1)
        I = 0
        f = []
        while I < len(nns_inds):
            if nns_inds[I] == i - 1:
                nns_inds.remove(i - 1)
                nodes[i - 1, 0:] = nns_inds
                break
            else:
                I += 1
    return nodes
def  search_graph(query, nodes, DS, K):

    ''' Authors: Ankush Roy ([email protected])
                 Kiana Hajebi ([email protected])
    '''
    dt = numpy.dtype('f8')
    nodes = MA(nodes,dt)
    query = MA(query,dt)
    DS = MA(DS, dt)
    random.seed(100)
    k = nodes.shape[1]
    depth = 0
    flag  = 0
    parent_id = randd(1, nodes.shape[0], 1); # Check this
    visited = 1;
    while 1:
        parent_vec = MA(DS[int(parent_id),0:],dt)  # parent node
        parent_dist = numpy.sqrt((query - parent_vec) * numpy.transpose(query - parent_vec))
        child_ids = nodes[int(parent_id),0:];
        Val = numpy.zeros((child_ids.shape[1],DS.shape[1]),dt)
        I = 0 
        while I < child_ids.shape[1]:
            Val[I,0:] = DS[int(child_ids[0,I]),0:]
            I += 1
        Val = MA(Val)
        (nn1_ind, nn1_dist) = knnsearch(query,Val, K)
        visited = visited + k
        if (parent_dist <= nn1_dist):
            flag=1
            break
        parent_id = child_ids[0,nn1_ind]
        depth = depth+1
    if flag == 1:
        nn_id = parent_id
        nn_dist  = parent_dist
    else:
        nn_id = - 1
        nn_dist = -1
    return nn_id, nn_dist, visited
Ejemplo n.º 6
0
def build_graph(X, k):
    dt = numpy.dtype('f8')
    f = []
    nodes = numpy.zeros((X.shape[1], k), dt)
    i = 0
    while i <= X.shape[0]:
        #        print i
        query = MA(X[(i - 1), 0:], dt)
        (nns_inds, nns_dists) = knnsearch(query, X, k + 1)
        I = 0
        f = []
        #        import pdb;pdb.set_trace()
        while I < len(nns_inds):
            if nns_inds[I] == i - 1:
                nns_inds.remove(i - 1)
                print i
                nodes[i - 1, 0:] = nns_inds
                break
            else:
                I += 1
        i += 1
    print nodes
    return nodes
def  build_graph(X, k):

    ''' Build a Connected graph using k neighbours
        Author: Ankush Roy ([email protected])
                Kiana Hajebi ([email protected])
    '''
    dt = numpy.dtype('f8')
    f=[]
    nodes = numpy.zeros((X.shape[0],k),dt)
    
    for i in range(X.shape[0]):
        query = MA(X[(i-1),0:],dt)
        (nns_inds, nns_dists) = knnsearch(query,X,k+1)
        I  = 0 
        f = []
        while I < len(nns_inds):
            if nns_inds[I] == i-1:
                nns_inds.remove(i-1)
                nodes[i-1,0:] = nns_inds
                break            
            else:
                I += 1
    return nodes
Ejemplo n.º 8
0
def  build_graph(X, k):
    dt = numpy.dtype('f8')
    f=[]
    nodes = numpy.zeros((X.shape[1],k),dt);
    i = 0
    while i <= X.shape[0]:
#        print i
        query = MA(X[(i-1),0:],dt)
        (nns_inds, nns_dists) = knnsearch(query,X,k+1)
        I  = 0 
        f = []
#        import pdb;pdb.set_trace()
        while I < len(nns_inds):
            if nns_inds[I] == i-1:
                nns_inds.remove(i-1)
                print i
                nodes[i-1,0:] = nns_inds
                break            
            else:
                I += 1
        i += 1
    print nodes
    return nodes