#!/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'), ()),
|
)
|
|
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)
|
|
model = config['model_type'].split('_')[-1]
|
if model == 'neural':
|
model = 'base'
|
print('RESULT {} {} {} {}'.format(model, env.cost.costs['diff'], env.cost.costs['sq_err'], end_time - start_time))
|