⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 changelog

📁 利用c语言编写
💻
📖 第 1 页 / 共 3 页
字号:
Changed after first review for comp.sources.reviewed:- Bug with row singletons and assignment fixed.- Makefile fixed.- Formatted man page (lp_solve.man) added + target to generate it in the  Makefile- install signal handler after reading the input to avoid dumping core- changed names of some examples to make them uniform- added correct results for all examplesChanges since the comp.sources.reviewed release:- added more input sanity checking- removed a bug in the Branch-and-Bound code which could cause umlimited  recursion and finally a core dump- removed the duplicate declaration of global variable Rows- replaced bcopy by the ANSI standard memcopy- various small cosmetic changesChanges for version 1.1- added KNOWN_BUGS file.- accept x <= 0 as a sane bound.Changes for version 1.2- added (unsupported by me) VMS_SUPPORT file- made lp_solve print the reason a problem cannot be solved (unbounded or  infeasible)- added input format extension to optionally indicate whether the objective  function should be minimized or maximized.- Added output(!) in real MPS format for the -v option.Changes for version 1.3- Added #ifdefs to handle the different definitions necessary for yytext on  different computers. Why is there no standard???- Fixed a very nasty bug in the parser which would handle variables on the  right hand side of the relational operator which had an effective negative  sign wrongly (actually, the negative sign was ignored).- added -p option to print the values of the dual variables.- Added test target in Makefile to allow automatic testing with the standard  examples ex[1-5].lp.- Added syntax extension for optional user specified constraint (dual) names.- Fixed bug in the combination of minimization of the objective function  (min: <obj fun>) and MILP problems. Pure LP worked ok.- From now on lp_solve refuses problems with just bounds (0 real constraints).  This does not work anyway.Changes for version 1.4- Various cosmetic changes to the sources- Added ex6.lp just for fun (read it!).- Added results obtained on netlib and miplib benchmark sets (thanks to  mps2eq).- removed pragmas for Alliant computers (they're out of business anyway).- changed the default "double" type to REAL, which can be changed during  compilation (-DREAL=float or -DREAL='long double')Changes for version 1.5- Added -scale option for global scaling of the problem.- Fixed problem with Endetacol being written out of bounds.- Added -autoscale option for automatic scaling of rows and columns.- Added ex7.lp, an example which can only be solved when scaled properly.- Added -solve_dual option to let lp_solve solve the dual of the problem it is  reading. This is not a very useful option, but I needed it to check the  results generated by the updated -p option (see next item). It will not work  with equality constraints.- The -p option now produces real dual values, thanks to a code hint by  Jeroen Dirks (jeroend@tor.numetrix.com)- The MILP branch-and-bound loop was rearranged by Jeroen Dirks resulting in  significantly increased performance (2 - 10 times faster).Changes for 2.0a- Added a procedural interface (the lp toolkit).- removed -scale and -solve_dual options- renamed option -autoscale to -sChanges for 2.0b1- Added -mps option to read MPS files. And also included some mps associated  functions in the toolkit.Changes for 2.0b2- Fixed bug in:	delete_lp	del_constraint	write_MPS- added:	write_LP	msp2lp	lp2mpsChanges for 2.0b3- Changed default integer/noninteger value to 1e-3- Added Epsb in Iteration function at minit detection  (lp_solve gave infeasible for some feasible problems)- Added -degen perturbation option for degenerate problems.Changes for 2.0- Removed "Parsing" message- Made CHECK Warning output print to stderrChanges for 2.1beta- added '-time' option to print CPU times of parsing and optimization- fixed some MPS reading problems- allow empty OF in lp_solve format to get just a feasible solution- added filtering of very small pivots to improve numerical stability- fixed several bugs in lpkit.c and readmps.cChanges for 2.1- improved the speed of the MPS reader (considerably!) by introducing hash  tables- fixed bug in column_in_lp- updated Jeroen Dirks' email address in the sources- added HARTMUT_DOCUMENTATION to the distributionChanges for 2.2- fixed memory leak in delete_lp- fixed some more lpkit.c bugs- got rid of the ugly global variables used in solve.c.Changes for 2.3- fixed memory problem in solve.c (eta arrays were not always realloc-ed on  time).- support for RANGES in MPS reworked; should now be according to standard- option -degen could sometimes produce "results" for infeasible problems,  fixed.- previous versions of lp_solve would not scale any column when integer  variables were present. Now only the actual integer columns are not scaled.- copy_lp now also copies the rowname and colname hash tablesChanges for 3.0- lp_solve now has an official open source license, 3.0 and up will have the  LGPL license attached.- there was a problem in write_MPS, where numbers were printed with up to 16  digits instead of the maximum of 12Changes for 3.0- Bug fix with -degen option (constants were not so constant any more)Changes for 3.1- copy name strings in copy_hash_table to avoid crashes when old lp's are freed- added call to btran at line 925 of solve.c according to an analysis by Joerg  HerbersChanges for 3.1a- fixed memory management problem in read.c introduced in 3.1Changes for 3.2- fixed eta realloc problem in solve.cChanges for 4.0.0.0- Added files fortify.c, fortify.h, ufortify.h, declare.h  fortify is a memory management wrapper. It redirects all memory management  routines like malloc, calloc, realloc, free, ... to own routines. The purpose  of this is purely for debugging. This 'library' adds leading and trailing  bytes to each allocated piece of memory which makes it possible to check if  no memory before or after the allocated block was written. Although this is  not a perfect method of finding memory overruns, it is a big help in finding  95% of them. It also checks if all allocated memory is freeed again between a  given starting and ending point. This 'library' has helped me already  numerious times to easilly find and pinpoint these problems on the place and  on the variable where the problem occurs and not on totally different one  which is very common to this kind of problems.  Use of this library is very easily.   - Just include fortify.h in the source file(s) where memory allocation     functions are used.   - Define the constant FORTIFY- Corrected some spelling in different source files.- Removed exit functions.  This change is needed when lp_solve is used as a library which is called  from an application.  Terminating the process is sertainly not a good idea in that case. When a  severe error occurs, the called function will return exit false to indicate  that a problem occured and lp->spx_status indicates what the problem is.- Modified the MALLOC, CALLOC, REALLOC functions to not exit the program if no  memory could be allocated. Instead the calling functions exit with a return  code FALSE to indicate there was a problem. The cller program then has to  check lp->spx_status to see what the problem is. If out of memory then its  value is the constant OUT_OF_MEMORY.- The lprec structure has changed considerably. This means that programs must  be recompiled when they link with this new library.  A couble of members are deleted, some have changed and several new members  are created. Be aware of this.  However the interface to the library is kept as much as possible, so  recompilation should be possible without modification. One thing is to be  considered however. Several routines that previously returned a void now  return int to indicate if they succeeded. They can fail if there is not  enough memory available. The return status should always be checked ...- The lpkit.h include file defines some constants like  DEF_INFINITE, DEF_EPSB, DEF_EPSEL, DEF_EPSD, DEF_EPSILON, PREJ, ...  It is now possible to overrule these defaults at compile time by defining them  at that time (generally via the -D compiler option).- Some constants like DEF_EPSB, DEF_EPSD, DEF_EPSILON  have now better default values.  For example in the past, DEF_EPSILON was set to 0.001. This value is the  tolerance to determine if a REAL is integer. This is used for integer  optimization. 0.0005 was in the past accepted as an integer value.  This is now changed to 1e-6- mps2lp and lp2mps now accept optionally input and output files via the  command line. It is still possible to work via stdin and stdout (redirection)    Usage:      mps2lp [inputfile.mps [outputfile.lp]] [<inputfile.mps] [>outputfile.lp]      lp2mps [inputfile.lp [outputfile.mps]] [<inputfile.lp] [>outputfile.mps]- mps2lp and lp2mps now return meaningfull exit codes   0: File converted successfully   1: Usage screen was shown   2: Unable to open input file   3: Unable to open output file   4: Unable to read mps/lp file   5: Unable to write lp/mps file- Rearranged include header files in hash.c, read.c, lpkit.c  First the standard C headers are included and then own project headers.  Some compilers gave warning otherwise.- Until version 3 there was no presolve implemented in lp_solve. From this  version there is. The routine is implemented in presolve.c  By default lp_solve does not do a presolve.  Member do_presolve of the lprec structure must be set on TRUE before the  solve() routine is called to do a presolve.  Presolve can do the following operations:   - remove empty rows   - remove empty columns   - convert rows with only 1 coefficient on a variable to a bound  A presolve can make the lp problem smaller so that solution time is shorter.- Debugging/tracing routines in debug.c were always printing results to stderr.

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -