fname = Fname(origin=fname_origin, log=fname_log)

    return Param(IND_SIZE=IND_SIZE, n=n, k=k, fname=fname)


if __name__ == "__main__":
    if len(sys.argv) != 3 or not sys.argv[1].isdecimal(
    ) or not sys.argv[2].isdecimal():
        print("usage: {0} <IND_SIZE> <k>".format(sys.argv[0]))
        sys.exit()

    param = get_param(int(sys.argv[1]), int(sys.argv[2]))  # input IND_SIZE, k

    model_origin = problem.nk_landscape.from_setting(param.n, param.IND_SIZE,
                                                     param.k)
    ga.to_pkl(model_origin, param.fname.origin)

    for i in range(100):
        random.seed(i)

        model = copy.deepcopy(model_origin)
        model, logbook = ga.run(model, ngen=3000)
        to_csv(param.fname.log.format(i=i), logbook, exist_header=True)

        # calculate information
        total_time = sum(logbook.select('time'))

        maxidx = numpy.argmax(logbook.select('max'))
        maxval = logbook.select('max')[maxidx]

        print("idx: {0}, best_fit: {1}, time: {2}".format(
    ) or not sys.argv[2].isdecimal():
        print("usage: {0} <IND_SIZE> <k>".format(sys.argv[0]))
        sys.exit()

    param = get_param(int(sys.argv[1]), int(sys.argv[2]))  # input IND_SIZE, k

    if not os.path.exists(param.fname.tar):
        print("requirment: python -O experiment_nk_landscape <IND_SIZE> <k>")
        sys.exit()

    model_tar, _ = ga.from_pkl(param.fname.tar)
    model_ori = problem.good_basis.from_setting(param.n, model_tar,
                                                param.IND_SIZE)

    model_ori, logbook = ga.run(model_ori, param.IND_SIZE * 4)
    ga.to_pkl(model_ori, param.fname.ori)
    to_csv(param.fname.log_ori, logbook, exist_header=True)

    ind = model_ori.halloffame[0]
    """ only load
    model_tar, _ = ga.from_pkl(param.fname.tar)
    model_ori, _ = ga.from_pkl(param.fname.ori)
    ind = model_ori.halloffame[0]
    """

    for i in range(100):
        random.seed(i)

        model = ind.change_basis(model_tar)
        model, logbook = ga.run(model, ngen=3000)
        to_csv(param.fname.log_tar.format(i=i), logbook, exist_header=True)
    with open(fname, "wb") as fout:
        pickle.dump(basis, fout)
    return


if __name__ == "__main__":
    if len(sys.argv) != 2 or not sys.argv[1].isdecimal():
        print("usage: {0} <IND_SIZE>".format(sys.argv[0]))
        sys.exit()

    param = get_param(int(sys.argv[1]))  # input IND_SIZE
    save_basis(param.basis, param.fname.basis)

    model_origin = problem.v_onemax.from_setting(param.n, param.IND_SIZE,
                                                 param.basis)
    ga.to_pkl(model_origin, param.fname.origin)  #, with_rndstate=True)

    for i in range(100):
        random.seed(i)

        model = copy.deepcopy(model_origin)
        model, logbook = ga.run_target(model,
                                       ngen=100,
                                       fit_val_target=(param.IND_SIZE, ),
                                       nloop=100)
        to_csv(param.fname.log.format(i=i), logbook, exist_header=True)

        # calculate information
        total_time = sum(logbook.select('time'))

        maxidx = numpy.argmax(logbook.select('max'))