├── 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 | --------------------------------------------------------------------------------