Source code for runner_multiday

import joblib
import json

from input_data import data_reader
from error_terms import GaussianError, EVError
from simulation import MultidayMIP


DATA = joblib.load('../data/example_data_multiday.joblib')
TT = joblib.load('../data/example_tt_multiday.joblib')
PARAMS = json.load(open('../data/example_parameters_multiday.json', 'r'))

UTILITY_PARAMS = {
    'error_w': GaussianError(),
    'error_x': GaussianError(),
    'error_d': GaussianError(),
    'error_z': GaussianError(),
    'error_ev': EVError()
    }

N_ITER = 5
N_DAYS = 7
DAY_INDEX = [*range(1,8)]
SETTINGS =  {'optimality_target': 3, 'time_limit': 150}


[docs]def main(): """Run multiday simulation""" dataset = data_reader(DATA,PARAMS) new_simulation = MultidayMIP(dataset, UTILITY_PARAMS,TT, n_days=N_DAYS, day_index=DAY_INDEX, **SETTINGS) results = new_simulation.run(N_ITER,verbose = 2) #visualise results results.plot(plot_iter = 2, save_fig='png') #plot iteration 2 results.plot_distribution(days = [*range(1,6)], figure_size= [7,4], save_fig= 'png') #time of day distribution for weekdays results.plot_distribution(days = [6,7], figure_size= [7,4], save_fig= 'png') #time of day distribution for weekends results.compute_statistics(['home', 'work', 'leisure'], days = [*range(1,6)]) #stats for weekdays results.compute_statistics(['home', 'work', 'leisure'], days = [6,7]) #stats for weekends
if __name__ == '__main__': main()