#!/usr/bin/python3 import collections import functools import time from lib.ArgParser import get_config, get_model_from_config from lib.Controller import simulate, ReplayController from lib.Cost import DeviationCost, NegativeCost from lib.Env import CentralHeatingHistoryEnv # ARGS config = get_config() name_past_future = ( ('past', ('temp_in', 'temp_out', 'mode'), tuple()), ('fore', ('temp_in', 'temp_out', 'mode'), ('temperature', 'wind_speed', 'radiation', 'humid')), ) for name, past, future in name_past_future: config['model_past_fields'] = past config['model_future_fields'] = future # MODEL start_time = time.clock() model = get_model_from_config(config) end_time = time.clock() # PLOT config['plot_fields'] = ['time', 'temp_in', 'temp_in_calc'] config['past_fields'] = ['mode'] config['past_values'] = 1 config['future_values'] = 0 # ENV env = CentralHeatingHistoryEnv() env.cost_class = DeviationCost env.model = model env.config = config env.reset() # MAIN controller = ReplayController() simulate(env, controller, render=False) print('RESULT {}_{}_{}_{}{} {} {} {}'.format(name, config['model_past_values'], config['aggregate'] or 1, config['model_type'], ('_' + str(config['model_epochs'])) if config['model_type']=='neural' else '', env.cost.costs['diff'], env.cost.costs['sq_err'], end_time - start_time))