# |- Reward rewarding = {'serve': Rs, 'wait': Rw, 'fail': Rf} # load from processed data session_df = pd.read_csv( filepath_or_buffer='../data/trace_dh3.dat', parse_dates=['startTime_datetime', 'endTime_datetime']) te = TrafficEmulator(session_df=session_df, time_step=time_step, head_datetime=head_datetime, tail_datetime=tail_datetime, rewarding=rewarding, verbose=2) ts = TrafficServer(cost=(Co, Cw), verbose=2) agent = Phi_QAgentNN( phi_length=phi_length, dim_state=dim_state, range_state=range_state, f_build_net=None, batch_size=batch_size, learning_rate=learning_rate, momentum=momentum, reward_scaling=reward_scaling, reward_scaling_update=reward_scaling_update, rs_period=rs_period, update_period=update_period, freeze_period=freeze_period, memory_size=memory_size,
session_df['totalBytes'] = session_df['bytesByDomain'].apply(lambda x: x.split(';')).map(lambda x: sum(map(float, x))) # sum bytes across domains session_df['totalRequests'] = session_df['requestsByDomain'].apply(lambda x: x.split(';')).map(lambda x: sum(map(float, x))) # sum requests across domains session_df.sort(['startTime_datetime'], ascending=True, inplace=True) # get it sorted session_df['interArrivalDuration_datetime'] = session_df.groupby('location')['startTime_datetime'].diff() # group-wise diff session_df['interArrivalDuration_ms'] = session_df.groupby('location')['startTime_unix'].diff() # group-wise diff print "Complete!" return session_df # Setting up data session_df = set_up_data("../data/net_traffic_nonull_sample.dat") # Setting up Emulation print "Setting up Emulation environment..." te = TrafficEmulator(session_df=session_df, time_step=pd.Timedelta(minutes=30), verbose=1) ts = TrafficServer(verbose=2) actions = [(True, None), (False, 'serve_all')] phi_length = 3 range_state_slice = [(0, 10), (0, 10), (0, 10), (0, 1), (0, 1)] agent = QAgentNNPhi( phi_length=phi_length, dim_state=(1, phi_length, 3+2), range_state=[[range_state_slice]*phi_length], actions=actions, learning_rate=0.01, reward_scaling=10, batch_size=100, freeze_period=50, memory_size=200, num_buffer=2, alpha=0.5, gamma=0.5, explore_strategy='epsilon', epsilon=0.02, verbose=2) c = QController(agent=agent) emu = Emulation(te=te, ts=ts, c=c)
import numpy as np import pandas as pd import json from sleep_control.traffic_server import TrafficServer pd.set_option('mode.chained_assignment', None) # Initialize ts = TrafficServer() byteSent_req_domain_list = [{'111.com': {1: 2}, '222.com': {1: 3}}, {'333.com': {1: 2}, '444.com': {1: 3}}, {'555.com': {1: 2}, '666.com': {1: 3}} ] traffic_df = pd.DataFrame(columns=['sessionID', 'uid', 'bytesSent_per_request_domain'], data={'sessionID': pd.Series([0, 1, 2]), 'uid': pd.Series([0, 1, 2]), 'bytesSent_per_request_domain': pd.Series([json.dumps(brd) for brd in byteSent_req_domain_list]) } ) print ts.observe(traffic_df=traffic_df) control = False, 'queue_all' print ts.get_service_and_cost(control=control) print ts.observe(traffic_df=traffic_df) control = False, 'serve_all' print ts.get_service_and_cost(control=control) print ts.observe(traffic_df=traffic_df) control = False, 'random_serve_and_queue' print ts.get_service_and_cost(control=control)
import sys sys.path.append('../..') import numpy as np import pandas as pd import json from sleep_control.traffic_server import TrafficServer pd.set_option('mode.chained_assignment', None) # Initialize ts = TrafficServer() byteSent_req_domain_list = [{ '111.com': { 1: 2 }, '222.com': { 1: 3 } }, { '333.com': { 1: 2 }, '444.com': { 1: 3 } }, { '555.com': { 1: 2 }, '666.com': {
# env Model model_type, traffic_window_size = 'IPP', 50 stride, n_iter, adjust_offset = 2, 3, 1e-22 eval_period, eval_len = 4, 100 n_belief_bins, max_queue_len = 5, 20 Rs, Rw, Rf, Co, Cs = 1.0, -1.0, -10.0, -5.0, -0.5 num_sim = 10 # Build entities rewarding = {'serve': Rs, 'wait': Rw, 'fail': Rf} te = TrafficEmulator(session_df=session_df, time_step=time_step, rewarding=rewarding, verbose=1) ts = TrafficServer(verbose=2, cost=(Co, Cs)) traffic_params = (model_type, traffic_window_size, stride, n_iter, adjust_offset, eval_period, eval_len, n_belief_bins) queue_params = (max_queue_len, ) reward_params = (Rs, Rw, Rf, Co, Cs, None) env_model = SJTUModel(traffic_params, queue_params, reward_params, verbose=1) agent = DynaQAgent(env_model=env_model, num_sim=num_sim, actions=actions, alpha=0.5, gamma=0.5, explore_strategy='epsilon', epsilon=0.1, verbose=2)