Nueva versión de: lp_solve 5.5.0.11

optmizationAcaba de aparecer una nueva versión de lp_solve, se trata de la versión 5.5.0.11. Recuerda que aunque el grupo del proyecto, se encuentra en YahooTechGroups, los ficheros de descarga de lp_solve están alojados en Sourceforge.

También existe una guía de referencia de lp_solve. A continuación os copio las novedades de esta versión:

– Fixed a problem in presolve. Sometimes an array-index-out-of-bounds error occured.
– Added a makefile for Linux.
– When adding constraints, in some rare cases a memory overrun could occur resulting in a crash.
– add_constraintex with count=0 and row=colno=NULL gave a protection error. several XLIs didn’t work anymore because of this.
– set_constr_type sometimes set wrong signs for the coefficient matrix when add_rowmode is on.
– presolve did an unnecessary extra loop. Also a test is added to stop presolve when very few changes are done.
– for very large models, a request of much more memory than is reasonable could occur. Fixed.
– Modified LINDO XLI to read keywords also not at column 1 and to accept an empty objective function. Previously this wat not possible.
– In some rare cases, numbers very close to their integer values (for example 11276.999999999998) were truncated to their ceiling value (for example 11276) instead of rounded (for example 11277).
– Solved a problem with presolve with an all-int constraint.
– Solved a problem with presolve coldominate
– Added stronger checking of the MPS format. Fields that must be blank are now also tested accordingly so that if data is there that it is not ignored as before.
– FREE MPS format was not read ok if row/column name were all numbers or a FR, MI, PL, BV bound was defined. Fixed.
– The lp-format now also supports a bin(ary) section to define binary variables.
When an integer model is aborted before the most optimal solution is found via break at first or break at value, solve returned OPTIMAL (0) instead of SUBOPTIMAL (1). This is now corrected. Problem occured in version 5.5.0.10
– Fixed a problem with del_constraint. Constraints names were not shifted and reported variable result was incorrect.
– read_XLI failed with MathProg if datamodel was provided with «» when there is no datamodel. NULL was expected in the past. «» is now also accepted.
– Added an XLI to read Xpress lp files.
– Added routines MPS_writefileex, write_lpex.
– Added options -o0, -o1 to lp_solve command driven program to specify if objective is in basis or not.
– Added new information in the reference guide:
– Linear programming basics
– Presolve
– Xpress lp files

Ahora como siempre, me toca actualizar las rutinas de optimización del proyecto Rutas y de Grafos.

lpActualización (03/01/2008)
He detectado un bug en una función de la API. Al parecer al leer un modelo en formato .lp, éste se transforma (por ignorar algunos datos) en un modelo que suele ser infactible. A mí me ocurría con algunos modelos MILP para el problema VRPTW.
Este error ha sido confirmado por otros y aparece en una nota del grupo de discusión. Puedes descargarte los ficheros corregidos de la web de Peter Notebaert. Próximamente aparecerá una nueva versión en Sourceforge.

He probado los ficheros de Peter, y mi error ha sido corregido, pero habrá que estar atentos a posibles nuevos fallos.

Actualización (04/01/2008)

Según anuncia Peter, ya están en sourceforge los ficheros corregidos.

An update of following files was posted on sourceforge:lp_solve_5.5.0.11_exe.tar.gz
lp_solve_5.5.0.11_dev.tar.gz
lp_solve_5.5.0.11_source.tar.gz
lp_solve_5.5.0.11_exe.zip
lp_solve_5.5.0.11_dev.zip

This also in release 5.5.0.11
So the old files are overwritten with this fix.

This was done to solve a problem with the lp-parser in the version
posted on 27/12/2007
The release date of version 5.5.0.11 is changed to 04/01/2008

If you have downloaded these files before 04/01/2008, please download
them again to fix this problem.

Peter

Actualización (20/03/2008)
En el sitio web del proyecto se acaba de publicar la versión 5.5.0.12 del solver.