NEWS
changeset 2 4c8956a7bdf4
equal deleted inserted replaced
-1:000000000000 0:0ef8ec031aee
       
     1 GLPK 4.45 (release date: Dec 05, 2010)
       
     2 
       
     3         This is a bug-fix release.
       
     4 
       
     5         Several bugs/typos were fixed. Thanks to
       
     6         Xypron <xypron.glpk@gmx.de>,
       
     7         Robbie Morrison <robbie@actrix.co.nz>, and
       
     8         Ali Baharev <ali.baharev@gmail.com> for reports.
       
     9 
       
    10         Some glpk documents was re-formatted and merged into a single
       
    11         document. Now the glpk documentation consists of the following
       
    12         three main documents (all included in the distribution):
       
    13 
       
    14         GLPK: Reference Manual
       
    15 
       
    16         GLPK: Graph and Network Routines
       
    17 
       
    18         Modeling Language GNU MathProg: Language Reference
       
    19 
       
    20 GLPK 4.44 (release date: Jun 03, 2010)
       
    21 
       
    22         The following suffixes for variables and constraints were
       
    23         implemented in the MathProg language:
       
    24 
       
    25         .lb     (lower bound),
       
    26         .ub     (upper bound),
       
    27         .status (status in the solution),
       
    28         .val    (primal value), and
       
    29         .dual   (dual value).
       
    30 
       
    31         Thanks to Xypron <xypron.glpk@gmx.de> for draft implementation
       
    32         and testing.
       
    33 
       
    34         Now the MathProg language allows comment records (marked by
       
    35         '#' in the very first position) in CSV data files read with the
       
    36         table statements. Note that the comment records may appear only
       
    37         in the beginning of a CSV data file.
       
    38 
       
    39         The API routine glp_cpp to solve the Critical Path Problem was
       
    40         added and documented.
       
    41 
       
    42 GLPK 4.43 (release date: Feb 20, 2010)
       
    43 
       
    44         This is a maintainer release.
       
    45 
       
    46         `configure.ac' was changed to allow building the package under
       
    47         Mac OS and Darwin with ODBC support.
       
    48         Thanks to Xypron <xypron.glpk@gmx.de> for suggestions and Noli
       
    49         Sicad <nsicad@gmail.com> for testing.
       
    50 
       
    51         The SQL table driver was improved to process NULL data. Thanks
       
    52         to Xypron <xypron.glpk@gmx.de>.
       
    53 
       
    54         Some bugs were fixed in the LP/MIP preprocessor.
       
    55 
       
    56 GLPK 4.42 (release date: Jan 13, 2010)
       
    57 
       
    58         The following new API routines were added:
       
    59 
       
    60         glp_check_dup         check for duplicate elements in sparse
       
    61                               matrix
       
    62         glp_sort_matrix       sort elements of the constraint matrix
       
    63         glp_read_prob         read problem data in GLPK format
       
    64         glp_write_prob        write problem data in GLPK format
       
    65         glp_analyze_bound     analyze active bound of non-basic variable
       
    66         glp_analyze_coef      analyze objective coefficient at basic
       
    67                               variable
       
    68         glp_print_ranges      print sensitivity analysis report (this
       
    69                               routine replaces lpx_print_sens_bnds and
       
    70                               makes it deprecated)
       
    71 
       
    72         For description of these new routines and the GLPK LP/MIP
       
    73         format see a new edition of the reference manual included in
       
    74         the distribution. (Chapter "Graph and network API routines" was
       
    75         carried out from the main reference manual and included in the
       
    76         distribution as a separate document.)
       
    77 
       
    78         The following new command-line options were added to the stand-
       
    79         alone solver glpsol:
       
    80         --glp filename        read problem data in GLPK format
       
    81         --wglp filename       write problem data in GLPK format
       
    82         --ranges filename     print sensitivity analysis report (this
       
    83                               option replaces --bounds)
       
    84 
       
    85         Now all GLPK routines performing file I/O support special
       
    86         filenames "/dev/stdin", "/dev/stdout", and "/dev/stderr", which
       
    87         can be specified in the same way as regular filenames. This
       
    88         feature is plaform-independent.
       
    89 
       
    90 GLPK 4.41 (release date: Dec 21, 2009)
       
    91 
       
    92         The following new API routies were added:
       
    93 
       
    94         glp_transform_row     transform explicitly specified row
       
    95         glp_transform_col     transform explicitly specified column
       
    96         glp_prim_rtest        perform primal ratio test
       
    97         glp_dual_rtest        perform dual ratio test
       
    98 
       
    99         For description of these new routines see a new edition of the
       
   100         reference manual included in the distribution.
       
   101 
       
   102         The following API routines are deprecated: lpx_transform_row,
       
   103         lpx_transform_col, lpx_prim_ratio_test, lpx_dual_ratio_test.
       
   104 
       
   105         Some improvements were made in the MIP solver (glp_intopt).
       
   106 
       
   107         The SQL table driver used to read/write data in MathProg models
       
   108         was changed to allow multiple arguments separated by semicolon
       
   109         in SQL statements. Thanks to Xypron <xypron.glpk@gmx.de>.
       
   110 
       
   111         Two new options were added to the glpsol stand-alone solver:
       
   112         --seed value (to initialize the pseudo-random number generator
       
   113         used in MathProg models with specified value), and
       
   114         --ini filename (to use a basis previously saved with -w option
       
   115         as an initial basis on solving similar LP's).
       
   116 
       
   117         Two new MathProg example models were included. Thanks to
       
   118         Nigel Galloway <nigel_galloway@operamail.com> and Noli Sicad
       
   119         <nsicad@gmail.com> for contribution.
       
   120 
       
   121         Scripts to build GLPK with Microsoft Visual Studio 2010 for
       
   122         both 32-bit and 64-bit Windows were included. Thanks to Xypron
       
   123         <xypron.glpk@gmx.de> for contribution and testing.
       
   124 
       
   125 GLPK 4.40 (release date: Nov 03, 2009)
       
   126 
       
   127         The following new API routines were added:
       
   128 
       
   129         glp_del_vertices      remove vertices from graph
       
   130         glp_del_arc           remove arc from graph
       
   131         glp_wclique_exact     find maximum weight clique with the exact
       
   132                               algorithm developed by Prof. P. Ostergard
       
   133         glp_read_ccdata       read graph in DIMACS clique/coloring
       
   134                               format
       
   135         glp_write_ccdata      write graph in DIMACS clique/coloring
       
   136                               format
       
   137 
       
   138         For description of these new routines see a new edition of the
       
   139         reference manual included in the distribution.
       
   140 
       
   141         The hybrid pseudocost branching heuristic was included in the
       
   142         MIP solver. It is available on API level (iocp.br_tech should
       
   143         be set to GLP_BR_PCH) and in the stand-alone solver glpsol
       
   144         (via the command-line option --pcost). This heuristic may be
       
   145         useful on solving hard MIP instances.
       
   146 
       
   147         The branching heuristic by Driebeck and Tomlin (used in the
       
   148         MIP solver by default) was changed to switch to branching on
       
   149         most fractional variable if an lower bound of degradation of
       
   150         the objective is close to zero for all branching candidates.
       
   151 
       
   152         A bug was fixed in the LP preprocessor (routine npp_empty_col).
       
   153         Thanks to Stefan Vigerske <stefan@math.hu-berlin.de> for the
       
   154         bug report.
       
   155 
       
   156         A bug was fixed and some improvements were made in the FPUMP
       
   157         heuristic module. Thanks to Xypron <xypron.glpk@gmx.de>.
       
   158 
       
   159         A bug was fixed in the API routine glp_warm_up (dual
       
   160         feasibility test was incorrect in maximization case). Thanks to
       
   161         Uday Venkatadri <Uday.Venkatadri@dal.ca> for the bug report.
       
   162 
       
   163 GLPK 4.39 (release date: Jul 26, 2009)
       
   164 
       
   165         The following new API routines were added:
       
   166 
       
   167         glp_warm_up           "warm up" LP basis
       
   168         glp_set_vertex_name   assign (change) vertex name
       
   169         glp_create_v_index    create vertex name index
       
   170         glp_find_vertex       find vertex by its name
       
   171         glp_delete_v_index    delete vertex name index
       
   172         glp_read_asnprob      read assignment problem data in DIMACS
       
   173                               format
       
   174         glp_write_asnprob     write assignment problem data in DIMACS
       
   175                               format
       
   176         glp_check_asnprob     check correctness of assignment problem
       
   177                               data
       
   178         glp_asnprob_lp        convert assignment problem to LP
       
   179         glp_asnprob_okalg     solve assignment problem with the
       
   180                               out-of-kilter algorithm
       
   181         glp_asnprob_hall      find bipartite matching of maxumum
       
   182                               cardinality with Hall's algorithm
       
   183 
       
   184         Also were added some API routines to read plain data files.
       
   185 
       
   186         The API routines glp_read_lp and glp_write_lp to read/write
       
   187         files in CPLEX LP format were re-implemented. Now glp_write_lp
       
   188         correctly writes double-bounded (ranged) rows by introducing
       
   189         slack variables rather than by duplicating the rows.
       
   190 
       
   191         For description of these new routines see a new edition of the
       
   192         reference manual included in the distribution.
       
   193 
       
   194         The 'xfree(NULL)' bug was fixed in the AMD routines. Thanks to
       
   195         Niels Klitgord <niels@bu.edu> for bug report.
       
   196 
       
   197         The message "Crashing..." was changed to "Constructing initial
       
   198         basis..." due to suggestion by Thomas Kahle <tom111@gmx.de>.
       
   199 
       
   200         Some typos were corrected in glpsol output messages. Thanks to
       
   201         Xypron <xypron.glpk@gmx.de> for patch.
       
   202 
       
   203 GLPK 4.38 (release date: May 02, 2009)
       
   204 
       
   205         API routines glp_read_mps and glp_write_mps were improved.
       
   206 
       
   207         Some improvements were made in the dual simplex routines.
       
   208 
       
   209         Two external software modules AMD and COLAMD were included in
       
   210         the distribution (for more details please see src/amd/README
       
   211         and src/colamd/README). Now they are used in the interior-point
       
   212         solver to reorder the matrix prior to Cholesky factorization.
       
   213 
       
   214         API routine glp_ipt_status may return two new statuses due to
       
   215         changes in the routine glp_interior. For details please see the
       
   216         reference manual included in the distribution.
       
   217 
       
   218         A minor bug was fixed in the graph/network routines. Thanks to
       
   219         Nelson H. F. Beebe <beebe@math.utah.edu> for bug report.
       
   220 
       
   221 GLPK 4.37 (release date: Mar 29, 2009)
       
   222 
       
   223         The 0-1 Feasibility Pump heuristic was included in the GLPK
       
   224         integer optimizer glp_intopt. On API level the heuristic can be
       
   225         enabled by setting the parameter fp_heur in glp_iocp to GLP_ON.
       
   226         This feature is also available in the solver glpsol through
       
   227         command-line option '--fpump'. For more details please see the
       
   228         reference manual included in the distribution.
       
   229 
       
   230         The following new API routines were added:
       
   231 
       
   232         glp_print_sol         write basic solution in printable format
       
   233         glp_print_ipt         write interior-point solution in printable
       
   234                               format
       
   235         glp_print_mip         write MIP solution in printable format
       
   236         glp_read_graph        read (di)graph from plain text file
       
   237         glp_write_graph       write (di)graph to plain text file
       
   238         glp_weak_comp         find all weakly connected components
       
   239         glp_strong_comp       find all strongly connected components
       
   240 
       
   241         The following API routines are deprecated: lpx_print_sol,
       
   242         lpx_print_ips, lpx_print_mip, lpx_print_prob (the latter is
       
   243         equivalent to glp_write_lp).
       
   244 
       
   245         A bug was fixed in the interior-point solver (glp_interior) to
       
   246         correctly compute dual solution components when the problem is
       
   247         scaled.
       
   248 
       
   249         The files configure.ac and Makefile.am were changed:
       
   250         (a) to allow using autoreconf/autoheader;
       
   251         (b) to allow building the package in a directory other than its
       
   252             source directory.
       
   253         Thanks to Marco Atzeri <marco_atzeri@yahoo.it> for bug report.
       
   254 
       
   255         An example model in the GNU MathProg language was added.
       
   256         Thanks to Larry D'Agostino <Larry.D'Agostino@gmacrescap.com> for
       
   257         contribution.
       
   258 
       
   259 GLPK 4.36 (release date: Feb 06, 2009)
       
   260 
       
   261         The following new API routines were added to the package:
       
   262 
       
   263         glp_mincost_okalg     find minimum-cost flow with out-of-kilter
       
   264                               algorithm
       
   265         glp_maxflow_ffalg     find maximal flow with Ford-Fulkerson
       
   266                               algorithm
       
   267 
       
   268         For detailed description of these new routines and related data
       
   269         structures see chapter "Graph and Network API Routines" in a new
       
   270         edition of the reference manual included in the distribution.
       
   271 
       
   272         The following two new command-line options were added to the
       
   273         solver glpsol:
       
   274 
       
   275         --mincost             read min-cost flow data in DIMACS format
       
   276         --maxflow             read maximum flow data in DIMACS format
       
   277 
       
   278         Duplicate symbols in the header glpk.h were removed to allow
       
   279         using swig.
       
   280         Thanks to Kelly Westbrooks <kellywestbrooks@yahoo.com> and
       
   281         Nigel Galloway <nigel_galloway@operamail.com> for suggestion.
       
   282 
       
   283         A minor defect was fixed in the routine glp_write_lp.
       
   284         Thanks to Sebastien Briais <sbriais@free.fr> for bug report.
       
   285 
       
   286         A minor bug was fixed in the SQL module.
       
   287         Thanks to Xypron <xypron.glpk@gmx.de> for patch.
       
   288 
       
   289         Some new example models in the GNU MathProg modeling language
       
   290         were added. Thanks to Sebastian Nowozin <nowozin@gmail.com> and
       
   291         Nigel Galloway <nigel_galloway@operamail.com> for contribution.
       
   292 
       
   293 GLPK 4.35 (release date: Jan 09, 2009)
       
   294 
       
   295         The following new API routines were added to the package:
       
   296 
       
   297         glp_create_graph      create graph
       
   298         glp_set_graph_name    assign (change) graph name
       
   299         glp_add_vertices      add new vertices to graph
       
   300         glp_add_arc           add new arc to graph
       
   301         glp_erase_graph       erase graph content
       
   302         glp_delete_graph      delete graph
       
   303         glp_read_mincost      read minimum cost flow problem data in
       
   304                               DIMACS format
       
   305         glp_write_mincost     write minimum cost flow problem data in
       
   306                               DIMACS format
       
   307         glp_mincost_lp        convert minimum cost flow problem to LP
       
   308         glp_netgen            Klingman's network problem generator
       
   309         glp_gridgen           grid-like network problem generator
       
   310         glp_read_maxflow      read maximum flow problem data in DIMACS
       
   311                               format
       
   312         glp_write_maxflow     write maximum flow problem data in DIMACS
       
   313                               format
       
   314         glp_maxflow_lp        convert maximum flow problem to LP
       
   315         glp_rmfgen            Goldfarb's maximum flow problem generator
       
   316 
       
   317         For detailed description of these new routines and related data
       
   318         structures see chapter "Graph and Network API Routines" in a new
       
   319         edition of the reference manual included in the distribution.
       
   320 
       
   321         A minor change were made in the internal routine xputc. Thanks
       
   322         to Luiz Bettoni <bettoni@cpgei.ct.utfpr.edu.br> for suggestion.
       
   323 
       
   324         A minor bug was fixed in the internal routine mpl_fn_time2str.
       
   325         Thanks to Stefan Vigerske <stefan@vigerske.de> for bug report.
       
   326 
       
   327 GLPK 4.34 (release date: Dec 04, 2008)
       
   328 
       
   329         The GNU MathProg modeling language was supplemented with three
       
   330         new built-in functions:
       
   331 
       
   332         gmtime    obtaining current calendar time
       
   333         str2time  converting character string to calendar time
       
   334         time2str  converting calendar time to character string
       
   335 
       
   336         (Thanks to Xypron <xypron.glpk@gmx.de>.)
       
   337 
       
   338         For detailed description of these functions see Appendix A in
       
   339         the document "Modeling Language GNU MathProg", a new edition of
       
   340         which was included in the distribution.
       
   341 
       
   342         A bug was fixed in the MIP solver. Thanks to Nigel Galloway
       
   343         <nigel_galloway@operamail.com> for bug report.
       
   344 
       
   345         A new makefile was added to build the GLPK DLL with Microsoft
       
   346         Visual Studio Express 2008 for 64-bit Windows. Thanks to Xypron
       
   347         <xypron.glpk@gmx.de> for contribution and testing.
       
   348 
       
   349 GLPK 4.33 (release date: Oct 30, 2008)
       
   350 
       
   351         The following new API routines were added to the package:
       
   352         glp_copy_prob         copy problem object content
       
   353         glp_exact             solve LP in exact arithmetic
       
   354                               (makes lpx_exact deprecated)
       
   355         glp_get_unbnd_ray     determine variable causing unboundedness
       
   356                               (makes lpx_get_ray_info deprecated)
       
   357         glp_interior          solve LP with interior-point method
       
   358                               (makes lpx_interior deprecated)
       
   359 
       
   360         The following new API routines for processing models written in
       
   361         the GNU Mathprog language were added to the package:
       
   362         glp_mpl_alloc_wksp    allocate the translator workspace
       
   363         glp_mpl_read_model    read and translate model section
       
   364         glp_mpl_read_data     read and translate data section
       
   365         glp_mpl_generate      generate the model
       
   366         glp_mpl_build_prob    build LP/MIP instance from the model
       
   367         glp_mpl_postsolve     postsolve the model
       
   368         glp_mpl_free_wksp     deallocate the translator workspace
       
   369         (These routines make lpx_read_model deprecated.)
       
   370 
       
   371         For description of all these new API routines see the reference
       
   372         manual included in the distribution.
       
   373 
       
   374         A crude implementation of CPLEX-like interface to GLPK API was
       
   375         added to the package. Currently it allows using GLPK as a core
       
   376         LP solver for Concorde, a well known computer code for solving
       
   377         the symmetric TSP. For details see examples/cplex/README.
       
   378 
       
   379         Some bugs were fixed in the SQL table driver. Thanks to Xypron
       
   380         <xypron.glpk@gmx.de>.
       
   381 
       
   382 GLPK 4.32 (release date: Oct 03, 2008)
       
   383 
       
   384         The following new features were included in the MIP solver
       
   385         (the API routine glp_intopt):
       
   386 
       
   387         *  MIP presolver
       
   388         *  mixed cover cut generator
       
   389         *  clique cut generator
       
   390         *  Euclidean reduction of the objective value
       
   391 
       
   392         Due to changes the routine glp_intopt may additionally return
       
   393         GLP_ENOPFS, GLP_ENODFS, and GLP_EMIPGAP.
       
   394 
       
   395         The API routines lpx_integer are lpx_intopt are deprecated,
       
   396         since they are completely superseded by glp_intopt.
       
   397 
       
   398         The following new branch-and-cut API routines were added:
       
   399         glp_ios_row_attr      determine additional row attributes
       
   400         glp_ios_pool_size     determine current size of the cut pool
       
   401         glp_ios_add_row       add constraint to the cut pool
       
   402         glp_ios_del_row       delete constraint from the cut pool
       
   403         glp_ios_clear_pool    delete all constraints from the cut pool
       
   404 
       
   405         For description of these new routines see the reference manual
       
   406         included in the distribution.
       
   407 
       
   408         The stand-alone solver glpsol was changed to allow multiple
       
   409         data files.
       
   410 
       
   411         A new edition of the supplement "Using Data Tables in the GNU
       
   412         MathProg Modeling Language" was included.
       
   413 
       
   414         As usual, some bugs were fixed (in the MathProg translator).
       
   415         Thanks to Xypron <xypron.glpk@gmx.de>.
       
   416 
       
   417 GLPK 4.31 (release date: Sep 02, 2008)
       
   418 
       
   419         The core LP solver based on the dual simplex method was
       
   420         re-implemented and now it provides both phases I and II.
       
   421 
       
   422         The following new API routines were added:
       
   423         glp_scale_prob  automatic scaling of problem data
       
   424         glp_std_basis   construct standard initial LP basis
       
   425         glp_adv_basis   construct advanced initial LP basis
       
   426         glp_cpx_basis   construct Bixby's initial LP basis
       
   427 
       
   428         For description of these new routines see the reference manual
       
   429         included in the distribution.
       
   430 
       
   431         The following API routines are deprecated:
       
   432         lpx_scale_prob, lpx_std_basis, lpx_adv_basis, lpx_cpx_basis.
       
   433 
       
   434         Necessary changes were made in memory allocation routines to
       
   435         resolve portability issues for 64-bit platforms.
       
   436 
       
   437         New version of the routine lpx_write_pb to write problem data
       
   438         in OPB (pseudo boolean format) was added to the package. Thanks
       
   439         to Oscar Gustafsson <oscarg@isy.liu.se> for the contribution.
       
   440 
       
   441         Two new makefiles were added to build the package for 32- and
       
   442         64-bit Windows with Microsoft Visual Studio Express 2008.
       
   443         Thanks to Heinrich Schuchardt <heinrich.schuchardt@gmx.de> (aka
       
   444         Xypron) for the contribution and testing.
       
   445 
       
   446         Two new makefiles were added to build the package with Digital
       
   447         Mars C/C++ 8.50 and Open Watcom C/C++ 1.6 (for 32-bit Windows).
       
   448 
       
   449 GLPK 4.30 (release date: Aug 13, 2008)
       
   450 
       
   451         The core LP solver based on the primal simplex method was
       
   452         re-implemented to allow its further improvements. Currently the
       
   453         new version provides the same features as the old one, however,
       
   454         it is a bit faster and more numerically stable.
       
   455 
       
   456         Some changes were made in the MathProg translator to allow <,
       
   457         <=, >=, and > on comparing symbolic values. Thanks to Heinrich
       
   458         Schuchardt <heinrich.schuchardt@gmx.de> for patches.
       
   459 
       
   460         Internal routine set_d_eps in the exact LP solver was changed
       
   461         to prevent approximation errors in case of integral data.
       
   462         Thanks to Markus Pilz <pilz@cs.uni-bonn.de> for bug report.
       
   463 
       
   464 GLPK 4.29 (release date: Jul 06, 2008)
       
   465 
       
   466         The configure script was changed to disable all optional
       
   467         features by default. For details please see file INSTALL.
       
   468 
       
   469         The following new API routines were added:
       
   470         glp_erase_prob  erase problem object content
       
   471         glp_read_mps    read problem data in MPS format
       
   472         glp_write_mps   write problem data in MPS format
       
   473         glp_read_lp     read problem data in CPLEX LP format
       
   474         glp_write_lp    write problem data in CPLEX LP format
       
   475 
       
   476         For description of these new routines see the reference manual
       
   477         included in the distribution.
       
   478 
       
   479         The following API routines are deprecated:
       
   480         lpx_read_mps, lpx_read_freemps, lpx_write_mps,
       
   481         lpx_write_freemps, lpx_read_cpxlp, and lpx_write_cpxlp.
       
   482 
       
   483         Two bugs were fixed. Thanks to
       
   484         Anne-Laurence Putz <anne-laurence.putz@eurodecision.com> and
       
   485         Xypron <xypron.glpk@gmx.de> for bug report.
       
   486 
       
   487 GLPK 4.28 (release date: Mar 25, 2008)
       
   488 
       
   489         The iODBC and MySQL table drivers, which allows transmitting
       
   490         data between MathProg model objects and relational databases,
       
   491         were re-implemented to replace a static linking by a dynamic
       
   492         linking to corresponding shared libraries.
       
   493         Many thanks to Heinrich Schuchardt <heinrich.schuchardt@gmx.de>
       
   494         for the contribution, Rafael Laboissiere <rafael@debian.org>
       
   495         for useful advices concerning the shared library support under
       
   496         GNU/Linux, and Vijay Patil <vijay.patil@gmail.com> for testing
       
   497         this feature under Windows XP.
       
   498 
       
   499         A new optional feature was added to the package. This feature
       
   500         is based on the zlib data compression library and allows GLPK
       
   501         API routines and the stand-alone solver to read and write
       
   502         compressed data files performing compression/decompression "on
       
   503         the fly" (compressed data files are recognized by suffix `.gz'
       
   504         in the file name). It may be useful in case of large MPS files
       
   505         to save the disk space (up to ten times).
       
   506 
       
   507         The `configure' script was re-implemented. Now it supports the
       
   508         following specific options:
       
   509 
       
   510         --with-gmp           Enable using the GNU MP bignum library
       
   511         --without-gmp        Disable using the GNU MP bignum library
       
   512         --with-zlib          Enable using the zlib data compression
       
   513                              library
       
   514         --without-zlib       Disable using the zlib data compression
       
   515                              library
       
   516         --enable-dl          Enable shared library support (auto check)
       
   517         --enable-dl=ltdl     Enable shared library support (GNU)
       
   518         --enable-dl=dlfcn    Enable shared library support (POSIX)
       
   519         --disable-dl         Disable shared library support
       
   520         --enable-odbc        Enable using ODBC table driver
       
   521         --disable-odbc       Disable using ODBC table driver
       
   522         --enable-mysql       Enable using MySQL table driver
       
   523         --disable-mysql      Disable using MySQL table driver
       
   524 
       
   525         For more details please see file INSTALL.
       
   526 
       
   527 GLPK 4.27 (release date: Mar 02, 2008)
       
   528 
       
   529         Three new table drivers were added to the MathProg translator:
       
   530 
       
   531         xBASE built-in table driver, which allows reading and writing
       
   532         data in .dbf format (only C and N fields are supported);
       
   533 
       
   534         MySQL table driver, which provides connection to a MySQL
       
   535         database;
       
   536 
       
   537         iODBC table driver, which provides connection to a database
       
   538         through ODBC.
       
   539 
       
   540         The MySQL and iODBC table drivers were contributed to GLPK by
       
   541         Heinrich Schuchardt <heinrich.schuchardt@gmx.de>.
       
   542 
       
   543         The table driver is a program module which allows transmitting
       
   544         data between MathProg model objects and external data tables.
       
   545 
       
   546         For detailed description of the table statement and table
       
   547         drivers see the document "Using Data Tables in the GNU MathProg
       
   548         Modeling Language" (file doc/tables.txt) included in the
       
   549         distribution. Some examples which demonstrate using MySQL and
       
   550         iODBC table drivers can be found in subdirectory examples/sql.
       
   551 
       
   552 GLPK 4.26 (release date: Feb 17, 2008)
       
   553 
       
   554         The table statement was implemented in the GNU MathProg
       
   555         modeling language. This new feature allows reading data from
       
   556         external tables into model objects such as sets and parameters
       
   557         as well as writing results of computations to external tables.
       
   558 
       
   559         A table is a (unordered) set of records, where each record
       
   560         consists of the same number of fields, and each field is
       
   561         provided with a unique symbolic name called the field name.
       
   562 
       
   563         Currently the GLPK package has the only built-in table driver,
       
   564         which supports tables in the CSV (comma-separated values) file
       
   565         format. This format is very simple and supported by almost all
       
   566         spreadsheets and database management systems.
       
   567 
       
   568         Detailed description of the table statement and CSV format can
       
   569         be found in file doc/tables.txt, included in the distribution.
       
   570 
       
   571 GLPK 4.25 (release date: Dec 19, 2007)
       
   572 
       
   573         A tentative implementation of Gomory's mixed integer cuts was
       
   574         included in the branch-and-cut solver. To enable generating
       
   575         Gomory's cuts the control parameter gmi_cuts passed to the
       
   576         routine glp_intopt should be set to GLP_ON. This feature is
       
   577         also available in the solver glpsol through command-line option
       
   578         '--gomory'. For more details please see the reference manual
       
   579         included in the distribution.
       
   580 
       
   581 GLPK 4.24 (release date: Nov 21, 2007)
       
   582 
       
   583         A tentative implementation of MIR (mixed integer rounding) cuts
       
   584         was included in the MIP solver. To enable generating MIR cuts
       
   585         the control parameter mir_cuts passed to the routine glp_intopt
       
   586         should be set to GLP_ON. This feature is also available in the
       
   587         stand-alone solver glpsol via command-line option '--mir'. For
       
   588         more details please see the reference manual included in the
       
   589         distribution.
       
   590 
       
   591         The implementation is mainly based on the following two papers:
       
   592 
       
   593         1. H. Marchand and L. A. Wolsey. Aggregation and mixed integer
       
   594            rounding to solve MIPs. CORE discussion paper 9839, CORE,
       
   595            Universite catholique de Louvain, June 1998.
       
   596 
       
   597         2. G. Andreello, A. Caprara, and M. Fischetti. Embedding cuts
       
   598            in a Branch&Cut framework. Preliminary draft, October 2003.
       
   599 
       
   600         MIR cuts can be generated on any level of the search tree that
       
   601         makes the GLPK MIP solver to be a real branch-and-cut solver.
       
   602 
       
   603         A bug was fixed in the routine lpx_write_cpxlp. If a variable
       
   604         x has upper bound and no lower bound, it should appear in the
       
   605         bounds section as "-inf <= x <= u", not as "x <= u". Thanks to
       
   606         Enric Rodriguez <erodri@lsi.upc.edu> for the bug report.
       
   607 
       
   608 GLPK 4.23 (release date: Oct 28, 2007)
       
   609 
       
   610         The following new API routines were added:
       
   611 
       
   612         glp_read_sol    read basic solution from text file
       
   613         glp_write_sol   write basic solution to text file
       
   614         glp_read_ipt    read interior-point solution from text file
       
   615         glp_write_ipt   write interior-point solution to text file
       
   616         glp_read_mip    read MIP solution from text file
       
   617         glp_write_mip   write MIP solution to text file
       
   618 
       
   619         For description of these routines and corresponding file
       
   620         formats see Chapter "API Routines", Section "Utility routines"
       
   621         in the reference manual included in the distribution.
       
   622 
       
   623         Advanced API routine glp_free_env was added. It may be used by
       
   624         the application program to free all resources allocated by GLPK
       
   625         routines.
       
   626 
       
   627         The following three new command-line options were added to the
       
   628         solver glpsol:
       
   629 
       
   630         --mipgap tol    set relative MIP gap tolerance
       
   631         -r filename     read solution from filename
       
   632         -w filename     write solution to filename
       
   633 
       
   634 GLPK 4.22 (release date: Sep 19, 2007)
       
   635 
       
   636         This is a maintainer release.
       
   637 
       
   638         A bug was fixed in the MIP preprocessor (ios_preprocess_node).
       
   639         Thanks to Roberto Bagnara <bagnara@cs.unipr.it> (Department of
       
   640         Mathematics, University of Parma, Italy) for the bug report.
       
   641 
       
   642         A bug was fixed in the MIP preprocessor (col_implied_bounds),
       
   643         due to which constraint coefficients with small magnitude could
       
   644         lead to wrong implied bounds of structural variables.
       
   645 
       
   646         A similar bug was fixed in the routine reduce_bounds.
       
   647 
       
   648         A bug was fixed in the routines glp_set_mat_row and
       
   649         glp_set_mat_col. (The bug appeared due to incorrect removing
       
   650         zero elements from the row/column lists.)
       
   651 
       
   652         A bug was fixed in the API routines lpx_read_mps and
       
   653         lpx_read_freemps, due to which bounds of type LI specified in
       
   654         BOUNDS section were incorrectly processed.
       
   655 
       
   656         A call to standard function vsprintf was replaced by a call to
       
   657         vsnprintf for security reasons. Many thanks to Peter T. Breuer
       
   658         <ptb@inv.it.uc3m.es> and Rafael Laboissiere <rafael@debian.org>.
       
   659 
       
   660 GLPK 4.21 (release date: Aug 28, 2007)
       
   661 
       
   662         Additional reasons for calling the callback routine used in the
       
   663         MIP solver (glp_intopt) were introduced. Currently the following
       
   664         reasons are supported:
       
   665 
       
   666         * request for subproblem selection
       
   667         * request for preprocessing
       
   668         * request for row generation
       
   669         * request for heuristic solution
       
   670         * request for cut generation
       
   671         * request for branching
       
   672         * better integer solution found
       
   673 
       
   674         A basic preprocessing component used to improve subproblem
       
   675         formulations by tightening bounds of variables was included in
       
   676         the MIP solver. Depending on the control parameter pp_tech
       
   677         passed to the routine glp_intopt the preprocessing can be
       
   678         performed either on the root level or on all levels (default)
       
   679         or can be disabled.
       
   680 
       
   681         Backtracking heuristic used by default in the MIP solver was
       
   682         changed to the "best local bound".
       
   683 
       
   684         For more details see Chapter "Advanced API routines", Section
       
   685         "Branch-and-bound interface routines" in a new edition of the
       
   686         reference manual included in the distribution.
       
   687 
       
   688 GLPK 4.20 (release date: Jul 26, 2007)
       
   689 
       
   690         API routine lpx_integer was replaced by API routine glp_intopt,
       
   691         which provides equivalent functionality and additionally allows
       
   692         the application to control the solution process by means of the
       
   693         user-written callback routine, which is called by the solver at
       
   694         various points of the branch-and-bound algorithm. Besides, the
       
   695         new MIP solver allows generating "lazy" constraints and cutting
       
   696         planes on all levels of the branch-and-bound tree, not only on
       
   697         the root level. The routine lpx_integer is also still available
       
   698         for the backward compatibility.
       
   699 
       
   700         The following new advanced API routines, which may be called
       
   701         from the B&B callback routine, were included in the package:
       
   702 
       
   703         glp_ios_reason     determine reason for calling callback
       
   704                            routine
       
   705         glp_ios_get_prob   access the problem object
       
   706         glp_ios_tree_size  determine size of the branch-and-bound tree
       
   707         glp_ios_curr_node  determine current active subproblem
       
   708         glp_ios_next_node  determine next active subproblem
       
   709         glp_ios_prev_node  determine previous active subproblem
       
   710         glp_ios_up_node    determine parent subproblem
       
   711         glp_ios_node_level determine subproblem level
       
   712         glp_ios_node_bound determine subproblem local bound
       
   713         glp_ios_mip_gap    compute relative MIP gap
       
   714         glp_ios_heur_sol   provide solution found by heuristic
       
   715         glp_ios_terminate  terminate the solution process
       
   716 
       
   717         For description of these routines see Chapter "Advanced API
       
   718         routines", Section "Branch-and-bound interface routines" in a
       
   719         new edition of the reference manual, which was included in the
       
   720         distribution.
       
   721 
       
   722         Old version of the integer optimization suite (IOS) as well as
       
   723         TSP solver tspsol based on it are no longer supported and were
       
   724         removed from the package.
       
   725 
       
   726         A minor error in the MIP presolver was fixed; thanks to Graham
       
   727         Rockwell <bionomicron@gmail.com> for the bug report.
       
   728 
       
   729 GLPK 4.19 (release date: Jul 05, 2007)
       
   730 
       
   731         The principal change is upgrading to GPLv3.
       
   732 
       
   733         A serious bug in the routine glp_del_cols was fixed; thanks to
       
   734         Cedric[FR] <fox2113@wanadoo.fr> for the bug report. The bug
       
   735         appeared because on deleting non-basic columns the basis header
       
   736         remained valid, however, contained invalid (old) column ordinal
       
   737         numbers.
       
   738 
       
   739         A new advanced API routine glp_mem_limit was added.
       
   740 
       
   741         The case GLP_EBOUND was added to the routine lpx_simplex.
       
   742         Thanks to Cameron Kellough <Cameron.Kellough@sri.com> for the
       
   743         bug report.
       
   744 
       
   745         An API routine lpx_write_pb to write the problem instance in
       
   746         OPB (pseudo boolean) format format was added. Thanks to Oscar
       
   747         Gustafsson <oscarg@isy.liu.se> for the contribution.
       
   748 
       
   749         Two new options --wpb and --wnpb were added to glpsol to write
       
   750         the problem instance in OPB format.
       
   751 
       
   752 GLPK 4.18 (release date: Jun 25, 2007)
       
   753 
       
   754         The following new API routines were added:
       
   755 
       
   756         glp_set_rii        set (change) row scale factor
       
   757         glp_set_sjj        set (change) column scale factor
       
   758         glp_get_rii        retrieve row scale factor
       
   759         glp_get_sjj        retrieve column scale factor
       
   760         glp_simplex        solve LP problem with the simplex method
       
   761                            (this routine replaces lpx_simplex, which is
       
   762                            also available for backward compatibility)
       
   763         glp_init_smcp      initialize simplex method control params
       
   764         glp_bf_exists      check if the basis factorization exists
       
   765         glp_factorize      compute the basis factorization
       
   766         glp_bf_updated     check if the basis factorization has been
       
   767                            updated
       
   768         glp_get_bfcp       retrieve basis factorization control params
       
   769         glp_set_bfcp       change basis factorization control params
       
   770         glp_get_bhead      retrieve the basis header information
       
   771         glp_get_row_bind   retrieve row index in the basis header
       
   772         glp_get_col_bind   retrieve column index in the basis header
       
   773         glp_ftran          perform forward transformation
       
   774         glp_btran          perform backward transformation
       
   775 
       
   776         For description of all these routines see a new edition of the
       
   777         reference manual included in the distribution.
       
   778 
       
   779         Type names ulong_t and uldiv_t were changed to glp_ulong and
       
   780         glp_uldiv to avoid conflicts with standard type names on some
       
   781         platforms. Thanks to Boris Wirtz <Boris.Wirtz@uni-oldenburg.de>
       
   782         for the bug report.
       
   783 
       
   784         Some new examples in the MathProg language were added. Thanks
       
   785         to Sebastian Nowozin <nowozin@gmail.com>.
       
   786 
       
   787 GLPK 4.17 (release date: May 26, 2007)
       
   788 
       
   789         API routines glp_set_mat_row, glp_set_mat_col, and glp_load_mat
       
   790         were modified to allow zero constraint coefficients (which are
       
   791         not stored in the constraint matrix). Note that constraint
       
   792         coefficients with duplicate row/column indices are not allowed.
       
   793 
       
   794         Another form of LP basis factorization was implemented in the
       
   795         package. It is based on LU-factorization of an initial basis
       
   796         and Schur complement to reflect changes in the basis. Currently
       
   797         the implementation is incomplete and provides only updating the
       
   798         factorization on replacing a column of the basis matrix. On API
       
   799         level the user can set the control parameter LPX_K_BFTYPE to
       
   800         choose between the folloiwng forms of LP basis factorization to
       
   801         be used in the simplex method routines:
       
   802         1) LU + Forrest-Tomlin update;
       
   803         2) LU + Schur complement + Bartels-Golub update;
       
   804         3) LU + Schur complement + Givens rotation update.
       
   805         The GLPK implementation is similar to LUSOL/LUMOD developed by
       
   806         Michael A. Saunders.
       
   807 
       
   808         The user can choose the form of LP basis factorzation used by
       
   809         the simplex method routines by specifying the folloiwng options
       
   810         of glpsol: --luf, --cbg, --cgr.
       
   811 
       
   812 GLPK 4.16 (release date: May 05, 2007)
       
   813 
       
   814         A number of basic GLPK API routines, which now are in the
       
   815         stable stable, were renamed to be prefixed with 'glp_'. Note
       
   816         that all these routines are available via their old names
       
   817         prefixed with 'lpx_' that keeps the downward compatibility with
       
   818         older versions of the package.
       
   819 
       
   820         Three new GLPK API routines were added to the package:
       
   821         glp_version, glp_term_hook, and glp_mem_usage; for more details
       
   822         see a new edition of the GLPK reference manual included in the
       
   823         distribution. The routine glp_version reports the actual version
       
   824         of the GLPK library and also can be used (along with the header
       
   825         glpk.h) in Autotools specification files to check if the GLPK
       
   826         library has been installed.
       
   827 
       
   828         The header glpk.h was changed to conform to C++ environment.
       
   829 
       
   830 GLPK 4.15 (release date: Feb 18, 2007)
       
   831 
       
   832         Autotools specification files (configure.ac, Makefile.am) were
       
   833         changed to use GNU Libtool. This allows building the static as
       
   834         well as shared GLPK library.
       
   835 
       
   836 GLPK 4.14 (release date: Feb 05, 2007)
       
   837 
       
   838         Now GLPK conforms to ILP32, LLP64, and LP64 programming models
       
   839         (the latter seems to be the ultimate choice regarding 64-bit
       
   840         architectures). Note that GLPK itself is a 32-bit application,
       
   841         and the conformity only means that the package works correctly
       
   842         on all these arenae. Nevertheless, on 64-bit platforms it is
       
   843         possible to use more than 4GB of memory, if necessary.
       
   844 
       
   845 GLPK 4.13 (release date: Nov 13, 2006)
       
   846 
       
   847         A tentative implementation of the "exact" simplex method based
       
   848         on bignum (rational) arithmetic was included in the package.
       
   849 
       
   850         On API level this new feature is available through the routine
       
   851         lpx_exact, which is similar to the routine lpx_simplex.
       
   852 
       
   853         In the solver glpsol this feature is available through two new
       
   854         command-line options: --exact and --xcheck. If the '--exact'
       
   855         option is specified, glpsol solves LP instance using the exact
       
   856         simplex method; in case of MIP it is used to obtain optimal
       
   857         solution of LP relaxation. If the --xcheck option is specified,
       
   858         LP instance (or LP relaxation) is solved using the standard
       
   859         (floating-point) simplex method, however, then glpsol calls the
       
   860         exact simplex routine to make sure that the final LP basis is
       
   861         exactly optimal, and if it is not, to perform some additional
       
   862         simplex iterations in exact arithmetic.
       
   863 
       
   864 GLPK 4.12 (release date: Nov 08, 2006)
       
   865 
       
   866         A tentative implementation of some simplex method routines
       
   867         based on exact (bignum) arithmetic was included in the package.
       
   868         Currently these routines provide computing LU-factorization of
       
   869         the basis matrix and computing components of basic solution.
       
   870 
       
   871         These routines were used to implement a routine, which checks
       
   872         primal and dual feasibility of basic solution exactly, i.e. in
       
   873         rational numbers, without round-off errors. In glpsol this
       
   874         feature is available through the command-line option --xcheck.
       
   875 
       
   876         GLPK has its own low-level routines implementing operations on
       
   877         integer and rational numbers that makes it independent on other
       
   878         software packages. However, to attain a much better performance
       
   879         it is highly recommended to install (before configuring GLPK)
       
   880         the GNU Multiple Precision Arithmetic Library (GMP). Using GMP
       
   881         makes computations 100-200 times faster.
       
   882 
       
   883 GLPK 4.11 (release date: Jul 25, 2006)
       
   884 
       
   885         Three new built-in functions in the modeling language were
       
   886         implemented: card (cardinality of set), length (length of
       
   887         character string), and substr (substring of character string).
       
   888         Another improvement concerns the printf statement which now
       
   889         allows redirecting its output to a specified file. These new
       
   890         features are illustrated in example models crypto.mod and
       
   891         graph.mod included in the distribution. For more details see
       
   892         the document "Modeling Language GNU MathProg".
       
   893 
       
   894         Four batch files (along with corresponding makefiles) were
       
   895         included in the distribution to simplify building GLPK under
       
   896         MS Windows; see them in subdirectory 'w32'.
       
   897 
       
   898 GLPK 4.10 (release date: May 11, 2006)
       
   899 
       
   900         Cutting planes of two new classes were implemented: mixed cover
       
   901         cuts and clique cuts. On API level this feature can be enabled
       
   902         by setting control parameter LPX_K_USECUTS passed to the routine
       
   903         lpx_intopt. In glpsol this feature is available through the
       
   904         command-line options --cover and --clique. For more details see
       
   905         the reference manual.
       
   906 
       
   907         Now the routines lpx_read_mps and lpx_read_freemps support LI
       
   908         bound type. It is similar to LO, however, indicates the column
       
   909         as of integer kind.
       
   910 
       
   911 GLPK 4.9 (release date: Jan 17, 2006)
       
   912 
       
   913         An advanced MIP solver was implemented. It includes:
       
   914 
       
   915         - basic presolving technique (removing free, singleton and
       
   916           redundant rows, improving bounds of columns, removing fixed
       
   917           columns, reducing constraint coefficents);
       
   918 
       
   919         - generating cutting planes to improve LP relaxation (currently
       
   920           only Gomory's mixed integer cuts are implemented);
       
   921 
       
   922         - using the branch-and-bound method to solve resultant MIP;
       
   923 
       
   924         - recovering solution of the original MIP.
       
   925 
       
   926         The solver is available on API level via the routine lpx_intopt
       
   927         (see the reference manual). It is similar to the routine
       
   928         lpx_integer, however, does not require initial solution of LP
       
   929         relaxation.
       
   930 
       
   931         The solver is also available in the command-line utility glpsol
       
   932         via two options: --intopt (only presolving) and --cuts (assumes
       
   933         --intopt plus generating cuts).
       
   934 
       
   935         Note that efficiency of the MIP solver strongly depends on the
       
   936         internal structure of the problem to be solved. For some hard
       
   937         instances it is very efficient, but for other instances it may
       
   938         be significantly worse than the standard branch-and-bound.
       
   939 
       
   940         For some comparative benchmarks see doc/bench1.txt.
       
   941 
       
   942         Well, what else...
       
   943 
       
   944         Three built-in functions were added to MathProg: sin, cos, and
       
   945         atan (the latter allows one or two arguments).
       
   946 
       
   947         Some bugs were fixed.
       
   948 
       
   949         Several new examples in MathProg were included: color.mod
       
   950         (graph coloring problem), tsp.mod (traveling salesman problem),
       
   951         and pbn.mod (paint-by-numbers puzzle).
       
   952 
       
   953 GLPK 4.8 (release date: Jan 12, 2005)
       
   954 
       
   955         Core simplex method and interior-point method routines were
       
   956         re-implemented and now they use a new, "storage-by-rows" sparse
       
   957         matrix format (unlike previous versions where linked lists were
       
   958         used to represent sparse matrices). For details see ChangeLog.
       
   959 
       
   960         Also a minor bug was fixed in API routine lpx_read_cpxlp.
       
   961 
       
   962 GLPK 4.7 (release date: Aug 23, 2004)
       
   963 
       
   964         Now GLPK supports free MPS format. Two new API routines
       
   965         lpx_read_freemps (to read problem data in free MPS format) and
       
   966         lpx_write_freemps (to write problem data in free MPS format)
       
   967         were added. This feature is also available in the solver glpsol
       
   968         via new command-line options --freemps and --wfreemps. For more
       
   969         details see the GLPK reference manual.
       
   970 
       
   971         API routines lpx_read_cpxlp and lpx_write_cpxlp for reading and
       
   972         writing problem data in CPLEX LP format were re-implemented to
       
   973         allow long symbolic names (up to 255 characters).
       
   974 
       
   975         The following three modules were temporarily removed from the
       
   976         GLPK distribution due to licensing problems: DELI (an interface
       
   977         module to Delphi), GLPKMEX (an interface module to Matlab), and
       
   978         JNI (an interface module to Java).
       
   979 
       
   980 GLPK 4.6 (release date: Aug 04, 2004)
       
   981 
       
   982         Three new statements were implemented in the GNU MathProg
       
   983         language: solve, printf, and for. Their detailed description can
       
   984         be found in the GLPK documentation included in the distribution.
       
   985         (See also a sample model, examples/queens.mod, which illustrates
       
   986         using these new statements.)
       
   987 
       
   988         Two new API routines were added to the package: lpx_read_prob
       
   989         and lpx_write_prob. They allow reading/writing problem data in
       
   990         GNU LP low-level text format.
       
   991 
       
   992         Three new command-line options were implemented in the LP/MIP
       
   993         solver glpsol: --glp (to read problem data in GNU LP format),
       
   994         --wglp (to write problem data in GNU LP format), and --name (to
       
   995         change problem name). Now glpsol also supports processing models
       
   996         where the new statements (see above) are used.
       
   997 
       
   998         A new version of GLPKMEX, a Matlab MEX interface to GLPK, was
       
   999         included. For more details see contrib/glpkmex/ChangeLog.
       
  1000 
       
  1001 GLPK 4.5 (release date: Jul 19, 2004)
       
  1002 
       
  1003         The branch-and-bound solver was completely re-implemented.
       
  1004 
       
  1005         Some modifications were made in memory allocation routines that
       
  1006         allows using the package on 64-bit platforms.
       
  1007 
       
  1008         For more details see ChangeLog.
       
  1009 
       
  1010 GLPK 4.4 (release date: Jan 17, 2004)
       
  1011 
       
  1012         All API routines were re-implemented using new data structures.
       
  1013         The new implementation provides the same specifications and
       
  1014         functionality of API routines as the old one, however, it has
       
  1015         some important advantages, in particular:
       
  1016         * linked lists are used everywhere that allows creating and
       
  1017           modifying the problem object as efficiently as possible
       
  1018         * all data stored in the problem object are non-scaled (even if
       
  1019           the internal scaling is used) that prevents distortion of the
       
  1020           original problem data
       
  1021         * solution components obtained by the solver remain available
       
  1022           even if the problem object has been modified
       
  1023         * no solver-specific data are used in the new data structures
       
  1024           that allows attaching any external lp/mip solver using GLPK
       
  1025           API as an uniform interface
       
  1026         Note that some API routines became obsolete being replaced by
       
  1027         new, more convenient routines. These obsolete routines are kept
       
  1028         for backward compatibility, however, they will be removed in
       
  1029         the future. For more details please see ChangeLog and the GLPK
       
  1030         Reference Manual.
       
  1031 
       
  1032         New edition of the GLPK Reference Manual was included in the
       
  1033         distribution.
       
  1034 
       
  1035         GLPKMEX, a Matlab MEX interface to GLPK package, contributed by
       
  1036         Nicolo Giorgetti <giorgetti@dii.unisi.it> was included in the
       
  1037         distribution.
       
  1038 
       
  1039         GLPK FAQ contributed by Harley Mackenzie <hjm@bigpond.com> was
       
  1040         included in the distribution.
       
  1041 
       
  1042 GLPK 4.3 (release date: Dec 12, 2003)
       
  1043 
       
  1044         The bug, due to which the standard math library is not linked
       
  1045         on building the package on some platforms, was fixed.
       
  1046 
       
  1047         The following new built-in functions were added to the MathProg
       
  1048         language: round, trunc, Irand224, Uniform01, Uniform, Normal01,
       
  1049         Normal. For details see the language description.
       
  1050 
       
  1051         The MathProg syntax was changed to allow writing 'subj to' that
       
  1052         means 'subject to'.
       
  1053 
       
  1054         The new api routine lpx_get_ray_info was added. It is intended
       
  1055         to determine which (non-basic) variable causes unboundness. For
       
  1056         details see the reference manual.
       
  1057 
       
  1058         The module glpmps.c was changed to avoid compilation errors on
       
  1059         building the package on Mac OS X.
       
  1060 
       
  1061         Several typos was fixed and some new material was added to the
       
  1062         GLPK documentation.
       
  1063 
       
  1064 GLPK 4.2 (release date: Nov 14, 2003)
       
  1065 
       
  1066         A preliminary implementation of the Integer Optimization Suite
       
  1067         (IOS) was included in the package. The Branch-and-Cut Framework
       
  1068         being completely superseded by IOS was removed from the package.
       
  1069 
       
  1070         New API routine lpx_print_sens_bnds intended for bounds
       
  1071         sensitivity analysis was contributed to GLPK by Brady Hunsaker
       
  1072         <hunsaker@engr.pitt.edu>. This function is also available in
       
  1073         the solver glpsol (via command-line option --bounds).
       
  1074 
       
  1075         An improved version of GLPK JNI (Java Native Interface) was
       
  1076         contributed by Chris Rosebrugh <cpr@pobox.com>.
       
  1077 
       
  1078         GLPK DELI (Delphi Interface) was contributed by Ivo van Baren
       
  1079         <i.van.baren@freeler.nl>.
       
  1080 
       
  1081         Several makefiles were added to allow compiling GLPK on some
       
  1082         non-GNU 32-bit platforms:
       
  1083         * Windows single-threaded static library, Visual C++ 6.0
       
  1084         * Windows multi-threaded dynamic library, Visual C++ 6.0
       
  1085         * Windows single-threaded static library, Borland C++ 5.2
       
  1086         * DOS single-threaded static library, Digital Mars C++ 7.50
       
  1087 
       
  1088         And, of course, some bugs were fixed.
       
  1089 
       
  1090         For more details see ChangeLog.
       
  1091 
       
  1092 GLPK 4.1 (release date: Aug 23, 2003)
       
  1093 
       
  1094         Some improvements were made in the lp/mip solver routines and
       
  1095         several bugs were fixed in the model translator.
       
  1096 
       
  1097         For more details see ChangeLog.
       
  1098 
       
  1099 GLPK 4.0 (release date: May 06, 2003)
       
  1100 
       
  1101         Now GLPK supports the GNU MathProg modeling language, which is
       
  1102         a subset of the AMPL modeling language.
       
  1103 
       
  1104         The document "GLPK: Modeling Language GNU MathProg" included in
       
  1105         the distribution is a complete description of GNU MathProg. (See
       
  1106         the files lang.latex, lang.dvi, and lang.ps in the subdirectory
       
  1107         'doc'. See also some examples in the subdirectory 'sample'.)
       
  1108 
       
  1109         New version of the solver glpsol, which supports models written
       
  1110         in GNU MathProg, was implemented. (Brief instructions how to use
       
  1111         glpsol can be found in the GNU MathProg documentation.)
       
  1112 
       
  1113         The GLPK/L modeling language is no more supported. The reason is
       
  1114         that GNU MathProg being much more powerful completely supersedes
       
  1115         all features of GLPK/L.
       
  1116 
       
  1117 GLPK 3.3 (release date: Mar 25, 2003)
       
  1118 
       
  1119         LP PRESOLVER
       
  1120         ------------
       
  1121 
       
  1122         Now the routine lpx_simplex (which is a driver to the simplex
       
  1123         method for solving LP) is provided with the built-in LP
       
  1124         presolver, which is a program that transforms the original LP
       
  1125         problem to an equivalent LP problem, which may be easier for
       
  1126         solving with the simplex method than the original one. Once the
       
  1127         transformed LP has been solver, the presolver transforms its
       
  1128         basic solution back to a corresponding basic solution of the
       
  1129         original problem. For details about this feature please see the
       
  1130         GLPK reference manual.
       
  1131 
       
  1132         Currently the LP presolver implements the following features:
       
  1133         * removing empty rows;
       
  1134         * removing empty columns;
       
  1135         * removing free rows;
       
  1136         * removing fixed columns;
       
  1137         * removing row singletons, which have the form of equations;
       
  1138         * removing row singletons, which have the form of inequalities;
       
  1139         * removing column singletons, which are implied slack variables;
       
  1140         * fixing and removing column singletons, which are implied free
       
  1141           variables;
       
  1142         * removing forcing rows that involves fixing and removing the
       
  1143           corresponding columns;
       
  1144         * checking for primal and dual infeasibilities.
       
  1145 
       
  1146         The LP presolver is also used by default in the stand-alone
       
  1147         program glpsol. In order *not* to use it, the option --nopresol
       
  1148         should be specified in the command-line.
       
  1149 
       
  1150         CHANGES IN GLPK/L
       
  1151         -----------------
       
  1152 
       
  1153         The syntax and semantics of the GLPK/L modeling language was
       
  1154         changed to allow declaration of "interval" sets. This means that
       
  1155         now the user can declare a set, for example, as:
       
  1156 
       
  1157            set task = [8:11];
       
  1158 
       
  1159         that is exactly equivalent to the following declaration:
       
  1160 
       
  1161            set task = (task_8, task_9, task_10, task_11);
       
  1162 
       
  1163         For details see the language description.
       
  1164 
       
  1165         JAVA INTERFACE
       
  1166         --------------
       
  1167 
       
  1168         Now GLPK includes the package GLPK JNI (Java Native Interface)
       
  1169         that implements Java binding for GLPK. It allows Java programs
       
  1170         to utilize GLPK in solving LP and MIP problems. For details see
       
  1171         a brief user's guide in the subdirectory contrib/java-binding.
       
  1172         This package was developed and programmed by Yuri Victorovich
       
  1173         <yuri@gjt.org>, who contributed it to GLPK.
       
  1174 
       
  1175 GLPK 3.2.4 (release date: Feb 18, 2003)
       
  1176 
       
  1177         This is a bug-fix release. For details see ChangeLog.
       
  1178 
       
  1179 GLPK 3.2.3 (release date: Nov 11, 2002)
       
  1180 
       
  1181         A new implementation of the api routine lpx_integer which now
       
  1182         is based on the b&b driver (which is based on the implicit
       
  1183         enumeration suite) was included in the package. This new
       
  1184         implementation has exactly the same functionality as the old
       
  1185         version, so all changes are transparent to the api user.
       
  1186 
       
  1187         Four new api routines were included in the package:
       
  1188         lpx_check_kkt checks Karush-Kuhn-Tucker optmality conditions;
       
  1189         lpx_read_bas reads predifined basis in MPS format;
       
  1190         lpx_write_bas writes current basis in MPS format;
       
  1191         lpx_write_lpt writes problem data in CPLEX LP format.
       
  1192 
       
  1193         Also other minor improvements were made (for details see the
       
  1194         file 'ChangeLog').
       
  1195 
       
  1196 GLPK 3.2.2 (release date: Oct 14, 2002)
       
  1197 
       
  1198         The api routine lpx_read_lpt was included in the package. It
       
  1199         is similar to the routine lpx_read_mps and intended to read
       
  1200         LP/MIP data prepared in CPLEX LP format. Description of this
       
  1201         format is given in the GLPK reference manual, a new edition of
       
  1202         which was also included in the distribution (see the files
       
  1203         'refman.latex', 'refman.dvi', 'refman.ps' in the subdirectory
       
  1204         'doc'). In order to use data files in CPLEX LP format with the
       
  1205         solver glpsol the option '--lpt' should be specified in the
       
  1206         command line.
       
  1207 
       
  1208         Several bugs were fixed and some minor improvements were made
       
  1209         (for details see the file 'ChangeLog').
       
  1210 
       
  1211 GLPK 3.2.1 (release date: Aug 12, 2002)
       
  1212 
       
  1213         Now GLPK includes a preliminary implementation of the
       
  1214         branch-and-cut framework, which is a set of data structures and
       
  1215         routines intended for developing branch-and-cut methods for
       
  1216         solving mixed-integer and combinatorial optimization problems.
       
  1217 
       
  1218         Detailed decsription of the branch-and-cut framework is given in
       
  1219         the document "GLPK: A Preliminary Implementation of the
       
  1220         Branch-And-Cut Framework" included in the distribution (see the
       
  1221         file 'brcut.txt' in the subdirectory 'doc').
       
  1222 
       
  1223         In order to illustrate how the GLPK branch-and-cut framework
       
  1224         can be used for solving a particular optimization problem there
       
  1225         is an example included in the package. This is a stand-alone
       
  1226         program, TSPSOL, which is intended for solving to optimality the
       
  1227         symmetric Traveling Salesman Problem (TSP), a classical problem
       
  1228         of the combinatorial optimization (see the file 'tspsol.c' in
       
  1229         the subdirectory 'sample').
       
  1230 
       
  1231 GLPK 3.2 (release date: Jul 15, 2002)
       
  1232 
       
  1233         New edition of the document "GLPK: Reference Manual" was
       
  1234         included (see the files 'refman.latex', 'refman.dvi', and
       
  1235         'refman.ps' in the subdirectory 'doc').
       
  1236 
       
  1237         New edition of the document "GLPK: Modeling Language GLPK/L" was
       
  1238         included (see the files 'lang.latex', 'lang.dvi', and 'lang.ps'
       
  1239         in the subdirectory 'doc').
       
  1240 
       
  1241         The following new API routines were added to the package:
       
  1242 
       
  1243         lpx_transform_row (transform explicitly specified row);
       
  1244         lpx_transform_col (transform explicitly specified column);
       
  1245         lpx_prim_ratio_test (perform primal ratio test);
       
  1246         lpx_dual_ratio_test (perform dual ratio test);
       
  1247         lpx_interior (solve LP problem using interior point method);
       
  1248         lpx_get_ips_stat (query status of interior point solution);
       
  1249         lpx_get_ips_row (obtain row interior point solution);
       
  1250         lpx_get_ips_col (obtain column interior point solution);
       
  1251         lpx_get_ips_obj (obtain interior point value of obj.func.);
       
  1252         lpx_read_lpm (read LP/MIP model written in GLPK/L);
       
  1253         lpx_write_mps (write problem data using MPS format);
       
  1254         lpx_print_ips (print interior point solution).
       
  1255 
       
  1256         Detailed description of all these new API routines are given in
       
  1257         the new edition of the reference manual.
       
  1258 
       
  1259         New version of the stand-alone solver glpsol (which is based on
       
  1260         the new API) was implemented.
       
  1261 
       
  1262         So long as the new API (introduced in glpk 3.0) now provides
       
  1263         all the functions, which were provided by the old API, the old
       
  1264         API routines were removed from the package at all.
       
  1265 
       
  1266 GLPK 3.1 (release date: May 27, 2002)
       
  1267 
       
  1268         A preliminary implementation of new API routines was completed
       
  1269         and included in the package.
       
  1270 
       
  1271         These new API routines provide much more flexible interaction
       
  1272         between the application program, LP/MIP problem instances, and
       
  1273         solver routines. Based on completely changed data structures
       
  1274         they are, however, similar to the API routines and provide the
       
  1275         same functionality. Please note that three routines, namely,
       
  1276         solving LPs using interior point method, reading model written
       
  1277         in the GLPK/L modeling language, and writing problem data in
       
  1278         the MPS format, are not implemented in the new API, however,
       
  1279         these routines are planned to be implemented in the next version
       
  1280         of the package.
       
  1281 
       
  1282         A description of the new API routines is given in the document
       
  1283         "GLPK Reference Manual", a draft edition of which is included
       
  1284         in the package (see the files 'refman.latex', 'refman.dvi', and
       
  1285         'refman.ps' in the subdirectory 'doc').
       
  1286 
       
  1287         Although the old API routines are kept in the package, they are
       
  1288         no longer supported and will be removed in the future.
       
  1289 
       
  1290 GLPK 3.0.8 (release date: May 13, 2002)
       
  1291 
       
  1292         A preliminary implementation of new API routines was included
       
  1293         in the package. These new API routines are intended to provide
       
  1294         much more flexible interaction between the application program,
       
  1295         LP/MIP problem and solver routines. See the document "New GLPK
       
  1296         API Routines" (the file 'newapi.txt' in the subdirectory 'doc')
       
  1297         also included in the package.
       
  1298 
       
  1299         The api routines glp_simplex2, glp_call_ipm1, glp_call_bbm1 were
       
  1300         renamed, respectively, to glp_simplex, glp_interior, glp_integer
       
  1301         in order to reflect changes in implementation. The api routines
       
  1302         glp_call_rsm1, glp_simplex1, glp_pivot_in, glp_pivout_out were
       
  1303         removed from the package since they are completely supreseded by
       
  1304         the new API routines (however, these routines still can be found
       
  1305         in the subdirectory 'oldsrc'). Please consult a new edition of
       
  1306         the document "GLPK User's Guide" about all these changes in the
       
  1307         existing api routines.
       
  1308 
       
  1309         The document "GLPK Library Reference" was removed from the
       
  1310         package (into the subdirectory 'oldsrc') since it describes the
       
  1311         obsolete library routines, most of which are no longer used.
       
  1312 
       
  1313 GLPK 3.0.7 (release date: Apr 22, 2002)
       
  1314 
       
  1315         A new, more efficient implementation of the primal/dual simplex
       
  1316         method was included in the package. Due to some improvements the
       
  1317         simplex-based solver allows solving many LP problems faster and
       
  1318         provides more reliable results. Note that the new implementation
       
  1319         is currently incomplete and available only via the api routine
       
  1320         glp_simplex2.
       
  1321 
       
  1322         All the changes are transparent on API level.
       
  1323 
       
  1324 GLPK 3.0.6 (release date: Mar 28, 2002)
       
  1325 
       
  1326         New version of LU-factorization and basis maintenance routines
       
  1327         (based on Forrest-Tomlin updating technique) was implemented.
       
  1328         Since these new routines functionally supersede some routines
       
  1329         (which implement other forms of the basis matrix) and make them
       
  1330         obsolete, the latter were removed from the package (they still
       
  1331         can be found in the subdirectory 'oldsrc').
       
  1332 
       
  1333         All the changes are transparent on API level.
       
  1334 
       
  1335 GLPK 3.0.5 (release date: Jan 29, 2002)
       
  1336 
       
  1337         New edition of the document "GLPK User's Guide" was included in
       
  1338         the distribution. Now it describes all additional API routines,
       
  1339         which were recently added to the package.
       
  1340 
       
  1341         Structure of the package was re-organized in order to make its
       
  1342         maintenance easier (all small files in the subdurectory 'source'
       
  1343         were merged in bigger units). These changes are transparent for
       
  1344         the user.
       
  1345 
       
  1346 GLPK 3.0.4 (release date: Dec 10, 2001)
       
  1347 
       
  1348         A new, more efficient implementation of the two-phase primal
       
  1349         simplex method was included in the package. Due to some new
       
  1350         features (an advanced initial basis, projected steepest edge,
       
  1351         recursive updating values and reduced costs) the new LP solver
       
  1352         is faster and numerically more stable than the old one.
       
  1353 
       
  1354         The new LP solver is available as API routine glp_simplex2 and
       
  1355         has the same purpose as API routine glp_call_rsm1. For detailed
       
  1356         specification see the file 'newapi.txt' in the directory 'doc'.
       
  1357 
       
  1358         Now the new LP solver is also used by default to solve an
       
  1359         initial LP problem in the branch-and-bound routine glp_call_bbm1
       
  1360         instead the routine rsm1_driver. Note that the branch-and-bound
       
  1361         procedure itself is still based on rsm1_driver.
       
  1362 
       
  1363         The new LP solver is also used as default solver in GLPSOL for
       
  1364         solving LP and MIP problems. In order to choose the old solver
       
  1365         the option '--old-sim' can be specified in the command line.
       
  1366 
       
  1367 GLPK 3.0.3 (release date: Oct 03, 2001)
       
  1368 
       
  1369         Some minor changes were made in the simplex method routines in
       
  1370         order to improve numerical stability of the method.
       
  1371 
       
  1372 GLPK 3.0.2 (release date: Sep 24, 2001)
       
  1373 
       
  1374         A new implementation of the basis maintaining routines was
       
  1375         included in the package. These routines, which are based on so
       
  1376         called FHV-factorization (a variety of LU-factorization) of the
       
  1377         basis matrix and Gustavson's data structures, allows performing
       
  1378         the main operations faster at the expense of some worsening
       
  1379         numerical accuracy.
       
  1380 
       
  1381         AFI (Advanced Form of the Inverse), which is the form of the
       
  1382         basis matrix based on FHV-factorization, is available via the
       
  1383         parameter form = 3 (on API level) or via the option --afi (in
       
  1384         GLPSOL solver).
       
  1385 
       
  1386 GLPK 3.0.1 (release date: Aug 01, 2001)
       
  1387 
       
  1388         Old GLPK API routines have been removed from the package.
       
  1389 
       
  1390         New GLPK API routines were added:
       
  1391 
       
  1392         - scaling routines;
       
  1393 
       
  1394         - a routine for writing problem data in MPS format;
       
  1395 
       
  1396         - a comprehensive driver to the simplex method;
       
  1397 
       
  1398         - basis maintaining routines.
       
  1399 
       
  1400         A description of the new API routines is given in the document
       
  1401         "Additional GLPK API Routines". This document is included into
       
  1402         the distribution in plain text format (see the file 'newapi.txt'
       
  1403         in the subdirectory 'doc').
       
  1404 
       
  1405         Now the distribution includes a non-trivial example of using
       
  1406         GLPK as a base LP solver for Concorde, a well known program that
       
  1407         solves Traveling Salesman Problem (TSP). For further details see
       
  1408         comments in the file 'sample/lpglpk30.c'.
       
  1409 
       
  1410 GLPK 3.0 (release date: Jul 19, 2001)
       
  1411 
       
  1412         Now GLPK is provided with new API, which being more flexible
       
  1413         can be used in more complex algorithmic schemes.
       
  1414 
       
  1415         New edition of the document "GLPK User's Guide" is included in
       
  1416         the distribution. Now it completely corresponds to the new GLPK
       
  1417         API routines.
       
  1418 
       
  1419         Old API routines are not removed yet from the package, however
       
  1420         they became obsolete and therefore should not be used. Since now
       
  1421         the header glpk.h corresponds to new API, in order to compile
       
  1422         existing programs that use old GLPK API routines the statement
       
  1423 
       
  1424         #define GLP_OLD_API
       
  1425 
       
  1426         should be inserted before the statement
       
  1427 
       
  1428         #include "glpk.h"
       
  1429 
       
  1430 GLPK 2.4.1 (release date: Jun 14, 2001)
       
  1431 
       
  1432         The document "Modeling language GLPK/L" is included into the
       
  1433         distribution in texinfo format.
       
  1434 
       
  1435         New edition of the document "GLPK User's Guide" is included in
       
  1436         the distribution. Now it describes all additional API routines
       
  1437         which were recently added to the package.
       
  1438 
       
  1439 GLPK 2.4 (release date: May 10, 2001)
       
  1440 
       
  1441         Now GLPK includes an implementation of a preliminary version
       
  1442         of the GLPK/L modeling language. This language is intended for
       
  1443         writing mathematcal programming models. The name GLPK/L is
       
  1444         derived from GNU Linear Programming Kit Language.
       
  1445 
       
  1446         A brief description of the GLPK/L language is given in the
       
  1447         document "GLPK/L Modeling Language: A Brief Description". This
       
  1448         document is included into the distribution in plain text format
       
  1449         (see the file 'language.txt' in the subdirectory 'doc').
       
  1450 
       
  1451         The language processor (which is a program that analyzes model
       
  1452         description written in GLPK/L and translates it to internal data
       
  1453         structures) is available as the GLPK API routine.
       
  1454 
       
  1455         The stand-alone solver GLPSOL now is able: a) to process model
       
  1456         descriptions written in the GLPK/L language; b) to solve pure LP
       
  1457         problems using the interior point method (therefore the program
       
  1458         GLPIPM was removed from the package).
       
  1459 
       
  1460 GLPK 2.3 (release date: Apr 09, 2001)
       
  1461 
       
  1462         New edition of the document "GLPK User's Guide" is included in
       
  1463         the distribution. Now it describes all additional API routines
       
  1464         which were recently added to the package.
       
  1465 
       
  1466         The MIP solver was fully re-programmed in order to improve its
       
  1467         robustness and performance. In particular, a basis recovering
       
  1468         procedure was implemented (this procedure allows switching to
       
  1469         the primal simplex method in case when the dual simplex method
       
  1470         fails).
       
  1471 
       
  1472 GLPK 2.2 (release date: Mar 15, 2001)
       
  1473 
       
  1474         Now GLPK includes a tentative implementation of the
       
  1475         branch-and-bound procedure based on the dual simplex method for
       
  1476         mixed integer linear programming (MIP).
       
  1477 
       
  1478         Complete description of this new feature of the package is given
       
  1479         in the preliminary document "Mixed Integer Linear Programming
       
  1480         Using GLPK Version 2.2 (Supplement to GLPK User's Guide)". This
       
  1481         document is included into the distribution in plain text format
       
  1482         (see the file 'mip.txt' in the subdirectory 'doc').
       
  1483 
       
  1484         The MIP solver (glp_integer) can be used as GLPK API routine in
       
  1485         the same way as the pure LP solver (glp_simplex).
       
  1486 
       
  1487         The stand-alone program 'glpsol' is now able to solve LP as well
       
  1488         as MIP problems.
       
  1489 
       
  1490         Note that the current version of GLPK MIP solver is based on
       
  1491         easiest heuristics for branching and backtrackng. Therefore the
       
  1492         solver is fit mainly for MIP problems which are not very hard
       
  1493         and have few integer variables.
       
  1494 
       
  1495 GLPK 2.1 (release date: Feb 19, 2001)
       
  1496 
       
  1497         The document "GLPK Implementation of the Revised Simplex Method"
       
  1498         is included into the distribution. This document describes most
       
  1499         of routines related to the revised simplex method.
       
  1500 
       
  1501 GLPK 2.0 (release date: Jan 25, 2001)
       
  1502 
       
  1503         Now GLPK includes a tentative implementation of the primal-dual
       
  1504         interior point method for large-scale linear programming.
       
  1505 
       
  1506         The interior point solver can be used as GLPK API routine in the
       
  1507         same manner as the simplex method solver (glp_simplex):
       
  1508 
       
  1509         ret = glp_interior();
       
  1510 
       
  1511         Note that currently the interior point solver implemented in
       
  1512         GLPK doesn't include many important features, in particular:
       
  1513 
       
  1514         * it can't process dense columns; therefore if the problem has
       
  1515           dense columns, the solving will be extremely inefficient;
       
  1516 
       
  1517         * it has no special features against numerical unstability;
       
  1518           some problems may cause premature termination of the solving
       
  1519           when the matrix A*D*A' becomes ill-conditioned;
       
  1520 
       
  1521         * it computes only values of primal (auxiliary and structural)
       
  1522           variables and doesn't compute values of dual variables (i.e.
       
  1523           reduced costs) which are just set to zero;
       
  1524 
       
  1525         * it doesn't identify optimal basis corresponding to the found
       
  1526           interior point solution; all variables in the found solution
       
  1527           are just marked as basic variables.
       
  1528 
       
  1529         GLPK also includes a stand-alone program 'glpipm' which is a
       
  1530         demo based on the interior point method. It may be used in the
       
  1531         same way as the program 'glpsol' that is based on the simplex
       
  1532         method.