From 1986effcd5cb0d1d29b878ae0e831e60d473fb77 Mon Sep 17 00:00:00 2001 From: Alinson S Xavier Date: Mon, 3 Feb 2020 10:51:57 -0600 Subject: [PATCH] Update MSS results --- .../stab/ChallengeA/benchmark_baseline.csv | 51 ++++++ benchmark/stab/ChallengeA/benchmark_ml.csv | 151 ++++++++++++++++++ benchmark/stab/ChallengeA/performance.png | Bin 0 -> 69968 bytes docs/figures/benchmark_stab_a.png | 1 + docs/problems.md | 2 +- miplearn/problems/stab.py | 2 +- 6 files changed, 205 insertions(+), 2 deletions(-) create mode 100644 benchmark/stab/ChallengeA/benchmark_baseline.csv create mode 100644 benchmark/stab/ChallengeA/benchmark_ml.csv create mode 100644 benchmark/stab/ChallengeA/performance.png create mode 120000 docs/figures/benchmark_stab_a.png diff --git a/benchmark/stab/ChallengeA/benchmark_baseline.csv b/benchmark/stab/ChallengeA/benchmark_baseline.csv new file mode 100644 index 0000000..4b0a58a --- /dev/null +++ b/benchmark/stab/ChallengeA/benchmark_baseline.csv @@ -0,0 +1,51 @@ +,Solver,Instance,Wallclock Time,Lower Bound,Upper Bound,Gap,Nodes,Relative Lower Bound,Relative Upper Bound,Relative Wallclock Time,Relative Gap,Relative Nodes +0,baseline,0,89.5249240398407,8160.106459602758,8160.106459602758,0.0,50428.0,1.0,1.0,1.0,,1.0 +1,baseline,1,68.46735715866089,8329.665354500348,8329.665354500348,0.0,36735.0,1.0,1.0,1.0,,1.0 +2,baseline,2,131.6971151828766,8247.871141626507,8247.871141626507,0.0,77216.0,1.0,1.0,1.0,,1.0 +3,baseline,3,32.94829607009888,8386.859108879815,8386.859108879815,0.0,17422.0,1.0,1.0,1.0,,1.0 +4,baseline,4,80.09613800048828,8197.045478427175,8197.045478427175,0.0,47823.0,1.0,1.0,1.0,,1.0 +5,baseline,5,70.24885201454163,8184.416683317542,8184.416683317542,0.0,37633.0,1.0,1.0,1.0,,1.0 +6,baseline,6,76.99211096763611,8146.291920190363,8146.291920190363,0.0,38061.0,1.0,1.0,1.0,,1.0 +7,baseline,7,90.94351601600647,8332.628442208696,8332.628442208696,0.0,49185.0,1.0,1.0,1.0,,1.0 +8,baseline,8,91.29237294197083,8189.394992049158,8189.394992049159,1.110576181336875e-16,52509.0,1.0,1.0,1.0,1.0,1.0 +9,baseline,9,59.57663106918335,8264.94306032112,8264.94306032112,0.0,35568.0,1.0,1.0,1.0,,1.0 +10,baseline,10,74.4443690776825,8225.694775199881,8225.694775199881,0.0,38905.0,1.0,1.0,1.0,,1.0 +11,baseline,11,47.8407769203186,8380.21322380759,8380.21322380759,0.0,32029.0,1.0,1.0,1.0,,1.0 +12,baseline,12,40.67424297332764,8335.12040209855,8335.120402098551,2.182319289698426e-16,31346.0,1.0,1.0,1.0,1.0,1.0 +13,baseline,13,82.80278611183167,8180.950128996085,8180.950128996086,1.1117225840912633e-16,45396.0,1.0,1.0,1.0,1.0,1.0 +14,baseline,14,89.99744701385498,8335.244300219336,8335.244300219336,0.0,47528.0,1.0,1.0,1.0,,1.0 +15,baseline,15,72.18464493751526,8281.242353501702,8281.242353501702,0.0,38504.0,1.0,1.0,1.0,,1.0 +16,baseline,16,42.17434501647949,8269.820198565656,8269.820198565656,0.0,23531.0,1.0,1.0,1.0,,1.0 +17,baseline,17,65.91456389427185,8349.788875581982,8349.788875581982,0.0,35240.0,1.0,1.0,1.0,,1.0 +18,baseline,18,49.87329697608948,8354.975512102363,8354.975512102363,0.0,31665.0,1.0,1.0,1.0,,1.0 +19,baseline,19,80.3313570022583,8148.698058722395,8148.698058722395,0.0,48047.0,1.0,1.0,1.0,,1.0 +20,baseline,20,34.744563817977905,8254.22546708772,8254.22546708772,0.0,19831.0,1.0,1.0,1.0,,1.0 +21,baseline,21,40.45663404464722,8337.747084077018,8337.747084077018,0.0,18857.0,1.0,1.0,1.0,,1.0 +22,baseline,22,59.21903705596924,8372.097133312143,8372.097133312143,0.0,37278.0,1.0,1.0,1.0,,1.0 +23,baseline,23,80.84772300720215,8163.180180623385,8163.180180623385,0.0,50384.0,1.0,1.0,1.0,,1.0 +24,baseline,24,79.59622597694397,8251.926305990946,8251.926305990948,2.2043209501583402e-16,45222.0,1.0,1.0,1.0,1.0,1.0 +25,baseline,25,43.39374899864197,8208.77608322561,8208.77608322561,0.0,28242.0,1.0,1.0,1.0,,1.0 +26,baseline,26,73.40401291847229,8263.930518826672,8263.930518826672,0.0,41508.0,1.0,1.0,1.0,,1.0 +27,baseline,27,68.43603801727295,8198.51655526816,8198.51655526816,0.0,34134.0,1.0,1.0,1.0,,1.0 +28,baseline,28,38.52493691444397,8429.328796791307,8429.328796791307,0.0,23191.0,1.0,1.0,1.0,,1.0 +29,baseline,29,63.41107797622681,8471.392061275592,8471.392061275594,2.1472142835423904e-16,36104.0,1.0,1.0,1.0,1.0,1.0 +30,baseline,30,73.6661651134491,8300.292335288888,8300.292335288888,0.0,39931.0,1.0,1.0,1.0,,1.0 +31,baseline,31,34.113643169403076,8472.780799342136,8472.780799342136,0.0,17604.0,1.0,1.0,1.0,,1.0 +32,baseline,32,63.027442932128906,8176.089207977811,8176.089207977811,0.0,35832.0,1.0,1.0,1.0,,1.0 +33,baseline,33,54.692622900009155,8349.997774829048,8349.997774829048,0.0,36893.0,1.0,1.0,1.0,,1.0 +34,baseline,34,73.5447518825531,8228.164027545597,8228.164027545597,0.0,46086.0,1.0,1.0,1.0,,1.0 +35,baseline,35,32.710362911224365,8348.576374334334,8348.576374334334,0.0,17965.0,1.0,1.0,1.0,,1.0 +36,baseline,36,70.76628684997559,8200.622970997243,8200.622970997245,2.2181112459126466e-16,37770.0,1.0,1.0,1.0,1.0,1.0 +37,baseline,37,36.678386926651,8449.787502150532,8449.787502150532,0.0,20885.0,1.0,1.0,1.0,,1.0 +38,baseline,38,86.8393452167511,8323.602064698229,8323.602064698229,0.0,50488.0,1.0,1.0,1.0,,1.0 +39,baseline,39,61.66756081581116,8230.716290385615,8230.716290385615,0.0,34925.0,1.0,1.0,1.0,,1.0 +40,baseline,40,115.80898809432983,8028.769787381955,8028.769787381955,0.0,69443.0,1.0,1.0,1.0,,1.0 +41,baseline,41,59.32002782821655,8214.630250558439,8214.630250558439,0.0,36252.0,1.0,1.0,1.0,,1.0 +42,baseline,42,27.367344856262207,8482.332346423325,8482.332346423327,2.1444448640506932e-16,10937.0,1.0,1.0,1.0,1.0,1.0 +43,baseline,43,42.98321795463562,8350.150643446867,8350.150643446867,0.0,31065.0,1.0,1.0,1.0,,1.0 +44,baseline,44,64.18663907051086,8325.739376420757,8325.739376420757,0.0,37466.0,1.0,1.0,1.0,,1.0 +45,baseline,45,63.78522491455078,8320.79317232281,8320.793440026451,3.217285123971039e-08,38840.0,1.0,1.0,1.0,1.0,1.0 +46,baseline,46,31.455862998962402,8341.756982876166,8341.756982876166,0.0,16130.0,1.0,1.0,1.0,,1.0 +47,baseline,47,39.206948041915894,8206.985832918781,8206.985832918781,0.0,25335.0,1.0,1.0,1.0,,1.0 +48,baseline,48,62.641757011413574,8197.315974091358,8197.315974091358,0.0,54514.0,1.0,1.0,1.0,,1.0 +49,baseline,49,49.18351912498474,8090.681320538064,8090.681320538064,0.0,38800.0,1.0,1.0,1.0,,1.0 diff --git a/benchmark/stab/ChallengeA/benchmark_ml.csv b/benchmark/stab/ChallengeA/benchmark_ml.csv new file mode 100644 index 0000000..4dd3ed0 --- /dev/null +++ b/benchmark/stab/ChallengeA/benchmark_ml.csv @@ -0,0 +1,151 @@ +,Solver,Instance,Wallclock Time,Lower Bound,Upper Bound,Gap,Nodes,Relative Lower Bound,Relative Upper Bound,Relative Wallclock Time,Relative Gap,Relative Nodes +0,baseline,0,89.5249240398407,8160.106459602757,8160.106459602757,0.0,50428.0,0.9999999999999999,1.0,924.2902114943435,,50428.0 +1,baseline,1,68.46735715866089,8329.665354500348,8329.665354500348,0.0,36735.0,1.0,1.0090376984767917,344.32872346548237,,816.3333333333334 +2,baseline,2,131.6971151828766,8247.871141626507,8247.871141626507,0.0,77216.0,1.0,1.0022162274368718,953.573952433317,,3676.9523809523807 +3,baseline,3,32.94829607009888,8386.859108879815,8386.859108879815,0.0,17422.0,1.0,1.0,355.8521179348526,,17422.0 +4,baseline,4,80.09613800048828,8197.045478427175,8197.045478427175,0.0,47823.0,1.0,1.0,311.613064562208,,1707.9642857142858 +5,baseline,5,70.24885201454164,8184.416683317541,8184.416683317541,0.0,37633.0,0.9999999999999999,1.0,525.1624903084369,,4181.444444444444 +6,baseline,6,76.99211096763611,8146.291920190362,8146.291920190362,0.0,38061.0,0.9999999999999999,1.0,769.5512234529302,,38061.0 +7,baseline,7,90.94351601600648,8332.628442208696,8332.628442208696,0.0,49185.0,1.0,1.0048882560944687,958.3075896894786,,49185.0 +8,baseline,8,91.29237294197084,8189.394992049158,8189.394992049159,1.1105761813368749e-16,52509.0,1.0,1.0000000000000002,1809.7036902252514,inf,52509.0 +9,baseline,9,59.57663106918335,8264.94306032112,8264.94306032112,0.0,35568.0,1.0,1.0,592.7777627536799,,35568.0 +10,baseline,10,74.44436907768251,8225.694775199881,8225.694775199881,0.0,38905.0,1.0,1.0023427358501626,585.1124155571589,,3536.818181818182 +11,baseline,11,47.8407769203186,8380.21322380759,8380.21322380759,0.0,32029.0,1.0,1.0,544.8893215589155,,32029.0 +12,baseline,12,40.674242973327644,8335.12040209855,8335.120402098551,2.1823192896984264e-16,31346.0,1.0,1.0019781200731899,345.41153746477056,inf,1362.8695652173913 +13,baseline,13,82.80278611183168,8180.950128996085,8180.950128996086,1.111722584091263e-16,45396.0,1.0,1.001565824091247,307.7965272971074,inf,648.5142857142857 +14,baseline,14,89.99744701385498,8335.244300219336,8335.244300219336,0.0,47528.0,1.0,1.0,770.7049722222789,,6789.714285714285 +15,baseline,15,72.18464493751527,8281.242353501702,8281.242353501702,0.0,38504.0,1.0,1.0,1800.7002920237667,,38504.0 +16,baseline,16,42.17434501647949,8269.820198565656,8269.820198565656,0.0,23531.0,1.0,1.000403224416854,1410.6559487069069,,23531.0 +17,baseline,17,65.91456389427185,8349.788875581982,8349.788875581982,0.0,35240.0,1.0,1.0,1182.0078197481776,,35240.0 +18,baseline,18,49.87329697608948,8354.975512102363,8354.975512102363,0.0,31665.0,1.0,1.0,843.6224093499328,,31665.0 +19,baseline,19,80.3313570022583,8148.698058722395,8148.698058722395,0.0,48047.0,1.0,1.000966789196668,580.6596204121938,,1779.5185185185185 +20,baseline,20,34.744563817977905,8254.22546708772,8254.22546708772,0.0,19831.0,1.0,1.004384894337412,508.78858964332596,,19831.0 +21,baseline,21,40.45663404464722,8337.747084077018,8337.747084077018,0.0,18857.0,1.0,1.0,462.30308297552364,,18857.0 +22,baseline,22,59.21903705596924,8372.097133312143,8372.097133312143,0.0,37278.0,1.0,1.0,514.5235539407097,,1433.7692307692307 +23,baseline,23,80.84772300720216,8163.180180623385,8163.180180623385,0.0,50384.0,1.0,1.0036539041416717,1353.8923034540035,,50384.0 +24,baseline,24,79.59622597694397,8251.926305990946,8251.926305990948,2.20432095015834e-16,45222.0,1.0,1.002542812972684,327.00203830964284,inf,674.955223880597 +25,baseline,25,43.39374899864197,8208.77608322561,8208.77608322561,0.0,28242.0,1.0,1.0,203.83643836690354,,641.8636363636364 +26,baseline,26,73.4040129184723,8263.930518826672,8263.930518826672,0.0,41508.0,1.0,1.0,1158.157296819456,,41508.0 +27,baseline,27,68.43603801727295,8198.51655526816,8198.51655526816,0.0,34134.0,1.0,1.0,465.76709499137564,,2007.8823529411766 +28,baseline,28,38.52493691444397,8429.328796791307,8429.328796791307,0.0,23191.0,1.0,1.0,212.3627067143475,,1449.4375 +29,baseline,29,63.411077976226814,8471.392061275592,8471.392061275594,2.1472142835423904e-16,36104.0,1.0,1.00713405678795,422.9829560183529,inf,1504.3333333333333 +30,baseline,30,73.6661651134491,8300.292335288888,8300.292335288888,0.0,39931.0,1.0,1.0,752.156311010492,,3327.5833333333335 +31,baseline,31,34.113643169403076,8472.780799342136,8472.780799342136,0.0,17604.0,0.9999999880202372,1.000000008626077,605.9064481022414,,17604.0 +32,baseline,32,63.0274429321289,8176.089207977811,8176.089207977811,0.0,35832.0,1.0,1.0,938.911818608021,,35832.0 +33,baseline,33,54.692622900009155,8349.997774829048,8349.997774829048,0.0,36893.0,1.0,1.0,470.66514905927494,,36893.0 +34,baseline,34,73.54475188255309,8228.164027545597,8228.164027545597,0.0,46086.0,1.0,1.0,433.74928744081916,,2425.5789473684213 +35,baseline,35,32.710362911224365,8348.576374334334,8348.576374334334,0.0,17965.0,1.0,1.0,544.8268431962766,,17965.0 +36,baseline,36,70.7662868499756,8200.622970997243,8200.622970997245,2.2181112459126463e-16,37770.0,1.0,1.0039798679142482,716.773814957293,inf,37770.0 +37,baseline,37,36.678386926651,8449.787502150532,8449.787502150532,0.0,20885.0,1.0,1.0,239.07327432143046,,835.4 +38,baseline,38,86.8393452167511,8323.602064698229,8323.602064698229,0.0,50488.0,1.0,1.0,791.2621177625805,,50488.0 +39,baseline,39,61.66756081581116,8230.716290385615,8230.716290385615,0.0,34925.0,1.0,1.0,310.21299967617745,,1343.2692307692307 +40,baseline,40,115.80898809432985,8028.769787381955,8028.769787381955,0.0,69443.0,1.0,1.0059686353257602,962.877706084664,,69443.0 +41,baseline,41,59.320027828216546,8214.630250558439,8214.630250558439,0.0,36252.0,1.0,1.0,279.402791487412,,2132.470588235294 +42,baseline,42,27.36734485626221,8482.332346423325,8482.332346423327,2.1444448640506927e-16,10937.0,1.0,1.0,296.90942199552,1.0,10937.0 +43,baseline,43,42.98321795463562,8350.150643446867,8350.150643446867,0.0,31065.0,1.0,1.0,786.6613272710613,,31065.0 +44,baseline,44,64.18663907051085,8325.739376420757,8325.739376420757,0.0,37466.0,1.0,1.0,601.5284689994793,,37466.0 +45,baseline,45,63.78522491455078,8320.793172322808,8320.793440026451,3.2172851239710385e-08,38840.0,0.9999999999999998,1.0000000321728513,716.7763545319855,inf,38840.0 +46,baseline,46,31.4558629989624,8341.756982876166,8341.756982876166,0.0,16130.0,1.0,1.0,613.653265116279,,16130.0 +47,baseline,47,39.20694804191589,8206.985832918781,8206.985832918781,0.0,25335.0,1.0,1.0,280.93451131197753,,25335.0 +48,baseline,48,62.641757011413574,8197.315974091358,8197.315974091358,0.0,54514.0,1.0,1.0073005569898068,261.05295308194985,,746.7671232876712 +49,baseline,49,49.18351912498474,8090.681320538064,8090.681320538064,0.0,38800.0,1.0,1.0026687299831225,375.8371656618988,,38800.0 +50,ml-exact,0,34.49193096160889,8160.106459602758,8160.106459602758,0.0,32951.0,1.0,1.0000000000000002,356.1081397753119,,32951.0 +51,ml-exact,1,39.43942403793335,8329.665354500348,8329.665354500348,0.0,33716.0,1.0,1.0090376984767917,198.34454105955817,,749.2444444444444 +52,ml-exact,2,54.0330810546875,8247.871141626507,8247.871141626507,0.0,48098.0,1.0,1.0022162274368718,391.2351351957892,,2290.3809523809523 +53,ml-exact,3,15.311645030975342,8386.859108879815,8386.859108879815,0.0,10140.0,1.0,1.0,165.37065533668084,,10140.0 +54,ml-exact,4,24.112047910690308,8197.045478427175,8197.045478427175,0.0,32151.0,1.0,1.0,93.80763330031203,,1148.25 +55,ml-exact,5,33.69559407234192,8184.416683317542,8184.416683317542,0.0,31637.0,1.0,1.0000000000000002,251.89966224345207,,3515.222222222222 +56,ml-exact,6,25.395578861236572,8146.291920190363,8146.291920190363,0.0,18684.0,1.0,1.0000000000000002,253.83378293361804,,18684.0 +57,ml-exact,7,45.65329885482788,8332.628442208696,8332.628442208696,0.0,34261.0,1.0,1.0048882560944687,481.0667621344588,,34261.0 +58,ml-exact,8,45.959444999694824,8189.394992049158,8189.394992049158,0.0,32915.0,1.0,1.0,911.0616203340486,,32915.0 +59,ml-exact,9,27.292019844055176,8264.94306032112,8264.94306032112,0.0,22256.0,1.0,1.0,271.551146378204,,22256.0 +60,ml-exact,10,33.28360414505005,8225.694775199881,8225.694775199883,2.2113504734336021e-16,32743.0,1.0,1.0023427358501629,261.6000412259086,inf,2976.6363636363635 +61,ml-exact,11,13.287060976028442,8380.21322380759,8380.21322380759,0.0,15760.0,1.0,1.0,151.33486759210984,,15760.0 +62,ml-exact,12,30.385483980178833,8335.12040209855,8335.12040209855,0.0,26800.0,1.0,1.0019781200731896,258.03791222585767,,1165.2173913043478 +63,ml-exact,13,53.78090000152588,8180.950128996085,8180.950128996085,0.0,38849.0,1.0,1.0015658240912468,199.91566748763452,,554.9857142857143 +64,ml-exact,14,32.64224600791931,8335.244300219336,8335.244300219336,0.0,30763.0,1.0,1.0,279.53616616406106,,4394.714285714285 +65,ml-exact,15,33.97071599960327,8281.242353501702,8281.242353501702,0.0,30903.0,1.0,1.0,847.425075979707,,30903.0 +66,ml-exact,16,34.40068793296814,8269.820198565656,8269.820198565656,0.0,25773.0,1.0,1.000403224416854,1150.6411078414953,,25773.0 +67,ml-exact,17,29.94601798057556,8349.788875581982,8349.788875581982,0.0,26524.0,1.0,1.0,537.0046516599328,,26524.0 +68,ml-exact,18,26.21188998222351,8354.975512102363,8354.975512102363,0.0,23595.0,1.0,1.0,443.3823132050057,,23595.0 +69,ml-exact,19,44.91053318977356,8148.698058722395,8148.698058722396,1.1161227170509796e-16,36233.0,1.0,1.0009667891966683,324.6270712662061,inf,1341.962962962963 +70,ml-exact,20,24.929107904434204,8254.22546708772,8254.225467087721,2.20370695082023e-16,19171.0,1.0,1.0043848943374123,365.0541051029243,inf,19171.0 +71,ml-exact,21,23.808892011642456,8337.747084077018,8337.74708407702,2.1816317827865812e-16,16213.0,1.0,1.0000000000000002,272.0672255399839,inf,16213.0 +72,ml-exact,22,29.496449947357178,8372.097133312143,8372.097133312145,2.1726807209488663e-16,23405.0,1.0,1.0000000000000002,256.27938261145164,inf,900.1923076923077 +73,ml-exact,23,54.53324818611145,8163.180180623385,8163.180180623385,0.0,44205.0,1.0,1.0036539041416717,913.2247916857979,,44205.0 +74,ml-exact,24,35.66223120689392,8251.926305990946,8251.926305990948,2.2043209501583402e-16,30816.0,1.0,1.002542812972684,146.50973902584275,inf,459.94029850746267 +75,ml-exact,25,29.14737296104431,8208.77608322561,8208.776083225612,2.2159081757180675e-16,25610.0,1.0,1.0000000000000002,136.9159574646799,inf,582.0454545454545 +76,ml-exact,26,27.671333074569702,8263.930518826672,8263.930518826672,0.0,19654.0,1.0,1.0,436.59406398705966,,19654.0 +77,ml-exact,27,33.428922176361084,8198.51655526816,8198.51655526816,0.0,34427.0,1.0,1.0,227.5130533834623,,2025.1176470588234 +78,ml-exact,28,26.386518955230713,8429.328796791307,8429.328796791307,0.0,21051.0,1.0,1.0,145.45157072019325,,1315.6875 +79,ml-exact,29,32.452534914016724,8471.392061275592,8471.392061275594,2.1472142835423904e-16,25241.0,1.0,1.00713405678795,216.47430679803114,inf,1051.7083333333333 +80,ml-exact,30,33.65191102027893,8300.292335288888,8300.292335288888,0.0,27290.0,1.0,1.0,343.59732466710483,,2274.1666666666665 +81,ml-exact,31,26.8163058757782,8472.780900844042,8472.780900844042,0.0,17085.0,1.0,1.00000002060584,476.29543885799944,,17085.0 +82,ml-exact,32,27.298824071884155,8176.089207977811,8176.089207977811,0.0,21127.0,1.0,1.0,406.66711773146375,,21127.0 +83,ml-exact,33,27.07152795791626,8349.997774829048,8349.997774829048,0.0,20768.0,1.0,1.0,232.96788608711708,,20768.0 +84,ml-exact,34,51.8715980052948,8228.164027545597,8228.164027545597,0.0,42602.0,1.0,1.0,305.92622991159624,,2242.2105263157896 +85,ml-exact,35,26.559547185897827,8348.576374334334,8348.576374334334,0.0,15315.0,1.0,1.0,442.37828511067517,,15315.0 +86,ml-exact,36,42.17573404312134,8200.622970997243,8200.622970997245,2.2181112459126466e-16,32284.0,1.0,1.0039798679142482,427.1873392594525,inf,32284.0 +87,ml-exact,37,20.249451875686646,8449.787502150532,8449.787502150532,0.0,13815.0,1.0,1.0,131.9878862943405,,552.6 +88,ml-exact,38,34.309616804122925,8323.602064698229,8323.602064698229,0.0,31546.0,1.0,1.0,312.62211828396147,,31546.0 +89,ml-exact,39,28.144772052764893,8230.716290385615,8230.716290385615,0.0,22759.0,1.0,1.0,141.57969032969933,,875.3461538461538 +90,ml-exact,40,54.61736702919006,8028.769787381955,8028.769787381955,0.0,46343.0,1.0,1.0059686353257602,454.1084931561159,,46343.0 +91,ml-exact,41,30.99381184577942,8214.630250558439,8214.630250558439,0.0,28492.0,1.0,1.0,145.98370677815547,,1676.0 +92,ml-exact,42,19.046553134918213,8482.332346423325,8482.332346423327,2.1444448640506932e-16,9292.0,1.0,1.0,206.6368188802036,1.0000000000000002,9292.0 +93,ml-exact,43,29.105360984802246,8350.150643446867,8350.150643446867,0.0,24245.0,1.0,1.0,532.674448133975,,24245.0 +94,ml-exact,44,28.813607215881348,8325.739376420757,8325.739376420757,0.0,22941.0,1.0,1.0,270.0282377440192,,22941.0 +95,ml-exact,45,39.90794801712036,8320.79317232281,8320.79317232281,0.0,33304.0,1.0,1.0,448.459240127851,,33304.0 +96,ml-exact,46,23.966022968292236,8341.756982876166,8341.756982876166,0.0,16789.0,1.0,1.0,467.53853953488374,,16789.0 +97,ml-exact,47,27.642159938812256,8206.985832918781,8206.985832918781,0.0,24637.0,1.0,1.0,198.0678701569822,,24637.0 +98,ml-exact,48,33.94082999229431,8197.315974091358,8197.315974091358,0.0,33963.0,1.0,1.0073005569898068,141.44484960609344,,465.24657534246575 +99,ml-exact,49,37.428488969802856,8090.681320538064,8090.681320538064,0.0,39891.0,1.0,1.0026687299831225,286.0107910064622,,39891.0 +100,ml-heuristic,0,0.09685802459716797,8160.106459602758,8160.106459602758,0.0,1.0,1.0,1.0000000000000002,1.0,,1.0 +101,ml-heuristic,1,0.19884300231933594,8255.05862375065,8255.05862375065,0.0,45.0,0.9910432499296759,1.0,1.0,,1.0 +102,ml-heuristic,2,0.1381089687347412,8229.632404496291,8229.632404496293,2.210292409357245e-16,21.0,0.9977886733658864,1.0,1.0,inf,1.0 +103,ml-heuristic,3,0.0925898551940918,8386.859108879815,8386.859108879815,0.0,1.0,1.0,1.0,1.0,,1.0 +104,ml-heuristic,4,0.2570371627807617,8197.045478427175,8197.045478427175,0.0,28.0,1.0,1.0,1.0,,1.0 +105,ml-heuristic,5,0.13376593589782715,8184.416683317542,8184.416683317542,0.0,9.0,1.0,1.0000000000000002,1.0,,1.0 +106,ml-heuristic,6,0.10004806518554688,8146.291920190363,8146.291920190363,0.0,1.0,1.0,1.0000000000000002,1.0,,1.0 +107,ml-heuristic,7,0.09490013122558594,8292.094560437725,8292.094560437725,0.0,1.0,0.9951355227162599,1.0,1.0,,1.0 +108,ml-heuristic,8,0.0504460334777832,8189.394992049158,8189.39499204916,2.22115236267375e-16,1.0,1.0,1.0000000000000002,1.0,inf,1.0 +109,ml-heuristic,9,0.10050415992736816,8264.94306032112,8265.728238597903,9.500105095127722e-05,1.0,1.0,1.0000950010509513,1.0,inf,1.0 +110,ml-heuristic,10,0.12723088264465332,8206.469185635438,8206.469185635438,0.0,11.0,0.9976627397332555,1.0,1.0,,1.0 +111,ml-heuristic,11,0.087799072265625,8380.21322380759,8380.213223807592,2.1705765175261136e-16,1.0,1.0,1.0000000000000002,1.0,inf,1.0 +112,ml-heuristic,12,0.11775588989257812,8318.665083714313,8318.665083714313,0.0,23.0,0.9980257851608126,1.0,1.0,,1.0 +113,ml-heuristic,13,0.26901793479919434,8168.160226931591,8168.160226931591,0.0,70.0,0.9984366238807443,1.0,1.0,,1.0 +114,ml-heuristic,14,0.11677289009094238,8335.244300219336,8335.244300219336,0.0,7.0,1.0,1.0,1.0,,1.0 +115,ml-heuristic,15,0.040086984634399414,8281.242353501702,8281.242353501702,0.0,1.0,1.0,1.0,1.0,,1.0 +116,ml-heuristic,16,0.029896974563598633,8266.48694918614,8266.48694918614,0.0,1.0,0.9995969381075426,1.0,1.0,,1.0 +117,ml-heuristic,17,0.05576491355895996,8349.788875581982,8349.788875581982,0.0,1.0,1.0,1.0,1.0,,1.0 +118,ml-heuristic,18,0.059118032455444336,8354.975512102363,8354.975512102363,0.0,1.0,1.0,1.0,1.0,,1.0 +119,ml-heuristic,19,0.13834500312805176,8140.8275945520445,8140.8275945520445,0.0,27.0,0.9990341445819156,1.0,1.0,,1.0 +120,ml-heuristic,20,0.06828880310058594,8218.189574160206,8218.189574160206,0.0,1.0,0.9956342490193416,1.0,1.0,,1.0 +121,ml-heuristic,21,0.08751106262207031,8337.747084077018,8337.747084077018,0.0,1.0,1.0,1.0,1.0,,1.0 +122,ml-heuristic,22,0.11509490013122559,8372.097133312143,8372.097133312143,0.0,26.0,1.0,1.0,1.0,,1.0 +123,ml-heuristic,23,0.05971503257751465,8133.46129271979,8133.46129271979,0.0,1.0,0.9963593982680748,1.0,1.0,,1.0 +124,ml-heuristic,24,0.24341201782226562,8230.99642151221,8230.99642151221,0.0,67.0,0.9974636365252632,1.0,1.0,,1.0 +125,ml-heuristic,25,0.21288514137268066,8208.77608322561,8208.77608322561,0.0,44.0,1.0,1.0,1.0,,1.0 +126,ml-heuristic,26,0.06338000297546387,8263.930518826672,8263.930518826672,0.0,1.0,1.0,1.0,1.0,,1.0 +127,ml-heuristic,27,0.14693188667297363,8198.51655526816,8198.51655526816,0.0,17.0,1.0,1.0,1.0,,1.0 +128,ml-heuristic,28,0.1814110279083252,8429.328796791307,8429.328796791307,0.0,16.0,1.0,1.0,1.0,,1.0 +129,ml-heuristic,29,0.14991402626037598,8411.384764698932,8411.384764698932,0.0,24.0,0.99291647746408,1.0,1.0,,1.0 +130,ml-heuristic,30,0.09793996810913086,8300.292335288888,8300.292335288888,0.0,12.0,1.0,1.0,1.0,,1.0 +131,ml-heuristic,31,0.05630183219909668,8472.780726255278,8472.780726255278,0.0,1.0,0.9999999793941604,1.0,1.0,,1.0 +132,ml-heuristic,32,0.06712818145751953,8176.089207977811,8176.089207977811,0.0,1.0,1.0,1.0,1.0,,1.0 +133,ml-heuristic,33,0.11620283126831055,8349.997774829048,8349.997774829048,0.0,1.0,1.0,1.0,1.0,,1.0 +134,ml-heuristic,34,0.1695559024810791,8228.164027545597,8228.164027545597,0.0,19.0,1.0,1.0,1.0,,1.0 +135,ml-heuristic,35,0.060038089752197266,8348.576374334334,8348.576374334334,0.0,1.0,1.0,1.0,1.0,,1.0 +136,ml-heuristic,36,0.09872889518737793,8168.114952378382,8168.114952378382,0.0,1.0,0.9960359086457419,1.0,1.0,,1.0 +137,ml-heuristic,37,0.15341901779174805,8449.787502150532,8449.787502150532,0.0,25.0,1.0,1.0,1.0,,1.0 +138,ml-heuristic,38,0.10974788665771484,8323.602064698229,8323.602064698229,0.0,1.0,1.0,1.0,1.0,,1.0 +139,ml-heuristic,39,0.1987910270690918,8230.716290385615,8230.716290385615,0.0,26.0,1.0,1.0,1.0,,1.0 +140,ml-heuristic,40,0.12027382850646973,7981.13331314949,7981.13331314949,0.0,1.0,0.9940667779131829,1.0,1.0,,1.0 +141,ml-heuristic,41,0.2123100757598877,8214.630250558439,8214.630250558439,0.0,17.0,1.0,1.0,1.0,,1.0 +142,ml-heuristic,42,0.09217405319213867,8482.332346423325,8482.332346423327,2.1444448640506932e-16,1.0,1.0,1.0,1.0,1.0000000000000002,1.0 +143,ml-heuristic,43,0.05464005470275879,8350.150643446867,8350.150643446867,0.0,1.0,1.0,1.0,1.0,,1.0 +144,ml-heuristic,44,0.10670590400695801,8325.739376420757,8325.739376420757,0.0,1.0,1.0,1.0,1.0,,1.0 +145,ml-heuristic,45,0.0889890193939209,8320.79317232281,8320.79317232281,0.0,1.0,1.0,1.0,1.0,,1.0 +146,ml-heuristic,46,0.05125999450683594,8341.756982876166,8341.756982876166,0.0,1.0,1.0,1.0,1.0,,1.0 +147,ml-heuristic,47,0.13955903053283691,8206.985832918781,8206.985832918781,0.0,1.0,1.0,1.0,1.0,,1.0 +148,ml-heuristic,48,0.2399580478668213,8137.904736782855,8137.904736782855,0.0,73.0,0.9927523548566044,1.0,1.0,,1.0 +149,ml-heuristic,49,0.13086390495300293,8069.146946144667,8069.146946144667,0.0,1.0,0.9973383731801755,1.0,1.0,,1.0 diff --git a/benchmark/stab/ChallengeA/performance.png b/benchmark/stab/ChallengeA/performance.png new file mode 100644 index 0000000000000000000000000000000000000000..d1cb466c438ac36260b4396caa42fa0370d6baba GIT binary patch literal 69968 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 u$gS!kN(*Vb`dhTCX^5)zC literal 0 HcmV?d00001 diff --git a/docs/figures/benchmark_stab_a.png b/docs/figures/benchmark_stab_a.png new file mode 120000 index 0000000..073c5ec --- /dev/null +++ b/docs/figures/benchmark_stab_a.png @@ -0,0 +1 @@ +../../benchmark/stab/ChallengeA/performance.png \ No newline at end of file diff --git a/docs/problems.md b/docs/problems.md index f792c48..d4cd016 100644 --- a/docs/problems.md +++ b/docs/problems.md @@ -36,7 +36,7 @@ The class `MaxWeightStableSetGenerator` can be used to generate random instances * Fixed random Erdős-Rényi graph $G_{n,p}$ with $n=200$ and $p=5\%$ * Random vertex weights $w_v \sim U(100, 150)$ -* 300 training instances, 50 test instances +* 500 training instances, 50 test instances ```python MaxWeightStableSetGenerator(w=uniform(loc=100., scale=50.), diff --git a/miplearn/problems/stab.py b/miplearn/problems/stab.py index 8bfd504..536f4e3 100644 --- a/miplearn/problems/stab.py +++ b/miplearn/problems/stab.py @@ -14,7 +14,7 @@ from scipy.stats.distributions import rv_frozen class ChallengeA: def __init__(self, seed=42, - n_training_instances=300, + n_training_instances=500, n_test_instances=50, ):