-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathautomatic_qor.py
45 lines (29 loc) · 5.54 KB
/
automatic_qor.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
import logging
import hydra
from omegaconf import DictConfig
from src.result import result_exists, get_result_name
from src.scenario import Scenario
# hotfix for Prophet: https://github.com/facebook/prophet/issues/2595
import numpy as np
np.float_ = np.float64
logger = logging.getLogger("gurobipy")
logger.propagate = False
# TODO currently hardcoded
BUDGETS = {'24': {'static_e6': {'CISO': 367.90798732070476, 'ERCOT': 534.7092352568214, 'PJM': 558.5277177108892, 'NYISO': 407.626099385168, 'SE': 77.4982087718763, 'DE': 546.3452401048986, 'PL': 1059.9260260694432, 'ES': 244.35447762634112, 'NL': 401.4052428231001, 'AU-QLD': 787.1259331407363}, 'normal_e6': {'CISO': 372.6747254355083, 'ERCOT': 539.6926532545642, 'PJM': 562.7816922161348, 'NYISO': 411.02428727496596, 'SE': 78.08267697186612, 'DE': 553.4132557915426, 'PL': 1070.7113710052126, 'ES': 247.64018177062815, 'NL': 407.613895689256, 'AU-QLD': 797.3263446983426}, 'wiki_en': {'CISO': 1202.4747104555918, 'ERCOT': 1794.5775524615656, 'PJM': 1888.7608638025886, 'NYISO': 1380.4407883114932, 'SE': 261.1314213774997, 'DE': 1885.7362384814844, 'PL': 3627.5379206335365, 'ES': 830.9385310623999, 'NL': 1381.732678413523, 'AU-QLD': 2712.7897319705703}, 'wiki_de': {'CISO': 155.05755971758234, 'ERCOT': 225.4530455386383, 'PJM': 239.17723585536606, 'NYISO': 175.0793321558517, 'SE': 33.43743082668582, 'DE': 232.58318147884884, 'PL': 447.4889289790913, 'ES': 99.69903056995207, 'NL': 166.98853856791172, 'AU-QLD': 382.5587631666257}, 'taxi_all': {'CISO': 118.22077887031774, 'ERCOT': 177.59870488609118, 'PJM': 186.712232068494, 'NYISO': 136.68575183982082, 'SE': 25.869297705678193, 'DE': 182.8114867383661, 'PL': 353.8949934922388, 'ES': 80.30385060809353, 'NL': 133.99916927698803, 'AU-QLD': 285.4265025178448}, 'google_b': {'CISO': 720.3429261878784, 'ERCOT': 1041.7702732542157, 'PJM': 1085.8044713636953, 'NYISO': 794.5265240375384, 'SE': 150.84383226242383, 'DE': 1071.508646387482, 'PL': 2071.6942350083773, 'ES': 479.8280384823061, 'NL': 788.4568225896664, 'AU-QLD': 1545.3227778937132}, 'google_d': {'CISO': 1074.5152410874903, 'ERCOT': 1534.8190751380303, 'PJM': 1600.6080714113416, 'NYISO': 1168.6843163604444, 'SE': 223.18482761416797, 'DE': 1562.7995941542829, 'PL': 3034.4880357927887, 'ES': 699.7314180871092, 'NL': 1149.6355226426535, 'AU-QLD': 2318.538622539761}, 'google_f': {'CISO': 586.9301942222105, 'ERCOT': 849.8177555172282, 'PJM': 884.046806217276, 'NYISO': 645.9316989372189, 'SE': 122.78835099417573, 'DE': 870.1011533591117, 'PL': 1680.9065635069107, 'ES': 388.2145635426057, 'NL': 640.2884677328018, 'AU-QLD': 1247.6956126676905}}, '168': {'static_e6': {'CISO': 367.5385985449514, 'ERCOT': 528.9495402624129, 'PJM': 557.0835895561318, 'NYISO': 406.2858874979051, 'SE': 77.09025767184042, 'DE': 536.7741304781898, 'PL': 1054.0910140315827, 'ES': 242.36774016393593, 'NL': 395.51213698200206, 'AU-QLD': 787.2004822667025}, 'normal_e6': {'CISO': 369.19405229093906, 'ERCOT': 531.3695804625412, 'PJM': 559.0543146548417, 'NYISO': 408.0153046764395, 'SE': 77.43487712133629, 'DE': 540.7894363553293, 'PL': 1059.7141723301172, 'ES': 244.06383179561433, 'NL': 398.75144064825815, 'AU-QLD': 789.3685229682229}, 'wiki_en': {'CISO': 1194.2167567245851, 'ERCOT': 1771.9496495252142, 'PJM': 1881.2758975109493, 'NYISO': 1374.0470667054365, 'SE': 259.4532069795612, 'DE': 1848.2621249472395, 'PL': 3597.6071276512903, 'ES': 820.9082233164111, 'NL': 1356.6486459772361, 'AU-QLD': 2700.62493842968}, 'wiki_de': {'CISO': 153.19118567008863, 'ERCOT': 222.11291568616272, 'PJM': 237.05865075148415, 'NYISO': 173.13131342458914, 'SE': 33.12669209392798, 'DE': 227.76506635152745, 'PL': 442.65256399702787, 'ES': 98.49449946590988, 'NL': 164.18855411816415, 'AU-QLD': 380.2719964588574}, 'taxi_all': {'CISO': 117.1927927031576, 'ERCOT': 174.69210396772817, 'PJM': 184.47799381516853, 'NYISO': 135.27093018474037, 'SE': 25.61189061013205, 'DE': 179.1340327667342, 'PL': 350.46461147886225, 'ES': 79.2072361692538, 'NL': 131.50055453291992, 'AU-QLD': 281.7377485518591}, 'google_b': {'CISO': 711.9261538959249, 'ERCOT': 1027.0033503031495, 'PJM': 1080.8435210769558, 'NYISO': 790.1332152886653, 'SE': 149.79230796229297, 'DE': 1047.383647594686, 'PL': 2050.2282079670113, 'ES': 472.1648313981039, 'NL': 770.3631788381667, 'AU-QLD': 1528.111180177345}, 'google_d': {'CISO': 1063.894187234842, 'ERCOT': 1512.4920256376893, 'PJM': 1593.1626288817292, 'NYISO': 1161.791218303382, 'SE': 221.45158469671262, 'DE': 1530.500024511052, 'PL': 3005.625313787733, 'ES': 690.1126910774835, 'NL': 1125.9850822718142, 'AU-QLD': 2293.426199468554}, 'google_f': {'CISO': 581.796022189844, 'ERCOT': 838.2023976588276, 'PJM': 880.1568679606959, 'NYISO': 642.4732742432545, 'SE': 121.90766707249217, 'DE': 851.713443948431, 'PL': 1664.5699586678727, 'ES': 382.8477730107065, 'NL': 627.2316621160397, 'AU-QLD': 1237.1981626712854}}}
@hydra.main(version_base=None, config_path="./config", config_name="config")
def app(cfg: DictConfig):
scenario = Scenario.from_config(cfg)
optimizer = hydra.utils.instantiate(cfg.optimizer)
# assuming cp=24, qor_mis=0.5
budget = BUDGETS["168"][cfg.requests_dataset][cfg.region]
# TODO passing info is not super clean
result_name = get_result_name(scenario, optimizer, info={"budget": budget})
print(f"Running {result_name}...", flush=True)
if result_exists(result_name, result_dir=cfg.result_dir):
print(f"Skipping existing result")
return
result = optimizer.maximize_qor(scenario, budget=budget, experiment_name=result_name)
result.print_stats()
result.save(result_dir=cfg.result_dir)
if __name__ == "__main__":
app()