Apache OpenOffice (AOO) Bugzilla – Full Text Issue Listing |
Summary: | Replace lp_solve for Calc's linear solver | ||||||
---|---|---|---|---|---|---|---|
Product: | Calc | Reporter: | niklas.nebel | ||||
Component: | code | Assignee: | Andre <awf.aoo> | ||||
Status: | CLOSED FIXED | QA Contact: | issues@sc <issues> | ||||
Severity: | Critical | ||||||
Priority: | P2 | CC: | awf.aoo, binbjguo, doudou1976, issues, pfg, polo8495, rb.henschel | ||||
Version: | OOO340m0 | Flags: | doudou1976:
3.4_release_blocker?
|
||||
Target Milestone: | --- | ||||||
Hardware: | All | ||||||
OS: | All | ||||||
Issue Type: | PATCH | Latest Confirmation in: | --- | ||||
Developer Difficulty: | --- | ||||||
Attachments: |
|
Description
niklas.nebel
2011-06-11 15:30:42 UTC
Can you please point me to the license of CoinMP? It's CPL: https://projects.coin-or.org/svn/CoinMP/trunk/CoinMP/LICENSE, and it includes EPL code from other coin-or projects. Whatever that makes for the combination. According to the OOOWiki, Andre appears to be working on this so I reassigned the issue to him. The current status is this: -IBM has some ownership over the COIN-OR code so Rob is trying to see if we can get some improvement on the license. This will probably take some time still. - I was asked by a COIN-OR guy in private about the chosen library: "It is just a wrapper around OSI and does have a couple of bugs in it too." So we should probably check OSI, which is a general interface for many solvers. http://www.coin-or.org/projects/Osi.xml BTW, the author of the proof of concept mentioned: "In addition to Clp, the Cbc project is needed for the integer constraints that the existing, lp_solve-based component supports." The main problem with CoinMP as well as OSI is the missing documentation. Without it I can not do much more than to apply the patch and run some tests. So, any information about the whereabouts of documentation is very welcome. Regarding the Cbc library: the patch already uses integer constraints for variables. Am I missing something? Unfortunately the few OSI documentation is in the code itself (doxygen). This slides give a minimal introduction: http://www.coin-or.org/Presentations/CORSINFORMSWorkshop04/coin-osi.pdf Concerning the OR math, mixed integer programming can be done with some tricks by traditional LP methods (Branch and Price?), but I think the CBC code uses more advanced methods. If CLP handles basic MIP we could do with that for now. I understand the OSI interface lets you choose several solvers, some free, some commercial. Thanks for the link. Maybe that is enough to understand the underlying principles of OSI. Regarding integer constraints: CoinMP already contains Cbc and, as far as I understand it, uses it automatically when necessary and possible. In OSI you probably have to make this decision explicitly. (In reply to comment #6) > Thanks for the link. Maybe that is enough to understand the underlying > principles of OSI. > > Regarding integer constraints: CoinMP already contains Cbc and, as far as I > understand it, uses it automatically when necessary and possible. In OSI you > probably have to make this decision explicitly. Everything has it's pros and it's cons: CoinMP is easier to use but OSI is more flexible. Professional users may want to specify using other solvers (the commercial PLEX code is said to be the top of the line nowadays), and there's also GLPK (LGPL'd). On FreeBSD we have packages for both CLP (using BLAS/LAPACK) and CoinMP (much less optimized). Also be aware that the CLP and CBC used in coinMP are very updated. My suggestion is to try CLP (OSI is included) and if afterwards you still want to go CoinMP I will respect that, of course. Here is another OSI document: http://dimacs.rutgers.edu/Workshops/COIN/slides/saltzman.pdf and the doxygen documentation: http://www.coin-or.org/Doxygen/Osi/annotated.html Checked in the changes in two parts. The patch at SVN revision 1233908. The second part is about adding CoinMP into the build system. Checked in at revision 1233909. CoinMP can be found at ext_libraries/coinmp. It is used in main/sccomp. Added the missing CoinMP tar ball. SVN revision is 1233971. Using the original tarball from the CoinMP web site. The old one had the .svn directories included. SVN revision is 1234787 It would be good to have --with-system-coinmp as with other modules. Verified against rev. 1236487,Solver function works in svn rev. Resolved. This is just for book keeping: I am using a different email address now. verified on rev.1350879, Solve work fine now Verified on Aoo_Trunk_20121109.1800 rev 1407366, pass close it. |