예제 #1
0
    n_test = 1000
    f = open(opt['data_test'], 'rb')
    frac = 0.0

    test_name = opt['data_test'].split('/')[-1]
    result_file = '%s/test-%s-gnn-%s-%s.csv' % (opt['save_dir'], test_name,
                                                opt['min_n'], opt['max_n'])
    ref_cplex_val = []
    ref_cplex_sol = []
    ref_cplex_val_sum = 0
    with open(result_file, 'w') as f_out:
        print 'testing'
        sys.stdout.flush()
        for i in tqdm(range(n_test)):
            g = cp.load(f)
            api.InsertGraph(g, is_test=True)
            t1 = time.time()
            val, sol = api.GetSol(i, nx.number_of_nodes(g))
            t2 = time.time()
            f_out.write('%.8f,' % val)
            f_out.write('%d' % sol[0])
            for i in range(sol[0]):
                f_out.write(' %d' % sol[i + 1])
            f_out.write(',%.6f\n' % (t2 - t1))
            frac += val
            # Compute cplex solution:
            cplex_mvc_solver = CplexMvcSolver(g)
            cplex_val, cplex_sol = cplex_mvc_solver.solve()
            ref_cplex_sol.append(cplex_sol)
            ref_cplex_val.append(cplex_val)
            ref_cplex_val_sum += cplex_val
예제 #2
0

if __name__ == '__main__':
    api = MvcLib(sys.argv)

    opt = {}
    for i in range(1, len(sys.argv), 2):
        opt[sys.argv[i][1:]] = sys.argv[i + 1]

    g_undirected, _ = build_full_graph(
        '%s/InfoNet5000Q1000NEXP.txt' % opt['data_root'], 'undirected')
    print(nx.number_of_nodes(g_undirected))
    print(nx.number_of_edges(g_undirected))
    print greedy(g_undirected)

    api.InsertGraph(g_undirected, is_test=True)

    # startup
    gen_new_graphs(opt)
    for i in range(10):
        api.lib.PlayGame(100, ctypes.c_double(1.0))
    api.TakeSnapshot()

    eps_start = 1.0
    eps_end = 0.05
    eps_step = 10000.0
    for iter in range(int(opt['max_iter'])):
        if iter and iter % 5000 == 0:
            gen_new_graphs(opt)
        eps = eps_end + max(0., (eps_start - eps_end) *
                            (eps_step - iter) / eps_step)