def write_tp_rows(): """Write out just the first row of the transition matrix for several TSP operators. The first row is enough since later rows are just a rotation of the first. """ basename = sys.argv[1] ops = ("two_opt", "twoh_opt", "three_opt", "three_opt_broad", "swap", "swap_adj") lengths = (6, 7, 8, 9, 10) for op in ops: for length in lengths: filename = os.path.join(basename, "tsp_length_%d_%s" % (length, op), "TP_row0.dat") print op, length x = tsp.get_tm_first_row(length, move=op) np.savetxt(filename, x)
def write_tp_row0(space): """Write out just the first row of the transition matrix for several operators of the given space. The first row is enough since later rows are just a rotation of the first. """ basename = sys.argv[1] if space == "permutation": ops = ("two_opt", "twoh_opt", "three_opt", "three_opt_broad", "swap_two", "swap_adj") sizes = (9, 10, 11) elif space == "bitstring": ops = ("per_gene", "per_ind") pmuts = (0.0001, 0.0003, 0.0010, 0.0033, 0.01, 0.0333, 0.1, 0.3333) sizes = (10, 12, 14) for op in ops: for size in sizes: print op, size if space == "permutation": filename = os.path.join(basename, "space_%s/size_%d_op_%s" % (space, size, op), "TP_row0.dat") x = tsp.get_tm_first_row(size, move=op) np.savetxt(filename, x) elif space == "bitstring": if op == "per_ind": filename = os.path.join(basename, "space_%s/size_%d_op_%s" % (space, size, op), "TP_row0.dat") x = bitstring.generate_bitstring_tm_row0(size, pmut=None) np.savetxt(filename, x) elif op == "per_gene": for pmut in pmuts: op_ = "%s_%.4f" % (op, pmut) filename = os.path.join(basename, "space_%s/size_%d_op_%s" % (space, size, op_), "TP_row0.dat") x = bitstring.generate_bitstring_tm_row0(size, pmut=pmut) np.savetxt(filename, x) else: raise ValueError("Unexpected operation + op")