z = max(dist)
    s = sorted(dist)

    centers, edges = solve_kcenter(m, n, d, k, s, known_g)

    print "Centers:", centers
    print "Edges:", edges
    #print [((i,j),d[i,j]) for (i,j) in edges]
    opt = max([d[i, j] for (i, j) in edges])
    print "Opt = ", opt

    class_counter = np.zeros(len(centers), dtype=int)

    acc = 0
    #if known_g:
    for e in edges:
        l = centers.index(e[1])
        if label[e[0]] == l and known_g:
            acc = acc + 1
        class_counter[l] = class_counter[l] + 1

    if known_g:
        acc = (1.0 * acc) / n
        print 'acc =', acc

    elapsed_time = time.time() - start
    print 'time:', elapsed_time

    write_to_file("out-pcenter", opt, centers, edges, n, k, known_g,
                  class_counter, acc, elapsed_time)
    z = max(dist)
    s = sorted(dist)

    centers, edges = solve_kcenter(m, n, d, k, s, known_g)
    
    print "Centers:", centers
    print "Edges:", edges
    #print [((i,j),d[i,j]) for (i,j) in edges]
    opt = max([d[i,j] for (i,j) in edges])
    print "Opt = ", opt 
    
    class_counter = np.zeros(len(centers), dtype = int)

    acc = 0
    #if known_g:
    for e in edges:
        l = centers.index(e[1])
        if label[e[0]] == l and known_g:
            acc = acc+1
        class_counter[l] = class_counter[l]+1

    if known_g:
        acc = (1.0*acc)/n
        print 'acc =', acc

    elapsed_time = time.time() - start
    print 'time:', elapsed_time

    write_to_file("out-pcenter", opt, centers, edges, n, k, known_g, class_counter, acc, elapsed_time)
Exemple #3
0
    model.optimize()
    x, y = model.__data

    edges = [(i, j) for (i, j) in x if x[i, j].X > 0]
    centers = [j for j in y if y[j].X > 0]
    print "Opt =", model.ObjVal

    allocation = np.zeros(n)

    print "Centers:", centers
    print "Edges:", edges

    class_counter = np.zeros(len(centers), dtype=int)

    acc = 0
    #if known_g:
    for e in edges:
        l = centers.index(e[1])
        if label[e[0]] == l and known_g:
            acc = acc + 1
        class_counter[l] = class_counter[l] + 1

    if known_g:
        acc = (1.0 * acc) / n
        print 'acc =', acc

    elapsed_time = time.time() - start
    print 'time:', elapsed_time

    write_to_file("out-pmedian", model.ObjVal, centers, edges, n, k, known_g,
                  class_counter, acc, elapsed_time)
    model.optimize()
    x,y = model.__data
    
    edges = [(i,j) for (i,j) in x if x[i,j].X > 0]
    centers = [j for j in y if y[j].X > 0]
    print "Opt =", model.ObjVal
    
    allocation = np.zeros(n)

    print "Centers:", centers
    print "Edges:", edges

    class_counter = np.zeros(len(centers), dtype = int)

    acc = 0
    #if known_g:
    for e in edges:
        l = centers.index(e[1])
        if label[e[0]] == l and known_g:
            acc = acc+1
        class_counter[l] = class_counter[l]+1

    if known_g:
        acc = (1.0*acc)/n
        print 'acc =', acc
    
    elapsed_time = time.time() - start
    print 'time:', elapsed_time

    write_to_file("out-pmedian", model.ObjVal, centers, edges, n, k, known_g, class_counter, acc, elapsed_time)