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
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)