예제 #1
0
def ex5_2():
    minor = 2
    version = "5_2"

    case = get_case6ww2()

    expts = 1
    in_cloud = False

    roleouts = 300
    episodes = 1 # samples per learning step

#    results = run_experiments(expts, get_re_experiment, case, roleouts,
#                              episodes, in_cloud, minor)
#    save_results(results, "RothErev", version)
#
#
#    results = run_experiments(expts, get_q_experiment, case, roleouts,
#                              episodes, in_cloud, minor)
#    save_results(results, "Q", version)
#
#
    roleouts, episodes = 100, 5

    results = run_experiments(expts, get_reinforce_experiment, case, roleouts,
                              episodes, in_cloud, minor)
    save_results(results, "REINFORCE", version)
#
#
    roleouts, episodes = 50, 10

    results = run_experiments(expts, get_enac_experiment, case, roleouts,
                              episodes, in_cloud, minor)
    save_results(results, "ENAC", version)
예제 #2
0
파일: ex6_1.py 프로젝트: Waqquas/pylon
def ex6_1():
    version = "6_1"

    case = get_case24_ieee_rts3()

    in_cloud = False
    years = 1
    roleouts = 364 * years
    episodes = 1 # number of days per learning step

    t0 = time()

#    rewards, results = run_years(get_passive_experiment, case, roleouts,
#                                 episodes, in_cloud)
#    save_results(results, "passive", version)
#    save_rewards(rewards, "passive", version)
    t_passive = time()

#    rewards, results = run_years(get_re_experiment, case, roleouts,
#                                 episodes, in_cloud)
#    save_results(results, "StatefulRE", version)
#    save_rewards(rewards, "StatefulRE", version)
    t_re = time()

    rewards, results = run_years(get_q_experiment, case, roleouts,
                                 episodes, in_cloud)
    save_results(results, "Q", version)
    save_rewards(rewards, "Q", version)
    t_q = time()


    roleouts = 52 * years
    episodes = 7 # number of days per learning step

#    rewards, results = run_years(get_reinforce_experiment, case, roleouts,
#                                 episodes,in_cloud)
#    save_results(results, "REINFORCE", version)
#    save_rewards(rewards, "REINFORCE", version)
    t_reinforce = time()

#    rewards, results = run_years(get_enac_experiment, case, roleouts,
#                                 episodes,in_cloud)
#    save_results(results, "ENAC", version)
#    save_rewards(rewards, "ENAC", version)
    t_enac = time()

    print "Roth-Erev completed in %.2fs." % (t_re - t_passive)
    print "Q-learning completed in %.2fs." % (t_q - t_re)
    print "REINFORCE completed in %.2fs." % (t_reinforce - t_q)
    print "ENAC completed in %.2fs." % (t_enac - t_reinforce)
    print "Experiment 6.1 completed in %.2fs." % (time() - t0)
예제 #3
0
파일: ex6_1.py 프로젝트: oosterden/pylon
def ex6_1():
    version = "6_1"

    case = get_case24_ieee_rts3()

    in_cloud = False
    years = 1
    roleouts = 364 * years
    episodes = 1  # number of days per learning step

    t0 = time()

    #    rewards, results = run_years(get_passive_experiment, case, roleouts,
    #                                 episodes, in_cloud)
    #    save_results(results, "passive", version)
    #    save_rewards(rewards, "passive", version)
    t_passive = time()

    #    rewards, results = run_years(get_re_experiment, case, roleouts,
    #                                 episodes, in_cloud)
    #    save_results(results, "StatefulRE", version)
    #    save_rewards(rewards, "StatefulRE", version)
    t_re = time()

    rewards, results = run_years(get_q_experiment, case, roleouts, episodes,
                                 in_cloud)
    save_results(results, "Q", version)
    save_rewards(rewards, "Q", version)
    t_q = time()

    roleouts = 52 * years
    episodes = 7  # number of days per learning step

    #    rewards, results = run_years(get_reinforce_experiment, case, roleouts,
    #                                 episodes,in_cloud)
    #    save_results(results, "REINFORCE", version)
    #    save_rewards(rewards, "REINFORCE", version)
    t_reinforce = time()

    #    rewards, results = run_years(get_enac_experiment, case, roleouts,
    #                                 episodes,in_cloud)
    #    save_results(results, "ENAC", version)
    #    save_rewards(rewards, "ENAC", version)
    t_enac = time()

    print "Roth-Erev completed in %.2fs." % (t_re - t_passive)
    print "Q-learning completed in %.2fs." % (t_q - t_re)
    print "REINFORCE completed in %.2fs." % (t_reinforce - t_q)
    print "ENAC completed in %.2fs." % (t_enac - t_reinforce)
    print "Experiment 6.1 completed in %.2fs." % (time() - t0)
예제 #4
0
def ex5_4():
    minor = 4
    version = "5_4"

    case = get_case6ww()

    expts = 10
    in_cloud = False

    roleouts = 30
    episodes = 5 # samples per learning step

    results = run_experiments(expts, get_reinforce_experiment, case, roleouts,
                              episodes, in_cloud, minor)
    save_results(results, "REINFORCE", version)


    roleouts = 30
    episodes = 5 # samples per learning step

    results = run_experiments(expts, get_enac_experiment, case, roleouts,
                              episodes, in_cloud, minor)
    save_results(results, "ENAC", version)
예제 #5
0
def ex5_1():
    minor = 1
    version = "5_1"

    case = get_case6ww()

    expts = 8
    in_cloud = False

#    roleouts = 300
#    episodes = 1 # samples per learning step
#
#    results = run_experiments(expts, get_re_experiment, case, roleouts,
#                              episodes, in_cloud, minor)
#    save_results(results, "RothErev", version)
#
#
#    results = run_experiments(expts, get_q_experiment, case, roleouts,
#                              episodes, in_cloud, minor)
#    save_results(results, "Q", version)


    roleouts = 30
    episodes = 5 # samples per learning step

    results = run_experiments(expts, get_reinforce_experiment, case, roleouts,
                              episodes, in_cloud, minor)
    save_results(results, "REINFORCE", version)


    roleouts = 30
    episodes = 5 # samples per learning step

    results = run_experiments(expts, get_enac_experiment, case, roleouts,
                              episodes, in_cloud, minor)
    save_results(results, "ENAC", version)
예제 #6
0
import argparse
from pathlib import Path

from common import save_results

parser = argparse.ArgumentParser(description="Saves the result files of a experiment to a zip file")
parser.add_argument("directory", help="Directory in which the cleaned datasets are")
parser.add_argument("filename", help="Filename to save")

args = parser.parse_args()

path = Path(args.directory)
if not path.is_dir():
    print("The selected path is not a directory")
    exit(1)

save_results(path.resolve(), args.filename)
예제 #7
0
              input_shape=(options.step_size, x.shape[1]),
              return_sequences=True))
model.add(
    Dense(units=y.shape[1], kernel_initializer='normal', activation='softmax'))
model.compile(loss='categorical_crossentropy',
              optimizer='adam',
              metrics=['accuracy'])
start_time = time.time()  # -------------------------------------------------┐
result = model.fit(
    x_train,
    y_train,  #                                         │
    validation_data=(x_test,
                     y_test),  #              train_time                 │
    callbacks=[earlyStopping, modelCheckpoint],  #                           │
    verbose=1,
    epochs=300)  #                                                  │
train_time = time.time() - start_time  # -------------------------------------┘
model.summary()

print('train_time = {}s'.format(train_time))

# write files
print('===== write files =====')
model = load_model(options.model_path)
common.save_results(ANN_NAME,
                    options=options,
                    model=model,
                    validation_data=(x_test, y_test),
                    fit_result=result,
                    train_time=train_time)
예제 #8
0
def calculate(sett):
    wep_type = sett['weapon']
    use_personal = sett['use_personal']
    use_primed = sett['use_primed']
    use_corrupted = sett['use_corrupted']
    use_faction = sett['use_faction']
    sortby = sett['sortby']
    num_of_top_results = sett['num_of_top_results']
    point_limit = sett['point_limit']

    builder_start = datetime.now()
    wep = get_item(wep_type)
    mod_types = get_list_from_dict(wep.type, weapon_type_dependencies)

    pers_mods = {}
    if use_personal:
        personal_mods = sett['personal_mods']
        for m_t in mod_types:
            if m_t not in personal_mods:
                continue
            pers_mods.update(personal_mods[m_t])
        mods_data = get_mods({'name': [name for name in pers_mods]})
    else:
        mods_data = get_mods({'type': mod_types})

    mods_data = dict((name, mod) for name, mod in mods_data.iteritems() if (use_primed or not mod.primed) and (use_corrupted or not mod.corrupted) and (use_faction or not mod.faction))

    if sett['use_mods_smart']:
        from common import stat_dependencies
        wanted_stats = get_list_from_dict(sortby, stat_dependencies)
        mods_data = dict((name, mod) for name, mod in mods_data.iteritems() if set(mod.s) & set(wanted_stats))

    if use_personal:
        all_mods = dict((name, [mod.get_ranked(rank) for rank in pers_mods[name]]) for name, mod in mods_data.iteritems())
    else:
        all_mods = dict((name, [mod.get_ranked(-1)]) for name, mod in mods_data.iteritems())

    incompatible_mods = get_incompatible({'type': mod_types})

    for inc_mod in incompatible_mods:
        if inc_mod[1] not in all_mods:
            continue
        if inc_mod[0] not in all_mods:
            all_mods[inc_mod[0]] = []
        all_mods[inc_mod[0]] += all_mods[inc_mod[1]]
        del all_mods[inc_mod[1]]

    num_of_mods = range(sett['num_of_mods_min'], sett['num_of_mods_max'] + 1)

    custom_polarities = sett['custom_polarities']
    if wep_type in custom_polarities:
        weap_pols = custom_polarities[wep_type]
        wep.set_polarities(weap_pols)
    else:
        weap_pols = wep.polarities
    print 'polarities:', weap_pols
    print 'mods:', all_mods
    all_stats = []

    mod_dict = all_mods

    mod_classes = sorted(mod_cls for mod_cls in mod_dict)
    poss_mods = tuple(all_mods[name] for name in mod_classes)

    for tmp_num_of_mods in num_of_mods:
        start = datetime.now()

        all_possible = 0
        mod_sets = []
        for mod_comb in combinations(poss_mods, tmp_num_of_mods):
            for prod in product(*mod_comb):
                mod_sets.append(prod)
                all_possible += 1

        end = datetime.now()
        if point_limit is not None:
            mod_sets = [mods for mods in mod_sets if effective_drain(mods, weap_pols) <= point_limit]
        end2 = datetime.now()

        m_s_len = len(mod_sets)
        print '%d mod combinations to try: %d (out of %d, eligible: %.2f%%, took: %s, took2: %s)' % (tmp_num_of_mods, m_s_len, all_possible, 0 if all_possible == 0 else 100.0 * float(m_s_len) / all_possible, end - start, end2 - start)
        # continue
        for i, mods in enumerate(mod_sets):
            if i % 100000 == 0 and i != 0:
                print 'i:', i
                all_stats.sort(key=lambda s: -s['stats'][sortby])
                all_stats = all_stats[:num_of_top_results]
            stats = wep.mod_with(mods, sett['limit_fr_of_non_auto'])
            all_stats.append({'stats': stats, 'mods': mods, 'base_stats': wep.s})

    all_stats.sort(key=lambda s: -s['stats'][sortby])
    all_stats = all_stats[:num_of_top_results]

    save_results(all_stats, wep.s, wep, use_personal, use_primed, use_corrupted, use_faction, sortby)

    print '%s | %s | %s | %s | %s | sorted by %s | av. pt. %s' % (wep.name, 'personal' if use_personal else 'best', 'primed' if use_primed else 'no primed', 'corrupted' if use_corrupted else 'no corrupted', 'faction' if use_faction else 'no faction', sortby, point_limit)
    print '############ BEST:'
    if len(all_stats) > 0:
        pretty_print_stats(all_stats[0])
        print 'used mods:', all_stats[0]['mods']
    else:
        print 'none :('

    builder_end = datetime.now()
    print '### builder took: %s' % (builder_end - builder_start)