Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Develop #17

Merged
merged 27 commits into from
May 9, 2019
Merged
Changes from 1 commit
Commits
Show all changes
27 commits
Select commit Hold shift + click to select a range
5a3dcce
trying global variables
jsadler2 Mar 12, 2019
6cb1d06
starting to make swmm_mpc_run class
jsadler2 Mar 12, 2019
0caf133
should be working with init fxn
jsadler2 Mar 13, 2019
433bf6a
works with config file
jsadler2 Mar 14, 2019
4ddeeb3
added default ea params, fixed mutate bug
jsadler2 Mar 18, 2019
3983694
moved getting first item from ind for ga
jsadler2 Mar 18, 2019
bc4a356
added GPyOpt to setup
jsadler2 Mar 18, 2019
1c9af1e
runs bae opt (one time step both opts)
jsadler2 Mar 18, 2019
236a3cd
test for split_gene_by_ctl_str_ids
jsadler2 Mar 18, 2019
5a9d3f5
some flexibility in finding time step
jsadler2 Mar 18, 2019
6c24427
initial commit run_baeopt
jsadler2 Mar 18, 2019
a3699a6
array from bae opt squeezed
jsadler2 Mar 18, 2019
f2f31b5
working with baeopt
jsadler2 Mar 18, 2019
7d35ac7
calling correct evaluation fxn in run_ea
jsadler2 Mar 18, 2019
e444c46
broke out get_cost, prep_files in evaluate
jsadler2 Mar 19, 2019
fa052a1
added initial guesses, support multiple timesteps
jsadler2 Mar 19, 2019
45dd8bc
added initial guess for 2step
jsadler2 Mar 19, 2019
da3f604
initial guess is set to correct thing"
jsadler2 Mar 19, 2019
ea9452d
moved initial guess, no print results_df
jsadler2 Mar 19, 2019
89b6734
writes the vars of run to the file
jsadler2 Mar 19, 2019
523177b
added pool.close(), pool.join() stop mem leaks
jsadler2 Apr 11, 2019
63820cf
Merge branch 'baeopt' of github.com:UVAdMIST/swmm_mpc into baeopt
jsadler2 Apr 11, 2019
7f3ec21
Merge pull request #15 from UVAdMIST/baeopt
jsadler2 Apr 24, 2019
1cbca7c
removes all files from 'workdir' at end
jsadler2 May 3, 2019
cce5c26
updated readme with config file info
jsadler2 May 9, 2019
2299e5f
formatting fix readme
jsadler2 May 9, 2019
c7df2ec
Merge branch 'master' into develop
jsadler2 May 9, 2019
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Prev Previous commit
Next Next commit
runs bae opt (one time step both opts)
  • Loading branch information
jsadler2 committed Mar 18, 2019
commit 1c9af1e6dd706eb418a1697a6fbd7ebb6fdb50b0
28 changes: 19 additions & 9 deletions swmm_mpc/swmm_mpc.py
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@
import evaluate as ev
import run_ea as ra
import json
# import run_baeopt as bo
import run_baeopt as bo

run = None

Expand All @@ -28,13 +28,21 @@ def __init__(self, config_file):
self.work_dir = os.path.abspath(config_dict['work_dir'])
self.results_dir = os.path.abspath(config_dict['results_dir'])
self.opt_method = config_dict['opt_method']
self.optimization_params = config_dict['optimization_params']
self.optimization_params = config_dict.get('optimization_params', {})
if 'num_cores' in self.optimization_params:
if type(self.optimization_params['num_cores']) != int:
self.optimization_params['num_cores'] = 1
else:
self.optimization_params['num_cores'] = 1
self.run_suffix = config_dict['run_suffix']
self.target_depth_dict = config_dict.get('target_depth_dict', None)
self.node_flood_weight_dict = config_dict.get('node_flood_weight_dict',
None)
self.flood_weight = config_dict.get('flood_weight', 1)
self.dev_weight = config_dict.get('dev_weight', 0)
if self.target_depth_dict:
self.dev_weight = config_dict.get('dev_weight', 1)
else:
self.dev_weight = config_dict.get('dev_weight', 0)
self.log_file = os.path.join(self.results_dir,
'log_{}'.format(self.run_suffix))

Expand Down Expand Up @@ -130,18 +138,20 @@ def run_swmm_mpc(config_file):

if run.opt_method == 'genetic_algorithm':
best_policy, cost = ra.run_ea(run.work_dir, config_file,
**run.optimization_params)
run.optimization_params)
elif run.opt_method == 'bayesian_opt':
pass
# best_policy, cost = bo.run_baeopt(optimization_params)
best_policy, cost = bo.run_baeopt(run.optimization_params)
else:
raise ValueError(
'{} not valid opt method'.format(run.opt_method)
)
print best_policy, cost

best_policy_fmt = ev.gene_to_policy_dict(best_policy,
run.ctl_str_ids,
run.n_ctl_steps)
# fix this
best_policy_fmt = ev.format_policies(best_policy,
run.ctl_str_ids,
run.n_ctl_steps,
run.opt_method)
best_policy_ts = update_policy_ts_list(best_policy_fmt,
current_dt,
run.ctl_time_step,
Expand Down