示例#1
0
from marl import *
from writer import writeResults, makeResultsAverage

hosts_p = 14

results = marlExperiment(
    n_teams=2,  #5,
    n_inters=2,
    n_learners=3,
    host_range=[hosts_p, hosts_p],
    explore_episodes=0.3,
    episodes=10,  #500, Since mininet keeps running out of files even e/ cleanup
    episode_length=10000,
    separate_episodes=True,
    alpha=0.05,
    epsilon=0.2,
    discount=0,
    dt=0.01,
    rf="ctl",
    rand_seed=0xcafed00d)

writeResults("../../results/online-14.csv", results)

makeResultsAverage("../../results/online-14.csv",
                   "../../results/online-14-avg.csv")
from writer import writeResults, makeResultsAverage

hosts_p = 4

results = marlExperiment(
    n_teams=2,  #5,
    n_inters=2,
    n_learners=3,
    host_range=[hosts_p, hosts_p],
    explore_episodes=0.8,
    episodes=
    10,  #50,#500, Since mininet keeps running out of files even e/ cleanup
    episode_length=100000,
    separate_episodes=True,
    alpha=0.05,
    epsilon=0.2,
    discount=0,
    dt=0.05,

    #	old_style=True,
    rf="ctl",
    use_controller=True,
    actions_target_flows=True,
    estimate_const_limit=True,
)

writeResults("../../results/soln-ext-cap-4.csv", results)

makeResultsAverage("../../results/soln-ext-cap-4.csv",
                   "../../results/soln-ext-cap-4-avg.csv")
示例#3
0
    10,  #50,#500, Since mininet keeps running out of files even e/ cleanup
    episode_length=10000,
    separate_episodes=True,
    alpha=0.05,
    epsilon=0.2,
    discount=0.9,

    #model = "nginx",
    dt=0.05,  #0.01,

    #	old_style=True,
    rf="ctl",
    use_controller=True,

    #reward_direction = "out",
    actions_target_flows=True,
    #estimate_const_limit = True,
    spiffy_mode=True,
    #randomise = True,
    #randomise_count = 1,
    #randomise_new_ip = True,
    split_codings=True,
    trs_maxtime=0.001,
    feature_max=18,
    single_learner=True,
)

writeResults("../../results/spf-d5.csv", results)

makeResultsAverage("../../results/spf-d5.csv", "../../results/spf-d5-avg.csv")
示例#4
0
from marl import *
from writer import writeResults, makeResultsAverage

host_p = 8

results = marlExperiment(
    n_teams=2,  #5,
    n_inters=2,
    n_learners=3,
    host_range=[host_p, host_p],
    explore_episodes=0.8,
    episodes=
    10,  #50,#500, Since mininet keeps running out of files even e/ cleanup
    episode_length=10000,
    separate_episodes=True,
    alpha=0.05,
    epsilon=0.2,
    discount=0,
    dt=0.05,  #0.01,

    #	old_style=True,
    rf="ctl")

writeResults("../../results/online-8-e-8.csv", results)

makeResultsAverage("../../results/online-8-e-8.csv",
                   "../../results/online-8-e-8-avg.csv")
示例#5
0
from marl import *
from writer import writeResults, makeResultsAverage

results = marlExperiment(
	n_teams = 5,

	n_inters = 2,
	n_learners = 3,
	host_range = [2, 2],

	explore_episodes = 0.3,
	episodes = 50,#500, Since mininet keeps running out of files even e/ cleanup
	episode_length = 10000,
	separate_episodes = True,

	alpha = 0.05,
	epsilon = 0.2,
	discount = 0,
	#break_equal = True,

	dt = 0.01,

#	old_style=True,

	rf = "ctl"
)

writeResults("../../results/online-uneven.csv", results)

makeResultsAverage("../../results/online-uneven.csv", "../../results/online-avg-uneven.csv")
hosts_p = 16

results = marlExperiment(
    n_teams=2,  #5,
    n_inters=2,
    n_learners=3,
    host_range=[hosts_p, hosts_p],
    explore_episodes=0.8,
    episodes=
    10,  #50,#500, Since mininet keeps running out of files even e/ cleanup
    episode_length=100000,
    separate_episodes=True,
    alpha=0.05,
    epsilon=0.2,
    discount=0,
    dt=0.01,

    #	old_style=True,
    rf="ctl",
    use_controller=True,
    actions_target_flows=True,

    #estimate_const_limit = True,
)

writeResults("../../results/soln-ext-16.csv", results)

makeResultsAverage("../../results/soln-ext-16.csv",
                   "../../results/soln-ext-16-avg.csv")
示例#7
0
from marl import *
from writer import writeResults, makeResultsAverage

results = marlExperiment(
    n_teams=2,  #5,
    n_inters=2,
    n_learners=3,
    host_range=[2, 2],
    explore_episodes=0.3,
    episodes=
    15,  #50,#500, Since mininet keeps running out of files even e/ cleanup
    episode_length=10000,
    separate_episodes=True,
    alpha=0.05,
    epsilon=0.2,
    discount=0,
    dt=0.05,  #0.01,

    #	old_style=True,
    rf="ctl")

writeResults("../../results/online-2.csv",
             results,
             times_dir="../../results/old-calc-times.csv")

makeResultsAverage("../../results/online-2.csv",
                   "../../results/online-2-avg.csv")
示例#8
0
results = marlExperiment(
	n_teams = 2,#5,

	n_inters = 2,
	n_learners = 3,
	host_range = [hosts_p, hosts_p],

	explore_episodes = 0.3,
	episodes = 10,#50,#500, Since mininet keeps running out of files even e/ cleanup
	episode_length = 10000,
	separate_episodes = True,

	alpha = 0.05,
	epsilon = 0.2,
	discount = 0,

	dt = 0.05,#0.01,

#	old_style=True,

	rf = "ctl",
	use_controller = True,
	actions_target_flows = True,

)

writeResults("../../results/soln-8.csv", results)

makeResultsAverage("../../results/soln-8.csv", "../../results/soln-8-avg.csv")
    # test to handle bi-directional
    evil_range=[4, 7],
    explore_episodes=0.8,
    episodes=
    10,  #50,#500, Since mininet keeps running out of files even e/ cleanup
    episode_length=10000,
    separate_episodes=True,
    alpha=0.05,
    epsilon=0.2,
    discount=0,
    model="nginx",
    dt=0.05,  #0.01,

    #	old_style=True,
    rf="ctl",
    use_controller=True,
    reward_direction="out",
    actions_target_flows=True,
    estimate_const_limit=True,
    spiffy_mode=True,
    randomise=True,
    randomise_count=1,
    randomise_new_ip=False,
    split_codings=True,
)

writeResults("../../results/spf-8-ng.csv", results)

makeResultsAverage("../../results/spf-8-ng.csv",
                   "../../results/spf-8-avg-ng.csv")
示例#10
0
from marl import *
from writer import writeResults, makeResultsAverage

results = marlExperiment(
    P_good=1,
    n_teams=2,  #5,
    n_inters=2,
    n_learners=3,
    host_range=[2, 2],
    explore_episodes=0.3,
    episodes=
    10,  #50,#500, Since mininet keeps running out of files even e/ cleanup
    episode_length=10000,
    separate_episodes=True,
    alpha=0.05,
    epsilon=0.2,
    discount=0,
    model="nginx",
    submodel="http",
    dt=0.05,  #0.01,

    #	old_style=True,
    rf="ctl",
    use_controller=True,
)

writeResults("../../results/ag-http.csv", results)

makeResultsAverage("../../results/ag-http.csv",
                   "../../results/ag-http-avg.csv")
示例#11
0
from marl import *
from writer import writeResults, makeResultsAverage

results = marlExperiment(
    n_teams=5,
    n_inters=2,
    n_learners=3,
    host_range=[2, 2],
    explore_episodes=0.3,
    episodes=
    10,  #50,#500, Since mininet keeps running out of files even e/ cleanup
    episode_length=10000,
    separate_episodes=True,
    alpha=0.05,
    epsilon=0.2,
    discount=0,
    dt=0.05,  #0.01,

    #	old_style=True,
    with_ratio=True,
    rf="ctl")

writeResults("../../results/online-scale.csv", results)

makeResultsAverage("../../results/online-scale.csv",
                   "../../results/online-scale-avg.csv")
示例#12
0
from marl import *
from writer import writeResults, makeResultsAverage, lastTimestepsAndEpAverages
import subprocess
import cPickle

pickle_name = "../../results/offline.pkl"
total_eps = 10000  #0
block_size = 50

# Create the file
writeResults("../../results/offline.csv", ([], [], [], [], None))

# Run these, batch into sets of 50.
for i in xrange(0, total_eps, block_size):
    remaining = total_eps - i
    local_block = block_size if remaining >= block_size else remaining
    subprocess.call([
        "python", "offline-internal.py", pickle_name,
        str(local_block),
        str(total_eps),
        str(int(i != 0))
    ])

# Combine final results.
lastTimestepsAndEpAverages("../../results/offline.csv",
                           "../../results/offline-avg.csv")
results = marlExperiment(
	n_teams = 2,#5,

	n_inters = 2,
	n_learners = 3,
	host_range = [2, 2],

	explore_episodes = 0.3,
	episodes = 10,#50,#500, Since mininet keeps running out of files even e/ cleanup
	episode_length = 10000,
	separate_episodes = True,

	alpha = 0.05,
	epsilon = 0.2,
	discount = 0,

	dt = 0.05,#0.01,

#	old_style=True,

	rf = "ctl",

	override_action = 0.0,
	manual_early_limit = 26.0,
)

writeResults("../../results/baseline-2.csv", results)

makeResultsAverage("../../results/baseline-2.csv", "../../results/baseline-2-avg.csv")
示例#14
0
results = marlExperiment(
	n_teams = 5,

	n_inters = 2,
	n_learners = 3,
	host_range = [2, 2],

	explore_episodes = 0.3,
	episodes = 10,#50,#500, Since mininet keeps running out of files even e/ cleanup
	episode_length = 10000,
	separate_episodes = True,

	alpha = 0.05,
	epsilon = 0.2,
	discount = 0,
	break_equal = True,

	dt = 0.01,

#	old_style=True,
	protect_final_hop = False,

	with_ratio = True,

	rf = "ctl"
)

writeResults("../../results/online-noprot.csv", results)

makeResultsAverage("../../results/online-noprot.csv", "../../results/online-noprot-avg.csv")
from writer import writeResults, makeResultsAverage

hosts_p = 2

results = marlExperiment(
    n_teams=2,  #5,
    n_inters=2,
    n_learners=3,
    host_range=[hosts_p, hosts_p],
    explore_episodes=0.3,
    episodes=
    10,  #50,#500, Since mininet keeps running out of files even e/ cleanup
    episode_length=10000,
    separate_episodes=True,
    alpha=0.05,
    epsilon=0.2,
    discount=0,
    dt=0.05,

    #	old_style=True,
    rf="ctl",
    use_controller=True,
    actions_target_flows=True,
    estimate_const_limit=True,
)

writeResults("../../results/soln-cap-2.csv", results)

makeResultsAverage("../../results/soln-cap-2.csv",
                   "../../results/soln-cap-2-avg.csv")
示例#16
0
from marl import *
from writer import writeResults, makeResultsAverage

results = marlExperiment(
    n_teams=2,  #5,
    n_inters=2,
    n_learners=3,
    host_range=[2, 2],
    explore_episodes=0.3,
    episodes=
    10,  #50,#500, Since mininet keeps running out of files even e/ cleanup
    episode_length=10000,
    separate_episodes=True,
    alpha=0.05,
    epsilon=0.2,
    discount=0,
    model="nginx",
    submodel="udp-flood",
    dt=0.05,  #0.01,

    #	old_style=True,
    rf="ctl",
    use_controller=True,
)

writeResults("../../results/a-udp.csv", results)

makeResultsAverage("../../results/a-udp.csv", "../../results/a-udp-avg.csv")
	params["topol"] = topol
	deps.append(topols)

	if model_prefix == "spiffy":
		spiffy_count = int(0.1 * float(host_p * 12))
		if topol == "ecmp":
			spiffy_count *= 3
		params["spiffy_max_experiments"] = spiffy_count
		params["spiffy_min_experiments"] = spiffy_count

	results = marlExperiment(**params)
	(rewards, good_traffic_percents, total_loads, store_sarsas, rng, action_comps) = results

	file_name_part = "tnsm-highdensitylowwidth-{}".format(host_p)
	file_name = file_name_part + ".csv"
	file_name_avg = file_name_part + ".avg.csv"
	file_name_sarsas = file_name_part + ".pickle"
	file_name_deltas = file_name_part + ".deltas.csv"

	csv_dir = results_dir + file_name
	avg_csv_dir = results_dir + file_name_avg
	sarsas_dir = results_dir + file_name_sarsas
	deltas_dir = results_dir + file_name_deltas

	writeResults(csv_dir, results)
	makeResultsAverage(csv_dir, avg_csv_dir)
	dumbWriter(deltas_dir, action_comps)
	with open(sarsas_dir, "wb") as f:
		cPickle.dump(store_sarsas, f)
	print "{} would write to: {}".format(experiment, csv_dir)
    n_learners=3,
    host_range=[2, 2],

    # test to handle bi-directional
    evil_range=[4, 7],
    explore_episodes=0.3,
    episodes=
    10,  #50,#500, Since mininet keeps running out of files even e/ cleanup
    episode_length=10000,
    separate_episodes=True,
    alpha=0.05,
    epsilon=0.2,
    discount=0,
    model="nginx",
    dt=0.05,  #0.01,

    #	old_style=True,
    rf="ctl",
    use_controller=True,
    reward_direction="out",
    actions_target_flows=True,
    manual_early_limit=26.0,
)

writeResults("../../results/soln-2-ng.csv",
             results,
             times_dir="../../results/new-calc-times.csv")

makeResultsAverage("../../results/soln-2-ng.csv",
                   "../../results/soln-2-avg-ng.csv")
results = marlExperiment(
    n_teams=2,  #5,
    n_inters=2,
    n_learners=3,
    host_range=[hosts_p, hosts_p],
    explore_episodes=0.3,
    episodes=
    10,  #50,#500, Since mininet keeps running out of files even e/ cleanup
    episode_length=10000,
    separate_episodes=True,
    alpha=0.05,
    epsilon=0.2,
    discount=0,
    model="nginx",
    dt=0.05,  #0.01,

    #	old_style=True,
    rf="ctl",
    use_controller=True,
    reward_direction="out",
    evil_range=[4, 7],
    randomise=True,
    randomise_count=3,
    randomise_new_ip=True,
)

writeResults("../../results/online-{}-ng.csv".format(hosts_p), results)

makeResultsAverage("../../results/online-{}-ng.csv".format(hosts_p),
                   "../../results/online-{}-avg-ng.csv".format(hosts_p))
	explore_episodes = 0.3,
	episodes = 10,#50,#500, Since mininet keeps running out of files even e/ cleanup
	episode_length = 10000,
	separate_episodes = True,

	alpha = 0.05,
	epsilon = 0.2,
	discount = 0,

	model = "nginx",

	dt = 0.05,#0.01,

#	old_style=True,

	rf = "ctl",
	use_controller = True,

	override_action = 0.0,
	#manual_early_limit = 26.0,
	reward_direction = "out",

	randomise = True,
	randomise_count = 3,
)

writeResults("../../results/baseline-2-uncap-ng.csv", results)

makeResultsAverage("../../results/baseline-2-uncap-ng.csv", "../../results/baseline-2-uncap-avg-ng.csv")