1 / 23

Coin LP A Status Report

Coin LP A Status Report. John Forrest IBM Research. Goals for CLP.

sabine
Download Presentation

Coin LP A Status Report

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Coin LP A Status Report John Forrest IBM Research

  2. Goals for CLP • "... and my target would be to provide a solver which is no slower than a factor of 5 when compared to the best available simplex solvers. I would not aim for much better than that as the coding can get ugly." (April 26, 2002) • make it available under the Common Public License • have the solver be as reliable as any commercially available solver • reasonably modular • first release July 30, 2002

  3. Features • Dual Simplex, Primal Simplex - Quadratic to come. • Single phase method using weighted components (but not using heuristic to make more efficient (later)). • Abstract class for pivot choice - relatively easy for user to create own. • Abstract class for matrix storage - easy for user to create own - could even do column generation or dynamic matrices. • Network matrix storage and factorization. • May extend to ClpInterior in future.

  4. Speed • Abstract matrix class and abstract pivot class make for slower code (especially in Primal). • Abstract matrix class means that there can not be tight coupling for network problems - but there is flexibility. • Aimed at large sparse problems - never touch a zero! • Only version 0.98.5 • Needs more pricing flexibility in Primal Osl Osl network Clp Clp network Iterations 10057 13747 3293 3524 Time 11.81 0.27 28.89 10.26

  5. Changes since first release • Presolve (Vernon Austel - tweaked by me). Now moved to Coin so other solvers can use. • Aggressive use of perturbation • Tuning and advanced solutions, especially for large problems • Still no partial pricing in primal • OSL withdrawn from marketing on Tuesday • All numbers based on runs done on 1.7Ghz ThinkPad Linux gcc 3.2 • clp "file" or • clp "file" -primalsimplex

  6. Netlib comparisons (Primal)

  7. Netlib comparisons (Dual)

  8. First Mittelmann test set (without nug15 and qap15) Rows Columns Elements baxter 27441 15128 95971 dano3mip 3202 13873 79655 dbir2 18906 27355 1139637 dfl001 6071 12230 35632 fit2p 3000 13525 50284 fome12 24284 48920 145528 gen4 1537 4297 107102 ken-18 105127 154699 358171 l30 2701 15380 51169 lp22 2958 13434 65560 mod2 34774 31728 165129 nsct2 23003 14981 675156 nug12 3192 8856 38304 nw04 36 87482 636666 nw14 73 123409 904910 osa-60 10280 232966 1397793 pds-20 33874 105728 230200 pds-40 66844 212859 462128 pilot87 2030 4883 73152 qap12 3192 8856 38304 rlfprim 58866 8052 265927 route 20894 23923 187686 self 960 7364 1148845 seymour 4944 1372 33549 sgpf5y6 246077 308634 828070 storm-125 66185 157496 418321 watson_1 201155 383927 1052028 world 34506 32734 164470

  9. Importance of Presolve • Modern modelers expect Presolve to do a lot of work • Capability and speed important in Presolve • Problem sgpf5y6 looks large • 246,077 rows • 308,634 columns • 828,070 elements glpk osl clp cplex Rows 143546 19499 19499 19499 Columns 170888 81995 39029 39020 Elements 465756 256439 109256 109247 Time 2869 50.7 55.0 4.5 Pre/Post time ? 15.3 36.4! 2.6

  10. Glpk / Clp Osl / Clp Primal comparisons on Mittelmann test set 1 (28 problems)

  11. Glpk **/ Clp Osl / Clp Dual comparisons on Mittelmann test set 1 (28 problems)

  12. rows columns nonzeros Large ? small? Primal ? Dual ? pilot87 2030 4883 73152 ken-18 105127 154699 358171 iters glpk iters osl iters clp iters cplex pilot 87 (P) 6512 49 6679 22.9 7045 41.8 9746 29.8 (D) dual 11257 54.8 9112 43.7 10532 39.5 ken-18 (P) 106319 6842 225468 544.4 86136 249.8 108988 122.4 (D) dual 11257 54.8 9112 43.7 49781 23.4

  13. Primal Dual Comparisons on Mittelmann test set 1 (Osl against Clp)

  14. To do with Clp • Investigate Primal Simplex performance issues • Improve performance on small problems • Investigate dual infeasibilities after postsolve • More stress testing • Go to Version 1.00 and declare victory • ... then back to Simple Branch and Bound

  15. To do with Clp • Investigate Primal Simplex performance issues • Improve performance on small problems • Investigate dual infeasibilities after postsolve • More stress testing • Go to Version 1.00 and declare victory • ... then back to Simple Branch and Bound • "... and my target would be to provide a solver which is no slower than a factor of 5 when compared to the best available simplex solvers." • ... has Clp met its goals?

  16. Primal Dual Cplex/ Clp comparisons on Mittelmann test set 1 (28 problems)

  17. Second Mittelmann test set (includes nug15,20 and qap15) Rows Columns Elements dano3mip 3202 13873 79655 dbic1 43200 183235 1038761 dfl001 6071 12230 35632 fome12 24284 48920 145528 fome13 48568 97840 285056 gen4 1537 4297 107102 ken-18 105127 154699 358171 l30 2701 15380 51169 lp22 2958 13434 65560 mod2 34774 31728 165129 neos 479119 36786 1047675 neos1 131581 1892 468009 neos2 132568 1560 552519 neos3 132568 1560 552519 nsct2 23003 14981 675156 nug15 6330 22275 94950 nug20 15240 72600 304800 pds-40 66844 212859 462128 pds-100 156243 505360 1086785 qap12 3192 8856 38304 qap15 6330 22275 94950 rail4284 4284 1092610 11279748 rlfprim 58866 8052 265927 sgpf5y6 246077 308634 828070 storm-125 66185 157496 418321 storm-1000 528185 1259121 3341696 watson_2 352013 671861 1841028 world 34506 32734 164470

  18. Primal Cplex - Clp comparison (Second Mittelmann test set)

  19. Dual Cplex - Clp comparison (Second Mittelmann test set)

  20. rows columns nonzeros neos3 132568 1560 552519 Large ? small? Primal ? Dual ? nug20 15240 72600 304800 stormG2_1000 528185 1259121 3341696 watson_2 352013 671861 1841028 Cplex primal Cplex dual Clp primal Clp dual iters time iters time iters time iters time neos3 89186 7446 42805 6930 5726 322 5501 355 nug20 long long 200049 17776 204833 17831 stormG2 824851 16538 582408 3180 1344966 47586 557884 2741 watson 193052 1486 173247 307 471995 6609 203932 267

  21. Primal Cplex - Clp comparison (problems added to test set)

  22. Dual Cplex - Clp comparison (problems added to test set)

  23. To do with Clp • Investigate Primal Simplex performance issues • More stress testing • Still more to be done on Presolve (and speed) • Improve performance on small problems • Investigate dual infeasibilities after postsolve • Go to Version 1.00 and declare victory • ... then back to Simple Branch and Bound • "... and my target would be to provide a solver which is no slower than a factor of 5 when compared to the best available simplex solvers." • ... has Clp met its goals?

More Related