├── Datasets
├── System-Loads-in-EEI-format
│ ├── 1.txt
│ ├── 1980_eei_loads.txt
│ ├── 1981_eei_loads.txt
│ ├── 1982_eei_loads.txt
│ ├── 1983_eei_loads.txt
│ ├── 1984_eei_loads.txt
│ ├── 1985_eei_loads.txt
│ ├── 1986_eei_loads.txt
│ ├── 1987_eei_loads.txt
│ ├── 1988_eei_loads.txt
│ ├── 1989_eei_loads.txt
│ ├── 1990_eei_loads.txt
│ ├── 1991_eei_loads.txt
│ ├── 1992_eei_loads.txt
│ ├── 1993_eei_loads.txt
│ ├── 1994_eei_loads.txt
│ ├── 1995_eei_loads.txt
│ ├── 1996_eei_loads.txt
│ ├── 1997_eei_loads.txt
│ ├── 1998_eei_loads.txt
│ ├── 1999_eei_loads.txt
│ ├── 2000_eei_loads.txt
│ ├── 2001_eei_loads.txt
│ ├── 2002_eei_loads.txt
│ ├── 2003_eei_loads.txt
│ ├── 2004_eei_loads.txt
│ ├── 2005_eei_loads.txt
│ ├── 2006_eei_loads.txt
│ ├── 2007_eei_loads.txt
│ ├── 2008_eei_loads.txt
│ ├── 2009_eei_loads.txt
│ ├── 2010_eei_loads.txt
│ ├── 2011_eei_loads.txt
│ ├── 2012_eei_loads.txt
│ ├── 2013_eei_loads.txt
│ ├── 2014_eei_loads.txt
│ ├── 2015_eei_loads.txt
│ └── 2016_eei_loads.txt
└── Zonal-hourly-data
│ ├── 1.txt
│ ├── 2003_smd_hourly.xls
│ ├── 2004_smd_hourly.xls
│ ├── 2005_smd_hourly.xls
│ ├── 2006_smd_hourly.xls
│ ├── 2007_smd_hourly.xls
│ ├── 2008_smd_hourly.xls
│ ├── 2009_smd_hourly.xls
│ ├── 2010_smd_hourly.xls
│ ├── 2011_smd_hourly.xls
│ ├── 2012_smd_hourly.xls
│ ├── 2013_smd_hourly.xls
│ ├── 2014_smd_hourly.xls
│ ├── smd_daily.xls
│ ├── smd_hourly.xls
│ └── smd_monthly.xls
├── Holidays.xls
├── Introduction to Load & Price Forecasting Case Study.pdf
├── LICENSE
├── Load & Price Forecasting Webinar Slides.pdf
├── LoadScriptNN.m
├── LoadScriptTrees.m
├── PriceScriptNN.m
├── README.md
├── TreesInDetail.m
├── comparePredictors.m
├── createHolidayDates.m
├── dynamicDateTicks.m
├── fetchDBPriceData.m
├── filterDates.m
├── fit_plot.m
├── gen_predictors.m
├── importData.m
├── loadForecast.m
└── trainAndTestNN.m
/Datasets/System-Loads-in-EEI-format/1.txt:
--------------------------------------------------------------------------------
1 | System Loads in EEI format
2 |
--------------------------------------------------------------------------------
/Datasets/System-Loads-in-EEI-format/1981_eei_loads.txt:
--------------------------------------------------------------------------------
1 | 1 1810 4 9389 8918 8505 8249 8145 8182 8399 8552 8968 9477 993710240
2 | 1 1810 4 1029910154 9946 9929106571131011157108621055910176 9543 8782
3 | 1 2810 5 8256 7796 7616 7547 7596 7934 8695 983510797114701182411875
4 | 1 2810 5 116361141311244112151213113153128941256312205116461097110246
5 | 1 3810 6 9571 9168 8954 8880 8869 9085 94841008710974116831207512128
6 | 1 3810 6 1194011648113601126312139129291266312255118291130110661 9987
7 | 1 4810 7 9702 9298 9103 9021 9047 9194 9485 981010457110291143711792
8 | 1 4810 7 119351174811612116711260213572135371322413058125841182310987
9 | 1 5810 1 104871013610037 99611007410769125281418714797149771493314690
10 | 1 5810 1 143191407213731135451435815134147811432413934131571205210878
11 | 1 6810 2 10109 9730 9576 9496 962310218118581359214040140771405413838
12 | 1 6810 2 135291352313307132001392514580141391363713150123131120610145
13 | 1 7810 3 9120 8771 8557 8445 8471 9043104881219112787131391325013234
14 | 1 7810 3 130081296412679125361335714083137761346013074124481141210394
15 | 1 8810 4 9729 9461 9356 9342 948910082118581368314201143101433014133
16 | 1 8810 4 137981371013507134171420515082148321447414027132991232211193
17 | 1 9810 5 1041610060 9918 9883 996610528122551399514518145951451314216
18 | 1 9810 5 138761377013564133351387414537142291377113303126341171910672
19 | 110810 6 9882 9392 9098 8954 8938 9124 95831037911339121231244312446
20 | 110810 6 121401174611411113021206813247130991264712336118901123110545
21 | 111810 7 9971 9586 9370 9265 9291 9397 97131001110726113361163311882
22 | 111810 7 118681156511305112351207513074130741289112620121841143210624
23 | 112810 1 10095 9903 9803 9820 997610661125951440315045151911514014893
24 | 112810 1 144941429214020137871458415505152021487214478137001266411521
25 | 113810 2 107111045710310103451033111014127031444614957150591503014742
26 | 113810 2 143581418413806136321434315273149741459114152134341245011254
27 | 114810 3 105391019410040100911006210654124451406614614146221452414299
28 | 114810 3 139901394213653134431408614809144391403913557128291185510856
29 | 115810 4 10030 9649 9477 9381 941210012114991310413836141271425714039
30 | 115810 4 136851362913411132711387614513142661381413432125541161710538
31 | 116810 5 9748 9377 9213 9167 9237 9818113951313813836140661404113900
32 | 116810 5 135581349913205130071341414077137011319912675119301099610031
33 | 117810 6 9241 8813 8590 8477 8528 8707 9177 993110962117291207412066
34 | 117810 6 117811154511286112271181812963126931232111894114681090610216
35 | 118810 7 9633 9194 8940 8787 8734 8816 9082 940910131106731095211142
36 | 118810 7 1101110647103001022110870118691185811596114081089410126 9345
37 | 119810 1 8724 8403 8288 8213 8333 8957108351255513153132401320113006
38 | 119810 1 1261912437122001200412717135701336612862124841168310597 9556
39 | 120810 2 8788 8349 8184 8117 8213 8826105911235112910129551297712805
40 | 120810 2 124261252412292121241271313872136311322912737121631118110107
41 | 121810 3 9384 9071 8900 8890 9030 9729115401328513812137751360913291
42 | 121810 3 128631271412431122481285713991137541341213003123601133510181
43 | 122810 4 9457 9136 8952 8909 8962 9561112641311113712138201387713644
44 | 122810 4 1335313240129611267913155139111368113230128021199010920 9848
45 | 123810 5 9011 8640 8398 8324 8408 8994107131247412948130071289212720
46 | 123810 5 1240612385121411194512272131371295612512120141137810534 9642
47 | 124810 6 8794 8332 8092 7927 7940 8098 8581 932910446111381142511272
48 | 124810 6 10842104351012410049106221178411673112111078310304 9693 9066
49 | 125810 7 8492 8098 7880 7758 7760 7893 8145 8507 9181 9641 9860 9983
50 | 125810 7 9853 9452 9105 9020 95561071810922107321050610067 9379 8607
51 | 126810 1 8055 7773 7645 7564 7696 8346101401199812734131331308513030
52 | 126810 1 1270812614123821217612745134871301812561120301127110138 9099
53 | 127810 2 8202 7675 7681 7614 7662 8526 99941178512365123681232012120
54 | 127810 2 1176611815115821141711993129091277412227118231106110080 9008
55 | 128810 3 8285 7951 7817 7705 7846 8483102531204512649127501273512552
56 | 128810 3 1221212143118921168012220132361310112726123071158210504 9415
57 | 129810 4 8687 8307 8144 8064 8154 8790105081237313037131791322013059
58 | 129810 4 128091280112605124741296513839137561339912993122651121710097
59 | 130810 5 9369 9034 8885 8788 8926 9540113361295813509136581361213331
60 | 130810 5 129041277312480123131258113556136741323812811122011144910536
61 | 131810 6 9754 9324 9115 8983 8977 9147 95881032411232117611185211658
62 | 131810 6 110991060410096 9895103061166211780113701098210515 9990 9338
63 | 2 1810 7 8765 8396 8174 8068 8043 8192 8404 8793 9406 9840 999010178
64 | 2 1810 7 10087 9776 9461 9389 985610812109031063410340 9788 9018 8243
65 | 2 2810 1 7591 7311 7142 7037 7085 7624 94211137712176124891271412759
66 | 2 2810 1 1261712548123691216112652130391270212269118391113110139 9062
67 | 2 3810 2 8400 8080 7926 7915 8069 8740105031230712994131171322413134
68 | 2 3810 2 127811286712679125291305414021140071359013210125281144410276
69 | 2 4810 3 9584 9270 9090 9040 9123 9771115541333313923140091393713767
70 | 2 4810 3 134181331913076129441338914266142491380413415127251164110472
71 | 2 5810 4 9707 9398 9219 9179 9288 9901117601344713999140911397813847
72 | 2 5810 4 133961327212987128571317414206142981393413571129391182610747
73 | 2 6810 5 9941 9611 9407 9363 9408 9981117961355314068142021411313838
74 | 2 6810 5 1341413337130561271612864134721336812880123101168710819 9853
75 | 2 7810 6 9142 8717 8479 8319 8294 8473 8994 969110475111741126011102
76 | 2 7810 6 1060610109 9707 9564 99441118511405109731055710052 9411 8688
77 | 2 8810 7 8100 7696 7340 7190 7119 7153 7411 7757 8562 9337 979810087
78 | 2 8810 7 10144 9847 9561 9438 986010567106931044210169 9642 9009 8320
79 | 2 9810 1 7756 7566 7499 7539 7677 8425102061204212715129201304712865
80 | 2 9810 1 1256612473122751210612475133521340113037125891187610834 9828
81 | 210810 2 9006 8691 8562 8509 8617 9202109841265713177130931299012702
82 | 210810 2 1228412268121741206712462132411320612763122391152610469 9406
83 | 211810 3 8540 8143 7874 7718 7806 8289 98991165712326125311261712589
84 | 211810 3 12312122481199811830121401262712315117371119310362 9378 8439
85 | 212810 4 7704 7415 7265 7277 7559 8233 99701183112650129101302212943
86 | 212810 4 126031256412323120391240413290135981324112769121901122710123
87 | 213810 5 9372 9060 8880 8808 8901 9514111671282213356135061333313050
88 | 213810 5 1256912397120771167711862126431301612593121721157310789 9926
89 | 214810 6 9180 8753 8525 8394 8392 8604 9032 969510486110611115510990
90 | 214810 6 1050010018 9598 9332 957210600110311061910213 9774 9241 8591
91 | 215810 7 8135 7707 7527 7345 7315 7450 7619 7957 8595 8983 9160 9237
92 | 215810 7 9073 8763 8412 8284 8627 958410189 9952 9718 9309 8877 8232
93 | 216810 1 7730 7446 7321 7250 7306 7677 8427 950310412109271111011020
94 | 216810 1 1052610229 9931 97151008410975113411093410499 9932 9150 8201
95 | 217810 2 7546 7186 7027 6950 7006 7554 88691058711409116161170711549
96 | 217810 2 11190111031083410589108361151511738112901085810238 9328 8391
97 | 218810 3 7611 7188 7028 6950 6995 7554 88921045511293115001152911372
98 | 218810 3 11040109081069410419105951125311597111541073310031 9183 8249
99 | 219810 4 7476 7114 6910 6830 6861 7407 87071037511284115471161711469
100 | 219810 4 11205111291093410700110471172311790113001087910135 9137 8187
101 | 220810 5 7438 7039 6764 6704 6731 7201 85091009011097115061178411791
102 | 220810 5 115111151011294111901147011844117201115010662 9975 9121 8155
103 | 221810 6 7406 6915 6667 6469 6399 6515 6928 7649 8734 9550 999910067
104 | 221810 6 9734 9388 9045 8920 9269 997510120 9650 9188 8706 8050 7471
105 | 222810 7 6845 6534 6165 5944 5945 6018 6161 6563 7351 8082 8543 8882
106 | 222810 7 8927 8670 8404 8340 8663 9384 9841 9586 9414 8997 8293 7658
107 | 223810 1 7066 6490 6619 6607 6671 7616 91471109612049123521250512438
108 | 223810 1 12105120811192211778121771264612574120561155210809 9783 8668
109 | 224810 2 7920 7457 7254 7124 7200 7647 93201107211881121101224412187
110 | 224810 2 11912119831174811523118531224412237118171134010655 9646 8665
111 | 225810 3 7786 7463 7262 7169 7209 7781 93401125412058123251248812513
112 | 225810 3 1230512401122541216312534129471297712444120051121310217 9032
113 | 226810 4 8314 7904 7682 7559 7628 8191 97651150212305125541240412623
114 | 226810 4 1228212302121581192712149126111271112317118431115510134 9042
115 | 227810 5 8239 7815 7599 7521 7613 8107 96051135512115123141220812016
116 | 227810 5 11579115181118210822108271128611981115461115610628 9828 8928
117 | 228810 6 8172 7757 7502 7377 7364 7523 7817 8624 9476100611025310291
118 | 228810 6 10039 9858 9730 974310140107061085210374 9875 9381 8754 8084
119 | 3 1810 7 7497 7038 6711 6574 6440 6535 6634 7049 7768 8405 8832 9017
120 | 3 1810 7 8987 8635 8271 8086 8314 8969 9863 9754 9558 9123 8525 7825
121 | 3 2810 1 7297 7105 6965 6920 7059 7665 93381125512132123481237212257
122 | 3 2810 1 11973119771175911578119511240712576121631167110955 9929 8974
123 | 3 3810 2 8163 7784 7656 7592 7735 8339 98551163412347125181256312424
124 | 3 3810 2 1208612018118751164211931124221304212738124411176910732 9618
125 | 3 4810 3 8881 8532 8368 8289 8397 9014105931224412781127681265412415
126 | 3 4810 3 1198911935116341140411721123031268612293119031124110210 9164
127 | 3 5810 4 8362 8011 7843 7812 7912 8482100041183312489126131262612525
128 | 3 5810 4 1227412309121031192412185125891293112540120931125710223 9156
129 | 3 6810 5 8399 8041 7871 7755 7816 8394 99441211712548127121275412567
130 | 3 6810 5 12240121981201111770118171213312448120581152810836 9971 9023
131 | 3 7810 6 8227 7780 7542 7371 7286 7438 7786 8614 9674104391074410733
132 | 3 7810 6 1038210037 9749 9620 9922104681082510385 9903 9387 8726 8096
133 | 3 8810 7 7486 7044 6769 6647 6577 6634 6760 7231 8086 8742 9135 9403
134 | 3 8810 7 9437 9128 8838 8716 8981 953410113 9957 9729 9270 8533 7786
135 | 3 9810 1 7262 7034 6917 6872 6974 7605 93091134712171124741251312412
136 | 3 9810 1 12074119931181011585119201219212464120831158110806 9816 8799
137 | 310810 2 7922 7553 7377 7289 7390 7965 95271135211973121311210811993
138 | 310810 2 11709118681155411299115221188712309120291160710913 9888 8780
139 | 311810 3 8053 7725 7519 7473 7550 8119 96811156612177122701221212122
140 | 311810 3 11785118471159511468116581192412379121331165710973 9970 8884
141 | 312810 4 8207 7815 7651 7580 7676 8273 97621151312178122841219512040
142 | 312810 4 11640117031143111223112881150212255120351166710959 9903 8844
143 | 313810 5 8062 7690 7509 7425 7457 8015 94931128311836118751177511574
144 | 313810 5 11195112531098210650106991099411581112141078010144 9297 8368
145 | 314810 6 7669 7270 7013 6906 6977 7195 7572 8530 9539102381052610542
146 | 314810 6 10212 9959 9703 9545 98021038611336111081069410195 9548 8874
147 | 315810 7 8238 7857 7555 7369 7317 7327 7315 7729 8320 8587 8903 8979
148 | 315810 7 8767 8311 7950 7781 7916 8510 9482 9539 9322 8892 8231 7595
149 | 316810 1 7037 6824 6698 6673 6819 7440 90761103211888121021212312067
150 | 316810 1 1180811862116551160211961123141259712375119201127010253 9164
151 | 317810 2 8538 8258 8103 8073 8203 8817103641214112757128321283012623
152 | 317810 2 1225012152118581162611784120211254112396120121144310531 9530
153 | 318810 3 8885 8623 8460 8429 8526 9165106361236412954130901304512863
154 | 318810 3 1246112325120801181711922121801283912744123541156010581 9500
155 | 319810 4 8756 8401 8301 8328 8240 8985104631208612659127181263812371
156 | 319810 4 1194211867116001140011556119021248912371119791122910173 9152
157 | 320810 5 8443 8130 7966 7890 8010 8587 99931178312485125031253112337
158 | 320810 5 11936118991165111382114041158612080118711142610756 9969 9132
159 | 321810 6 8348 7910 7660 7510 7499 7636 7918 8881 9846104961074410755
160 | 321810 6 1034910030 9690 9533 9693101471065910376 9884 9474 8788 8159
161 | 322810 7 7564 7118 6872 6779 6692 6724 6765 7272 7991 8476 8736 8813
162 | 322810 7 8649 8260 7897 7734 7907 8384 9448 9635 9545 9079 8409 7807
163 | 323810 1 7333 7132 7028 7024 7170 7757 94151141012116122361227411972
164 | 323810 1 11629115531122210945110181118311851118111149810737 9700 8664
165 | 324810 2 8010 7675 7511 7491 7605 8109 96371139311921118921179611628
166 | 324810 2 11366113601112010951111331130511799116701131510558 9520 8557
167 | 325810 3 7795 7492 7286 7217 7297 7845 93771119511897120451208212048
168 | 325810 3 11777118471166811523116871182412174120401162010937 9812 8820
169 | 326810 4 8077 7732 7536 7429 7508 8052 95571129011906118721173011468
170 | 326810 4 11163111141089210597106571083111511115011118310590 9612 8529
171 | 327810 5 7730 7447 7246 7159 7250 7659 92201125312078123111235612260
172 | 327810 5 11938121001187511236110931117211463112701078410200 9408 8532
173 | 328810 6 7816 7411 7173 7007 7069 7155 7486 8325 9187 9642 9690 9456
174 | 328810 6 8980 8571 8250 8101 8253 8736 9536 9548 9177 8689 8075 7458
175 | 329810 7 6927 6523 6291 6106 6051 6053 6075 6657 7414 7874 8047 8017
176 | 329810 7 7893 7467 7149 7009 7166 7519 8491 8744 8561 8087 7396 6809
177 | 330810 1 6210 5966 5843 5790 5882 6302 7887 986910747110731124611073
178 | 330810 1 108901090110762105831094911204113241102210618 9834 8706 7540
179 | 331810 2 6939 6530 6327 6245 6287 6745 82061005410774110101113311006
180 | 331810 2 107491074510592103291038110389108161087810452 9754 8781 7791
181 | 4 1810 3 7122 6711 6449 6338 6385 6817 83581025710915110601117811021
182 | 4 1810 3 107851082810662106021083611074114261122110665 9882 8808 7869
183 | 4 2810 4 7249 6896 6712 6530 6469 7031 84911049411315115191156711457
184 | 4 2810 4 11137111711091310610105731052011180112371087710118 9110 8009
185 | 4 3810 5 7381 7008 6816 6700 6821 7235 86991049411100112251119211020
186 | 4 3810 5 106221057310333 9965 9835 9844103731042410003 9369 8528 7625
187 | 4 4810 6 6871 6422 6121 5982 5903 5933 6267 7228 8230 8843 9111 9046
188 | 4 4810 6 8761 8421 8080 7920 8085 8543 9081 9086 8660 8186 7584 6920
189 | 4 5810 7 6354 5947 5931 5483 5352 5309 5368 5761 6743 7452 7841 8165
190 | 4 5810 7 8079 7873 7756 7648 7958 8303 8796 8832 8594 8168 7447 6674
191 | 4 6810 1 6218 5964 5802 5827 5907 6460 81241030411269116051175211680
192 | 4 6810 1 11443115021132311094112691138711687117561134410609 9500 8327
193 | 4 7810 2 7696 7297 7184 7060 7139 7540 90631077611323114491143911257
194 | 4 7810 2 10923108911062310287103151034210705110771063110005 8995 7885
195 | 4 8810 3 7291 6917 6748 6710 6754 7172 86661048511082112231115611032
196 | 4 8810 3 107101072610446101781022610206105801087310512 9720 8772 7698
197 | 4 9810 4 7037 6655 6435 6365 6401 6761 82591006410789109711100110891
198 | 4 9810 4 107151074610655105181074510857110611092810561 9704 8702 7705
199 | 410810 5 7000 6654 6428 6353 6466 6774 84211018810841110161100510867
200 | 410810 5 105791056010284 9979 9807 97001007010304 9951 9302 8469 7571
201 | 411810 6 6905 6463 6234 6075 6033 5958 6453 7406 8346 8947 9108 9144
202 | 411810 6 8914 8564 8262 8002 8041 8233 8793 9052 8630 8139 7507 6888
203 | 412810 7 6213 5717 5398 5473 5405 5481 5928 6217 6969 7435 7610 7696
204 | 412810 7 7615 7336 7075 6964 7184 7568 8324 8830 8606 8156 7520 6781
205 | 413810 1 6380 6189 6093 6046 6171 6594 82541020711109111691130311209
206 | 413810 1 10870108371057010314103691035010769111071076510069 9028 8098
207 | 414810 2 7390 7004 6821 6764 6816 7196 87731076811552118241201712048
208 | 414810 2 11960119421183911797120541203311799115021104510232 9218 8140
209 | 415810 3 7538 7215 7065 6980 7090 7473 90711092011647118251187211734
210 | 415810 3 11421114251104710799108461082011164115881129710656 9575 8543
211 | 416810 4 7888 7535 7339 7273 7325 7679 92381095411661118451176411541
212 | 416810 4 111281104510787103601027210256105671094210573 9908 8918 7929
213 | 417810 5 7158 6754 6543 6416 6407 6536 7511 8875 9738100991022010149
214 | 417810 5 10003 9785 9532 9294 9387 9584 9802 9812 9412 8832 7798 7267
215 | 418810 6 6580 6139 5896 5732 5686 5569 5934 6738 7751 8409 8636 8606
216 | 418810 6 8313 7951 7691 7602 7741 8045 8454 8781 8520 8127 7503 6855
217 | 419810 7 6244 5824 5581 5456 5367 5258 5580 6255 6958 7359 7398 7430
218 | 419810 7 7263 6876 6525 6294 6292 6416 7067 7679 7757 7502 6987 6527
219 | 420810 1 6059 5743 5646 5613 5650 5913 7083 8828 9928105211079710829
220 | 420810 1 105741051410257100341020110292104781077410476 9814 8943 8042
221 | 421810 2 7440 7136 6948 6925 7012 7328 87201057111504117911194411867
222 | 421810 2 11498114281109910804108021079710994114641117510523 9518 8540
223 | 422810 3 7841 7495 7328 7243 7298 7568 89001068111480116681168311513
224 | 422810 3 11110109911077410432104311030310468110251071710090 9119 8125
225 | 423810 4 7474 7104 6914 6853 6873 7150 84441022811102113551141011431
226 | 423810 4 11127112181110010961111901128311409112551085310107 9098 8058
227 | 424810 5 7384 6997 6743 6591 6638 6939 82161002810994113241146611395
228 | 424810 5 110861108810875106581069410619107291070710317 9633 8827 7916
229 | 425810 6 7193 6753 6465 6303 6281 6235 6700 7729 8718 9413 9705 9668
230 | 425810 6 9337 9039 8760 8663 8846 9148 9396 9457 9113 8592 7937 7270
231 | 426810 7 6733 6315 6199 6082 5968 5898 5851 6150 6690 7261 7611 7780
232 | 426810 7 7766 7509 7196 6987 7032 7124 7250 7634 8436 8248 7674 6877
233 | 427810 1 6331 6066 5911 5855 5944 6349 7776 976810693110111106710983
234 | 427810 1 1066410689104161017010090 9901 9494 950910128 9683 8748 7597
235 | 428810 2 6883 6473 6312 6166 6153 6596 7923 989710708109691104010973
236 | 428810 2 107291083010576103591035810124 9854 999810305 9805 8793 7691
237 | 429810 3 6911 6547 6338 6212 6207 6691 79941002210943112591144411392
238 | 429810 3 110841112410934106961065610401100361002710378 9834 8820 7765
239 | 430810 4 6949 6587 6328 6226 6190 6633 7969 987110740110051110010964
240 | 430810 4 107181070210543102641025310099 9854 980710252 9750 8812 7705
241 | 5 1810 5 7008 6615 6331 6241 6255 6695 7980 985510680109251101710890
242 | 5 1810 5 10617105971042210089 9950 9767 9524 9515 9810 9345 8597 7652
243 | 5 2810 6 6908 6479 6166 5982 5916 6021 6261 6600 8209 8854 9134 9095
244 | 5 2810 6 8750 8472 8116 7959 8078 8208 8149 8131 8509 8211 7617 6906
245 | 5 3810 7 6382 6017 5767 5562 5555 5481 5572 6050 6768 7284 7538 7630
246 | 5 3810 7 7570 7277 6938 6805 6922 7055 7083 7288 8183 8102 7335 6618
247 | 5 4810 1 6084 5838 5711 5649 5763 6193 7790 980210758110651124011181
248 | 5 4810 1 109551101010801105741061210464101361002910386 9777 8801 7733
249 | 5 5810 2 6951 6557 6462 6266 6288 6729 81761022011043112481137611249
250 | 5 5810 2 109621098610744104721043410249 9762 969210335 9930 8859 7745
251 | 5 6810 3 6969 6622 6380 6237 6239 6654 8089 988710688109051101111005
252 | 5 6810 3 108601079510654105131055110376100981005310334 9742 8761 7705
253 | 5 7810 4 7002 6656 6394 6336 6383 6806 82871040011251114361144511277
254 | 5 7810 4 109441100510860104241029910062 9665 958910296 9999 8972 7749
255 | 5 8810 5 7064 6713 6508 6428 6478 6850 83191018310908110251107710954
256 | 5 8810 5 10620106471037110081 9857 9577 9290 9199 9649 9339 8573 7579
257 | 5 9810 6 6852 6401 6177 6028 6007 5994 6343 7243 8179 8722 8809 8685
258 | 5 9810 6 8320 7973 7735 7606 7735 7905 7842 7809 8262 8138 7548 6867
259 | 510810 7 6323 5878 5610 5413 5373 5298 5312 5895 6725 7380 7617 7775
260 | 510810 7 7754 7504 7198 7048 7061 7130 7231 7452 8182 7997 7344 6539
261 | 511810 1 6080 5821 5643 5627 5648 6097 7639 975610729110311135111324
262 | 511810 1 111671118910991107501078810562101501007810380 9844 8833 7843
263 | 512810 2 6998 6528 6364 6186 6254 6551 7974 997310979113841155211577
264 | 512810 2 112751134511145109301101510786104071028510364 9872 8830 7683
265 | 513810 3 6945 6582 6335 6165 6226 6554 80311000510789110771117211082
266 | 513810 3 108521092510689104391041710201 9754 958910109 9798 8799 7679
267 | 514810 4 6664 6420 6277 6174 6251 6671 8144 996110736110091111511007
268 | 514810 4 107901092110709104961042310167 9734 959010138 9909 8892 7805
269 | 515810 5 7067 6606 6302 6181 6195 6479 7853 979910716111111126611258
270 | 515810 5 110701111610888105391046310230 9919 9800 9955 9469 8617 7628
271 | 516810 6 6922 6409 6097 5922 5867 5837 6147 7027 8084 8866 9182 9245
272 | 516810 6 8947 8652 8349 8238 8339 8530 8459 8360 8480 8161 7576 6855
273 | 517810 7 6262 5855 5551 5376 5290 5163 5301 5849 6668 7289 7624 7715
274 | 517810 7 7632 7290 6981 6863 6929 7066 7121 7248 8065 8075 7449 6657
275 | 518810 1 6179 5912 5777 5733 5839 6229 7827 989010732110811122011139
276 | 518810 1 108901091710675104391041710206 9684 948710066 9777 8726 7644
277 | 519810 2 6911 6581 6357 6292 6348 6647 81151007410874110891112910983
278 | 519810 2 107411081610629104161037710153 9777 963910063 9680 8668 7573
279 | 520810 3 6894 6501 6302 6208 6236 6582 80291004110754109311109810986
280 | 520810 3 107481088110711104781043310132 9665 9404 9990 9770 8756 7673
281 | 521810 4 6853 6487 6260 6126 6206 6483 7947 990010745109871108011097
282 | 521810 4 108371094310794105791046210215 9841 966910132 9829 8823 7634
283 | 522810 5 6914 6500 6253 6127 6149 6461 7863 983610705109991109511055
284 | 522810 5 1080410864106251026510062 9775 9428 9188 9593 9310 8473 7454
285 | 523810 6 6676 6255 5954 5797 5724 5725 5865 6519 7597 8193 8338 8247
286 | 523810 6 7995 7764 7525 7440 7546 7713 7641 7530 7957 7913 7321 6604
287 | 524810 7 6003 5604 5381 5217 5132 4962 5092 5628 6373 6943 7135 7151
288 | 524810 7 7044 6778 6576 6443 6679 6823 6839 6846 7470 7658 7134 6388
289 | 525810 1 5772 5407 5210 5072 4995 4860 5117 5864 6733 7295 7613 7728
290 | 525810 1 7636 7431 7261 7264 7467 7644 7584 7675 8363 8333 7607 6763
291 | 526810 2 6194 5937 5807 5701 5706 6068 7650 982411140117321220712267
292 | 526810 2 12141123731225312018118561137510842105551100310794 9666 8373
293 | 527810 3 7519 7053 6760 6608 6584 6856 83231038411520120781242212515
294 | 527810 3 12421126371252612375121601169811090107321107910829 9662 8447
295 | 528810 4 7577 7129 6879 6690 6668 6958 84461051911546120311228112299
296 | 528810 4 12132122991218111931117291126310743103601076710502 9407 8205
297 | 529810 5 7437 6964 6680 6598 6519 6897 81891017211293117671202212018
298 | 529810 5 118251188511670113731113110799103681007210235 9922 9039 8065
299 | 530810 6 7238 6719 6393 6213 6135 6058 6328 7256 8359 9192 9539 9596
300 | 530810 6 9417 9203 9048 8980 9070 9145 9003 8769 9081 9022 8384 7636
301 | 531810 7 6931 6441 6100 5898 5753 5624 5677 6129 6962 7736 8155 8438
302 | 531810 7 8407 8106 7805 7653 7709 7758 7686 7645 8165 8423 7728 6874
303 | 6 1810 1 6302 6031 5803 5741 5780 6044 7600 965410715112391148711508
304 | 6 1810 1 11421114271134311106109961063010064 968710070 9957 8883 7649
305 | 6 2810 2 6984 6561 6331 6186 6211 6481 7917 987310846112481144911494
306 | 6 2810 2 11271113031116210955109541071110128 972710107 9901 8867 7797
307 | 6 3810 3 6977 6542 6340 6183 6249 6541 7995 996010872112581149311454
308 | 6 3810 3 11303114111128811072111171089510406102001038110065 8973 7898
309 | 6 4810 4 7102 6705 6464 6303 6362 6664 81161011911226117451214712345
310 | 6 4810 4 12257125141249112251121001168211164107691106010837 9886 8569
311 | 6 5810 5 7638 7146 6812 6605 6601 6821 82671038011557120401234412355
312 | 6 5810 5 12203124271230211950117831128910822103821048210442 9536 8470
313 | 6 6810 6 7555 6985 6622 6392 6279 6210 6466 7393 8580 9269 9625 9705
314 | 6 6810 6 9500 9348 9205 9212 9344 9378 9167 8922 9054 8992 8385 7550
315 | 6 7810 7 6881 6380 6019 5789 5582 5121 5669 6277 6934 7641 7768 7942
316 | 6 7810 7 7879 7615 7386 7290 7392 7493 7499 7513 7997 8280 7631 6849
317 | 6 8810 1 6299 6005 5785 5719 5801 6025 7570 961110772112511149711558
318 | 6 8810 1 11384115861151011315112811087810282 99531031910130 9151 7933
319 | 6 9810 2 7197 6778 6531 6394 6473 6852 81541027811371119441227412371
320 | 6 9810 2 12256123301216611919117281127510603101421032710290 9321 8156
321 | 610810 3 7283 6862 6586 6425 6439 6652 80911016411120115631178311822
322 | 610810 3 11640118411174111556115051108510478101371045710298 9262 8112
323 | 611810 4 7340 6884 6627 6460 6456 6621 80801013411193116741187311953
324 | 611810 4 11815119851185211634115171110310523101451038810368 9357 8209
325 | 612810 5 7347 6885 6616 6469 6450 6594 79701000711114116631188812012
326 | 612810 5 11800119901184911639113471093310500102621037710019 9114 8055
327 | 613810 6 7272 6753 6431 6240 6110 6005 6429 7313 8459 9212 9504 9455
328 | 613810 6 9172 8929 8685 8630 8740 8789 8622 8368 8583 8725 8081 7357
329 | 614810 7 6727 6282 5939 5780 5655 5466 5552 6105 6885 7460 7826 8073
330 | 614810 7 8106 7835 7557 7498 7612 7791 7847 7855 8214 8280 7700 6903
331 | 615810 1 6405 6076 5971 5906 5957 6348 7755 994211096116591199412090
332 | 615810 1 11969121601211811979119461156711034105971089310836 9746 8459
333 | 616810 2 7667 7185 6811 6726 6781 7075 85061054411791123741282713032
334 | 616810 2 1305013444135641348113448129761240411965121711220511164 9783
335 | 617810 3 8769 8230 7868 7695 7620 7816 91621135512672133441366913683
336 | 617810 3 13385133851313712844126461209211380107541078810919 9933 8667
337 | 618810 4 7777 7199 6931 6726 6690 6855 82471029811479121111245912540
338 | 618810 4 12379125961250512284120971158411005105451064810697 9731 8514
339 | 619810 5 7610 7159 6888 6692 6677 6820 81261012111389120421246112588
340 | 619810 5 12513127391258012297120771154110977104641052110510 9624 8565
341 | 620810 6 7744 7185 6793 6573 6478 6392 6729 7547 8706 9495 9901 9969
342 | 620810 6 9698 9453 9214 9090 9216 9379 9222 9021 9075 8933 8314 7578
343 | 621810 7 6938 6478 6156 5936 5818 5630 5743 6265 7093 7829 8266 8497
344 | 621810 7 8529 8314 8112 8063 8154 8238 8228 8220 8622 9007 8445 7593
345 | 622810 1 7002 6672 6503 6374 6447 6739 80231024511639124171295413181
346 | 622810 1 13102133111319912804125421208611469110451090610780 9747 8577
347 | 623810 2 7597 7120 6801 6659 6597 6792 80441001711225118251213212173
348 | 623810 2 12001120991201411751116461122910544100861024310335 9394 8221
349 | 624810 3 7363 6891 6580 6441 6433 6616 7809 973610839114461181011846
350 | 624810 3 11639119091185911649116091116610605101981035910399 9461 8377
351 | 625810 4 7551 7112 6858 6689 6709 6972 81631018711503122531265012786
352 | 625810 4 12626127471250212287121291170411175107411091210774 9836 8684
353 | 626810 5 7864 7382 7082 6874 6817 6940 7986 978211027116091187311881
354 | 626810 5 116161160411357109901075010413 9908 9525 9550 9494 8666 7713
355 | 627810 6 7001 6490 6207 6004 5934 5781 6146 7027 8061 8772 9054 9050
356 | 627810 6 8813 8576 8401 8309 8421 8507 8330 8101 8298 8504 7883 7139
357 | 628810 7 6495 6043 5731 5539 5448 5210 5356 5910 6692 7348 7707 7906
358 | 628810 7 7840 7666 7489 7457 7627 7796 7814 7755 8136 8567 8009 7178
359 | 629810 1 6568 6249 6046 5942 5947 6117 7276 922210631114881199112165
360 | 629810 1 12133122491217311995119441151310880103211035210411 9429 8209
361 | 630810 2 7298 6804 6534 6342 6320 6464 7558 940810597112771163511762
362 | 630810 2 11657117421161611508114721108510533100861022410311 9374 8227
363 | 7 1810 3 7379 6896 6652 6485 6474 6673 7794 961110748114811196112072
364 | 7 1810 3 12067122291214311939117911136410800103801053810501 9622 8530
365 | 7 2810 4 7614 7105 6832 6688 6648 6824 7870 971610976117141208812263
366 | 7 2810 4 12121121611205211729115391112810628102051018710229 9426 8347
367 | 7 3810 5 7284 6753 6436 6247 6094 6053 6507 7558 8633 9461 988210067
368 | 7 3810 5 9977 9856 9695 9556 9541 9504 9230 8929 9064 9021 8402 7639
369 | 7 4810 6 6928 6429 6087 5855 5758 5603 5693 6235 7005 7832 8254 8419
370 | 7 4810 6 8323 8096 7812 7668 7707 7778 7717 7635 7900 7926 7679 7222
371 | 7 5810 7 6525 6100 5768 5627 5523 5433 5445 5876 6606 7335 7913 8296
372 | 7 5810 7 8416 8248 8016 7924 8030 8124 8082 8024 8358 8561 8038 7241
373 | 7 6810 1 6686 6308 6072 6005 6008 6199 7237 907910597116001220912441
374 | 7 6810 1 1245612543124761239612387120391157511147112331133510392 9068
375 | 7 7810 2 8059 7512 7163 6956 6911 7020 80901003311600125131297113174
376 | 7 7810 2 1320513379133591326613180127851222211774118431188410950 9573
377 | 7 8810 3 8498 7914 7524 7283 7244 7279 83421028511781127801330713526
378 | 7 8810 3 135171367813707136231361713276128021236412373124121153810305
379 | 7 9810 4 9256 8685 8276 8098 8020 8121 90611093812531134701399614199
380 | 7 9810 4 142051431414284141641407913745133251290413045129851197010595
381 | 710810 5 9758 9101 8648 8466 8319 8351 92001104812526130651349413569
382 | 710810 5 1339913431133231313412937125471209411468113781135110474 9417
383 | 711810 6 8413 7807 7331 7049 6836 6627 6880 7815 8880 98881037310583
384 | 711810 6 10447102921016810161103011039310242 99611008010241 9587 8611
385 | 712810 7 7912 7335 6871 6607 6413 6227 6251 6681 7428 8098 8580 8898
386 | 712810 7 9017 8900 8806 8823 9050 9221 9198 9060 9430 9827 9267 8459
387 | 713810 1 7752 7478 7175 7019 7024 7274 83911031711734126211322213309
388 | 713810 1 1333513392133181301712890124831196811508115231117810221 8913
389 | 714810 2 8095 7627 7286 7135 7049 7220 81121011711420120631236012302
390 | 714810 2 12127121171183611686115311114110420100231019210023 9085 8086
391 | 715810 3 7260 6822 6576 6417 6406 6552 7625 949110707113581170811810
392 | 715810 3 11726118211175711609115781117010650102181027110394 9474 8408
393 | 716810 4 7503 7006 6713 6408 6472 6621 7613 946310764115381194912150
394 | 716810 4 12056122691219712063120181166711181106511079510863 9884 8772
395 | 717810 5 7825 7332 7005 6804 6753 6900 7865 977111051118891242412629
396 | 717810 5 12529126261252212264120481167311176106641072810649 9799 8861
397 | 718810 6 7895 7221 6939 6655 6473 6431 6674 7491 8537 94601002410205
398 | 718810 6 10126 9991 9835 9752 9847 9802 9561 9290 9443 9320 8639 7940
399 | 719810 7 7252 6693 6420 6133 6047 5870 5893 6405 7164 7921 8322 8647
400 | 719810 7 8734 8628 8450 8400 8601 8756 8736 8671 9124 9404 8836 7996
401 | 720810 1 7322 6994 6771 6602 6633 6981 81471006111552124621296313156
402 | 720810 1 12993130021283412470123521200811462111071110010542 9636 8609
403 | 721810 2 7822 7382 7134 7013 7012 7369 83721035811840127891344413750
404 | 721810 2 1378314027140061380513618130661246812073122381190410858 9537
405 | 722810 3 8582 8024 7617 7422 7353 7475 84421031211570121851251912639
406 | 722810 3 12436125361242812195120791167511022105421066910577 9571 8408
407 | 723810 4 7537 7001 6701 6531 6490 6674 7662 947510684113311178211881
408 | 723810 4 11681118241172611565115061116910600101281032610250 9309 8196
409 | 724810 5 7303 6847 6588 6415 6392 6577 7544 933410548111741152011626
410 | 724810 5 11494115771146811234109841064610184 9711 9954 9776 8967 8016
411 | 725810 6 7160 6717 6386 6174 6124 6031 6266 7202 8142 8988 9390 9431
412 | 725810 6 9251 9001 8784 8674 8755 8830 8627 8356 8653 8636 8021 7283
413 | 726810 7 6725 6240 5914 5724 5648 5569 5586 6062 6788 7471 7893 8206
414 | 726810 7 8293 8109 7930 7849 8009 8133 8146 8164 8716 8728 8218 7486
415 | 727810 1 6959 6643 6489 6412 6594 6870 7954 993411550124891304113120
416 | 727810 1 12960130191277012476122551174511034104161064510409 9410 8205
417 | 728810 2 7407 6886 6532 6439 6412 6589 7605 940410592112181170911785
418 | 728810 2 11657117921171211570114191115510635103631053110044 9140 8066
419 | 729810 3 7378 6970 6781 6637 6706 7171 8174 999811287120781254012669
420 | 729810 3 12594126391243312148119771151410865104111041910040 8992 7916
421 | 730810 4 7014 6709 6464 6315 6336 6577 7599 935910471110911145211526
422 | 730810 4 11421115291137711174110891079210343 98851022310020 9083 8030
423 | 731810 5 7179 6715 6451 6266 6280 6482 7450 930510573113071177911892
424 | 731810 5 11861121421197511786116231129110833103641057410324 9410 8335
425 | 8 1810 6 7525 6968 6618 6350 6245 6121 6335 7211 8334 9201 9668 9808
426 | 8 1810 6 9666 9504 9397 9379 9532 9659 9452 9118 9429 9315 8610 7837
427 | 8 2810 7 7047 6535 6137 5929 5795 5609 5704 6222 7003 7685 8186 8517
428 | 8 2810 7 8648 8514 8402 8386 8602 8755 8733 8666 9270 9347 8687 7836
429 | 8 3810 1 7182 6776 6512 6374 6389 6691 7728 975011313122541290713149
430 | 8 3810 1 1321513390133421318213095126191207511659119871158310483 9257
431 | 8 4810 2 8337 7838 7503 7336 7297 7563 84941043711893127461336113582
432 | 8 4810 2 1358313802137751359713472130471244111929122771193310825 9400
433 | 8 5810 3 8608 8075 7665 7461 7421 7709 87231064811974129011340913627
434 | 8 5810 3 13496134441326613044128531231811649111751136810897 9900 8771
435 | 8 6810 4 7889 7378 7085 6909 6880 7151 8090 997511230119941235812423
436 | 8 6810 4 12263123921235312107119751159111016106921103310691 9692 8545
437 | 8 7810 5 7707 7142 6853 6645 6632 6896 7812 957810900116171198312108
438 | 8 7810 5 11994121121198311703115301114310646102211055910114 9253 8318
439 | 8 8810 6 7417 6925 6566 6414 6316 6343 6530 7279 8301 9110 9550 9651
440 | 8 8810 6 9488 9228 8952 8885 8941 9091 8944 8851 9148 8895 8236 7573
441 | 8 9810 7 7011 6557 6254 6066 5955 5952 5909 6325 7064 7793 8285 8614
442 | 8 9810 7 8745 8585 8453 8428 8601 8738 8722 8752 9387 9311 8718 8029
443 | 810810 1 7324 6916 6704 6595 6592 6922 7882 974411353123421301913240
444 | 810810 1 1318313412133291319713172128411232711862122221184410686 9418
445 | 811810 2 8505 7919 7562 7332 7289 7525 84851041711913129161349313848
446 | 811810 2 1374413974139341375513693132341262812260125481200310861 9659
447 | 812810 3 8704 8177 7832 7631 7545 7843 87731070312051127741321613313
448 | 812810 3 1313613249130701279312647122131163311301116831122910197 9144
449 | 813810 4 8204 7660 7313 7155 7109 7447 83611016411423121441259012768
450 | 813810 4 1273212843127971259812478120631150311145115571106210050 8929
451 | 814810 5 8041 7513 7149 6936 6914 7187 8076 996711276119721236412405
452 | 814810 5 12285123761223912009118081143910972106271095710441 9500 8518
453 | 815810 6 7673 7157 6824 6615 6548 6609 6864 7679 8790 96711014610306
454 | 815810 6 1014510053 9798 9745 9865 9937 9818 9746 9933 9477 8832 8151
455 | 816810 7 7451 6952 6618 6423 6307 6241 6226 6611 7362 8208 8707 9093
456 | 816810 7 9209 9020 8790 8732 8847 8892 8739 8636 9127 8874 8152 7312
457 | 817810 1 6704 6319 6136 5993 6026 6387 7391 929210602113221172511837
458 | 817810 1 116401174811606113591129710991104271014610514 9914 8968 7886
459 | 818810 2 7127 6702 6507 6334 6383 6662 7640 944610647112611163511739
460 | 818810 2 11593117691166711545115211116010639102771075810221 9180 8064
461 | 819810 3 7315 6856 6584 6423 6427 6796 7693 948810699113251176211879
462 | 819810 3 11755119731184211651115781118510662103131080310121 9138 8090
463 | 820810 4 7292 6888 6573 6432 6440 6777 7656 946510600112571178611833
464 | 820810 4 11683118621177011464114371105610578102831074410152 9159 8068
465 | 821810 5 7282 6793 6550 6372 6379 6733 7591 937110623114191165511857
466 | 821810 5 11769119831186811600113461100810556102901066010042 9103 8134
467 | 822810 6 7311 6791 6458 6252 6151 6231 6399 7206 8265 9061 9478 9516
468 | 822810 6 9293 9105 8928 8795 8893 8981 8828 8894 9093 8700 7982 7328
469 | 823810 7 6655 6201 5919 5732 5652 5638 5673 6020 6792 7529 7925 8158
470 | 823810 7 8180 7991 7779 7727 7929 8066 8050 8196 8835 8597 7935 7291
471 | 824810 1 6719 6328 6258 6041 6109 6512 7499 946610918117511226512416
472 | 824810 1 12216122561208011794117471146710917107121088910162 9149 8117
473 | 825810 2 7292 6837 6594 6436 6486 6837 7841 964910730113641170111724
474 | 825810 2 115431162911353110931107110725102071011610489 9874 8896 7873
475 | 826810 3 7074 6659 6370 6246 6295 6688 7678 942910542110491143911498
476 | 826810 3 11436114371147311249112611095910427103171070410059 9054 7996
477 | 827810 4 7204 6751 6510 6389 6401 6763 7742 951110702114151182712026
478 | 827810 4 11894120681200811700116091123810836107631100710321 9309 8284
479 | 828810 5 7429 6999 6718 6514 6565 6894 7843 962610818116201203612111
480 | 828810 5 119501206911901116261135910963104741042010598 9969 9027 8002
481 | 829810 6 7250 6744 6379 6224 6167 6215 6412 7222 8285 9092 9545 9559
482 | 829810 6 9320 9057 8801 8683 8741 8831 8672 8785 9033 8593 7906 7208
483 | 830810 7 6611 6171 5875 5690 5619 5605 5590 6002 6735 7458 7868 8144
484 | 830810 7 8194 7993 7777 7682 7812 7935 7996 8378 8690 8337 7723 7169
485 | 831810 1 6451 6241 6082 6000 6031 6506 7603 958410889117151222712320
486 | 831810 1 12141122761212011815117201137010887109301105110299 9167 8138
487 | 9 1810 2 7375 6968 6684 6589 6578 6988 81531002111181118081223712336
488 | 9 1810 2 12199122561214811877117881145710952109671090010353 9298 8191
489 | 9 2810 3 7373 6946 6694 6519 6538 6976 81721005511144117191202012131
490 | 9 2810 3 11971121251187911640116121129410803109151099310254 9239 8118
491 | 9 3810 4 7293 6888 6622 6485 6487 6898 8142 991511020115571187111872
492 | 9 3810 4 11672117421155211342112601103710749108891082110074 9054 8023
493 | 9 4810 5 7265 6768 6499 6346 6383 6816 8002 978510874114391174611781
494 | 9 4810 5 115321159311410110821080010515101301031910320 9674 8768 7755
495 | 9 5810 6 6882 6407 6085 5894 5789 5864 5937 6605 7581 8358 8701 8782
496 | 9 5810 6 8599 8342 8122 8006 8151 8296 8283 8582 8708 8243 7635 7002
497 | 9 6810 7 6375 5894 5584 5416 5307 5289 5269 5673 6421 7100 7483 7705
498 | 9 6810 7 7681 7487 7256 7080 7224 7278 7314 7798 8047 7718 7175 6514
499 | 9 7810 1 5939 5594 5366 5221 5154 5232 5272 5681 6495 7353 7830 8058
500 | 9 7810 1 7973 7705 7449 7398 7631 7841 7878 8372 8514 8082 7357 6608
501 | 9 8810 2 6110 5790 5671 5601 5690 6230 7679 973810931114811197712082
502 | 9 8810 2 11915121001194211693116331135511034113111118710366 9252 8103
503 | 9 9810 3 7227 6824 6579 6478 6458 6893 82971009911023115211176011724
504 | 9 9810 3 115721166211479112721121710882104891076210739 9955 8800 7754
505 | 910810 4 6949 6520 6309 6148 6223 6680 8109 991110559110591125911207
506 | 910810 4 110211119311067109571089010738104851079110739 9976 8936 7893
507 | 911810 5 7151 6696 6492 6348 6374 6793 8197 997710930114031173411775
508 | 911810 5 115671171111646113161107510785104061063710578 9836 8831 7865
509 | 912810 6 6993 6560 6250 6071 5997 6082 6349 7193 8247 9019 9429 9502
510 | 912810 6 9342 9198 9002 8923 9079 9244 9123 9408 9334 8802 8057 7323
511 | 913810 7 6654 6145 5787 5605 5477 5489 5505 5907 6764 7442 7810 8043
512 | 913810 7 8066 7863 7703 7665 7799 7964 8012 8796 8960 8461 7774 6931
513 | 914810 1 6399 6113 5919 5869 5905 6437 7915 991011055117241217912337
514 | 914810 1 12403126711269312460123941203411744118441148510670 9465 8241
515 | 915810 2 7454 7030 6786 6612 6667 7130 86521053111530120101237812341
516 | 915810 2 12119121271197711764118441161711312113861099110196 9075 7979
517 | 916810 3 7155 6779 6522 6451 6449 6923 85321038111271116461186611823
518 | 916810 3 115821163311433111841126011065107411095610657 9887 8831 7734
519 | 917810 4 6988 6565 6338 6221 6274 6763 82211004310873112161142511400
520 | 917810 4 111951133111196109851089110752105981097410699 9926 8857 7810
521 | 918810 5 6945 6610 6328 6235 6274 6698 82461009910938113261148311467
522 | 918810 5 112101129311090107291052310275101331043710146 9479 8548 7590
523 | 919810 6 6845 6421 6141 5978 5919 6042 6415 7195 8289 9144 9527 9540
524 | 919810 6 9266 8968 8731 8595 8782 8863 8838 9003 8721 8256 7604 6870
525 | 920810 7 6275 5892 5598 5453 5360 5377 5512 5940 6772 7408 7740 7935
526 | 920810 7 7878 7679 7365 7266 7387 7558 7917 8617 8513 8082 7334 6604
527 | 921810 1 6106 5857 5726 5644 5751 6322 7912 988610681111681129011262
528 | 921810 1 110331111010915106891070910554104331093710537 9846 8739 7697
529 | 922810 2 6903 6495 6303 6171 6212 6689 82671002210951113361156611621
530 | 922810 2 114971161811508113801149311296111451122710726 9909 8838 7779
531 | 923810 3 6881 6520 6285 6148 6208 6653 84151027811162114431162611621
532 | 923810 3 113781139111235110821113611178109351116210694 9920 8959 7795
533 | 924810 4 7010 6628 6523 6167 6293 6789 84171030911166114061160211497
534 | 924810 4 11232112651104810870110751105711014111681081510006 8972 7701
535 | 925810 5 7055 6638 6447 6326 6366 6856 83921013410889111761126611165
536 | 925810 5 109411103310766104781030610041101081047110093 9452 8590 7615
537 | 926810 6 6854 6424 6114 5979 5924 6045 6401 7208 8270 8941 9138 9071
538 | 926810 6 8743 8426 8181 8068 8205 8446 8715 9077 8728 8111 7577 6878
539 | 927810 7 6292 5909 5608 5466 5398 5428 5539 5908 6769 7394 7781 7977
540 | 927810 7 7985 7760 7540 7449 7607 7842 8342 8947 8741 8196 7526 6811
541 | 928810 1 6268 5988 5811 5766 5778 6297 7910 981310810113011152111546
542 | 928810 1 113301130411057108071087010762106731105110609 9927 8784 7648
543 | 929810 2 6943 6590 6349 6267 6305 6819 84751028511092112921140711337
544 | 929810 2 110401109910896106561068510616107191111410734 9943 8889 7787
545 | 930810 3 7027 6706 6531 6441 6499 7036 87181051511214113921145311314
546 | 930810 3 11029110751080210597106811065010795112091083510093 9047 7858
547 | 10 1810 4 7133 6779 6577 6495 6593 7075 88351069811485116941184811754
548 | 10 1810 4 11542115441135511130113111157811638114911104610220 9120 7903
549 | 10 2810 5 7215 6845 6623 6486 6512 6968 86241054311271115271158911466
550 | 10 2810 5 111971119110955106431059010661108911075710313 9657 8738 7720
551 | 10 3810 6 7052 6534 6259 6109 6076 6211 6643 7463 8534 9262 9548 9547
552 | 10 3810 6 9231 8945 8642 8421 8509 8750 9130 9328 8940 8483 7822 7078
553 | 10 4810 7 6574 6162 5895 5767 5676 5727 5986 6371 7157 7752 8011 8139
554 | 10 4810 7 8074 7735 7441 7263 7429 7690 8380 8866 8681 8221 7534 6694
555 | 10 5810 1 6254 6002 5851 5780 5858 6433 82181027411213115331168311704
556 | 10 5810 1 11495113561108510812109071101511194111821069010002 8956 7796
557 | 10 6810 2 7067 6678 6447 6348 6426 6960 86891055311326115301156311513
558 | 10 6810 2 11308114241131511262114841164711605113811084710057 9014 7634
559 | 10 7810 3 7049 6634 6416 6325 6388 6967 85961044011179114001149311408
560 | 10 7810 3 11223112531107610941110771107811275113481089710185 9173 7933
561 | 10 8810 4 7156 6801 6604 6536 6551 7062 86861045411264115121162111507
562 | 10 8810 4 11169112111099810812108291089211236113431094810219 9141 7980
563 | 10 9810 5 7112 6657 6467 6423 6909 7246 87251060211399115731160011417
564 | 10 9810 5 110941109410852105251050010584109281086910386 9773 8964 8008
565 | 1010810 6 7151 6680 6426 6272 6248 6429 6877 7640 8617 9178 9283 9088
566 | 1010810 6 8772 8360 8150 7984 8169 8550 9176 9315 8941 8488 7912 7233
567 | 1011810 7 6677 6296 6070 5947 5904 6001 6224 6681 7508 7986 8145 8171
568 | 1011810 7 8054 7750 7421 7288 7463 7836 8583 8869 8659 8324 7756 6989
569 | 1012810 1 6553 6281 6030 6018 6017 6386 7255 8470 9520100601028210184
570 | 1012810 1 9891 9683 9403 9194 9385 9613102051042010073 9557 8733 7739
571 | 1013810 2 7081 6786 6622 6591 6715 7370 91611115911853118731180011557
572 | 1013810 2 11169111541088710598106561076911237113061091210206 9178 7989
573 | 1014810 3 7291 6929 6770 6721 6810 7412 92501109311725117901166511434
574 | 1014810 3 11095110831088710583106731071211177112851081710077 9123 7996
575 | 1015810 4 8196 6874 6709 6601 6682 7311 91201099411620117041161911391
576 | 1015810 4 11051110651094510597106111073111289112901088110172 9028 7858
577 | 1016810 5 7218 6859 6600 6497 6592 7120 88301075711419115741165311468
578 | 1016810 5 111871122310971106591055610546109941078310351 9699 8798 7846
579 | 1017810 6 7048 6614 6341 6191 6169 6356 6832 7580 8647 9265 9331 9174
580 | 1017810 6 8753 8420 8068 7906 8034 8418 9233 9263 8820 8373 7775 7151
581 | 1018810 7 6595 6200 5965 5838 5789 5884 6120 6550 7386 7996 8300 8493
582 | 1018810 7 8512 8309 8143 8187 8561 8953 9340 9199 8874 8371 7655 6882
583 | 1019810 1 6360 6055 5896 5843 5944 6512 83391020711092113661150311405
584 | 1019810 1 11198112951112410937111221130911671114931102110301 9256 8140
585 | 1020810 2 7359 7011 6809 6735 6832 7480 92911115411739118251178211501
586 | 1020810 2 11196111771091310650107301098511523114181093210217 9189 8046
587 | 1021810 3 7244 6882 6670 6563 6601 7191 89171074411336114451141111303
588 | 1021810 3 110621107410833106011062710725112931113110720 9979 8958 7832
589 | 1022810 4 7055 6721 6495 6380 6457 7010 87401059511256114471143511279
590 | 1022810 4 110101104510865106061063010841113791111810675 9940 8896 7820
591 | 1023810 5 7026 6623 6387 6253 6277 6821 83401030011144114341149911503
592 | 1023810 5 112331128211082108441085111087112471086210335 9637 8835 7942
593 | 1024810 6 7061 6637 6353 6179 6158 6307 6776 7583 8606 9265 9524 9394
594 | 1024810 6 9042 8645 8319 8142 8313 8796 9686 9489 9142 8680 8116 7500
595 | 1025810 7 6934 6566 6198 6100 6136 6351 6497 7011 7998 8397 8463 8497
596 | 1025810 7 8405 8148 7901 7960 8698 9564 9399 9151 8795 8169 7574 6799
597 | 1026810 1 6395 6133 6043 6054 6119 6828 86761064211525118481198611930
598 | 1026810 1 11710117021153611438119931249012022113951086410002 8949 7642
599 | 1027810 2 7142 6770 6567 6452 6556 7127 88401066811426116691180011697
600 | 1027810 2 115101158811412113561196712488119961139810827 9992 8949 7925
601 | 1028810 3 7082 6665 6448 6370 6431 6971 86311041211139114281154511423
602 | 1028810 3 11212112401104810885113871215211843114231088110129 9105 8145
603 | 1029810 4 7298 6847 6657 6593 6658 7289 89251074711453116151160211456
604 | 1029810 4 11162111981102310849113901236312112116471118810407 9265 8207
605 | 1030810 5 7468 7076 6869 6783 6904 7477 91061092311581117931181411619
606 | 1030810 5 113071119011068109381130811980116851107710575 9950 9073 8247
607 | 1031810 6 7322 6907 6729 6513 6306 6322 7008 7945 8882 9392 9480 9320
608 | 1031810 6 8894 8489 8160 8109 888510127 9764 9345 8988 8543 7929 7292
609 | 11 1810 7 6748 6404 6168 6002 5969 6064 6143 6659 7469 8028 8311 8514
610 | 11 1810 7 8534 8258 8002 7951 8709 9683 9619 9280 8984 8413 7767 7104
611 | 11 2810 1 6536 6291 6173 6154 6288 7015 86621056411296114501148611314
612 | 11 2810 1 109811100010767105611109512131117431121310676 9959 8888 7843
613 | 11 3810 2 7055 6664 6501 6438 6531 7148 87971053311183113801139511246
614 | 11 3810 2 10930109741075610599111861225411870114321095110200 9208 8148
615 | 11 4810 3 7336 7030 6814 6746 6816 7474 90921087811436114941143711287
616 | 11 4810 3 10960110051075010633111851219711922113841093210146 9162 8010
617 | 11 5810 4 7377 6992 6829 6773 6882 7527 91961098311526115611149511306
618 | 11 5810 4 10950109461072110568112591213511814113431085510036 9034 7905
619 | 11 6810 5 7091 6731 6512 6425 6505 7040 86781051111400116591174311631
620 | 11 6810 5 112951121310981107141114011781114061082310312 9681 8846 7920
621 | 11 7810 6 7105 6653 6383 6259 6281 6493 6904 7798 8879 9597 9892 9788
622 | 11 7810 6 9468 9143 8908 8843 97181076910460 9958 9522 9028 8402 7703
623 | 11 8810 7 7111 6712 6440 6281 6261 6353 6450 6944 7667 8146 8307 8402
624 | 11 8810 7 8255 7943 7603 7525 8324 9574 9515 9332 9088 8556 7965 7231
625 | 11 9810 1 6694 6460 6350 6327 6502 7107 89021078911471116741170211519
626 | 11 9810 1 11260112661112711133119201246812392116711120310466 9453 8351
627 | 1110810 2 7599 7204 7057 7015 7087 7734 95091139412020121431211812063
628 | 1110810 2 11782118281166611577123691296912423117951128010472 9486 8393
629 | 1111810 3 7589 7129 6889 6767 6804 7164 8046 929910122106041084210811
630 | 1111810 3 105621037710110 99871086811803114351098810622 9979 9097 8117
631 | 1112810 4 7426 7086 6928 6901 7044 7698 94791134011962121291207311894
632 | 1112810 4 11547115041132111184119801291312642122031174910973 9956 8847
633 | 1113810 5 8094 7706 7532 7480 7576 8219 98971161912190122181209511849
634 | 1113810 5 11398113691103010799114951235411959114811097910361 9495 8545
635 | 1114810 6 7713 7227 7000 6858 6845 7080 7411 8232 9231 9748 9865 9743
636 | 1114810 6 9360 9016 8680 8716 96201067710367 9841 9417 8877 8243 7546
637 | 1115810 7 6965 6519 6224 6122 6069 6145 6289 6748 7578 8303 8703 9032
638 | 1115810 7 9130 8924 8730 8754 947910006 9848 9512 9170 8652 7962 7186
639 | 1116810 1 6646 6378 6223 6182 6310 6962 87591078211656119631210412071
640 | 1116810 1 11883118581174911622124151275812184116881110310299 9216 8081
641 | 1117810 2 7303 6881 6653 6543 6622 7150 89261080111520117321182911727
642 | 1117810 2 11473115071140011319122581271512188116351113510395 9316 8067
643 | 1118810 3 7363 6984 6765 6667 6789 7361 91121099011776119851209912036
644 | 1118810 3 11809118541169711635124321291212367118451131410564 9481 8302
645 | 1119810 4 7523 7115 6914 6810 6905 7507 91911100711695117921182711645
646 | 1119810 4 11357113551114011003118411255912141117021124810499 9421 8182
647 | 1120810 5 7467 7050 6829 6750 6802 7390 90681093511764121111230312277
648 | 1120810 5 12083120731188511781123061243111981113741084710138 9351 8285
649 | 1121810 6 7510 7024 6747 6588 6558 6745 7223 8060 9156 99251018510178
650 | 1121810 6 9879 9620 9418 940210234109671063410069 9638 9135 8547 7854
651 | 1122810 7 7175 6754 6473 6296 6258 6360 6537 6920 7694 8345 8696 9026
652 | 1122810 7 9149 8968 8768 8839 9732104741031710031 9799 9332 8648 7913
653 | 1123810 1 7315 7018 6873 6849 7002 7643 95231140712161123691239812297
654 | 1123810 1 1201111987117861176612658133761290412452120091126410130 9005
655 | 1124810 2 8177 7746 7561 7507 7604 8266100671181812403124741241512209
656 | 1124810 2 1189311828115901149612519132501291612501120461132810229 9112
657 | 1125810 3 8251 7893 7706 7629 7692 8333100721191412636128741293012742
658 | 1125810 3 1237012261119711165312554130211260312263118081112910066 8887
659 | 1126810 4 7943 7441 7146 7031 6978 7169 7518 8181 9128 9661 9783 9658
660 | 1126810 4 9160 8368 7736 7552 8063 8477 8517 8559 8513 8340 7919 7311
661 | 1127810 5 6750 6431 6249 6175 6217 6493 7093 8058 9076 9764 9978 9892
662 | 1127810 5 9579 9306 9127 9250101601069210334 9912 9493 8915 8221 7538
663 | 1128810 6 6884 6509 6256 6173 6151 6329 6696 7315 8370 9176 9465 9465
664 | 1128810 6 9316 9078 8958 9037 99121066910402 9988 9606 9149 8540 7898
665 | 1129810 7 7270 6864 6600 6434 6431 6527 6757 7137 7971 8642 9040 9312
666 | 1129810 7 9329 9040 8732 8792 982610660105001027410010 9490 8772 8022
667 | 1130810 1 7424 7155 7033 7006 7150 7870 97981174712453127551276512573
668 | 1130810 1 1223612157119011181612819135451311312654121581147810366 9190
669 | 12 1810 2 8394 7990 7842 7776 7898 8536103191222912929130431307312973
670 | 12 1810 2 1268012762126671267813615138411331112779121961136610180 8951
671 | 12 2810 3 8071 7625 7351 7210 7239 7799 95231145212159123761251412498
672 | 12 2810 3 12225121851191811728125471298912473119571148410756 9698 8532
673 | 12 3810 4 7668 7290 7058 6983 7092 7697 95291143112097122201225012146
674 | 12 3810 4 1178311799116471162312536130141262612121117041102710051 8842
675 | 12 4810 5 7929 7527 7296 7243 7360 7974 97361155612180122011208711870
676 | 12 4810 5 11519114571128811227120971257512206116871121310569 9774 8905
677 | 12 5810 6 7998 7512 7181 7097 7033 7233 7741 8580 9651104501075210727
678 | 12 5810 6 105151025010092102111111711686113321083810405 9887 9187 8369
679 | 12 6810 7 7338 7359 7071 6952 6835 6965 7203 7669 8501 9254 981910112
680 | 12 6810 7 1023810112 994910061110511162711366110041063210013 9279 8409
681 | 12 7810 1 7806 7507 7379 7350 7497 8099 97231136712244126261267012543
682 | 12 7810 1 1221312072117911176212817134571303912539120091135310231 9082
683 | 12 8810 2 8186 7762 7569 7475 7576 8200100181179412497126251266812567
684 | 12 8810 2 1231112395122601225213257136761319812707121821145110321 9151
685 | 12 9810 3 8263 7844 7658 7626 7733 8385102571212812842130601308912952
686 | 12 9810 3 1272712726126221257313499141081359713146126531195110771 9519
687 | 1210810 4 8646 8192 8005 7908 7983 8623105251235512980130391298212818
688 | 1210810 4 1241412416122701230613239138791353813082126391194610833 9543
689 | 1211810 5 8674 8208 7988 7878 7940 8522103371222012916130111296012705
690 | 1211810 5 1229812211119751185012699131851282012240117801112210264 9276
691 | 1212810 6 8428 7888 7579 7444 7430 7610 8064 8905 9965106341074510575
692 | 1212810 6 10203 9892 9716 9839108631163911404108951048710040 9436 8731
693 | 1213810 7 8068 7636 7349 7204 7168 7278 7586 7994 8787 9343 9555 9642
694 | 1213810 7 9913 9186 8879 9007101661112011111109011066010187 9409 8610
695 | 1214810 1 7935 7630 7508 7478 7649 8300102921233013059132711322413035
696 | 1214810 1 1270312638124431248013514140041366113061126301187710755 9431
697 | 1215810 2 8509 8078 7839 7765 7825 8394100941190212596129401305912979
698 | 1215810 2 1270612703124931247313476138631348912949124711170810616 9184
699 | 1216810 3 8356 7965 7721 7629 7710 8329100911192312688129621314213026
700 | 1216810 3 1263512592123581224713205139311360913152126711199010869 9562
701 | 1217810 4 8725 8279 8072 7943 8087 8687105511232512917129241287512732
702 | 1217810 4 1245912499123831238913292138721360713064126171190510803 9479
703 | 1218810 5 8507 8051 7845 7734 7809 8432102061199712759130521317013041
704 | 1218810 5 1271712696124781238713058134741316512606121091142210532 9468
705 | 1219810 6 8767 8243 7936 7810 7815 8053 8573 937710416110161108610936
706 | 1219810 6 1058110318101321020811377123901229311822114881098010345 9538
707 | 1220810 7 8845 8374 8027 7954 7905 7981 8309 8692 9560101301039310509
708 | 1220810 7 1048410131 9868 992611030120561205111790116141118610396 9418
709 | 1221810 1 8817 8513 8398 8414 8574 9268111721301013783138571363813347
710 | 1221810 1 1282312746124911241713489141981398513482130261235511272 9947
711 | 1222810 2 8916 8346 8089 7956 8038 8636103281218112911132321334313268
712 | 1222810 2 1301312910126191241113161137551352113023126371193910871 9575
713 | 1223810 3 8561 8032 7760 7674 7736 8204 98971183512625130251306512904
714 | 1223810 3 1243312209118031154312272129451274212269118621121610247 9122
715 | 1224810 4 8038 7450 7140 6978 7007 7266 8240 939610447109451093110579
716 | 1224810 4 9989 9522 9241 9169101441098410499 9803 9459 8996 8803 8294
717 | 1225810 5 7673 7093 6656 6435 6364 6486 6905 7571 8311 8838 9086 9159
718 | 1225810 5 9072 8600 8129 7926 8402 9083 9149 9142 9160 9030 8682 8077
719 | 1226810 6 7412 7039 6839 6804 6798 6973 7343 7772 8588 9374 9582 9773
720 | 1226810 6 9667 9379 9154 91971017911061108761048310128 9637 9004 8266
721 | 1227810 7 7561 7094 6802 6634 6588 6657 6914 7240 7957 8770 9323 9760
722 | 1227810 7 9974 9862 9563 95781028110837106651035510117 9643 8965 8179
723 | 1228810 1 7452 7154 6981 6939 7060 7497 87471022711210117611199912034
724 | 1228810 1 11756114771118911066120411290512591120571152810811 9870 8796
725 | 1229810 2 7943 7509 7255 7177 7209 7665 87831029511229117061190911879
726 | 1229810 2 1161111484113441130312123129561265912074117621104010091 9060
727 | 1230810 3 8227 7811 7617 7547 7650 8164 93651078911641119521211112014
728 | 1230810 3 1167811491112311115412039129681271212258118511127910380 9328
729 | 1231810 4 8470 8047 7833 7762 7822 8265 93681063111524118771189911665
730 | 1231810 4 112151091710629104781122711986115981087210235 9637 9111 8652
731 |
--------------------------------------------------------------------------------
/Datasets/System-Loads-in-EEI-format/1982_eei_loads.txt:
--------------------------------------------------------------------------------
1 | 1 1820 5 8202 7671 7198 6882 6764 6788 6964 7104 7570 8190 8781 9308
2 | 1 1820 5 9587 9494 9323 9322 99501043610207 9871 9608 9153 8660 7988
3 | 1 2820 6 7320 6948 6753 6676 6705 6888 7314 6798 8704 9449 9826 9938
4 | 1 2820 6 9771 9456 9240 9245102191140811313108941056310150 9566 8928
5 | 1 3820 7 8280 7878 7650 7503 7473 7533 7765 8076 8839 9519 996810239
6 | 1 3820 7 1033810141 9906 98711062911277111291081710485 9947 9126 8324
7 | 1 4820 1 7668 7395 7188 7203 7347 7982 97291163112511130291332813443
8 | 1 4820 1 13151129901289912740132351347512896122721162510716 9639 8602
9 | 1 5820 2 7740 7372 7226 7170 7282 7918 96931160412280125161264112567
10 | 1 5820 2 1230712337120831201612844137991343712999125331176110649 9481
11 | 1 6820 3 8663 8313 8141 8106 8196 8813106491249413071132211319413083
12 | 1 6820 3 1279712789125741245813009135951310112494120301127210160 8996
13 | 1 7820 4 8134 7727 7515 7410 7488 8101 98821176912351125591262012476
14 | 1 7820 4 1224212279121691213312768134531313412657121981147710414 9330
15 | 1 8820 5 8545 8204 8087 8021 8212 8858107551254413185133591341113319
16 | 1 8820 5 129821295612650124421303513886136341313712644119091100010005
17 | 1 9820 6 9211 8740 8445 8310 8240 8352 8795 957410551111991156611604
18 | 1 9820 6 1138711104108421081611537123221212111594111591063310002 9337
19 | 110820 7 8825 8436 8200 8122 8130 8246 8575 8977 9871105761091611278
20 | 110820 7 115291138411205111821192112842128481253012278118621110110269
21 | 111820 1 9735 9468 9350 9325 944110145120251400614679150281508414964
22 | 111820 1 147121460714319141661484115599152601477314326134371232611176
23 | 112820 2 104891014110001 99941015510844126681441114833149541497314739
24 | 112820 2 143731421513970138191453415483151551466814255134681230911223
25 | 113820 3 1048510171 9955 9912 998610586123921414014610146361456514392
26 | 113820 3 140971409813910137541438414981145741405813546127181157710529
27 | 114820 4 9680 9301 9076 9026 9103 9661110751261513459138421414014171
28 | 114820 4 139411381413533133311381514437140441358413057122261113410039
29 | 115820 5 9244 8846 8665 8595 8682 9196106271219312892131971333713283
30 | 115820 5 129381280612558123281288013900136491312112697119471118310218
31 | 116820 6 9420 8969 8737 8673 8697 8929 94221012111072117171201912067
32 | 116820 6 11768114131114911091115831244312159116341116010580 9960 9290
33 | 117820 7 8787 8481 8321 8320 8385 8611 9007 945210292109551141911721
34 | 117820 7 118721166311463115021213613233132601299912823122951155110850
35 | 118820 1 10222 9980 9902 98991007110784126711447915192153351531015129
36 | 118820 1 146671449714148139941446615423152361482514329135731246411327
37 | 119820 2 105141017610055100191012210762126081429614660146771458314320
38 | 119820 2 139101374313438133171397714954147181429013837130201183910691
39 | 120820 3 9842 9477 9249 9175 9277 9888116501333513845138591377813440
40 | 120820 3 130021285512629125061311914138139271355613110123791131310177
41 | 121820 4 9408 9065 8947 8930 9099 9764116951349014232143631434514081
42 | 121820 4 137281372013497133361380714814147091431913912131801214111081
43 | 122820 5 10321 9980 9872 9825 997010650125051415814648147141462614381
44 | 122820 5 139851376013456132541364014616144551403013619128981206711067
45 | 123820 6 10347 9991 9635 9482 9447 9611 99921074511801126881309713268
46 | 123820 6 1310212728123801213212554131591272612036114371073210043 9167
47 | 124820 7 8482 8056 7790 7648 7605 7662 7957 8380 9223 98891028910559
48 | 124820 7 105901033210085 997710520115601173411469113811097210288 9518
49 | 125820 1 8984 8753 8661 8691 8871 9588115601334613941141741417213980
50 | 125820 1 136531349813264131161365314645144941409313560128341183410664
51 | 126820 2 9959 9654 9579 9504 969710408122651386214322143351421813979
52 | 126820 2 136571350813308131521369814779146651430913883132271219911043
53 | 127820 3 1031110052 9905 98681002510713125621424914671146571455414273
54 | 127820 3 138181361813311130391356914610145771417013760130821201610848
55 | 128820 4 10068 9738 9595 9501 966110282121141371314184141971405413863
56 | 128820 4 1356913550133731317413475141951398913548130651223011114 9915
57 | 129820 5 9076 8719 8495 8442 8555 9176109121258013106131751315912949
58 | 129820 5 1260412454121571194312244132261321712723123031159510799 9937
59 | 130820 6 9120 8681 8472 8384 8417 8624 9106 982810811114041165411579
60 | 130820 6 112751100010754106801111611954116921110610600 9964 9299 8575
61 | 131820 7 7937 7489 7186 7008 6919 7026 7275 7668 8482 9249 9611 9846
62 | 131820 7 9837 9685 9486 9674103641114711161109091064410150 9406 8482
63 | 2 1820 1 7975 7724 7566 7450 7554 8234 98361171212448127171288912901
64 | 2 1820 1 1271012577123131213712532135221358513206126761191110855 9852
65 | 2 2820 2 8963 8633 8500 8502 8589 9291111471281913378133901343213125
66 | 2 2820 2 1283812782125941251213025138231364213094125871171710573 9448
67 | 2 3820 3 8666 8273 8095 8031 8121 8697103731216812871130791327213228
68 | 2 3820 3 1295412871126461244112847134301308612585120241119910078 8987
69 | 2 4820 4 8113 7696 7447 7322 7379 7961 97191142712043122411225812128
70 | 2 4820 4 1186711843116441145311727127181290012479121161142810408 9312
71 | 2 5820 5 8549 8216 8065 8003 8171 8821105901235812950131931311213019
72 | 2 5820 5 1261512608123941221812519131461299312506119661115810261 9172
73 | 2 6820 6 8491 7996 7724 7538 7456 7651 8024 8731 9786105821107711144
74 | 2 6820 6 10879105181023910210106081162611798113461095310474 9891 9157
75 | 2 7820 7 8665 8261 8016 7941 7922 8073 8312 8701 9395 99181018310352
76 | 2 7820 7 10277 9890 9537 9377 97491078611335111951084910389 9649 8834
77 | 2 8820 1 8335 8071 7900 7910 8065 8751106211232212988130411310112900
78 | 2 8820 1 1252012392120691189512218132391332512919123501160810579 9391
79 | 2 9820 2 8640 8269 8062 8001 8076 8785106611218012833131781338213414
80 | 2 9820 2 1317913200129671278213057136711348312983124171155210353 9340
81 | 210820 3 8552 8183 8021 7936 8103 8793106341227312825129881305212889
82 | 210820 3 125751246412221120351234413319136051326212843121981115310027
83 | 211820 4 9288 8975 8820 8767 8934 9634115011311913596136301363813415
84 | 211820 4 129951283112467122801252813422137471338212940122511124210143
85 | 212820 5 9372 9027 8874 8816 8941 9582112411279413370133641325912930
86 | 212820 5 1248612335120901182611977128101297412533120331136710535 9561
87 | 213820 6 8771 8315 8050 7921 7904 8101 8492 929410296110621136411387
88 | 213820 6 11090106601049010382106791159311814113121087410329 9728 9098
89 | 214820 7 8489 8123 7890 7746 7746 7851 8108 8563 9228 9667 9864 9924
90 | 214820 7 9821 9418 9047 8945 927810251106921053810328 9938 9510 8969
91 | 215820 1 8360 8070 7914 7844 7932 8234 90131012911167115281187811753
92 | 215820 1 11368108991047910257106571152911673112501078110133 9307 8273
93 | 216820 2 7680 7280 7097 7007 7083 7609 90831073511601119201205511945
94 | 216820 2 1155011471112421106711369122011240211989115491089510004 8956
95 | 217820 3 8242 7899 7773 7755 7902 8504 99011174112662130251304312969
96 | 217820 3 1264012574123551210712415131771332412910124381172510796 9711
97 | 218820 4 8952 8556 8387 8305 8428 9004104461217113057133511338213202
98 | 218820 4 1274312592122641193512129128591331612843123561172210745 9449
99 | 219820 5 8886 8517 8315 8240 8354 8853102381183812695131031326713230
100 | 219820 5 1295112849125421218412289127731280012293117471099210116 9183
101 | 220820 6 8387 7908 7607 7466 7461 7644 8027 8772 9710103571057710493
102 | 220820 6 10110 9720 9329 9161 9394103401081310412 9996 9488 8853 8153
103 | 221820 7 7657 7244 6958 6821 6753 6837 7042 7424 8256 8888 9275 9547
104 | 221820 7 9587 9345 9079 9065 9377100501043410234 9985 9536 8793 8025
105 | 222820 1 7547 7259 7169 7137 7278 7972 97621171012584128921305112973
106 | 222820 1 1275312773125131235212647131761322812796121881145910399 9190
107 | 223820 2 8437 8103 7939 7864 7971 8618103031204312682128501283212644
108 | 223820 2 1234312319121231191112347128681293312459119551117310165 8967
109 | 224820 3 8188 7855 7727 7691 7860 8543103131218112974132211330913105
110 | 224820 3 1278112629123811230212603131941330712865124331171910693 9587
111 | 225820 4 8777 8468 8317 8320 8480 9215109981272713378135391358213463
112 | 225820 4 131581308712814125811287313565141101382613378126481165010440
113 | 226820 5 9701 9339 9205 9201 9302 9946115171312413692137361367713461
114 | 226820 5 1303112763124331204812094126501311612729122671157610728 9809
115 | 227820 6 9104 8718 8407 8274 8288 8472 8858 960710469109821108310948
116 | 227820 6 1053710080 9751 9606 98841074911299108941050510038 9447 8750
117 | 228820 7 8211 7870 7671 7516 7541 7683 7813 8247 8899 9345 9564 9720
118 | 228820 7 9624 9214 8832 8696 8989 986610797107691058010196 9454 8787
119 | 3 1820 1 8344 8184 8118 8151 8419 9173110081277713396135741352513323
120 | 3 1820 1 1296412845125811233712672132781353112972124281159610471 9270
121 | 3 2820 2 8549 8143 7925 7843 7904 8614101651182212411124581250712383
122 | 3 2820 2 1207912026118641169411995125601294612577121831145910387 9246
123 | 3 3820 3 8575 8396 8178 8154 8326 9053107791247013040131451306812867
124 | 3 3820 3 1251212439121151186612129127271338313104127281206510984 9840
125 | 3 4820 4 9175 8933 8741 8778 8980 9707113331310013566134591339513229
126 | 3 4820 4 1298413051129371275112980133971359013223126721181210615 9346
127 | 3 5820 5 8648 8219 7977 7816 7858 8393 99811173612448125351248012277
128 | 3 5820 5 11826116491128310929108951126711962116301120910553 9807 8868
129 | 3 6820 6 8207 7759 7562 7467 7481 7729 8070 8949 9891105011067210612
130 | 3 6820 6 10286 9966 9771 97961014410806111101063710168 9533 8895 8239
131 | 3 7820 7 7641 7172 6933 6802 6749 6811 6926 7436 8318 9062 9520 9880
132 | 3 7820 7 9959 9741 9486 9466 986210253105951033110039 9498 8738 7970
133 | 3 8820 1 7429 7208 7103 7091 7263 7974 97761170612485126601267912569
134 | 3 8820 1 1226612200118931164411890123611302912778123801168510627 9395
135 | 3 9820 2 8809 8482 8357 8324 8479 9145108201257413214132941331913184
136 | 3 9820 2 1298612996127771263112821131571341713001125241170110615 9571
137 | 310820 3 8796 8561 8362 8329 8503 9226108731247112855126121271512492
138 | 310820 3 1209912042118141163611840123371283212516120971135110245 9154
139 | 311820 4 8322 8007 7740 7667 7775 8378 99391190512589127061271812433
140 | 311820 4 12040118671153511184112951173212201119131140210626 9578 8485
141 | 312820 5 7711 7317 7097 6971 7071 7616 92051106211898120651223212209
142 | 312820 5 11914118801162811394114521161611827114171095110262 9444 8525
143 | 313820 6 7719 7266 7004 6860 6869 7030 7342 8226 9255100231037810414
144 | 313820 6 10094 9842 9748 9708 9933103441054010080 9658 9081 8487 7898
145 | 314820 7 7253 6788 6553 6366 6369 6445 6515 7131 7856 8471 8784 8952
146 | 314820 7 8925 8428 8153 7994 8194 8709 9780 9836 9710 9237 8500 7831
147 | 315820 1 7311 7037 6974 6970 7162 7793 94791140912156123621236812167
148 | 315820 1 11812116781137011045111361150512159119971162410908 9867 8794
149 | 316820 2 8082 7750 7596 7544 7635 8290 98561156112083120991199411753
150 | 316820 2 11389113161108310938112841172412138117911138910620 9558 8406
151 | 317820 3 7773 7470 7305 7206 7297 7892 95701142412147124291257412497
152 | 317820 3 12286123031207711850119111201512407121401170610968 9937 8876
153 | 318820 4 8163 7832 7668 7607 7718 8346 98491150311986119881192911673
154 | 318820 4 11303112771095310671107131099511761116201126610550 9472 8432
155 | 319820 5 7710 7298 7127 7073 7147 7797 92711109411764118851188211759
156 | 319820 5 11399113991117310917110301126911653112791084110114 9299 8409
157 | 320820 6 7705 7262 7000 6860 6833 6990 7322 8165 9056 9562 9688 9552
158 | 320820 6 9170 8749 8425 8245 8423 8937 9883 9717 9354 8886 8263 7641
159 | 321820 7 7115 6722 6458 6315 6268 6364 6445 7035 7860 8461 8870 9216
160 | 321820 7 9350 9194 8994 8923 9206 9556 9966 9787 9503 9019 8239 7513
161 | 322820 1 7024 6780 6652 6656 6772 7386 90201100511837121331216012052
162 | 322820 1 11651115451125810914110261126511826116831122810466 9392 8399
163 | 323820 2 7691 7344 7219 7162 7274 7882 94701117511660119231187111695
164 | 323820 2 11323112361095910644107321093611616116111122210591 9578 8494
165 | 324820 3 7773 7506 7354 7354 7455 8063 96451136511857118821170611521
166 | 324820 3 11148110941086110562107071097211558115201110510408 9309 8266
167 | 325820 4 7661 7316 7136 7115 7200 7799 93971118211805118601175211490
168 | 325820 4 11144110211073310458105271079311405113611097310235 9117 8055
169 | 326820 5 7389 6986 6795 6707 6784 7320 89581085511648119891212112021
170 | 326820 5 11839117931154811214111311112511546114741103810325 9476 8660
171 | 327820 6 7906 7505 7274 7207 7238 7337 7758 8697 9693103621059310513
172 | 327820 6 10145 9777 9475 9344 95531004110907108811052110050 9448 8746
173 | 328820 7 8271 7947 7778 7672 7671 7674 7769 8276 9019 9517 9768 9912
174 | 328820 7 9786 9383 8969 8733 8848 9216101481036610240 9783 9039 8302
175 | 329820 1 7792 7612 7512 7556 7704 8328 99341178312442125471244412237
176 | 329820 1 11764116371124910883109091103511681117691137010626 9606 8594
177 | 330820 2 7931 7497 7342 7296 7428 7965 95931129311841118301175911461
178 | 330820 2 11101110411079110494105401070111220113461091110233 9174 8110
179 | 331820 3 7409 7091 6918 6856 6957 7484 91561097011708118821202311976
180 | 331820 3 11748117191155911422117351188412049117131116810305 9193 8106
181 | 4 1820 4 7309 6956 6769 6694 6794 7319 88731062311296114541141911242
182 | 4 1820 4 11037110921085810549106591077311419115611114610406 9380 8323
183 | 4 2820 5 7605 7285 7100 7045 7219 7744 93661111411808118931189111711
184 | 4 2820 5 113011114910778103871025610338109551101610648 9989 9182 8183
185 | 4 3820 6 7595 7182 7010 6883 6895 6942 7340 8175 9136 9582 9825 9826
186 | 4 3820 6 9681 9513 9397 9305 96881012610293 9905 9412 8796 8072 7397
187 | 4 4820 7 6906 6446 6218 6020 6031 6037 6177 6872 7836 8485 8849 9089
188 | 4 4820 7 9167 8976 8702 8610 8916 9273100201023410149 9625 8895 8202
189 | 4 5820 1 7759 7562 7497 7541 7675 8303100911208912831131661311712881
190 | 4 5820 1 1245512264118391144011447115781206112265118741114910024 8827
191 | 4 6820 2 8183 7892 7721 7742 7815 8363100371190412709131021339813203
192 | 4 6820 2 1258612355120091167311910121121222212086115871097210062 9080
193 | 4 7820 3 8593 8366 8258 8278 8403 8888100671162012621131181337613503
194 | 4 7820 3 1327913112128951268812855130291330613357128721207110893 9727
195 | 4 8820 4 9240 8855 8796 8751 8823 9191106521226812935130881314212914
196 | 4 8820 4 1257412457121451173911657117011223712419119781129310327 9147
197 | 4 9820 5 8477 8039 7824 7781 7803 8030 89991019210918111491114911006
198 | 4 9820 5 106261040310177 9865 992210241107261083110474 9847 9078 8157
199 | 410820 6 7656 7280 7093 7009 6971 6975 7302 8069 8976 9549 9697 9592
200 | 410820 6 9241 8882 8576 8413 8556 8902 9515 9770 9572 9119 8547 7814
201 | 411820 7 7234 6814 6620 6488 6465 6410 6721 7362 8021 8301 8328 8298
202 | 411820 7 8149 7697 7323 7125 7258 7417 8240 8756 8819 8473 7875 7219
203 | 412820 1 6839 6652 6554 6585 6690 7185 89011078811747120811221912062
204 | 412820 1 11649115381118310816108651094411292115231117410368 9412 8327
205 | 413820 2 7711 7386 7201 7090 7168 7650 92611123112026122651230612183
206 | 413820 2 11916119141170611505117411174811729116041117010379 9308 8227
207 | 414820 3 7551 7149 6995 6922 7027 7455 89741073311500116351169211517
208 | 414820 3 11165111301081810490104731050510880112701093610251 9282 8188
209 | 415820 4 7542 7238 7055 7044 7161 7574 91301082911439115521146911333
210 | 415820 4 10921109481060210316101721025010643111161081110130 9092 8043
211 | 416820 5 7384 7042 6887 6811 6917 7307 88211050211179112421127111034
212 | 416820 5 106991058710348 9970 9865 9716100641042410043 9342 8461 7562
213 | 417820 6 6832 6439 6158 6026 5969 5890 6327 7232 8158 8787 8978 8962
214 | 417820 6 8675 8352 8083 7999 8166 8614 8992 9167 8780 8216 7578 6904
215 | 418820 7 6385 6041 5762 5611 5498 5360 5536 6105 6890 7500 7805 7972
216 | 418820 7 7933 7525 7297 7154 7396 7558 8148 8764 8660 8246 7590 6929
217 | 419820 1 6445 6221 6104 6096 6138 6439 7611 921010111104731059610454
218 | 419820 1 10101 9934 9691 9459 9560 9611 98591034710004 9400 8491 7468
219 | 420820 2 6843 6528 6371 6344 6422 6741 8200 998810802110351113310997
220 | 420820 2 106951069710519102541028510205104341077910424 9649 8629 7600
221 | 421820 3 6914 6541 6330 6207 6284 6613 8026 996610982114701167011659
222 | 421820 3 11369112781096210598104631036810543110611073810080 9134 8051
223 | 422820 4 7430 7108 6931 6884 6936 7277 86481042111262115481154711418
224 | 422820 4 11068110351073110599106101058310847113181099910295 9364 8288
225 | 423820 5 7704 7332 7166 7129 7192 7492 88391048611230114241139411210
226 | 423820 5 10822107221042210080 9921 9764100141036610050 9485 8538 7584
227 | 424820 6 6912 6484 6226 6029 5958 5877 6360 7244 8158 8653 8771 8604
228 | 424820 6 8293 7921 7672 7578 7703 7996 8325 8759 8684 8134 7560 6773
229 | 425820 7 6271 5840 5879 5680 5552 5549 5476 5794 6440 7087 7367 7526
230 | 425820 7 7493 7227 6922 6815 6926 7093 7207 7483 7924 8493 7815 6597
231 | 426820 1 6065 5812 5673 5626 5641 6105 7573 951210539109001115611123
232 | 426820 1 109601097510656105861062910705104301042610403 9728 8718 7607
233 | 427820 2 6832 6511 6250 6118 6154 6607 80531004510947111911134611292
234 | 427820 2 110641108710889106131057610409101101009010450 9814 8766 7635
235 | 428820 3 6899 6496 6320 6201 6273 6739 83081049811431117751194111901
236 | 428820 3 11634115721133811012110211082310358101691060110382 9227 8064
237 | 429820 4 7309 6930 6723 6653 6756 7270 87291063611350114841146011290
238 | 429820 4 109351093710672103101020610059 9773 971210352 9942 8942 7861
239 | 430820 5 7101 6737 6554 6496 6584 7024 84171028710988112221122011096
240 | 430820 5 10744107581046910074 9916 9693 9406 9369 9781 9317 8465 7470
241 | 5 1820 6 6779 6337 6094 5899 5845 5909 6155 7045 8068 8639 8818 8714
242 | 5 1820 6 8388 8105 7944 7722 7743 7989 8018 8041 8494 8160 7517 6794
243 | 5 2820 7 6231 5841 5639 5485 5403 5373 5395 5970 6730 7267 7476 7548
244 | 5 2820 7 7454 7192 6952 6900 7070 7264 7463 7779 8349 8049 7328 6535
245 | 5 3820 1 6046 5841 5708 5646 5750 6251 7804 989810736109621109910966
246 | 5 3820 1 107571078910626104041048110259 9869 981810173 9609 8525 7362
247 | 5 4820 2 6600 6318 6104 6016 6061 6558 8064 999810771109741104010972
248 | 5 4820 2 107631078910593104101043010273 9891 977510253 9726 8723 7586
249 | 5 5820 3 6861 6533 6361 6242 6313 6832 83961024010921110781115111016
250 | 5 5820 3 1074010818105251026310251 9966 9565 951610187 9744 8700 7503
251 | 5 6820 4 6796 6426 6241 6125 6242 6645 80791009010800110291106611043
252 | 5 6820 4 108121093910741104501029110089 9695 962210248 9833 8757 7579
253 | 5 7820 5 6832 6442 6183 6090 6103 6523 7911 986110628108901097210911
254 | 5 7820 5 10603106641040910103 9927 9615 9291 9128 9693 9272 8427 7379
255 | 5 8820 6 6642 6178 5915 5759 5728 5695 6026 6949 7926 8504 8630 8530
256 | 5 8820 6 8255 7974 7755 7701 7848 8021 8008 8059 8445 8127 7451 6756
257 | 5 9820 7 6179 5805 5528 5373 5286 5222 5278 5797 6767 7478 7736 7586
258 | 5 9820 7 7389 7272 7143 7028 7113 7299 7479 7753 8295 7951 7253 6620
259 | 510820 1 6005 5779 5686 5577 5606 6111 7706 987310788111941136811344
260 | 510820 1 11085111421092910649106261049010073 989710263 9740 8634 7500
261 | 511820 2 6770 6419 6224 6135 6179 6606 81591020910992112141130111237
262 | 511820 2 109481095110715104171036010144 9691 953910194 9787 8729 7575
263 | 512820 3 6818 6461 6272 6172 6216 6652 81691017510930111421123711074
264 | 512820 3 108781088810739104611039210158 9786 961410235 9794 8749 7520
265 | 513820 4 6807 6464 6281 6173 6194 6594 80321005310812111611125411180
266 | 513820 4 109451099810751105221040710220 9807 968710317 9892 8804 7698
267 | 514820 5 6872 6457 6245 6098 6163 6474 7978 984010664110331108611046
268 | 514820 5 1074310773105301026110043 9740 9407 9111 9617 9267 8389 7411
269 | 515820 6 6637 6229 5927 5757 5693 5667 5979 6889 7890 8534 8679 8598
270 | 515820 6 8306 8022 7811 7715 7842 7954 7865 7736 8244 8098 7495 6752
271 | 516820 7 6139 5754 5488 5365 5272 5127 5270 5818 6619 7215 7482 7623
272 | 516820 7 7609 7333 7094 7011 7156 7330 7378 7541 8293 8104 7393 6601
273 | 517820 1 6047 5801 5674 5579 5673 6053 7636 974010701111041142111428
274 | 517820 1 112451134111180108871078610417 9989 968010194 9830 8748 7487
275 | 518820 2 6751 6402 6165 6053 6098 6558 7961 995810738110461117711169
276 | 518820 2 109481104210905106871066710374 9892 964210095 9759 8672 7496
277 | 519820 3 6661 6416 6210 6079 6105 6513 80711016310952112031146711452
278 | 519820 3 11376115321143311193110771076010290101471052710048 8942 7683
279 | 520820 4 7025 6630 6380 6252 6255 6610 81501018611184115701179811834
280 | 520820 4 11645117711174711420111641077310321101321042810001 8954 7851
281 | 521820 5 7001 6589 6323 6193 6184 6481 7987 992610855111901142311287
282 | 521820 5 1107011073108521049910327 9948 9548 9248 9616 9343 8471 7472
283 | 522820 6 6691 6218 5976 5765 5741 5695 6041 6925 7915 8533 8759 8563
284 | 522820 6 8382 8117 7884 7848 7945 8147 8118 8047 8326 8055 7382 6697
285 | 523820 7 6139 5751 5498 5306 5269 5185 5301 5808 6638 7325 7731 8001
286 | 523820 7 8103 7969 7786 7711 7840 7972 8023 8089 8445 8160 7377 6616
287 | 524820 1 5991 5986 5708 5716 5741 6225 79311019111245116881193811948
288 | 524820 1 117681167011437112641133811206107521043310514 9892 8844 7682
289 | 525820 2 6926 6532 6326 6194 6263 6663 81791022310944112001135611325
290 | 525820 2 110841113810974107041065410332 9903 955010059 9916 8862 7645
291 | 526820 3 6800 6478 6260 6064 6191 6498 80141002710923112941146611519
292 | 526820 3 11354114831135511118110791066910205 98631036810164 9060 7851
293 | 527820 4 7007 6580 6302 6166 6170 6461 80001005811046115221179611901
294 | 527820 4 11722118551172311443112461078510320 99641036510161 9062 7691
295 | 528820 5 7003 6560 6323 6144 6207 6464 7892 986110723110641118311167
296 | 528820 5 1101810992108181045810263 9948 9657 9417 9700 9378 8456 7363
297 | 529820 6 6723 6230 5915 5752 5680 5655 5845 6559 7503 8388 8773 8932
298 | 529820 6 8760 8560 8284 8088 8253 8380 8313 8098 8278 8069 7497 6761
299 | 530820 7 6194 5730 5468 5269 5204 5080 5179 5692 6508 7194 7528 7685
300 | 530820 7 7684 7415 7152 7001 7122 7204 7234 7295 7735 7771 7268 6523
301 | 531820 1 5931 5530 5318 5189 5141 5047 5202 5746 6569 7409 7849 8209
302 | 531820 1 8181 7816 7511 7412 7584 7734 7687 7715 8236 8194 7392 6536
303 | 6 1820 2 6042 5741 5578 5526 5583 5952 7596 976210728112251151311575
304 | 6 1820 2 113681140311266109611091910696102491007410354 9945 8881 7735
305 | 6 2820 3 6911 6503 6364 6243 6300 6725 81661021311194116221174811774
306 | 6 2820 3 11579116341135011078110161066010113 97191009110041 8990 7778
307 | 6 3820 4 6942 6536 6303 6153 6199 6464 80331003310948113201148011457
308 | 6 3820 4 11291114381130211040109021061510179 99381029610042 8996 7942
309 | 6 4820 5 6988 6555 6350 6198 6182 6555 79751000410874112291143711401
310 | 6 4820 5 11296112701104610750106161041310007 9744 9843 9423 8594 7635
311 | 6 5820 6 6838 6412 6137 5933 5842 5873 6113 6948 7953 8826 9417 9546
312 | 6 5820 6 9347 9039 8820 8662 8817 8958 8841 8633 8689 8652 7827 7108
313 | 6 6820 7 6512 6043 5746 5582 5487 5369 5474 5957 6833 7585 8124 8508
314 | 6 6820 7 8627 8413 8197 8043 8180 8269 8263 8252 8520 8360 7704 6898
315 | 6 7820 1 6325 6036 5846 5829 5894 6310 78611004511149116411188111952
316 | 6 7820 1 11760116991148611230113551117710764104501049310114 9027 7918
317 | 6 8820 2 7094 6705 6481 6326 6346 6743 82621024811108113921156711462
318 | 6 8820 2 11166112091108610791107701052710055 97381001910010 8974 7817
319 | 6 9820 3 6955 6547 6326 6232 6257 6542 80711006010932112211141811402
320 | 6 9820 3 11222113191119410967108421055710090 97221003110117 9090 7833
321 | 610820 4 7021 6593 6355 6228 6241 6502 7980 999210978114251169911630
322 | 610820 4 11522116351154311278111031076910224 98241008810077 9050 7841
323 | 611820 5 6997 6611 6366 6220 6228 6492 7902 984910775110941130111307
324 | 611820 5 111081117810926105871038010080 9645 9332 9551 9409 8584 7529
325 | 612820 6 6835 6365 6086 5906 5838 5723 6122 6970 7970 8661 8898 8827
326 | 612820 6 8597 8305 8094 7957 8081 8272 8224 8101 8313 8245 7627 6877
327 | 613820 7 6335 5942 5526 5487 5372 5324 5353 5882 6708 7506 7981 8325
328 | 613820 7 8425 8244 8013 7925 8103 8234 8270 8310 8413 8208 7620 6771
329 | 614820 1 6251 6001 5866 5796 5874 6297 78931005711137115351180711761
330 | 614820 1 11553114671117810952109281065110147 9768 9952 9937 8918 7520
331 | 615820 2 6918 6528 6319 6215 6233 6517 80551006010995113441152411526
332 | 615820 2 11371115351141411176111251088110305 99321022910160 9119 7622
333 | 616820 3 7115 6683 6425 6319 6337 6630 80751014111214117591207912271
334 | 616820 3 12146123091225711887118041141610862105631079510420 9376 8196
335 | 617820 4 7360 6930 6683 6572 6537 6871 82841032111433119441229812420
336 | 617820 4 12161122461194511606113831102610469100991033610333 9362 8131
337 | 618820 5 7316 6832 6589 6426 6447 6721 80611012711275117851207312124
338 | 618820 5 11938120541192211609114101096910462100371015610166 9303 8219
339 | 619820 6 7359 6790 6472 6241 6131 6002 6367 7186 8317 9113 9484 9503
340 | 619820 6 9274 8984 8797 8630 8725 8853 8666 8531 8595 8558 7976 7260
341 | 620820 7 6602 6156 5818 5655 5534 5333 5518 6052 6926 7597 7909 8015
342 | 620820 7 7846 7530 7289 7238 7264 7383 7355 7357 7845 8162 7636 6787
343 | 621820 1 6246 5978 5785 5733 5771 6128 7568 969410789114401178411897
344 | 621820 1 11730117661159111312112521090110309 99151007210104 9040 7942
345 | 622820 2 7064 6636 6398 6270 6271 6533 7911 989711021115761179911847
346 | 622820 2 11681118591167711480113661094610375 99461021410180 9173 7916
347 | 623820 3 7103 6728 6504 6405 6368 6677 7935 994511039115861189411937
348 | 623820 3 11740117541155211332112121083410229 98271001210022 9053 7954
349 | 624820 4 7065 6675 6425 6272 6307 6500 7854 982910963114771170811768
350 | 624820 4 11634117291155111263111161074710325 98701003010065 9142 7986
351 | 625820 5 7136 6681 6437 6319 6274 6549 7714 966810858114391176211730
352 | 625820 5 11694117311157911316110621070110242 986810015 9892 9069 8012
353 | 626820 6 7223 6734 6394 6194 6131 6052 6344 7260 8306 9145 9535 9625
354 | 626820 6 9436 9177 8958 8824 8922 8952 8762 8584 8729 8830 8204 7470
355 | 627820 7 6803 6283 5951 5763 5641 5428 5589 6128 6969 7606 7932 8026
356 | 627820 7 7932 7701 7498 7441 7591 7669 7661 7603 8039 8416 7826 6961
357 | 628820 1 6441 6106 5935 5858 5903 6296 7466 945010742114801191512088
358 | 628820 1 12067121911220311972118621151310944105361073210616 9604 8356
359 | 629820 2 7516 7065 6796 6689 6645 6959 80751010511410120961260612724
360 | 629820 2 12565125311231812034120431174411132107491072410333 9217 8202
361 | 630820 3 7344 6893 6621 6461 6501 6727 79271000611300119421229812274
362 | 630820 3 12050120741193511670114851114210459 99801012310158 9246 7946
363 | 7 1820 4 7163 6724 6394 6260 6237 6468 7581 945810628111781144311424
364 | 7 1820 4 112631127811107108811078810431 9962 9579 9744 9829 8964 7814
365 | 7 2820 5 6961 6504 6231 6066 6063 6227 7276 899510182108241110311165
366 | 7 2820 5 109161095210852105281032110026 9634 9262 9341 9305 8521 7577
367 | 7 3820 6 6787 6287 5987 5793 5675 5468 5749 6511 7498 8270 8540 8554
368 | 7 3820 6 8369 8154 7952 7883 7968 8109 8011 7897 7990 7988 7490 6656
369 | 7 4820 7 6109 5707 5367 5182 5060 4819 5011 5534 6390 6926 7183 7243
370 | 7 4820 7 7093 6769 6521 6413 6509 6604 6548 6485 6727 6951 6746 6283
371 | 7 5820 1 5665 5287 5114 4969 4894 4744 4992 5632 6477 7203 7588 7665
372 | 7 5820 1 7523 7300 7108 7091 7333 7499 7352 7362 7704 8062 7445 6623
373 | 7 6820 2 6098 5758 5555 5442 5445 5615 6763 8629 9897106491111511274
374 | 7 6820 2 11273114331128111139110951071610171 9764 9838 9917 8920 7730
375 | 7 7820 3 6896 6418 6190 6062 6019 6208 7264 905110366110991149911694
376 | 7 7820 3 11701118111184111840118251146610908105301067310690 9702 8551
377 | 7 8820 4 7629 7143 6841 6693 6661 6893 7943 981711280122461277213048
378 | 7 8820 4 1304613161131251298612912125501207511668117681174510779 9450
379 | 7 9820 5 8419 7786 7436 7204 7088 7190 82351001011473123041271012826
380 | 7 9820 5 12714127211262812369122281178411279107421068610589 9678 8581
381 | 710820 6 7625 7046 6620 6403 6287 6120 6418 7371 8509 9416 986410009
382 | 710820 6 9837 9683 9559 9573 9724 9800 9649 9338 9444 9592 8901 8013
383 | 711820 7 7372 6743 6380 6155 6002 5824 5904 6488 7331 8063 8490 8720
384 | 711820 7 8766 8605 8430 8354 8488 8612 8532 8400 8760 9108 8496 7591
385 | 712820 1 6966 6578 6396 6324 6349 6613 7686 956710921117621222812419
386 | 712820 1 1235012472124081239212376120631155811096113201131010301 9010
387 | 713820 2 8091 7558 7263 7032 6963 7105 81841008611490123461279312974
388 | 713820 2 1293513047130781295412893125341199611434116111152110493 9117
389 | 714820 3 8103 7560 7207 7025 6931 7018 8083 992311154118721225112398
390 | 714820 3 12321124411234512279122081174011238107391087510882 9901 8666
391 | 715820 4 7749 7236 6934 6775 6744 6953 8031 986611239121281267112959
392 | 715820 4 1303513148130821286512780124031195011513115751152210512 9206
393 | 716820 5 8239 7729 7400 7156 7152 7342 84711030111668126391317613459
394 | 716820 5 1346813632135671333813180127861230011874119761185210934 9744
395 | 717820 6 8796 8112 7651 7385 7258 7134 7363 8234 9541106501129911559
396 | 717820 6 1151711365112661121511296113011101810700108901090910264 9302
397 | 718820 7 8553 7957 7577 7311 7113 7023 7061 7708 8703 96831027310652
398 | 718820 7 1074110606104911050010626107381075410734113221169611038 9736
399 | 719820 1 9117 8732 8410 8240 8177 8384 95221169713386145081506615294
400 | 719820 1 153081529814925145841435713881132641281312966127841175410415
401 | 720820 2 9392 8761 8502 8291 8221 8513 94571132912580131501337513388
402 | 720820 2 13163130471275512479123721196011423109721092510579 9527 8367
403 | 721820 3 7587 7068 6806 6654 6662 6921 7971 984911005115911187511981
404 | 721820 3 11798119191181211645114861116410635102411048910364 9362 8298
405 | 722820 4 7520 7042 6815 6656 6626 6894 7919 971010827114821188211980
406 | 722820 4 11820118451173511504114521120210751103801058010460 9483 8366
407 | 723820 5 7504 7047 6755 6568 6556 6796 7857 966610964117111214712330
408 | 723820 5 12282123971236912138119501158811075106381075210684 9736 8624
409 | 724820 6 7637 7016 6676 6423 6329 6186 6437 7294 8329 9164 9567 9605
410 | 724820 6 9423 9237 9086 9040 9271 9363 9238 9002 9233 9234 8605 7781
411 | 725820 7 7016 6542 6173 5980 5881 5718 5754 6288 7117 7814 8263 8529
412 | 725820 7 8598 8488 8360 8446 8661 8826 8810 8748 9252 9527 8927 8127
413 | 726820 1 7389 7067 6826 6693 6715 6933 80471015511897127791327813456
414 | 726820 1 1356013785137001349813387129631236311864120261182710721 9390
415 | 727820 2 8379 7776 7458 7217 7135 7297 82261004911431121571252012637
416 | 727820 2 12624126911273012593124741204211377109211119310988 9958 8690
417 | 728820 3 7937 7483 7202 7026 7080 7379 8319 997311247119321234912417
418 | 728820 3 12225121861204411800117661159911097107811086010427 9474 8264
419 | 729820 4 7494 7023 6727 6584 6575 6812 7744 968810942115641186711962
420 | 729820 4 11793118751179811584115101119610674102011047510374 9382 8203
421 | 730820 5 7386 6942 6566 6485 6451 6693 7571 942110727114311183311955
422 | 730820 5 11832118991172611491112321085010270 995510205 9991 9112 8090
423 | 731820 6 7327 6800 6477 6269 6179 6169 6369 7132 8147 9044 9510 9597
424 | 731820 6 9459 9272 9106 9036 9176 9263 9104 9011 9304 9153 8559 7775
425 | 8 1820 7 7106 6610 6286 6105 5974 5907 5917 6420 7219 7927 8274 8573
426 | 8 1820 7 8608 8457 8323 8292 8448 8608 8604 8571 9199 9308 8609 7698
427 | 8 2820 1 7108 6718 6452 6358 6389 6650 7655 960811000118771240212628
428 | 8 2820 1 12573127041264512441123331188511238108671113010622 9566 8302
429 | 8 3820 2 7526 7058 6782 6694 6642 6964 7964 987810977117031205212110
430 | 8 3820 2 11978120111192611630115911122710623102361057810288 9228 8117
431 | 8 4820 3 7344 6863 6641 6481 6467 6800 7830 971010890116351204712166
432 | 8 4820 3 12136123271223312117120251150711023106031091710637 9533 8380
433 | 8 5820 4 7529 7130 6860 6727 6686 7044 8080 990311272120451253312715
434 | 8 5820 4 1274113010129741276912792123061179311375116161118410086 8803
435 | 8 6820 5 7876 7318 6954 6836 6822 7037 7999 974410997116571205812098
436 | 8 6820 5 11959119971180111464111601079310315 989410177 9859 8945 7917
437 | 8 7820 6 7113 6652 6332 6176 6058 6117 6252 7051 8067 8916 9227 9318
438 | 8 7820 6 9198 9026 8849 8837 9000 9132 8909 8681 9065 8900 8246 7477
439 | 8 8820 7 6829 6428 6074 5891 5838 5783 5741 6246 7065 7792 8245 8616
440 | 8 8820 7 8691 8647 8522 8461 8603 8707 8661 8670 9180 9057 8390 7646
441 | 8 9820 1 7060 6937 6509 6445 6478 6897 7833 970311244121641268312848
442 | 8 9820 1 1279812741126591242712472121711168411406116521110210071 8904
443 | 810820 2 7909 7542 7247 7088 7071 7427 84061042911859127581330813428
444 | 810820 2 1337413505133911321513061126051194611509118131144210288 9100
445 | 811820 3 8075 7591 7258 7038 6976 7314 82711006411178117811209212175
446 | 811820 3 12075118801182911515114001105610544103041065010239 9303 8240
447 | 812820 4 7392 6957 6694 6557 6565 6926 8012 975010919116081197812098
448 | 812820 4 11912120391183611597114511110510612102991073810256 9277 8194
449 | 813820 5 7328 6879 6638 6480 6492 6828 7769 953910781114251182311869
450 | 813820 5 117121171911582112401100510675102771003310257 9793 8845 7843
451 | 814820 6 7082 6569 6283 6063 5986 6016 6220 7064 8106 8900 9232 9251
452 | 814820 6 9077 8824 8651 8513 8619 8741 8554 8461 8934 8638 7968 7269
453 | 815820 7 6614 6162 5855 5689 5621 5548 5509 6034 6854 7547 7898 8170
454 | 815820 7 8202 8022 7864 7865 8060 8232 8200 8249 9025 8912 8263 7469
455 | 816820 1 6828 6458 6265 6150 6183 6600 7616 969211143120401262912873
456 | 816820 1 1284012968129531274012620122481163811260117161117010007 8825
457 | 817820 2 7923 7411 7122 6929 6921 7270 83051028311548124051296913122
458 | 817820 2 13204134451334012936126191205611419110411129510882 9666 8518
459 | 818820 3 7688 7230 6944 6806 6752 7124 81881007211130118301213512187
460 | 818820 3 12034122301205811766117661135010754105071092910381 9346 8243
461 | 819820 4 7429 6956 6692 6561 6541 6922 7970 980110980117431219712340
462 | 819820 4 12249123811230412080119691154711046107601121010663 9641 8494
463 | 820820 5 7695 7195 6968 6806 6826 7190 8209 997611369121941263712802
464 | 820820 5 12675127421250811972117431132710836105081081210203 9395 8296
465 | 821820 6 7498 6976 6622 6413 6306 6302 6430 7278 8274 9020 9213 9168
466 | 821820 6 8894 8613 8324 8208 8297 8395 8294 8254 8676 8269 7661 6941
467 | 822820 7 6371 5903 5711 5562 5450 5481 5458 5927 6756 7344 7646 7788
468 | 822820 7 7782 7524 7290 7204 7326 7477 7511 7792 8385 8093 7457 6777
469 | 823820 1 6270 5963 5846 5780 5843 6320 7466 932410537113301176311947
470 | 823820 1 11599117491173311477113981112010736106701079610117 9089 8076
471 | 824820 2 7302 6878 6654 6556 6571 7037 8145 998011311120801251412685
472 | 824820 2 12508126591254812285121531176111147109851133110663 9591 8462
473 | 825820 3 7625 7148 6861 6711 6725 7189 82431006111235119751241312561
474 | 825820 3 123531228812093117651173411360107061042510626 9985 9000 7974
475 | 826820 4 7198 6746 6493 6382 6392 6792 7898 966410827114631185011922
476 | 826820 4 11827119131182411643115241118610694105881096910289 9324 8238
477 | 827820 5 7438 6990 6695 6544 6527 6933 7911 971710928115951197712027
478 | 827820 5 118341179311615111801092210592101771013810374 9712 8880 7938
479 | 828820 6 7151 6642 6329 6144 6023 6091 6255 7053 8029 8827 9098 9064
480 | 828820 6 8842 8577 8298 8187 8339 8455 8388 8570 8763 8323 7673 6935
481 | 829820 7 6345 5941 5609 5489 5396 5419 5456 5966 6740 7365 7690 7831
482 | 829820 7 7776 7530 7293 7163 7293 7439 7450 7855 8372 7994 7393 6711
483 | 830820 1 6193 5923 5796 5724 5794 6265 7424 927810456110991141811624
484 | 830820 1 113851146911251110251095410677102801032310466 9734 8722 7708
485 | 831820 2 6941 6575 6345 6199 6251 6711 7818 966610730113111163111818
486 | 831820 2 11727118841180211617114611124010851109681107710368 9301 8345
487 | 9 1820 3 7529 6901 6724 6579 6587 6993 82441001311123118531206312115
488 | 9 1820 3 11893118831167411335114271125810956109351074010013 9002 7956
489 | 9 2820 4 7210 6768 6593 6461 6487 6981 83091018911324119481234912478
490 | 9 2820 4 12358125001240312161120341171411329114561140610658 9656 8507
491 | 9 3820 5 7672 7187 6932 6779 6789 7206 83811019611412121301246212518
492 | 9 3820 5 123031227312085116251131810864104171048010541 9852 8929 7879
493 | 9 4820 6 7015 6527 6186 5991 5921 5943 6017 6699 7663 8465 8767 8721
494 | 9 4820 6 8573 8326 8125 7995 8149 8273 8200 8477 8665 8229 7600 6916
495 | 9 5820 7 6280 5866 5570 5419 5308 5317 5296 5803 6543 7158 7492 7642
496 | 9 5820 7 7589 7377 7120 7045 7173 7302 7298 7779 8056 7723 7217 6525
497 | 9 6820 1 5952 5581 5386 5227 5179 5231 5264 5734 6577 7345 7866 8018
498 | 9 6820 1 7968 7687 7479 7429 7634 7840 7797 8392 8696 8180 7408 6662
499 | 9 7820 2 6133 5856 5705 5663 5723 6263 7598 955210612111221141311443
500 | 9 7820 2 113091141111236109511083010677103531067310625 9771 8716 7586
501 | 9 8820 3 6825 6457 6291 6182 6188 6694 81761005110851112121145111426
502 | 9 8820 3 113251139611231109691082210709103691064410599 9823 8742 7604
503 | 9 9820 4 6856 6513 6305 6190 6257 6758 82571006610949112831150911542
504 | 9 9820 4 11464115861148711303112211095810578109121096310126 8987 7853
505 | 910820 5 7100 6700 6440 6331 6321 6850 82781010811086115871186411999
506 | 910820 5 11925121331208711847116141118410728109461087110105 9069 8002
507 | 911820 6 7206 6682 6364 6174 6095 6165 6396 7213 8298 9117 9550 9643
508 | 911820 6 9521 9354 9239 9173 9286 9352 9228 9615 9590 9058 8283 7508
509 | 912820 7 6842 6314 5992 5805 5717 5748 5722 6152 7036 7741 8141 8432
510 | 912820 7 8589 8444 8311 8252 8438 8514 8567 9228 9446 8846 7994 7203
511 | 913820 1 6626 6338 6169 6073 6127 6706 83401031611368119051221412317
512 | 913820 1 12248124031231412117119851163811201114771132410508 9307 8145
513 | 914820 2 7321 6889 6667 6572 6586 7100 86901066011561119861226412322
514 | 914820 2 12223124631236312206121121167211241116031146510567 9422 8159
515 | 915820 3 7409 6964 6707 6589 6595 7106 87111055611490120571238412521
516 | 915820 3 12435126551255212380122411188011525117521139610600 9401 8169
517 | 916820 4 7412 6951 6717 6567 6611 7075 87291068611438119091208412053
518 | 916820 4 11859118891171611464113971118610963112521102110201 9048 7872
519 | 917820 5 7150 6682 6435 6333 6337 6777 83121007110963113661151911498
520 | 917820 5 112911135511163108231058010317100531040210187 9486 8568 7620
521 | 918820 6 6826 6395 6051 5932 5864 6041 6286 7090 8131 8811 9062 9042
522 | 918820 6 8829 8595 8407 8310 8559 8909 8992 9209 8928 8419 7726 7048
523 | 919820 7 6393 5951 5651 5514 5441 5459 5556 6009 6865 7510 7766 7922
524 | 919820 7 7904 7684 7425 7273 7455 7675 7912 8716 8683 8169 7432 6648
525 | 920820 1 6089 5836 5704 5661 5759 6353 80971011510990114051165311683
526 | 920820 1 114591149611311110971130811394112791125410740 9891 8815 7689
527 | 921820 2 6873 6491 6298 6172 6217 6763 84221032811136114921158611525
528 | 921820 2 113641132311227108681097310880107541111610720 9873 8790 7583
529 | 922820 3 6853 6502 6306 6203 6274 6820 85301045511333116001180611774
530 | 922820 3 115311152211295111391127811243110691118710771 9923 8845 7700
531 | 923820 4 6926 6544 6326 6199 6241 6775 84631040811283116161177311756
532 | 923820 4 115121153811312110191092910778107081105210757 9970 8740 7640
533 | 924820 5 6878 6511 6272 6161 6232 6786 83161012610928112261137611271
534 | 924820 5 111091117410956106501042010202101841061310200 9459 8587 7644
535 | 925820 6 6879 6396 6082 5911 5863 6010 6373 7187 8162 8807 9097 9049
536 | 925820 6 8792 8512 8256 8123 8259 8480 8669 9140 8822 8261 7620 6850
537 | 926820 7 6234 5827 5560 5417 5353 5410 5543 5975 6822 7484 7797 7953
538 | 926820 7 7927 7675 7459 7352 7593 7893 8401 8818 8594 8051 7382 6604
539 | 927820 1 6100 5812 5676 5625 5706 6279 79911000111058115181183111904
540 | 927820 1 117411175911567113791142611273111171122210763 9957 8879 7732
541 | 928820 2 6924 6548 6350 6213 6259 6751 83861012911022114091161511613
542 | 928820 2 114401154211364111281114911025109511124210796 9917 8844 7829
543 | 929820 3 6954 6567 6329 6194 6267 6754 84321038311227115521172711710
544 | 929820 3 114781148911289110721120111143110891116510727 9939 8839 7693
545 | 930820 4 6934 6560 6327 6213 6258 6814 84541038811125114161154111571
546 | 930820 4 113321133911133108811089110893109981116910723 9927 8884 7727
547 | 10 1820 5 6892 6517 6259 6175 6197 6703 83461006610867112271140411431
548 | 10 1820 5 112781139911241109341076610498105821082310348 9574 8722 7667
549 | 10 2820 6 6866 6369 6053 5866 5799 5949 6296 6996 8122 8752 8987 8912
550 | 10 2820 6 8639 8332 8095 7895 8077 8337 8699 9099 8745 8234 7584 6895
551 | 10 3820 7 6292 5864 5627 5427 5405 5459 5648 6141 6965 7547 7783 7877
552 | 10 3820 7 7828 7551 7315 7231 7433 7704 8356 8847 8694 8127 7390 6620
553 | 10 4820 1 6085 5845 5716 5646 5728 6344 81371004010935113231154311541
554 | 10 4820 1 113801147911290110521094310877109321119910688 9796 8668 7623
555 | 10 5820 2 6797 6399 6172 6112 6167 6721 84221027010883112361131711285
556 | 10 5820 2 111561128811135108771090510748109311112910756 9902 8756 7661
557 | 10 6820 3 6883 6519 6274 6177 6237 6821 84771030710986112991146511508
558 | 10 6820 3 11372115351148411231111801094711119113341087410047 8856 7707
559 | 10 7820 4 6940 6570 6323 6193 6190 6763 84281019510980112081140911392
560 | 10 7820 4 112541133011119109111098411031113221121110723 9958 8820 7696
561 | 10 8820 5 6893 6509 6288 6208 6224 6746 84391031711209115661179911726
562 | 10 8820 5 114731149511222109951089510815108911071210183 9454 8519 7558
563 | 10 9820 6 6760 6325 6020 5842 5805 5942 6326 7051 8163 9063 9445 9518
564 | 10 9820 6 9284 8999 8714 8538 8823 9111 9500 9418 8928 8444 7819 7167
565 | 1010820 7 6470 6095 5835 5629 5618 5679 5895 6386 7284 7921 8188 8283
566 | 1010820 7 8190 7813 7477 7334 7456 7771 8487 8772 8691 8315 7702 7139
567 | 1011820 1 6470 6179 6020 5938 6009 6394 7310 8437 9440 99831022310131
568 | 1011820 1 9832 9589 9295 9059 9225 9531100601033010017 9375 8478 7566
569 | 1012820 2 6804 6472 6296 6223 6306 6893 87261071311498116901170611579
570 | 1012820 2 11296113001100110769108531104811419112951079910012 8920 7752
571 | 1013820 3 6936 6646 6423 6296 6367 6998 87371070111456116121167611623
572 | 1013820 3 11416114411128711061112261146711635113431080210006 8968 7815
573 | 1014820 4 6968 6566 6358 6272 6309 6848 85471049711271115251158911502
574 | 1014820 4 112241122711008106591064810653111011115510673 9931 8825 7745
575 | 1015820 5 6948 6565 6357 6236 6283 6810 85371032711056113221135511258
576 | 1015820 5 110201104910834105151026210316108161069810151 9620 8717 7735
577 | 1016820 6 6937 6482 6206 6043 6021 6211 6709 7428 8524 9144 9346 9193
578 | 1016820 6 8931 8630 8392 8310 8518 8988 9617 9484 9048 8590 7950 7262
579 | 1017820 7 6660 6244 5970 5839 5773 5841 6140 6540 7403 8030 8345 8477
580 | 1017820 7 8411 8158 7826 7761 8002 8421 9232 9350 9119 8555 7867 7152
581 | 1018820 1 6599 6317 6202 6210 6356 7008 89871101311740119111185911709
582 | 1018820 1 11377113091103610736108301097811501113751088610100 9078 7981
583 | 1019820 2 7177 6833 6660 6622 6683 7366 92521114711717118001168411515
584 | 1019820 2 11205111521092810641106831078511411112451076710010 8943 7829
585 | 1020820 3 7075 6752 6522 6439 6518 7141 89801084011428115431155411475
586 | 1020820 3 111471116610933107041073410751113891120110733 9970 8962 7824
587 | 1021820 4 6981 6582 6352 6255 6346 6875 86041053811203114321149411442
588 | 1021820 4 111391113510915106441059410669113411120910738 9998 8950 7861
589 | 1022820 5 7118 6734 6566 6470 6576 7153 89881086311581116961173011604
590 | 1022820 5 11294112811095910665106021073611360111211063010012 9198 8173
591 | 1023820 6 7465 7082 6822 6680 6710 6916 7415 8257 9244 9818 9906 9745
592 | 1023820 6 9348 8888 8481 8263 8507 910410017 9779 9340 8854 8205 7617
593 | 1024820 7 7030 6653 6406 6287 6231 6303 6689 7041 7901 8465 8604 8681
594 | 1024820 7 8538 8198 7867 7703 8001 8463 9466 9474 9295 8899 8203 7345
595 | 1025820 1 6796 6615 6495 6503 6609 7322 93431141512183124031244512352
596 | 1025820 1 12094121131188811751119621221812390119191132810500 9399 8268
597 | 1026820 2 7460 7110 6864 6796 6853 7406 92851132511927120591207611915
598 | 1026820 2 11432115321125910985111021135611869115381103010364 9246 8231
599 | 1027820 3 7397 7038 6832 6794 6903 7561 95121146912013120241187711631
600 | 1027820 3 11241111641082410658107541107411702115011104310328 9300 8176
601 | 1028820 4 7447 7099 6928 6839 6949 7583 94911146611932119831186111588
602 | 1028820 4 11195111541089810621106481081311611113471086310111 9163 7981
603 | 1029820 5 7265 6870 6701 6634 6715 7301 91241099611523116251156411364
604 | 1029820 5 109431094510636102811017010382110741068110201 9499 8661 7665
605 | 1030820 6 6953 6517 6251 6106 6053 6247 6716 7535 8531 9249 9453 9268
606 | 1030820 6 8927 8553 8196 8053 8301 8866 9734 9382 8897 8415 7751 7157
607 | 1031820 7 6543 5966 5686 5564 5587 5695 6026 6787 7676 8024 8144 8233
608 | 1031820 7 8093 7812 7826 8191 9013 9050 8818 8637 8417 7807 7054 6625
609 | 11 1820 1 6146 5948 5801 5773 5905 6592 84181032311033113441148711469
610 | 11 1820 1 112581128511059108951139212142117441121510504 9685 8637 7597
611 | 11 2820 2 6829 6432 6217 6129 6203 6852 85031026911006112261139611237
612 | 11 2820 2 112741120711089108801133112128117211118310675 9765 8618 7617
613 | 11 3820 3 6861 6492 6294 6214 6336 6927 86261049311205114801159011500
614 | 11 3820 3 113421138111287111481170812396118941136510780 9945 8834 7737
615 | 11 4820 4 6926 6572 6332 6247 6324 6940 86181047811285115511176511778
616 | 11 4820 4 11580115941147811354119301244412048115051096910100 8975 7869
617 | 11 5820 5 7114 6700 6440 6313 6372 6931 85901043011260116011173111638
618 | 11 5820 5 113401127711006107951117811792114351087210375 9659 8915 8000
619 | 11 6820 6 7195 6802 6553 6426 6428 6707 7098 7994 8948 9493 9520 9408
620 | 11 6820 6 9043 8681 8442 8410 92451050710243 9762 9368 8839 8255 7549
621 | 11 7820 7 6968 6594 6325 6220 6163 6332 6405 6987 7731 8271 8471 8552
622 | 11 7820 7 8478 8130 7819 7812 8620 9817 9786 9492 9303 8710 8010 7294
623 | 11 8820 1 6732 6489 6338 6323 6458 7190 90151074711515116351166611520
624 | 11 8820 1 112161118710980107891148612315118471125910788 9972 8894 7821
625 | 11 9820 2 7041 6663 6466 6414 6536 7216 89081065211302114491151411416
626 | 11 9820 2 11183112071103810965118021265212250117451126010506 9448 8400
627 | 1110820 3 7590 7259 7029 7050 7188 7863 96681143411946120341195011786
628 | 1110820 3 11453114091117910987117441267312292117731127410555 9625 8581
629 | 1111820 4 7816 7445 7259 7169 7273 7745 86401001010584109751106711029
630 | 1111820 4 107331058610362104641140711937115111104710599 9814 8843 7851
631 | 1112820 5 7126 6704 6478 6395 6479 7031 85261027411061113241142711383
632 | 1112820 5 111131111110862108241124911814113581075010221 9460 8602 7682
633 | 1113820 6 6987 6530 6249 6054 6041 6176 6599 7370 8497 9369 9823 9935
634 | 1113820 6 9707 9427 9242 9150 99031075610495 9998 9567 9089 8478 7787
635 | 1114820 7 7218 6763 6500 6406 6391 6554 6726 7120 7923 8460 8653 8762
636 | 1114820 7 8714 8376 8143 8339 94341026810188 9804 9541 8895 8163 7454
637 | 1115820 1 6819 6528 6394 6359 6490 7155 90561109011988123611254512453
638 | 1115820 1 12197120831176311659125181325512832122911177911040 9918 8701
639 | 1116820 2 7958 7638 7473 7463 7513 8261101601184212364124431230412110
640 | 1116820 2 11709116841149811433123851322212777123231181311047 9910 8697
641 | 1117820 3 7933 7548 7397 7312 7389 8043 98901165412234122891221912049
642 | 1117820 3 11723116771150511335122271302412594122451159910881 9875 8763
643 | 1118820 4 7912 7496 7348 7318 7466 8096 99191167612217122431219012037
644 | 1118820 4 11676116291148211448122721284212428119181146110670 9574 8405
645 | 1119820 5 7645 7265 7038 7002 7109 7746 95091127511911120031204311927
646 | 1119820 5 11579115101133411205119921243811975113901092210194 9287 8277
647 | 1120820 6 7504 7014 6753 6606 6585 6811 7241 8058 9150 984710052 9946
648 | 1120820 6 9690 9369 9148 9232101341081010526 9994 9558 9005 8357 7674
649 | 1121820 7 6999 6547 6220 6088 5933 6064 6255 6695 7599 8316 8697 8973
650 | 1121820 7 9017 8743 8448 8465 936810011 9850 9534 9246 8652 7958 7168
651 | 1122820 1 6612 6296 6105 6054 6144 6816 85981047811243116141172311660
652 | 1122820 1 11382113651126211233120931243511978114261092210138 9013 7915
653 | 1123820 2 7098 6680 6441 6345 6407 6998 87511057911326115541148211558
654 | 1123820 2 11332113331123311166119001233111916114051093610179 9084 7978
655 | 1124820 3 7129 6668 6470 6343 6414 7039 87971052511445117701202011974
656 | 1124820 3 11817117981154711246118401235212008116311127910609 9600 8499
657 | 1125820 4 7606 7088 6806 6663 6673 6878 7289 7969 8892 9506 9689 9618
658 | 1125820 4 9181 8402 7753 7538 7990 8456 8495 8561 8568 8388 7979 7371
659 | 1126820 5 6822 6476 6316 6238 6290 6579 7229 8115 9176 98671006010062
660 | 1126820 5 9959 9824 9716 988610736110991070410239 9816 9217 8558 7818
661 | 1127820 6 7122 6724 6479 6365 6425 6608 7108 7758 8786 9465 9709 9707
662 | 1127820 6 9514 9211 9020 91101024411244110311061010316 9853 9253 8586
663 | 1128820 7 7982 7594 7279 7164 7141 7218 7455 7809 8599 9150 9438 9625
664 | 1128820 7 9549 9264 9057 916810217107871059010257 9972 9388 8587 7843
665 | 1129820 1 7182 6877 6693 6632 6744 7390 91961125712101123971247912404
666 | 1129820 1 12101120231175111620124301290112435118511136810586 9537 8358
667 | 1130820 2 7508 7093 6854 6769 6859 7551 93581112311777118561185011804
668 | 1130820 2 11623116391144511385123181279512325118181135410617 9449 8332
669 | 12 1820 3 7518 7101 6888 6791 6896 7560 94181115611730119761199011874
670 | 12 1820 3 11656116561155411516124571280512325118731131710527 9408 8296
671 | 12 2820 4 7394 6931 6710 6601 6704 7257 90561081711495115551157711419
672 | 12 2820 4 11094110581085510717117111232911970115331104910345 9324 8186
673 | 12 3820 5 7353 6862 6679 6564 6654 7257 89291084911630118811196711889
674 | 12 3820 5 116841167611544114411213212213117701118810698 9915 9088 8080
675 | 12 4820 6 7235 6730 6396 6209 6124 6285 6713 7449 8460 9155 9380 9338
676 | 12 4820 6 9078 8699 8392 8333 93221033010021 9506 9132 8611 7957 7312
677 | 12 5820 7 6623 6228 5936 5752 5763 5835 6088 6490 7382 8234 8711 9030
678 | 12 5820 7 9086 8808 8592 8698 96801027710055 9647 9376 8883 8101 7294
679 | 12 6820 1 6630 6265 6097 6010 6106 6782 85931057411364116581181811813
680 | 12 6820 1 11562115171135411277122951256812038115181101410246 9191 7998
681 | 12 7820 2 7146 6714 6493 6425 6519 7223 90511089711578118171164911589
682 | 12 7820 2 11342113081111611045122241273412426119541154710801 9733 8520
683 | 12 8820 3 7634 7303 7104 7021 7111 7854 97631158912153122091214011968
684 | 12 8820 3 1170511627114831138612438131671281012360119341125310131 8927
685 | 12 9820 4 8048 7623 7391 7310 7417 7985 98521181312532128011285612750
686 | 12 9820 4 124621248912350124171356014304140461365713240126011145010300
687 | 1210820 5 9432 9065 8867 8849 8962 9657115981330213981142391418614005
688 | 1210820 5 1370713696134621328014033142381374613127126171182510855 9746
689 | 1211820 6 8754 8296 7953 7759 7730 7936 8366 917010231109721120311164
690 | 1211820 6 10849105561029810325113881204211653111491076510293 9624 8903
691 | 1212820 7 8286 7898 7633 7511 7498 7568 7958 8484 9450103131076411138
692 | 1212820 7 1122011007107061072811650124481221411954116821112710302 9436
693 | 1213820 1 8772 8526 8442 8468 8686 9493115351344314058143391428714153
694 | 1213820 1 137861365113367133471475215418149551451314106133391214910821
695 | 1214820 2 9909 9547 9357 9223 935310063119311366714042140261380413472
696 | 1214820 2 1310213030127701266613750144501407013503130321230011056 9714
697 | 1215820 3 8758 8329 8085 8028 8126 8756106441243912977130191289112671
698 | 1215820 3 1237012203119641222013108135091320612709119921148810368 9081
699 | 1216820 4 8110 7614 7350 7240 7300 7844 96231152912202123921241212400
700 | 1216820 4 12231122091205011952126431304212607120711165510960 9880 8711
701 | 1217820 5 7809 7389 7204 7134 7225 7920 97421173612513127391273012589
702 | 1217820 5 1219712124119491187912898135861337212777123711180610943 9877
703 | 1218820 6 9031 8562 8237 8103 8133 8338 8903 973710818116191170011591
704 | 1218820 6 1121110803105971072611869127121243711960115291105410367 9524
705 | 1219820 7 8719 8175 7819 7643 7580 7657 7909 8409 9346100801053710820
706 | 1219820 7 10871106681043710482114431207511901116121136110828 9909 8993
707 | 1220820 1 8215 7903 7690 7648 7836 8469102501214113005133981360113541
708 | 1220820 1 1321713134128511273013639142511377113297127821202410868 9543
709 | 1221820 2 8576 8021 7800 7702 7830 8395102091199112691128761281312670
710 | 1221820 2 1247212456122481225113196139021358913145127681203910948 9647
711 | 1222820 3 8689 8297 8069 7969 8087 8705105591239712975130241297412695
712 | 1222820 3 1230112165119281184612896136501342812965126001194610953 9634
713 | 1223820 4 8693 8178 7940 7825 7902 8438 99431159412397127311273512502
714 | 1223820 4 1204011740114721140112370129741267612215117501107610100 8962
715 | 1224820 5 8031 7515 7159 6988 6930 7097 7614 8488 9566104421074710715
716 | 1224820 5 1045210102 9936 9945107291118610563 9991 9510 9117 8788 8258
717 | 1225820 6 7604 7027 6613 6381 6285 6405 6729 7324 8026 8503 8688 8762
718 | 1225820 6 8723 8294 7910 7724 8176 8621 8579 8519 8402 8161 7743 7055
719 | 1226820 7 6424 5933 5650 5519 5448 5531 5754 6057 6788 7492 7941 8238
720 | 1226820 7 8308 8165 7966 7987 8967 9813 9794 9671 9430 9100 8542 7849
721 | 1227820 1 7139 6818 6607 6658 6783 7220 8499 990110894114581159811574
722 | 1227820 1 11318111161099410951119311262212205116411117310446 9452 8369
723 | 1228820 2 7555 7104 6850 6730 6765 7187 8283 969310699112731168011689
724 | 1228820 2 114941131611091109371175912184116981115910557 9827 8915 7890
725 | 1229820 3 7032 6561 6280 6146 6167 6618 7726 911810062107171105711068
726 | 1229820 3 11047110251085710885117821219811795112741086210223 9322 8509
727 | 1230820 4 7619 7160 6958 6883 6961 7512 8589 993710802112951144611433
728 | 1230820 4 11147109201067910569115261241512094116171122910595 9713 8758
729 | 1231820 5 7973 7494 7243 7109 7110 7331 7948 8737 9604103081045810345
730 | 1231820 5 10124 9763 9566 963210612115121119510529 9988 9375 8915 8520
731 |
--------------------------------------------------------------------------------
/Datasets/System-Loads-in-EEI-format/2016_eei_loads.txt:
--------------------------------------------------------------------------------
1 | 0101161 117071116110759105691061010912113511173212300129961346113748
2 | 0101162 139341399914021142581523315962157381532714857141941329712359
3 | 0102161 116271121210977109161102211445121161274213478139111410414084
4 | 0102162 139911385113857141371522216237160921567715225145231359612628
5 | 0103161 118171131011036109381100311270117771231813009134501365713827
6 | 0103162 139591390613887141161534716533164311601015418143941323412194
7 | 0104161 115481122911121112311167612887148851605616323164871654516575
8 | 0104162 165531659216582168741796619155191691881218231171191576314589
9 | 0105161 138611350913399134621391615056170081794917930177271753417294
10 | 0105162 169881685116742169501795219188191861883118215170981565714418
11 | 0106161 136711329513182131531356214685165861758017559170711670916349
12 | 0106162 159641580715728159161694418235182311784317231161151471313512
13 | 0107161 127851242512280123461275613899158721688016732164041612815833
14 | 0107162 155321540615344155341649017775177851745016866158471451013317
15 | 0108161 126051221212032120551242613481153791638216375162851621916072
16 | 0108162 158651578615696158191660417219168991635915737148661374712626
17 | 0109161 118061132711042109201100711446121811301813883145231477714764
18 | 0109162 146071441114235143171513315902156601516214628139211302512135
19 | 0110161 112801078510475103431038610660111761188412803136831429114675
20 | 0110162 148291472314640146851533615899156241503714307133111222011253
21 | 0111161 106751040310359104691099512238143191545515548154791549615453
22 | 0111162 153951545615484157681676218107181221772017090160121463013485
23 | 0112161 127701240912255123001273313884158871688116787165161633216172
24 | 0112162 160571611716116162881718318172180821755716815156321429513114
25 | 0113161 124251210411998121321256313762157541676416837168201683416731
26 | 0113162 165751651516448166461758918896188511843917764166711524514016
27 | 0114161 132881289312736127611310114213161651726517348172681696216583
28 | 0114162 162941622316156163781722018406183641793317291162321486313662
29 | 0115161 128421240512180121811254113618154801649916649166291643816176
30 | 0115162 159591577815636156611633917091167821627915663148221374212636
31 | 0116161 118201131511051109491105511466122211311314094149201532615320
32 | 0116162 150661480114602145821517015883157061510614804140721319412273
33 | 0117161 115281108410859108031092411256118531245613220138561434114626
34 | 0117162 147851481814822150291587216660164991600115517146681371612740
35 | 0118161 120821169911556116101196612804141091515215952164391669616780
36 | 0118162 166731668016665168321766418969189011849817849167051537214228
37 | 0119161 135521321813093131571358414769167761775117751176731765917600
38 | 0119162 174831746317446175901822419414194211900918337171271566414439
39 | 0120161 136981328413123131541351214624165651752417454172001695216672
40 | 0120162 164021632116259164781732818588185751816417497163581494213765
41 | 0121161 130291268912541126031300814184161641716617048167641653816321
42 | 0121162 160551596415925161741703718391184671811817512164791517814035
43 | 0122161 133541302412916129921338714490163701732517255169881675216512
44 | 0122162 162561620416279164661714018041178571735116761159591489513816
45 | 0123161 130521259012362122891239912794135691445315427162211661316789
46 | 0123162 168121667416544165921715818001177821725016597157781476613782
47 | 0124161 130431256112349122931242912714133041391614648150991521815206
48 | 0124162 150781489914859149341561316839167131664516014150021379012762
49 | 0125161 121461183111789119241232313589155961659916539163181610615835
50 | 0125162 155541539915350155321629917708177871736316654155841423513092
51 | 0126161 123481202111849118821227413438153331622016176160401595815761
52 | 0126162 155061531315164153161609017201171331662715945148421344412226
53 | 0127161 115271115610975109541132612435143641543915537155361549415313
54 | 0127162 150321496914973151691584317114172451690516311153271402512906
55 | 0128161 122971196611858119541241413600156561655116365159951566015354
56 | 0128162 151251506014957151821592117187172911692216304152371394612766
57 | 0129161 119851159511393114041177312801146301574915833157811570815534
58 | 0129162 154381544815320153561583616741166501620415661148551382412789
59 | 0130161 120221165111441113891153211982127841355514220144691454714360
60 | 0130162 141391382713655138551448815669157171530914817141261322912295
61 | 0131161 115751107710848107281077511088116091217012924134171340313338
62 | 0131162 132581310613005131681384515257154921504114427135261241811400
63 | 0201161 106881038410255103191075611874138291476714798146491454014482
64 | 0201162 144091433414250143961507416273162971587115160141261284611714
65 | 0202161 110651066510610106791112112336143491526015116148381461114378
66 | 0202162 141691410714022141681484616207165071615315587145301323512096
67 | 0203161 114291106510876109071130312380143241535115555157241585315849
68 | 0203162 157631571015577155881607416768166201604915253141031272011517
69 | 0204161 107421033010079100501036211503134241435714594146861468714614
70 | 0204162 146421473614528145151472415493150781456814073132241212411468
71 | 0205161 111211074810605106441106012171138131497415669162821667216855
72 | 0205162 166731645916032157391595516911171171662416056152051417313166
73 | 0206161 124871207711903118461200012463132241398414703150341503014804
74 | 0206162 144671418914002140851459415824161061567715219145551371112812
75 | 0207161 121211166411443113621145211742123161305413599139471400513963
76 | 0207162 138461367313595138261455815943159881528414756141081330012259
77 | 0208161 115951122611101112021168912823144731560916267168091724317533
78 | 0208162 175831749417245171251748618614186511805017220160301470513554
79 | 0209161 128751251612361124071276113847156061652016848168701678116661
80 | 0209162 164541632116099160601651917713180171763016998159221461213447
81 | 0210161 127491240012243122881264613726155611646416587165591647816262
82 | 0210162 160371599015900159251630617396176681729116699156961438213237
83 | 0211161 125501216412017121011249713633155551651616663166911665316617
84 | 0211162 165551652416466166021719718455190151881118364173831608214949
85 | 0212161 142751392813784138191418615272171051797717982177691756117178
86 | 0212162 169371682516762168791731918266183981794717395165541544814438
87 | 0213161 137511332713106130361314913530142631501915842162981637616275
88 | 0213162 161301594515915161611685318247188541868918369177501697516132
89 | 0214161 155541522615078150731518415549161211674817543179811809518041
90 | 0214162 178461749417258173091784219025194991908918547176691672115817
91 | 0215161 151691484914730147701507315836169831781918265184811860618565
92 | 0215162 184761831518234182731867319524194911892018098169151556614361
93 | 0216161 135441304812756126121284813651149201571916179164001645016395
94 | 0216162 163521632916191161521649717155170741648615735146231341012307
95 | 0217161 116581135111224112611164312685143661533515504153961529215189
96 | 0217162 150761506314996151111563216708171491679916217152521401612902
97 | 0218161 122191187011746117981220513268149231583815923158051565915502
98 | 0218162 153051520615135153051589917139177221742816908160191485513749
99 | 0219161 130841274312595126601305214086156601647616424161591588815589
100 | 0219162 153341529215306153591575216659168861641715852150291400712913
101 | 0220161 121661168511392112601132911664123071304513882142191400813673
102 | 0220162 134581321512985129451330714259147281435313877132001237011474
103 | 0221161 107991037810142100481013110458109271145712107126311289113068
104 | 0221162 131121302312929129891354314721152981493814357133801234411383
105 | 0222161 107801048010391104821094212163140281488714820146241454014401
106 | 0222162 142151411614028141671475615988167091639315809148241358112516
107 | 0223161 118951157911450115141190713060148931577515887158291579715752
108 | 0223162 155901561515636157601624517187175411706416339152181385112706
109 | 0224161 119481155011354113221167712680144421543415836159561607816070
110 | 0224162 159731598715944159871630416990170171646915698145831316411960
111 | 0225161 111241063210352102491049211448131541406714244143031442714363
112 | 0225162 142521423014198144081492515731160251570715138141961302611971
113 | 0226161 112961095110821108691127112386141311506315172150291492214774
114 | 0226162 145981451614435145761509816121168281653016070153361434613362
115 | 0227161 126631229112082120361218712634132641390614403145801449314202
116 | 0227162 138451350913331134501397314996157071540214966142811339412448
117 | 0228161 117251125910988108641093311214116631224612895131441308613007
118 | 0228162 128491259712482126511319114280151861488114301133661229111372
119 | 0229161 107451040610278103321074711909136181441814373142491437114515
120 | 0229162 145311448214277141851446715325161221576615118140631277411655
121 | 0301161 109591056210446105141098612230140141482714734145831458714429
122 | 0301162 141801409913998140791454415573164321615015564144821319712004
123 | 0302161 112771086410665106321094411956137121478915079150971506714951
124 | 0302162 147921466714501145641512916214171561698216459154951424013151
125 | 0303161 125451222912095121361255613737154891620716062157751561715388
126 | 0303162 151551498714843149511549916501172901704616551155561429013181
127 | 0304161 124691208511920119491230013377151091603216308164091639216132
128 | 0304162 158591576515654156411579716620170491667416169153291425213231
129 | 0305161 124771206911849118161197212467130491375514280144531440214219
130 | 0305162 139741368413526137211420315007157121540714969143191345912544
131 | 0306161 118711148111265112081132411671121031263713093133401334413264
132 | 0306162 131511292912790129351353814628157301557215070141331306412104
133 | 0307161 115041124711167112621169012880145261528915389155361550115353
134 | 0307162 150561489014832149281525315978164871607315355142231293111786
135 | 0308161 111491081510667107161114712299139591464914507142911415414030
136 | 0308162 138131374313617136671408214886158281556114946138921259111476
137 | 0309161 107771045110303103091066511762134201423414157139291389913847
138 | 0309162 137981382813817138641410614626154501517514480134101209710962
139 | 0310161 10283 9886 9643 9632 991910953126411369114026142021437814456
140 | 0310162 144551449314370143921463915197155551514714480134101212410951
141 | 0311161 10224 9801 9573 9556 986410851125431357013828139091395213803
142 | 0311162 135361338513255132161346613955146961442513936131911222411262
143 | 0312161 105901021610014 99751015810610112011190812413125971258212420
144 | 0312162 121691194811872119481233213058139391367613239125531168510809
145 | 0313161 10192 9983 9773 9584 9553 9724101451056911191116361185311939
146 | 0313162 119061177111643116951202112596133031404013684128091169810677
147 | 0314161 9945 9588 9451 9486 984310826128491404714420146661489215000
148 | 0314162 150261500914876148921513015580159341612215497144181306711871
149 | 0315161 110861067710464104251069011711135451468414941150501511315064
150 | 0315162 148791479314604145361469115060153421563315144141221278811611
151 | 0316161 108231041410232102101052011530133871440714524144711439214212
152 | 0316162 139721383313626135571368113976145171510914696137541246211289
153 | 0317161 1051810116 9917 98741018211190130701412014295142101395413779
154 | 0317162 136841377113704136291381614056143401477614482135941238311290
155 | 0318161 105801020910028100211033911298131051409714161141191412414043
156 | 0318162 139701385813720136041365813844140991466314450137741282911830
157 | 0319161 111051069610531104871063611091118961265313247134911344613222
158 | 0319162 129151255912301122311239012855133691413114065135751280711943
159 | 0320161 112911090510739107021078211082116371220712778130841314613139
160 | 0320162 130781298312911129621322313820144181509014757138451272811731
161 | 0321161 110961080310729108171120712223138021491115602158061578015608
162 | 0321162 152531496814637143221435114764151581587015595146101329112159
163 | 0322161 114611110510977110281139312485143961530515211149661471014454
164 | 0322162 141481396213709136141381414259147011543215182142321288311682
165 | 0323161 109391053210312102671057311574134441450314705147511464814460
166 | 0323162 141581399213815136791387814312146371504414678136951240111281
167 | 0324161 105851021510036100611041611501133811441614540145121449014458
168 | 0324162 143601436014279142301440314743150811547815114142211297611858
169 | 0325161 110661063110410103381056911377127451378614458148841509315063
170 | 0325162 148421462814303139861397714189142681446414134133931244611471
171 | 0326161 107531032510128100761019210562112681206912978134881354313396
172 | 0326162 131121271512266120381215812584130481382313881133581253111602
173 | 0327161 108431038910145100341008210341108451160612562132271336913114
174 | 0327162 125601184911284111031123111651122761341113596129311191510979
175 | 0328161 1035810043 9897 99341029011362132661448914985152431548415549
176 | 0328162 154551532615060148831489615121152701559615187141311277711600
177 | 0329161 108731050610361103761072911804136481459714702146081450514272
178 | 0329162 140231388513654135461373114141145851534015282143331299711847
179 | 0330161 111401078710641106641105612188140611489914718144001413713876
180 | 0330162 135981345513263131811339613790141691496914859139171260011484
181 | 0331161 107501035010118101101043211476132331408914070139611396113945
182 | 0331162 137541367513533134681358813807140061462714408134771217111010
183 |
--------------------------------------------------------------------------------
/Datasets/Zonal-hourly-data/1.txt:
--------------------------------------------------------------------------------
1 | Zonal hourly data
2 |
--------------------------------------------------------------------------------
/Datasets/Zonal-hourly-data/2003_smd_hourly.xls:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Electromaxim/electricity_load_forecast/2ffa47704e802ced52a458b8cf10fd4ea918e99c/Datasets/Zonal-hourly-data/2003_smd_hourly.xls
--------------------------------------------------------------------------------
/Datasets/Zonal-hourly-data/2004_smd_hourly.xls:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Electromaxim/electricity_load_forecast/2ffa47704e802ced52a458b8cf10fd4ea918e99c/Datasets/Zonal-hourly-data/2004_smd_hourly.xls
--------------------------------------------------------------------------------
/Datasets/Zonal-hourly-data/2005_smd_hourly.xls:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Electromaxim/electricity_load_forecast/2ffa47704e802ced52a458b8cf10fd4ea918e99c/Datasets/Zonal-hourly-data/2005_smd_hourly.xls
--------------------------------------------------------------------------------
/Datasets/Zonal-hourly-data/2006_smd_hourly.xls:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Electromaxim/electricity_load_forecast/2ffa47704e802ced52a458b8cf10fd4ea918e99c/Datasets/Zonal-hourly-data/2006_smd_hourly.xls
--------------------------------------------------------------------------------
/Datasets/Zonal-hourly-data/2007_smd_hourly.xls:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Electromaxim/electricity_load_forecast/2ffa47704e802ced52a458b8cf10fd4ea918e99c/Datasets/Zonal-hourly-data/2007_smd_hourly.xls
--------------------------------------------------------------------------------
/Datasets/Zonal-hourly-data/2008_smd_hourly.xls:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Electromaxim/electricity_load_forecast/2ffa47704e802ced52a458b8cf10fd4ea918e99c/Datasets/Zonal-hourly-data/2008_smd_hourly.xls
--------------------------------------------------------------------------------
/Datasets/Zonal-hourly-data/2009_smd_hourly.xls:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Electromaxim/electricity_load_forecast/2ffa47704e802ced52a458b8cf10fd4ea918e99c/Datasets/Zonal-hourly-data/2009_smd_hourly.xls
--------------------------------------------------------------------------------
/Datasets/Zonal-hourly-data/2010_smd_hourly.xls:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Electromaxim/electricity_load_forecast/2ffa47704e802ced52a458b8cf10fd4ea918e99c/Datasets/Zonal-hourly-data/2010_smd_hourly.xls
--------------------------------------------------------------------------------
/Datasets/Zonal-hourly-data/2011_smd_hourly.xls:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Electromaxim/electricity_load_forecast/2ffa47704e802ced52a458b8cf10fd4ea918e99c/Datasets/Zonal-hourly-data/2011_smd_hourly.xls
--------------------------------------------------------------------------------
/Datasets/Zonal-hourly-data/2012_smd_hourly.xls:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Electromaxim/electricity_load_forecast/2ffa47704e802ced52a458b8cf10fd4ea918e99c/Datasets/Zonal-hourly-data/2012_smd_hourly.xls
--------------------------------------------------------------------------------
/Datasets/Zonal-hourly-data/2013_smd_hourly.xls:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Electromaxim/electricity_load_forecast/2ffa47704e802ced52a458b8cf10fd4ea918e99c/Datasets/Zonal-hourly-data/2013_smd_hourly.xls
--------------------------------------------------------------------------------
/Datasets/Zonal-hourly-data/2014_smd_hourly.xls:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Electromaxim/electricity_load_forecast/2ffa47704e802ced52a458b8cf10fd4ea918e99c/Datasets/Zonal-hourly-data/2014_smd_hourly.xls
--------------------------------------------------------------------------------
/Datasets/Zonal-hourly-data/smd_daily.xls:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Electromaxim/electricity_load_forecast/2ffa47704e802ced52a458b8cf10fd4ea918e99c/Datasets/Zonal-hourly-data/smd_daily.xls
--------------------------------------------------------------------------------
/Datasets/Zonal-hourly-data/smd_hourly.xls:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Electromaxim/electricity_load_forecast/2ffa47704e802ced52a458b8cf10fd4ea918e99c/Datasets/Zonal-hourly-data/smd_hourly.xls
--------------------------------------------------------------------------------
/Datasets/Zonal-hourly-data/smd_monthly.xls:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Electromaxim/electricity_load_forecast/2ffa47704e802ced52a458b8cf10fd4ea918e99c/Datasets/Zonal-hourly-data/smd_monthly.xls
--------------------------------------------------------------------------------
/Holidays.xls:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Electromaxim/electricity_load_forecast/2ffa47704e802ced52a458b8cf10fd4ea918e99c/Holidays.xls
--------------------------------------------------------------------------------
/Introduction to Load & Price Forecasting Case Study.pdf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Electromaxim/electricity_load_forecast/2ffa47704e802ced52a458b8cf10fd4ea918e99c/Introduction to Load & Price Forecasting Case Study.pdf
--------------------------------------------------------------------------------
/LICENSE:
--------------------------------------------------------------------------------
1 | GNU GENERAL PUBLIC LICENSE
2 | Version 3, 29 June 2007
3 |
4 | Copyright (C) 2007 Free Software Foundation, Inc.
5 | Everyone is permitted to copy and distribute verbatim copies
6 | of this license document, but changing it is not allowed.
7 |
8 | Preamble
9 |
10 | The GNU General Public License is a free, copyleft license for
11 | software and other kinds of works.
12 |
13 | The licenses for most software and other practical works are designed
14 | to take away your freedom to share and change the works. By contrast,
15 | the GNU General Public License is intended to guarantee your freedom to
16 | share and change all versions of a program--to make sure it remains free
17 | software for all its users. We, the Free Software Foundation, use the
18 | GNU General Public License for most of our software; it applies also to
19 | any other work released this way by its authors. You can apply it to
20 | your programs, too.
21 |
22 | When we speak of free software, we are referring to freedom, not
23 | price. Our General Public Licenses are designed to make sure that you
24 | have the freedom to distribute copies of free software (and charge for
25 | them if you wish), that you receive source code or can get it if you
26 | want it, that you can change the software or use pieces of it in new
27 | free programs, and that you know you can do these things.
28 |
29 | To protect your rights, we need to prevent others from denying you
30 | these rights or asking you to surrender the rights. Therefore, you have
31 | certain responsibilities if you distribute copies of the software, or if
32 | you modify it: responsibilities to respect the freedom of others.
33 |
34 | For example, if you distribute copies of such a program, whether
35 | gratis or for a fee, you must pass on to the recipients the same
36 | freedoms that you received. You must make sure that they, too, receive
37 | or can get the source code. And you must show them these terms so they
38 | know their rights.
39 |
40 | Developers that use the GNU GPL protect your rights with two steps:
41 | (1) assert copyright on the software, and (2) offer you this License
42 | giving you legal permission to copy, distribute and/or modify it.
43 |
44 | For the developers' and authors' protection, the GPL clearly explains
45 | that there is no warranty for this free software. For both users' and
46 | authors' sake, the GPL requires that modified versions be marked as
47 | changed, so that their problems will not be attributed erroneously to
48 | authors of previous versions.
49 |
50 | Some devices are designed to deny users access to install or run
51 | modified versions of the software inside them, although the manufacturer
52 | can do so. This is fundamentally incompatible with the aim of
53 | protecting users' freedom to change the software. The systematic
54 | pattern of such abuse occurs in the area of products for individuals to
55 | use, which is precisely where it is most unacceptable. Therefore, we
56 | have designed this version of the GPL to prohibit the practice for those
57 | products. If such problems arise substantially in other domains, we
58 | stand ready to extend this provision to those domains in future versions
59 | of the GPL, as needed to protect the freedom of users.
60 |
61 | Finally, every program is threatened constantly by software patents.
62 | States should not allow patents to restrict development and use of
63 | software on general-purpose computers, but in those that do, we wish to
64 | avoid the special danger that patents applied to a free program could
65 | make it effectively proprietary. To prevent this, the GPL assures that
66 | patents cannot be used to render the program non-free.
67 |
68 | The precise terms and conditions for copying, distribution and
69 | modification follow.
70 |
71 | TERMS AND CONDITIONS
72 |
73 | 0. Definitions.
74 |
75 | "This License" refers to version 3 of the GNU General Public License.
76 |
77 | "Copyright" also means copyright-like laws that apply to other kinds of
78 | works, such as semiconductor masks.
79 |
80 | "The Program" refers to any copyrightable work licensed under this
81 | License. Each licensee is addressed as "you". "Licensees" and
82 | "recipients" may be individuals or organizations.
83 |
84 | To "modify" a work means to copy from or adapt all or part of the work
85 | in a fashion requiring copyright permission, other than the making of an
86 | exact copy. The resulting work is called a "modified version" of the
87 | earlier work or a work "based on" the earlier work.
88 |
89 | A "covered work" means either the unmodified Program or a work based
90 | on the Program.
91 |
92 | To "propagate" a work means to do anything with it that, without
93 | permission, would make you directly or secondarily liable for
94 | infringement under applicable copyright law, except executing it on a
95 | computer or modifying a private copy. Propagation includes copying,
96 | distribution (with or without modification), making available to the
97 | public, and in some countries other activities as well.
98 |
99 | To "convey" a work means any kind of propagation that enables other
100 | parties to make or receive copies. Mere interaction with a user through
101 | a computer network, with no transfer of a copy, is not conveying.
102 |
103 | An interactive user interface displays "Appropriate Legal Notices"
104 | to the extent that it includes a convenient and prominently visible
105 | feature that (1) displays an appropriate copyright notice, and (2)
106 | tells the user that there is no warranty for the work (except to the
107 | extent that warranties are provided), that licensees may convey the
108 | work under this License, and how to view a copy of this License. If
109 | the interface presents a list of user commands or options, such as a
110 | menu, a prominent item in the list meets this criterion.
111 |
112 | 1. Source Code.
113 |
114 | The "source code" for a work means the preferred form of the work
115 | for making modifications to it. "Object code" means any non-source
116 | form of a work.
117 |
118 | A "Standard Interface" means an interface that either is an official
119 | standard defined by a recognized standards body, or, in the case of
120 | interfaces specified for a particular programming language, one that
121 | is widely used among developers working in that language.
122 |
123 | The "System Libraries" of an executable work include anything, other
124 | than the work as a whole, that (a) is included in the normal form of
125 | packaging a Major Component, but which is not part of that Major
126 | Component, and (b) serves only to enable use of the work with that
127 | Major Component, or to implement a Standard Interface for which an
128 | implementation is available to the public in source code form. A
129 | "Major Component", in this context, means a major essential component
130 | (kernel, window system, and so on) of the specific operating system
131 | (if any) on which the executable work runs, or a compiler used to
132 | produce the work, or an object code interpreter used to run it.
133 |
134 | The "Corresponding Source" for a work in object code form means all
135 | the source code needed to generate, install, and (for an executable
136 | work) run the object code and to modify the work, including scripts to
137 | control those activities. However, it does not include the work's
138 | System Libraries, or general-purpose tools or generally available free
139 | programs which are used unmodified in performing those activities but
140 | which are not part of the work. For example, Corresponding Source
141 | includes interface definition files associated with source files for
142 | the work, and the source code for shared libraries and dynamically
143 | linked subprograms that the work is specifically designed to require,
144 | such as by intimate data communication or control flow between those
145 | subprograms and other parts of the work.
146 |
147 | The Corresponding Source need not include anything that users
148 | can regenerate automatically from other parts of the Corresponding
149 | Source.
150 |
151 | The Corresponding Source for a work in source code form is that
152 | same work.
153 |
154 | 2. Basic Permissions.
155 |
156 | All rights granted under this License are granted for the term of
157 | copyright on the Program, and are irrevocable provided the stated
158 | conditions are met. This License explicitly affirms your unlimited
159 | permission to run the unmodified Program. The output from running a
160 | covered work is covered by this License only if the output, given its
161 | content, constitutes a covered work. This License acknowledges your
162 | rights of fair use or other equivalent, as provided by copyright law.
163 |
164 | You may make, run and propagate covered works that you do not
165 | convey, without conditions so long as your license otherwise remains
166 | in force. You may convey covered works to others for the sole purpose
167 | of having them make modifications exclusively for you, or provide you
168 | with facilities for running those works, provided that you comply with
169 | the terms of this License in conveying all material for which you do
170 | not control copyright. Those thus making or running the covered works
171 | for you must do so exclusively on your behalf, under your direction
172 | and control, on terms that prohibit them from making any copies of
173 | your copyrighted material outside their relationship with you.
174 |
175 | Conveying under any other circumstances is permitted solely under
176 | the conditions stated below. Sublicensing is not allowed; section 10
177 | makes it unnecessary.
178 |
179 | 3. Protecting Users' Legal Rights From Anti-Circumvention Law.
180 |
181 | No covered work shall be deemed part of an effective technological
182 | measure under any applicable law fulfilling obligations under article
183 | 11 of the WIPO copyright treaty adopted on 20 December 1996, or
184 | similar laws prohibiting or restricting circumvention of such
185 | measures.
186 |
187 | When you convey a covered work, you waive any legal power to forbid
188 | circumvention of technological measures to the extent such circumvention
189 | is effected by exercising rights under this License with respect to
190 | the covered work, and you disclaim any intention to limit operation or
191 | modification of the work as a means of enforcing, against the work's
192 | users, your or third parties' legal rights to forbid circumvention of
193 | technological measures.
194 |
195 | 4. Conveying Verbatim Copies.
196 |
197 | You may convey verbatim copies of the Program's source code as you
198 | receive it, in any medium, provided that you conspicuously and
199 | appropriately publish on each copy an appropriate copyright notice;
200 | keep intact all notices stating that this License and any
201 | non-permissive terms added in accord with section 7 apply to the code;
202 | keep intact all notices of the absence of any warranty; and give all
203 | recipients a copy of this License along with the Program.
204 |
205 | You may charge any price or no price for each copy that you convey,
206 | and you may offer support or warranty protection for a fee.
207 |
208 | 5. Conveying Modified Source Versions.
209 |
210 | You may convey a work based on the Program, or the modifications to
211 | produce it from the Program, in the form of source code under the
212 | terms of section 4, provided that you also meet all of these conditions:
213 |
214 | a) The work must carry prominent notices stating that you modified
215 | it, and giving a relevant date.
216 |
217 | b) The work must carry prominent notices stating that it is
218 | released under this License and any conditions added under section
219 | 7. This requirement modifies the requirement in section 4 to
220 | "keep intact all notices".
221 |
222 | c) You must license the entire work, as a whole, under this
223 | License to anyone who comes into possession of a copy. This
224 | License will therefore apply, along with any applicable section 7
225 | additional terms, to the whole of the work, and all its parts,
226 | regardless of how they are packaged. This License gives no
227 | permission to license the work in any other way, but it does not
228 | invalidate such permission if you have separately received it.
229 |
230 | d) If the work has interactive user interfaces, each must display
231 | Appropriate Legal Notices; however, if the Program has interactive
232 | interfaces that do not display Appropriate Legal Notices, your
233 | work need not make them do so.
234 |
235 | A compilation of a covered work with other separate and independent
236 | works, which are not by their nature extensions of the covered work,
237 | and which are not combined with it such as to form a larger program,
238 | in or on a volume of a storage or distribution medium, is called an
239 | "aggregate" if the compilation and its resulting copyright are not
240 | used to limit the access or legal rights of the compilation's users
241 | beyond what the individual works permit. Inclusion of a covered work
242 | in an aggregate does not cause this License to apply to the other
243 | parts of the aggregate.
244 |
245 | 6. Conveying Non-Source Forms.
246 |
247 | You may convey a covered work in object code form under the terms
248 | of sections 4 and 5, provided that you also convey the
249 | machine-readable Corresponding Source under the terms of this License,
250 | in one of these ways:
251 |
252 | a) Convey the object code in, or embodied in, a physical product
253 | (including a physical distribution medium), accompanied by the
254 | Corresponding Source fixed on a durable physical medium
255 | customarily used for software interchange.
256 |
257 | b) Convey the object code in, or embodied in, a physical product
258 | (including a physical distribution medium), accompanied by a
259 | written offer, valid for at least three years and valid for as
260 | long as you offer spare parts or customer support for that product
261 | model, to give anyone who possesses the object code either (1) a
262 | copy of the Corresponding Source for all the software in the
263 | product that is covered by this License, on a durable physical
264 | medium customarily used for software interchange, for a price no
265 | more than your reasonable cost of physically performing this
266 | conveying of source, or (2) access to copy the
267 | Corresponding Source from a network server at no charge.
268 |
269 | c) Convey individual copies of the object code with a copy of the
270 | written offer to provide the Corresponding Source. This
271 | alternative is allowed only occasionally and noncommercially, and
272 | only if you received the object code with such an offer, in accord
273 | with subsection 6b.
274 |
275 | d) Convey the object code by offering access from a designated
276 | place (gratis or for a charge), and offer equivalent access to the
277 | Corresponding Source in the same way through the same place at no
278 | further charge. You need not require recipients to copy the
279 | Corresponding Source along with the object code. If the place to
280 | copy the object code is a network server, the Corresponding Source
281 | may be on a different server (operated by you or a third party)
282 | that supports equivalent copying facilities, provided you maintain
283 | clear directions next to the object code saying where to find the
284 | Corresponding Source. Regardless of what server hosts the
285 | Corresponding Source, you remain obligated to ensure that it is
286 | available for as long as needed to satisfy these requirements.
287 |
288 | e) Convey the object code using peer-to-peer transmission, provided
289 | you inform other peers where the object code and Corresponding
290 | Source of the work are being offered to the general public at no
291 | charge under subsection 6d.
292 |
293 | A separable portion of the object code, whose source code is excluded
294 | from the Corresponding Source as a System Library, need not be
295 | included in conveying the object code work.
296 |
297 | A "User Product" is either (1) a "consumer product", which means any
298 | tangible personal property which is normally used for personal, family,
299 | or household purposes, or (2) anything designed or sold for incorporation
300 | into a dwelling. In determining whether a product is a consumer product,
301 | doubtful cases shall be resolved in favor of coverage. For a particular
302 | product received by a particular user, "normally used" refers to a
303 | typical or common use of that class of product, regardless of the status
304 | of the particular user or of the way in which the particular user
305 | actually uses, or expects or is expected to use, the product. A product
306 | is a consumer product regardless of whether the product has substantial
307 | commercial, industrial or non-consumer uses, unless such uses represent
308 | the only significant mode of use of the product.
309 |
310 | "Installation Information" for a User Product means any methods,
311 | procedures, authorization keys, or other information required to install
312 | and execute modified versions of a covered work in that User Product from
313 | a modified version of its Corresponding Source. The information must
314 | suffice to ensure that the continued functioning of the modified object
315 | code is in no case prevented or interfered with solely because
316 | modification has been made.
317 |
318 | If you convey an object code work under this section in, or with, or
319 | specifically for use in, a User Product, and the conveying occurs as
320 | part of a transaction in which the right of possession and use of the
321 | User Product is transferred to the recipient in perpetuity or for a
322 | fixed term (regardless of how the transaction is characterized), the
323 | Corresponding Source conveyed under this section must be accompanied
324 | by the Installation Information. But this requirement does not apply
325 | if neither you nor any third party retains the ability to install
326 | modified object code on the User Product (for example, the work has
327 | been installed in ROM).
328 |
329 | The requirement to provide Installation Information does not include a
330 | requirement to continue to provide support service, warranty, or updates
331 | for a work that has been modified or installed by the recipient, or for
332 | the User Product in which it has been modified or installed. Access to a
333 | network may be denied when the modification itself materially and
334 | adversely affects the operation of the network or violates the rules and
335 | protocols for communication across the network.
336 |
337 | Corresponding Source conveyed, and Installation Information provided,
338 | in accord with this section must be in a format that is publicly
339 | documented (and with an implementation available to the public in
340 | source code form), and must require no special password or key for
341 | unpacking, reading or copying.
342 |
343 | 7. Additional Terms.
344 |
345 | "Additional permissions" are terms that supplement the terms of this
346 | License by making exceptions from one or more of its conditions.
347 | Additional permissions that are applicable to the entire Program shall
348 | be treated as though they were included in this License, to the extent
349 | that they are valid under applicable law. If additional permissions
350 | apply only to part of the Program, that part may be used separately
351 | under those permissions, but the entire Program remains governed by
352 | this License without regard to the additional permissions.
353 |
354 | When you convey a copy of a covered work, you may at your option
355 | remove any additional permissions from that copy, or from any part of
356 | it. (Additional permissions may be written to require their own
357 | removal in certain cases when you modify the work.) You may place
358 | additional permissions on material, added by you to a covered work,
359 | for which you have or can give appropriate copyright permission.
360 |
361 | Notwithstanding any other provision of this License, for material you
362 | add to a covered work, you may (if authorized by the copyright holders of
363 | that material) supplement the terms of this License with terms:
364 |
365 | a) Disclaiming warranty or limiting liability differently from the
366 | terms of sections 15 and 16 of this License; or
367 |
368 | b) Requiring preservation of specified reasonable legal notices or
369 | author attributions in that material or in the Appropriate Legal
370 | Notices displayed by works containing it; or
371 |
372 | c) Prohibiting misrepresentation of the origin of that material, or
373 | requiring that modified versions of such material be marked in
374 | reasonable ways as different from the original version; or
375 |
376 | d) Limiting the use for publicity purposes of names of licensors or
377 | authors of the material; or
378 |
379 | e) Declining to grant rights under trademark law for use of some
380 | trade names, trademarks, or service marks; or
381 |
382 | f) Requiring indemnification of licensors and authors of that
383 | material by anyone who conveys the material (or modified versions of
384 | it) with contractual assumptions of liability to the recipient, for
385 | any liability that these contractual assumptions directly impose on
386 | those licensors and authors.
387 |
388 | All other non-permissive additional terms are considered "further
389 | restrictions" within the meaning of section 10. If the Program as you
390 | received it, or any part of it, contains a notice stating that it is
391 | governed by this License along with a term that is a further
392 | restriction, you may remove that term. If a license document contains
393 | a further restriction but permits relicensing or conveying under this
394 | License, you may add to a covered work material governed by the terms
395 | of that license document, provided that the further restriction does
396 | not survive such relicensing or conveying.
397 |
398 | If you add terms to a covered work in accord with this section, you
399 | must place, in the relevant source files, a statement of the
400 | additional terms that apply to those files, or a notice indicating
401 | where to find the applicable terms.
402 |
403 | Additional terms, permissive or non-permissive, may be stated in the
404 | form of a separately written license, or stated as exceptions;
405 | the above requirements apply either way.
406 |
407 | 8. Termination.
408 |
409 | You may not propagate or modify a covered work except as expressly
410 | provided under this License. Any attempt otherwise to propagate or
411 | modify it is void, and will automatically terminate your rights under
412 | this License (including any patent licenses granted under the third
413 | paragraph of section 11).
414 |
415 | However, if you cease all violation of this License, then your
416 | license from a particular copyright holder is reinstated (a)
417 | provisionally, unless and until the copyright holder explicitly and
418 | finally terminates your license, and (b) permanently, if the copyright
419 | holder fails to notify you of the violation by some reasonable means
420 | prior to 60 days after the cessation.
421 |
422 | Moreover, your license from a particular copyright holder is
423 | reinstated permanently if the copyright holder notifies you of the
424 | violation by some reasonable means, this is the first time you have
425 | received notice of violation of this License (for any work) from that
426 | copyright holder, and you cure the violation prior to 30 days after
427 | your receipt of the notice.
428 |
429 | Termination of your rights under this section does not terminate the
430 | licenses of parties who have received copies or rights from you under
431 | this License. If your rights have been terminated and not permanently
432 | reinstated, you do not qualify to receive new licenses for the same
433 | material under section 10.
434 |
435 | 9. Acceptance Not Required for Having Copies.
436 |
437 | You are not required to accept this License in order to receive or
438 | run a copy of the Program. Ancillary propagation of a covered work
439 | occurring solely as a consequence of using peer-to-peer transmission
440 | to receive a copy likewise does not require acceptance. However,
441 | nothing other than this License grants you permission to propagate or
442 | modify any covered work. These actions infringe copyright if you do
443 | not accept this License. Therefore, by modifying or propagating a
444 | covered work, you indicate your acceptance of this License to do so.
445 |
446 | 10. Automatic Licensing of Downstream Recipients.
447 |
448 | Each time you convey a covered work, the recipient automatically
449 | receives a license from the original licensors, to run, modify and
450 | propagate that work, subject to this License. You are not responsible
451 | for enforcing compliance by third parties with this License.
452 |
453 | An "entity transaction" is a transaction transferring control of an
454 | organization, or substantially all assets of one, or subdividing an
455 | organization, or merging organizations. If propagation of a covered
456 | work results from an entity transaction, each party to that
457 | transaction who receives a copy of the work also receives whatever
458 | licenses to the work the party's predecessor in interest had or could
459 | give under the previous paragraph, plus a right to possession of the
460 | Corresponding Source of the work from the predecessor in interest, if
461 | the predecessor has it or can get it with reasonable efforts.
462 |
463 | You may not impose any further restrictions on the exercise of the
464 | rights granted or affirmed under this License. For example, you may
465 | not impose a license fee, royalty, or other charge for exercise of
466 | rights granted under this License, and you may not initiate litigation
467 | (including a cross-claim or counterclaim in a lawsuit) alleging that
468 | any patent claim is infringed by making, using, selling, offering for
469 | sale, or importing the Program or any portion of it.
470 |
471 | 11. Patents.
472 |
473 | A "contributor" is a copyright holder who authorizes use under this
474 | License of the Program or a work on which the Program is based. The
475 | work thus licensed is called the contributor's "contributor version".
476 |
477 | A contributor's "essential patent claims" are all patent claims
478 | owned or controlled by the contributor, whether already acquired or
479 | hereafter acquired, that would be infringed by some manner, permitted
480 | by this License, of making, using, or selling its contributor version,
481 | but do not include claims that would be infringed only as a
482 | consequence of further modification of the contributor version. For
483 | purposes of this definition, "control" includes the right to grant
484 | patent sublicenses in a manner consistent with the requirements of
485 | this License.
486 |
487 | Each contributor grants you a non-exclusive, worldwide, royalty-free
488 | patent license under the contributor's essential patent claims, to
489 | make, use, sell, offer for sale, import and otherwise run, modify and
490 | propagate the contents of its contributor version.
491 |
492 | In the following three paragraphs, a "patent license" is any express
493 | agreement or commitment, however denominated, not to enforce a patent
494 | (such as an express permission to practice a patent or covenant not to
495 | sue for patent infringement). To "grant" such a patent license to a
496 | party means to make such an agreement or commitment not to enforce a
497 | patent against the party.
498 |
499 | If you convey a covered work, knowingly relying on a patent license,
500 | and the Corresponding Source of the work is not available for anyone
501 | to copy, free of charge and under the terms of this License, through a
502 | publicly available network server or other readily accessible means,
503 | then you must either (1) cause the Corresponding Source to be so
504 | available, or (2) arrange to deprive yourself of the benefit of the
505 | patent license for this particular work, or (3) arrange, in a manner
506 | consistent with the requirements of this License, to extend the patent
507 | license to downstream recipients. "Knowingly relying" means you have
508 | actual knowledge that, but for the patent license, your conveying the
509 | covered work in a country, or your recipient's use of the covered work
510 | in a country, would infringe one or more identifiable patents in that
511 | country that you have reason to believe are valid.
512 |
513 | If, pursuant to or in connection with a single transaction or
514 | arrangement, you convey, or propagate by procuring conveyance of, a
515 | covered work, and grant a patent license to some of the parties
516 | receiving the covered work authorizing them to use, propagate, modify
517 | or convey a specific copy of the covered work, then the patent license
518 | you grant is automatically extended to all recipients of the covered
519 | work and works based on it.
520 |
521 | A patent license is "discriminatory" if it does not include within
522 | the scope of its coverage, prohibits the exercise of, or is
523 | conditioned on the non-exercise of one or more of the rights that are
524 | specifically granted under this License. You may not convey a covered
525 | work if you are a party to an arrangement with a third party that is
526 | in the business of distributing software, under which you make payment
527 | to the third party based on the extent of your activity of conveying
528 | the work, and under which the third party grants, to any of the
529 | parties who would receive the covered work from you, a discriminatory
530 | patent license (a) in connection with copies of the covered work
531 | conveyed by you (or copies made from those copies), or (b) primarily
532 | for and in connection with specific products or compilations that
533 | contain the covered work, unless you entered into that arrangement,
534 | or that patent license was granted, prior to 28 March 2007.
535 |
536 | Nothing in this License shall be construed as excluding or limiting
537 | any implied license or other defenses to infringement that may
538 | otherwise be available to you under applicable patent law.
539 |
540 | 12. No Surrender of Others' Freedom.
541 |
542 | If conditions are imposed on you (whether by court order, agreement or
543 | otherwise) that contradict the conditions of this License, they do not
544 | excuse you from the conditions of this License. If you cannot convey a
545 | covered work so as to satisfy simultaneously your obligations under this
546 | License and any other pertinent obligations, then as a consequence you may
547 | not convey it at all. For example, if you agree to terms that obligate you
548 | to collect a royalty for further conveying from those to whom you convey
549 | the Program, the only way you could satisfy both those terms and this
550 | License would be to refrain entirely from conveying the Program.
551 |
552 | 13. Use with the GNU Affero General Public License.
553 |
554 | Notwithstanding any other provision of this License, you have
555 | permission to link or combine any covered work with a work licensed
556 | under version 3 of the GNU Affero General Public License into a single
557 | combined work, and to convey the resulting work. The terms of this
558 | License will continue to apply to the part which is the covered work,
559 | but the special requirements of the GNU Affero General Public License,
560 | section 13, concerning interaction through a network will apply to the
561 | combination as such.
562 |
563 | 14. Revised Versions of this License.
564 |
565 | The Free Software Foundation may publish revised and/or new versions of
566 | the GNU General Public License from time to time. Such new versions will
567 | be similar in spirit to the present version, but may differ in detail to
568 | address new problems or concerns.
569 |
570 | Each version is given a distinguishing version number. If the
571 | Program specifies that a certain numbered version of the GNU General
572 | Public License "or any later version" applies to it, you have the
573 | option of following the terms and conditions either of that numbered
574 | version or of any later version published by the Free Software
575 | Foundation. If the Program does not specify a version number of the
576 | GNU General Public License, you may choose any version ever published
577 | by the Free Software Foundation.
578 |
579 | If the Program specifies that a proxy can decide which future
580 | versions of the GNU General Public License can be used, that proxy's
581 | public statement of acceptance of a version permanently authorizes you
582 | to choose that version for the Program.
583 |
584 | Later license versions may give you additional or different
585 | permissions. However, no additional obligations are imposed on any
586 | author or copyright holder as a result of your choosing to follow a
587 | later version.
588 |
589 | 15. Disclaimer of Warranty.
590 |
591 | THERE IS NO WARRANTY FOR THE PROGRAM, TO THE EXTENT PERMITTED BY
592 | APPLICABLE LAW. EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT
593 | HOLDERS AND/OR OTHER PARTIES PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY
594 | OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO,
595 | THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
596 | PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE PROGRAM
597 | IS WITH YOU. SHOULD THE PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF
598 | ALL NECESSARY SERVICING, REPAIR OR CORRECTION.
599 |
600 | 16. Limitation of Liability.
601 |
602 | IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING
603 | WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MODIFIES AND/OR CONVEYS
604 | THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, INCLUDING ANY
605 | GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE
606 | USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED TO LOSS OF
607 | DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD
608 | PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER PROGRAMS),
609 | EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF
610 | SUCH DAMAGES.
611 |
612 | 17. Interpretation of Sections 15 and 16.
613 |
614 | If the disclaimer of warranty and limitation of liability provided
615 | above cannot be given local legal effect according to their terms,
616 | reviewing courts shall apply local law that most closely approximates
617 | an absolute waiver of all civil liability in connection with the
618 | Program, unless a warranty or assumption of liability accompanies a
619 | copy of the Program in return for a fee.
620 |
621 | END OF TERMS AND CONDITIONS
622 |
623 | How to Apply These Terms to Your New Programs
624 |
625 | If you develop a new program, and you want it to be of the greatest
626 | possible use to the public, the best way to achieve this is to make it
627 | free software which everyone can redistribute and change under these terms.
628 |
629 | To do so, attach the following notices to the program. It is safest
630 | to attach them to the start of each source file to most effectively
631 | state the exclusion of warranty; and each file should have at least
632 | the "copyright" line and a pointer to where the full notice is found.
633 |
634 | {one line to give the program's name and a brief idea of what it does.}
635 | Copyright (C) {year} {name of author}
636 |
637 | This program is free software: you can redistribute it and/or modify
638 | it under the terms of the GNU General Public License as published by
639 | the Free Software Foundation, either version 3 of the License, or
640 | (at your option) any later version.
641 |
642 | This program is distributed in the hope that it will be useful,
643 | but WITHOUT ANY WARRANTY; without even the implied warranty of
644 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
645 | GNU General Public License for more details.
646 |
647 | You should have received a copy of the GNU General Public License
648 | along with this program. If not, see .
649 |
650 | Also add information on how to contact you by electronic and paper mail.
651 |
652 | If the program does terminal interaction, make it output a short
653 | notice like this when it starts in an interactive mode:
654 |
655 | {project} Copyright (C) {year} {fullname}
656 | This program comes with ABSOLUTELY NO WARRANTY; for details type `show w'.
657 | This is free software, and you are welcome to redistribute it
658 | under certain conditions; type `show c' for details.
659 |
660 | The hypothetical commands `show w' and `show c' should show the appropriate
661 | parts of the General Public License. Of course, your program's commands
662 | might be different; for a GUI interface, you would use an "about box".
663 |
664 | You should also get your employer (if you work as a programmer) or school,
665 | if any, to sign a "copyright disclaimer" for the program, if necessary.
666 | For more information on this, and how to apply and follow the GNU GPL, see
667 | .
668 |
669 | The GNU General Public License does not permit incorporating your program
670 | into proprietary programs. If your program is a subroutine library, you
671 | may consider it more useful to permit linking proprietary applications with
672 | the library. If this is what you want to do, use the GNU Lesser General
673 | Public License instead of this License. But first, please read
674 | .
675 |
--------------------------------------------------------------------------------
/Load & Price Forecasting Webinar Slides.pdf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Electromaxim/electricity_load_forecast/2ffa47704e802ced52a458b8cf10fd4ea918e99c/Load & Price Forecasting Webinar Slides.pdf
--------------------------------------------------------------------------------
/LoadScriptNN.m:
--------------------------------------------------------------------------------
1 | %% Electricity Load Forecasting using Neural Networks
2 | % This example demonstrates building and validating a short term
3 | % electricity load forecasting model with MATLAB. The models take into
4 | % account multiple sources of information including temperatures and
5 | % holidays in constructing a day-ahead load forecaster. This script uses
6 | % Neural Networks. A similar script "LoadScriptTrees" uses Bagged
7 | % Regression Trees.
8 |
9 | %% Import Weather & Load Data
10 | % The data set used is a table of historical hourly loads and temperature
11 | % observations from the New England ISO for the years 2004 to 2008. The
12 | % weather information includes the dry bulb temperature and the dew point.
13 |
14 | load Data\DBLoadData.mat
15 | addpath ..\Util
16 |
17 | %% Import list of holidays
18 | % A list of New England holidays that span the historical date range is
19 | % imported from an Excel spreadsheet
20 |
21 | [num, text] = xlsread('..\Data\Holidays.xls');
22 | holidays = text(2:end,1);
23 |
24 |
25 | %% Generate Predictor Matrix
26 | % The function *genPredictors* generates the predictor variables used as
27 | % inputs for the model. For short-term forecasting these include
28 | %
29 | % * Dry bulb temperature
30 | % * Dew point
31 | % * Hour of day
32 | % * Day of the week
33 | % * A flag indicating if it is a holiday/weekend
34 | % * Previous day's average load
35 | % * Load from the same hour the previous day
36 | % * Load from the same hour and same day from the previous week
37 | %
38 | % If the goal is medium-term or long-term load forecasting, only the inputs
39 | % hour of day, day of week, time of year and holidays can be used
40 | % deterministically. The weather/load information would need to be
41 | % specified as an average or a distribution
42 |
43 | % Select forecast horizon
44 | term = 'short';
45 |
46 | [X, dates, labels] = genPredictors(data, term, holidays);
47 |
48 | %% Split the dataset to create a Training and Test set
49 | % The dataset is divided into two sets, a _training_ set which includes
50 | % data from 2004 to 2007 and a _test_ set with data from 2008. The training
51 | % set is used for building the model (estimating its parameters). The test
52 | % set is used only for forecasting to test the performance of the model on
53 | % out-of-sample data.
54 |
55 | % Create training set
56 | trainInd = data.NumDate < datenum('2008-01-01');
57 | trainX = X(trainInd,:);
58 | trainY = data.SYSLoad(trainInd);
59 |
60 | % Create test set and save for later
61 | testInd = data.NumDate >= datenum('2008-01-01');
62 | testX = X(testInd,:);
63 | testY = data.SYSLoad(testInd);
64 | testDates = dates(testInd);
65 |
66 | save Data\testSet testDates testX testY
67 | clear X data trainInd testInd term holidays dates ans num text
68 |
69 | %% Build the Load Forecasting Model
70 | % The next few cells builds a Neural Network regression model for day-ahead
71 | % load forecasting given the training data. This model is then used on the
72 | % test data to validate its accuracy.
73 |
74 | %% Initialize and Train Network
75 | % Initialize a default network of two layers with 20 neurons. Use the "mean
76 | % absolute error" (MAE) performance metric. Then, train the network with
77 | % the default Levenburg-Marquardt algorithm. For efficiency a pre-trained
78 | % network is loaded unless a retrain is specifically enforced.
79 |
80 | reTrain = false;
81 | if reTrain || ~exist('Models\NNModel.mat', 'file')
82 | net = newfit(trainX', trainY', 20);
83 | net.performFcn = 'mae';
84 | net = train(net, trainX', trainY');
85 | save Models\NNModel.mat net
86 | else
87 | load Models\NNModel.mat
88 | end
89 |
90 | %% Forecast using Neural Network Model
91 | % Once the model is built, perform a forecast on the independent test set.
92 |
93 | load Data\testSet
94 | forecastLoad = sim(net, testX')';
95 |
96 | %% Compare Forecast Load and Actual Load
97 | % Create a plot to compare the actual load and the predicted load as well
98 | % as compute the forecast error. In addition to the visualization, quantify
99 | % the performance of the forecaster using metrics such as mean absolute
100 | % error (MAE), mean absolute percent error (MAPE) and daily peak forecast
101 | % error.
102 |
103 | err = testY-forecastLoad;
104 | fitPlot(testDates, [testY forecastLoad], err);
105 |
106 | errpct = abs(err)./testY*100;
107 |
108 | fL = reshape(forecastLoad, 24, length(forecastLoad)/24)';
109 | tY = reshape(testY, 24, length(testY)/24)';
110 | peakerrpct = abs(max(tY,[],2) - max(fL,[],2))./max(tY,[],2) * 100;
111 |
112 | MAE = mean(abs(err));
113 | MAPE = mean(errpct(~isinf(errpct)));
114 |
115 | fprintf('Mean Absolute Percent Error (MAPE): %0.2f%% \nMean Absolute Error (MAE): %0.2f MWh\nDaily Peak MAPE: %0.2f%%\n',...
116 | MAPE, MAE, mean(peakerrpct))
117 |
118 |
119 | %% Examine Distribution of Errors
120 | % In addition to reporting scalar error metrics such as MAE and MAPE, the
121 | % plot of the distribution of the error and absolute error can help build
122 | % intuition around the performance of the forecaster
123 |
124 | figure;
125 | subplot(3,1,1); hist(err,100); title('Error distribution');
126 | subplot(3,1,2); hist(abs(err),100); title('Absolute error distribution');
127 | line([MAE MAE], ylim); legend('Errors', 'MAE');
128 | subplot(3,1,3); hist(errpct,100); title('Absolute percent error distribution');
129 | line([MAPE MAPE], ylim); legend('Errors', 'MAPE');
130 |
131 | %% Group Analysis of Errors
132 | % To get further insight into the performance of the forecaster, we can
133 | % visualize the percent forecast errors by hour of day, day of week and
134 | % month of the year
135 |
136 | [yr, mo, da, hr] = datevec(testDates);
137 |
138 | % By Hour
139 | clf;
140 | boxplot(errpct, hr+1);
141 | xlabel('Hour'); ylabel('Percent Error Statistics');
142 | title('Breakdown of forecast error statistics by hour');
143 |
144 | % By Weekday
145 | figure
146 | boxplot(errpct, weekday(floor(testDates)), 'labels', {'Sun','Mon','Tue','Wed','Thu','Fri','Sat'});
147 | ylabel('Percent Error Statistics');
148 | title('Breakdown of forecast error statistics by weekday');
149 |
150 | % By Month
151 | figure
152 | boxplot(errpct, datestr(testDates,'mmm'));
153 | ylabel('Percent Error Statistics');
154 | title('Breakdown of forecast error statistics by month');
155 |
156 |
157 | %% Generate Weekly Charts
158 | % Create a comparison of forecast and actual load for every week in the
159 | % test set.
160 | generateCharts = true;
161 | if generateCharts
162 | step = 168*2;
163 | for i = 0:step:length(testDates)-step
164 | clf;
165 | fitPlot(testDates(i+1:i+step), [testY(i+1:i+step) forecastLoad(i+1:i+step)], err(i+1:i+step));
166 | title(sprintf('MAPE: %0.2f%%', mean(errpct(i+1:i+step))));
167 | snapnow
168 |
169 | end
170 | end
171 | %#ok<*ASGLU>
172 | %#ok<*CTCH>
--------------------------------------------------------------------------------
/LoadScriptTrees.m:
--------------------------------------------------------------------------------
1 | %% Load Forecasting using Bagged Regression Trees
2 | % This example demonstrates an alternate model for building relationships
3 | % between historical weather and load data to build and test a short term
4 | % load forecasting. The model used is a set of aggregated Regression Trees.
5 |
6 | %% Import Data
7 | % The data set used is a table of historical hourly loads and temperature
8 | % observations from the New England ISO for the years 2004 to 2008. The
9 | % weather information includes the dry bulb temperature and the dew point.
10 |
11 | load Data\DBLoadData.mat
12 | addpath ..\Util
13 |
14 | %% Import list of holidays
15 | % A list of New England holidays that span the historical date range is
16 | % imported from an Excel spreadsheet
17 |
18 | [num, text] = xlsread('..\Data\Holidays.xls');
19 | holidays = text(2:end,1);
20 |
21 |
22 | %% Generate Predictor Matrix
23 | % The function *genPredictors* generates the predictor variables used as
24 | % inputs for the model. For short-term forecasting these include
25 | %
26 | % * Dry bulb temperature
27 | % * Dew point
28 | % * Hour of day
29 | % * Day of the week
30 | % * A flag indicating if it is a holiday/weekend
31 | % * Previous day's average load
32 | % * Load from the same hour the previous day
33 | % * Load from the same hour and same day from the previous week
34 | %
35 | % If the goal is medium-term or long-term load forecasting, only the inputs
36 | % hour of day, day of week, time of year and holidays can be used
37 | % deterministically. The weather/load information would need to be
38 | % specified as an average or a distribution
39 |
40 | % Select forecast horizon
41 | term = 'short';
42 |
43 | [X, dates, labels] = genPredictors(data, term, holidays);
44 |
45 | %% Split the dataset to create a Training and Test set
46 | % The dataset is divided into two sets, a _training_ set which includes
47 | % data from 2004 to 2007 and a _test_ set with data from 2008. The training
48 | % set is used for building the model (estimating its parameters). The test
49 | % set is used only for forecasting to test the performance of the model on
50 | % out-of-sample data.
51 |
52 | % Create training set
53 | trainInd = data.NumDate < datenum('2008-01-01');
54 | trainX = X(trainInd,:);
55 | trainY = data.SYSLoad(trainInd);
56 |
57 | % Create test set and save for later
58 | testInd = data.NumDate >= datenum('2008-01-01');
59 | testX = X(testInd,:);
60 | testY = data.SYSLoad(testInd);
61 | testDates = dates(testInd);
62 |
63 | save Data\testSet testDates testX testY
64 | clear X data trainInd testInd term holidays dates ans
65 |
66 | %% Build the Load Forecasting Model
67 | % The next few cells builds a Bagged Regression Trees model for day-ahead
68 | % load forecasting given the training data. This model is then used on the
69 | % test data to validate its accuracy.
70 |
71 | %% Build the Bootstrap Aggregated Regression Trees
72 | % The function TreeBagger is used to build the model, ie. a set of
73 | % regression trees each with a different set of rules for performing the
74 | % non-linear regression. We build an aggregate of 20 such trees, with a
75 | % minimum leaf size of 20. The larger the leaf size the smaller the tree.
76 | % This provides a control for overfitting and performance.
77 |
78 | model = TreeBagger(20, trainX, trainY, 'method', 'regression', 'minleaf', 20)
79 |
80 |
81 | simpleTree = prune(model.Trees{1}, 500);
82 | simpleTree = prune(simpleTree, simpleTree.prunelist(1)-10);
83 | view(simpleTree, 'names', labels);
84 |
85 | %% Save Trained Model
86 | % We can compact the model (to remove any stored training data) and save
87 | % for later reuse
88 |
89 | model = compact(model);
90 | save Models\TreeModel model
91 |
92 |
93 | %% Forecast Using Tree Model
94 | % Once the model is built, perform a forecast on the independent test set.
95 |
96 | load Data\testSet
97 | forecastLoad = predict(model, testX);
98 |
99 | %% Compare Forecast Load and Actual Load
100 | % Create a plot to compare the actual load and the predicted load as well
101 | % as compute the forecast error. In addition to the visualization, quantify
102 | % the performance of the forecaster using metrics such as mean absolute
103 | % error (MAE), mean absolute percent error (MAPE) and daily peak forecast
104 | % error.
105 |
106 | err = testY-forecastLoad;
107 | fitPlot(testDates, [testY forecastLoad], err);
108 |
109 | errpct = abs(err)./testY*100;
110 |
111 | fL = reshape(forecastLoad, 24, length(forecastLoad)/24)';
112 | tY = reshape(testY, 24, length(testY)/24)';
113 | peakerrpct = abs(max(tY,[],2) - max(fL,[],2))./max(tY,[],2) * 100;
114 |
115 | MAE = mean(abs(err));
116 | MAPE = mean(errpct(~isinf(errpct)));
117 |
118 | fprintf('Mean Absolute Percent Error (MAPE): %0.2f%% \nMean Absolute Error (MAE): %0.2f MWh\nDaily Peak MAPE: %0.2f%%\n',...
119 | MAPE, MAE, mean(peakerrpct))
120 |
121 |
122 | %% Examine Distribution of Errors
123 | % In addition to reporting scalar error metrics such as MAE and MAPE, the
124 | % plot of the distribution of the error and absolute error can help build
125 | % intuition around the performance of the forecaster
126 |
127 | figure;
128 | subplot(3,1,1); hist(err,100); title('Error distribution');
129 | subplot(3,1,2); hist(abs(err),100); title('Absolute error distribution');
130 | line([MAE MAE], ylim); legend('Errors', 'MAE');
131 | subplot(3,1,3); hist(errpct,100); title('Absolute percent error distribution');
132 | line([MAPE MAPE], ylim); legend('Errors', 'MAPE');
133 |
134 | %% Group Analysis of Errors
135 | % To get further insight into the performance of the forecaster, we can
136 | % visualize the percent forecast errors by hour of day, day of week and
137 | % month of the year
138 |
139 | [yr, mo, da, hr] = datevec(testDates);
140 |
141 | % By Hour
142 | clf;
143 | boxplot(errpct, hr+1);
144 | xlabel('Hour'); ylabel('Percent Error Statistics');
145 | title('Breakdown of forecast error statistics by hour');
146 |
147 | % By Weekday
148 | figure
149 | boxplot(errpct, weekday(floor(testDates)), 'labels', {'Sun','Mon','Tue','Wed','Thu','Fri','Sat'});
150 | ylabel('Percent Error Statistics');
151 | title('Breakdown of forecast error statistics by weekday');
152 |
153 | % By Month
154 | figure
155 | boxplot(errpct, datestr(testDates,'mmm'));
156 | ylabel('Percent Error Statistics');
157 | title('Breakdown of forecast error statistics by month');
158 |
159 |
160 | %% Generate Weekly Charts
161 | % Create a comparison of forecast and actual load for every week in the
162 | % test set.
163 | generateCharts = true;
164 | if generateCharts
165 | step = 168*2;
166 | for i = 0:step:length(testDates)-step
167 | clf;
168 | fitPlot(testDates(i+1:i+step), [testY(i+1:i+step) forecastLoad(i+1:i+step)], err(i+1:i+step));
169 | title(sprintf('MAPE: %0.2f%%', mean(errpct(i+1:i+step))));
170 | snapnow
171 |
172 | end
173 | end
174 |
175 | %#ok<*NOPTS>
176 | %#ok<*CTCH>
--------------------------------------------------------------------------------
/PriceScriptNN.m:
--------------------------------------------------------------------------------
1 | %% Electricity Price Forecasting with Neural Networks
2 | % This example demonstrates building and validating a short term
3 | % electricity price forecasting model with MATLAB using Neural Networks.
4 | % The models take into account multiple sources of information including
5 | % fuel prices, temperatures and holidays in constructing a day-ahead price
6 | % forecaster.
7 |
8 | %% Import Weather, Load and Price Data
9 | % The data set used is a table of historical hourly loads, prices and temperature
10 | % observations from the New England ISO for the years 2004 to 2008. The
11 | % weather information includes the dry bulb temperature and the dew point.
12 |
13 | load Data\DBPriceData
14 |
15 | %% Import list of holidays
16 | % A list of New England holidays that span the historical date range is
17 | % imported from an Excel spreadsheet
18 |
19 | [num, text] = xlsread('..\Data\Holidays.xls');
20 | holidays = text(2:end,1);
21 |
22 |
23 | %% Generate Predictor Matrix
24 | % The function *genPredictors* generates the predictor variables used as
25 | % inputs for the model. For short-term forecasting these include
26 | %
27 | % * Dry bulb temperature
28 | % * Dew point
29 | % * Hour of day
30 | % * Day of the week
31 | % * A flag indicating if it is a holiday/weekend
32 | % * System load
33 | % * Previous day's average load
34 | % * Load from the same hour the previous day
35 | % * Load from the same hour and same day from the previous week
36 | % * Previous day's average price
37 | % * Price from the same hour the previous day
38 | % * Price from the same hour and same day from the previous week
39 | % * Previous day's natural gas price
40 | % * Previous week's average natural gas price
41 | %
42 | % If the goal is medium-term or long-term price forecasting, only the inputs
43 | % hour of day, day of week, time of year and holidays can be used
44 | % deterministically. The weather/price information would need to be
45 | % specified as an average or a distribution
46 |
47 | % Select forecast horizon
48 | term = 'short';
49 |
50 | [X, dates, labels] = genPredictors(data, term, holidays);
51 |
52 | %% Split the dataset to create a Training and Test set
53 | % The dataset is divided into two sets, a _training_ set which includes
54 | % data from 2004 to 2007 and a _test_ set with data from 2008. The training
55 | % set is used for building the model (estimating its parameters). The test
56 | % set is used only for forecasting to test the performance of the model on
57 | % out-of-sample data.
58 |
59 | % Interpolate missing values
60 | ind = data.ElecPrice==0;
61 | data.ElecPrice(ind) = interp1(find(~ind), data.ElecPrice(~ind), find(ind));
62 |
63 | % Create training set
64 | trainInd = data.NumDate < datenum('2008-01-01');
65 | trainX = X(trainInd,:);
66 | trainY = data.ElecPrice(trainInd);
67 |
68 | % Create test set and save for later
69 | testInd = data.NumDate >= datenum('2008-01-01');
70 | testX = X(testInd,:);
71 | testY = data.ElecPrice(testInd);
72 | testDates = dates(testInd);
73 |
74 | save Data\testSet testDates testX testY
75 | clear X data trainInd testInd term holidays dates ans num text
76 |
77 | %% Build the Price Forecasting Model
78 | % The next few cells builds a Neural Network regression model for day-ahead
79 | % price forecasting given the training data. This model is then used on the
80 | % test data to validate its accuracy.
81 |
82 | %% Initialize and Train Network
83 | % Initialize a default network of two layers with 20 neurons. Use the "mean
84 | % absolute error" (MAE) performance metric. Then, train the network with
85 | % the default Levenburg-Marquardt algorithm. For efficiency a pre-trained
86 | % network is loaded unless a retrain is specifically enforced.
87 |
88 | reTrain = false;
89 | if reTrain || ~exist('Models\NNModel.mat', 'file')
90 | net = newfit(trainX', trainY', 20);
91 | net.performFcn = 'mae';
92 | net = train(net, trainX', trainY');
93 | save Models\NNModel.mat net
94 | else
95 | load Models\NNModel.mat
96 | end
97 |
98 | %% Forecast using Neural Network Model
99 | % Once the model is built, perform a forecast on the independent test set.
100 |
101 | load Data\testSet
102 | forecastPrice = sim(net, testX')';
103 |
104 | %% Compare Forecast Price and Actual Price
105 | % Create a plot to compare the actual price and the predicted price as well
106 | % as compute the forecast error. In addition to the visualization, quantify
107 | % the performance of the forecaster using metrics such as mean absolute
108 | % error (MAE), mean absolute percent error (MAPE) and daily peak forecast
109 | % error.
110 |
111 | err = testY-forecastPrice;
112 | fitPlot(testDates, [testY forecastPrice], err);
113 |
114 | errpct = abs(err)./testY*100;
115 |
116 | fL = reshape(forecastPrice, 24, length(forecastPrice)/24)';
117 | tY = reshape(testY, 24, length(testY)/24)';
118 | peakerrpct = abs(max(tY,[],2) - max(fL,[],2))./max(tY,[],2) * 100;
119 |
120 | MAE = mean(abs(err));
121 | MAPE = mean(errpct(~isinf(errpct)));
122 |
123 | fprintf('Mean Absolute Percent Error (MAPE): %0.2f%% \nMean Absolute Error (MAE): %0.2f MWh\nDaily Peak MAPE: %0.2f%%\n',...
124 | MAPE, MAE, mean(peakerrpct))
125 |
126 | %% Examine Distribution of Errors
127 | % In addition to reporting scalar error metrics such as MAE and MAPE, the
128 | % plot of the distribution of the error and absolute error can help build
129 | % intuition around the performance of the forecaster
130 |
131 | figure;
132 | subplot(3,1,1); hist(err,100); title('Error distribution');
133 | subplot(3,1,2); hist(abs(err),100); title('Absolute error distribution');
134 | line([MAE MAE], ylim); legend('Errors', 'MAE');
135 | subplot(3,1,3); hist(errpct,100); title('Absolute percent error distribution');
136 | line([MAPE MAPE], ylim); legend('Errors', 'MAPE');
137 |
138 | %% Group Analysis of Errors
139 | % To get further insight into the performance of the forecaster, we can
140 | % visualize the percent forecast errors by hour of day, day of week and
141 | % month of the year
142 |
143 | [yr, mo, da, hr] = datevec(testDates);
144 |
145 | % By Hour
146 | clf;
147 | boxplot(errpct, hr+1);
148 | xlabel('Hour'); ylabel('Percent Error Statistics');
149 | title('Breakdown of forecast error statistics by hour');
150 |
151 | % By Weekday
152 | figure
153 | boxplot(errpct, weekday(floor(testDates)), 'labels', {'Sun','Mon','Tue','Wed','Thu','Fri','Sat'});
154 | ylabel('Percent Error Statistics');
155 | title('Breakdown of forecast error statistics by weekday');
156 |
157 | % By Month
158 | figure
159 | boxplot(errpct, datestr(testDates,'mmm'));
160 | ylabel('Percent Error Statistics');
161 | title('Breakdown of forecast error statistics by month');
162 |
163 | %% Generate Weekly Charts
164 | % Create a comparison of forecast and actual price for every week in the
165 | % test set.
166 | generateCharts = true;
167 | if generateCharts
168 | step = 168*2;
169 | for i = 0:step:length(testDates)-step
170 | clf;
171 | fitPlot(testDates(i+1:i+step), [testY(i+1:i+step) forecastPrice(i+1:i+step)], err(i+1:i+step));
172 | title(sprintf('MAPE: %0.2f%%', mean(errpct(i+1:i+step))));
173 | snapnow
174 |
175 | end
176 | end
177 | %#ok<*CTCH>
178 |
--------------------------------------------------------------------------------
/README.md:
--------------------------------------------------------------------------------
1 | # electricity_load_forecast
2 | Electricity Load and Price Forecasting with MATLAB
3 |
--------------------------------------------------------------------------------
/TreesInDetail.m:
--------------------------------------------------------------------------------
1 | %% Further Refinements of the Bagged Regression Tree Model
2 | % An important task when building such artificial intelligence models is
3 | % the choice of model architecture, for example, the number of layers in a
4 | % Neural network or the choice of a kernal function in a Support Vector
5 | % Machine. In the case of bagged trees, some of these model architecture
6 | % parameters include,
7 | % * Number of trees
8 | % * Minimum leaf size
9 | % * The choice of predictors/inputs
10 | %
11 | % The choice of model architecture usually requires some fundamental
12 | % knowledge about the problem being solved, for example the predictive
13 | % power of a input. However, the flexibility of MATLAB and built-in
14 | % functions in the Treebagger classl enable us to use a data driven
15 | % approach to help determine these model structure parameters.
16 | %
17 | % In the next two sections we demonstrate a data driven approach that uses
18 | % built-in methods of the TreeBagger object to help determine appropriate
19 | % choice of model architecture.
20 |
21 | %% Determine Number of Trees and Appropriate Leaf Size
22 | % The number of trees in the ensemble and their minimum leaf size governs
23 | % the accuracy of the model and can be selected to offer an appropriate tradeoff
24 | % between precision, overfitting and speed. Here we compare the out-of-sample prediction
25 | % error for a leaf size of 10, 20, 40 and 50. We can test this by
26 | % turning on the parameter _oobpred_ which returns out-of-bag prediction
27 | % errors during the training procedure.
28 |
29 | oobError = [];
30 | leafSizes = [10 20 40 50];
31 | for i = 1:length(leafSizes)
32 | model = TreeBagger(20, trainX, trainY, 'method', 'regression', ...
33 | 'oobpred', 'on', 'minleaf', leafSizes(i));
34 | oobError = [oobError model.oobError];
35 |
36 | figure(1), plot(oobError);
37 | xlabel('Number of grown trees'), ylabel('Out-of-bag Regression Error');
38 | title(sprintf('Regression Error versus Number of Trees & Leaf Size'));
39 | legend(num2str(leafSizes(1:i)')), drawnow;
40 | end
41 |
42 | %% Determine Feature Importance
43 | % Of each of the predictors, which ones provide the most predictive power?
44 | % Turning on the _oobVarImp_ parameter shows you out-of-bag estimates of this
45 | % relative feature (input) importance.
46 |
47 | model = TreeBagger(20, trainX, trainY, 'method', 'regression', ...
48 | 'oobvarimp', 'on', 'minleaf', 30);
49 |
50 | figure(2);
51 | barh(model.OOBPermutedVarDeltaError);
52 | ylabel('Feature');
53 | xlabel('Out-of-bag feature importance');
54 | title('Feature importance results');
55 | set(gca, 'YTickLabel', labels)
56 |
57 |
--------------------------------------------------------------------------------
/comparePredictors.m:
--------------------------------------------------------------------------------
1 | %% Predictor Comparison
2 | % This script analyzes the predictive power of different sets of predictors
3 | % on day-ahead electricity price forecasting
4 |
5 | %% Import data and generate all predictors
6 |
7 | % Fetch price data
8 | load Data\DBPriceData.mat
9 |
10 | % Import holidays
11 | [num, text] = xlsread('..\Data\Holidays.xls');
12 | holidays = text(2:end,1);
13 |
14 | % Create predictors
15 | term = 'short';
16 | [X, dates, labels] = genPredictors(data, term, holidays);
17 |
18 | % Interpolate missing values
19 | ind = data.ElecPrice==0;
20 | data.ElecPrice(ind) = interp1(find(~ind), data.ElecPrice(~ind), find(ind));
21 |
22 | % Create training set
23 | trainInd = data.NumDate < datenum('2008-01-01');
24 | trainX = X(trainInd,:);
25 | trainY = data.ElecPrice(trainInd);
26 |
27 | % Create test set and save for later
28 | testInd = data.NumDate >= datenum('2008-01-01');
29 | testX = X(testInd,:);
30 | testY = data.ElecPrice(testInd);
31 | testDates = dates(testInd);
32 |
33 | clear X data trainInd testInd term holidays dates ans num text
34 |
35 | %% Load pre-trained networks
36 | load Models\SubsetNets
37 |
38 | %% Baseline performance with all predictors
39 | % Compute performance of best neural network with all predictors
40 | load Models\NNModel
41 | forecastPrice = sim(net, testX')';
42 | err = testY-forecastPrice;
43 | errpct = abs(err)./testY*100;
44 | baselineErr = [mean(abs(err)) mean(errpct)];
45 |
46 | %% Price, Load & Fuel
47 | % Do the hour, weekday, holiday and temperature variables provide any
48 | % predictive power when the load is known?
49 | ind = 6:length(labels);
50 | disp('Selected Predictors:')
51 | disp(char(labels(ind)'));
52 | [subsetErr(1,:), nets{1}] = trainAndTestNN(trainX, trainY, testX, testY, ind, nets{1}, baselineErr);
53 | save Models\SubsetNets nets
54 |
55 | %% No Load Information
56 | % How accurate is the prediction if the load information is not known?
57 | ind = [1:5 10:14];
58 | disp('Selected Predictors:')
59 | disp(char(labels(ind)'))
60 | [subsetErr(2,:), nets{2}] = trainAndTestNN(trainX, trainY, testX, testY, ind, nets{2}, baselineErr);
61 | save Models\SubsetNets nets
62 |
63 | %% No Current Load Information
64 | % How accurate is the prediction if the real-time load is not known?
65 | ind = [1:5 7:14];
66 | disp('Selected Predictors:')
67 | disp(char(labels(ind)'))
68 | [subsetErr(3,:), nets{3}] = trainAndTestNN(trainX, trainY, testX, testY, ind, nets{3}, baselineErr);
69 | save Models\SubsetNets nets
70 |
--------------------------------------------------------------------------------
/createHolidayDates.m:
--------------------------------------------------------------------------------
1 | function [holidays, holidayIndicator, weightedIndicator] = createHolidayDates(startDate, endDate)
2 |
3 | if nargin < 2 && ~isscalar(startDate)
4 | %[dates, sortInd] = sort(startDate);
5 | dates = floor(startDate);
6 | startDate = min(dates);
7 | endDate = max(dates);
8 | end
9 |
10 |
11 |
12 | %3, 2, 1; ... Martin Luther King Day, 3rd Monday of Jan
13 | %3, 2, 2; ... President's day,
14 | %2, 2, 10; ... Columbus day, second Monday in October
15 |
16 | holidays = {};
17 | hweights = {};
18 |
19 | % New Years Day
20 | holidays{end+1} = filterDates(startDate, endDate, 1, 'D', 1)';
21 | hweights{end+1} = 1 * ones(size(holidays{end}));
22 |
23 | % Memorial day, last Monday in May
24 | holidays{end+1} = filterDates(startDate, endDate, -1, 2, 5)';
25 | hweights{end+1} = 1 * ones(size(holidays{end}));
26 |
27 | % 4th July
28 | holidays{end+1} = filterDates(startDate, endDate, 4, 'D', 7)';
29 | hweights{end+1} = 1 * ones(size(holidays{end}));
30 |
31 | % Labor day
32 | holidays{end+1} = filterDates(startDate, endDate, 1, 2, 9)';
33 | hweights{end+1} = 1 * ones(size(holidays{end}));
34 |
35 | % Thanksgiving & Day after thanksgiving
36 | th = filterDates(startDate, endDate, 4, 5, 11)';
37 | holidays{end+1} = [th; th+1];
38 | hweights{end+1} = [2 * ones(size(th)); .5 * ones(size(th))];
39 |
40 | % Christmas
41 | xmas = filterDates(startDate, endDate, 25, 'D', 12)';
42 | holidays{end+1} = [xmas-1; xmas; xmas+1];
43 | hweights{end+1} = [.5 * ones(size(xmas)); 1 * ones(size(xmas)); .5 * ones(size(xmas))];
44 |
45 | holidays = vertcat(holidays{:});
46 | hweights = vertcat(hweights{:});
47 | [holidays, index] = sort(holidays);
48 | hweights = hweights(index);
49 |
50 | % holidayIndicator = false(size(dates));
51 | if nargout > 1
52 | [holidayIndicator, index] = matchAny(dates, holidays);
53 | end
54 | if nargout > 2
55 | weightedIndicator = zeros(size(holidayIndicator));
56 | weightedIndicator(holidayIndicator) = hweights(index(holidayIndicator));
57 | end
58 |
--------------------------------------------------------------------------------
/dynamicDateTicks.m:
--------------------------------------------------------------------------------
1 | function dynamicDateTicks(axH, link)
2 | % DYNAMICDATETICKS is a wrapper function around DATETICK which creates
3 | % dynamic date tick labels for plots with dates on the X-axis. The date
4 | % ticks intelligently include year/month/day information on specific ticks
5 | % as appropriate. The ticks are dynamic with respect to zooming and
6 | % panning. They update as the timescale changes (from years to seconds).
7 | % Data tips on the plot also show intelligently as dates.
8 | %
9 | % The function may be used with linked axes as well as with multiple
10 | % independent date and non-date axes within a plot.
11 | %
12 | % USAGE:
13 | % dynamicDateTicks()
14 | % makes the current axes a date axes with dynamic properties
15 | %
16 | % dynamicDateTicks(axH)
17 | % makes all the axes handles in vector axH dynamic date axes
18 | %
19 | % dynamicDateTicks(axH, 'link')
20 | % additionally specifies that all the axes in axH are linked. This
21 | % option should be used in conjunction with LINKAXES.
22 | %
23 | % EXAMPLES:
24 | % load integersignal
25 | % dates = datenum('July 1, 2008'):1/24:datenum('May 11, 2009 1:00 PM');
26 | % subplot(2,1,1), plot(dates, Signal1);
27 | % dynamicDateTicks
28 | % subplot(2,1,2), plot(dates, Signal4);
29 | % dynamicDateTicks
30 | %
31 | % figure
32 | % ax1 = subplot(2,1,1); plot(dates, Signal1);
33 | % ax2 = subplot(2,1,2); plot(dates, Signal4);
34 | % linkaxes([ax1 ax2], 'x');
35 | % dynamicDateTicks([ax1 ax2], 'linked')
36 |
37 | if nargin < 1 % If no axes is specified, use the current axes
38 | axH = gca;
39 | end
40 |
41 | % Apply datetick to all axes in axH, and store any linking information
42 | axesInfo.Type = 'dateaxes'; % Information stored in axes userdata indicating that these are date axes
43 | for i = 1:length(axH)
44 | datetick(axH(i), 'x', 'keeplimits');
45 | if nargin > 1 % If axes are linked,
46 | axesInfo.Linked = axH; % Need to modify all axes at once
47 | else
48 | axesInfo.Linked = axH(i); % Need to modify only 1 axes
49 | end
50 | set(axH(i), 'UserData', axesInfo); % Store the fact that this is a date axes and its link information in userdata
51 | updateDateLabel('', struct('Axes', axH(i)), 0); % Call once to ensure proper formatting
52 | end
53 |
54 | % Set the zoom, pan and datacursor callbacks
55 | figH = get(axH, 'Parent');
56 | if iscell(figH)
57 | figH = unique([figH{:}]);
58 | end
59 | if length(figH) > 1
60 | error('Axes should be part of the same plot (have the same figure parent)');
61 | end
62 |
63 | z = zoom(figH);
64 | p = pan(figH);
65 | d = datacursormode(figH);
66 |
67 | set(z,'ActionPostCallback',@updateDateLabel);
68 | set(p,'ActionPostCallback',@updateDateLabel);
69 | set(d,'UpdateFcn',@dateTip);
70 |
71 | % ------------ End of dynamicDateTicks-----------------------
72 |
73 |
74 | function output_txt = dateTip(gar, ev)
75 | pos = ev.Position;
76 | axHandle = get(ev.Target, 'Parent'); % Which axes is the data cursor on
77 | axesInfo = get(axHandle, 'UserData'); % Get the axes info for that axes
78 | try % If it is a date axes, create a date-friendly data tip
79 | if strcmp(axesInfo.Type, 'dateaxes')
80 | output_txt = sprintf('X: %s\nY: %0.4g', datestr(pos(1)), pos(2));
81 | else
82 | output_txt = sprintf('X: %0.4g\nY: %0.4g', pos(1), pos(2));
83 | end
84 | catch % It's not a date axes, create a generic data tip
85 | output_txt = sprintf('X: %0.4g\nY: %0.4g', pos(1), pos(2));
86 | end
87 | end
88 |
89 | function updateDateLabel(obj, ev, varargin)
90 | ax1 = ev.Axes; % On which axes has the zoom/pan occurred
91 | axesInfo = get(ev.Axes, 'UserData');
92 | % Check if this axes is a date axes. If not, do nothing more (return)
93 | try
94 | if ~strcmp(axesInfo.Type, 'dateaxes')
95 | return;
96 | end
97 | catch
98 | return;
99 | end
100 |
101 | % Re-apply date ticks, but keep limits (unless called the first time)
102 | if nargin < 3
103 | datetick(ax1, 'x', 'keeplimits');
104 | end
105 |
106 |
107 | % Get the current axes ticks & labels
108 | ticks = get(ax1, 'XTick');
109 | labels = get(ax1, 'XTickLabel');
110 |
111 | % Sometimes the first tick can be outside axes limits. If so, remove it & its label
112 | if all(ticks(1) < get(ax1,'xlim'))
113 | ticks(1) = [];
114 | labels(1,:) = [];
115 | end
116 |
117 | [yr, mo, da] = datevec(ticks); % Extract year & day information (necessary for ticks on the boundary)
118 | newlabels = cell(size(labels,1), 1); % Initialize cell array of new tick label information
119 |
120 | if regexpi(labels(1,:), '([a-z]{3})|(\d\d/\d\d)', 'once') % Tick format is either mmm or mm/dd
121 |
122 | % Add year information to first tick & ticks where the year changes
123 | ind = [1 find(diff(yr))+1];
124 | newlabels(ind) = cellstr(datestr(ticks(ind), '/yy'));
125 | labels = strcat(labels, newlabels);
126 |
127 | elseif any(labels(1,:) == ':') % Tick format is HH:MM
128 |
129 | % Add month/day/year information to the first tick and month/day to other ticks where the day changes
130 | ind = find(diff(da))+1;
131 | newlabels{1} = datestr(ticks(1), 'mm/dd/yy-'); % Add month/day/year to first tick
132 | newlabels(ind) = cellstr(datestr(ticks(ind), 'mm/dd-')); % Add month/day to ticks where day changes
133 | labels = strcat(newlabels, labels);
134 |
135 | end
136 |
137 | set(axesInfo.Linked, 'XTick', ticks, 'XTickLabel', labels);
138 | end
139 | end
140 | %#ok<*CTCH>
141 | %#ok<*ASGLU>
142 | %#ok<*INUSL>
143 | %#ok<*INUSD>
144 |
--------------------------------------------------------------------------------
/fetchDBPriceData.m:
--------------------------------------------------------------------------------
1 | function data = fetchDBPriceData(startDate, endDate)
2 |
3 | % Set preferences with setdbprefs.
4 | s.DataReturnFormat = 'structure';
5 | s.ErrorHandling = 'store';
6 | s.NullNumberRead = 'NaN';
7 | s.NullNumberWrite = 'NaN';
8 | s.NullStringRead = 'null';
9 | s.NullStringWrite = 'null';
10 | s.JDBCDataSourceFile = '';
11 | s.UseRegistryForSources = 'yes';
12 | s.TempDirForRegistryOutput = 'C:\Temp';
13 | s.DefaultRowPreFetch = '10000';
14 | setdbprefs(s)
15 |
16 | % Make connection to database. Note that the password has been omitted.
17 | % Using ODBC driver.
18 | conn = database('EnergyData','','password');
19 |
20 | % Read data from database.
21 | e = exec(conn,['SELECT ALL Date,Hour,DryBulb,DewPnt,SYSLoad,NGPrice,ElecPrice FROM NEData WHERE Date BETWEEN #' startDate '# AND #' endDate '# ']);
22 | e = fetch(e);
23 | close(e)
24 |
25 | % Assign data to output variable.
26 | data = e.Data;
27 | data.NumDate = datenum(data.Date, 'yyyy-mm-dd') + (data.Hour-1)/24;
28 |
29 | % Close database connection.
30 | close(conn)
31 |
--------------------------------------------------------------------------------
/filterDates.m:
--------------------------------------------------------------------------------
1 | function dates = filterDates(startDate, endDate, N, X, Y)
2 | % FILTERDATES returns a list of dates between the start and end dates that
3 | % satisfy certain criteria. These criteria are specified as the following
4 | % rule: "Nth X of Y" where N is the occurrence, X is the day type and Y is
5 | % a month or year. This enables you to filter dates that match rules such as
6 | % "Last business day of the month", "Third Friday in April",
7 | % "All Mondays, Wednesdays and Fridays in June and July",
8 | % "Second last business day in July", "Second through Fourth business days
9 | % of June through December"
10 | %
11 | % USAGE:
12 | %
13 | % dates = filterDates(startDate, endDate, N, X, Y)
14 | %
15 | % startDate and endDate are specify the start and end dates of the date
16 | % range. They can be either scalar date numbers, or scalar date strings.
17 | % N, X and Y can take the following values:
18 | %
19 | % N: A (vector of) integers, positive specifying the Nth occurence, negative specifying
20 | % the Nth last occurence. For example N = -1 implies "last", -2 "second
21 | % to last", 3 "third" and so on. N = 0 implies "all". Note: The N vector
22 | % must either be ALL POSITIVE, ALL NEGATIVE or SCALAR 0. Combinations
23 | % cannot be used. Use multiple calls to filterDates to achieve this.
24 | %
25 | % X: Day of the week (specified by integers 1 through 7 with 1
26 | % corresponding to Sunday), business day (specified by "B"), weekday ("W"),
27 | % holiday ("H") or any day ("D"). Note: options 'B' or 'H' require Financial Toolbox.
28 | %
29 | % Y: "The month" ("M"), a specific month of the year (integers 1 through 12), or
30 | % "The year" ("Y")
31 | %
32 | % For example,
33 | % (1, 5, 7) "First Thursday of July"
34 | % (3, 'B', 4) "Third business day of April"
35 | % (-1, 'W', 'M') "Last weekday of the month" (equivalent to (-1, 2:6, 'M'))
36 | % (-3:-1, 'H', 'Y') "Last three holidays of the year (Labor day, thanksgiving, Christmas)"
37 | % (0, 2, 'M') "All mondays of the month" (equivalent to (0, 1, 'Y'))
38 | %
39 | % Example:
40 | % % Last business days of the months between June 2008 and July 2011
41 | % dates = filterDates('2008-06-04','2011-07-31',-1,'B','M');
42 | % datestr(dates)
43 |
44 | % 0. Check inputs
45 | assert(all(N>0) || all(N<0) || isscalar(N)&&N==0, 'N must be all positive integers, all negative integers or scalar 0');
46 | assert(isnumeric(X) && all(X>=1) && all(X<=7) || ischar(X) && ~isempty(X) && any(lower(X(1))=='bwhd'), 'X must be an integer between 1 & 7 or character B, W, H or D');
47 | assert(isnumeric(Y) && all(Y>=1) && all(Y<=12)|| ischar(Y) && ~isempty(Y) && any(lower(Y(1))=='ym'), 'Y must be an integer between 1 & 12 or character Y or M');
48 |
49 | % 1. Convert startDate and endDate into their numeric representations
50 | startDate = datenum(startDate);
51 | endDate = datenum(endDate);
52 |
53 | % 2. Adjust actual startDate and endDate to accomodate all rules. A safety
54 | % buffer (of around 7 days) is added to accommodate edge cases. A
55 | % sufficiently large safety buffer should not completely get filtered out
56 | % when filters such as "business days" or "month of June" are applied.
57 | [yr1,mo1] = datevec(startDate);
58 | [yr2,mo2] = datevec(endDate);
59 | if ischar(Y) && lower(Y(1)) == 'y'
60 | % If looking for "Nth X of the year" we should start from the last day
61 | % of the year before startDate (minus safety buffer) to first day of
62 | % year after endDate (plus safety buffer).
63 | sd = datenum([yr1,1,1])-1-max(abs(N))-7;
64 | ed = datenum([yr2+1,1,1])+max(abs(N))+7;
65 | else
66 | % If looking for "Nth X of a month" we should start from the last day
67 | % of the month before startDate (minus safety buffer) to first day of
68 | % month after endDate (plus safety buffer).
69 | sd = datenum([yr1,mo1,1])-1-max(abs(N))-7;
70 | ed = datenum([yr2,mo2+1,1])+max(abs(N))+7;
71 | end
72 | allDates = sd:ed;
73 |
74 | % 3. Filter by day type. For example, if we are requesting mondays, keep
75 | % only mondays. If requesting business days or holidays, keep only business
76 | % days or holidays.
77 | if isnumeric(X)
78 | ind = ismember(weekday(allDates), X);
79 | elseif lower(X) == 'b'
80 | ind = isbusday(allDates);
81 | elseif lower(X) == 'w'
82 | ind = ismember(weekday(allDates), 2:6);
83 | elseif lower(X) == 'h'
84 | ind = ismember(allDates,holidays);
85 | else
86 | ind = true(size(allDates));
87 | end
88 | allDates = allDates(ind);
89 | [yr,mo] = datevec(allDates);
90 |
91 | % 4.a. If the set class is a specific month of the year (eg. June), filter
92 | % out all dates outside June. Then calculate the index of the first day in
93 | % the month (where there is a change in the month). Also remember the
94 | % first or last+1 index of the data to accomodate rules that filter the
95 | % dates to match only a certain day or month when the date range also only
96 | % spans days of that month. Eg. "5th Day of June" between June 4 and June 26
97 | % In this case there is no "change in month" as any dates outside June have
98 | % been filtered out.
99 | if isnumeric(Y)
100 | allDates = allDates(ismember(mo, Y));
101 | [yr,mo] = datevec(allDates);
102 | ind = find(diff(mo)~=0 | diff(yr)~=0)+1; % Find the index of date where the month changes (this is the first of that month)
103 | if all(N < 0)
104 | ind = union(ind, length(allDates)+1); % Tack on last+1 index
105 | elseif all(N > 0)
106 | ind = union(ind, 1); % Tack on first index
107 | end
108 | end
109 |
110 | % 4.b. If the set class is simply "any month" or "any year", just find the
111 | % index of the first day of each month or year respectively.
112 | if ischar(Y) && lower(Y) == 'y'
113 | ind = find(diff(yr)~=0)+1;
114 | elseif ischar(Y) && lower(Y) == 'm'
115 | ind = find(diff(mo)~=0 | diff(yr)~=0)+1;
116 | end
117 |
118 | % 5. Compute final index vector. The vector IND should now correspond to
119 | % the "first" X of Y or "all" X of Y. Add N (or N-1) to compute the Nth X of Y as required.
120 | % Note, this code is vectorized to handle vectors of N.
121 | if all(N == 0)
122 | finalInd = 1:length(allDates); % Return all matching dates
123 | else
124 | finalInd = bsxfun(@plus, ind, N(:)); % Really just ind + N for different sizes of ind and N
125 | finalInd = finalInd(:);
126 | if all(N > 0)
127 | finalInd = finalInd - 1; % Offset because of 1 based indexing
128 | end
129 | end
130 | finalInd = finalInd(finalInd>0 & finalInd<=length(allDates)); % Remove invalid indices (this is okay because of the safety buffer)
131 |
132 | % 6. Filter dates & return
133 | allDates = allDates(finalInd);
134 | dates = allDates(allDates>=startDate & allDates<=endDate);
135 |
--------------------------------------------------------------------------------
/fit_plot.m:
--------------------------------------------------------------------------------
1 | function fitPlot(dates, YMatrix1, res1)
2 | %FITPLOT is a modified auto-generated function to create a plot of the actual series,
3 | % model-predicted series and residuals
4 | %
5 | % SYNTAX:
6 | % fitplot(dates, [actual pred], residuals)
7 |
8 | % Auto-generated by MATLAB on 12-Apr-2010 10:34:05
9 |
10 | % Create figure
11 | figure1 = gcf;
12 |
13 | % Create axes
14 | axes1 = axes('Parent',figure1,...
15 | 'Position',[0.13 0.583837209302326 0.775 0.341162790697674]);
16 | box(axes1,'on');
17 | hold(axes1,'all');
18 |
19 | % Create multiple lines using matrix input to plot
20 | plot1 = plot(dates, YMatrix1,'Parent',axes1);
21 | set(plot1(1),'DisplayName','Actual');
22 | set(plot1(2),'LineStyle','-','Color',[1 0 0],'DisplayName','Model');
23 |
24 | % Create title
25 | title('Data & Model Prediction');
26 |
27 | % Create subplot
28 | subplot1 = subplot(2,1,2,'Parent',figure1,'YGrid','on');
29 | box(subplot1,'on');
30 | hold(subplot1,'all');
31 |
32 | % Create title
33 | title('Residuals');
34 |
35 | % Create plot
36 | plot(dates, res1,'Parent',subplot1,'DisplayName','res');
37 |
38 | % Create legend
39 | legend(axes1,'show');
40 |
41 | linkaxes([axes1 subplot1], 'x');
42 | dynamicDateTicks([axes1 subplot1], 'linked');
43 |
--------------------------------------------------------------------------------
/gen_predictors.m:
--------------------------------------------------------------------------------
1 | function [X, dates, labels] = genPredictors(data, term, holidays)
2 | % GENPREDICTORS generates a matrix of predictor variables for the price
3 | % forecasting model.
4 | %
5 | % USAGE:
6 | % [X, dates, labels] = genPredictors(data, term, holidays)
7 | %
8 | % Inputs:
9 | % data : A Dataset array of historical weather, price and load information
10 | % term : 'long' or 'short' indicating the horizon of the forecast.
11 | % Predictors such as previous day load are not included in the
12 | % long term forecast.
13 | % holidays : A vector of holidays. If this is not specified, holidays are
14 | % generated by the function CREATEHOLIDAYDATES
15 | %
16 | % Outputs:
17 | % X : A matrix of predictor data where each row corresponds to an
18 | % observation (hourly load) and each column corresponds to a variable
19 | % dates : A vector of dates for each observation
20 | % labels: A cell array of strings describing each predictor
21 |
22 |
23 | % Convert Dates into a Numeric Representation
24 | try
25 | dates = data.NumDate;
26 | catch %#ok
27 | dates = datenum(data.Date, 'yyyy-mm-dd HH:MM:SS') + (data.Hour-1)/24;
28 | end
29 | if all(floor(dates)==dates) % true if dates don't include any hour information
30 | dates = dates + (data.Hour-1)/24;
31 | end
32 |
33 |
34 | % Process Holidays
35 | if nargin < 3 || isempty(holidays)
36 | holidays = createHolidayDates(min(dates), max(dates));
37 | else
38 | holidays = datenum(holidays);
39 | end
40 |
41 | % Create Predictors
42 |
43 | % Short term forecasting inputs
44 | % Lagged load inputs
45 | prevDaySameHourLoad = [NaN(24,1); data.SYSLoad(1:end-24)];
46 | prevWeekSameHourLoad = [NaN(168,1); data.SYSLoad(1:end-168)];
47 | prev24HrAveLoad = filter(ones(1,24)/24, 1, data.SYSLoad);
48 |
49 | % Lagged electricity price inputs
50 | prevDaySameHourPrice = [NaN(24,1); data.ElecPrice(1:end-24)];
51 | prevWeekSameHourPrice = [NaN(168,1); data.ElecPrice(1:end-168)];
52 | prev24HrAvePrice = filter(ones(1,24)/24, 1, data.ElecPrice);
53 |
54 | % Lagged fuel price inputs
55 | prevDayNGPrice = [NaN(24,1); data.NGPrice(1:end-24)];
56 | prevWeekAveNGPrice = filter(ones(1,168)/168, 1, data.NGPrice);
57 |
58 | % Date predictors
59 | dayOfWeek = weekday(dates);
60 |
61 | % Non-business days
62 | isWorkingDay = ~ismember(floor(dates),holidays) & ~ismember(dayOfWeek,[1 7]);
63 | %[~,~,isWorkingDay] = createHolidayDates(data.NumDate);
64 |
65 |
66 | if strncmpi(term, 'long', 4);
67 | % Long Term Forecast Predictors
68 | X = [data.DryBulb data.DewPnt daily5dayHighAve daily5dayLowAve data.Hour dayOfWeek isWorkingDay];
69 | labels = {'DryBulb', 'DewPoint', 'Prev5DayHighAve', 'Prev5DayLowAve', 'Hour', 'Weekday', 'IsWorkingDay'};
70 | else
71 | % Short Term
72 | X = [data.DryBulb data.DewPnt data.Hour dayOfWeek isWorkingDay data.SYSLoad prevWeekSameHourLoad prevDaySameHourLoad prev24HrAveLoad...
73 | prevWeekSameHourPrice prevDaySameHourPrice prev24HrAvePrice prevDayNGPrice prevWeekAveNGPrice];
74 | labels = {'DryBulb', 'DewPoint', 'Hour', 'Weekday', 'IsWorkingDay', 'CurrentLoad', 'PrevWeekSameHourLoad', 'prevDaySameHourLoad', 'prev24HrAveLoad'...
75 | 'PrevWeekSameHourPrice', 'prevDaySameHourPrice', 'prev24HrAvePrice', 'prevDayNGPrice', 'prevWeekAveNGPrice'};
76 | end
77 |
78 |
79 | function y = rep24(x)
80 | y = repmat(x(:), 1, 24)';
81 | y = y(:);
82 |
--------------------------------------------------------------------------------
/importData.m:
--------------------------------------------------------------------------------
1 | %% Automate the Data Import Process
2 | % This script imports data from the Zonal hourly spreadsheets provided by
3 | % ISO New England. The folder containing these
4 | % spreadsheets should be specified below. By default it is assumed to be a
5 | % folder called "Data" in the same folder as this script. The data that is
6 | % read in is saved as a MAT-file in the same folder.
7 |
8 | folder = 'Data';
9 | % Example: folder = 'C:\Temp\Data';
10 |
11 | % By default the sheet name is ISONE CA. However, it can easily be changed
12 | % to ME, CT, VT, NH, RI, SEMASS, WCMASS or NEMASSBOST to extract zonal data
13 | sheetname = 'ISONE CA';
14 |
15 | % Import data for 2004
16 | if strcmp(sheetname, 'ISONE CA')
17 | NEData = dataset('XLSFile', sprintf('%s\\2004_smd_hourly.xls',folder,yr), 'Sheet', 'NEPOOL');
18 | else
19 | NEData = dataset('XLSFile', sprintf('%s\\2004_smd_hourly.xls',folder,yr), 'Sheet', sheetname);
20 | end
21 | % Add a column 'Year'
22 | NEData.Year = 2004 * ones(length(NEData),1);
23 |
24 | % Import data for other years
25 | for yr = 2005:2009
26 |
27 | % Read in data into a dataset array
28 | x = dataset('XLSFile', sprintf('%s\\%d_smd_hourly.xls',folder,yr), 'Sheet', sheetname);
29 |
30 | % Add a column 'Year'
31 | x.Year = yr*ones(length(x),1);
32 |
33 | % Concatenate the datasets together
34 | NEData = [NEData; x];
35 | end
36 |
37 | % Calculate numeric date
38 | NEData.NumDate = datenum(NEData.Date, 'mm/dd/yyyy') + (NEData.Hour-1)/24;
39 |
40 | save([folder '\' genvarname(sheetname) '_Data.mat'], 'NEData');
--------------------------------------------------------------------------------
/loadForecast.m:
--------------------------------------------------------------------------------
1 | function y = loadForecast(date, temperature, isHoliday)
2 | % LOADFORECAST performs a day-ahead load forecast using a pre-trained
3 | % Neural-Network or Bagged Regression Tree model
4 | %
5 | % USAGE:
6 | % y = loadForecast(model, date, hour, temperature, isWorkingDay))
7 |
8 | % Process inputs
9 | date = datenum(date);
10 | if date < 7e5 % Convert from Excel numeric date to MATLAB numeric date if necessary
11 | date = x2mdate(date);
12 | end
13 |
14 | % Check if date is a holiday
15 | if iscell(isHoliday)
16 | isHoliday = isHoliday{1};
17 | end
18 | if ischar(isHoliday)
19 | if strcmpi(isHoliday(1),'N')
20 | isWorkingDay = true;
21 | else
22 | isWorkingDay = false;
23 | end
24 | else
25 | isWorkingDay = ~isHoliday;
26 | end
27 | isWorkingDay = logical(isWorkingDay) & ~ismember(weekday(date),[1 7]);
28 |
29 | % Import historical loads from the database
30 | try
31 | data = fetchDBLoadData(date-7, date-1);
32 | catch ME %#ok
33 | % Import historical loads from MAT file
34 | s = load('Data\DBLoadData.mat');
35 | data = s.data;
36 | ind = data.NumDate >= date-7 & floor(data.NumDate) <= date-1;
37 | data.Hour = data.Hour(ind);
38 | data.DryBulb = data.DryBulb(ind);
39 | data.DewPnt = data.DewPnt(ind);
40 | data.SYSLoad = data.SYSLoad(ind);
41 | data.NumDate = data.NumDate(ind);
42 | end
43 | if isempty(data.SYSLoad)
44 | error('Not enough historical data for forecast.');
45 | end
46 |
47 | ave24 = filter(ones(24,1)/24, 1, data.SYSLoad);
48 | loadPredictors = [data.SYSLoad(1:24) data.SYSLoad(end-23:end) ave24(end-23:end)];
49 |
50 | % Create predictor matrix
51 | % Drybulb, Dewpnt, Hour, Day, isWkDay, PrevWeek, PrevDay, Prev24
52 | X = [temperature (1:24)' weekday(date)*ones(24,1) isWorkingDay*ones(24,1) loadPredictors];
53 |
54 | % Load models
55 | try
56 | % Load from a location where updated models can be stored
57 | model1 = load('C:\Temp\Forecaster\NNModel.mat');
58 | model2 = load('C:\Temp\Forecaster\TreeModel.mat');
59 | catch %#ok
60 | model1 = load('Models\NNModel.mat');
61 | model2 = load('Models\TreeModel.mat');
62 | end
63 |
64 | % Perform prediction
65 | try
66 | y1 = sim(model1.net, X')';
67 | catch ME
68 | % For debugging purposes if necessary
69 | save C:\error.mat ME model1 model2
70 | y1 = zeros(24,1);
71 | end
72 | y2 = predict(model2.model, X);
73 |
74 | % Create load profile plot
75 | fig = clf;
76 | if isdeployed
77 | set(fig,'Visible','off')
78 | end
79 | plot([y1 y2]/1e3, '.-');
80 | xlabel('Hour');
81 | ylabel('Load (x1000 MW)');
82 | title(sprintf('Load Forecast Profile for %s', datestr(date)))
83 | grid on;
84 | legend('NeuralNet','BaggedTree','Location','best');
85 | print -dmeta
86 |
87 | y = [y1 y2];
88 |
89 | %#function TreeBagger
90 | %#function CompactTreeBagger
91 | %#function network
92 | %#function network\sim
93 | %#function mae
--------------------------------------------------------------------------------
/trainAndTestNN.m:
--------------------------------------------------------------------------------
1 | function [errors, net] = trainAndTestNN(trainX, trainY, testX, testY, ind, net, baselineErr)
2 | % Train and test a neural network for a given set of training and test
3 | % data. The MAE metric is used to train a feed forward neural network with
4 | % 20 neurons in the hidden layer. The mean absolute error is also reported
5 | % for the test set
6 |
7 | if nargin < 5
8 | ind = 1:size(trainX,2);
9 | numAllPred = 14;
10 | else
11 | assert(max(ind) <= size(trainX,2));
12 | numAllPred = size(trainX,2);
13 | end
14 |
15 | if nargin < 6 || isempty(net)
16 | net = newfit(trainX(:,ind)', trainY', 20);
17 | net.performFcn = 'mae';
18 | net = train(net, trainX(:,ind)', trainY');
19 | end
20 |
21 | predY = sim(net, testX(:,ind)')';
22 | err = testY - predY;
23 | errpct = abs(err)./testY*100;
24 |
25 | errors = [mean(abs(err)) mean(errpct)];
26 |
27 | if nargin > 6
28 | fprintf('\nBaseline error with %2d predictors: MAE = $%0.2f, MAPE = %0.2f%%\n', numAllPred, baselineErr);
29 | end
30 | fprintf('Error with selected %2d predictors: MAE = $%0.2f, MAPE = %0.2f%%\n\n', length(ind), errors);
31 |
32 |
33 |
--------------------------------------------------------------------------------